<?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>6868</bug_id>
          
          <creation_ts>2006-01-27 01:43:31 -0800</creation_ts>
          <short_desc>make TransformationMatrix platform independent</short_desc>
          <delta_ts>2009-02-07 10:42:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23689</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dino</cc>
    
    <cc>gilles</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30286</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-27 01:43:31 -0800</bug_when>
    <thetext>Dave asked me to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30287</commentid>
    <comment_count>1</comment_count>
      <attachid>6019</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-27 01:44:23 -0800</bug_when>
    <thetext>Created attachment 6019
first cut -- after review I plan to re-read and do final refinements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30341</commentid>
    <comment_count>2</comment_count>
      <attachid>6019</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-27 14:40:54 -0800</bug_when>
    <thetext>Comment on attachment 6019
first cut -- after review I plan to re-read and do final refinements

I would prefer it if x() and y() remained on the rect class.  Much of the code that uses rects operates in terms of x and y, and I think it creates an inconsistency to eliminate these methods on rect while leaving all the calling code still using x/y variable names and conventions.

Philosophically you have also mutated what was essentially a PixelRect class into a PointRect class.  There have been assertions that old methods like right/bottom or contains were confusing but they did have well-understood semantics for what was essentially a rect operating on pixels and not on points.  My biggest concern here is just making sure all the call sites that used right/bottom   have been patched properly, since 1 pixel errors will be really hard to spot with any of our regression tests.

This reworking of IntRect to be point-based and not pixel-based has also led to methods like contains being a little strange, since contains is a question being asked of a pixel.  
I don&apos;t really like the name containsPixel, and feel like this clarification was almost only needed because the rect has been reworked to operate on points instead of pixels.

That said, my main objection is the x/y removal, since even a point-based rect is constructed with points that have x/y coordinates, and I think it&apos;s pretty clear to clients of the rect that the x/y of a rect would refer to the top left point&apos;s x/y.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30342</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-27 14:43:17 -0800</bug_when>
    <thetext>I also see some places where code had bottom() + 1, and you patched it to be bottom() - 1 ... + 1, so it would be nice to clean that up.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30343</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-27 14:52:58 -0800</bug_when>
    <thetext>I should say too that if we have a float-based rect, then clearly in order for the two rect classes to be consistent, it&apos;s better to think of them as point-based and not pixel-based.  So just fix the x/y thing and post a new patch and I&apos;ll scrutinize all the bottom/right call sites and such to help double-check.  containsPixel is ok for now too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30344</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-27 14:53:06 -0800</bug_when>
    <thetext>I should say too that if we have a float-based rect, then clearly in order for the two rect classes to be consistent, it&apos;s better to think of them as point-based and not pixel-based.  So just fix the x/y thing and post a new patch and I&apos;ll scrutinize all the bottom/right call sites and such to help double-check.  containsPixel is ok for now too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30345</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-27 14:53:36 -0800</bug_when>
    <thetext>Wow check out this weird double-post bug on TOT.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30346</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-27 14:56:35 -0800</bug_when>
    <thetext>I did handle the bottom and right cases very carefull. What I did was:

    1) change every call site to bottomMinusOne() where it seemed that was right
    2) change every call site to sensibleBottom() where it seemed that classic &quot;bottom&quot; worked
    3) go visit all the bottomMinusOne() ones to see if they could be made to make sense, if not changed them to bottom() - 1
    4) global replace sensibleBottom() with bottom()

Originally, in fact, I had intended to keep bottomMinusOne() on the class for an interim period, but I found few cases actually needed it.

I&apos;ll post a new patch as soon as I can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30425</commentid>
    <comment_count>8</comment_count>
      <attachid>6054</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-28 16:47:05 -0800</bug_when>
    <thetext>Created attachment 6054
patch revised based on Hyatt&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30539</commentid>
    <comment_count>9</comment_count>
      <attachid>6080</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-29 11:46:25 -0800</bug_when>
    <thetext>Created attachment 6080
newer patch, merged with TOT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30565</commentid>
    <comment_count>10</comment_count>
      <attachid>6086</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-29 17:12:33 -0800</bug_when>
    <thetext>Created attachment 6086
Approximate -uw patch made from my tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30569</commentid>
    <comment_count>11</comment_count>
      <attachid>6080</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-29 17:44:33 -0800</bug_when>
    <thetext>Comment on attachment 6080
newer patch, merged with TOT

Eric reviewed this, but it&apos;s not passing layout tests yet, so review-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57480</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-09-30 11:38:37 -0700</bug_when>
    <thetext>This has been done since... </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57511</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-09-30 16:30:13 -0700</bug_when>
    <thetext>No, this was never done. Instead we have three platform-specific AffineTransform implementations, calling through to Core Graphics, Qt, and Cairo. The concept here was to have a single platform-independent one instead. I still think it&apos;s a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57531</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-01 08:43:54 -0700</bug_when>
    <thetext>Ah, my misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106085</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-01-16 10:45:42 -0800</bug_when>
    <thetext>We still need to get rid of the platform specific versions of things like TransformationMatrix::multiply(). That is the job I will do...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108519</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-02-05 14:37:14 -0800</bug_when>
    <thetext>I&apos;ve added a dependency on this bug to bug 23689. I will be adding the 3D support at the same time as getting rid of the platform dependencies. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108637</commentid>
    <comment_count>17</comment_count>
      <attachid>27399</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-02-06 08:22:46 -0800</bug_when>
    <thetext>Created attachment 27399
Patch

        I have not only made TransformationMatrix platform independent
        but I&apos;ve also added 3D methods, which will be used when I update
        WebKitCSSMatrix to include 3D (see https://bugs.webkit.org/show_bug.cgi?id=23689).
        I am now keeping a full 4x4 matrix in TransformationMatrix. I&apos;m also doing all
        the math as doubles rather than floats. This makes a TransformationMatrix
        go from 24 bytes to 128 bytes, but I don&apos;t think this class is used enough to
        make this overhead will be significant.

        The change from floats to doubles has caused some differences in rounding and
        display (sometimes things that displayed as -0.0 now display as 0.0 or vice versa),
        so I&apos;ve had to change some LayoutTest results in the SVG tests.

        NOTE: This patch is only tested on Mac. Other platforms will likely have build issues.
        I will fix these on Windows, but I can&apos;t test on the other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108644</commentid>
    <comment_count>18</comment_count>
      <attachid>27399</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-06 10:01:45 -0800</bug_when>
    <thetext>Comment on attachment 27399
Patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================

&gt; +        NOTE: This patch is only tested on Mac. Other platforms will likely have build issues.
&gt; +        I will fix these on Windows, but I can&apos;t test on the other platforms.

I don&apos;t think you need to say this in the changelog.

&gt; Index: WebCore/platform/graphics/cg/TransformationMatrixCG.cpp
&gt; ===================================================================

&gt; +TransformationMatrix::operator CGAffineTransform() const
&gt;  {
&gt; -    return CGAffineTransformConcat(m_transform, CGAffineTransform(m2));
&gt; +    return CGAffineTransformMake(narrowPrecisionToCGFloat(m_matrix[0][0]),
&gt; +                                 narrowPrecisionToCGFloat(m_matrix[0][1]),
&gt; +                                 narrowPrecisionToCGFloat(m_matrix[1][0]),
&gt; +                                 narrowPrecisionToCGFloat(m_matrix[1][1]),
&gt; +                                 narrowPrecisionToCGFloat(m_matrix[3][0]),
&gt; +                                 narrowPrecisionToCGFloat(m_matrix[3][1]));
&gt;  }

It&apos;s a shame that extracting the correct elements from the 4x4 matrix to make
an affine matrix happens in more than one place. Can we define an simple
affine matrix type (typedef of float array), and return that from the shared
code?

&gt; Index: WebCore/platform/graphics/transforms/TransformationMatrix.cpp
&gt; ===================================================================

&gt; +////////////////////////////// Supporting Math Functions ///////////////////////////////////////
&gt; +//
&gt; +// This is a set of function from various places (attributed inline) to do things like
&gt; +// inversion and decomposition of a 4x4 matrix. They are used throughout the code
&gt; +//
&gt; +////////////////////////////////////////////////////////////////////////////////////////////////

This is not standard WebCore commenting style.

&gt; +//
&gt; +// Adapted from Matrix Inversion by Richard Carling, Graphics Gems &lt;http://tog.acm.org/GraphicsGems/index.html&gt;.
&gt; +
&gt; +// EULA: The Graphics Gems code is copyright-protected. In other words, you cannot claim the text of the code 
&gt; +// as your own and resell it. Using the code is permitted in any program, product, or library, non-commercial 
&gt; +// or commercial. Giving credit is not required, though is a nice gesture. The code comes as-is, and if there 
&gt; +// are any flaws or problems with any Gems code, nobody involved with Gems - authors, editors, publishers, or 
&gt; +// webmasters - are to be held responsible. Basically, don&apos;t be a jerk, and remember that anything free comes 
&gt; +// with no guarantee.

Someone (Darin?) needs to confirm that it&apos;s OK to add this code.

&gt; +typedef double Vector4[4];
&gt; +typedef double Vector3[3];
&gt; +
&gt; +#define SMALL_NUMBER    1.e-8

Use a constant.

&gt; +
&gt; +//    inverse( original_matrix, inverse_matrix )

Nit: no spaces next to the parens.

&gt; +static double det2x2(double a, double b, double c, double d)

For this (and other functions), I think the abbreviations don&apos;t help any.
Call it determinant2x2() or computeDeterminant2x2().

&gt;  {
&gt; -    TransformationMatrix m(matrix);
&gt; +    double ans;
&gt; +    ans = a * d - b * c;
&gt; +    return ans;
&gt; +}

No need for the &apos;ans&apos; variable. Inline it?

&gt; +//  double = det3x3(  a1, a2, a3, b1, b2, b3, c1, c2, c3 )
&gt; +//  
&gt; +//  calculate the determinant of a 3x3 matrix
&gt; +//  in the form
&gt; +// 
&gt; +//      | a1,  b1,  c1 |
&gt; +//      | a2,  b2,  c2 |
&gt; +//      | a3,  b3,  c3 |

Nit: sentence case.

&gt; +static double det4x4(const TransformationMatrix::Matrix4&amp; m)
&gt; +{
&gt; +    double ans;
&gt; +    double a1, a2, a3, a4, b1, b2, b3, b4, c1, c2, c3, c4, d1, d2, d3, d4;
&gt; +
&gt; +    // assign to individual variable names to aid selecting
&gt; +    // correct elements
&gt; +
&gt; +    a1 = m[0][0]; b1 = m[0][1]; 
&gt; +    c1 = m[0][2]; d1 = m[0][3];
&gt; +
&gt; +    a2 = m[1][0]; b2 = m[1][1]; 
&gt; +    c2 = m[1][2]; d2 = m[1][3];
&gt; +
&gt; +    a3 = m[2][0]; b3 = m[2][1]; 
&gt; +    c3 = m[2][2]; d3 = m[2][3];
&gt; +
&gt; +    a4 = m[3][0]; b4 = m[3][1]; 
&gt; +    c4 = m[3][2]; d4 = m[3][3];
&gt; +
&gt; +    ans = a1 * det3x3(b2, b3, b4, c2, c3, c4, d2, d3, d4)
&gt; +        - b1 * det3x3(a2, a3, a4, c2, c3, c4, d2, d3, d4)
&gt; +        + c1 * det3x3(a2, a3, a4, b2, b3, b4, d2, d3, d4)
&gt; +        - d1 * det3x3(a2, a3, a4, b2, b3, b4, c2, c3, c4);
&gt; +    return ans;

No need for the &apos;ans&apos; variable. Just return the result.

&gt; +static void adjoint(const TransformationMatrix::Matrix4&amp; srcMatrix, TransformationMatrix::Matrix4&amp; outMatrix)

The &apos;out&apos; prefix is not webkit style, alas. You could call the variable &apos;result&apos;.

&gt; +// Returns false if the matrix is not invertible
&gt; +static bool inverse(const TransformationMatrix::Matrix4&amp; srcMatrix, TransformationMatrix::Matrix4&amp; outMatrix)

Ditto.

&gt; +// Multiply a homogeneous point by a matrix and return the transformed point
&gt; +static void v4MulPointByMatrix(Vector4 pin, const TransformationMatrix::Matrix4&amp; m, Vector4 pout)

&apos;pout&apos;?

Expand &apos;Mul&apos; to Multiply. Is the v4 prefix necessary?

&gt; +static double v3Length(Vector3 a) 
&gt;  {
&gt; -    return det() != 0.0;
&gt; +    return sqrt((a[0] * a[0])+(a[1] * a[1])+(a[2] * a[2]));

Spaces around the + please.

&gt; +static void v3Scale(Vector3 v, double newlen) 
&gt;  {

What is &apos;newlen&apos;? Needs a better name.

&gt; -    return (*this) *= other;
&gt; +    double len = v3Length(v);
&gt; +    if (len != 0.0) {

Just (len != 0)

I don&apos;t really like that this function changes the vector in-place, while the others like
v3Length do no. I&apos;d prefer to see &apos;const&apos; used to makek things clearer.

&gt; +// Make a linear combination of two vectors and return the result.
&gt; +// result = (a * ascl) + (b * bscl)
&gt; +static void v3Combine (Vector3 a, Vector3 b, Vector3 result, double ascl, double bscl) 
&gt; +{
&gt; +    result[0] = (ascl * a[0]) + (bscl * b[0]);
&gt; +    result[1] = (ascl * a[1]) + (bscl * b[1]);
&gt; +    result[2] = (ascl * a[2]) + (bscl * b[2]);
&gt; +}

Ditto; use &apos;const&apos;?

&gt; +// Return the cross product c = a cross b */
&gt; +static void v3Cross(Vector3 a, Vector3 b, Vector3 c)
&gt; +{
&gt; +    c[0] = (a[1] * b[2]) - (a[2] * b[1]);
&gt; +    c[1] = (a[2] * b[0]) - (a[0] * b[2]);
&gt; +    c[2] = (a[0] * b[1]) - (a[1] * b[0]);
&gt; +}

Ditto.

&gt; +static bool decompose(const TransformationMatrix::Matrix4&amp; mat, TransformationMatrix::DecomposedType&amp; ret)

Use &apos;result&apos; rather than &apos;ret&apos; for consistency.

&gt; +{
&gt; +    int i, j;

Declare where used?

&gt; +    TransformationMatrix::Matrix4 locmat;
&gt; +    memcpy(locmat, mat, sizeof(TransformationMatrix::Matrix4));

Can&apos;t you just assign? Avoid abbreviated names, use interCaps.

&gt; +    // Normalize the matrix.
&gt; +    if (locmat[3][3] == 0)
&gt; +        return false;
&gt; +
&gt; +    for (i = 0; i &lt; 4; i++)
&gt; +        for (j = 0; j &lt; 4; j++)
&gt; +            locmat[i][j] /= locmat[3][3];
&gt; +
&gt; +    // pmat is used to solve for perspective, but it also provides
&gt; +    // an easy way to test for singularity of the upper 3x3 component.
&gt; +    TransformationMatrix::Matrix4 pmat;
&gt; +    memcpy(pmat, locmat, sizeof(TransformationMatrix::Matrix4));

Just assign, or copy-construct?

&gt; +    for (i = 0; i &lt; 3; i++)
&gt; +        pmat[i][3] = 0;
&gt; +    pmat[3][3] = 1;
&gt; +
&gt; +    if (det4x4(pmat) == 0.0)
&gt; +        return false;

Use == 0
 
&gt; +    // First, isolate perspective.  This is the messiest.
&gt; +    if (locmat[0][3] != 0 || locmat[1][3] != 0 || locmat[2][3] != 0) {
&gt; +        // prhs is the right hand side of the equation.
&gt; +        Vector4 prhs;
&gt; +        prhs[0] = locmat[0][3];
&gt; +        prhs[1] = locmat[1][3];
&gt; +        prhs[2] = locmat[2][3];
&gt; +        prhs[3] = locmat[3][3];
&gt; +
&gt; +        // Solve the equation by inverting pmat and multiplying
&gt; +        // prhs by the inverse.  (This is the easiest way, not
&gt; +        // necessarily the best.)
&gt; +        // inverse function (and det4x4, above) from the Matrix
&gt; +        // Inversion gem in the first volume.

Comment seems out of place.

&gt; +        TransformationMatrix::Matrix4 invpmat, tinvpmat;

Don&apos;t like these variable names. Just because it&apos;s math code doesn&apos;t mean it has
to have short names.

&gt; +        // Stuff the answer away.

No need for this comment.

&gt; +    // Now, get the rotations out, as described in the gem.
&gt; +    
&gt; +    // FIXME - We return rotation values as quaternions because they are easier
&gt; +    // to recompose later. But when we add decomposition to CSSMatrix we will 
&gt; +    // want to return the rotation values as rx, ry, and rz values because they 
&gt; +    // are much easier to deal with for the author. The commented out code below 
&gt; +    // does that. Ultimately we will want to pass in a flag to choose which to
&gt; +    // return.

Don&apos;t put statements about the future into comments. They always get out of date.
A FIXME comment is more appropriate; even better if there&apos;s a bug to track it.

&gt; +    double T, S, x, y, z, w;

What is the significance of the uppercase?

&gt; +// Copied from Core Animation

Ouch. Need to check if it&apos;s OK to put this here.

&gt; +static void slerp(double qa[4], const double qb[4], double t)

Needs a better function name.

&gt; +//////////////////////////// End of Supporting Math Functions //////////////////////////////////

Not the normal comment style.


&gt; +TransformationMatrix TransformationMatrix::affineTransform() const
&gt; +{
&gt; +    // Note that this throws away the z-axis
&gt; +    // FIXME: indicate when this loses data somehow
&gt; +    TransformationMatrix transform(m_matrix[0][0], m_matrix[0][1], m_matrix[1][0], m_matrix[1][1], m_matrix[3][0], m_matrix[3][1]);
&gt; +    return transform;

Maybe it should have a bool* param that is filled with true or false if the caller
requests it?

&gt; +FloatPoint TransformationMatrix::projectPoint(const FloatPoint&amp; p) const
&gt; +    // This is basically raytracing. We have a point in the destination
&gt; +    // plane with z=0, and we cast a ray parallel to the z-axis from that
&gt; +    // point to find the z-position at which it intersects the z=0 plane
&gt; +    // with the transform applied. Once we have that point we apply the
&gt; +    // inverse transform to find the corresponding point in the source
&gt; +    // space.
&gt; +    // 
&gt; +    // Given a plane with normal Pn, and a ray starting at point R0 and
&gt; +    // with direction defined by the vector Rd, we can find the
&gt; +    // intersection point as a distance d from R0 in units of Rd by:
&gt; +    // 
&gt; +    // d = -dot (Pn&apos;, R0) / dot (Pn&apos;, Rd)
&gt; +    
&gt; +    double x = p.x();
&gt; +    double y = p.y();
&gt; +    double z = -(m13() * x + m23() * y + m43()) / m33();
&gt; +
&gt; +    double outX = x * m11() + y * m21() + z * m31() + m41();
&gt; +    double outY = x * m12() + y * m22() + z * m32() + m42();
&gt; +
&gt; +    double w = x * m14() + y * m24() + z * m34() + m44();
&gt; +    if (w != 1 &amp;&amp; w != 0) {
&gt; +        outX /= w;
&gt; +        outY /= w;
&gt; +    }
&gt; +
&gt; +    return FloatPoint(static_cast&lt;float&gt;(outX), static_cast&lt;float&gt;(outY));
&gt;  }

Is it OK to put this code into open source too?

&gt; +FloatPoint TransformationMatrix::mapPoint(const FloatPoint&amp; p) const
&gt; +    double x, y;
&gt; +    multVecMatrix(p.x(), p.y(), x, y);
&gt; +    return FloatPoint(static_cast&lt;float&gt;(x), static_cast&lt;float&gt;(y));
&gt;  }

What does this do if the matrix is 3D?

&gt;  IntPoint TransformationMatrix::mapPoint(const IntPoint&amp; point) const
&gt;  {
&gt; -    double x2, y2;
&gt; -    map(point.x(), point.y(), &amp;x2, &amp;y2);
&gt; +    double x, y;
&gt; +    multVecMatrix(point.x(), point.y(), x, y);
&gt;  
&gt;      // Round the point.
&gt; -    return IntPoint(lround(x2), lround(y2));
&gt; +    return IntPoint(lround(x), lround(y));
&gt;  }

What if the matrix is 3D?

&gt; -FloatPoint TransformationMatrix::mapPoint(const FloatPoint&amp; point) const
&gt; +IntRect TransformationMatrix::mapRect(const IntRect &amp;rect) const
&gt;  {
&gt; -    double x2, y2;
&gt; -    map(point.x(), point.y(), &amp;x2, &amp;y2);
&gt; +    return enclosingIntRect(mapRect(FloatRect(rect)));
&gt; +}
&gt;  
&gt; -    return FloatPoint(static_cast&lt;float&gt;(x2), static_cast&lt;float&gt;(y2));
&gt; +FloatRect TransformationMatrix::mapRect(const FloatRect&amp; r) const
&gt; +{
&gt; +    FloatQuad resultQuad = mapQuad(FloatQuad(r));
&gt; +    return resultQuad.boundingBox();
&gt;  }
&gt;  
&gt; -FloatQuad TransformationMatrix::mapQuad(const FloatQuad&amp; quad) const
&gt; +FloatQuad TransformationMatrix::mapQuad(const FloatQuad&amp; q) const
&gt;  {
&gt; -    // FIXME: avoid 4 seperate library calls. Point mapping really needs
&gt; -    // to be platform-independent code.
&gt; -    return FloatQuad(mapPoint(quad.p1()),
&gt; -                     mapPoint(quad.p2()),
&gt; -                     mapPoint(quad.p3()),
&gt; -                     mapPoint(quad.p4()));
&gt; +    FloatQuad result;
&gt; +    result.setP1(mapPoint(q.p1()));
&gt; +    result.setP2(mapPoint(q.p2()));
&gt; +    result.setP3(mapPoint(q.p3()));
&gt; +    result.setP4(mapPoint(q.p4()));
&gt; +    return result;
&gt;  }

What if the matrix is 3D for all these?

&gt; +TransformationMatrix&amp; TransformationMatrix::rotate3d(double x, double y, double z, double angle)
&gt; +{
&gt; +    // angles are in degrees. Switch to radians
&gt; +    angle = angle / 360.0 * M_PI * 2.0;
&gt; +    
&gt; +    angle /= 2.0f;
&gt; +    double sinA = sin(angle);
&gt; +    double cosA = cos(angle);
&gt; +    double sinA2 = sinA * sinA;
&gt; +    
&gt; +    // normalize
&gt; +    double length = sqrt(x*x+y*y+z*z);

Spaces around the operators please.

&gt; +TransformationMatrix&amp; TransformationMatrix::rotate3d(double rx, double ry, double rz)
&gt; +{
&gt; +    // angles are in degrees. Switch to radians
&gt; +    rx = rx / 360.0 * M_PI * 2.0;
&gt; +    ry = ry / 360.0 * M_PI * 2.0;
&gt; +    rz = rz / 360.0 * M_PI * 2.0;

Now there are 4 of them. Add an inline function for degreesToRadians().

&gt; +TransformationMatrix&amp; TransformationMatrix::skew(double sx, double sy)
&gt; +{
&gt; +    // angles are in degrees. Switch to radians
&gt; +    sx = sx / 360.0 * M_PI * 2.0;
&gt; +    sy = sy / 360.0 * M_PI * 2.0;

Here too.


&gt; +//
&gt; +// multiplies matrix by given matrix on the right
&gt; +//

Comment is potentially confusing. Must clearer would just be to say:

// this = mat * this

&gt; +TransformationMatrix&amp; TransformationMatrix::multLeft(const TransformationMatrix&amp; mat)
&gt; +{
&gt; +    double tmp[4][4];

Just use TransformationMatrix::Matrix4 to avoid the nasty cast below:

&gt; +    setMatrix(reinterpret_cast&lt;double*&gt;(tmp));
&gt; +    return *this;
&gt; +}

&gt; +void TransformationMatrix::multVecMatrix(double inx, double iny, double&amp; outx, double&amp; outy) const

Avoid &apos;in&apos;, &apos;out&apos; prefixes.

&gt; +void TransformationMatrix::multVecMatrix(double inx, double iny, double inz, double&amp; outx, double&amp; outy, double&amp; outz) const

Ditto.

&gt; +//
&gt; +// returns inverse of matrix
&gt; +//

Comment doesn&apos;t add anything.

&gt; +TransformationMatrix TransformationMatrix::inverse() const 
&gt; +{
&gt; +    TransformationMatrix invMat;
&gt; +    
&gt; +    bool inverted = WebCore::inverse(m_matrix, invMat.m_matrix);
&gt; +    if (!inverted) {
&gt; +        // FIXME: indicate failure somehow
&gt; +        return TransformationMatrix();

Address the FIXME?

&gt; +static inline void blendFloat(double&amp; from, double to, double progress)
&gt; +{
&gt; +    if (from != to)
&gt; +        from = from + (to - from) * progress;
&gt; +}
&gt;  

&gt; +void TransformationMatrix::blend(const TransformationMatrix&amp; from, double progress)

Should blend stuff really be in here?

&gt; +void TransformationMatrix::recompose(const DecomposedType&amp; decomp)
&gt; +{
&gt; +    makeIdentity();
&gt; +    
&gt; +    // first apply perspective
&gt; +    m_matrix[0][3] = (float) decomp.perspectiveX;
&gt; +    m_matrix[1][3] = (float) decomp.perspectiveY;
&gt; +    m_matrix[2][3] = (float) decomp.perspectiveZ;
&gt; +    m_matrix[3][3] = (float) decomp.perspectiveW;
&gt; +    
&gt; +    // now translate
&gt; +    translate3d((float) decomp.translateX, (float) decomp.translateY, (float) decomp.translateZ);
&gt; +    
&gt; +    // apply rotation
&gt; +    float xx, xy, xz, xw, yy, yz, yw, zz, zw;
&gt; +
&gt; +    xx = (float) (decomp.quaternionX * decomp.quaternionX);
&gt; +    xy = (float) (decomp.quaternionX * decomp.quaternionY);
&gt; +    xz = (float) (decomp.quaternionX * decomp.quaternionZ);
&gt; +    xw = (float) (decomp.quaternionX * decomp.quaternionW);
&gt; +    yy = (float) (decomp.quaternionY * decomp.quaternionY);
&gt; +    yz = (float) (decomp.quaternionY * decomp.quaternionZ);
&gt; +    yw = (float) (decomp.quaternionY * decomp.quaternionW);
&gt; +    zz = (float) (decomp.quaternionZ * decomp.quaternionZ);
&gt; +    zw = (float) (decomp.quaternionZ * decomp.quaternionW);

Why is this using floats, not doubles?

&gt; +    TransformationMatrix u(1 - 2 * (yy + zz), 2 * (xy - zw), 2 * (xz + yw), 0, 
&gt; +                         2 * (xy + zw), 1 - 2 * (xx + zz), 2 * (yz - xw), 0,
&gt; +                         2 * (xz - yw), 2 * (yz + xw), 1 - 2 * (xx + yy), 0,
&gt; +                         0, 0, 0, 1);

Maybe a comment explaining what the heck that math is doing?

Longer variable name than &apos;u&apos; please.

&gt; Index: WebCore/platform/graphics/transforms/TransformationMatrix.h
&gt; ===================================================================
&gt; --- WebCore/platform/graphics/transforms/TransformationMatrix.h	(revision 40698)
&gt; +++ WebCore/platform/graphics/transforms/TransformationMatrix.h	(working copy)
&gt; @@ -27,21 +27,7 @@
&gt;  #define TransformationMatrix_h
&gt;  
&gt;  #if PLATFORM(CG)
&gt; -#include &lt;CoreGraphics/CGAffineTransform.h&gt;

&gt; +typedef struct CGAffineTransform CGAffineTransform;

Rather than the typedef, just keep the include?

&gt;  class TransformationMatrix {
&gt;  public:

&gt; +    TransformationMatrix() { makeIdentity(); }
&gt; +    TransformationMatrix(const TransformationMatrix&amp; t) { *this = t; }

How about m_matrix = t.m_matrix ?


&gt; +    TransformationMatrix&amp; operator =(const TransformationMatrix &amp;t)
&gt; +    {
&gt; +        setMatrix(reinterpret_cast&lt;const double*&gt;(t.m_matrix));

Nasty cast. Can we have a private setter that takes a TransformationMatrix::Matrix4?

&gt; +    // This form preserves the double math from input to output
&gt; +    void map(double x, double y, double *x2, double *y2) const { multVecMatrix(x, y, *x2, *y2); }

Use references for the result params, I think.

&gt; +    // Map a 2D point through the transform, returning a 2D point.
&gt; +    // Note that this ignores the z component.

What does &apos;ignores the z component&apos; really mean?

&gt; +    void reset() { makeIdentity(); }

Do we need both reset and makeIdentity?

&gt; +
&gt; +    // this = this * mat
&gt; +    TransformationMatrix&amp; multiply(const TransformationMatrix&amp; t) { return *this *= t; }

Rather than making use of operator*, would be a little easier to grok with use of multLeft.

&gt; +
&gt; +    // this = mat * this
&gt; +    TransformationMatrix&amp; multLeft(const TransformationMatrix&amp; mat);
&gt; +    
&gt;      TransformationMatrix&amp; scale(double);
&gt;      TransformationMatrix&amp; scale(double sx, double sy);
&gt; +    TransformationMatrix&amp; scale3d(double sx, double sy, double sz);
&gt;      TransformationMatrix&amp; scaleNonUniform(double sx, double sy);

How do scale() and scaleNonUniform() differ?

&gt; +    TransformationMatrix&amp; rotate3d(double x, double y, double z, double angle);

Should have a comment about normalizing x,y,z

&gt;      TransformationMatrix&amp; flipX();
&gt;      TransformationMatrix&amp; flipY();

No flipZ()?

&gt;      bool isInvertible() const;
&gt;      TransformationMatrix inverse() const;

Why is this not invert() (non-const), when all the other methods change |this|?

&gt; +    TransformationMatrix&amp; operator*=(const TransformationMatrix&amp; t)
&gt; +    {
&gt; +        *this = *this * t;
&gt; +        return *this;
&gt; +    }

A &quot;this is a multRight&quot; comment might be good here.

&gt; +    
&gt; +    TransformationMatrix operator*(const TransformationMatrix&amp; t)

Should be |const|


&gt; +    void setMatrix(const double* m)
&gt; +    {
&gt; +        if (m &amp;&amp; m != reinterpret_cast&lt;double*&gt;(m_matrix))
&gt; +            memcpy(m_matrix, m, 16 * sizeof(double));
&gt; +    }

I think this should go away.

&gt; Index: LayoutTests/ChangeLog
&gt; ===================================================================
&gt; --- LayoutTests/ChangeLog	(revision 40718)
&gt; +++ LayoutTests/ChangeLog	(working copy)
&gt; @@ -1,3 +1,67 @@
&gt; +2009-02-06  Chris Marrin  &lt;cmarrin@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=6868
&gt; +
&gt; +        These tests started failing when I changed TransformationMatrix
&gt; +        to be platform independent. This is due to slight differences
&gt; +        in rounding because I am now using doubles rather than floats
&gt; +        to do the matrix operations.

Rather than the &quot;story-telling&quot; type changelog, I think it&apos;s better to just
say &quot;fix the tests because ....&quot;

&gt; Index: LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt
&gt; ===================================================================
&gt; --- LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt	(revision 40698)
&gt; +++ LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt	(working copy)
&gt; @@ -9,7 +9,7 @@ layer at (0,0) size 480x360
&gt;        RenderPath {polyline} at (211.66,216.46) size 49.87x59.99 [transform={m=((0.97,0.26)(-0.26,0.97)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=9.00]}] [data=&quot;M200.00,120.00 L200.00,140.00 L220.00,140.00 L220.00,160.00&quot;]
&gt;        RenderPath {line} at (44.26,12.13) size 29.49x53.74 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M40.00,50.00 L20.00,10.00&quot;]
&gt;        RenderPath {line} at (123.13,11.26) size 105.74x55.49 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M160.00,50.00 L80.00,10.00&quot;]
&gt; -      RenderPath {line} at (59,38.35) size 117.00x1.30 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M30.00,30.00 L120.00,30.00&quot;]
&gt; +      RenderPath {line} at (59,38.35) size 117x1.30 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M30.00,30.00 L120.00,30.00&quot;]

Why are we seeing decimal numbers here when we didn&apos;t before?

&gt; Index: LayoutTests/platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt
&gt; ===================================================================
&gt; --- LayoutTests/platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt	(revision 40698)
&gt; +++ LayoutTests/platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt	(working copy)
&gt; @@ -29,8 +29,8 @@ layer at (0,0) size 450x500
&gt;                  chunk 1 text run 3 at (85.93,25.89) startOffset 0 endOffset 5 width 65.00: &quot; Good&quot;
&gt;            RenderSVGInlineText {#text} at (0,0) size 0x0
&gt;        RenderPath {line} at (50,129) size 350x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M50.00,130.00 L400.00,130.00&quot;]
&gt; -      RenderSVGText {text} at (58,125) size 351x20 contains 1 chunk(s)
&gt; -        RenderSVGInlineText {#text} at (-11,-15) size 351x20
&gt; +      RenderSVGText {text} at (58,125) size 350x20 contains 1 chunk(s)
&gt; +        RenderSVGInlineText {#text} at (-10,-15) size 350x20
&gt;            chunk 1 text run 1 at (58.00,125.00) startOffset 0 endOffset 13 width 142.00: &quot;Batik is Good&quot;
&gt;        RenderSVGContainer {g} at (40,146) size 330x55.52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,150.00)}]
&gt;          RenderSVGContainer {use} at (49.55,158.48) size 320.45x43.05
&gt; @@ -48,8 +48,8 @@ layer at (0,0) size 450x500
&gt;                  chunk 1 text run 3 at (237.33,22.64) startOffset 0 endOffset 5 width 65.00: &quot; Good&quot;
&gt;            RenderSVGInlineText {#text} at (0,0) size 0x0
&gt;        RenderPath {line} at (50,239) size 150x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data=&quot;M50.00,240.00 L200.00,240.00&quot;]
&gt; -      RenderSVGText {text} at (58,240) size 143x29 contains 1 chunk(s)
&gt; -        RenderSVGInlineText {#text} at (-9,-23) size 143x29
&gt; +      RenderSVGText {text} at (58,240) size 142x27 contains 1 chunk(s)
&gt; +        RenderSVGInlineText {#text} at (-8,-22) size 142x27
&gt;            chunk 1 text run 1 at (58.00,240.00) startOffset 0 endOffset 13 width 142.00: &quot;Batik is Good&quot;
&gt;        RenderSVGContainer {g} at (224,204) size 176x70 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,220.00)}]
&gt;          RenderSVGContainer {use} at (239.29,228.42) size 160.71x43.16

I don&apos;t think these RenderSVGText size changes are caused by your changes. You should not change these expecteds.
This also applies to lots of other updated results.
&gt; Index: LayoutTests/svg/custom/getTransformToElement.svg
&gt; ===================================================================
&gt; --- LayoutTests/svg/custom/getTransformToElement.svg	(revision 40698)
&gt; +++ LayoutTests/svg/custom/getTransformToElement.svg	(working copy)
&gt; @@ -14,7 +14,7 @@
&gt;              ctm = referenceElement.getTransformToElement(document.getElementById(&quot;redRect&quot;));
&gt;              if (ctm.a.toFixed(3) == 0.354 &amp;&amp; ctm.b.toFixed(3) == -0.354 &amp;&amp;
&gt;                  ctm.c.toFixed(3) == 0.354 &amp;&amp; ctm.d.toFixed(3) == 0.354 &amp;&amp;
&gt; -                 ctm.e.toFixed(3) == -107.071 &amp;&amp; ctm.f.toFixed(15) == 0.0) {
&gt; +                 ctm.e.toFixed(3) == -107.071 &amp;&amp; ctm.f.toFixed(8) == 0.0) {
&gt;                 try {
&gt;                   var ctm = referenceElement.getTransformToElement(document.getElementById(&quot;group0&quot;));
&gt;                 } catch(e) {

Inadvertent change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108732</commentid>
    <comment_count>19</comment_count>
      <attachid>27423</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-02-06 15:23:14 -0800</bug_when>
    <thetext>Created attachment 27423
replacement patch

This patch address most, if not all of Simon&apos;s comments. I&apos;ve reviewed all the changed test results and I believe that all the size differences are due to rounding differences. The on that looks suspicious is LayoutTests/svg/batik/textGlyphOrientationHorizontal.html, which differs by 2 pixels in some sizes. But I&apos;ve looked at the pixel test results and everything passes and looks good. So even here I think the difference must have to do with the precision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108734</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-02-06 15:25:02 -0800</bug_when>
    <thetext>This replacement patch also addresses a build problem on the Windows platform. With it, the Windows build works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108744</commentid>
    <comment_count>21</comment_count>
      <attachid>27423</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-06 15:39:32 -0800</bug_when>
    <thetext>Comment on attachment 27423
replacement patch

&gt; +
&gt; +static double v3Length(Vector3 a) 

Extra space at the end.

&gt; +{
&gt; +    return sqrt((a[0] * a[0])+(a[1] * a[1]) + (a[2] * a[2]));

Missing space.

&gt; +static void v3Combine (const Vector3 a, const Vector3 b, Vector3 result, double ascl, double bscl) 

Extra space before the (, and at the end.

&gt; +FloatPoint TransformationMatrix::mapPoint(const FloatPoint&amp; p) const
&gt;  {
&gt; -    return rotate(rad2deg(atan2(y, x)));
&gt; +    // If the matrix has 3D components, the z component of the result is
&gt; +    // dropped, effectively projecting the point into the z=0 plane

There&apos;s no need to have the same comment in the header and the implementation.

&gt; +    // If the matrix has 3D components, the z component of the result is
&gt; +    // dropped, effectively projecting the point into the z=0 plane

Ditto (and 2-3 more places.


&gt; +// This method returns the identity matrix if it is not invertible.
&gt; +// Use isInvertible() before calling this if you need to know.

This comment belongs in the header.

&gt; Index: WebCore/platform/graphics/transforms/TransformationMatrix.h
&gt; ===================================================================

&gt; +    void setMatrix(const Matrix4 m)
&gt; +    {
&gt; +        if (m &amp;&amp; m != m_matrix)
&gt; +            memcpy(m_matrix, m, 16 * sizeof(double));

sizeof(Matrix4) better, I think.

r=me with those nits addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108836</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-02-07 10:42:51 -0800</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/coords-trans-01-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/coords-trans-02-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/coords-trans-06-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-05-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-06-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-07-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-09-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/paths-data-15-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-09-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-12-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-frag-02-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt
Sending        LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt
Sending        LayoutTests/platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt
Sending        LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt
Sending        LayoutTests/platform/mac/svg/batik/text/verticalText-expected.txt
Sending        LayoutTests/platform/mac/svg/batik/text/verticalTextOnPath-expected.txt
Sending        LayoutTests/platform/mac/svg/carto.net/slider-expected.txt
Sending        LayoutTests/platform/mac/svg/carto.net/tabgroup-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/glyph-selection-lang-attribute-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/js-late-marker-creation-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/preserve-aspect-ratio-syntax-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/shapes-supporting-markers-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/use-css-no-effect-on-shadow-tree-expected.txt
Sending        LayoutTests/platform/mac/svg/custom/viewbox-syntax-expected.txt
Sending        LayoutTests/platform/mac/svg/hixie/perf/001-expected.txt
Sending        LayoutTests/platform/mac/svg/hixie/perf/002-expected.txt
Sending        LayoutTests/platform/mac/svg/hixie/perf/007-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-align-01-b-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-align-05-b-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-fonts-01-t-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-text-04-t-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-text-05-t-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-text-06-t-expected.txt
Sending        LayoutTests/platform/mac/svg/text/text-tref-01-b-expected.txt
Sending        LayoutTests/svg/custom/getTransformToElement.svg
Sending        WebCore/ChangeLog
Sending        WebCore/css/WebKitCSSMatrix.cpp
Sending        WebCore/html/CanvasRenderingContext2D.cpp
Sending        WebCore/html/HTMLCanvasElement.cpp
Sending        WebCore/platform/graphics/FloatPoint.cpp
Sending        WebCore/platform/graphics/Image.cpp
Sending        WebCore/platform/graphics/cg/GraphicsContextCG.cpp
Sending        WebCore/platform/graphics/cg/PatternCG.cpp
Sending        WebCore/platform/graphics/cg/TransformationMatrixCG.cpp
Sending        WebCore/platform/graphics/transforms/ScaleTransformOperation.h
Sending        WebCore/platform/graphics/transforms/TransformationMatrix.cpp
Sending        WebCore/platform/graphics/transforms/TransformationMatrix.h
Sending        WebCore/rendering/RenderForeignObject.cpp
Sending        WebCore/rendering/RenderLayer.cpp
Sending        WebCore/rendering/RenderPath.cpp
Sending        WebCore/rendering/RenderSVGImage.cpp
Sending        WebCore/rendering/RenderSVGRoot.cpp
Sending        WebCore/rendering/RenderSVGText.cpp
Sending        WebCore/rendering/RenderSVGViewportContainer.cpp
Sending        WebCore/rendering/SVGCharacterLayoutInfo.cpp
Sending        WebCore/rendering/SVGRootInlineBox.cpp
Sending        WebCore/svg/SVGAnimateMotionElement.cpp
Sending        WebCore/svg/SVGPreserveAspectRatio.cpp
Sending        WebCore/svg/SVGSVGElement.cpp
Sending        WebCore/svg/SVGTransform.cpp
Sending        WebCore/svg/SVGTransformDistance.cpp
Sending        WebCore/svg/graphics/SVGResourceClipper.cpp
Sending        WebCore/svg/graphics/SVGResourceMarker.cpp
Transmitting file data .................................................................................
Committed revision 40761.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6019</attachid>
            <date>2006-01-27 01:44:23 -0800</date>
            <delta_ts>2006-01-28 16:47:05 -0800</delta_ts>
            <desc>first cut -- after review I plan to re-read and do final refinements</desc>
            <filename>AffinePatch.txt</filename>
            <type>text/plain</type>
            <size>324098</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTI0MTEp
CisrKyBraHRtbC9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MTEsNyArNTExLDcgQEAKICAgICBJbnRSZWN0IHJlY3QgPSByLT5jYXJldFJlY3QocC5v
ZmZzZXQoKSk7CiAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgeSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDI7CisgICAgeSA9IHJlY3QudG9w
KCkgKyByZWN0LmhlaWdodCgpIC8gMjsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjIxLDcg
KzYyMSw3IEBACiAgICAgICAgIAogICAgIGlmIChyZWNhbGMgfHwgZnJhbWUtPnhQb3NGb3JWZXJ0
aWNhbEFycm93TmF2aWdhdGlvbigpID09IEZyYW1lOjpOb1hQb3NGb3JWZXJ0aWNhbEFycm93TmF2
aWdhdGlvbikgewogICAgICAgICBwb3MgPSBWaXNpYmxlUG9zaXRpb24ocG9zLCBtX3NlbC5hZmZp
bml0eSgpKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICB4ID0gcG9zLm5vZGUoKS0+cmVuZGVy
ZXIoKS0+Y2FyZXRSZWN0KHBvcy5vZmZzZXQoKSwgbV9zZWwuYWZmaW5pdHkoKSkueCgpOworICAg
ICAgICB4ID0gcG9zLm5vZGUoKS0+cmVuZGVyZXIoKS0+Y2FyZXRSZWN0KHBvcy5vZmZzZXQoKSwg
bV9zZWwuYWZmaW5pdHkoKSkubGVmdCgpOwogICAgICAgICBmcmFtZS0+c2V0WFBvc0ZvclZlcnRp
Y2FsQXJyb3dOYXZpZ2F0aW9uKHgpOwogICAgIH0KICAgICBlbHNlIHsKQEAgLTc1OSwxNyArNzU5
LDE1IEBACiAKIEludFJlY3QgU2VsZWN0aW9uQ29udHJvbGxlcjo6Y2FyZXRSZWN0KCkgY29uc3QK
IHsKLSAgICBpZiAobV9uZWVkc0xheW91dCkgeworICAgIGlmIChtX25lZWRzTGF5b3V0KQogICAg
ICAgICBjb25zdF9jYXN0PFNlbGVjdGlvbkNvbnRyb2xsZXIgKj4odGhpcyktPmxheW91dCgpOwot
ICAgIH0KICAgICAKICAgICBJbnRSZWN0IGNhcmV0ID0gbV9jYXJldFJlY3Q7Ci0gICAgCisKICAg
ICBpZiAobV9zZWwuc3RhcnQoKS5ub2RlKCkgJiYgbV9zZWwuc3RhcnQoKS5ub2RlKCktPnJlbmRl
cmVyKCkpIHsKICAgICAgICAgaW50IHgsIHk7CiAgICAgICAgIG1fc2VsLnN0YXJ0KCkubm9kZSgp
LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVBvc2l0aW9uKHgsIHkpOwotICAgICAgICBJbnRQb2ludCBk
aWZmID0gSW50UG9pbnQoeCwgeSkgLSBtX2NhcmV0UG9zaXRpb25PbkxheW91dDsKLSAgICAgICAg
Y2FyZXQubW92ZVRvcExlZnQoZGlmZik7CisgICAgICAgIGNhcmV0Lm1vdmUoSW50UG9pbnQoeCwg
eSkgLSBtX2NhcmV0UG9zaXRpb25PbkxheW91dCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNhcmV0
OwpAQCAtODI1LDEwICs4MjMsOSBAQAogICAgIGlmIChtX25lZWRzTGF5b3V0KQogICAgICAgICBs
YXlvdXQoKTsKICAgICAgICAgCi0gICAgSW50UmVjdCBjYXJldCA9IGNhcmV0UmVjdCgpOwotCi0g
ICAgaWYgKGNhcmV0LmlzVmFsaWQoKSkKLSAgICAgICAgcC0+ZmlsbFJlY3QoY2FyZXQgJiByZWN0
LCBCcnVzaCgpKTsKKyAgICBJbnRSZWN0IGNhcmV0ID0gaW50ZXJzZWN0aW9uKGNhcmV0UmVjdCgp
LCByZWN0KTsKKyAgICBpZiAoIWNhcmV0LmlzRW1wdHkoKSkKKyAgICAgICAgcC0+ZmlsbFJlY3Qo
Y2FyZXQsIEJydXNoKCkpOwogfQogCiB2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmRlYnVnUmVu
ZGVyZXIoUmVuZGVyT2JqZWN0ICpyLCBib29sIHNlbGVjdGVkKSBjb25zdApJbmRleDoga2h0bWwv
aHRtbC9odG1sX2lubGluZWltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwvaHRtbF9p
bmxpbmVpbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBraHRtbC9odG1sL2h0bWxfaW5saW5l
aW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDE5ICs3NCwxNyBAQAogICAgIC8vIEJlZm9y
ZSBjYWxsaW5nIGFic29sdXRlUmVjdHMsIGNoZWNrIGZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUg
dGhlIHJlbmRlcmVyCiAgICAgLy8gb3Igb25lIG9mIHRoZSBjb250aW51YXRpb25zIGlzIG5vbi1l
bXB0eSwgc2luY2UgdGhpcyBpcyBhIGZhc3RlciBjaGVjayBhbmQKICAgICAvLyBhbG1vc3QgYWx3
YXlzIHJldHVybnMgdHJ1ZS4KLSAgICBmb3IgKFJlbmRlck9iamVjdCAqciA9IHJlbmRlcmVyKCk7
IHI7IHIgPSByLT5jb250aW51YXRpb24oKSkgeworICAgIGZvciAoUmVuZGVyT2JqZWN0ICpyID0g
cmVuZGVyZXIoKTsgcjsgciA9IHItPmNvbnRpbnVhdGlvbigpKQogICAgICAgICBpZiAoci0+d2lk
dGgoKSA+IDAgJiYgci0+aGVpZ2h0KCkgPiAwKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQogCiAgICAgUVZhbHVlTGlzdDxJbnRSZWN0PiByZWN0czsKICAgICBpbnQgeCA9IDAsIHkg
PSAwOwogICAgIHJlbmRlcmVyKCktPmFic29sdXRlUG9zaXRpb24oeCwgeSk7CiAgICAgcmVuZGVy
ZXIoKS0+YWJzb2x1dGVSZWN0cyhyZWN0cywgeCwgeSk7Ci0gICAgZm9yIChRVmFsdWVMaXN0PElu
dFJlY3Q+OjpDb25zdEl0ZXJhdG9yIGl0ID0gcmVjdHMuYmVnaW4oKTsgaXQgIT0gcmVjdHMuZW5k
KCk7ICsraXQpIHsKLSAgICAgICAgaWYgKCgqaXQpLmlzVmFsaWQoKSkKKyAgICBmb3IgKFFWYWx1
ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3IgaXQgPSByZWN0cy5iZWdpbigpOyBpdCAhPSBy
ZWN0cy5lbmQoKTsgKytpdCkKKyAgICAgICAgaWYgKCEoKml0KS5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBr
aHRtbC9lY21hL2tqc193aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2VjbWEva2pzX3dp
bmRvdy5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTYxLDI2ICsxNjEsMTYgQEAKICAgY2FzZSBXaWR0aDoKICAgICBy
ZXR1cm4ganNOdW1iZXIoc2cud2lkdGgoKSk7CiAgIGNhc2UgQ29sb3JEZXB0aDoKLSAgY2FzZSBQ
aXhlbERlcHRoOiB7Ci0gICAgUVBhaW50RGV2aWNlTWV0cmljcyBtKFFBcHBsaWNhdGlvbjo6ZGVz
a3RvcCgpKTsKLSAgICByZXR1cm4ganNOdW1iZXIobS5kZXB0aCgpKTsKLSAgfQotICBjYXNlIEF2
YWlsTGVmdDogewotICAgIEludFJlY3QgY2xpcHBlZCA9IGluZm8ud29ya0FyZWEoKS5pbnRlcnNl
Y3Qoc2cpOwotICAgIHJldHVybiBqc051bWJlcihjbGlwcGVkLngoKS1zZy54KCkpOwotICB9Ci0g
IGNhc2UgQXZhaWxUb3A6IHsKLSAgICBJbnRSZWN0IGNsaXBwZWQgPSBpbmZvLndvcmtBcmVhKCku
aW50ZXJzZWN0KHNnKTsKLSAgICByZXR1cm4ganNOdW1iZXIoY2xpcHBlZC55KCktc2cueSgpKTsK
LSAgfQotICBjYXNlIEF2YWlsSGVpZ2h0OiB7Ci0gICAgSW50UmVjdCBjbGlwcGVkID0gaW5mby53
b3JrQXJlYSgpLmludGVyc2VjdChzZyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGNsaXBwZWQuaGVp
Z2h0KCkpOwotICB9Ci0gIGNhc2UgQXZhaWxXaWR0aDogewotICAgIEludFJlY3QgY2xpcHBlZCA9
IGluZm8ud29ya0FyZWEoKS5pbnRlcnNlY3Qoc2cpOwotICAgIHJldHVybiBqc051bWJlcihjbGlw
cGVkLndpZHRoKCkpOwotICB9CisgIGNhc2UgUGl4ZWxEZXB0aDoKKyAgICByZXR1cm4ganNOdW1i
ZXIoUVBhaW50RGV2aWNlTWV0cmljcygwKS5kZXB0aCgpKTsKKyAgY2FzZSBBdmFpbExlZnQ6Cisg
ICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlvbihpbmZvLndvcmtBcmVhKCksIHNnKS5sZWZ0
KCkgLSBzZy5sZWZ0KCkpOworICBjYXNlIEF2YWlsVG9wOgorICAgIHJldHVybiBqc051bWJlcihp
bnRlcnNlY3Rpb24oaW5mby53b3JrQXJlYSgpLCBzZykudG9wKCkgLSBzZy50b3AoKSk7CisgIGNh
c2UgQXZhaWxIZWlnaHQ6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlvbihpbmZvLndv
cmtBcmVhKCksIHNnKS5oZWlnaHQoKSk7CisgIGNhc2UgQXZhaWxXaWR0aDoKKyAgICByZXR1cm4g
anNOdW1iZXIoaW50ZXJzZWN0aW9uKGluZm8ud29ya0FyZWEoKSwgc2cpLndpZHRoKCkpOwogICBk
ZWZhdWx0OgogICAgIGtkV2FybmluZygpIDw8ICJTY3JlZW46OmdldFZhbHVlUHJvcGVydHkgdW5o
YW5kbGVkIHRva2VuICIgPDwgdG9rZW4gPDwgZW5kbDsKICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKQEAgLTYyMCwyMiArNjEwLDIyIEBACiAgICAgd2FyZ3MuaGVpZ2h0ID0gaW50RmVhdHVyZShm
ZWF0dXJlcywgImRpYWxvZ2hlaWdodCIsIDEwMCwgc2NyZWVuUmVjdC5oZWlnaHQoKSwgNDUwKTsg
Ly8gZGVmYXVsdCBoZXJlIGNhbWUgZnJvbSBmcmFtZSBzaXplIG9mIGRpYWxvZyBpbiBNYWNJRQog
ICAgIHdhcmdzLmhlaWdodFNldCA9IHRydWU7CiAKLSAgICB3YXJncy54ID0gaW50RmVhdHVyZShm
ZWF0dXJlcywgImRpYWxvZ2xlZnQiLCBzY3JlZW5SZWN0LngoKSwgc2NyZWVuUmVjdC54KCkgKyBz
Y3JlZW5SZWN0LndpZHRoKCkgLSB3YXJncy53aWR0aCwgLTEpOworICAgIHdhcmdzLnggPSBpbnRG
ZWF0dXJlKGZlYXR1cmVzLCAiZGlhbG9nbGVmdCIsIHNjcmVlblJlY3QubGVmdCgpLCBzY3JlZW5S
ZWN0LmxlZnQoKSArIHNjcmVlblJlY3Qud2lkdGgoKSAtIHdhcmdzLndpZHRoLCAtMSk7CiAgICAg
d2FyZ3MueFNldCA9IHdhcmdzLnggPiAwOwotICAgIHdhcmdzLnkgPSBpbnRGZWF0dXJlKGZlYXR1
cmVzLCAiZGlhbG9ndG9wIiwgc2NyZWVuUmVjdC55KCksIHNjcmVlblJlY3QueSgpICsgc2NyZWVu
UmVjdC5oZWlnaHQoKSAtIHdhcmdzLmhlaWdodCwgLTEpOworICAgIHdhcmdzLnkgPSBpbnRGZWF0
dXJlKGZlYXR1cmVzLCAiZGlhbG9ndG9wIiwgc2NyZWVuUmVjdC50b3AoKSwgc2NyZWVuUmVjdC50
b3AoKSArIHNjcmVlblJlY3QuaGVpZ2h0KCkgLSB3YXJncy5oZWlnaHQsIC0xKTsKICAgICB3YXJn
cy55U2V0ID0gd2FyZ3MueSA+IDA7CiAKICAgICBpZiAoYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJj
ZW50ZXIiLCB0cnVlKSkgewogICAgICAgICBpZiAoIXdhcmdzLnhTZXQpIHsKLSAgICAgICAgICAg
IHdhcmdzLnggPSBzY3JlZW5SZWN0LngoKSArIChzY3JlZW5SZWN0LndpZHRoKCkgLSB3YXJncy53
aWR0aCkgLyAyOworICAgICAgICAgICAgd2FyZ3MueCA9IHNjcmVlblJlY3QubGVmdCgpICsgKHNj
cmVlblJlY3Qud2lkdGgoKSAtIHdhcmdzLndpZHRoKSAvIDI7CiAgICAgICAgICAgICB3YXJncy54
U2V0ID0gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBpZiAoIXdhcmdzLnlTZXQpIHsKLSAgICAg
ICAgICAgIHdhcmdzLnkgPSBzY3JlZW5SZWN0LnkoKSArIChzY3JlZW5SZWN0LmhlaWdodCgpIC0g
d2FyZ3MuaGVpZ2h0KSAvIDI7CisgICAgICAgICAgICB3YXJncy55ID0gc2NyZWVuUmVjdC50b3Ao
KSArIChzY3JlZW5SZWN0LmhlaWdodCgpIC0gd2FyZ3MuaGVpZ2h0KSAvIDI7CiAgICAgICAgICAg
ICB3YXJncy55U2V0ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KLSAgICAgICAgCisKICAgICB3
YXJncy5kaWFsb2cgPSB0cnVlOwogICAgIHdhcmdzLnJlc2l6YWJsZSA9IGJvb2xGZWF0dXJlKGZl
YXR1cmVzLCAicmVzaXphYmxlIik7CiAgICAgd2FyZ3Muc2Nyb2xsQmFyc1Zpc2libGUgPSBib29s
RmVhdHVyZShmZWF0dXJlcywgInNjcm9sbCIsIHRydWUpOwpAQCAtNzU1LDI0ICs3NDUsMTkgQEAK
ICAgICBjYXNlIFBlcnNvbmFsYmFyOgogICAgICAgcmV0dXJuIHBlcnNvbmFsYmFyKGV4ZWMpOwog
ICAgIGNhc2UgU2NyZWVuTGVmdDoKLSAgICBjYXNlIFNjcmVlblg6IHsKLSAgICAgIGlmIChtX2Zy
YW1lLT52aWV3KCkpIHsKLSAgICAgICAgLy8gV2Ugd2FudCB0byB1c2UgZnJhbWVHZW9tZXRyeSBo
ZXJlIGluc3RlYWQgb2YgbWFwVG9HbG9iYWwgYmVjYXVzZSBpdCBnb2VzIHRocm91Z2gKLSAgICAg
ICAgLy8gdGhlIHdpbmRvd0ZyYW1lIG1ldGhvZCBvZiB0aGUgV2ViS2l0J3MgVUkgZGVsZWdhdGUu
IEFsc28gd2UgZG9uJ3Qgd2FudCB0byB0cnkKLSAgICAgICAgLy8gdG8gZG8gYW55dGhpbmcgcmVs
YXRpdmUgdG8gdGhlIHNjcmVlbiB0aGUgd2luZG93IGlzIG9uLCBzbyB0aGUgY29kZSBiZWxvdyBp
cyBubwotICAgICAgICAvLyBnb29kIG9mIHVzIGFueXdheS4KLSAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9tZXRyeSgpLngo
KSk7Ci0gICAgICB9IGVsc2UKKyAgICBjYXNlIFNjcmVlblg6CisgICAgICBpZiAoIW1fZnJhbWUt
PnZpZXcoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQorICAgICAgLy8g
V2Ugd2FudCB0byB1c2UgZnJhbWVHZW9tZXRyeSBoZXJlIGluc3RlYWQgb2YgbWFwVG9HbG9iYWwg
YmVjYXVzZSBpdCBnb2VzIHRocm91Z2gKKyAgICAgIC8vIHRoZSB3aW5kb3dGcmFtZSBtZXRob2Qg
b2YgdGhlIFdlYktpdCdzIFVJIGRlbGVnYXRlLiBBbHNvIHdlIGRvbid0IHdhbnQgdG8gdHJ5Cisg
ICAgICAvLyB0byBkbyBhbnl0aGluZyByZWxhdGl2ZSB0byB0aGUgc2NyZWVuIHRoZSB3aW5kb3cg
aXMgb24uCisgICAgICByZXR1cm4ganNOdW1iZXIobV9mcmFtZS0+dmlldygpLT50b3BMZXZlbFdp
ZGdldCgpLT5mcmFtZUdlb21ldHJ5KCkubGVmdCgpKTsKICAgICBjYXNlIFNjcmVlblRvcDoKLSAg
ICBjYXNlIFNjcmVlblk6IHsKLSAgICAgIGlmIChtX2ZyYW1lLT52aWV3KCkpIHsKLSAgICAgICAg
Ly8gU2VlIGNvbW1lbnQgYWJvdmUgaW4gU2NyZWVuWC4KLSAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9tZXRyeSgpLnkoKSk7
Ci0gICAgICB9IGVsc2UgCisgICAgY2FzZSBTY3JlZW5ZOgorICAgICAgaWYgKCFtX2ZyYW1lLT52
aWV3KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KKyAgICAgIC8vIFNl
ZSBjb21tZW50IGFib3ZlIGluIFNjcmVlblguCisgICAgICByZXR1cm4ganNOdW1iZXIobV9mcmFt
ZS0+dmlldygpLT50b3BMZXZlbFdpZGdldCgpLT5mcmFtZUdlb21ldHJ5KCkudG9wKCkpOwogICAg
IGNhc2UgU2Nyb2xsWDoKICAgICAgIGlmICghbV9mcmFtZS0+dmlldygpKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKQEAgLTE1MzEsMjIgKzE1MTYsMjIgQEAKICAgICB9CiB9CiAKLXN0
YXRpYyB2b2lkIGNvbnN0cmFpblRvVmlzaWJsZShjb25zdCBJbnRSZWN0ICZzY3JlZW4sIFdpbmRv
d0FyZ3MmIHdpbmRvd0FyZ3MpCitzdGF0aWMgdm9pZCBjb25zdHJhaW5Ub1Zpc2libGUoY29uc3Qg
SW50UmVjdCYgc2NyZWVuLCBXaW5kb3dBcmdzJiB3aW5kb3dBcmdzKQogewotICAgIHdpbmRvd0Fy
Z3MueCArPSBzY3JlZW4ueCgpOwotICAgIGlmICh3aW5kb3dBcmdzLnggPCBzY3JlZW4ueCgpIHx8
IHdpbmRvd0FyZ3MueCA+IHNjcmVlbi5yaWdodCgpKQotICAgICAgICB3aW5kb3dBcmdzLnggPSBz
Y3JlZW4ueCgpOyAvLyBvbmx5IHNhZmUgY2hvaWNlIHVudGlsIHNpemUgaXMgZGV0ZXJtaW5lZAor
ICAgIHdpbmRvd0FyZ3MueCArPSBzY3JlZW4ubGVmdCgpOworICAgIGlmICh3aW5kb3dBcmdzLngg
PCBzY3JlZW4ubGVmdCgpIHx8IHdpbmRvd0FyZ3MueCA+PSBzY3JlZW4ucmlnaHQoKSkKKyAgICAg
ICAgd2luZG93QXJncy54ID0gc2NyZWVuLmxlZnQoKTsKICAgICAKLSAgICB3aW5kb3dBcmdzLnkg
Kz0gc2NyZWVuLnkoKTsKLSAgICBpZiAod2luZG93QXJncy55IDwgc2NyZWVuLnkoKSB8fCB3aW5k
b3dBcmdzLnkgPiBzY3JlZW4uYm90dG9tKCkpCi0gICAgICAgIHdpbmRvd0FyZ3MueSA9IHNjcmVl
bi55KCk7IC8vIG9ubHkgc2FmZSBjaG9pY2UgdW50aWwgc2l6ZSBpcyBkZXRlcm1pbmVkCisgICAg
d2luZG93QXJncy55ICs9IHNjcmVlbi50b3AoKTsKKyAgICBpZiAod2luZG93QXJncy55IDwgc2Ny
ZWVuLnRvcCgpIHx8IHdpbmRvd0FyZ3MueSA+PSBzY3JlZW4uYm90dG9tKCkpCisgICAgICAgIHdp
bmRvd0FyZ3MueSA9IHNjcmVlbi50b3AoKTsKICAgICAKLSAgICBpZiAod2luZG93QXJncy5oZWln
aHQgPiBzY3JlZW4uaGVpZ2h0KCkpICAvLyBzaG91bGQgYWN0dWFsbHkgY2hlY2sgd29ya3NwYWNl
CisgICAgaWYgKHdpbmRvd0FyZ3MuaGVpZ2h0ID4gc2NyZWVuLmhlaWdodCgpKQogICAgICAgICB3
aW5kb3dBcmdzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQoKTsKICAgICBpZiAod2luZG93QXJncy5o
ZWlnaHQgPCAxMDApCiAgICAgICAgIHdpbmRvd0FyZ3MuaGVpZ2h0ID0gMTAwOwogICAgIAotICAg
IGlmICh3aW5kb3dBcmdzLndpZHRoID4gc2NyZWVuLndpZHRoKCkpICAgIC8vIHNob3VsZCBhY3R1
YWxseSBjaGVjayB3b3Jrc3BhY2UKKyAgICBpZiAod2luZG93QXJncy53aWR0aCA+IHNjcmVlbi53
aWR0aCgpKQogICAgICAgICB3aW5kb3dBcmdzLndpZHRoID0gc2NyZWVuLndpZHRoKCk7CiAgICAg
aWYgKHdpbmRvd0FyZ3Mud2lkdGggPCAxMDApCiAgICAgICAgIHdpbmRvd0FyZ3Mud2lkdGggPSAx
MDA7CkBAIC0xNjc4LDIwICsxNjYzLDE5IEBACiAgIGNhc2UgV2luZG93OjpTY3JvbGw6CiAgIGNh
c2UgV2luZG93OjpTY3JvbGxUbzoKICAgICB3aW5kb3ctPnVwZGF0ZUxheW91dCgpOwotICAgIGlm
KGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KQorICAgIGlmIChhcmdzLnNpemUoKSA+PSAyICYm
IHdpZGdldCkKICAgICAgIHdpZGdldC0+c2V0Q29udGVudHNQb3MoYXJnc1swXS0+dG9JbnQzMihl
eGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAgIGNhc2UgV2luZG93OjpNb3ZlQnk6Ci0gICAgaWYoYXJncy5zaXplKCkgPj0gMiAmJiB3aWRn
ZXQpCi0gICAgewotICAgICAgUVdpZGdldCAqIHRsID0gd2lkZ2V0LT50b3BMZXZlbFdpZGdldCgp
OwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVu
R2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJlcih0bCkpOwotICAg
ICAgSW50UG9pbnQgZGVzdCA9IHRsLT5wb3MoKSArIEludFBvaW50KCBhcmdzWzBdLT50b0ludDMy
KGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICk7Ci0gICAgICAvLyBTZWN1cml0eSBjaGVj
ayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUg
dGhpcyBjaGVjay4uLikKLSAgICAgIGlmICggZGVzdC54KCkgPj0gc2cueCgpICYmIGRlc3QueSgp
ID49IHNnLngoKSAmJgotICAgICAgICAgICBkZXN0LngoKSt0bC0+d2lkdGgoKSA8PSBzZy53aWR0
aCgpK3NnLngoKSAmJgotICAgICAgICAgICBkZXN0LnkoKSt0bC0+aGVpZ2h0KCkgPD0gc2cuaGVp
Z2h0KCkrc2cueSgpICkKLSAgICAgICAgdGwtPm1vdmUoIGRlc3QgKTsKKyAgICBpZiAoYXJncy5z
aXplKCkgPj0gMiAmJiB3aWRnZXQpIHsKKyAgICAgIFFXaWRnZXQqIHRsID0gd2lkZ2V0LT50b3BM
ZXZlbFdpZGdldCgpOworICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgp
LT5zY3JlZW5HZW9tZXRyeShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuTnVtYmVyKHRs
KSk7CisgICAgICBJbnRQb2ludCBkZXN0ID0gdGwtPnBvcygpICsgSW50UG9pbnQoYXJnc1swXS0+
dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CisgICAgICAvLyBTZWN1cml0
eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRp
c2FibGUgdGhpcyBjaGVjaykKKyAgICAgIGlmIChkZXN0LngoKSA+PSBzZy5sZWZ0KCkgJiYgZGVz
dC55KCkgPj0gc2cubGVmdCgpICYmCisgICAgICAgICAgIGRlc3QueCgpK3RsLT53aWR0aCgpIDw9
IHNnLndpZHRoKCkrc2cubGVmdCgpICYmCisgICAgICAgICAgIGRlc3QueSgpK3RsLT5oZWlnaHQo
KSA8PSBzZy5oZWlnaHQoKStzZy50b3AoKSApCisgICAgICAgIHRsLT5tb3ZlKGRlc3QpOwogICAg
IH0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgY2FzZSBXaW5kb3c6Ok1vdmVUbzoKQEAg
LTE2OTksMTEgKzE2ODMsMTEgQEAKICAgICB7CiAgICAgICBRV2lkZ2V0ICogdGwgPSB3aWRnZXQt
PnRvcExldmVsV2lkZ2V0KCk7CiAgICAgICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6
ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVu
TnVtYmVyKHRsKSk7Ci0gICAgICBJbnRQb2ludCBkZXN0KCBhcmdzWzBdLT50b0ludDMyKGV4ZWMp
K3NnLngoKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKStzZy55KCkgKTsKKyAgICAgIEludFBvaW50
IGRlc3QoIGFyZ3NbMF0tPnRvSW50MzIoZXhlYykrc2cubGVmdCgpLCBhcmdzWzFdLT50b0ludDMy
KGV4ZWMpK3NnLnRvcCgpICk7CiAgICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFs
a3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikK
LSAgICAgIGlmICggZGVzdC54KCkgPj0gc2cueCgpICYmIGRlc3QueSgpID49IHNnLnkoKSAmJgot
ICAgICAgICAgICBkZXN0LngoKSt0bC0+d2lkdGgoKSA8PSBzZy53aWR0aCgpK3NnLngoKSAmJgot
ICAgICAgICAgICBkZXN0LnkoKSt0bC0+aGVpZ2h0KCkgPD0gc2cuaGVpZ2h0KCkrc2cueSgpICkK
KyAgICAgIGlmICggZGVzdC54KCkgPj0gc2cubGVmdCgpICYmIGRlc3QueSgpID49IHNnLnRvcCgp
ICYmCisgICAgICAgICAgIGRlc3QueCgpK3RsLT53aWR0aCgpIDw9IHNnLndpZHRoKCkrc2cubGVm
dCgpICYmCisgICAgICAgICAgIGRlc3QueSgpK3RsLT5oZWlnaHQoKSA8PSBzZy5oZWlnaHQoKStz
Zy50b3AoKSApCiAgICAgICAgIHRsLT5tb3ZlKCBkZXN0ICk7CiAgICAgfQogICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwpAQCAtMTcxMSwxMiArMTY5NSwxMSBAQAogICAgIGlmKGFyZ3Muc2l6ZSgp
ID49IDIgJiYgd2lkZ2V0KQogICAgIHsKICAgICAgIFFXaWRnZXQgKiB0bCA9IHdpZGdldC0+dG9w
TGV2ZWxXaWRnZXQoKTsKLSAgICAgIEludFNpemUgZGVzdCA9IHRsLT5zaXplKCkgKyBJbnRTaXpl
KCBhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICk7Ci0gICAg
ICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRy
eShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuTnVtYmVyKHRsKSk7CisgICAgICBJbnRT
aXplIGRlc3QgPSB0bC0+c2l6ZSgpICsgSW50U2l6ZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBh
cmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246
OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVl
bk51bWJlcih0bCkpOwogICAgICAgLy8gU2VjdXJpdHkgY2hlY2s6IHdpdGhpbiBkZXNrdG9wIGxp
bWl0cyBhbmQgYmlnZ2VyIHRoYW4gMTAweDEwMCAocGVyIHNwZWMpCi0gICAgICBpZiAoIHRsLT54
KCkrZGVzdC53aWR0aCgpIDw9IHNnLngoKStzZy53aWR0aCgpICYmCi0gICAgICAgICAgIHRsLT55
KCkrZGVzdC5oZWlnaHQoKSA8PSBzZy55KCkrc2cuaGVpZ2h0KCkgJiYKLSAgICAgICAgICAgZGVz
dC53aWR0aCgpID49IDEwMCAmJiBkZXN0LmhlaWdodCgpID49IDEwMCApCisgICAgICBpZiAodGwt
PngoKSArIGRlc3Qud2lkdGgoKSA8PSBzZy5yaWdodCgpICYmIHRsLT55KCkgKyBkZXN0LmhlaWdo
dCgpIDw9IHNnLmJvdHRvbSgpCisgICAgICAgICAgICYmIGRlc3Qud2lkdGgoKSA+PSAxMDAgJiYg
ZGVzdC5oZWlnaHQoKSA+PSAxMDAgKQogICAgICAgewogICAgICAgICAvLyBUYWtlIGludG8gYWNj
b3VudCB0aGUgd2luZG93IGZyYW1lCiAgICAgICAgIGludCBkZWx0YVdpZHRoID0gdGwtPmZyYW1l
R2VvbWV0cnkoKS53aWR0aCgpIC0gdGwtPndpZHRoKCk7CkBAIC0xNzI5LDExICsxNzEyLDEwIEBA
CiAgICAgaWYoYXJncy5zaXplKCkgPj0gMiAmJiB3aWRnZXQpCiAgICAgewogICAgICAgUVdpZGdl
dCAqIHRsID0gd2lkZ2V0LT50b3BMZXZlbFdpZGdldCgpOwotICAgICAgSW50U2l6ZSBkZXN0ID0g
SW50U2l6ZSggYXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSAp
OwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVu
R2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJlcih0bCkpOworICAg
ICAgSW50U2l6ZSBkZXN0ID0gSW50U2l6ZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFd
LT50b0ludDMyKGV4ZWMpKTsKKyAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0
b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJl
cih0bCkpOwogICAgICAgLy8gU2VjdXJpdHkgY2hlY2s6IHdpdGhpbiBkZXNrdG9wIGxpbWl0cyBh
bmQgYmlnZ2VyIHRoYW4gMTAweDEwMCAocGVyIHNwZWMpCi0gICAgICBpZiAoIHRsLT54KCkrZGVz
dC53aWR0aCgpIDw9IHNnLngoKStzZy53aWR0aCgpICYmCi0gICAgICAgICAgIHRsLT55KCkrZGVz
dC5oZWlnaHQoKSA8PSBzZy55KCkrc2cuaGVpZ2h0KCkgJiYKKyAgICAgIGlmICh0bC0+eCgpICsg
ZGVzdC53aWR0aCgpIDw9IHNnLnJpZ2h0KCkgJiYgdGwtPnkoKSArIGRlc3QuaGVpZ2h0KCkgPD0g
c2cuYm90dG9tKCkgJiYKICAgICAgICAgICAgZGVzdC53aWR0aCgpID49IDEwMCAmJiBkZXN0Lmhl
aWdodCgpID49IDEwMCApCiAgICAgICB7CiAgICAgICAgIC8vIFRha2UgaW50byBhY2NvdW50IHRo
ZSB3aW5kb3cgZnJhbWUKSW5kZXg6IGtodG1sL21pc2Mva2h0bWxsYXlvdXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBraHRtbC9taXNjL2todG1sbGF5b3V0LmgJKHJldmlzaW9uIDEyNDExKQorKysga2h0bWwv
bWlzYy9raHRtbGxheW91dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsMTQgKzExNCwxNSBAQAog
ICAgICAgICBJbnRSZWN0IGNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyOyB9CiAgICAg
ICAgIEludFJlY3QgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0OyB9CiAgICAgICAgIAot
ICAgICAgICB2b2lkIHVuaXRlTGVmdChjb25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdCA9IG1fbGVm
dC51bml0ZShyKTsgfQotICAgICAgICB2b2lkIHVuaXRlQ2VudGVyKGNvbnN0IEludFJlY3QmIHIp
IHsgbV9jZW50ZXIgPSBtX2NlbnRlci51bml0ZShyKTsgfQotICAgICAgICB2b2lkIHVuaXRlUmln
aHQoY29uc3QgSW50UmVjdCYgcikgeyBtX3JpZ2h0ID0gbV9yaWdodC51bml0ZShyKTsgfQorICAg
ICAgICB2b2lkIHVuaXRlTGVmdChjb25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdC51bml0ZShyKTsg
fQorICAgICAgICB2b2lkIHVuaXRlQ2VudGVyKGNvbnN0IEludFJlY3QmIHIpIHsgbV9jZW50ZXIu
dW5pdGUocik7IH0KKyAgICAgICAgdm9pZCB1bml0ZVJpZ2h0KGNvbnN0IEludFJlY3QmIHIpIHsg
bV9yaWdodC51bml0ZShyKTsgfQogICAgICAgICB2b2lkIHVuaXRlKGNvbnN0IEdhcFJlY3RzJiBv
KSB7IHVuaXRlTGVmdChvLmxlZnQoKSk7IHVuaXRlQ2VudGVyKG8uY2VudGVyKCkpOyB1bml0ZVJp
Z2h0KG8ucmlnaHQoKSk7IH0KIAogICAgICAgICBvcGVyYXRvciBJbnRSZWN0KCkgY29uc3Qgewot
ICAgICAgICAgICAgSW50UmVjdCByZXN1bHQgPSBtX2xlZnQudW5pdGUobV9jZW50ZXIpOwotICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnVuaXRlKG1fcmlnaHQpOworICAgICAgICAgICAgSW50
UmVjdCByZXN1bHQgPSBtX2xlZnQ7CisgICAgICAgICAgICByZXN1bHQudW5pdGUobV9jZW50ZXIp
OworICAgICAgICAgICAgcmVzdWx0LnVuaXRlKG1fcmlnaHQpOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR2FwUmVj
dHMmIG90aGVyKSB7CkluZGV4OiBwbGF0Zm9ybS9GbG9hdFNpemUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHBsYXRmb3JtL0Zsb2F0U2l6ZS5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vRmxv
YXRTaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNDUgKzI2LDEzIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKwogI2luY2x1ZGUgIkludFNpemUu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFNpemU6OkZsb2F0U2l6ZSgpIDogdygt
MS4wZiksIGgoLTEuMGYpCitGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBJbnRTaXplJiBzaXpl
KSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkKIHsKIH0K
IAotRmxvYXRTaXplOjpGbG9hdFNpemUoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgOiB3KHdp
ZHRoKSwgaChoZWlnaHQpCi17CiB9Ci0KLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IEludFNp
emUmIG8pIDogdyhvLndpZHRoKCkpLCBoKG8uaGVpZ2h0KCkpCi17Ci19Ci0KLWJvb2wgRmxvYXRT
aXplOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA+PSAwLjBmICYmIGggPj0gMC4w
ZjsKLX0KLQotRmxvYXRTaXplIEZsb2F0U2l6ZTo6ZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUm
IG8pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSh3ID4gby53ID8gdyA6IG8udywgaCA+
IG8uaCA/IGggOiBvLmgpOwotfQotCi1GbG9hdFNpemUgb3BlcmF0b3IrKGNvbnN0IEZsb2F0U2l6
ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBGbG9hdFNpemUoYS53ICsg
Yi53LCBhLmggKyBiLmgpOwotfQotCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRTaXplJiBh
LCBjb25zdCBGbG9hdFNpemUmIGIpCi17Ci0gICAgcmV0dXJuIGEudyA9PSBiLncgJiYgYS5oID09
IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxv
YXRTaXplJiBiKQotewotICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBiLmg7Ci19Ci0K
LX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBwbGF0Zm9ybS9JbnRSZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkocmV2aXNpb24gMTI0MTEpCisr
KyBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorCiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTMyLDE2MCArMzMsNTIgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1JbnRSZWN0OjpJbnRSZWN0KCkgOiB4cCgwKSwgeXAoMCksIHco
MCksIGgoMCkKK2Jvb2wgSW50UmVjdDo6aW50ZXJzZWN0cyhjb25zdCBJbnRSZWN0JiBvdGhlcikg
Y29uc3QKIHsKKyAgICAvLyBDaGVja2luZyBlbXB0aW5lc3MgaGFuZGxlcyBuZWdhdGl2ZSB3aWR0
aHMgYXMgd2VsbCBhcyB6ZXJvLgorICAgIHJldHVybiAhaXNFbXB0eSgpICYmICFvdGhlci5pc0Vt
cHR5KCkKKyAgICAgICAgJiYgbGVmdCgpIDwgb3RoZXIucmlnaHQoKSAmJiBvdGhlci5sZWZ0KCkg
PCByaWdodCgpCisgICAgICAgICYmIHRvcCgpIDwgb3RoZXIuYm90dG9tKCkgJiYgb3RoZXIudG9w
KCkgPCBib3R0b20oKTsKIH0KIAotSW50UmVjdDo6SW50UmVjdChpbnQgeCwgaW50IHksIGludCB3
aWR0aCwgaW50IGhlaWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgpLCBoKGhlaWdodCkKK2Jv
b2wgSW50UmVjdDo6Y29udGFpbnMoY29uc3QgSW50UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAg
cmV0dXJuIGxlZnQoKSA8PSBvdGhlci5sZWZ0KCkgJiYgcmlnaHQoKSA+PSBvdGhlci5yaWdodCgp
CisgICAgICAgICYmIHRvcCgpIDw9IG90aGVyLnRvcCgpICYmIGJvdHRvbSgpID49IG90aGVyLmJv
dHRvbSgpOwogfQogCi1JbnRSZWN0OjpJbnRSZWN0KEludFBvaW50IHAsIEludFNpemUgcykgOiB4
cChwLngoKSksIHlwKHAueSgpKSwgdyhzLndpZHRoKCkpLCBoKHMuaGVpZ2h0KCkpCit2b2lkIElu
dFJlY3Q6OmludGVyc2VjdChjb25zdCBJbnRSZWN0JiBvdGhlcikKIHsKLX0KKyAgICBpbnQgbCA9
IG1heChsZWZ0KCksIG90aGVyLmxlZnQoKSk7CisgICAgaW50IHQgPSBtYXgodG9wKCksIG90aGVy
LnRvcCgpKTsKKyAgICBpbnQgciA9IG1pbihyaWdodCgpLCBvdGhlci5yaWdodCgpKTsKKyAgICBp
bnQgYiA9IG1pbihib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOwogCi1JbnRSZWN0OjpJbnRSZWN0
KGNvbnN0IEludFBvaW50ICZ0b3BMZWZ0LCBjb25zdCBJbnRQb2ludCAmYm90dG9tUmlnaHQpCi17
Ci0gICAgeHAgPSB0b3BMZWZ0LngoKTsKLSAgICB5cCA9IHRvcExlZnQueSgpOwotICAgIHcgPSBi
b3R0b21SaWdodC54KCkgLSB0b3BMZWZ0LngoKSArIDE7Ci0gICAgaCA9IGJvdHRvbVJpZ2h0Lnko
KSAtIHRvcExlZnQueSgpICsgMTsKLX0KLQotYm9vbCBJbnRSZWN0Ojppc051bGwoKSBjb25zdAot
ewotICAgIHJldHVybiB3ID09IDAgJiYgaCA9PSAwOwotfQotCi1ib29sIEludFJlY3Q6OmlzVmFs
aWQoKSBjb25zdAotewotICAgIHJldHVybiB3ID4gMCAmJiBoID4gMDsKLX0KLQotYm9vbCBJbnRS
ZWN0Ojppc0VtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA8PSAwIHx8IGggPD0gMDsKLX0K
LQotaW50IEludFJlY3Q6OnJpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4geHAgKyB3IC0gMTsK
LX0KLQotaW50IEludFJlY3Q6OmJvdHRvbSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHlwICsgaCAt
IDE7Ci19Ci0KLUludFBvaW50IEludFJlY3Q6OnRvcExlZnQoKSBjb25zdAotewotICAgIHJldHVy
biBJbnRQb2ludCh4cCx5cCk7Ci19Ci0KLUludFBvaW50IEludFJlY3Q6OnRvcFJpZ2h0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gSW50UG9pbnQocmlnaHQoKSx0b3AoKSk7Ci19Ci0KLUludFBvaW50
IEludFJlY3Q6OmJvdHRvbVJpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50UG9pbnQocmln
aHQoKSxib3R0b20oKSk7Ci19Ci0KLUludFBvaW50IEludFJlY3Q6OmJvdHRvbUxlZnQoKSBjb25z
dAotewotICAgIHJldHVybiBJbnRQb2ludChsZWZ0KCksYm90dG9tKCkpOwotfQotCi1JbnRTaXpl
IEludFJlY3Q6OnNpemUoKSBjb25zdAotewotICAgIHJldHVybiBJbnRTaXplKHcsaCk7Ci19Ci0K
LUludFJlY3QgSW50UmVjdDo6dW5pdGUoY29uc3QgSW50UmVjdCAmcikgY29uc3QKLXsKLSAgICBp
ZiAoci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICAKLSAgICBpZiAoaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gcjsKLQotICAgIGludCBueCwgbnksIG53LCBuaDsKLQot
ICAgIG54ID0gbWluKHhwLCByLnhwKTsKLSAgICBueSA9IG1pbih5cCwgci55cCk7Ci0KLSAgICBp
ZiAoeHAgKyB3ID49IHIueHAgKyByLncpIHsKLSAgICAgICAgbncgPSB4cCArIHcgLSBueDsKLSAg
ICB9IGVsc2UgewotICAgICAgICBudyA9IHIueHAgKyByLncgLSBueDsgCisgICAgLy8gUmV0dXJu
IGEgY2xlYW4gZW1wdHkgcmVjdGFuZ2xlIGZvciBub24taW50ZXJzZWN0aW5nIGNhc2VzLgorICAg
IGlmIChsID49IHIgfHwgdCA+PSBiKSB7CisgICAgICAgIHNldFJlY3QoMCwgMCwgMCwgMCk7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoeXAgKyBoID49IHIueXAgKyByLmgpIHsK
LSAgICAgICAgbmggPSB5cCArIGggLSBueTsKLSAgICB9IGVsc2UgewotICAgICAgICBuaCA9IHIu
eXAgKyByLmggLSBueTsgCi0gICAgfQotCi0gICAgcmV0dXJuIEludFJlY3QobngsIG55LCBudywg
bmgpOworICAgIHNldFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKIH0KIAotSW50UmVjdCBJbnRS
ZWN0Ojpub3JtYWxpemUoKSBjb25zdAordm9pZCBJbnRSZWN0Ojp1bml0ZShjb25zdCBJbnRSZWN0
JiBvdGhlcikKIHsKLSAgICBJbnRSZWN0IG5ld1JlY3Q7Ci0gICAgCi0gICAgbmV3UmVjdC54cCAg
PSAodyA8IDApID8gKHhwIC0gdykgOiB4cDsKLSAgICBuZXdSZWN0LncgICA9ICh3IDwgMCkgPyAt
dyA6IHc7Ci0gICAgCi0gICAgbmV3UmVjdC55cCAgPSAoaCA8IDApID8gKHlwIC0gaCkgOiB5cDsK
LSAgICBuZXdSZWN0LmggICA9IChoIDwgMCkgPyAtaCA6IGg7Ci0gICAgCi0gICAgcmV0dXJuIG5l
d1JlY3Q7Ci19Ci0KLWJvb2wgSW50UmVjdDo6aW50ZXJzZWN0cyhjb25zdCBJbnRSZWN0ICZyKSBj
b25zdAotewotICAgIHJldHVybiBpbnRlcnNlY3QocikuaXNWYWxpZCgpOwotfQotCi1JbnRSZWN0
IEludFJlY3Q6OmludGVyc2VjdChjb25zdCBJbnRSZWN0ICZyKSBjb25zdAotewotICAgIGludCBu
eCwgbnksIG53LCBuaDsKLQotICAgIG54ID0gbWF4KHhwLCByLnhwKTsKLSAgICBueSA9IG1heCh5
cCwgci55cCk7Ci0KLSAgICBpZiAoeHAgKyB3IDw9IHIueHAgKyByLncpIHsKLSAgICAgICAgbncg
PSB4cCArIHcgLSBueDsKLSAgICB9IGVsc2UgewotICAgICAgICBudyA9IHIueHAgKyByLncgLSBu
eDsgCisgICAgLy8gSGFuZGxlIGVtcHR5IHNwZWNpYWwgY2FzZXMgZmlyc3QuCisgICAgaWYgKG90
aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAg
ICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICh5
cCArIGggPD0gci55cCArIHIuaCkgewotICAgICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIG5oID0gci55cCArIHIuaCAtIG55OyAKLSAgICB9CisgICAgaW50IGwg
PSBtaW4obGVmdCgpLCBvdGhlci5sZWZ0KCkpOworICAgIGludCB0ID0gbWluKHRvcCgpLCBvdGhl
ci50b3AoKSk7CisgICAgaW50IHIgPSBtYXgocmlnaHQoKSwgb3RoZXIucmlnaHQoKSk7CisgICAg
aW50IGIgPSBtYXgoYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsKIAotICAgIHJldHVybiBJbnRS
ZWN0KG54LCBueSwgbncsIG5oKTsKKyAgICBzZXRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9
CiAKLXZvaWQgSW50UmVjdDo6aW5mbGF0ZShpbnQgcykKLXsKLSAgICB4cCAtPSBzOwotICAgIHlw
IC09IHM7Ci0gICAgdyArPSAyKnM7Ci0gICAgaCArPSAyKnM7CiB9Ci0KLWJvb2wgb3BlcmF0b3I9
PShjb25zdCBJbnRSZWN0ICZhLCBjb25zdCBJbnRSZWN0ICZiKQotewotICAgIHJldHVybiBhLnhw
ID09IGIueHAgJiYgYS55cCA9PSBiLnlwICYmIGEudyA9PSBiLncgJiYgYS5oID09IGIuaDsKLX0K
LQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFJlY3QgJmEsIGNvbnN0IEludFJlY3QgJmIpCi17
Ci0gICAgcmV0dXJuICEoYSA9PSBiKTsKLX0KLQotfQpJbmRleDogcGxhdGZvcm0vSW50UG9pbnRB
cnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ludFBvaW50QXJyYXkuaAkocmV2aXNpb24g
MTI0MTEpCisrKyBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDYgQEAKIHB1YmxpYzoKICAgICBJbnRQb2ludEFycmF5KCkgeyB9CiAgICAgSW50UG9p
bnRBcnJheShpbnQgc2l6ZSkgOiBBcnJheTxJbnRQb2ludD4oc2l6ZSkgeyB9Ci0gICAgSW50UG9p
bnRBcnJheShjb25zdCBJbnRSZWN0ICZyZWN0KTsKICAgICBJbnRQb2ludEFycmF5KGludCwgY29u
c3QgaW50ICopOwogICAgIAogICAgIEludFJlY3QgYm91bmRpbmdSZWN0KCkgY29uc3Q7CkluZGV4
OiBwbGF0Zm9ybS9JbnRQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ludFBvaW50LmgJ
KHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vSW50UG9pbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtNiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNjAgKzI3LDg3IEBACiAjZGVmaW5lIElO
VFBPSU5UX0hfCiAKICNpZiBfX0FQUExFX18KKwordHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBDR1Bv
aW50OworCiAvLyB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNDI5NDYyNT4KLSNpZiAh
IF9fTFA2NF9fICYmICEgTlNfQlVJTERfMzJfTElLRV82NAorI2lmICFfX0xQNjRfXyAmJiAhTlNf
QlVJTERfMzJfTElLRV82NAogI3VuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCiAjZW5kaWYKIAotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCisjaWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKIHR5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKICNlbHNlCiB0eXBlZGVmIHN0cnVj
dCBfTlNQb2ludCBOU1BvaW50OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBDR1BvaW50IENHUG9p
bnQ7CisKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEludFBvaW50IHsK
IHB1YmxpYzoKLSAgICBJbnRQb2ludCgpOwotICAgIEludFBvaW50KGludCwgaW50KTsKLSAgICAK
KyAgICBJbnRQb2ludCgpIDogbV94KDApLCBtX3koMCkgeyB9CisgICAgSW50UG9pbnQoaW50IHgs
IGludCB5KSA6IG1feCh4KSwgbV95KHkpIHsgfQorCisgICAgaW50IHgoKSBjb25zdCB7IHJldHVy
biBtX3g7IH0KKyAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJuIG1feTsgfQorCisgICAgdm9pZCBz
ZXRYKGludCB4KSB7IG1feCA9IHg7IH0KKyAgICB2b2lkIHNldFkoaW50IHkpIHsgbV95ID0geTsg
fQorCiAjaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCi0gICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgTlNQb2ludCAmKTsgLy8g
ZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNlbmRpZgotICAgIGV4
cGxpY2l0IEludFBvaW50KGNvbnN0IENHUG9pbnQgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGlj
aXRseSBzaW5jZSBpdCdzIGxvc3N5Ci0jZW5kaWYKIAotICAgIGludCB4KCkgY29uc3QgeyByZXR1
cm4geENvb3JkOyB9Ci0gICAgaW50IHkoKSBjb25zdCB7IHJldHVybiB5Q29vcmQ7IH0KLSAgICAK
LSAgICB2b2lkIHNldFgoaW50IHgpIHsgeENvb3JkID0geDsgfQotICAgIHZvaWQgc2V0WShpbnQg
eSkgeyB5Q29vcmQgPSB5OyB9Ci0gICAgCi0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVy
biB4Q29vcmQgPT0gMCAmJiB5Q29vcmQgPT0gMDsgfQotICAgIAotICAgIEludFBvaW50ICZvcGVy
YXRvciAtPShjb25zdCBJbnRQb2ludCAmdHdvKSB7IHhDb29yZCAtPSB0d28ueENvb3JkOyB5Q29v
cmQgLT0gdHdvLnlDb29yZDsgcmV0dXJuICp0aGlzOyB9Ci0gICAgZnJpZW5kIGNvbnN0IEludFBv
aW50IG9wZXJhdG9yKihjb25zdCBJbnRQb2ludCAmcCwgZG91YmxlIHMpOwotICAgIGZyaWVuZCBJ
bnRQb2ludCBvcGVyYXRvcisoY29uc3QgSW50UG9pbnQgJiwgY29uc3QgSW50UG9pbnQgJik7Ci0g
ICAgZnJpZW5kIEludFBvaW50IG9wZXJhdG9yLShjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJbnRQ
b2ludCAmKTsKKyAgICBleHBsaWNpdCBJbnRQb2ludChjb25zdCBDR1BvaW50Jik7IC8vIGRvbid0
IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CisgICAgb3BlcmF0b3IgQ0dQb2lu
dCgpIGNvbnN0OwogCi0jaWYgX19BUFBMRV9fICAgIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVT
X1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUworICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IE5TUG9pbnQmKTsg
Ly8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRv
ciBOU1BvaW50KCkgY29uc3Q7CiAjZW5kaWYKLSAgICBvcGVyYXRvciBDR1BvaW50KCkgY29uc3Q7
CisKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGludCB4Q29vcmQ7Ci0gICAgaW50IHlDb29yZDsK
KyAgICBpbnQgbV94LCBtX3k7CiB9OwogCitpbmxpbmUgSW50UG9pbnQmIG9wZXJhdG9yKz0oSW50
UG9pbnQmIGEsIGNvbnN0IEludFBvaW50JiBiKQoreworICAgIGEuc2V0WChhLngoKSArIGIueCgp
KTsKKyAgICBhLnNldFkoYS55KCkgKyBiLnkoKSk7CisgICAgcmV0dXJuIGE7CiB9CiAKK2lubGlu
ZSBJbnRQb2ludCYgb3BlcmF0b3ItPShJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7
CisgICAgYS5zZXRYKGEueCgpIC0gYi54KCkpOworICAgIGEuc2V0WShhLnkoKSAtIGIueSgpKTsK
KyAgICByZXR1cm4gYTsKK30KKworaW5saW5lIEludFBvaW50IG9wZXJhdG9yKyhjb25zdCBJbnRQ
b2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7CisgICAgcmV0dXJuIEludFBvaW50KGEueCgp
ICsgYi54KCksIGEueSgpICsgYi55KCkpOworfQorCitpbmxpbmUgSW50UG9pbnQgb3BlcmF0b3It
KGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikKK3sKKyAgICByZXR1cm4gSW50
UG9pbnQoYS54KCkgLSBiLngoKSwgYS55KCkgLSBiLnkoKSk7Cit9CisKK2lubGluZSBib29sIG9w
ZXJhdG9yPT0oY29uc3QgSW50UG9pbnQmIGEsIGNvbnN0IEludFBvaW50JiBiKQoreworICAgIHJl
dHVybiBhLngoKSA9PSBiLngoKSAmJiBhLnkoKSA9PSBiLnkoKTsKK30KKworaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7CisgICAg
cmV0dXJuIGEueCgpICE9IGIueCgpIHx8IGEueSgpICE9IGIueSgpOworfQorCit9CisKIC8vIEZJ
WE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4K
IHVzaW5nIFdlYkNvcmU6OkludFBvaW50OwogCkluZGV4OiBwbGF0Zm9ybS9tYWMvSW50UmVjdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9tYWMvSW50UmVjdC5tbQkocmV2aXNpb24gMTI0MTEp
CisrKyBwbGF0Zm9ybS9tYWMvSW50UmVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsMzUgKzI0
LDQwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2ltcG9ydCAiSW50UmVjdC5oIgor
I2luY2x1ZGUgIkludFJlY3QuaCIKIAotI2ltcG9ydCA8YWxnb3JpdGhtPgotCi11c2luZyBzdGQ6
Om1heDsKLXVzaW5nIHN0ZDo6bWluOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYg
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUludFJlY3Q6OkludFJl
Y3QoY29uc3QgTlNSZWN0ICZyKSA6IHhwKChpbnQpci5vcmlnaW4ueCksIHlwKChpbnQpci5vcmln
aW4ueSksIHcoKGludClyLnNpemUud2lkdGgpLCBoKChpbnQpci5zaXplLmhlaWdodCkKK0ludFJl
Y3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHUmVjdE1ha2UobV9s
ZWZ0LCBtX3RvcCwgbV93aWR0aCwgbV9oZWlnaHQpOwogfQotI2VuZGlmCiAKLUludFJlY3Q6Oklu
dFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6IHhwKChpbnQpci5vcmlnaW4ueCksIHlwKChpbnQpci5v
cmlnaW4ueSksIHcoKGludClyLnNpemUud2lkdGgpLCBoKChpbnQpci5zaXplLmhlaWdodCkKK0lu
dFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBDR1JlY3QmIHJlY3QpCiB7CisgICAgaW50IGwg
PSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9yaWdpbi54KSk7CisgICAgaW50IHQgPSBz
dGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9yaWdpbi55KSk7CisgICAgaW50IHIgPSBzdGF0
aWNfY2FzdDxpbnQ+KGNlaWxmKENHUmVjdEdldE1heFgocmVjdCkpKTsKKyAgICBpbnQgYiA9IHN0
YXRpY19jYXN0PGludD4oY2VpbGYoQ0dSZWN0R2V0TWF4WShyZWN0KSkpOworICAgIHJldHVybiBJ
bnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBF
U19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKKwogSW50UmVjdDo6b3BlcmF0b3IgTlNSZWN0KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gTlNNYWtlUmVjdCh4cCwgeXAsIHcsIGgpOworICAgIHJldHVybiBOU01ha2VS
ZWN0KG1fbGVmdCwgbV90b3AsIG1fd2lkdGgsIG1faGVpZ2h0KTsKIH0KLSNlbmRpZgogCi1JbnRS
ZWN0OjpvcGVyYXRvciBDR1JlY3QoKSBjb25zdAorSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNv
bnN0IE5TUmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gQ0dSZWN0TWFrZSh4cCwgeXAsIHcsIGgp
OworICAgIGludCBsID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC5vcmlnaW4ueCkpOwor
ICAgIGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC5vcmlnaW4ueSkpOworICAg
IGludCByID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihOU01heFgocmVjdCkpKTsKKyAgICBpbnQg
YiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoTlNNYXhZKHJlY3QpKSk7CisgICAgcmV0dXJuIElu
dFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKIH0KIAorI2VuZGlmCisKIH0KSW5kZXg6IHBsYXRm
b3JtL21hYy9BZmZpbmVUcmFuc2Zvcm0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9B
ZmZpbmVUcmFuc2Zvcm0uY3BwCShyZXZpc2lvbiAwKQorKysgcGxhdGZvcm0vbWFjL0FmZmluZVRy
YW5zZm9ybS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
KworI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FmZmluZVRyYW5zZm9ybTo6QWZmaW5lVHJhbnNmb3Jt
KGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtJiB0KQorICAgIDogbV9hKHQuYSksIG1fYih0LmIpLCBt
X2ModC5jKSwgbV9kKHQuZCksIG1fZSh0LnR4KSwgbV9mKHQudHkpCit7Cit9CisKK0FmZmluZVRy
YW5zZm9ybTo6b3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25zdAoreworICAgIENHQWZm
aW5lVHJhbnNmb3JtIHQgPSB7IG1fYSwgbV9iLCBtX2MsIG1fZCwgbV9lLCBtX2YgfTsKKyAgICBy
ZXR1cm4gdDsKK30KKworfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogcGxhdGZvcm0vbWFjL0FmZmlu
ZVRyYW5zZm9ybS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZl
CgpJbmRleDogcGxhdGZvcm0vbWFjL0Zsb2F0UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZv
cm0vbWFjL0Zsb2F0UG9pbnQubW0JKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vbWFjL0Zs
b2F0UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSwyNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMKLUZsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgTlNQb2ludCYgcCkgOiB4Q29v
cmQocC54KSwgeUNvb3JkKHAueSkKK0Zsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgQ0dQb2lu
dCYgcCkgOiBtX3gocC54KSwgbV95KHAueSkKIHsKIH0KLSNlbmRpZgogCi1GbG9hdFBvaW50OjpG
bG9hdFBvaW50KGNvbnN0IENHUG9pbnQmIHApIDogeENvb3JkKHAueCksIHlDb29yZChwLnkpCitG
bG9hdFBvaW50OjpvcGVyYXRvciBDR1BvaW50KCkgY29uc3QKIHsKKyAgICByZXR1cm4gQ0dQb2lu
dE1ha2UobV94LCBtX3kpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19D
R0dFT01FVFJZX1RZUEVTCi1GbG9hdFBvaW50OjpvcGVyYXRvciBOU1BvaW50KCkgY29uc3QKKyNp
ZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKworRmxvYXRQb2lu
dDo6RmxvYXRQb2ludChjb25zdCBOU1BvaW50JiBwKSA6IG1feChwLngpLCBtX3kocC55KQogewot
ICAgIHJldHVybiBOU01ha2VQb2ludCh4Q29vcmQsIHlDb29yZCk7CiB9Ci0jZW5kaWYKIAotRmxv
YXRQb2ludDo6b3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0CitGbG9hdFBvaW50OjpvcGVyYXRvciBO
U1BvaW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ0dQb2ludE1ha2UoeENvb3JkLCB5Q29vcmQp
OworICAgIHJldHVybiBOU01ha2VQb2ludChtX3gsIG1feSk7CiB9CiAKKyNlbmRpZgorCiB9Cklu
ZGV4OiBwbGF0Zm9ybS9tYWMvRmxvYXRTaXplLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21h
Yy9GbG9hdFNpemUubW0JKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vbWFjL0Zsb2F0U2l6
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksMjYgKzI5LDI2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UwotRmxvYXRTaXplOjpGbG9hdFNpemUoY29uc3QgTlNTaXplJiBzKSA6IHcocy53aWR0aCksIGgo
cy5oZWlnaHQpCitGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBDR1NpemUmIHMpIDogbV93aWR0
aChzLndpZHRoKSwgbV9oZWlnaHQocy5oZWlnaHQpCiB7CiB9Ci0jZW5kaWYKIAotRmxvYXRTaXpl
OjpGbG9hdFNpemUoY29uc3QgQ0dTaXplJiBzKSA6IHcocy53aWR0aCksIGgocy5oZWlnaHQpCitG
bG9hdFNpemU6Om9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHU2l6ZU1h
a2UobV93aWR0aCwgbV9oZWlnaHQpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCisKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IE5TU2l6ZSYgcykgOiBt
X3dpZHRoKHMud2lkdGgpLCBtX2hlaWdodChzLmhlaWdodCkKK3sKK30KKwogRmxvYXRTaXplOjpv
cGVyYXRvciBOU1NpemUoKSBjb25zdAogewotICAgIHJldHVybiBOU01ha2VTaXplKHcsIGgpOwor
ICAgIHJldHVybiBOU01ha2VTaXplKG1fd2lkdGgsIG1faGVpZ2h0KTsKIH0KKwogI2VuZGlmCiAK
LUZsb2F0U2l6ZTo6b3BlcmF0b3IgQ0dTaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ0dTaXpl
TWFrZSh3LCBoKTsKIH0KLQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IHBs
YXRmb3JtL21hYy9GbG9hdFJlY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vbWFjL0Zsb2F0
UmVjdC5tbQkocmV2aXNpb24gMTI0MTEpCisrKyBwbGF0Zm9ybS9tYWMvRmxvYXRSZWN0Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNiArMjksMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1GbG9h
dFJlY3Q6OkZsb2F0UmVjdChjb25zdCBOU1JlY3QgJnIpIDogeHAoci5vcmlnaW4ueCksIHlwKHIu
b3JpZ2luLnkpLCB3KHIuc2l6ZS53aWR0aCksIGgoci5zaXplLmhlaWdodCkKK0Zsb2F0UmVjdDo6
RmxvYXRSZWN0KGNvbnN0IENHUmVjdCYgcikgOiBtX2xlZnQoci5vcmlnaW4ueCksIG1fdG9wKHIu
b3JpZ2luLnkpLCBtX3dpZHRoKHIuc2l6ZS53aWR0aCksIG1faGVpZ2h0KHIuc2l6ZS5oZWlnaHQp
CiB7CiB9Ci0jZW5kaWYKIAotRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6
IHhwKHIub3JpZ2luLngpLCB5cChyLm9yaWdpbi55KSwgdyhyLnNpemUud2lkdGgpLCBoKHIuc2l6
ZS5oZWlnaHQpCitGbG9hdFJlY3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CiB7CisgICAgcmV0
dXJuIENHUmVjdE1ha2UobV9sZWZ0LCBtX3RvcCwgbV93aWR0aCwgbV9oZWlnaHQpOwogfQogCi0j
aWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1GbG9hdFJl
Y3Q6Om9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0CisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTCisKK0Zsb2F0UmVjdDo6RmxvYXRSZWN0KGNvbnN0IE5TUmVjdCYg
cikgOiBtX2xlZnQoci5vcmlnaW4ueCksIG1fdG9wKHIub3JpZ2luLnkpLCBtX3dpZHRoKHIuc2l6
ZS53aWR0aCksIG1faGVpZ2h0KHIuc2l6ZS5oZWlnaHQpCiB7Ci0gICAgcmV0dXJuIE5TTWFrZVJl
Y3QoeHAsIHlwLCB3LCBoKTsKIH0KLSNlbmRpZgogCi1GbG9hdFJlY3Q6Om9wZXJhdG9yIENHUmVj
dCgpIGNvbnN0CitGbG9hdFJlY3Q6Om9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIENHUmVjdE1ha2UoeHAsIHlwLCB3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlUmVjdChtX2xl
ZnQsIG1fdG9wLCBtX3dpZHRoLCBtX2hlaWdodCk7CiB9CiAKKyNlbmRpZgorCiB9CkluZGV4OiBw
bGF0Zm9ybS9tYWMvSW50UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vbWFjL0ludFBv
aW50Lm1tCShyZXZpc2lvbiAxMjQxMSkKKysrIHBsYXRmb3JtL21hYy9JbnRQb2ludC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDUgQEAKLSAKLSAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0
LTYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwzMSAr
MjQsMzAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW1wb3J0ICJJbnRQb2ludC5o
IgorI2luY2x1ZGUgIkludFBvaW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRl
ZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotSW50UG9pbnQ6Oklu
dFBvaW50KGNvbnN0IE5TUG9pbnQgJnApIDogeENvb3JkKChpbnQpcC54KSwgeUNvb3JkKChpbnQp
cC55KQorSW50UG9pbnQ6OkludFBvaW50KGNvbnN0IENHUG9pbnQmIHApIDogbV94KHN0YXRpY19j
YXN0PGludD4ocC54KSksIG1feShzdGF0aWNfY2FzdDxpbnQ+KHAueSkpCiB7CiB9Ci0jZW5kaWYK
IAotSW50UG9pbnQ6OkludFBvaW50KGNvbnN0IENHUG9pbnQgJnApIDogeENvb3JkKChpbnQpcC54
KSwgeUNvb3JkKChpbnQpcC55KQorSW50UG9pbnQ6Om9wZXJhdG9yIENHUG9pbnQoKSBjb25zdAog
eworICAgIHJldHVybiBDR1BvaW50TWFrZShtX3gsIG1feSk7CiB9CiAKLSNpZm5kZWYgTlNHRU9N
RVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUludFBvaW50OjpvcGVyYXRvciBO
U1BvaW50KCkgY29uc3QKKyNpZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllf
VFlQRVMKKworSW50UG9pbnQ6OkludFBvaW50KGNvbnN0IE5TUG9pbnQmIHApIDogbV94KHN0YXRp
Y19jYXN0PGludD4ocC54KSksIG1feShzdGF0aWNfY2FzdDxpbnQ+KHAueSkpCiB7Ci0gICAgcmV0
dXJuIE5TTWFrZVBvaW50KHhDb29yZCwgeUNvb3JkKTsKIH0KLSNlbmRpZgogCi1JbnRQb2ludDo6
b3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0CitJbnRQb2ludDo6b3BlcmF0b3IgTlNQb2ludCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIENHUG9pbnRNYWtlKHhDb29yZCwgeUNvb3JkKTsKKyAgICByZXR1
cm4gTlNNYWtlUG9pbnQobV94LCBtX3kpOwogfQogCisjZW5kaWYKIAogfQpJbmRleDogcGxhdGZv
cm0vbWFjL0ludFNpemUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vbWFjL0ludFNpemUubW0J
KHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vbWFjL0ludFNpemUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLTYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDI2ICsyOCwyNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKLUludFNpemU6OkludFNpemUoY29uc3QgTlNTaXplICZzKSA6IHco
KGludClzLndpZHRoKSwgaCgoaW50KXMuaGVpZ2h0KQorSW50U2l6ZTo6SW50U2l6ZShjb25zdCBD
R1NpemUmIHMpIDogbV93aWR0aChzdGF0aWNfY2FzdDxpbnQ+KHMud2lkdGgpKSwgbV9oZWlnaHQo
c3RhdGljX2Nhc3Q8aW50PihzLmhlaWdodCkpCiB7CiB9Ci0jZW5kaWYKIAotSW50U2l6ZTo6SW50
U2l6ZShjb25zdCBDR1NpemUgJnMpIDogdygoaW50KXMud2lkdGgpLCBoKChpbnQpcy5oZWlnaHQp
CitJbnRTaXplOjpvcGVyYXRvciBDR1NpemUoKSBjb25zdAogeworICAgIHJldHVybiBDR1NpemVN
YWtlKG1fd2lkdGgsIG1faGVpZ2h0KTsKIH0KIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dH
RU9NRVRSWV9UWVBFUworCitJbnRTaXplOjpJbnRTaXplKGNvbnN0IE5TU2l6ZSYgcykgOiBtX3dp
ZHRoKHN0YXRpY19jYXN0PGludD4ocy53aWR0aCkpLCBtX2hlaWdodChzdGF0aWNfY2FzdDxpbnQ+
KHMuaGVpZ2h0KSkKK3sKK30KKwogSW50U2l6ZTo6b3BlcmF0b3IgTlNTaXplKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gTlNNYWtlU2l6ZSh3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlU2l6ZShtX3dp
ZHRoLCBtX2hlaWdodCk7CiB9CisKICNlbmRpZgogCi1JbnRTaXplOjpvcGVyYXRvciBDR1NpemUo
KSBjb25zdAotewotICAgIHJldHVybiBDR1NpemVNYWtlKHcsIGgpOwogfQotCi19ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogcGxhdGZvcm0vRmxvYXRQb2ludC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHBsYXRmb3JtL0Zsb2F0UG9pbnQuaAkocmV2aXNpb24gMTI0MTEpCisrKyBwbGF0Zm9y
bS9GbG9hdFBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE3ICsyOCwyMCBAQAogI2RlZmlu
ZSBGTE9BVFBPSU5UX0hfCiAKICNpZiBfX0FQUExFX18KKwordHlwZWRlZiBzdHJ1Y3QgQ0dQb2lu
dCBDR1BvaW50OworCiAvLyB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNDI5NDYyNT4K
LSNpZiAhIF9fTFA2NF9fICYmICEgTlNfQlVJTERfMzJfTElLRV82NAorI2lmICFfX0xQNjRfXyAm
JiAhTlNfQlVJTERfMzJfTElLRV82NAogI3VuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19D
R0dFT01FVFJZX1RZUEVTCiAjZW5kaWYKIAotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTCisjaWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKICNlbHNlCiB0eXBlZGVm
IHN0cnVjdCBfTlNQb2ludCBOU1BvaW50OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBDR1BvaW50
IENHUG9pbnQ7CisKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw0NCArNTAs
NjggQEAKIAogY2xhc3MgRmxvYXRQb2ludCB7CiBwdWJsaWM6Ci0gICAgRmxvYXRQb2ludCgpOwot
ICAgIEZsb2F0UG9pbnQoZmxvYXQsIGZsb2F0KTsKKyAgICBGbG9hdFBvaW50KCkgOiBtX3goMCks
IG1feSgwKSB7IH0KKyAgICBGbG9hdFBvaW50KGZsb2F0IHgsIGZsb2F0IHkpIDogbV94KHgpLCBt
X3koeSkgeyB9CiAgICAgRmxvYXRQb2ludChjb25zdCBJbnRQb2ludCYpOwotICAgIAotI2lmIF9f
QVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UwotICAgIGV4cGxpY2l0IEZsb2F0UG9pbnQoY29uc3QgTlNQb2ludCYpOwotI2VuZGlmCi0gICAg
ZXhwbGljaXQgRmxvYXRQb2ludChjb25zdCBDR1BvaW50Jik7Ci0jZW5kaWYKIAotICAgIGZsb2F0
IHgoKSBjb25zdCB7IHJldHVybiB4Q29vcmQ7IH0KLSAgICBmbG9hdCB5KCkgY29uc3QgeyByZXR1
cm4geUNvb3JkOyB9CisgICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsgfQorICAgIGZs
b2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KIAotICAgIHZvaWQgc2V0WChpbnQgeCkgeyB4
Q29vcmQgPSB4OyB9Ci0gICAgdm9pZCBzZXRZKGludCB5KSB7IHlDb29yZCA9IHk7IH0KKyAgICB2
b2lkIHNldFgoZmxvYXQgeCkgeyBtX3ggPSB4OyB9CisgICAgdm9pZCBzZXRZKGZsb2F0IHkpIHsg
bV95ID0geTsgfQogCi0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiB4Q29vcmQgPT0g
MC4wZiAmJiB5Q29vcmQgPT0gMC4wZjsgfQorI2lmIF9fQVBQTEVfXwogCi0gICAgRmxvYXRQb2lu
dCYgb3BlcmF0b3IgLT0oY29uc3QgRmxvYXRQb2ludCYgdHdvKSB7IHhDb29yZCAtPSB0d28ueENv
b3JkOyB5Q29vcmQgLT0gdHdvLnlDb29yZDsgcmV0dXJuICp0aGlzOyB9Ci0gICAgZnJpZW5kIGNv
bnN0IEZsb2F0UG9pbnQgb3BlcmF0b3IqKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGRvdWJsZSBzKTsK
LSAgICBmcmllbmQgRmxvYXRQb2ludCBvcGVyYXRvcisoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKTsKLSAgICBmcmllbmQgRmxvYXRQb2ludCBvcGVyYXRvci0oY29uc3QgRmxv
YXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKKyAgICBGbG9hdFBvaW50KGNvbnN0IENHUG9p
bnQmKTsKKyAgICBvcGVyYXRvciBDR1BvaW50KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExFX18KLSNp
Zm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiAhTlNH
RU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyAgICBGbG9hdFBvaW50KGNv
bnN0IE5TUG9pbnQmKTsKICAgICBvcGVyYXRvciBOU1BvaW50KCkgY29uc3Q7CiAjZW5kaWYKLSAg
ICBvcGVyYXRvciBDR1BvaW50KCkgY29uc3Q7CisKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGZs
b2F0IHhDb29yZDsKLSAgICBmbG9hdCB5Q29vcmQ7CisgICAgZmxvYXQgbV94LCBtX3k7CiB9Owog
CitpbmxpbmUgRmxvYXRQb2ludCYgb3BlcmF0b3IrPShGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9h
dFBvaW50JiBiKQoreworICAgIGEuc2V0WChhLngoKSArIGIueCgpKTsKKyAgICBhLnNldFkoYS55
KCkgKyBiLnkoKSk7CisgICAgcmV0dXJuIGE7CiB9CiAKK2lubGluZSBGbG9hdFBvaW50JiBvcGVy
YXRvci09KEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIpCit7CisgICAgYS5zZXRY
KGEueCgpIC0gYi54KCkpOworICAgIGEuc2V0WShhLnkoKSAtIGIueSgpKTsKKyAgICByZXR1cm4g
YTsKK30KKworaW5saW5lIEZsb2F0UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEZsb2F0UG9pbnQmIGEs
IGNvbnN0IEZsb2F0UG9pbnQmIGIpCit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYS54KCkgKyBi
LngoKSwgYS55KCkgKyBiLnkoKSk7Cit9CisKK2lubGluZSBGbG9hdFBvaW50IG9wZXJhdG9yLShj
b25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJldHVybiBG
bG9hdFBvaW50KGEueCgpIC0gYi54KCksIGEueSgpIC0gYi55KCkpOworfQorCitpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIpCit7
CisgICAgcmV0dXJuIGEueCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQorCitpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQm
IGIpCit7CisgICAgcmV0dXJuIGEueCgpICE9IGIueCgpIHx8IGEueSgpICE9IGIueSgpOworfQor
Cit9CisKIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3Jl
IG5hbWVzcGFjZS4KIHVzaW5nIFdlYkNvcmU6OkZsb2F0UG9pbnQ7CiAKSW5kZXg6IHBsYXRmb3Jt
L0ludFNpemUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ludFNpemUuY3BwCShyZXZpc2lv
biAxMjQxMSkKKysrIHBsYXRmb3JtL0ludFNpemUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtNiBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkludFNpemUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JbnRTaXplOjpJbnRT
aXplKCkgOiB3KC0xKSwgaCgtMSkKLXsKLX0KLQotSW50U2l6ZTo6SW50U2l6ZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpIDogdyh3aWR0aCksIGgoaGVpZ2h0KQotewotfQotCi1ib29sIEludFNpemU6
OmlzVmFsaWQoKSBjb25zdAotewotICAgIHJldHVybiB3ID49IDAgJiYgaCA+PSAwOwotfQotCi1J
bnRTaXplIEludFNpemU6OmV4cGFuZGVkVG8oY29uc3QgSW50U2l6ZSAmbykgY29uc3QKLXsKLSAg
ICByZXR1cm4gSW50U2l6ZSh3ID4gby53ID8gdyA6IG8udywgaCA+IG8uaCA/IGggOiBvLmgpOwot
fQotCi1JbnRTaXplIG9wZXJhdG9yKyhjb25zdCBJbnRTaXplICZhLCBjb25zdCBJbnRTaXplICZi
KQotewotICAgIHJldHVybiBJbnRTaXplKGEudyArIGIudywgYS5oICsgYi5oKTsKLX0KLQotYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEludFNpemUgJmEsIGNvbnN0IEludFNpemUgJmIpCi17Ci0gICAg
cmV0dXJuIGEudyA9PSBiLncgJiYgYS5oID09IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNv
bnN0IEludFNpemUgJmEsIGNvbnN0IEludFNpemUgJmIpCi17Ci0gICAgcmV0dXJuIGEudyAhPSBi
LncgfHwgYS5oICE9IGIuaDsKLX0KLQotfQpJbmRleDogcGxhdGZvcm0vRmxvYXRSZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcGxhdGZvcm0vRmxvYXRSZWN0LmgJKHJldmlzaW9uIDEyNDExKQorKysgcGxh
dGZvcm0vRmxvYXRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE4ICsyNywxOSBAQAogI2lm
bmRlZiBGTE9BVFJFQ1RGX0hfCiAjZGVmaW5lIEZMT0FUUkVDVEZfSF8KIAotI2luY2x1ZGUgPG1h
dGguaD4KICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0j
aW5jbHVkZSAiSW50UmVjdC5oIgogCiAjaWYgX19BUFBMRV9fCi0jaWZkZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwordHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENH
UmVjdDsKKworI2lmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0
eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0OwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IF9OU1Jl
Y3QgTlNSZWN0OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0OworCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsOTAgKzQ4LDkyIEBACiAKIGNsYXNzIEZs
b2F0UmVjdCB7CiBwdWJsaWM6Ci0gICAgRmxvYXRSZWN0KCk7Ci0gICAgRmxvYXRSZWN0KEZsb2F0
UG9pbnQgcCwgRmxvYXRTaXplIHMpOwotICAgIEZsb2F0UmVjdChmbG9hdCwgZmxvYXQsIGZsb2F0
LCBmbG9hdCk7Ci0gICAgRmxvYXRSZWN0KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBv
aW50Jik7CisgICAgRmxvYXRSZWN0KCkgOiBtX2xlZnQoMCksIG1fdG9wKDApLCBtX3dpZHRoKDAp
LCBtX2hlaWdodCgwKSB7IH0KKyAgICBGbG9hdFJlY3QoY29uc3QgRmxvYXRQb2ludCYgdG9wTGVm
dCwgY29uc3QgRmxvYXRTaXplJiBzaXplKQorICAgICAgICA6IG1fbGVmdCh0b3BMZWZ0LngoKSks
IG1fdG9wKHRvcExlZnQueSgpKSwgbV93aWR0aChzaXplLndpZHRoKCkpLCBtX2hlaWdodChzaXpl
LmhlaWdodCgpKSB7IH0KKyAgICBGbG9hdFJlY3QoZmxvYXQgbGVmdCwgZmxvYXQgdG9wLCBmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQorICAgICAgICA6IG1fbGVmdChsZWZ0KSwgbV90b3AodG9w
KSwgbV93aWR0aCh3aWR0aCksIG1faGVpZ2h0KGhlaWdodCkgeyB9CisgICAgRmxvYXRSZWN0KGNv
bnN0IEZsb2F0UG9pbnQmIHRvcExlZnQsIGNvbnN0IEZsb2F0UG9pbnQmIGJvdHRvbVJpZ2h0KQor
ICAgICAgICA6IG1fbGVmdCh0b3BMZWZ0LngoKSksIG1fdG9wKHRvcExlZnQueSgpKQorICAgICAg
ICAsIG1fd2lkdGgoYm90dG9tUmlnaHQueCgpIC0gdG9wTGVmdC54KCkpCisgICAgICAgICwgbV9o
ZWlnaHQoYm90dG9tUmlnaHQueSgpIC0gdG9wTGVmdC55KCkpIHsgfQogICAgIEZsb2F0UmVjdChj
b25zdCBJbnRSZWN0Jik7CiAgICAgCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAgZXhwbGljaXQgRmxvYXRSZWN0KGNv
bnN0IE5TUmVjdCYpOwotI2VuZGlmCi0gICAgZXhwbGljaXQgRmxvYXRSZWN0KGNvbnN0IENHUmVj
dCYpOwotI2VuZGlmCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aCA9
PSAwIHx8IG1faGVpZ2h0ID09IDA7IH0KIAotICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgZmxv
YXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgIGZsb2F0IHRvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdG9wOyB9CisgICAgZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xl
ZnQgKyBtX3dpZHRoOyB9CisgICAgZmxvYXQgYm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV90b3Ag
KyBtX2hlaWdodDsgfQogCi0gICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJuIHhwOyB9Ci0gICAg
ZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHlwOyB9Ci0gICAgZmxvYXQgbGVmdCgpIGNvbnN0IHsg
cmV0dXJuIHhwOyB9Ci0gICAgZmxvYXQgdG9wKCkgY29uc3QgeyByZXR1cm4geXA7IH0KLSAgICBm
bG9hdCByaWdodCgpIGNvbnN0OwotICAgIGZsb2F0IGJvdHRvbSgpIGNvbnN0OwotICAgIGZsb2F0
IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGZsb2F0IGhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGg7IH0KKyAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0K
KyAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogCi0gICAgRmxv
YXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7Ci0gICAgRmxvYXRQb2ludCB0b3BSaWdodCgpIGNvbnN0
OwotICAgIEZsb2F0UG9pbnQgYm90dG9tUmlnaHQoKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGJv
dHRvbUxlZnQoKSBjb25zdDsKKyAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZs
b2F0U2l6ZShtX3dpZHRoLCBtX2hlaWdodCk7IH0KIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29u
c3Q7Ci0gICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgeHAgPSB4OyB9Ci0gICAgdm9pZCBzZXRZKGZs
b2F0IHkpIHsgeXAgPSB5OyB9Ci0gICAgdm9pZCBzZXRXaWR0aChmbG9hdCB3aWR0aCkgeyB3ID0g
d2lkdGg7IH0KLSAgICB2b2lkIHNldEhlaWdodChmbG9hdCBoZWlnaHQpIHsgaCA9IGhlaWdodDsg
fQotICAgIHZvaWQgc2V0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpZ2h0KSB7IHhwID0geDsgeXAgPSB5OyB3ID0gd2lkdGg7IGggPSBoZWlnaHQ7IH0KLSAgICBG
bG9hdFJlY3QgaW50ZXJzZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgIGJvb2wgaW50
ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKLSAgICBGbG9hdFJlY3QgdW5pdGUoY29u
c3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgRmxvYXRSZWN0IG5vcm1hbGl6ZSgpIGNvbnN0Owor
ICAgIEZsb2F0UG9pbnQgdG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQodG9wKCks
IGxlZnQoKSk7IH0KKyAgICBGbG9hdFBvaW50IHRvcFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gRmxv
YXRQb2ludCh0b3AoKSwgcmlnaHQoKSk7IH0KKyAgICBGbG9hdFBvaW50IGJvdHRvbUxlZnQoKSBj
b25zdCB7IHJldHVybiBGbG9hdFBvaW50KGJvdHRvbSgpLCBsZWZ0KCkpOyB9CisgICAgRmxvYXRQ
b2ludCBib3R0b21SaWdodCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQoYm90dG9tKCksIHJp
Z2h0KCkpOyB9CisgICAgCisgICAgdm9pZCBzZXRMZWZ0KGZsb2F0IHgpIHsgbV9sZWZ0ID0geDsg
fQorICAgIHZvaWQgc2V0VG9wKGZsb2F0IHkpIHsgbV90b3AgPSB5OyB9CisgICAgdm9pZCBzZXRX
aWR0aChmbG9hdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldEhlaWdo
dChmbG9hdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIGJvb2wgY29udGFp
bnMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0IHsgcmV0dXJuIGNvbnRhaW5zKHBvaW50
LngoKSwgcG9pbnQueSgpKTsgfQorICAgIHZvaWQgc2V0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KQorICAgICAgICB7IG1fbGVmdCA9IHg7IG1fdG9wID0g
eTsgbV93aWR0aCA9IHdpZHRoOyBtX2hlaWdodCA9IGhlaWdodDsgfQogCi0gICAgYm9vbCBjb250
YWlucyhmbG9hdCB4LCBmbG9hdCB5LCBib29sIHByb3BlciA9IGZhbHNlKSBjb25zdAotICAgIHsK
LSAgICAgICAgaWYgKHByb3BlcikKLSAgICAgICAgICAgIHJldHVybiB4ID4geHAgJiYgKHggPCAo
eHAgKyB3IC0gMSkpICYmIHkgPiB5cCAmJiB5IDwgKHlwICsgaCAtIDEpOwotICAgICAgICByZXR1
cm4geCA+PSB4cCAmJiB4IDwgKHhwICsgdykgJiYgeSA+PSB5cCAmJiB5IDwgKHlwICsgaCk7Ci0g
ICAgfQorICAgIHZvaWQgbW92ZShmbG9hdCBkeCwgZmxvYXQgZHkpIHsgbV9sZWZ0ICs9IGR4OyBt
X3RvcCArPSBkeTsgfSAKKyAgICB2b2lkIG1vdmUoY29uc3QgRmxvYXRQb2ludCYgcCkgeyBtX2xl
ZnQgKz0gcC54KCk7IG1fdG9wICs9IHAueSgpOyB9IAogCi0gICAgYm9vbCBjb250YWlucyhjb25z
dCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0dXJuIGludGVyc2VjdChyZWN0KSA9PSByZWN0
OyB9CisgICAgYm9vbCBpbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIGJv
b2wgY29udGFpbnMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICB2b2lkIGluZmxhdGUo
ZmxvYXQgcyk7CisgICAgdm9pZCBpbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9p
ZCB1bml0ZShjb25zdCBGbG9hdFJlY3QmKTsKIAotICAgIGlubGluZSBGbG9hdFJlY3Qgb3BlcmF0
b3ImKGNvbnN0IEZsb2F0UmVjdCYgcikgY29uc3QgeyByZXR1cm4gaW50ZXJzZWN0KHIpOyB9Cisg
ICAgdm9pZCBpbmZsYXRlWChmbG9hdCBkeCkgeyBtX2xlZnQgLT0gZHg7IG1fd2lkdGggKz0gZHgg
KyBkeDsgfQorICAgIHZvaWQgaW5mbGF0ZVkoZmxvYXQgZHkpIHsgbV90b3AgLT0gZHk7IG1faGVp
Z2h0ICs9IGR5ICsgZHk7IH0KKyAgICB2b2lkIGluZmxhdGUoZmxvYXQgZCkgeyBpbmZsYXRlWChk
KTsgaW5mbGF0ZVkoZCk7IH0KIAogI2lmIF9fQVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZ
UEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCisgICAgRmxvYXRSZWN0KGNvbnN0IENHUmVj
dCYpOworICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OworCisjaWYgIU5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgRmxvYXRSZWN0KGNvbnN0IE5TUmVjdCYp
OwogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dS
ZWN0KCkgY29uc3Q7CisKICNlbmRpZgogCi0gICAgb3BlcmF0b3IgSW50UmVjdCgpIGNvbnN0Owog
cHJpdmF0ZToKLSAgICBmbG9hdCB4cDsKLSAgICBmbG9hdCB5cDsKLSAgICBmbG9hdCB3OwotICAg
IGZsb2F0IGg7Ci0KLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jik7CisgICAgZmxvYXQgbV9sZWZ0LCBtX3RvcCwgbV93
aWR0aCwgbV9oZWlnaHQ7CiB9OwogCi1pbmxpbmUgSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgZnIpCitpbmxpbmUgRmxvYXRSZWN0IGludGVyc2VjdGlvbihjb25zdCBG
bG9hdFJlY3QmIGEsIGNvbnN0IEZsb2F0UmVjdCYgYikKIHsKLSAgICBpbnQgeCA9IGludChmbG9v
cihmci54KCkpKTsKLSAgICBpbnQgeSA9IGludChmbG9vcihmci55KCkpKTsKLSAgICByZXR1cm4g
SW50UmVjdCh4LCB5LCBpbnQoY2VpbChmci54KCkgKyBmci53aWR0aCgpKSkgLSB4LCBpbnQoY2Vp
bChmci55KCkgKyBmci5oZWlnaHQoKSkpIC0geSk7CisgICAgRmxvYXRSZWN0IGMgPSBhOworICAg
IGMuaW50ZXJzZWN0KGIpOworICAgIHJldHVybiBjOwogfQogCitpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZsb2F0UmVjdCYgYSwgY29uc3QgRmxvYXRSZWN0JiBiKQoreworICAgIHJldHVy
biBhLmxlZnQoKSA9PSBiLmxlZnQoKSAmJiBhLnRvcCgpID09IGIudG9wKCkgJiYgYS53aWR0aCgp
ID09IGIud2lkdGgoKSAmJiBhLmhlaWdodCgpID09IGIuaGVpZ2h0KCk7CiB9CiAKK2lubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgRmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJlY3QmIGIpCit7
CisgICAgcmV0dXJuIGEubGVmdCgpICE9IGIubGVmdCgpIHx8IGEudG9wKCkgIT0gYi50b3AoKSB8
fCBhLndpZHRoKCkgIT0gYi53aWR0aCgpIHx8IGEuaGVpZ2h0KCkgIT0gYi5oZWlnaHQoKTsKK30K
KworSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworCit9CisKIC8v
IEZJWE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFj
ZS4KIHVzaW5nIFdlYkNvcmU6OkZsb2F0UmVjdDsKIApJbmRleDogcGxhdGZvcm0vQWZmaW5lVHJh
bnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmgJKHJldmlz
aW9uIDApCisrKyBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgTUFUUklYX0hf
CisjZGVmaW5lIE1BVFJJWF9IXworCisjaWYgX19BUFBMRV9fCit0eXBlZGVmIHN0cnVjdCBDR0Fm
ZmluZVRyYW5zZm9ybSBDR0FmZmluZVRyYW5zZm9ybTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBGbG9h
dFNpemU7CisKK2NsYXNzIEFmZmluZVRyYW5zZm9ybSB7CitwdWJsaWM6CisgICAgQWZmaW5lVHJh
bnNmb3JtKCkKKyAgICAgICAgOiBtX2EoMSksIG1fYigwKSwgbV9jKDApLCBtX2QoMSksIG1fZSgw
KSwgbV9mKDApIHsgfQorICAgIEFmZmluZVRyYW5zZm9ybShkb3VibGUgYSwgZG91YmxlIGIsIGRv
dWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICA6IG1fYShhKSwg
bV9iKGIpLCBtX2MoYyksIG1fZChkKSwgbV9lKGUpLCBtX2YoZikgeyB9CisKKyAgICBkb3VibGUg
YSgpIGNvbnN0IHsgcmV0dXJuIG1fYTsgfQorICAgIGRvdWJsZSBiKCkgY29uc3QgeyByZXR1cm4g
bV9iOyB9CisgICAgZG91YmxlIGMoKSBjb25zdCB7IHJldHVybiBtX2M7IH0KKyAgICBkb3VibGUg
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZDsgfQorICAgIGRvdWJsZSBlKCkgY29uc3QgeyByZXR1cm4g
bV9lOyB9CisgICAgZG91YmxlIGYoKSBjb25zdCB7IHJldHVybiBtX2Y7IH0KKworICAgIHZvaWQg
cmVzZXQoKQorICAgICAgICB7IG1fYSA9IDE7IG1fYiA9IDA7IG1fYyA9IDA7IG1fZCA9IDE7IG1f
ZSA9IDA7IG1fZiA9IDA7IH0KKyAgICB2b2lkIHNldChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJs
ZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICB7IG1fYSA9IGE7IG1f
YiA9IGI7IG1fYyA9IGM7IG1fZCA9IGQ7IG1fZSA9IGU7IG1fZiA9IGY7IH0KKworICAgIGJvb2wg
aXNJZGVudGl0eSgpIGNvbnN0CisgICAgICAgIHsgcmV0dXJuIG1fYSA9PSAxICYmIG1fYiA9PSAw
ICYmIG1fYyA9PSAwICYmIG1fZCA9PSAxICYmIG1fZSA9PSAwICYmIG1fZiA9PSAwOyB9CisKKyAg
ICBib29sIGlzSW52ZXJ0aWJsZSgpIGNvbnN0IHsgcmV0dXJuIGRldGVybWluYW50KCkgIT0gMDsg
fQorICAgIGRvdWJsZSBkZXRlcm1pbmFudCgpIGNvbnN0OworICAgIAorICAgIHZvaWQgbWFwKGRv
dWJsZSB4LCBkb3VibGUgeSwgZG91YmxlJiBtYXBwZWRYLCBkb3VibGUmIG1hcHBlZFkpIGNvbnN0
OworICAgIEZsb2F0UG9pbnQgbWFwKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyAgICBGbG9h
dFNpemUgbWFwKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0OworICAgIEZsb2F0UmVjdCBtYXAoY29u
c3QgRmxvYXRSZWN0JikgY29uc3Q7CisgICAgCisgICAgQWZmaW5lVHJhbnNmb3JtJiBvcGVyYXRv
cio9KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIAorICAgIHZvaWQgaW52ZXJ0KCk7CisK
KyAgICB2b2lkIHRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0eSk7CisgICAgdm9pZCByb3Rh
dGUoZG91YmxlIGFuZ2xlSW5SYWRpYW5zKTsKKyAgICB2b2lkIHNjYWxlKGRvdWJsZSBzKTsKKyAg
ICB2b2lkIHNjYWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKKyAgICB2b2lkIHNoZWFyKGRvdWJs
ZSBzeCwgZG91YmxlIHN5KTsKKyAgICB2b2lkIHNrZXdYKGRvdWJsZSBhbmdsZUluUmFkaWFucyk7
CisgICAgdm9pZCBza2V3WShkb3VibGUgYW5nbGVJblJhZGlhbnMpOworICAgIAorI2lmIF9fQVBQ
TEVfXworICAgIEFmZmluZVRyYW5zZm9ybShjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYpOworICAg
IG9wZXJhdG9yIENHQWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToK
KyAgICBkb3VibGUgbV9hLCBtX2IsIG1fYywgbV9kLCBtX2UsIG1fZjsKK307CisKK2lubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0MikKK3sKKyAgICByZXR1cm4gdDEuYSgpID09IHQyLmEoKQorICAgICAgICAmJiB0
MS5iKCkgPT0gdDIuYigpCisgICAgICAgICYmIHQxLmMoKSA9PSB0Mi5jKCkKKyAgICAgICAgJiYg
dDEuZCgpID09IHQyLmQoKQorICAgICAgICAmJiB0MS5lKCkgPT0gdDIuZSgpCisgICAgICAgICYm
IHQxLmYoKSA9PSB0Mi5mKCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0MSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MikKK3sKKyAgICByZXR1
cm4gISh0MSA9PSB0Mik7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBvcGVyYXRvciooY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisKK2lubGluZSBBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNsYXRpb25NYXRyaXgoZG91YmxlIHR4LCBkb3VibGUgdHkpIHsgcmV0dXJu
IEFmZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAxLCB0eCwgdHkpOyB9CitBZmZpbmVUcmFuc2Zvcm0g
cm90YXRpb25NYXRyaXgoZG91YmxlIGFuZ2xlSW5SYWRpYW5zKTsKK2lubGluZSBBZmZpbmVUcmFu
c2Zvcm0gc2NhbGVNYXRyaXgoZG91YmxlIHMpIHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybShzLCAw
LCAwLCBzLCAwLCAwKTsgfQoraW5saW5lIEFmZmluZVRyYW5zZm9ybSBzY2FsZU1hdHJpeChkb3Vi
bGUgc3gsIGRvdWJsZSBzeSkgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKHN4LCAwLCAwLCBzeSwg
MCwgMCk7IH0KK2lubGluZSBBZmZpbmVUcmFuc2Zvcm0gc2hlYXJNYXRyaXgoZG91YmxlIHN4LCBk
b3VibGUgc3kpIHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgxLCBzeSwgc3gsIDEsIDAsIDApOyB9
CitBZmZpbmVUcmFuc2Zvcm0gc2tld1hNYXRyaXgoZG91YmxlIGFuZ2xlSW5SYWRpYW5zKTsKK0Fm
ZmluZVRyYW5zZm9ybSBza2V3WU1hdHJpeChkb3VibGUgYW5nbGVJblJhZGlhbnMpOworCitkb3Vi
bGUgcmFkaWFucyhkb3VibGUgYW5nbGVJbkRlZ3JlZXMpOworCit9CisKKyNlbmRpZgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmgKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogcGxhdGZvcm0vSW50UG9pbnRBcnJh
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHJldmlzaW9u
IDEyNDExKQorKysgcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiw2IEBACiAgICAgc2V0UG9pbnRzKG5Qb2ludHMsIHBvaW50cyk7CiB9CiAKLUlu
dFBvaW50QXJyYXk6OkludFBvaW50QXJyYXkoY29uc3QgSW50UmVjdCAmcmVjdCkKLXsKLSAgICBz
ZXRQb2ludHMoNCwgcmVjdC50b3BMZWZ0KCkueCgpLCByZWN0LnRvcExlZnQoKS55KCksCi0gICAg
ICAgICAgICAgIHJlY3QudG9wUmlnaHQoKS54KCksIHJlY3QudG9wUmlnaHQoKS55KCksCi0gICAg
ICAgICAgICAgIHJlY3QuYm90dG9tUmlnaHQoKS54KCksIHJlY3QuYm90dG9tUmlnaHQoKS55KCks
Ci0gICAgICAgICAgICAgIHJlY3QuYm90dG9tTGVmdCgpLngoKSwgcmVjdC5ib3R0b21MZWZ0KCku
eSgpKTsKLX0KLQogSW50UG9pbnRBcnJheSBJbnRQb2ludEFycmF5Ojpjb3B5KCkgY29uc3QKIHsK
ICAgICBJbnRQb2ludEFycmF5IGNvcHk7CkBAIC01MSw3ICs0Myw3IEBACiB7CiAgICAgaW50IG5Q
b2ludHMgPSBjb3VudCgpOwogICAgIAotICAgIGlmIChuUG9pbnRzIDwgMSkgcmV0dXJuIEludFJl
Y3QoMCwwLDAsMCk7CisgICAgaWYgKG5Qb2ludHMgPCAxKSByZXR1cm4gSW50UmVjdCgpOwogICAg
IAogICAgIGludCBtaW5YID0gSU5UX01BWCwgbWF4WCA9IDA7CiAgICAgaW50IG1pblkgPSBJTlRf
TUFYLCBtYXhZID0gMDsKSW5kZXg6IHBsYXRmb3JtL0ludFBvaW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9JbnRQb2ludC5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vSW50
UG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotSW50UG9pbnQ6OkludFBvaW50KCkgOiB4Q29vcmQoMCksIHlD
b29yZCgwKQotewotfQotCi1JbnRQb2ludDo6SW50UG9pbnQoaW50IHhJbiwgaW50IHlJbikgOiB4
Q29vcmQoeEluKSwgeUNvb3JkKHlJbikKLXsKLX0KLQotSW50UG9pbnQgb3BlcmF0b3IrKGNvbnN0
IEludFBvaW50ICZhLCBjb25zdCBJbnRQb2ludCAmYikKLXsKLSAgICByZXR1cm4gSW50UG9pbnQo
YS54Q29vcmQgKyBiLnhDb29yZCwgYS55Q29vcmQgKyBiLnlDb29yZCk7Ci19Ci0KLUludFBvaW50
IG9wZXJhdG9yLShjb25zdCBJbnRQb2ludCAmYSwgY29uc3QgSW50UG9pbnQgJmIpCi17Ci0gICAg
cmV0dXJuIEludFBvaW50KGEueENvb3JkIC0gYi54Q29vcmQsIGEueUNvb3JkIC0gYi55Q29vcmQp
OwotfQotCi1jb25zdCBJbnRQb2ludCBvcGVyYXRvciooY29uc3QgSW50UG9pbnQgJnAsIGRvdWJs
ZSBzKQotewotICAgIHJldHVybiBJbnRQb2ludCgoaW50KShwLnhDb29yZCAqIHMpLCAoaW50KShw
LnlDb29yZCAqIHMpKTsKLX0KLQotfQpJbmRleDogcGxhdGZvcm0vRmxvYXRTaXplLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcGxhdGZvcm0vRmxvYXRTaXplLmgJKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZv
cm0vRmxvYXRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYwICszMCw5OCBAQAogI2luY2x1
ZGUgIktXUURlZi5oIgogCiAjaWYgX19BUFBMRV9fCisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBD
R1NpemU7CisKIC8vIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgotI2lm
ICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8zMl9MSUtFXzY0CisjaWYgIV9fTFA2NF9fICYmICFO
U19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9U
WVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0cnVj
dCBfTlNTaXplIE5TU2l6ZTsKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsK
KwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKwogY2xhc3MgSW50U2l6ZTsK
LSAgICAKKwogY2xhc3MgRmxvYXRTaXplIHsKIHB1YmxpYzoKLSAgICBGbG9hdFNpemUoKTsKLSAg
ICBGbG9hdFNpemUoZmxvYXQsIGZsb2F0KTsKLSAgICBGbG9hdFNpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOworICAgIEZsb2F0U2l6ZSgpIDogbV93aWR0aCgwKSwgbV9oZWlnaHQoMCkgeyB9
CisgICAgRmxvYXRTaXplKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIDogbV93aWR0aCh3aWR0
aCksIG1faGVpZ2h0KGhlaWdodCkgeyB9CisgICAgRmxvYXRTaXplKGNvbnN0IEludFNpemUmKTsK
KyAgICAKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoID09IDAgfHwg
bV9oZWlnaHQgPT0gMDsgfQorCisgICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dp
ZHRoOyB9CisgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKwor
ICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9CisgICAg
dm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVpZ2h0OyB9CisKKyAg
ICBGbG9hdFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmIG90aGVyKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZShtX3dpZHRoID4gb3RoZXIubV93aWR0aCA/IG1f
d2lkdGggOiBvdGhlci5tX3dpZHRoLAorICAgICAgICAgICAgbV9oZWlnaHQgPiBvdGhlci5tX2hl
aWdodCA/IG1faGVpZ2h0IDogb3RoZXIubV9oZWlnaHQpOworICAgIH0KKwogI2lmIF9fQVBQTEVf
XwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotICAg
IGV4cGxpY2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUmKTsKLSNlbmRpZgotICAgIGV4cGxpY2l0
IEZsb2F0U2l6ZShjb25zdCBDR1NpemUmKTsKLSNlbmRpZgogCi0gICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3Q7Ci0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiB3OyB9Ci0gICAgZmxvYXQg
aGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaDsgfQotICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lk
dGgpIHsgdyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IGgg
PSBoZWlnaHQ7IH0KLSAgICBGbG9hdFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmKSBj
b25zdDsKKyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgQ0dTaXplJik7IC8vIGRvbid0IGRv
IHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CisgICAgb3BlcmF0b3IgQ0dTaXplKCkg
Y29uc3Q7CiAKLSNpZiBfX0FQUExFX18KICNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgTlNTaXplICYp
OyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJh
dG9yIE5TU2l6ZSgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7
CisKICNlbmRpZgogCi0gICAgZnJpZW5kIEZsb2F0U2l6ZSBvcGVyYXRvcisoY29uc3QgRmxvYXRT
aXplJiwgY29uc3QgRmxvYXRTaXplJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmKTsKLSAgICBmcmllbmQgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYpOwotCiBwcml2YXRlOgotICAg
IGZsb2F0IHc7Ci0gICAgZmxvYXQgaDsKKyAgICBmbG9hdCBtX3dpZHRoLCBtX2hlaWdodDsKIH07
CiAKK2lubGluZSBGbG9hdFNpemUmIG9wZXJhdG9yKz0oRmxvYXRTaXplJiBhLCBjb25zdCBGbG9h
dFNpemUmIGIpCit7CisgICAgYS5zZXRXaWR0aChhLndpZHRoKCkgKyBiLndpZHRoKCkpOworICAg
IGEuc2V0SGVpZ2h0KGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsKIH0K
IAoraW5saW5lIEZsb2F0U2l6ZSYgb3BlcmF0b3ItPShGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0
U2l6ZSYgYikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSAtIGIud2lkdGgoKSk7CisgICAg
YS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOworfQor
CitpbmxpbmUgRmxvYXRTaXplIG9wZXJhdG9yKyhjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZs
b2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRTaXplKGEud2lkdGgoKSArIGIud2lkdGgo
KSwgYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworfQorCitpbmxpbmUgRmxvYXRTaXplIG9wZXJh
dG9yLShjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1
cm4gRmxvYXRTaXplKGEud2lkdGgoKSAtIGIud2lkdGgoKSwgYS5oZWlnaHQoKSAtIGIuaGVpZ2h0
KCkpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29u
c3QgRmxvYXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0aCgpICYm
IGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gYS53
aWR0aCgpICE9IGIud2lkdGgoKSB8fCBhLmhlaWdodCgpICE9IGIuaGVpZ2h0KCk7Cit9CisKK30K
KwogLy8gRklYTUU6IFJlbW92ZSB3aGVuIHRoZSBlbmdpbmUgZmlsZXMgaGF2ZSBiZWVuIGNvbnZl
cnRlZCB0byBiZSBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiB1c2luZyBXZWJDb3JlOjpGbG9h
dFNpemU7CiAKSW5kZXg6IHBsYXRmb3JtL0ludFJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9y
bS9JbnRSZWN0LmgJKHJldmlzaW9uIDEyNDExKQorKysgcGxhdGZvcm0vSW50UmVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOTkgKzI2LDEyMyBAQAogI2lmbmRl
ZiBJTlRSRUNUX0hfCiAjZGVmaW5lIElOVFJFQ1RfSF8KIAorI2luY2x1ZGUgIkludFBvaW50Lmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkludFBvaW50QXJyYXkuaCIKIAogI2lm
IF9fQVBQTEVfXwotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCisKK3R5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CisKKyNpZiBOU0dFT01FVFJZX1RZ
UEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IE5TUmVj
dDsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKICNlbmRpZgotdHlwZWRl
ZiBzdHJ1Y3QgQ0dSZWN0IENHUmVjdDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSW50UmVjdCB7CiBwdWJsaWM6Ci0gICAgSW50UmVjdCgpOwotICAgIEludFJlY3Qo
SW50UG9pbnQgcCwgSW50U2l6ZSBzKTsKLSAgICBJbnRSZWN0KGludCwgaW50LCBpbnQsIGludCk7
Ci0gICAgSW50UmVjdChjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJbnRQb2ludCAmKTsKKyAgICBJ
bnRSZWN0KCkgOiBtX2xlZnQoMCksIG1fdG9wKDApLCBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7
IH0KKyAgICBJbnRSZWN0KGNvbnN0IEludFBvaW50JiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiBz
aXplKQorICAgICAgICA6IG1fbGVmdCh0b3BMZWZ0LngoKSksIG1fdG9wKHRvcExlZnQueSgpKSwg
bV93aWR0aChzaXplLndpZHRoKCkpLCBtX2hlaWdodChzaXplLmhlaWdodCgpKSB7IH0KKyAgICBJ
bnRSZWN0KGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCisgICAgICAg
IDogbV9sZWZ0KGxlZnQpLCBtX3RvcCh0b3ApLCBtX3dpZHRoKHdpZHRoKSwgbV9oZWlnaHQoaGVp
Z2h0KSB7IH0KKyAgICBJbnRSZWN0KGNvbnN0IEludFBvaW50JiB0b3BMZWZ0LCBjb25zdCBJbnRQ
b2ludCYgYm90dG9tUmlnaHQpCisgICAgICAgIDogbV9sZWZ0KHRvcExlZnQueCgpKSwgbV90b3Ao
dG9wTGVmdC55KCkpCisgICAgICAgICwgbV93aWR0aChib3R0b21SaWdodC54KCkgLSB0b3BMZWZ0
LngoKSkKKyAgICAgICAgLCBtX2hlaWdodChib3R0b21SaWdodC55KCkgLSB0b3BMZWZ0LnkoKSkg
eyB9CiAgICAgCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTCi0gICAgZXhwbGljaXQgSW50UmVjdChjb25zdCBOU1JlY3QgJik7
IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5Ci0jZW5kaWYKLSAg
ICBleHBsaWNpdCBJbnRSZWN0KGNvbnN0IENHUmVjdCAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBs
aWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNlbmRpZgorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fd2lkdGggPT0gMCB8fCBtX2hlaWdodCA9PSAwOyB9CiAKLSAgICBib29sIGlz
TnVsbCgpIGNvbnN0OwotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0OworICAgIGludCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9CisgICAg
aW50IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9CisgICAgaW50IHJpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9sZWZ0ICsgbV93aWR0aDsgfQorICAgIGludCBib3R0b20oKSBjb25zdCB7IHJl
dHVybiBtX3RvcCArIG1faGVpZ2h0OyB9CiAKLSAgICBpbnQgeCgpIGNvbnN0IHsgcmV0dXJuIHhw
OyB9Ci0gICAgaW50IHkoKSBjb25zdCB7IHJldHVybiB5cDsgfQotICAgIGludCBsZWZ0KCkgY29u
c3QgeyByZXR1cm4geHA7IH0KLSAgICBpbnQgdG9wKCkgY29uc3QgeyByZXR1cm4geXA7IH0KLSAg
ICBpbnQgcmlnaHQoKSBjb25zdDsKLSAgICBpbnQgYm90dG9tKCkgY29uc3Q7Ci0gICAgaW50IHdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVy
biBoOyB9CisgICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAgIGlu
dCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogCi0gICAgSW50UG9pbnQgdG9w
TGVmdCgpIGNvbnN0OwotICAgIEludFBvaW50IHRvcFJpZ2h0KCkgY29uc3Q7Ci0gICAgSW50UG9p
bnQgYm90dG9tUmlnaHQoKSBjb25zdDsKLSAgICBJbnRQb2ludCBib3R0b21MZWZ0KCkgY29uc3Q7
CisgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShtX3dpZHRoLCBtX2hl
aWdodCk7IH0KKworICAgIEludFBvaW50IHRvcExlZnQoKSBjb25zdCB7IHJldHVybiBJbnRQb2lu
dCh0b3AoKSwgbGVmdCgpKTsgfQorICAgIEludFBvaW50IHRvcFJpZ2h0KCkgY29uc3QgeyByZXR1
cm4gSW50UG9pbnQodG9wKCksIHJpZ2h0KCkpOyB9CisgICAgSW50UG9pbnQgYm90dG9tTGVmdCgp
IGNvbnN0IHsgcmV0dXJuIEludFBvaW50KGJvdHRvbSgpLCBsZWZ0KCkpOyB9CisgICAgSW50UG9p
bnQgYm90dG9tUmlnaHQoKSBjb25zdCB7IHJldHVybiBJbnRQb2ludChib3R0b20oKSwgcmlnaHQo
KSk7IH0KICAgICAKLSAgICB2b2lkIG1vdmVUb3BMZWZ0KGNvbnN0IEludFBvaW50ICZwKSB7IHhw
ICs9IHAueCgpOyB5cCArPSBwLnkoKTsgfSAKKyAgICB2b2lkIHNldExlZnQoaW50IHgpIHsgbV9s
ZWZ0ID0geDsgfQorICAgIHZvaWQgc2V0VG9wKGludCB5KSB7IG1fdG9wID0geTsgfQorICAgIHZv
aWQgc2V0V2lkdGgoaW50IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQorICAgIHZvaWQgc2V0
SGVpZ2h0KGludCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIEludFNpemUg
c2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0WChpbnQgeCkgeyB4cCA9IHg7IH0KLSAgICB2b2lk
IHNldFkoaW50IHkpIHsgeXAgPSB5OyB9Ci0gICAgdm9pZCBzZXRXaWR0aChpbnQgd2lkdGgpIHsg
dyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBoID0gaGVpZ2h0
OyB9Ci0gICAgdm9pZCBzZXRSZWN0KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KSB7IHhwID0geDsgeXAgPSB5OyB3ID0gd2lkdGg7IGggPSBoZWlnaHQ7IH0KLSAgICBJbnRSZWN0
IGludGVyc2VjdChjb25zdCBJbnRSZWN0ICYpIGNvbnN0OwotICAgIGJvb2wgaW50ZXJzZWN0cyhj
b25zdCBJbnRSZWN0ICYpIGNvbnN0OwotICAgIEludFJlY3QgdW5pdGUoY29uc3QgSW50UmVjdCAm
KSBjb25zdDsKLSAgICBJbnRSZWN0IG5vcm1hbGl6ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0UmVj
dChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICAgICAgeyBtX2xlZnQg
PSB4OyBtX3RvcCA9IHk7IG1fd2lkdGggPSB3aWR0aDsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIAot
ICAgIGJvb2wgY29udGFpbnMoY29uc3QgSW50UG9pbnQgJnBvaW50KSBjb25zdCB7IHJldHVybiBj
b250YWlucyhwb2ludC54KCksIHBvaW50LnkoKSk7IH0KKyAgICB2b2lkIG1vdmUoaW50IGR4LCBp
bnQgZHkpIHsgbV9sZWZ0ICs9IGR4OyBtX3RvcCArPSBkeTsgfSAKKyAgICB2b2lkIG1vdmUoY29u
c3QgSW50UG9pbnQmIHApIHsgbV9sZWZ0ICs9IHAueCgpOyBtX3RvcCArPSBwLnkoKTsgfSAKIAot
ICAgIGJvb2wgY29udGFpbnMoaW50IHgsIGludCB5LCBib29sIHByb3BlciA9IGZhbHNlKSBjb25z
dCB7Ci0gICAgICAgIGlmIChwcm9wZXIpCi0gICAgICAgICAgICByZXR1cm4geCA+IHhwICYmICh4
IDwgKHhwICsgdyAtIDEpKSAmJiB5ID4geXAgJiYgeSA8ICh5cCArIGggLSAxKTsKLSAgICAgICAg
cmV0dXJuIHggPj0geHAgJiYgeCA8ICh4cCArIHcpICYmIHkgPj0geXAgJiYgeSA8ICh5cCArIGgp
OwotICAgIH0KKyAgICBib29sIGludGVyc2VjdHMoY29uc3QgSW50UmVjdCYpIGNvbnN0OworICAg
IGJvb2wgY29udGFpbnMoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCi0gICAgYm9vbCBjb250YWlu
cyhjb25zdCBJbnRSZWN0ICZyZWN0KSBjb25zdCB7IHJldHVybiBpbnRlcnNlY3QocmVjdCkgPT0g
cmVjdDsgfQotICAgIAotICAgIHZvaWQgaW5mbGF0ZShpbnQgcyk7CisgICAgYm9vbCBjb250YWlu
c1BpeGVsKGludCB4LCBpbnQgeSkgY29uc3QKKyAgICAgICAgeyByZXR1cm4geCA+PSBtX2xlZnQg
JiYgeCA8IHJpZ2h0KCkgJiYgeSA+PSBtX3RvcCAmJiB5IDwgYm90dG9tKCk7IH0KIAotICAgIGlu
bGluZSBJbnRSZWN0IG9wZXJhdG9yJihjb25zdCBJbnRSZWN0ICZyKSBjb25zdCB7IHJldHVybiBp
bnRlcnNlY3Qocik7IH0KKyAgICB2b2lkIGludGVyc2VjdChjb25zdCBJbnRSZWN0Jik7CisgICAg
dm9pZCB1bml0ZShjb25zdCBJbnRSZWN0Jik7CiAKKyAgICB2b2lkIGluZmxhdGVYKGludCBkeCkg
eyBtX2xlZnQgLT0gZHg7IG1fd2lkdGggKz0gZHggKyBkeDsgfQorICAgIHZvaWQgaW5mbGF0ZVko
aW50IGR5KSB7IG1fdG9wIC09IGR5OyBtX2hlaWdodCArPSBkeSArIGR5OyB9CisgICAgdm9pZCBp
bmZsYXRlKGludCBkKSB7IGluZmxhdGVYKGQpOyBpbmZsYXRlWShkKTsgfQorCiAjaWYgX19BUFBM
RV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisK
KyAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25zdDsKKworI2lmISBOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2Vu
ZGlmCi0gICAgb3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7CisKICNlbmRpZgogCiBwcml2YXRlOgot
ICAgIGludCB4cDsKLSAgICBpbnQgeXA7Ci0gICAgaW50IHc7Ci0gICAgaW50IGg7Ci0KLSAgICBm
cmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3QgJiwgY29uc3QgSW50UmVjdCAmKTsK
LSAgICBmcmllbmQgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFJlY3QgJiwgY29uc3QgSW50UmVj
dCAmKTsKKyAgICBpbnQgbV9sZWZ0LCBtX3RvcCwgbV93aWR0aCwgbV9oZWlnaHQ7CiB9OwogCitp
bmxpbmUgSW50UmVjdCBpbnRlcnNlY3Rpb24oY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVj
dCYgYikKK3sKKyAgICBJbnRSZWN0IGMgPSBhOworICAgIGMuaW50ZXJzZWN0KGIpOworICAgIHJl
dHVybiBjOwogfQogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3QmIGEsIGNv
bnN0IEludFJlY3QmIGIpCit7CisgICAgcmV0dXJuIGEubGVmdCgpID09IGIubGVmdCgpICYmIGEu
dG9wKCkgPT0gYi50b3AoKSAmJiBhLndpZHRoKCkgPT0gYi53aWR0aCgpICYmIGEuaGVpZ2h0KCkg
PT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJbnRSZWN0
JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAgIHJldHVybiBhLmxlZnQoKSAhPSBiLmxlZnQo
KSB8fCBhLnRvcCgpICE9IGIudG9wKCkgfHwgYS53aWR0aCgpICE9IGIud2lkdGgoKSB8fCBhLmhl
aWdodCgpICE9IGIuaGVpZ2h0KCk7Cit9CisKKyNpZiBfX0FQUExFX18KKworSW50UmVjdCBlbmNs
b3NpbmdJbnRSZWN0KGNvbnN0IENHUmVjdCYpOworCisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0ludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBO
U1JlY3QmKTsKKworI2VuZGlmCisKKyNlbmRpZgorCit9CisKIC8vIEZJWE1FOiBSZW1vdmUgd2hl
biBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4KIHVzaW5nIFdlYkNvcmU6
OkludFJlY3Q7Cit1c2luZyBXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0OwogCiAjZW5kaWYKSW5k
ZXg6IHBsYXRmb3JtL0Zsb2F0UG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0Zsb2F0
UG9pbnQuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHBsYXRmb3JtL0Zsb2F0UG9pbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwzNSArMjYsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkludFBvaW50LmgiCisKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRmxvYXRQb2ludDo6RmxvYXRQb2ludCgpIDogeENvb3JkKDApLCB5
Q29vcmQoMCkKK0Zsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgSW50UG9pbnQmIHApIDogbV94
KHAueCgpKSwgbV95KHAueSgpKQogewogfQogCi1GbG9hdFBvaW50OjpGbG9hdFBvaW50KGZsb2F0
IHhJbiwgZmxvYXQgeUluKSA6IHhDb29yZCh4SW4pLCB5Q29vcmQoeUluKQotewogfQotCi1GbG9h
dFBvaW50OjpGbG9hdFBvaW50KGNvbnN0IEludFBvaW50JiBwKSA6eENvb3JkKHAueCgpKSwgeUNv
b3JkKHAueSgpKQotewotfQotCi1GbG9hdFBvaW50IG9wZXJhdG9yKyhjb25zdCBGbG9hdFBvaW50
JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQotewotICAgIHJldHVybiBGbG9hdFBvaW50KGEueENv
b3JkICsgYi54Q29vcmQsIGEueUNvb3JkICsgYi55Q29vcmQpOwotfQotCi1GbG9hdFBvaW50IG9w
ZXJhdG9yLShjb25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQotewotICAg
IHJldHVybiBGbG9hdFBvaW50KGEueENvb3JkIC0gYi54Q29vcmQsIGEueUNvb3JkIC0gYi55Q29v
cmQpOwotfQotCi1jb25zdCBGbG9hdFBvaW50IG9wZXJhdG9yKihjb25zdCBGbG9hdFBvaW50JiBw
LCBkb3VibGUgcykKLXsKLSAgICByZXR1cm4gRmxvYXRQb2ludChwLnhDb29yZCAqIHMsIHAueUNv
b3JkICogcyk7Ci19Ci0KLX0KSW5kZXg6IHBsYXRmb3JtL0Zsb2F0UmVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGxhdGZvcm0vRmxvYXRSZWN0LmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBwbGF0Zm9y
bS9GbG9hdFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKworI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIHVzaW5nIHN0ZDo6bWF4OwpAQCAtMzMsMTU4
ICszNSw2NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0UmVjdDo6RmxvYXRSZWN0
KCkgOiB4cCgwLjBmKSwgeXAoMC4wZiksIHcoMC4wZiksIGgoMC4wZikKK0Zsb2F0UmVjdDo6Rmxv
YXRSZWN0KGNvbnN0IEludFJlY3QmIHIpIDogbV9sZWZ0KHIubGVmdCgpKSwgbV90b3Aoci50b3Ao
KSksIG1fd2lkdGgoci53aWR0aCgpKSwgbV9oZWlnaHQoci5oZWlnaHQoKSkKIHsKIH0KIAotRmxv
YXRSZWN0OjpGbG9hdFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgpLCBoKGhlaWdodCkKK2Jvb2wgRmxvYXRSZWN0
OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gQ2hl
Y2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwgYXMgemVyby4K
KyAgICByZXR1cm4gIWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIGxl
ZnQoKSA8IG90aGVyLnJpZ2h0KCkgJiYgb3RoZXIubGVmdCgpIDwgcmlnaHQoKQorICAgICAgICAm
JiB0b3AoKSA8IG90aGVyLmJvdHRvbSgpICYmIG90aGVyLnRvcCgpIDwgYm90dG9tKCk7CiB9CiAK
LUZsb2F0UmVjdDo6RmxvYXRSZWN0KEZsb2F0UG9pbnQgcCwgRmxvYXRTaXplIHMpIDogeHAocC54
KCkpLCB5cChwLnkoKSksIHcocy53aWR0aCgpKSwgaChzLmhlaWdodCgpKQorYm9vbCBGbG9hdFJl
Y3Q6OmNvbnRhaW5zKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAgcmV0dXJu
IGxlZnQoKSA8PSBvdGhlci5sZWZ0KCkgJiYgcmlnaHQoKSA+PSBvdGhlci5yaWdodCgpCisgICAg
ICAgICYmIHRvcCgpIDw9IG90aGVyLnRvcCgpICYmIGJvdHRvbSgpID49IG90aGVyLmJvdHRvbSgp
OwogfQogCi1GbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBGbG9hdFBvaW50ICZ0b3BMZWZ0LCBj
b25zdCBGbG9hdFBvaW50ICZib3R0b21SaWdodCkKLSAgOiB4cCh0b3BMZWZ0LngoKSksIHlwKHRv
cExlZnQueSgpKSwKLSAgdyhib3R0b21SaWdodC54KCkgLSB0b3BMZWZ0LngoKSArIDEuMGYpLCBo
KGJvdHRvbVJpZ2h0LnkoKSAtIHRvcExlZnQueSgpICsgMS4wZikKK3ZvaWQgRmxvYXRSZWN0Ojpp
bnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0JiBvdGhlcikKIHsKLX0KKyAgICBmbG9hdCBsID0gbWF4
KGxlZnQoKSwgb3RoZXIubGVmdCgpKTsKKyAgICBmbG9hdCB0ID0gbWF4KHRvcCgpLCBvdGhlci50
b3AoKSk7CisgICAgZmxvYXQgciA9IG1pbihyaWdodCgpLCBvdGhlci5yaWdodCgpKTsKKyAgICBm
bG9hdCBiID0gbWluKGJvdHRvbSgpLCBvdGhlci5ib3R0b20oKSk7CiAKLUZsb2F0UmVjdDo6Rmxv
YXRSZWN0KGNvbnN0IEludFJlY3QmIHIpIDogeHAoci54KCkpLCB5cChyLnkoKSksIHcoci53aWR0
aCgpKSwgaChyLmhlaWdodCgpKQotewotfQorICAgIC8vIFJldHVybiBhIGNsZWFuIGVtcHR5IHJl
Y3RhbmdsZSBmb3Igbm9uLWludGVyc2VjdGluZyBjYXNlcy4KKyAgICBpZiAobCA+PSByIHx8IHQg
Pj0gYikgeworICAgICAgICBzZXRSZWN0KDAsIDAsIDAsIDApOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCi1ib29sIEZsb2F0UmVjdDo6aXNOdWxsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA9
PSAwLjBmICYmIGggPT0gMC4wZjsKKyAgICBzZXRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9
CiAKLWJvb2wgRmxvYXRSZWN0Ojppc1ZhbGlkKCkgY29uc3QKK3ZvaWQgRmxvYXRSZWN0Ojp1bml0
ZShjb25zdCBGbG9hdFJlY3QmIG90aGVyKQogewotICAgIHJldHVybiB3ID4gMC4wZiAmJiBoID4g
MC4wZjsKLX0KKyAgICAvLyBIYW5kbGUgZW1wdHkgc3BlY2lhbCBjYXNlcyBmaXJzdC4KKyAgICBp
ZiAob3RoZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGlzRW1wdHkoKSkg
eworICAgICAgICAqdGhpcyA9IG90aGVyOworICAgICAgICByZXR1cm47CisgICAgfQogCi1ib29s
IEZsb2F0UmVjdDo6aXNFbXB0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPD0gMC4wZiB8fCBo
IDw9IDAuMGY7Ci19CisgICAgZmxvYXQgbCA9IG1pbihsZWZ0KCksIG90aGVyLmxlZnQoKSk7Cisg
ICAgZmxvYXQgdCA9IG1pbih0b3AoKSwgb3RoZXIudG9wKCkpOworICAgIGZsb2F0IHIgPSBtYXgo
cmlnaHQoKSwgb3RoZXIucmlnaHQoKSk7CisgICAgZmxvYXQgYiA9IG1heChib3R0b20oKSwgb3Ro
ZXIuYm90dG9tKCkpOwogCi1mbG9hdCBGbG9hdFJlY3Q6OnJpZ2h0KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4geHAgKyB3IC0gMS4wZjsKKyAgICBzZXRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9
CiAKLWZsb2F0IEZsb2F0UmVjdDo6Ym90dG9tKCkgY29uc3QKK0ludFJlY3QgZW5jbG9zaW5nSW50
UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHlwICsgaCAtIDEuMGY7
CisgICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LmxlZnQoKSkpOworICAg
IGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC50b3AoKSkpOworICAgIGludCBy
ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LnJpZ2h0KCkpKTsKKyAgICBpbnQgYiA9IHN0
YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5ib3R0b20oKSkpOworICAgIHJldHVybiBJbnRSZWN0
KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9CiAKLUZsb2F0UG9pbnQgRmxvYXRSZWN0Ojp0b3BMZWZ0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxvYXRQb2ludCh4cCx5cCk7CiB9Ci0KLUZsb2F0UG9p
bnQgRmxvYXRSZWN0Ojp0b3BSaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQo
cmlnaHQoKSx0b3AoKSk7Ci19Ci0KLUZsb2F0UG9pbnQgRmxvYXRSZWN0Ojpib3R0b21SaWdodCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQocmlnaHQoKSxib3R0b20oKSk7Ci19Ci0K
LUZsb2F0UG9pbnQgRmxvYXRSZWN0Ojpib3R0b21MZWZ0KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
RmxvYXRQb2ludChsZWZ0KCksYm90dG9tKCkpOwotfQotCi1GbG9hdFNpemUgRmxvYXRSZWN0Ojpz
aXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxvYXRTaXplKHcsaCk7Ci19Ci0KLUZsb2F0UmVj
dCBGbG9hdFJlY3Q6OnVuaXRlKGNvbnN0IEZsb2F0UmVjdCAmcikgY29uc3QKLXsKLSAgICBpZiAo
ci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAqdGhpczsKLQotICAgIGlmIChpc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiByOwotCi0gICAgZmxvYXQgbngsIG55LCBudywgbmg7Ci0KLSAgICBu
eCA9IG1pbih4cCwgci54cCk7Ci0gICAgbnkgPSBtaW4oeXAsIHIueXApOwotCi0gICAgaWYgKHhw
ICsgdyA+PSByLnhwICsgci53KQotICAgICAgICBudyA9IHhwICsgdyAtIG54OwotICAgIGVsc2UK
LSAgICAgICAgbncgPSByLnhwICsgci53IC0gbng7Ci0KLSAgICBpZiAoeXAgKyBoID49IHIueXAg
KyByLmgpCi0gICAgICAgIG5oID0geXAgKyBoIC0gbnk7Ci0gICAgZWxzZQotICAgICAgICBuaCA9
IHIueXAgKyByLmggLSBueTsKLQotICAgIHJldHVybiBGbG9hdFJlY3QobngsIG55LCBudywgbmgp
OwotfQotCi1GbG9hdFJlY3QgRmxvYXRSZWN0Ojpub3JtYWxpemUoKSBjb25zdAotewotICAgIEZs
b2F0UmVjdCBuZXdSZWN0OwotCi0gICAgbmV3UmVjdC54cCAgPSAodyA8IDAuMGYpID8gKHhwIC0g
dykgOiB4cDsKLSAgICBuZXdSZWN0LncgICA9ICh3IDwgMC4wZikgPyAtdyA6IHc7Ci0KLSAgICBu
ZXdSZWN0LnlwICA9IChoIDwgMC4wZikgPyAoeXAgLSBoKSA6IHlwOwotICAgIG5ld1JlY3QuaCAg
ID0gKGggPCAwLjBmKSA/IC1oIDogaDsKLQotICAgIHJldHVybiBuZXdSZWN0OwotfQotCi1ib29s
IEZsb2F0UmVjdDo6aW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGludGVyc2VjdChyKS5pc1ZhbGlkKCk7Ci19Ci0KLUZsb2F0UmVjdCBGbG9hdFJlY3Q6
OmludGVyc2VjdChjb25zdCBGbG9hdFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgZmxvYXQgbngsIG55
LCBudywgbmg7Ci0KLSAgICBueCA9IG1heCh4cCwgci54cCk7Ci0gICAgbnkgPSBtYXgoeXAsIHIu
eXApOwotCi0gICAgaWYgKHhwICsgdyA8PSByLnhwICsgci53KQotICAgICAgICBudyA9IHhwICsg
dyAtIG54OwotICAgIGVsc2UKLSAgICAgICAgbncgPSByLnhwICsgci53IC0gbng7Ci0KLSAgICBp
ZiAoeXAgKyBoIDw9IHIueXAgKyByLmgpCi0gICAgICAgIG5oID0geXAgKyBoIC0gbnk7Ci0gICAg
ZWxzZQotICAgICAgICBuaCA9IHIueXAgKyByLmggLSBueTsKLQotICAgIHJldHVybiBGbG9hdFJl
Y3QobngsIG55LCBudywgbmgpOwotfQotCi12b2lkIEZsb2F0UmVjdDo6aW5mbGF0ZShmbG9hdCBz
KQotewotICAgIHhwIC09IHM7Ci0gICAgeXAgLT0gczsKLSAgICB3ICs9IDIuMGYgKiBzOwotICAg
IGggKz0gMi4wZiAqIHM7Ci19Ci0KLWJvb2wgb3BlcmF0b3I9PShjb25zdCBGbG9hdFJlY3QmIGEs
IGNvbnN0IEZsb2F0UmVjdCAmYikKLXsKLSAgICByZXR1cm4gYS54cCA9PSBiLnhwICYmIGEueXAg
PT0gYi55cCAmJiBhLncgPT0gYi53ICYmIGEuaCA9PSBiLmg7Ci19Ci0KLWJvb2wgb3BlcmF0b3Ih
PShjb25zdCBGbG9hdFJlY3QgJmEsIGNvbnN0IEZsb2F0UmVjdCAmYikKLXsKLSAgICByZXR1cm4g
IShhID09IGIpOwotfQotCi19CkluZGV4OiBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHBsYXRmb3JtL0FmZmluZVRyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDApCisr
KyBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFmZmluZVRyYW5zZm9ybS5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisKKy8vIEZJWE1F
OiBXaHkgdXNlIGZsb2F0IGZvciBwb2ludHMgYW5kIHJlY3RzIGFuZCBkb3VibGVzIGZvciBtYXRy
aWNlcz8KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBkb3VibGUgcmFkaWFuc1BlckRl
Z3JlZSA9IDAuMDE3NDUzMjkyNTE5OTQzMjk1NzY5OyAvLyAyIHBpIC8gMzYwOyB3b3VsZCB1c2Ug
TV9QSSBidXQgaXQncyBwcm9iYWJseSBub3QgcG9ydGFibGUKKwordm9pZCBBZmZpbmVUcmFuc2Zv
cm06Om1hcChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSYgbWFwcGVkWCwgZG91YmxlJiBtYXBw
ZWRZKSBjb25zdAoreworICAgIG1hcHBlZFggPSBtX2EgKiB4ICsgbV9jICogeSArIG1fZTsKKyAg
ICBtYXBwZWRZID0gbV9iICogeCArIG1fZCAqIHkgKyBtX2Y7Cit9CisKK0Zsb2F0UG9pbnQgQWZm
aW5lVHJhbnNmb3JtOjptYXAoY29uc3QgRmxvYXRQb2ludCYgcCkgY29uc3QKK3sKKyAgICByZXR1
cm4gRmxvYXRQb2ludChtX2EgKiBwLngoKSArIG1fYyAqIHAueSgpICsgbV9lLCBtX2IgKiBwLngo
KSArIG1fZCAqIHAueSgpICsgbV9mKTsKK30KKworRmxvYXRTaXplIEFmZmluZVRyYW5zZm9ybTo6
bWFwKGNvbnN0IEZsb2F0U2l6ZSYgcykgY29uc3QKK3sKKyAgICByZXR1cm4gRmxvYXRTaXplKG1f
YSAqIHMud2lkdGgoKSArIG1fYyAqIHMuaGVpZ2h0KCksIG1fYiAqIHMud2lkdGgoKSArIG1fZCAq
IHMuaGVpZ2h0KCkpOworfQorCitGbG9hdFJlY3QgQWZmaW5lVHJhbnNmb3JtOjptYXAoY29uc3Qg
RmxvYXRSZWN0JiByKSBjb25zdAoreworICAgIHJldHVybiBGbG9hdFJlY3QobWFwKHIudG9wTGVm
dCgpKSwgbWFwKHIuYm90dG9tUmlnaHQoKSkpOworfQorCitBZmZpbmVUcmFuc2Zvcm0mIEFmZmlu
ZVRyYW5zZm9ybTo6b3BlcmF0b3IqPShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHQyKQoreworICAg
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdDEgPSAqdGhpczsKKworICAgIGRvdWJsZSBhID0gdDEu
YSgpICogdDIuYSgpICsgdDEuYigpICogdDIuYygpOworICAgIGRvdWJsZSBiID0gdDEuYSgpICog
dDIuYigpICsgdDEuYigpICogdDIuZCgpOworICAgIGRvdWJsZSBjID0gdDEuYygpICogdDIuYSgp
ICsgdDEuZCgpICogdDIuYygpOworICAgIGRvdWJsZSBkID0gdDEuYygpICogdDIuYigpICsgdDEu
ZCgpICogdDIuZCgpOworICAgIGRvdWJsZSB0eCA9IHQxLmEoKSAqIHQyLmUoKSArIHQxLmIoKSAq
IHQyLmYoKSArIHQxLmUoKTsKKyAgICBkb3VibGUgdHkgPSB0MS5jKCkgKiB0Mi5lKCkgKyB0MS5k
KCkgKiB0Mi5mKCkgKyB0MS5mKCk7CisKKyAgICBzZXQoYSwgYiwgYywgZCwgdHgsIHR5KTsKKwor
ICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OmludmVydCgpCit7
CisgICAgZG91YmxlIGRldGVybWluYW50ID0gbV9hICogbV9kIC0gbV9iICogbV9jOworICAgIGlm
IChkZXRlcm1pbmFudCA9PSAwKSB7CisgICAgICAgIHJlc2V0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBkb3VibGUgYSA9IG1fZCAvIGRldGVybWluYW50OworICAgIGRvdWJsZSBi
ID0gLW1fYiAvIGRldGVybWluYW50OworICAgIGRvdWJsZSBjID0gLW1fYyAvIGRldGVybWluYW50
OworICAgIGRvdWJsZSBkID0gbV9hIC8gZGV0ZXJtaW5hbnQ7CisgICAgZG91YmxlIHR4ID0gKG1f
ZiAqIG1fYyAgLSBtX2UgKiBtX2QpIC8gZGV0ZXJtaW5hbnQ7CisgICAgZG91YmxlIHR5ID0gKG1f
ZSAqIG1fYiAgLSBtX2YgKiBtX2EpIC8gZGV0ZXJtaW5hbnQ7CisKKyAgICBzZXQoYSwgYiwgYywg
ZCwgdHgsIHR5KTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnRyYW5zbGF0ZShkb3VibGUg
dHgsIGRvdWJsZSB0eSkKK3sKKyAgICAqdGhpcyAqPSB0cmFuc2xhdGlvbk1hdHJpeCh0eCwgdHkp
OworfQorCit2b2lkIEFmZmluZVRyYW5zZm9ybTo6cm90YXRlKGRvdWJsZSBhbmdsZUluUmFkaWFu
cykKK3sKKyAgICAqdGhpcyAqPSByb3RhdGlvbk1hdHJpeChhbmdsZUluUmFkaWFucyk7Cit9CisK
K3ZvaWQgQWZmaW5lVHJhbnNmb3JtOjpzY2FsZShkb3VibGUgcykKK3sKKyAgICAqdGhpcyAqPSBz
Y2FsZU1hdHJpeChzKTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnNjYWxlKGRvdWJsZSBz
eCwgZG91YmxlIHN5KQoreworICAgICp0aGlzICo9IHNjYWxlTWF0cml4KHN4LCBzeSk7Cit9CisK
K3ZvaWQgQWZmaW5lVHJhbnNmb3JtOjpzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBzeSkKK3sKKyAg
ICAqdGhpcyAqPSBzaGVhck1hdHJpeChzeCwgc3kpOworfQorCit2b2lkIEFmZmluZVRyYW5zZm9y
bTo6c2tld1goZG91YmxlIGFuZ2xlSW5SYWRpYW5zKQoreworICAgICp0aGlzICo9IHNrZXdYTWF0
cml4KGFuZ2xlSW5SYWRpYW5zKTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnNrZXdZKGRv
dWJsZSBhbmdsZUluUmFkaWFucykKK3sKKyAgICAqdGhpcyAqPSBza2V3WU1hdHJpeChhbmdsZUlu
UmFkaWFucyk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBvcGVyYXRvciooY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0MSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MikKK3sKKyAgICBkb3VibGUgYSA9
IHQxLmEoKSAqIHQyLmEoKSArIHQxLmIoKSAqIHQyLmMoKTsKKyAgICBkb3VibGUgYiA9IHQxLmEo
KSAqIHQyLmIoKSArIHQxLmIoKSAqIHQyLmQoKTsKKyAgICBkb3VibGUgYyA9IHQxLmMoKSAqIHQy
LmEoKSArIHQxLmQoKSAqIHQyLmMoKTsKKyAgICBkb3VibGUgZCA9IHQxLmMoKSAqIHQyLmIoKSAr
IHQxLmQoKSAqIHQyLmQoKTsKKyAgICBkb3VibGUgdHggPSB0MS5hKCkgKiB0Mi5lKCkgKyB0MS5i
KCkgKiB0Mi5mKCkgKyB0MS5lKCk7CisgICAgZG91YmxlIHR5ID0gdDEuYygpICogdDIuZSgpICsg
dDEuZCgpICogdDIuZigpICsgdDEuZigpOworCisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybShh
LCBiLCBjLCBkLCB0eCwgdHkpOworfQorCitBZmZpbmVUcmFuc2Zvcm0gcm90YXRpb25NYXRyaXgo
ZG91YmxlIGFuZ2xlSW5SYWRpYW5zKQoreworICAgIGRvdWJsZSBjID0gY29zKGFuZ2xlSW5SYWRp
YW5zKTsKKyAgICBkb3VibGUgcyA9IHNpbihhbmdsZUluUmFkaWFucyk7CisgICAgcmV0dXJuIEFm
ZmluZVRyYW5zZm9ybShjLCBzLCAtcywgYywgMCwgMCk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBz
a2V3WE1hdHJpeChkb3VibGUgYW5nbGVJblJhZGlhbnMpCit7CisgICAgcmV0dXJuIEFmZmluZVRy
YW5zZm9ybSgxLCAwLCB0YW4oYW5nbGVJblJhZGlhbnMpLCAxLCAwLCAwKTsKK30KKworQWZmaW5l
VHJhbnNmb3JtIHNrZXdZTWF0cml4KGRvdWJsZSBhbmdsZUluUmFkaWFucykKK3sKKyAgICByZXR1
cm4gQWZmaW5lVHJhbnNmb3JtKDEsIHRhbihhbmdsZUluUmFkaWFucyksIDAsIDEsIDAsIDApOwor
fQorCitkb3VibGUgcmFkaWFucyhkb3VibGUgYW5nbGVJbkRlZ3JlZXMpCit7CisgICAgcmV0dXJu
IGFuZ2xlSW5EZWdyZWVzICogcmFkaWFuc1BlckRlZ3JlZTsKK30KKworfQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBwbGF0Zm9ybS9JbnRTaXplLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcGxhdGZvcm0vSW50U2l6ZS5oCShyZXZpc2lvbiAxMjQxMSkKKysrIHBsYXRmb3Jt
L0ludFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDMtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNTggKzI3LDk1IEBACiAjZGVmaW5lIElOVFNJWkVfSF8KIAogI2lmIF9fQVBQTEVf
XworCit0eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOworCiAvLyB3b3JrYXJvdW5kIGZvciA8
cmRhcjovL3Byb2JsZW0vNDI5NDYyNT4KLSNpZiAhIF9fTFA2NF9fICYmICEgTlNfQlVJTERfMzJf
TElLRV82NAorI2lmICFfX0xQNjRfXyAmJiAhTlNfQlVJTERfMzJfTElLRV82NAogI3VuZGVmIE5T
R0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiAjZW5kaWYKIAotI2lmZGVm
IE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgTlNHRU9NRVRS
WV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHU2l6ZSBO
U1NpemU7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX05TU2l6ZSBOU1NpemU7CiAjZW5kaWYKLXR5
cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CisKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEludFNpemUgewogcHVibGljOgotICAgIEludFNpemUoKTsKLSAgICBJbnRT
aXplKGludCxpbnQpOworICAgIEludFNpemUoKSA6IG1fd2lkdGgoMCksIG1faGVpZ2h0KDApIHsg
fQorICAgIEludFNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA6IG1fd2lkdGgod2lkdGgpLCBt
X2hlaWdodChoZWlnaHQpIHsgfQogICAgIAorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fd2lkdGggPT0gMCB8fCBtX2hlaWdodCA9PSAwOyB9CisKKyAgICBpbnQgd2lkdGgoKSBj
b25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJu
IG1faGVpZ2h0OyB9CisKKyAgICB2b2lkIHNldFdpZHRoKGludCB3aWR0aCkgeyBtX3dpZHRoID0g
d2lkdGg7IH0KKyAgICB2b2lkIHNldEhlaWdodChpbnQgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVp
Z2h0OyB9CisKKyAgICBJbnRTaXplIGV4cGFuZGVkVG8oY29uc3QgSW50U2l6ZSYgb3RoZXIpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gSW50U2l6ZShtX3dpZHRoID4gb3RoZXIubV93aWR0
aCA/IG1fd2lkdGggOiBvdGhlci5tX3dpZHRoLAorICAgICAgICAgICAgbV9oZWlnaHQgPiBvdGhl
ci5tX2hlaWdodCA/IG1faGVpZ2h0IDogb3RoZXIubV9oZWlnaHQpOworICAgIH0KKwogI2lmIF9f
QVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UwotICAgIGV4cGxpY2l0IEludFNpemUoY29uc3QgTlNTaXplICYpOwotI2VuZGlmCi0gICAgZXhw
bGljaXQgSW50U2l6ZShjb25zdCBDR1NpemUgJik7Ci0jZW5kaWYKIAotICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0OwotICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHc7IH0KLSAgICBpbnQg
aGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaDsgfQotICAgIHZvaWQgc2V0V2lkdGgoaW50IHdpZHRo
KSB7IHcgPSB3aWR0aDsgfQotICAgIHZvaWQgc2V0SGVpZ2h0KGludCBoZWlnaHQpIHsgaCA9IGhl
aWdodDsgfQotICAgIEludFNpemUgZXhwYW5kZWRUbyhjb25zdCBJbnRTaXplICYpIGNvbnN0Owor
ICAgIGV4cGxpY2l0IEludFNpemUoY29uc3QgQ0dTaXplJik7IC8vIGRvbid0IGRvIHRoaXMgaW1w
bGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CisgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CiAK
LSNpZiBfX0FQUExFX18gICAgCiAjaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCisgICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRv
bid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNT
aXplKCkgY29uc3Q7CiAjZW5kaWYKLSAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsKKwogI2Vu
ZGlmCiAKLSAgICBmcmllbmQgSW50U2l6ZSBvcGVyYXRvcisoY29uc3QgSW50U2l6ZSAmLCBjb25z
dCBJbnRTaXplICYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgSW50U2l6ZSAm
LCBjb25zdCBJbnRTaXplICYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgSW50
U2l6ZSAmLCBjb25zdCBJbnRTaXplICYpOwotCiBwcml2YXRlOgotICAgIGludCB3OwotICAgIGlu
dCBoOworICAgIGludCBtX3dpZHRoLCBtX2hlaWdodDsKIH07CiAKK2lubGluZSBJbnRTaXplJiBv
cGVyYXRvcis9KEludFNpemUmIGEsIGNvbnN0IEludFNpemUmIGIpCit7CisgICAgYS5zZXRXaWR0
aChhLndpZHRoKCkgKyBiLndpZHRoKCkpOworICAgIGEuc2V0SGVpZ2h0KGEuaGVpZ2h0KCkgKyBi
LmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsKIH0KIAoraW5saW5lIEludFNpemUmIG9wZXJhdG9y
LT0oSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lk
dGgoKSAtIGIud2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0
KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxpbmUgSW50U2l6ZSBvcGVyYXRvcisoY29uc3Qg
SW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gSW50U2l6ZShhLndp
ZHRoKCkgKyBiLndpZHRoKCksIGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKK30KKworaW5saW5l
IEludFNpemUgb3BlcmF0b3ItKGNvbnN0IEludFNpemUmIGEsIGNvbnN0IEludFNpemUmIGIpCit7
CisgICAgcmV0dXJuIEludFNpemUoYS53aWR0aCgpIC0gYi53aWR0aCgpLCBhLmhlaWdodCgpIC0g
Yi5oZWlnaHQoKSk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgSW50U2l6ZSYg
YSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gYS53aWR0aCgpID09IGIud2lkdGgo
KSAmJiBhLmhlaWdodCgpID09IGIuaGVpZ2h0KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gYS53
aWR0aCgpICE9IGIud2lkdGgoKSB8fCBhLmhlaWdodCgpICE9IGIuaGVpZ2h0KCk7Cit9CisKK30K
KwogLy8gRklYTUU6IFJlbW92ZSB3aGVuIHRoZSBlbmdpbmUgZmlsZXMgaGF2ZSBiZWVuIGNvbnZl
cnRlZCB0byBiZSBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiB1c2luZyBXZWJDb3JlOjpJbnRT
aXplOwogCkluZGV4OiByZW5kZXJpbmcvYmlkaS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L2JpZGkuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHJlbmRlcmluZy9iaWRpLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU2Niw3ICsxNTY2LDcgQEAKICAgICAgICAgaWYgKHN0YXJ0TGluZSkgewog
ICAgICAgICAgICAgdXNlUmVwYWludFJlY3QgPSB0cnVlOwogICAgICAgICAgICAgc3RhcnRMaW5l
Qm90dG9tID0gc3RhcnRMaW5lLT5ib3R0b21PdmVyZmxvdygpOwotICAgICAgICAgICAgcmVwYWlu
dFJlY3Quc2V0WShrTWluKG1faGVpZ2h0LCBzdGFydExpbmUtPnRvcE92ZXJmbG93KCkpKTsKKyAg
ICAgICAgICAgIHJlcGFpbnRSZWN0LnNldFRvcChrTWluKG1faGVpZ2h0LCBzdGFydExpbmUtPnRv
cE92ZXJmbG93KCkpKTsKICAgICAgICAgICAgIFJlbmRlckFyZW5hKiBhcmVuYSA9IHJlbmRlckFy
ZW5hKCk7CiAgICAgICAgICAgICBSb290SW5saW5lQm94KiBib3ggPSBzdGFydExpbmU7CiAgICAg
ICAgICAgICB3aGlsZSAoYm94KSB7CkBAIC0xNjY4LDkgKzE2NjgsOSBAQAogICAgICAgICAgICAg
ICAgIGlmIChib3R0b21PZkxpbmUgPiBtX2hlaWdodCAmJiBib3R0b21PZkxpbmUgPiBtX292ZXJm
bG93SGVpZ2h0KQogICAgICAgICAgICAgICAgICAgICBtX292ZXJmbG93SGVpZ2h0ID0gYm90dG9t
T2ZMaW5lOwogICAgICAgICAgICAgICAgIGlmIChkZWx0YSkKLSAgICAgICAgICAgICAgICAgICAg
cmVwYWludFJlY3Quc2V0SGVpZ2h0KGtNYXgobV9vdmVyZmxvd0hlaWdodC1kZWx0YSwgbV9vdmVy
Zmxvd0hlaWdodCkgLSByZXBhaW50UmVjdC55KCkpOworICAgICAgICAgICAgICAgICAgICByZXBh
aW50UmVjdC5zZXRIZWlnaHQoa01heChtX292ZXJmbG93SGVpZ2h0LWRlbHRhLCBtX292ZXJmbG93
SGVpZ2h0KSAtIHJlcGFpbnRSZWN0LnRvcCgpKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgIHJlcGFpbnRSZWN0LnNldEhlaWdodChjdXJyWVBvcyAtIHJlcGFpbnRS
ZWN0LnkoKSk7CisgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRSZWN0LnNldEhlaWdodChjdXJy
WVBvcyAtIHJlcGFpbnRSZWN0LnRvcCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBhbGwgdGhlIHJlbWFpbmluZyBsaW5lcy4K
QEAgLTE2ODAsNyArMTY4MCw3IEBACiAgICAgICAgICAgICAgICAgd2hpbGUgKGxpbmUpIHsKICAg
ICAgICAgICAgICAgICAgICAgSW5saW5lUnVuQm94KiBuZXh0ID0gbGluZS0+bmV4dExpbmVCb3go
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0KQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwYWludFJlY3Quc2V0SGVpZ2h0KGtNYXgobV9vdmVyZmxvd0hlaWdodCwgbGluZS0+Ym90
dG9tT3ZlcmZsb3coKSkgLSByZXBhaW50UmVjdC55KCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwYWludFJlY3Quc2V0SGVpZ2h0KGtNYXgobV9vdmVyZmxvd0hlaWdodCwgbGluZS0+Ym90
dG9tT3ZlcmZsb3coKSkgLSByZXBhaW50UmVjdC50b3AoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGxpbmUtPmRlbGV0ZUxpbmUoYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICBsaW5lID0gbmV4
dDsKICAgICAgICAgICAgICAgICB9CkBAIC0xNzEwLDcgKzE3MTAsNyBAQAogICAgIGlmICh1c2VS
ZXBhaW50UmVjdCkgewogICAgICAgICByZXBhaW50UmVjdC5zZXRXaWR0aChrTWF4KChpbnQpbV93
aWR0aCwgbV9vdmVyZmxvd1dpZHRoKSk7CiAgICAgICAgIGlmIChyZXBhaW50UmVjdC5oZWlnaHQo
KSA9PSAwKQotICAgICAgICAgICAgcmVwYWludFJlY3Quc2V0SGVpZ2h0KGtNYXgob2xkTGluZUJv
dHRvbSwgbV9vdmVyZmxvd0hlaWdodCkgLSByZXBhaW50UmVjdC55KCkpOworICAgICAgICAgICAg
cmVwYWludFJlY3Quc2V0SGVpZ2h0KGtNYXgob2xkTGluZUJvdHRvbSwgbV9vdmVyZmxvd0hlaWdo
dCkgLSByZXBhaW50UmVjdC50b3AoKSk7CiAgICAgfQogCiAgICAgaWYgKCFmaXJzdExpbmVCb3go
KSAmJiBlbGVtZW50KCkgJiYgZWxlbWVudCgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpICYmIGVsZW1l
bnQoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpID09IGVsZW1lbnQoKSkKSW5kZXg6IHJlbmRlcmlu
Zy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJU
YWJsZVNlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsOCArNTQ0LDggQEAKICAgICAvLyBj
aGVjayB3aGljaCByb3dzIGFuZCBjb2xzIGFyZSB2aXNpYmxlIGFuZCBvbmx5IHBhaW50IHRoZXNl
CiAgICAgLy8gIyMjIGZpeG1lOiBjb3VsZCB1c2UgYSBiaW5hcnkgc2VhcmNoIGhlcmUKICAgICBQ
YWludEFjdGlvbiBwYWludEFjdGlvbiA9IGkucGhhc2U7Ci0gICAgaW50IHggPSBpLnIueCgpOwot
ICAgIGludCB5ID0gaS5yLnkoKTsKKyAgICBpbnQgeCA9IGkuci5sZWZ0KCk7CisgICAgaW50IHkg
PSBpLnIudG9wKCk7CiAgICAgaW50IHcgPSBpLnIud2lkdGgoKTsKICAgICBpbnQgaCA9IGkuci5o
ZWlnaHQoKTsKIApJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSByZW5kZXJpbmcvcmVuZGVyX2xpbmUuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHJlbmRlcmlu
Zy9yZW5kZXJfbGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczOCw3ICs3MzgsNyBAQAogCiAg
ICAgLy8gTm93IGNoZWNrIG91cnNlbHZlcy4KICAgICBJbnRSZWN0IHJlY3QodHggKyBtX3gsIHR5
ICsgbV95LCBtX3dpZHRoLCBtX2hlaWdodCk7Ci0gICAgaWYgKG9iamVjdCgpLT5zdHlsZSgpLT52
aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiByZWN0LmNvbnRhaW5zKHgsIHkpKSB7CisgICAgaWYg
KG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiByZWN0LmNvbnRh
aW5zUGl4ZWwoeCwgeSkpIHsKICAgICAgICAgb2JqZWN0KCktPnNldElubmVyTm9kZShpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtNzQ4LDExICs3NDgsOSBAQAogCiB2b2lkIElu
bGluZUZsb3dCb3g6OnBhaW50KFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpLCBpbnQgdHgsIGlu
dCB0eSkKIHsKLSAgICBib29sIGludGVyc2VjdHNEYW1hZ2VSZWN0ID0gdHJ1ZTsKICAgICBpbnQg
eFBvcyA9IHR4ICsgbV94IC0gb2JqZWN0KCktPm1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKTsK
ICAgICBpbnQgdyA9IHdpZHRoKCkgKyAyICogb2JqZWN0KCktPm1heGltYWxPdXRsaW5lU2l6ZShp
LnBoYXNlKTsKLSAgICBpZiAoKHhQb3MgPj0gaS5yLngoKSArIGkuci53aWR0aCgpKSB8fCAoeFBv
cyArIHcgPD0gaS5yLngoKSkpCi0gICAgICAgIGludGVyc2VjdHNEYW1hZ2VSZWN0ID0gZmFsc2U7
CisgICAgYm9vbCBpbnRlcnNlY3RzRGFtYWdlUmVjdCA9IHhQb3MgPCBpLnIucmlnaHQoKSAmJiB4
UG9zICsgdyA+IGkuci5sZWZ0KCk7CiAgICAgCiAgICAgaWYgKGludGVyc2VjdHNEYW1hZ2VSZWN0
KSB7CiAgICAgICAgIGlmIChpLnBoYXNlID09IFBhaW50QWN0aW9uT3V0bGluZSkgewpAQCAtODQw
LDEwICs4MzgsMTAgQEAKICAgICBpbnQgdyA9IHdpZHRoKCk7CiAgICAgaW50IGggPSBoZWlnaHQo
KTsKIAotICAgIGludCBteSA9IGtNYXgoX3R5LCBpLnIueSgpKTsKKyAgICBpbnQgbXkgPSBrTWF4
KF90eSwgaS5yLnRvcCgpKTsKICAgICBpbnQgbWg7Ci0gICAgaWYgKF90eSA8IGkuci55KCkpCi0g
ICAgICAgIG1oPSBrTWF4KDAsIGggLSAoaS5yLnkoKSAtIF90eSkpOworICAgIGlmIChfdHkgPCBp
LnIudG9wKCkpCisgICAgICAgIG1oID0ga01heCgwLCBoIC0gKGkuci50b3AoKSAtIF90eSkpOwog
ICAgIGVsc2UKICAgICAgICAgbWggPSBrTWluKGkuci5oZWlnaHQoKSwgaCk7CiAKQEAgLTEwOTAs
MjMgKzEwODgsMjYgQEAKICAgICB9CiB9CiAKLWJvb2wgRWxsaXBzaXNCb3g6Om5vZGVBdFBvaW50
KFJlbmRlck9iamVjdDo6Tm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4LCBp
bnQgX3R5KQorYm9vbCBFbGxpcHNpc0JveDo6bm9kZUF0UG9pbnQoUmVuZGVyT2JqZWN0OjpOb2Rl
SW5mbyYgaW5mbywgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSkKIHsKKyAgICB0eCArPSBt
X3g7CisgICAgdHkgKz0gbV95OworCiAgICAgLy8gSGl0IHRlc3QgdGhlIG1hcmt1cCBib3guCiAg
ICAgaWYgKG1fbWFya3VwQm94KSB7Ci0gICAgICAgIF90eCArPSBtX3ggKyBtX3dpZHRoIC0gbV9t
YXJrdXBCb3gtPnhQb3MoKTsKLSAgICAgICAgX3R5ICs9IG1feSArIG1fYmFzZWxpbmUgLSAobV9t
YXJrdXBCb3gtPnlQb3MoKSArIG1fbWFya3VwQm94LT5iYXNlbGluZSgpKTsKLSAgICAgICAgaWYg
KG1fbWFya3VwQm94LT5ub2RlQXRQb2ludChpbmZvLCBfeCwgX3ksIF90eCwgX3R5KSkgeworICAg
ICAgICBpbnQgbXR4ID0gdHggKyBtX3dpZHRoIC0gbV9tYXJrdXBCb3gtPnhQb3MoKTsKKyAgICAg
ICAgaW50IG10eSA9IHR5ICsgbV9iYXNlbGluZSAtIChtX21hcmt1cEJveC0+eVBvcygpICsgbV9t
YXJrdXBCb3gtPmJhc2VsaW5lKCkpOworICAgICAgICBpZiAobV9tYXJrdXBCb3gtPm5vZGVBdFBv
aW50KGluZm8sIHgsIHksIG10eCwgbXR5KSkgewogICAgICAgICAgICAgb2JqZWN0KCktPnNldElu
bmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgSW50UmVjdCByZWN0KF90eCArIG1feCwgX3R5ICsgbV95LCBtX3dpZHRoLCBtX2hl
aWdodCk7Ci0gICAgaWYgKG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJM
RSAmJiByZWN0LmNvbnRhaW5zKF94LCBfeSkpIHsKKyAgICBpZiAob2JqZWN0KCktPnN0eWxlKCkt
PnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIEludFJlY3QodHgsIHR5LCBtX3dpZHRoLCBtX2hl
aWdodCkuY29udGFpbnNQaXhlbCh4LCB5KSkgewogICAgICAgICBvYmplY3QoKS0+c2V0SW5uZXJO
b2RlKGluZm8pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHJl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNyArMTE5
LDcgQEAKIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0
KEludFJlY3QmIHIsIGJvb2wgZikKIHsKLSAgICByLnNldFkoci55KCkgKyBfdG9wRXh0cmEpOwor
ICAgIHIuc2V0VG9wKHIudG9wKCkgKyBfdG9wRXh0cmEpOwogICAgIFJlbmRlckJsb2NrOjpjb21w
dXRlQWJzb2x1dGVSZXBhaW50UmVjdChyLCBmKTsKIH0KIApAQCAtNTIwLDcgKzUyMCw3IEBACiAK
ICAgICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIGF0IGFsbC4uLgogICAgIGlu
dCBvcyA9IDIqbWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpOwotICAgIGlmICgoX3R5ID49IGku
ci55KCkgKyBpLnIuaGVpZ2h0KCkgKyBvcykgfHwgKF90eSArIF90b3BFeHRyYSArIG1faGVpZ2h0
ICsgX2JvdHRvbUV4dHJhIDw9IGkuci55KCkgLSBvcykpCisgICAgaWYgKChfdHkgPj0gaS5yLnRv
cCgpICsgaS5yLmhlaWdodCgpICsgb3MpIHx8IChfdHkgKyBfdG9wRXh0cmEgKyBtX2hlaWdodCAr
IF9ib3R0b21FeHRyYSA8PSBpLnIudG9wKCkgLSBvcykpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChpLnBoYXNlID09IFBhaW50QWN0aW9uQ29sbGFwc2VkVGFibGVCb3JkZXJzICYmIHN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7CkBAIC03MzIsOCArNzMyLDggQEAKIAl9CiAg
ICAgfQogCi0gICAgaW50IG15ID0ga01heChfdHksIGkuci55KCkpOwotICAgIGludCBlbmQgPSBr
TWluKGkuci55KCkgKyBpLnIuaGVpZ2h0KCksIF90eSArIGgpOworICAgIGludCBteSA9IGtNYXgo
X3R5LCBpLnIudG9wKCkpOworICAgIGludCBlbmQgPSBrTWluKGkuci5ib3R0b20oKSwgX3R5ICsg
aCk7CiAgICAgaW50IG1oID0gZW5kIC0gbXk7CiAKICAgICBpZiAoYmdMYXllci0+aGFzSW1hZ2Uo
KSB8fCBjLmlzVmFsaWQoKSkgewpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9sYXllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9sYXllci5jcHAJKHJldmlzaW9uIDEyNDExKQor
KysgcmVuZGVyaW5nL3JlbmRlcl9sYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4NiwxMSAr
NTg2LDExIEBACiAgICAgCiAgICAgaWYgKG1fb2JqZWN0LT5oYXNPdmVyZmxvd0NsaXAoKSkgewog
ICAgICAgICBJbnRSZWN0IGxheWVyQm91bmRzID0gSW50UmVjdChtX3ggKyBzY3JvbGxYT2Zmc2V0
KCksIG1feSArIG1fc2Nyb2xsWSwgbV93aWR0aCwgbV9oZWlnaHQpOwotICAgICAgICBJbnRSZWN0
IGV4cG9zZVJlY3QgPSBJbnRSZWN0KHJlY3QueCgpICsgc2Nyb2xsWE9mZnNldCgpLCByZWN0Lnko
KSArIG1fc2Nyb2xsWSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgSW50
UmVjdCBleHBvc2VSZWN0ID0gSW50UmVjdChyZWN0LmxlZnQoKSArIHNjcm9sbFhPZmZzZXQoKSwg
cmVjdC50b3AoKSArIG1fc2Nyb2xsWSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKICAg
ICAgICAgSW50UmVjdCByID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBleHBvc2VSZWN0
LCBhbGlnblgsIGFsaWduWSk7CiAgICAgICAgIAotICAgICAgICB4T2Zmc2V0ID0gci54KCkgLSBt
X3g7Ci0gICAgICAgIHlPZmZzZXQgPSByLnkoKSAtIG1feTsKKyAgICAgICAgeE9mZnNldCA9IHIu
bGVmdCgpIC0gbV94OworICAgICAgICB5T2Zmc2V0ID0gci50b3AoKSAtIG1feTsKICAgICAgICAg
Ly8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFu
Z2UuCiAgICAgICAgIHhPZmZzZXQgPSBrTWF4KDAsIGtNaW4obV9zY3JvbGxXaWR0aCAtIG1fd2lk
dGgsIHhPZmZzZXQpKTsKICAgICAgICAgeU9mZnNldCA9IGtNYXgoMCwga01pbihtX3Njcm9sbEhl
aWdodCAtIG1faGVpZ2h0LCB5T2Zmc2V0KSk7CkBAIC02MDEsOCArNjAxLDcgQEAKICAgICAgICAg
ICAgIHNjcm9sbFRvT2Zmc2V0KHhPZmZzZXQsIHlPZmZzZXQpOwogICAgICAgICAgICAgZGlmZlgg
PSBzY3JvbGxYT2Zmc2V0KCkgLSBkaWZmWDsKICAgICAgICAgICAgIGRpZmZZID0gbV9zY3JvbGxZ
IC0gZGlmZlk7Ci0gICAgICAgICAgICBuZXdSZWN0LnNldFgocmVjdC54KCkgLSBkaWZmWCk7Ci0g
ICAgICAgICAgICBuZXdSZWN0LnNldFkocmVjdC55KCkgLSBkaWZmWSk7CisgICAgICAgICAgICBu
ZXdSZWN0Lm1vdmUoLWRpZmZYLCAgLWRpZmZZKTsKICAgICAgICAgfQogICAgIAogICAgICAgICBp
ZiAobV9vYmplY3QtPnBhcmVudCgpKQpAQCAtNjEzLDggKzYxMiw4IEBACiAgICAgICAgICAgICBJ
bnRSZWN0IHZpZXdSZWN0ID0gSW50UmVjdCh2aWV3LT5zY3JvbGxYT2Zmc2V0KCksIHZpZXctPnNj
cm9sbFlPZmZzZXQoKSwgdmlldy0+dmlzaWJsZVdpZHRoKCksIHZpZXctPnZpc2libGVIZWlnaHQo
KSk7CiAgICAgICAgICAgICBJbnRSZWN0IHIgPSBnZXRSZWN0VG9FeHBvc2Uodmlld1JlY3QsIHJl
Y3QsIGFsaWduWCwgYWxpZ25ZKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgeE9mZnNldCA9
IHIueCgpOwotICAgICAgICAgICAgeU9mZnNldCA9IHIueSgpOworICAgICAgICAgICAgeE9mZnNl
dCA9IHIubGVmdCgpOworICAgICAgICAgICAgeU9mZnNldCA9IHIudG9wKCk7CiAgICAgICAgICAg
ICAvLyBBZGp1c3Qgb2Zmc2V0cyBpZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFsbG93YWJsZSBy
YW5nZS4KICAgICAgICAgICAgIHhPZmZzZXQgPSBrTWF4KDAsIGtNaW4odmlldy0+Y29udGVudHNX
aWR0aCgpLCB4T2Zmc2V0KSk7CiAgICAgICAgICAgICB5T2Zmc2V0ID0ga01heCgwLCBrTWluKHZp
ZXctPmNvbnRlbnRzSGVpZ2h0KCksIHlPZmZzZXQpKTsKQEAgLTYyMyw4ICs2MjIsNyBAQAogICAg
ICAgICAgICAgaWYgKG1fb2JqZWN0LT5kb2N1bWVudCgpICYmIG1fb2JqZWN0LT5kb2N1bWVudCgp
LT5vd25lckVsZW1lbnQoKSAmJiBtX29iamVjdC0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkt
PnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgICAgICB2aWV3LT5zZXRDb250ZW50c1Bvcyh4T2Zm
c2V0LCB5T2Zmc2V0KTsKICAgICAgICAgICAgICAgICBwYXJlbnRMYXllciA9IG1fb2JqZWN0LT5k
b2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsK
LSAgICAgICAgICAgICAgICBuZXdSZWN0LnNldFgocmVjdC54KCkgLSB2aWV3LT5jb250ZW50c1go
KSArIHZpZXctPnZpZXdwb3J0KCktPngoKSk7Ci0gICAgICAgICAgICAgICAgbmV3UmVjdC5zZXRZ
KHJlY3QueSgpIC0gdmlldy0+Y29udGVudHNZKCkgKyB2aWV3LT52aWV3cG9ydCgpLT55KCkpOwor
ICAgICAgICAgICAgICAgIG5ld1JlY3QubW92ZSh2aWV3LT52aWV3cG9ydCgpLT54KCkgLSB2aWV3
LT5jb250ZW50c1goKSwgdmlldy0+dmlld3BvcnQoKS0+eSgpIC0gdmlldy0+Y29udGVudHNZKCkp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRo
ZSBvdXRlcm1vc3QgdmlldyB0aGF0IFJlbmRlckxheWVyIG5lZWRzIHRvIHNjcm9sbCwgdGhlbiB3
ZSBzaG91bGQgc2Nyb2xsIHRoZSB2aWV3IHJlY3Vyc2l2ZWx5CiAgICAgICAgICAgICAgICAgLy8g
T3RoZXIgYXBwcywgbGlrZSBNYWlsLCByZWx5IG9uIHRoaXMgZmVhdHVyZS4KQEAgLTY0MCwxNCAr
NjM4LDE0IEBACiBJbnRSZWN0IFJlbmRlckxheWVyOjpnZXRSZWN0VG9FeHBvc2UoY29uc3QgSW50
UmVjdCAmdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QgJmV4cG9zZVJlY3QsIGNvbnN0IFNjcm9s
bEFsaWdubWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSkgewogCiAg
ICAgaW50IHgsIHksIHcsIGg7Ci0gICAgeCA9IGV4cG9zZVJlY3QueCgpOwotICAgIHkgPSBleHBv
c2VSZWN0LnkoKTsKKyAgICB4ID0gZXhwb3NlUmVjdC5sZWZ0KCk7CisgICAgeSA9IGV4cG9zZVJl
Y3QudG9wKCk7CiAgICAgdyA9IGV4cG9zZVJlY3Qud2lkdGgoKTsKICAgICBoID0gZXhwb3NlUmVj
dC5oZWlnaHQoKTsKICAgICAKICAgICAvLyBGaW5kIHRoZSBhcHByb3ByaWF0ZSBYIGNvb3JkaW5h
dGUgdG8gc2Nyb2xsIHRvLgogICAgIFNjcm9sbEJlaGF2aW9yIHNjcm9sbFggPSBnZXRIaWRkZW5C
ZWhhdmlvcihhbGlnblgpOwotICAgIGludCBpbnRlcnNlY3RXaWR0aCA9IHZpc2libGVSZWN0Lmlu
dGVyc2VjdChleHBvc2VSZWN0KS53aWR0aCgpOworICAgIGludCBpbnRlcnNlY3RXaWR0aCA9IGlu
dGVyc2VjdGlvbih2aXNpYmxlUmVjdCwgZXhwb3NlUmVjdCkud2lkdGgoKTsKICAgICAvLyBJZiB0
aGUgcmVjdGFuZ2xlIGlzIGZ1bGx5IHZpc2libGUsIHVzZSB0aGUgc3BlY2lmaWVkIHZpc2libGUg
YmVoYXZpb3IuCiAgICAgLy8gSWYgdGhlIHJlY3RhbmdsZSBpcyBwYXJ0aWFsbHkgdmlzaWJsZSwg
YnV0IG92ZXIgYSBjZXJ0YWluIHRocmVzaG9sZCwgdGhlbiB0cmVhdCBpdCBhcyBmdWxseSB2aXNp
YmxlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsaW5nCiAgICAgaWYgKGlu
dGVyc2VjdFdpZHRoID09IHcgfHwgaW50ZXJzZWN0V2lkdGggPj0gTUlOX0lOVEVSU0VDVF9GT1Jf
UkVWRUFMKQpAQCAtNjY0LDEwICs2NjIsMTAgQEAKICAgICAgICAgc2Nyb2xsWCA9IGdldFBhcnRp
YWxCZWhhdmlvcihhbGlnblgpOwogICAgICAgICAKICAgICBpZiAoc2Nyb2xsWCA9PSBub1Njcm9s
bCkgCi0gICAgICAgIHggPSB2aXNpYmxlUmVjdC54KCk7CisgICAgICAgIHggPSB2aXNpYmxlUmVj
dC5sZWZ0KCk7CiAgICAgLy8gSWYgd2UncmUgdHJ5aW5nIHRvIGFsaWduIHRvIHRoZSBjbG9zZXN0
IGVkZ2UsIGFuZCB0aGUgZXhwb3NlUmVjdCBpcyBmdXJ0aGVyIHJpZ2h0IHRoYW4gdGhlIHZpc2li
bGVSZWN0LCBhbmQgbm90IGJpZ2dlciB0aGFuIHRoZSB2aXNpYmxlIGFyZWEsIHRoZW4gYWxpZ25S
aWdodC4KICAgICBlbHNlIGlmICgoc2Nyb2xsWCA9PSBhbGlnblJpZ2h0KSB8fCAoKHNjcm9sbFgg
PT0gYWxpZ25Ub0Nsb3Nlc3RFZGdlKSAmJiBleHBvc2VSZWN0LnJpZ2h0KCkgPiB2aXNpYmxlUmVj
dC5yaWdodCgpICYmIHcgPCB2aXNpYmxlUmVjdC53aWR0aCgpKSkKLSAgICAgICAgeCA9IGV4cG9z
ZVJlY3QucmlnaHQoKSAtIHZpc2libGVSZWN0LndpZHRoKCk7CisgICAgICAgIHggPSAoZXhwb3Nl
UmVjdC5yaWdodCgpIC0gMSkgLSB2aXNpYmxlUmVjdC53aWR0aCgpOwogICAgIGVsc2UgaWYgKHNj
cm9sbFggPT0gYWxpZ25DZW50ZXIpCiAgICAgICAgIHggLT0gKHZpc2libGVSZWN0LndpZHRoKCkg
LSB3KSAvIDI7CiAgICAgLy8gQnkgZGVmYXVsdCwgeCBpcyBzZXQgdG8gdGhlIGxlZnQgb2YgdGhl
IGV4cG9zZVJlY3QsIHNvIGZvciB0aGUgYWxpZ25MZWZ0IGNhc2UsIApAQCAtNjc2LDcgKzY3NCw3
IEBACiAgICAgCiAgICAgLy8gRmluZCB0aGUgYXBwcm9wcmlhdGUgWSBjb29yZGluYXRlIHRvIHNj
cm9sbCB0by4KICAgICBTY3JvbGxCZWhhdmlvciBzY3JvbGxZID0gZ2V0SGlkZGVuQmVoYXZpb3Io
YWxpZ25ZKTsKLSAgICBpbnQgaW50ZXJzZWN0SGVpZ2h0ID0gdmlzaWJsZVJlY3QuaW50ZXJzZWN0
KGV4cG9zZVJlY3QpLmhlaWdodCgpOworICAgIGludCBpbnRlcnNlY3RIZWlnaHQgPSBpbnRlcnNl
Y3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJlY3QpLmhlaWdodCgpOwogICAgIC8vIElmIHRoZSBy
ZWN0YW5nbGUgaXMgZnVsbHkgdmlzaWJsZSwgdXNlIHRoZSBzcGVjaWZpZWQgdmlzaWJsZSBiZWhh
dmlvci4KICAgICBpZiAoaW50ZXJzZWN0SGVpZ2h0ID09IGgpCiAgICAgICAgIHNjcm9sbFkgPSBn
ZXRWaXNpYmxlQmVoYXZpb3IoYWxpZ25ZKTsKQEAgLTY5MiwxMCArNjkwLDEwIEBACiAgICAgICAg
IHNjcm9sbFkgPSBnZXRQYXJ0aWFsQmVoYXZpb3IoYWxpZ25ZKTsKICAgICAgICAgCiAgICAgaWYg
KHNjcm9sbFkgPT0gbm9TY3JvbGwpIAotICAgICAgICB5ID0gdmlzaWJsZVJlY3QueSgpOworICAg
ICAgICB5ID0gdmlzaWJsZVJlY3QudG9wKCk7CiAgICAgLy8gSWYgd2UncmUgdHJ5aW5nIHRvIGFs
aWduIHRvIHRoZSBjbG9zZXN0IGVkZ2UsIGFuZCB0aGUgZXhwb3NlUmVjdCBpcyBmdXJ0aGVyIGRv
d24gdGhhbiB0aGUgdmlzaWJsZVJlY3QsIGFuZCBub3QgYmlnZ2VyIHRoYW4gdGhlIHZpc2libGUg
YXJlYSwgdGhlbiBhbGlnbkJvdHRvbS4KICAgICBlbHNlIGlmICgoc2Nyb2xsWSA9PSBhbGlnbkJv
dHRvbSkgfHwgKChzY3JvbGxZID09IGFsaWduVG9DbG9zZXN0RWRnZSkgJiYgZXhwb3NlUmVjdC5i
b3R0b20oKSA+IHZpc2libGVSZWN0LmJvdHRvbSgpICYmIGggPCB2aXNpYmxlUmVjdC5oZWlnaHQo
KSkpCi0gICAgICAgIHkgPSBleHBvc2VSZWN0LmJvdHRvbSgpIC0gdmlzaWJsZVJlY3QuaGVpZ2h0
KCk7CisgICAgICAgIHkgPSAoZXhwb3NlUmVjdC5ib3R0b20oKSAtIDEpIC0gdmlzaWJsZVJlY3Qu
aGVpZ2h0KCk7CiAgICAgZWxzZSBpZiAoc2Nyb2xsWSA9PSBhbGlnbkNlbnRlcikKICAgICAgICAg
eSAtPSAodmlzaWJsZVJlY3QuaGVpZ2h0KCkgLSBoKSAvIDI7CiAgICAgLy8gQnkgZGVmYXVsdCwg
eSBpcyBzZXQgdG8gdGhlIHRvcCBvZiB0aGUgZXhwb3NlUmVjdCwgc28gZm9yIHRoZSBhbGlnblRv
cCBjYXNlLCAKQEAgLTgwMiwxOSArODAwLDE3IEBACiBSZW5kZXJMYXllcjo6cG9zaXRpb25TY3Jv
bGxiYXJzKGNvbnN0IEludFJlY3QmIGFic0JvdW5kcykKIHsKICAgICBpZiAobV92QmFyKSB7Ci0g
ICAgICAgIG1fdkJhci0+bW92ZShhYnNCb3VuZHMueCgpK2Fic0JvdW5kcy53aWR0aCgpLW1fb2Jq
ZWN0LT5ib3JkZXJSaWdodCgpLW1fdkJhci0+d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAg
IGFic0JvdW5kcy55KCkrbV9vYmplY3QtPmJvcmRlclRvcCgpKTsKLSAgICAgICAgbV92QmFyLT5y
ZXNpemUobV92QmFyLT53aWR0aCgpLCBhYnNCb3VuZHMuaGVpZ2h0KCkgLQotICAgICAgICAgICAg
ICAgICAgICAgICAobV9vYmplY3QtPmJvcmRlclRvcCgpK21fb2JqZWN0LT5ib3JkZXJCb3R0b20o
KSkgLQotICAgICAgICAgICAgICAgICAgICAgICAobV9oQmFyID8gbV9oQmFyLT5oZWlnaHQoKS0x
IDogMCkpOworICAgICAgICBtX3ZCYXItPm1vdmUoYWJzQm91bmRzLmxlZnQoKSArIGFic0JvdW5k
cy53aWR0aCgpIC0gbV9vYmplY3QtPmJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCksCisg
ICAgICAgICAgICBhYnNCb3VuZHMudG9wKCkgKyBtX29iamVjdC0+Ym9yZGVyVG9wKCkpOworICAg
ICAgICBtX3ZCYXItPnJlc2l6ZShtX3ZCYXItPndpZHRoKCksCisgICAgICAgICAgICBhYnNCb3Vu
ZHMuaGVpZ2h0KCkgLSAobV9vYmplY3QtPmJvcmRlclRvcCgpICsgbV9vYmplY3QtPmJvcmRlckJv
dHRvbSgpKSAtIChtX2hCYXIgPyBtX2hCYXItPmhlaWdodCgpIC0gMSA6IDApKTsKICAgICB9CiAK
ICAgICBpZiAobV9oQmFyKSB7Ci0gICAgICAgIG1faEJhci0+bW92ZShhYnNCb3VuZHMueCgpK21f
b2JqZWN0LT5ib3JkZXJMZWZ0KCksCi0gICAgICAgICAgICAgICAgICAgICBhYnNCb3VuZHMueSgp
K2Fic0JvdW5kcy5oZWlnaHQoKS1tX29iamVjdC0+Ym9yZGVyQm90dG9tKCktbV9oQmFyLT5oZWln
aHQoKSk7Ci0gICAgICAgIG1faEJhci0+cmVzaXplKGFic0JvdW5kcy53aWR0aCgpIC0gKG1fb2Jq
ZWN0LT5ib3JkZXJMZWZ0KCkrbV9vYmplY3QtPmJvcmRlclJpZ2h0KCkpIC0KLSAgICAgICAgICAg
ICAgICAgICAgICAgKG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKS0xIDogMCksCi0gICAgICAgICAg
ICAgICAgICAgICAgIG1faEJhci0+aGVpZ2h0KCkpOworICAgICAgICBtX2hCYXItPm1vdmUoYWJz
Qm91bmRzLmxlZnQoKSArIG1fb2JqZWN0LT5ib3JkZXJMZWZ0KCksCisgICAgICAgICAgICBhYnNC
b3VuZHMudG9wKCkgKyBhYnNCb3VuZHMuaGVpZ2h0KCkgLSBtX29iamVjdC0+Ym9yZGVyQm90dG9t
KCkgLSBtX2hCYXItPmhlaWdodCgpKTsKKyAgICAgICAgbV9oQmFyLT5yZXNpemUoYWJzQm91bmRz
LndpZHRoKCkgLSAobV9vYmplY3QtPmJvcmRlckxlZnQoKSArIG1fb2JqZWN0LT5ib3JkZXJSaWdo
dCgpKSAtIChtX3ZCYXIgPyBtX3ZCYXItPndpZHRoKCkgLSAxIDogMCksCisgICAgICAgICAgICBt
X2hCYXItPmhlaWdodCgpKTsKICAgICB9CiB9CiAKQEAgLTEwMTUsOCArMTAxMSw4IEBACiAgICAg
Ly8gQ2FsY3VsYXRlIHRoZSBjbGlwIHJlY3RzIHdlIHNob3VsZCB1c2UuCiAgICAgSW50UmVjdCBs
YXllckJvdW5kcywgZGFtYWdlUmVjdCwgY2xpcFJlY3RUb0FwcGx5LCBvdXRsaW5lUmVjdDsKICAg
ICBjYWxjdWxhdGVSZWN0cyhyb290TGF5ZXIsIHBhaW50RGlydHlSZWN0LCBsYXllckJvdW5kcywg
ZGFtYWdlUmVjdCwgY2xpcFJlY3RUb0FwcGx5LCBvdXRsaW5lUmVjdCk7Ci0gICAgaW50IHggPSBs
YXllckJvdW5kcy54KCk7Ci0gICAgaW50IHkgPSBsYXllckJvdW5kcy55KCk7CisgICAgaW50IHgg
PSBsYXllckJvdW5kcy5sZWZ0KCk7CisgICAgaW50IHkgPSBsYXllckJvdW5kcy50b3AoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgLy8gRW5zdXJlIG91ciB6LW9yZGVyIGxp
c3RzIGFyZSB1cC10by1kYXRlLgogICAgIHVwZGF0ZVpPcmRlckxpc3RzKCk7CkBAIC0xMTY5LDgg
KzExNjUsOCBAQAogICAgIC8vIE5leHQgd2Ugd2FudCB0byBzZWUgaWYgdGhlIG1vdXNlIHBvcyBp
cyBpbnNpZGUgdGhlIGNoaWxkIFJlbmRlck9iamVjdHMgb2YgdGhlIGxheWVyLgogICAgIGlmIChj
b250YWluc1BvaW50KHhNb3VzZVBvcywgeU1vdXNlUG9zLCBmZ1JlY3QpICYmIAogICAgICAgICBy
ZW5kZXJlcigpLT5oaXRUZXN0KGluZm8sIHhNb3VzZVBvcywgeU1vdXNlUG9zLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxheWVyQm91bmRzLngoKSAtIHJlbmRlcmVyKCktPnhQb3MoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllckJvdW5kcy55KCkgLSByZW5kZXJlcigp
LT55UG9zKCkgKyBtX29iamVjdC0+Ym9yZGVyVG9wRXh0cmEoKSwgSGl0VGVzdERlc2NlbmRhbnRz
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQm91bmRzLmxlZnQoKSAtIHJl
bmRlcmVyKCktPnhQb3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllckJvdW5k
cy50b3AoKSAtIHJlbmRlcmVyKCktPnlQb3MoKSArIG1fb2JqZWN0LT5ib3JkZXJUb3BFeHRyYSgp
LCBIaXRUZXN0RGVzY2VuZGFudHMpKSB7CiAgICAgICAgIC8vIGZvciBwb3NpdGlvbmVkIGdlbmVy
YXRlZCBjb250ZW50LCB3ZSBtaWdodCBzdGlsbCBub3QgaGF2ZSBhCiAgICAgICAgIC8vIG5vZGUg
YnkgdGhlIHRpbWUgd2UgZ2V0IHRvIHRoZSBsYXllciBsZXZlbCwgc2luY2Ugbm9uZSBvZgogICAg
ICAgICAvLyB0aGUgY29udGVudCBpbiB0aGUgbGF5ZXIgaGFzIGFuIGVsZW1lbnQuIFNvIGp1c3Qg
d2FsayB1cApAQCAtMTIwOSw4ICsxMjA1LDggQEAKICAgICAvLyBOZXh0IHdlIHdhbnQgdG8gc2Vl
IGlmIHRoZSBtb3VzZSBwb3MgaXMgaW5zaWRlIHRoaXMgbGF5ZXIgYnV0IG5vdCBhbnkgb2YgaXRz
IGNoaWxkcmVuLgogICAgIGlmIChjb250YWluc1BvaW50KHhNb3VzZVBvcywgeU1vdXNlUG9zLCBi
Z1JlY3QpICYmCiAgICAgICAgIHJlbmRlcmVyKCktPmhpdFRlc3QoaW5mbywgeE1vdXNlUG9zLCB5
TW91c2VQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJCb3VuZHMueCgpIC0g
cmVuZGVyZXIoKS0+eFBvcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQm91
bmRzLnkoKSAtIHJlbmRlcmVyKCktPnlQb3MoKSArIG1fb2JqZWN0LT5ib3JkZXJUb3BFeHRyYSgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQm91bmRzLmxlZnQoKSAtIHJlbmRl
cmVyKCktPnhQb3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllckJvdW5kcy50
b3AoKSAtIHJlbmRlcmVyKCktPnlQb3MoKSArIG1fb2JqZWN0LT5ib3JkZXJUb3BFeHRyYSgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhpdFRlc3RTZWxmKSkKICAgICAgICAgcmV0dXJu
IHRoaXM7CiAKQEAgLTEyNTgsMTUgKzEyNTQsMTUgQEAKICAgICAgICAgCiAgICAgICAgIGlmICht
X29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKICAgICAgICAgICAgIEludFJlY3QgbmV3T3Zl
cmZsb3dDbGlwID0gbV9vYmplY3QtPmdldE92ZXJmbG93Q2xpcFJlY3QoeCx5KTsKLSAgICAgICAg
ICAgIG92ZXJmbG93Q2xpcFJlY3QgID0gbmV3T3ZlcmZsb3dDbGlwLmludGVyc2VjdChvdmVyZmxv
d0NsaXBSZWN0KTsKKyAgICAgICAgICAgIG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld092
ZXJmbG93Q2xpcCk7CiAgICAgICAgICAgICBpZiAobV9vYmplY3QtPmlzUG9zaXRpb25lZCgpIHx8
IG1fb2JqZWN0LT5pc1JlbFBvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICBwb3NDbGlwUmVj
dCA9IG5ld092ZXJmbG93Q2xpcC5pbnRlcnNlY3QocG9zQ2xpcFJlY3QpOworICAgICAgICAgICAg
ICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdPdmVyZmxvd0NsaXApOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChtX29iamVjdC0+aGFzQ2xpcCgpKSB7CiAgICAgICAgICAgICBJbnRSZWN0IG5l
d1Bvc0NsaXAgPSBtX29iamVjdC0+Z2V0Q2xpcFJlY3QoeCx5KTsKLSAgICAgICAgICAgIHBvc0Ns
aXBSZWN0ID0gcG9zQ2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAg
b3ZlcmZsb3dDbGlwUmVjdCA9IG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXAp
OwotICAgICAgICAgICAgZml4ZWRDbGlwUmVjdCA9IGZpeGVkQ2xpcFJlY3QuaW50ZXJzZWN0KG5l
d1Bvc0NsaXApOworICAgICAgICAgICAgcG9zQ2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXAp
OworICAgICAgICAgICAgb3ZlcmZsb3dDbGlwUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7Cisg
ICAgICAgICAgICBmaXhlZENsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKICAgICAgICAg
fQogICAgIH0KICAgICAKQEAgLTEyODksNyArMTI4NSw3IEBACiAgICAgICAgIGJhY2tncm91bmRS
ZWN0ID0gbV9vYmplY3QtPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRklYRUQgPyBwYXJlbnQoKS0+
Y2xpcFJlY3RzKCktPmZpeGVkQ2xpcFJlY3QoKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSA/IHBhcmVudCgpLT5jbGlwUmVjdHMoKS0+cG9zQ2xp
cFJlY3QoKSA6IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPm92ZXJmbG93Q2xpcFJlY3QoKSk7Ci0gICAg
ICAgIGJhY2tncm91bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBhaW50RGlydHlS
ZWN0KTsKKyAgICAgICAgYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBhaW50RGlydHlSZWN0KTsK
ICAgICB9IGVsc2UKICAgICAgICAgYmFja2dyb3VuZFJlY3QgPSBwYWludERpcnR5UmVjdDsKICAg
ICBmb3JlZ3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0OwpAQCAtMTMwNCwxOCArMTMwMCwxOCBA
QAogICAgIGlmIChtX29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkgfHwgbV9vYmplY3QtPmhhc0Ns
aXAoKSkgewogICAgICAgICAvLyBUaGlzIGxheWVyIGVzdGFibGlzaGVzIGEgY2xpcCBvZiBzb21l
IGtpbmQuCiAgICAgICAgIGlmIChtX29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAg
ICAgICBmb3JlZ3JvdW5kUmVjdCA9IGZvcmVncm91bmRSZWN0LmludGVyc2VjdChtX29iamVjdC0+
Z2V0T3ZlcmZsb3dDbGlwUmVjdCh4LHkpKTsKKyAgICAgICAgICAgIGZvcmVncm91bmRSZWN0Lmlu
dGVyc2VjdChtX29iamVjdC0+Z2V0T3ZlcmZsb3dDbGlwUmVjdCh4LHkpKTsKICAgICAgICAgaWYg
KG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsKICAgICAgICAgICAgIC8vIENsaXAgYXBwbGllcyB0byAq
dXMqIGFzIHdlbGwsIHNvIGdvIGFoZWFkIGFuZCB1cGRhdGUgdGhlIGRhbWFnZVJlY3QuCiAgICAg
ICAgICAgICBJbnRSZWN0IG5ld1Bvc0NsaXAgPSBtX29iamVjdC0+Z2V0Q2xpcFJlY3QoeCx5KTsK
LSAgICAgICAgICAgIGJhY2tncm91bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KG5l
d1Bvc0NsaXApOwotICAgICAgICAgICAgZm9yZWdyb3VuZFJlY3QgPSBmb3JlZ3JvdW5kUmVjdC5p
bnRlcnNlY3QobmV3UG9zQ2xpcCk7Ci0gICAgICAgICAgICBvdXRsaW5lUmVjdCA9IG91dGxpbmVS
ZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIGJhY2tncm91bmRSZWN0Lmlu
dGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIGZvcmVncm91bmRSZWN0LmludGVyc2Vj
dChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIG91dGxpbmVSZWN0LmludGVyc2VjdChuZXdQb3ND
bGlwKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHdlIGVzdGFibGlzaCBhIGNsaXAgYXQg
YWxsLCB0aGVuIGdvIGFoZWFkIGFuZCBtYWtlIHN1cmUgb3VyIGJhY2tncm91bmQKICAgICAgICAg
Ly8gcmVjdCBpcyBpbnRlcnNlY3RlZCB3aXRoIG91ciBsYXllcidzIGJvdW5kcy4KLSAgICAgICAg
YmFja2dyb3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QobGF5ZXJCb3VuZHMpOwor
ICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QobGF5ZXJCb3VuZHMpOwogICAgIH0KIH0K
IApAQCAtMTM0Miw3ICsxMzM4LDcgQEAKIAogYm9vbCBSZW5kZXJMYXllcjo6Y29udGFpbnNQb2lu
dChpbnQgeCwgaW50IHksIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGRhbWFnZVJlY3QuY29udGFpbnMoeCwgeSk7CisgICAgcmV0dXJuIGRhbWFnZVJlY3Qu
Y29udGFpbnNQaXhlbCh4LCB5KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y2xlYXJDbGlwUmVj
dHMoKQpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJl
bmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyByZW5kZXJpbmcv
cmVuZGVyX2ZyYW1lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NiwyNCArNTY2LDI0IEBACiAg
ICAgICAgIGludCBzdyA9IGVsZW1lbnQoKS0+Ym9yZGVyKCk7CiAgICAgICAgIGludCBwID0gbV9y
ZXNpemluZyA/IChtX3ZTcGxpdCA+IC0xID8gX3ggOiBfeSkgOiAtMTsKICAgICAgICAgaWYgKG1f
dlNwbGl0ID4gLTEpIHsKLSAgICAgICAgICAgIGlmICggbV9vbGRwb3MgPj0gMCApCi0gICAgICAg
ICAgICAgICAgdi0+dXBkYXRlQ29udGVudHMoIG1fb2xkcG9zICsgc3cvMiAtIHJCb3JkICwgci55
KCksIDIqckJvcmQsIHIuaGVpZ2h0KCksIHRydWUgKTsKLSAgICAgICAgICAgIGlmICggcCA+PSAw
ICl7CisgICAgICAgICAgICBpZiAobV9vbGRwb3MgPj0gMCkKKyAgICAgICAgICAgICAgICB2LT51
cGRhdGVDb250ZW50cyhtX29sZHBvcyArIHN3LzIgLSByQm9yZCwgci50b3AoKSwgMiAqIHJCb3Jk
LCByLmhlaWdodCgpLCB0cnVlICk7CisgICAgICAgICAgICBpZiAocCA+PSAwKSB7CiAgICAgICAg
ICAgICAgICAgcGFpbnQuc2V0UGVuKFBlbjo6Tm9QZW4pOwotICAgICAgICAgICAgICAgIHBhaW50
LnNldEJydXNoKCBDb2xvcjo6Z3JheSApOwotICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdB
bHBoYSgoZmxvYXQpMC4yNSk7Ci0gICAgICAgICAgICAgICAgcGFpbnQuZHJhd1JlY3QoIHAgICsg
c3cvMiAtIHJCb3JkLCByLnkoKSwgMipyQm9yZCwgci5oZWlnaHQoKSApOwotICAgICAgICAgICAg
ICAgIHYtPnNldERyYXdpbmdBbHBoYSgoZmxvYXQpMS4wKTsKKyAgICAgICAgICAgICAgICBwYWlu
dC5zZXRCcnVzaChDb2xvcjo6Z3JheSk7CisgICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0Fs
cGhhKDAuMjUpOworICAgICAgICAgICAgICAgIHBhaW50LmRyYXdSZWN0KHAgKyBzdy8yIC0gckJv
cmQsIHIudG9wKCksIDIqckJvcmQsIHIuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIHYtPnNl
dERyYXdpbmdBbHBoYSgxLjApOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaWYgKCBtX29sZHBvcyA+PSAwICkKLSAgICAgICAgICAgICAgICB2LT51cGRhdGVD
b250ZW50cyggci54KCksIG1fb2xkcG9zICsgc3cvMiAtIHJCb3JkLCByLndpZHRoKCksIDIqckJv
cmQsIHRydWUgKTsKLSAgICAgICAgICAgIGlmICggcCA+PSAwICl7CisgICAgICAgICAgICBpZiAo
bV9vbGRwb3MgPj0gMCkKKyAgICAgICAgICAgICAgICB2LT51cGRhdGVDb250ZW50cyhyLmxlZnQo
KSwgbV9vbGRwb3MgKyBzdy8yIC0gckJvcmQsIHIud2lkdGgoKSwgMipyQm9yZCwgdHJ1ZSk7Cisg
ICAgICAgICAgICBpZiAocCA+PSAwKSB7CiAgICAgICAgICAgICAgICAgcGFpbnQuc2V0UGVuKFBl
bjo6Tm9QZW4pOwotICAgICAgICAgICAgICAgIHBhaW50LnNldEJydXNoKCBDb2xvcjo6Z3JheSAp
OwotICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgoZmxvYXQpMC4yNSk7Ci0gICAg
ICAgICAgICAgICAgcGFpbnQuZHJhd1JlY3QoIHIueCgpLCBwICsgc3cvMiAtIHJCb3JkLCByLndp
ZHRoKCksIDIqckJvcmQgKTsKLSAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoKGZs
b2F0KTEuMCk7CisgICAgICAgICAgICAgICAgcGFpbnQuc2V0QnJ1c2goQ29sb3I6OmdyYXkpOwor
ICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgwLjI1KTsKKyAgICAgICAgICAgICAg
ICBwYWludC5kcmF3UmVjdChyLmxlZnQoKSwgcCArIHN3LzIgLSByQm9yZCwgci53aWR0aCgpLCAy
ICogckJvcmQpOworICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgxLjApOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1fb2xkcG9zID0gcDsKSW5kZXg6IHJlbmRl
cmluZy9yZW5kZXJfYm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2JveC5j
cHAJKHJldmlzaW9uIDEyNDExKQorKysgcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzQsMzEgKzIzNCwzMCBAQAogfQogCiAvLyBIaXQgVGVzdGluZwotYm9vbCBS
ZW5kZXJCb3g6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50
IF90eCwgaW50IF90eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRUZXN0QWN0aW9u
IGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlckJveDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGlu
Zm8sIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQog
eworICAgIHR4ICs9IG1feDsKKyAgICB0eSArPSBtX3k7CisKICAgICAvLyBDaGVjayBraWRzIGZp
cnN0LgotICAgIF90eCArPSBtX3g7Ci0gICAgX3R5ICs9IG1feTsKICAgICBmb3IgKFJlbmRlck9i
amVjdCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3Vz
U2libGluZygpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNraXAgb3ZlciBpbmxp
bmUgZmxvd3MsIHNpbmNlIHRoZXkgY2FuIHNob3cgdXAgaW5zaWRlIHRhYmxlIHJvd3MgYXQgdGhl
IG1vbWVudCAoYSBkZW1vdGVkIGlubGluZSA8Zm9ybT4gZm9yIGV4YW1wbGUpLiAgSWYgd2UgZXZl
ciBpbXBsZW1lbnQgYQotICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBoaXQtdGVzdCBtZXRob2Qg
KHdoaWNoIHdlIHNob3VsZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbnl3YXkpLCB0aGVu
IHdlIGNhbiByZW1vdmUgdGhpcyBjaGVjay4KLSAgICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAm
JiAhY2hpbGQtPmlzSW5saW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2ludChpbmZvLCBfeCwg
X3ksIF90eCwgX3R5LCBoaXRUZXN0QWN0aW9uKSkgeworICAgICAgICAvLyBGSVhNRTogV2UgaGF2
ZSB0byBza2lwIG92ZXIgaW5saW5lIGZsb3dzLCBzaW5jZSB0aGV5IGNhbiBzaG93IHVwIGluc2lk
ZSB0YWJsZSByb3dzCisgICAgICAgIC8vIGF0IHRoZSBtb21lbnQgKGEgZGVtb3RlZCBpbmxpbmUg
PGZvcm0+IGZvciBleGFtcGxlKS4gSWYgd2UgZXZlciBpbXBsZW1lbnQgYQorICAgICAgICAvLyB0
YWJsZS1zcGVjaWZpYyBoaXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3VsZCBkbyBmb3IgcGVy
Zm9ybWFuY2UgcmVhc29ucyBhbnl3YXkpLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiByZW1vdmUg
dGhpcyBjaGVjay4KKyAgICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5s
aW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2ludChpbmZvLCB4LCB5LCB0eCwgdHksIGFjdGlv
bikpIHsKICAgICAgICAgICAgIHNldElubmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIC8vIENoZWNrIG91ciBib3VuZHMg
bmV4dC4gIEZvciB0aGlzIHB1cnBvc2UgYWx3YXlzIGFzc3VtZSB0aGF0IHdlIGNhbiBvbmx5IGJl
IGhpdCBpbiB0aGUKKyAgICAvLyBDaGVjayBvdXIgYm91bmRzIG5leHQuIEZvciB0aGlzIHB1cnBv
c2UgYWx3YXlzIGFzc3VtZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKICAgICAvLyBm
b3JlZ3JvdW5kIHBoYXNlICh3aGljaCBpcyB0cnVlIGZvciByZXBsYWNlZCBlbGVtZW50cyBsaWtl
IGltYWdlcykuCi0gICAgaWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZvcmVncm91bmQpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBJbnRSZWN0IGJvdW5kc1JlY3QoX3R4LCBf
dHksIG1fd2lkdGgsIG1faGVpZ2h0KTsKLSAgICBpZiAoYm91bmRzUmVjdC5jb250YWlucyhfeCwg
X3kpKSB7CisgICAgaWYgKGFjdGlvbiA9PSBIaXRUZXN0Rm9yZWdyb3VuZCAmJiBJbnRSZWN0KHR4
LCB0eSwgbV93aWR0aCwgbV9oZWlnaHQpLmNvbnRhaW5zUGl4ZWwoeCwgeSkpIHsKICAgICAgICAg
c2V0SW5uZXJOb2RlKGluZm8pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTMxMyw3ICszMTIsNyBAQAogICAgIC8vICIgVGhlIGJhY2tn
cm91bmQgb2YgdGhlIGJveCBnZW5lcmF0ZWQgYnkgdGhlIHJvb3QgZWxlbWVudCBjb3ZlcnMgdGhl
IGVudGlyZSBjYW52YXMuIgogICAgIC8vIGhlbmNlLCBwYWludCB0aGUgYmFja2dyb3VuZCBldmVu
IGluIHRoZSBtYXJnaW4gYXJlYXMgKHVubGlrZSBmb3IgZXZlcnkgb3RoZXIgZWxlbWVudCEpCiAg
ICAgLy8gSSBqdXN0IGxvdmUgdGhlc2UgbGl0dGxlIGluY29uc2lzdGVuY2llcyAuLiA6LSggKERp
cmspCi0gICAgaW50IG15ID0ga01heChieSwgaS5yLnkoKSk7CisgICAgaW50IG15ID0ga01heChi
eSwgaS5yLnRvcCgpKTsKIAogICAgIHBhaW50QmFja2dyb3VuZHMoaS5wLCBiZ0NvbG9yLCBiZ0xh
eWVyLCBteSwgaS5yLmhlaWdodCgpLCBieCwgYnksIGJ3LCBiaCk7CiAKQEAgLTMzMywxMCArMzMy
LDEwIEBACiAgICAgaW50IGggPSBoZWlnaHQoKSArIGJvcmRlclRvcEV4dHJhKCkgKyBib3JkZXJC
b3R0b21FeHRyYSgpOwogICAgIF90eSAtPSBib3JkZXJUb3BFeHRyYSgpOwogCi0gICAgaW50IG15
ID0ga01heChfdHksIGkuci55KCkpOworICAgIGludCBteSA9IGtNYXgoX3R5LCBpLnIudG9wKCkp
OwogICAgIGludCBtaDsKLSAgICBpZiAoX3R5IDwgaS5yLnkoKSkKLSAgICAgICAgbWg9IGtNYXgo
MCwgaCAtIChpLnIueSgpIC0gX3R5KSk7CisgICAgaWYgKF90eSA8IGkuci50b3AoKSkKKyAgICAg
ICAgbWggPSBrTWF4KDAsIGggLSAoaS5yLnRvcCgpIC0gX3R5KSk7CiAgICAgZWxzZQogICAgICAg
ICBtaCA9IGtNaW4oaS5yLmhlaWdodCgpLCBoKTsKIApAQCAtNTUwLDMyICs1NDksMzEgQEAKICAg
ICAgICAgICAgIEVCYWNrZ3JvdW5kUmVwZWF0IGJnciA9IGJnTGF5ZXItPmJhY2tncm91bmRSZXBl
YXQoKTsKICAgICAgICAgICAgIGlmKCAoYmdyID09IE5PX1JFUEVBVCB8fCBiZ3IgPT0gUkVQRUFU
X1kpICYmIHB3ID4gcGl4dyApIHsKICAgICAgICAgICAgICAgICBjdyA9IHBpeHc7Ci0gICAgICAg
ICAgICAgICAgY3ggPSB2ci54KCkgKyBiZ0xheWVyLT5iYWNrZ3JvdW5kWFBvc2l0aW9uKCkubWlu
V2lkdGgocHctcGl4dyk7CisgICAgICAgICAgICAgICAgY3ggPSB2ci5sZWZ0KCkgKyBiZ0xheWVy
LT5iYWNrZ3JvdW5kWFBvc2l0aW9uKCkubWluV2lkdGgocHcgLSBwaXh3KTsKICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY3cgPSBwdzsKLSAgICAgICAgICAgICAgICBjeCA9
IHZyLngoKTsKLSAgICAgICAgICAgICAgICBpZiAocGl4dyA+IDApIHsKLSAgICAgICAgICAgICAg
ICAgICAgc3ggPSAgcGl4dyAtICgoYmdMYXllci0+YmFja2dyb3VuZFhQb3NpdGlvbigpLm1pbldp
ZHRoKHB3LXBpeHcpKSAlIHBpeHcgKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgY3ggPSB2ci5sZWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKHBpeHcgPiAwKQorICAgICAg
ICAgICAgICAgICAgICBzeCA9ICBwaXh3IC0gYmdMYXllci0+YmFja2dyb3VuZFhQb3NpdGlvbigp
Lm1pbldpZHRoKHB3IC0gcGl4dykgJSBwaXh3OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBpZiggKGJnciA9PSBOT19SRVBFQVQgfHwgYmdyID09IFJFUEVBVF9YKSAmJiBwaCA+IHBpeGgg
KSB7CiAgICAgICAgICAgICAgICAgY2ggPSBwaXhoOwotICAgICAgICAgICAgICAgIGN5ID0gdnIu
eSgpICsgYmdMYXllci0+YmFja2dyb3VuZFlQb3NpdGlvbigpLm1pbldpZHRoKHBoLXBpeGgpOwor
ICAgICAgICAgICAgICAgIGN5ID0gdnIudG9wKCkgKyBiZ0xheWVyLT5iYWNrZ3JvdW5kWVBvc2l0
aW9uKCkubWluV2lkdGgocGggLSBwaXhoKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgY2ggPSBwaDsKLSAgICAgICAgICAgICAgICBjeSA9IHZyLnkoKTsKLSAgICAgICAg
ICAgICAgICBpZiAocGl4aCA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3kgPSBwaXhoIC0g
KChiZ0xheWVyLT5iYWNrZ3JvdW5kWVBvc2l0aW9uKCkubWluV2lkdGgocGgtcGl4aCkpICUgcGl4
aCApOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjeSA9IHZyLnRvcCgpOwor
ICAgICAgICAgICAgICAgIGlmIChwaXhoID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3kgPSBw
aXhoIC0gYmdMYXllci0+YmFja2dyb3VuZFlQb3NpdGlvbigpLm1pbldpZHRoKHBoIC0gcGl4aCkg
JSBwaXhoOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBJbnRSZWN0IGZpeChjeCxjeSxj
dyxjaCk7Ci0gICAgICAgICAgICBJbnRSZWN0IGVsZShfdHgsX3R5LHcsaCk7Ci0gICAgICAgICAg
ICBJbnRSZWN0IGIgPSBmaXguaW50ZXJzZWN0KGVsZSk7Ci0gICAgICAgICAgICBzeCs9Yi54KCkt
Y3g7Ci0gICAgICAgICAgICBzeSs9Yi55KCktY3k7Ci0gICAgICAgICAgICBjeD1iLngoKTtjeT1i
LnkoKTtjdz1iLndpZHRoKCk7Y2g9Yi5oZWlnaHQoKTsKKyAgICAgICAgICAgIEludFJlY3QgYiA9
IGludGVyc2VjdGlvbihJbnRSZWN0KGN4LCBjeSwgY3csIGNoKSwgSW50UmVjdChfdHgsIF90eSwg
dywgaCkpOworICAgICAgICAgICAgc3ggKz0gYi5sZWZ0KCkgLSBjeDsKKyAgICAgICAgICAgIHN5
ICs9IGIudG9wKCkgLSBjeTsKKyAgICAgICAgICAgIGN4ID0gYi5sZWZ0KCk7CisgICAgICAgICAg
ICBjeSA9IGIudG9wKCk7CisgICAgICAgICAgICBjdyA9IGIud2lkdGgoKTsKKyAgICAgICAgICAg
IGNoID0gYi5oZWlnaHQoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChjdz4wICYmIGNoPjAp
CkBAIC03NjMsOCArNzYxLDggQEAKIAogdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVBYnNvbHV0ZVJl
cGFpbnRSZWN0KEludFJlY3QmIHIsIGJvb2wgZikKIHsKLSAgICBpbnQgeCA9IHIueCgpICsgbV94
OwotICAgIGludCB5ID0gci55KCkgKyBtX3k7CisgICAgaW50IHggPSByLmxlZnQoKSArIG1feDsK
KyAgICBpbnQgeSA9IHIudG9wKCkgKyBtX3k7CiAgICAgIAogICAgIC8vIEFwcGx5IHRoZSByZWxh
dGl2ZSBwb3NpdGlvbiBvZmZzZXQgd2hlbiBpbnZhbGlkYXRpbmcgYSByZWN0YW5nbGUuICBUaGUg
bGF5ZXIKICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQgdGhlIHJlbmRlciBib3ggaXNuJ3QsIHNv
IHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCkBAIC03ODcsMTQgKzc4NSwxMyBAQAogICAg
ICAgICAgICAgSW50UmVjdCBib3hSZWN0KDAsIDAsIG8tPmxheWVyKCktPndpZHRoKCksIG8tPmxh
eWVyKCktPmhlaWdodCgpKTsKICAgICAgICAgICAgIG8tPmxheWVyKCktPnN1YnRyYWN0U2Nyb2xs
T2Zmc2V0KHgseSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCiAgICAgICAg
ICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0KHgsIHksIHIud2lkdGgoKSwgci5oZWlnaHQoKSk7Ci0g
ICAgICAgICAgICByID0gcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOworICAgICAgICAg
ICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CiAgICAgICAgICAgICBp
ZiAoci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgci5zZXRMZWZ0KHgpOworICAgICAgICAgICAgci5zZXRUb3AoeSk7CiAg
ICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICByLnNldFgoeCk7Ci0gICAgICAg
ICAgICByLnNldFkoeSk7Ci0gICAgICAgIH0KICAgICAgICAgby0+Y29tcHV0ZUFic29sdXRlUmVw
YWludFJlY3QociwgZik7CiAgICAgfQogfQpJbmRleDogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCShyZXZpc2lvbiAxMjQx
MSkKKysrIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Miw5
ICszNzIsOSBAQAogICAgIFBhaW50QWN0aW9uIHBhaW50QWN0aW9uID0gaS5waGFzZTsKICAgICAK
ICAgICBpbnQgb3MgPSAyKm1heGltYWxPdXRsaW5lU2l6ZShwYWludEFjdGlvbik7Ci0gICAgaWYg
KChfdHkgPj0gaS5yLnkoKSArIGkuci5oZWlnaHQoKSArIG9zKSB8fCAoX3R5ICsgaGVpZ2h0KCkg
PD0gaS5yLnkoKSAtIG9zKSkKKyAgICBpZiAoX3R5ID49IGkuci5ib3R0b20oKSArIG9zIHx8IF90
eSArIGhlaWdodCgpIDw9IGkuci50b3AoKSAtIG9zKQogICAgICAgICByZXR1cm47Ci0gICAgaWYg
KChfdHggPj0gaS5yLngoKSArIGkuci53aWR0aCgpICsgb3MpIHx8IChfdHggKyB3aWR0aCgpIDw9
IGkuci54KCkgLSBvcykpCisgICAgaWYgKF90eCA+PSBpLnIucmlnaHQoKSArIG9zIHx8IF90eCAr
IHdpZHRoKCkgPD0gaS5yLmxlZnQoKSAtIG9zKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
KHBhaW50QWN0aW9uID09IFBhaW50QWN0aW9uQmxvY2tCYWNrZ3JvdW5kIHx8IHBhaW50QWN0aW9u
ID09IFBhaW50QWN0aW9uQ2hpbGRCbG9ja0JhY2tncm91bmQpCkBAIC00MjgsMTAgKzQyOCwxMCBA
QAogICAgICAgICAgICAgX3R5ICs9IGNhcHRpb25IZWlnaHQ7CiAgICAgfQogCi0gICAgaW50IG15
ID0ga01heChfdHksIGkuci55KCkpOworICAgIGludCBteSA9IGtNYXgoX3R5LCBpLnIudG9wKCkp
OwogICAgIGludCBtaDsKLSAgICBpZiAoX3R5IDwgaS5yLnkoKSkKLSAgICAgICAgbWg9IGtNYXgo
MCwgaCAtIChpLnIueSgpIC0gX3R5KSk7CisgICAgaWYgKF90eSA8IGkuci50b3AoKSkKKyAgICAg
ICAgbWg9IGtNYXgoMCwgaCAtIChpLnIudG9wKCkgLSBfdHkpKTsKICAgICBlbHNlCiAgICAgICAg
IG1oID0ga01pbihpLnIuaGVpZ2h0KCksIGgpOwogICAgIApJbmRleDogcmVuZGVyaW5nL3JlbmRl
cl9mbG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3BwCShyZXZp
c2lvbiAxMjQxMSkKKysrIHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3MCw3ICszNzAsNyBAQAogICAgIGludCB5UG9zID0gZmlyc3RMaW5lQm94KCktPnJvb3Qo
KS0+c2VsZWN0aW9uVG9wKCkgLSBtYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSk7CiAgICAgaW50
IGggPSBtYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSkgKyBsYXN0TGluZUJveCgpLT5yb290KCkt
PnNlbGVjdGlvblRvcCgpICsgbGFzdExpbmVCb3goKS0+cm9vdCgpLT5zZWxlY3Rpb25IZWlnaHQo
KSAtIHlQb3M7CiAgICAgeVBvcyArPSBfdHk7Ci0gICAgaWYgKCh5UG9zID49IGkuci55KCkgKyBp
LnIuaGVpZ2h0KCkpIHx8ICh5UG9zICsgaCA8PSBpLnIueSgpKSkKKyAgICBpZiAoeVBvcyA+PSBp
LnIuYm90dG9tKCkgfHwgeVBvcyArIGggPD0gaS5yLnRvcCgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBTZWUgaWYgb3VyIHJvb3QgbGluZXMgaW50ZXJzZWN0IHdpdGggdGhlIGRpcnR5IHJl
Y3QuICBJZiBzbywgdGhlbiB3ZSBwYWludApAQCAtMzg2LDcgKzM4Niw3IEBACiAgICAgICAgICAg
ICAvLyBUcnkgdG8gYXZvaWQgc3BsaXR0aW5nIGEgbGluZSB2ZXJ0aWNhbGx5LCBidXQgb25seSBp
ZiBpdCdzIGxlc3MgdGhhbiB0aGUgaGVpZ2h0CiAgICAgICAgICAgICAvLyBvZiB0aGUgZW50aXJl
IHBhZ2UuCiAgICAgICAgICAgICBpZiAoY3Vyci0+cm9vdCgpLT5ib3R0b21PdmVyZmxvdygpIC0g
Y3Vyci0+cm9vdCgpLT50b3BPdmVyZmxvdygpIDw9IGMtPnByaW50UmVjdCgpLmhlaWdodCgpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+Ym90dG9tT3ZlcmZsb3co
KSA+IGMtPnByaW50UmVjdCgpLnkoKSArIGMtPnByaW50UmVjdCgpLmhlaWdodCgpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+Ym90dG9tT3ZlcmZsb3coKSA+IGMt
PnByaW50UmVjdCgpLnRvcCgpICsgYy0+cHJpbnRSZWN0KCkuaGVpZ2h0KCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+dG9wT3ZlcmZsb3coKSA8IGMtPnRy
dW5jYXRlZEF0KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjLT5zZXRCZXN0VHJ1bmNhdGVk
QXQoX3R5ICsgY3Vyci0+cm9vdCgpLT50b3BPdmVyZmxvdygpLCB0aGlzKTsKICAgICAgICAgICAg
ICAgICAgICAgLy8gSWYgd2Ugd2VyZSBhYmxlIHRvIHRydW5jYXRlLCBkb24ndCBwYWludC4KQEAg
LTQwMCw3ICs0MDAsNyBAQAogICAgICAgICBpbnQgYm90dG9tID0ga01heChjdXJyLT5yb290KCkt
PnNlbGVjdGlvblRvcCgpICsgY3Vyci0+cm9vdCgpLT5zZWxlY3Rpb25IZWlnaHQoKSwgY3Vyci0+
cm9vdCgpLT5ib3R0b21PdmVyZmxvdygpKSArIG1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKTsK
ICAgICAgICAgaCA9IGJvdHRvbSAtIHRvcDsKICAgICAgICAgeVBvcyA9IF90eSArIHRvcDsKLSAg
ICAgICAgaWYgKCh5UG9zIDwgaS5yLnkoKSArIGkuci5oZWlnaHQoKSkgJiYgKHlQb3MgKyBoID4g
aS5yLnkoKSkpCisgICAgICAgIGlmICh5UG9zIDwgaS5yLmJvdHRvbSgpICYmIHlQb3MgKyBoID4g
aS5yLnRvcCgpKQogICAgICAgICAgICAgY3Vyci0+cGFpbnQoaSwgX3R4LCBfdHkpOwogICAgIH0K
IApAQCAtNDg2LDkgKzQ4Niw5IEBACiAgICAgICAgICAgICBpbnQgeCA9IHIubGVmdCgpOwogICAg
ICAgICAgICAgaW50IHkgPSByLnRvcCgpOwogICAgICAgICAgICAgSW50UmVjdCBib3hSZWN0KDAs
IDAsIGNiLT5sYXllcigpLT53aWR0aCgpLCBjYi0+bGF5ZXIoKS0+aGVpZ2h0KCkpOwotICAgICAg
ICAgICAgY2ItPmxheWVyKCktPnN1YnRyYWN0U2Nyb2xsT2Zmc2V0KHgseSk7IC8vIEZvciBvdmVy
ZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisgICAgICAgICAgICBjYi0+bGF5ZXIoKS0+c3VidHJh
Y3RTY3JvbGxPZmZzZXQoeCwgeSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4u
CiAgICAgICAgICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0KHgsIHksIHIud2lkdGgoKSwgci5oZWln
aHQoKSk7Ci0gICAgICAgICAgICByID0gcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOwor
ICAgICAgICAgICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CiAgICAg
ICAgIH0KICAgICAgICAgY2ItPmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KHIpOwogICAgICAg
ICAKQEAgLTQ5NiwxMyArNDk2LDEzIEBACiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCog
Y3VyciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpIHsK
ICAgICAgICAgICAgICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdpdGhP
dXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICAgICAgciA9IHIudW5pdGUoY2hpbGRSZWN0KTsK
KyAgICAgICAgICAgICAgICAgICAgci51bml0ZShjaGlsZFJlY3QpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGNvbnRpbnVh
dGlvbigpICYmICFjb250aW51YXRpb24oKS0+aXNJbmxpbmUoKSkgewogICAgICAgICAgICAgICAg
IEludFJlY3QgY29udFJlY3QgPSBjb250aW51YXRpb24oKS0+Z2V0QWJzb2x1dGVSZXBhaW50UmVj
dFdpdGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0ZShjb250UmVjdCk7
CisgICAgICAgICAgICAgICAgci51bml0ZShjb250UmVjdCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC02OTYsMTEgKzY5NiwxMSBAQAogICAgIFFQdHJMaXN0IDxJbnRS
ZWN0PiByZWN0czsKICAgICByZWN0cy5zZXRBdXRvRGVsZXRlKHRydWUpOwogICAgIAotICAgIHJl
Y3RzLmFwcGVuZChuZXcgSW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJ
bnRSZWN0KTsKICAgICBmb3IgKElubGluZVJ1bkJveCogY3VyciA9IGZpcnN0TGluZUJveCgpOyBj
dXJyOyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkgewogICAgICAgICByZWN0cy5hcHBlbmQo
bmV3IEludFJlY3QoY3Vyci0+eFBvcygpLCBjdXJyLT55UG9zKCksIGN1cnItPndpZHRoKCksIGN1
cnItPmhlaWdodCgpKSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChuZXcgSW50UmVjdCgwLDAs
MCwwKSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICAKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMTsgaSA8IHJlY3RzLmNvdW50KCkgLSAxOyBpKyspCiAgICAgICAgIHBh
aW50T3V0bGluZUZvckxpbmUocCwgX3R4LCBfdHksICpyZWN0cy5hdChpLTEpLCAqcmVjdHMuYXQo
aSksICpyZWN0cy5hdChpKzEpKTsKQEAgLTcxOCw3NSArNzE4LDc1IEBACiAgICAgCiAgICAgaW50
IHQgPSB0eSArIHRoaXNsaW5lLnRvcCgpIC0gb2Zmc2V0OwogICAgIGludCBsID0gdHggKyB0aGlz
bGluZS5sZWZ0KCkgLSBvZmZzZXQ7Ci0gICAgaW50IGIgPSB0eSArIHRoaXNsaW5lLmJvdHRvbSgp
ICsgb2Zmc2V0ICsgMTsKLSAgICBpbnQgciA9IHR4ICsgdGhpc2xpbmUucmlnaHQoKSArIG9mZnNl
dCArIDE7CisgICAgaW50IGIgPSB0eSArICh0aGlzbGluZS5ib3R0b20oKSAtIDEpICsgb2Zmc2V0
ICsgMTsKKyAgICBpbnQgciA9IHR4ICsgKHRoaXNsaW5lLnJpZ2h0KCkgLSAxKSArIG9mZnNldCAr
IDE7CiAgICAgCiAgICAgLy8gbGVmdCBlZGdlCiAgICAgZHJhd0JvcmRlcihwLAogICAgICAgICAg
ICAgICAgbCAtIG93LAotICAgICAgICAgICAgICAgdCAtIChsYXN0bGluZS5pc0VtcHR5KCkgfHwg
dGhpc2xpbmUubGVmdCgpIDwgbGFzdGxpbmUubGVmdCgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPD0g
dGhpc2xpbmUubGVmdCgpID8gb3cgOiAwKSwKKyAgICAgICAgICAgICAgIHQgLSAobGFzdGxpbmUu
aXNFbXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSB8fCAobGFzdGxp
bmUucmlnaHQoKSAtIDEpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogMCksCiAgICAgICAgICAg
ICAgICBsLAotICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xp
bmUubGVmdCgpIDw9IG5leHRsaW5lLmxlZnQoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNs
aW5lLmxlZnQoKSA/IG93IDogMCksCisgICAgICAgICAgICAgICBiICsgKG5leHRsaW5lLmlzRW1w
dHkoKSB8fCB0aGlzbGluZS5sZWZ0KCkgPD0gbmV4dGxpbmUubGVmdCgpIHx8IChuZXh0bGluZS5y
aWdodCgpIC0gMSkgPD0gdGhpc2xpbmUubGVmdCgpID8gb3cgOiAwKSwKICAgICAgICAgICAgICAg
IEJTTGVmdCwKICAgICAgICAgICAgICAgIG9jLCBzdHlsZSgpLT5jb2xvcigpLCBvcywKLSAgICAg
ICAgICAgICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUubGVmdCgpIDwgbGFzdGxp
bmUubGVmdCgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPD0gdGhpc2xpbmUubGVmdCgpID8gb3cgOiAt
b3cpLAotICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCB0aGlzbGluZS5sZWZ0
KCkgPD0gbmV4dGxpbmUubGVmdCgpIHx8IG5leHRsaW5lLnJpZ2h0KCkgPD0gdGhpc2xpbmUubGVm
dCgpID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCB0
aGlzbGluZS5sZWZ0KCkgPCBsYXN0bGluZS5sZWZ0KCkgfHwgKGxhc3RsaW5lLnJpZ2h0KCkgLSAx
KSA8PSB0aGlzbGluZS5sZWZ0KCkgPyBvdyA6IC1vdyksCisgICAgICAgICAgICAgICAobmV4dGxp
bmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8PSBuZXh0bGluZS5sZWZ0KCkgfHwgKG5l
eHRsaW5lLnJpZ2h0KCkgLSAxKSA8PSB0aGlzbGluZS5sZWZ0KCkgPyBvdyA6IC1vdyksCiAgICAg
ICAgICAgICAgICB0cnVlKTsKICAgICAKICAgICAvLyByaWdodCBlZGdlCiAgICAgZHJhd0JvcmRl
cihwLAogICAgICAgICAgICAgICAgciwKLSAgICAgICAgICAgICAgIHQgLSAobGFzdGxpbmUuaXNF
bXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdodCgpIHx8IHRoaXNsaW5l
LnJpZ2h0KCkgPD0gbGFzdGxpbmUubGVmdCgpID8gb3cgOiAwKSwKKyAgICAgICAgICAgICAgIHQg
LSAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdo
dCgpIHx8ICh0aGlzbGluZS5yaWdodCgpIC0gMSkgPD0gbGFzdGxpbmUubGVmdCgpID8gb3cgOiAw
KSwKICAgICAgICAgICAgICAgIHIgKyBvdywKLSAgICAgICAgICAgICAgIGIgKyAobmV4dGxpbmUu
aXNFbXB0eSgpIHx8IG5leHRsaW5lLnJpZ2h0KCkgPD0gdGhpc2xpbmUucmlnaHQoKSB8fCB0aGlz
bGluZS5yaWdodCgpIDw9IG5leHRsaW5lLmxlZnQoKSA/IG93IDogMCksCisgICAgICAgICAgICAg
ICBiICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5l
LnJpZ2h0KCkgfHwgKHRoaXNsaW5lLnJpZ2h0KCkgLSAxKSA8PSBuZXh0bGluZS5sZWZ0KCkgPyBv
dyA6IDApLAogICAgICAgICAgICAgICAgQlNSaWdodCwKICAgICAgICAgICAgICAgIG9jLCBzdHls
ZSgpLT5jb2xvcigpLCBvcywKLSAgICAgICAgICAgICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwg
bGFzdGxpbmUucmlnaHQoKSA8IHRoaXNsaW5lLnJpZ2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8
PSBsYXN0bGluZS5sZWZ0KCkgPyBvdyA6IC1vdyksCi0gICAgICAgICAgICAgICAobmV4dGxpbmUu
aXNFbXB0eSgpIHx8IG5leHRsaW5lLnJpZ2h0KCkgPD0gdGhpc2xpbmUucmlnaHQoKSB8fCB0aGlz
bGluZS5yaWdodCgpIDw9IG5leHRsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKKyAgICAgICAgICAg
ICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwgbGFzdGxpbmUucmlnaHQoKSA8IHRoaXNsaW5lLnJp
Z2h0KCkgfHwgKHRoaXNsaW5lLnJpZ2h0KCkgLSAxKSA8PSBsYXN0bGluZS5sZWZ0KCkgPyBvdyA6
IC1vdyksCisgICAgICAgICAgICAgICAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IG5leHRsaW5lLnJp
Z2h0KCkgPD0gdGhpc2xpbmUucmlnaHQoKSB8fCAodGhpc2xpbmUucmlnaHQoKSAtIDEpIDw9IG5l
eHRsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKICAgICAgICAgICAgICAgIHRydWUpOwogICAgIC8v
IHVwcGVyIGVkZ2UKLSAgICBpZiAoIHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSkK
KyAgICBpZiAodGhpc2xpbmUubGVmdCgpIDwgbGFzdGxpbmUubGVmdCgpKQogICAgICAgICBkcmF3
Qm9yZGVyKHAsCiAgICAgICAgICAgICAgICAgICAgbCAtIG93LAogICAgICAgICAgICAgICAgICAg
IHQgLSBvdywKLSAgICAgICAgICAgICAgICAgICBrTWluKHIrb3csIChsYXN0bGluZS5pc1ZhbGlk
KCk/IHR4K2xhc3RsaW5lLmxlZnQoKSA6IDEwMDAwMDApKSwKKyAgICAgICAgICAgICAgICAgICBr
TWluKHIrb3csIChsYXN0bGluZS5pc0VtcHR5KCkgPyAxMDAwMDAwIDogdHggKyBsYXN0bGluZS5s
ZWZ0KCkpKSwKICAgICAgICAgICAgICAgICAgICB0ICwKICAgICAgICAgICAgICAgICAgICBCU1Rv
cCwgb2MsIHN0eWxlKCktPmNvbG9yKCksIG9zLAogICAgICAgICAgICAgICAgICAgIG93LAotICAg
ICAgICAgICAgICAgICAgIChsYXN0bGluZS5pc1ZhbGlkKCkgJiYgdHgrbGFzdGxpbmUubGVmdCgp
KzE8citvdyA/IC1vdyA6IG93KSwKKyAgICAgICAgICAgICAgICAgICAoIWxhc3RsaW5lLmlzRW1w
dHkoKSAmJiB0eCArIGxhc3RsaW5lLmxlZnQoKSArIDEgPCByICsgb3cpID8gLW93IDogb3csCiAg
ICAgICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAgICAgaWYgKGxhc3RsaW5lLnJpZ2h0KCkg
PCB0aGlzbGluZS5yaWdodCgpKQogICAgICAgICBkcmF3Qm9yZGVyKHAsCi0gICAgICAgICAgICAg
ICAgICAga01heChsYXN0bGluZS5pc1ZhbGlkKCk/dHggKyBsYXN0bGluZS5yaWdodCgpICsgMTot
MTAwMDAwMCwgbCAtIG93KSwKKyAgICAgICAgICAgICAgICAgICBrTWF4KGxhc3RsaW5lLmlzRW1w
dHkoKSA/IC0xMDAwMDAwIDogdHggKyAobGFzdGxpbmUucmlnaHQoKSAtIDEpICsgMSwgbCAtIG93
KSwKICAgICAgICAgICAgICAgICAgICB0IC0gb3csCiAgICAgICAgICAgICAgICAgICAgciArIG93
LAogICAgICAgICAgICAgICAgICAgIHQgLAogICAgICAgICAgICAgICAgICAgIEJTVG9wLCBvYywg
c3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAgICAgKGxhc3RsaW5lLmlzVmFs
aWQoKSAmJiBsLW93IDwgdHgrbGFzdGxpbmUucmlnaHQoKSsxID8gLW93IDogb3cpLAorICAgICAg
ICAgICAgICAgICAgICghbGFzdGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgKGxhc3Rs
aW5lLnJpZ2h0KCkgLSAxKSArIDEpID8gLW93IDogb3csCiAgICAgICAgICAgICAgICAgICAgb3cs
CiAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAgICAgLy8gbG93ZXIgZWRnZQotICAg
IGlmICggdGhpc2xpbmUubGVmdCgpIDwgbmV4dGxpbmUubGVmdCgpKQorICAgIGlmICh0aGlzbGlu
ZS5sZWZ0KCkgPCBuZXh0bGluZS5sZWZ0KCkpCiAgICAgICAgIGRyYXdCb3JkZXIocCwKICAgICAg
ICAgICAgICAgICAgICBsIC0gb3csCiAgICAgICAgICAgICAgICAgICAgYiwKLSAgICAgICAgICAg
ICAgICAgICBrTWluKHIrb3csIG5leHRsaW5lLmlzVmFsaWQoKT8gdHgrbmV4dGxpbmUubGVmdCgp
KzEgOiAxMDAwMDAwKSwKKyAgICAgICAgICAgICAgICAgICBrTWluKHIgKyBvdywgIW5leHRsaW5l
LmlzRW1wdHkoKSA/IHR4ICsgbmV4dGxpbmUubGVmdCgpICsgMSA6IDEwMDAwMDApLAogICAgICAg
ICAgICAgICAgICAgIGIgKyBvdywKICAgICAgICAgICAgICAgICAgICBCU0JvdHRvbSwgb2MsIHN0
eWxlKCktPmNvbG9yKCksIG9zLAogICAgICAgICAgICAgICAgICAgIG93LAotICAgICAgICAgICAg
ICAgICAgIChuZXh0bGluZS5pc1ZhbGlkKCkgJiYgdHgrbmV4dGxpbmUubGVmdCgpKzE8citvdz8g
LW93IDogb3cpLAorICAgICAgICAgICAgICAgICAgICghbmV4dGxpbmUuaXNFbXB0eSgpICYmIHR4
ICsgbmV4dGxpbmUubGVmdCgpICsgMSA8IHIgKyBvdykgPyAtb3cgOiBvdywKICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKICAgICAKICAgICBpZiAobmV4dGxpbmUucmlnaHQoKSA8IHRoaXNsaW5l
LnJpZ2h0KCkpCiAgICAgICAgIGRyYXdCb3JkZXIocCwKLSAgICAgICAgICAgICAgICAgICBrTWF4
KG5leHRsaW5lLmlzVmFsaWQoKT90eCtuZXh0bGluZS5yaWdodCgpKzE6LTEwMDAwMDAgLCBsLW93
KSwKKyAgICAgICAgICAgICAgICAgICBrTWF4KCFuZXh0bGluZS5pc0VtcHR5KCkgPyB0eCArIChu
ZXh0bGluZS5yaWdodCgpIC0gMSkgKyAxIDogLTEwMDAwMDAsIGwgLSBvdyksCiAgICAgICAgICAg
ICAgICAgICAgYiwKICAgICAgICAgICAgICAgICAgICByICsgb3csCiAgICAgICAgICAgICAgICAg
ICAgYiArIG93LAogICAgICAgICAgICAgICAgICAgIEJTQm90dG9tLCBvYywgc3R5bGUoKS0+Y29s
b3IoKSwgb3MsCi0gICAgICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzVmFsaWQoKSAmJiBsLW93
IDwgdHgrbmV4dGxpbmUucmlnaHQoKSsxPyAtb3cgOiBvdyksCisgICAgICAgICAgICAgICAgICAg
KCFuZXh0bGluZS5pc0VtcHR5KCkgJiYgbCAtIG93IDwgdHggKyAobmV4dGxpbmUucmlnaHQoKSAt
IDEpICsgMSkgPyAtb3cgOiBvdywKICAgICAgICAgICAgICAgICAgICBvdywKICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCShyZXZpc2lvbiAxMjQx
MSkKKysrIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDksMTEgKzEwOSwxMSBAQAogICAgIGludCBoZWlnaHREZWx0YSA9IHIuaGVpZ2h0KCkgLSAoc2l6
ZS5oZWlnaHQoKSArIG1hcmdpbnNbdG9wTWFyZ2luXSArIG1hcmdpbnNbYm90dG9tTWFyZ2luXSk7
CiAgICAgSW50UmVjdCByZXN1bHQocik7CiAgICAgaWYgKHdpZHRoRGVsdGEgPCAwKSB7Ci0gICAg
ICAgIHJlc3VsdC5zZXRYKHJlc3VsdC54KCkgLSBtYXJnaW5zW2xlZnRNYXJnaW5dKTsKKyAgICAg
ICAgcmVzdWx0LnNldExlZnQocmVzdWx0LmxlZnQoKSAtIG1hcmdpbnNbbGVmdE1hcmdpbl0pOwog
ICAgICAgICByZXN1bHQuc2V0V2lkdGgocmVzdWx0LndpZHRoKCkgLSB3aWR0aERlbHRhKTsKICAg
ICB9CiAgICAgaWYgKGhlaWdodERlbHRhIDwgMCkgewotICAgICAgICByZXN1bHQuc2V0WShyZXN1
bHQueSgpIC0gbWFyZ2luc1t0b3BNYXJnaW5dKTsKKyAgICAgICAgcmVzdWx0LnNldFRvcChyZXN1
bHQudG9wKCkgLSBtYXJnaW5zW3RvcE1hcmdpbl0pOwogICAgICAgICByZXN1bHQuc2V0SGVpZ2h0
KHJlc3VsdC5oZWlnaHQoKSAtIGhlaWdodERlbHRhKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTUwOCw3ICs1MDgsNyBAQAogICAgIGlmIChbYnV0dG9uIGJlemVsU3R5bGVdID09IE5T
Um91bmRlZEJlemVsU3R5bGUpIHsKICAgICAgICAgLy8gQ2VudGVyIHRoZSBidXR0b24gd2l0aGlu
IHRoZSBhdmFpbGFibGUgc3BhY2UuCiAgICAgICAgIGlmIChpbmZsYXRlZFJlY3QuaGVpZ2h0KCkg
PiBzaXplLmhlaWdodCgpKSB7Ci0gICAgICAgICAgICBpbmZsYXRlZFJlY3Quc2V0WChpbmZsYXRl
ZFJlY3QueCgpICsgKGluZmxhdGVkUmVjdC5oZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCkpLzIpOwor
ICAgICAgICAgICAgaW5mbGF0ZWRSZWN0LnNldFRvcChpbmZsYXRlZFJlY3QudG9wKCkgKyAoaW5m
bGF0ZWRSZWN0LmhlaWdodCgpIC0gc2l6ZS5oZWlnaHQoKSkgLyAyKTsKICAgICAgICAgICAgIGlu
ZmxhdGVkUmVjdC5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmlu
Zy9yZW5kZXJfb2JqZWN0LmgJKHJldmlzaW9uIDEyNDExKQorKysgcmVuZGVyaW5nL3JlbmRlcl9v
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQAogCiBjbGFzcyBDU1NTdHls
ZTsKIGNsYXNzIEZyYW1lVmlldzsKLWNsYXNzIFFNYXRyaXg7CiBjbGFzcyBRUGFpbnRlcjsKIGNs
YXNzIFFUZXh0U3RyZWFtOwogY2xhc3MgUmVuZGVyQXJlbmE7CkBAIC03Myw2ICs3Miw3IEBACiBj
bGFzcyBIVE1MQXJlYUVsZW1lbnRJbXBsOwogY2xhc3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5l
Rmxvd0JveDsKK2NsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIFBvc2l0aW9uOwogY2xhc3Mg
UmVuZGVyQmxvY2s7CiBjbGFzcyBSZW5kZXJDYW52YXM7CkBAIC0yODAsOSArMjgwLDkgQEAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCByZWxhdGl2ZUJCb3goYm9vbCBpbmNsdWRlU3Ryb2tlID0gdHJ1
ZSkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KICAgICAvLyBXZSBtYXkgZXZlbnR1YWxs
eSB3YW50IHRvIG1ha2UgdGhlc2Ugbm9uLXZpcnR1YWwKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9j
YWxUcmFuc2Zvcm0oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0o
Y29uc3QgUU1hdHJpeCYpIHsgYXNzZXJ0KGZhbHNlKTsgfQotICAgIHZpcnR1YWwgUU1hdHJpeCBh
YnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0OworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxv
Y2FsVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3Jt
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpIHsgYXNzZXJ0KGZhbHNlKTsgfQorICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtKCkgY29uc3Q7CiAjZW5kaWYKICAgICAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0OwpJbmRleDogcmVuZGVyaW5nL3Jl
bmRlcl9saXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2xpc3QuY3BwCShy
ZXZpc2lvbiAxMjQxMSkKKysrIHJlbmRlcmluZy9yZW5kZXJfbGlzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxNiw3ICszMTYsNyBAQAogICAgICAgICAgICAgeG9mZiA9IGNNYXJrZXJQYWRkaW5n
ICsgKGhhdmVJbWFnZSA/IDAgOiAob2Zmc2V0IC0gYnVsbGV0V2lkdGgpKTsKIAogICAgICAgICBp
ZiAoeG9mZiA8IDApIHsKLSAgICAgICAgICAgIHJlc3VsdC5zZXRYKHJlc3VsdC54KCkgKyB4b2Zm
KTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRMZWZ0KHJlc3VsdC5sZWZ0KCkgKyB4b2ZmKTsKICAg
ICAgICAgICAgIHJlc3VsdC5zZXRXaWR0aChyZXN1bHQud2lkdGgoKSAtIHhvZmYpOwogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIHJlc3VsdC5zZXRXaWR0aChyZXN1bHQud2lkdGgoKSArIHhv
ZmYpOwpAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgX3R4ICs9IG1feDsKICAgICBfdHkgKz0gbV95
OwogCi0gICAgaWYgKChfdHkgPiBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoX3R5ICsgbV9o
ZWlnaHQgPCBpLnIueSgpKSkKKyAgICBpZiAoX3R5ID4gaS5yLmJvdHRvbSgpIHx8IF90eSArIG1f
aGVpZ2h0IDwgaS5yLnRvcCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoc2hvdWxkUGFp
bnRCYWNrZ3JvdW5kT3JCb3JkZXIoKSkgCkBAIC00MTQsMTIgKzQxNCwxMiBAQAogCiAgICAgYm9v
bCBpc1ByaW50aW5nID0gKHAtPmRldmljZSgpLT5kZXZUeXBlKCkgPT0gUUludGVybmFsOjpQcmlu
dGVyKTsKICAgICBpZiAoaXNQcmludGluZykgewotICAgICAgICBpZiAoX3R5IDwgaS5yLnkoKSkK
KyAgICAgICAgaWYgKF90eSA8IGkuci50b3AoKSkKICAgICAgICAgICAgIC8vIFRoaXMgaGFzIGJl
ZW4gcHJpbnRlZCBhbHJlYWR5IHdlIHN1cHBvc2UuCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgICAgICBSZW5kZXJDYW52YXMqIGMgPSBjYW52YXMoKTsKLSAgICAgICAgaWYgKF90
eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSgpICsgYm9yZGVyQm90dG9tKCkgPj0gYy0+cHJp
bnRSZWN0KCkueSgpICsgYy0+cHJpbnRSZWN0KCkuaGVpZ2h0KCkpIHsKKyAgICAgICAgaWYgKF90
eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSgpICsgYm9yZGVyQm90dG9tKCkgPj0gYy0+cHJp
bnRSZWN0KCkuYm90dG9tKCkpIHsKICAgICAgICAgICAgIGlmIChfdHkgPCBjLT50cnVuY2F0ZWRB
dCgpKQogICAgICAgICAgICAgICAgIGMtPnNldEJlc3RUcnVuY2F0ZWRBdChfdHksIHRoaXMpOwog
ICAgICAgICAgICAgLy8gTGV0J3MgcHJpbnQgdGhpcyBvbiB0aGUgbmV4dCBwYWdlLgpJbmRleDog
cmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L3JlbmRlcl9jYW52YXNpbWFnZS5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcmVuZGVyaW5nL3Jl
bmRlcl9jYW52YXNpbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMSArMTgwLDggQEAK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChkcmF3U2VsZWN0aW9uVGludCkgewotICAgICAg
ICBCcnVzaCBicnVzaChzZWxlY3Rpb25Db2xvcihwKSk7Ci0gICAgICAgIEludFJlY3Qgc2VsUmVj
dChzZWxlY3Rpb25SZWN0KCkpOwotICAgICAgICBwLT5maWxsUmVjdChzZWxSZWN0LngoKSwgc2Vs
UmVjdC55KCksIHNlbFJlY3Qud2lkdGgoKSwgc2VsUmVjdC5oZWlnaHQoKSwgYnJ1c2gpOwotICAg
IH0KKyAgICBpZiAoZHJhd1NlbGVjdGlvblRpbnQpCisgICAgICAgIHAtPmZpbGxSZWN0KHNlbGVj
dGlvblJlY3QoKSwgc2VsZWN0aW9uQ29sb3IocCkpOwogfQogCiB2b2lkIFJlbmRlckNhbnZhc0lt
YWdlOjpsYXlvdXQoKQpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcmVu
ZGVyaW5nL3JlbmRlcl9pbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MiwxMiArMjcyLDkg
QEAKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIGlmIChpbWFnZSAmJiAhaW1hZ2UtPmlzVHJh
bnNwYXJlbnQoKSkgewotICAgICAgICBpZiAoIChjV2lkdGggIT0gaW50cmluc2ljV2lkdGgoKSB8
fCAgY0hlaWdodCAhPSBpbnRyaW5zaWNIZWlnaHQoKSkgJiYKLSAgICAgICAgICAgICBwaXgud2lk
dGgoKSA+IDAgJiYgcGl4LmhlaWdodCgpID4gMCAmJiBpbWFnZS0+dmFsaWRfcmVjdCgpLmlzVmFs
aWQoKSkKLSAgICAgICAgeworICAgICAgICBpZiAoKGNXaWR0aCAhPSBpbnRyaW5zaWNXaWR0aCgp
IHx8IGNIZWlnaHQgIT0gaW50cmluc2ljSGVpZ2h0KCkpICYmIHBpeC53aWR0aCgpID4gMCAmJiBw
aXguaGVpZ2h0KCkgPiAwICYmICFpbWFnZS0+dmFsaWRfcmVjdCgpLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgSW50U2l6ZSB0aW50U2l6ZTsKLSAgICAgICAgICAgIGlmIChyZXNpemVDYWNoZS5p
c051bGwoKSAmJiBjV2lkdGggJiYgY0hlaWdodCkKLSAgICAgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChyZXNpemVDYWNoZS5pc051bGwoKSAmJiBjV2lkdGggJiYgY0hlaWdodCkgewogICAgICAg
ICAgICAgICAgIEludFJlY3Qgc2NhbGVkcmVjdChpbWFnZS0+dmFsaWRfcmVjdCgpKTsKICAgICAg
ICAgICAgICAgICByZXNpemVDYWNoZSA9IHBpeDsKICAgICAgICAgICAgICAgICBzY2FsZWRyZWN0
LnNldFdpZHRoKCAoIGNXaWR0aCpzY2FsZWRyZWN0LndpZHRoKCkgKSAvIGludHJpbnNpY1dpZHRo
KCkgKTsKQEAgLTI5NCw1MiArMjkxLDMwIEBACiAgICAgICAgICAgICAgICAgaWYocmVzaXplQ2Fj
aGUuc2l6ZSgpICE9IHMpCiAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZUNhY2hlLnJlc2l6ZShz
KTsKIAotICAgICAgICAgICAgICAgIHAtPmRyYXdQaXhtYXAoIEludFBvaW50KCBfdHggKyBsZWZ0
Qm9yZGVyICsgbGVmdFBhZCwgX3R5ICsgdG9wQm9yZGVyICsgdG9wUGFkKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNpemVDYWNoZSwgc2NhbGVkcmVjdCApOworICAgICAgICAg
ICAgICAgIHAtPmRyYXdQaXhtYXAoIEludFBvaW50KCBfdHggKyBsZWZ0Qm9yZGVyICsgbGVmdFBh
ZCwgX3R5ICsgdG9wQm9yZGVyICsgdG9wUGFkKSwgcmVzaXplQ2FjaGUsIHNjYWxlZHJlY3QgKTsK
ICAgICAgICAgICAgICAgICB0aW50U2l6ZSA9IHM7CiAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgIHAtPmRyYXdQaXhtYXAoIEludFBvaW50KCBfdHggKyBsZWZ0Qm9yZGVyICsg
bGVmdFBhZCwgX3R5ICsgdG9wQm9yZGVyICsgdG9wUGFkKSwgcmVzaXplQ2FjaGUgKTsKICAgICAg
ICAgICAgICAgICB0aW50U2l6ZSA9IHJlc2l6ZUNhY2hlLnJlY3QoKS5zaXplKCk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoZHJhd1NlbGVjdGlvblRpbnQpIHsKLSAgICAgICAgICAg
ICAgICBCcnVzaCBicnVzaChzZWxlY3Rpb25Db2xvcihwKSk7Ci0gICAgICAgICAgICAgICAgSW50
UmVjdCBzZWxSZWN0KHNlbGVjdGlvblJlY3QoKSk7Ci0gICAgICAgICAgICAgICAgcC0+ZmlsbFJl
Y3Qoc2VsUmVjdC54KCksIHNlbFJlY3QueSgpLCBzZWxSZWN0LndpZHRoKCksIHNlbFJlY3QuaGVp
Z2h0KCksIGJydXNoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIHdlIG1pZ2h0IGJlIGp1c3QgYWJvdXQgc3dpdGNoaW5n
IGltYWdlcwotICAgICAgICAgICAgLy8gc28gcGl4IGNvbnRhaW5zIHRoZSBvbGQgb25lICh3ZSB3
YW50IHRvIHBhaW50KSwgYnV0IGltYWdlLT52YWxpZF9yZWN0IGlzIHN0aWxsIGludmFsaWQKKyAg
ICAgICAgICAgIGlmIChkcmF3U2VsZWN0aW9uVGludCkKKyAgICAgICAgICAgICAgICBwLT5maWxs
UmVjdChzZWxlY3Rpb25SZWN0KCksIHNlbGVjdGlvbkNvbG9yKHApKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vIHdlIG1pZ2h0IGJlIGluIHRoZSBwcm9jZXNzIG9mIHN3aXRjaGlu
ZyBpbWFnZXMKKyAgICAgICAgICAgIC8vIHNvIHBpeCBjb250YWlucyB0aGUgb2xkIG9uZSAod2Ug
d2FudCB0byBwYWludCksIGJ1dCBpbWFnZS0+dmFsaWRfcmVjdCBpcyBzdGlsbCBlbXB0eQogICAg
ICAgICAgICAgLy8gc28gdXNlIGludHJpbnNpYyBTaXplIGluc3RlYWQuCiAgICAgICAgICAgICAv
LyAjIyMgbWF5YmUgbm8gcHJvZ3Jlc3NpdmUgbG9hZGluZyBmb3IgdGhlIHNlY29uZCBpbWFnZSA/
Ci0gICAgICAgICAgICBJbnRSZWN0IHJlY3QoaW1hZ2UtPnZhbGlkX3JlY3QoKS5pc1ZhbGlkKCkg
PyBpbWFnZS0+dmFsaWRfcmVjdCgpCi0gICAgICAgICAgICAgICAgICAgICAgIDogSW50UmVjdCgw
LCAwLCBpbnRyaW5zaWNXaWR0aCgpLCBpbnRyaW5zaWNIZWlnaHQoKSkpOworICAgICAgICAgICAg
SW50UmVjdCByZWN0KCFpbWFnZS0+dmFsaWRfcmVjdCgpLmlzRW1wdHkoKSA/IGltYWdlLT52YWxp
ZF9yZWN0KCkgOiBJbnRSZWN0KDAsIDAsIGludHJpbnNpY1dpZHRoKCksIGludHJpbnNpY0hlaWdo
dCgpKSk7CiAKICAgICAgICAgICAgIEludFBvaW50IG9mZnMoIF90eCArIGxlZnRCb3JkZXIgKyBs
ZWZ0UGFkLCBfdHkgKyB0b3BCb3JkZXIgKyB0b3BQYWQpOwotLy8gICAgICAgICAgICAgcURlYnVn
KCJub3JtYWwgcGFpbnQgcmVjdCAlZC8lZC8lZC8lZCIsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVj
dC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLS8vICAgICAgICAgICAgIHJlY3QgPSByZWN0ICYg
SW50UmVjdCggMCAsIHkgLSBvZmZzLnkoKSAtIDEwLCB3LCAxMCArIHkgKyBoICAtIG9mZnMueSgp
KTsKIAotLy8gICAgICAgICAgICAgcURlYnVnKCJub3JtYWwgcGFpbnQgcmVjdCBhZnRlciAlZC8l
ZC8lZC8lZCIsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgp
KTsKLS8vICAgICAgICAgICAgIHFEZWJ1Zygibm9ybWFsIHBhaW50OiBvZmZzLnkoKTogJWQsIHk6
ICVkLCBkaWZmOiAlZCIsIG9mZnMueSgpLCB5LCB5IC0gb2Zmcy55KCkpOwotLy8gICAgICAgICAg
ICAgcURlYnVnKCIiKTsKLQotLy8gICAgICAgICAgIHAtPnNldENsaXBSZWN0KEludFJlY3QoeCx5
LHcsaCkpOwotCi0KLS8vICAgICAgICAgICAgIHAtPmRyYXdQaXhtYXAoIG9mZnMueCgpLCB5LCBw
aXgsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpICk7Ci0g
ICAgICAgICAgICAgSFRNTEltYWdlRWxlbWVudEltcGwqIGkgPSAoZWxlbWVudCgpICYmIGVsZW1l
bnQoKS0+aGFzVGFnTmFtZShpbWdUYWcpKSA/IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnRJ
bXBsKj4oZWxlbWVudCgpKSA6IDA7Ci0gICAgICAgICAgICAgaWYgKGkgJiYgIWktPmNvbXBvc2l0
ZU9wZXJhdG9yKCkuaXNOdWxsKCkpewotICAgICAgICAgICAgICAgIHAtPmRyYXdQaXhtYXAgKG9m
ZnMsIHBpeCwgcmVjdCwgaS0+Y29tcG9zaXRlT3BlcmF0b3IoKSk7Ci0gICAgICAgICAgICAgfQot
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICBwLT5kcmF3UGl4bWFwKG9mZnMs
IHBpeCwgcmVjdCk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIChkcmF3U2VsZWN0
aW9uVGludCkgewotICAgICAgICAgICAgICAgICBCcnVzaCBicnVzaChzZWxlY3Rpb25Db2xvcihw
KSk7Ci0gICAgICAgICAgICAgICAgIEludFJlY3Qgc2VsUmVjdChzZWxlY3Rpb25SZWN0KCkpOwot
ICAgICAgICAgICAgICAgICBwLT5maWxsUmVjdChzZWxSZWN0LngoKSwgc2VsUmVjdC55KCksIHNl
bFJlY3Qud2lkdGgoKSwgc2VsUmVjdC5oZWlnaHQoKSwgYnJ1c2gpOwotICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnRJbXBsKiBpID0gKGVsZW1lbnQoKSAmJiBlbGVt
ZW50KCktPmhhc1RhZ05hbWUoaW1nVGFnKSkgPyBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50
SW1wbCo+KGVsZW1lbnQoKSkgOiAwOworICAgICAgICAgICAgaWYgKGkgJiYgIWktPmNvbXBvc2l0
ZU9wZXJhdG9yKCkuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcC0+ZHJhd1BpeG1hcChvZmZz
LCBwaXgsIHJlY3QsIGktPmNvbXBvc2l0ZU9wZXJhdG9yKCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHAtPmRyYXdQaXhtYXAob2ZmcywgcGl4LCByZWN0KTsKKyAgICAgICAg
ICAgIGlmIChkcmF3U2VsZWN0aW9uVGludCkKKyAgICAgICAgICAgICAgICBwLT5maWxsUmVjdChz
ZWxlY3Rpb25SZWN0KCksIHNlbGVjdGlvbkNvbG9yKHApKTsKICAgICAgICAgfQogICAgIH0KIH0K
SW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQyLDE4ICsxMDQyLDExIEBACiAKICAgICBpbnQgYWJz
eCwgYWJzeTsKICAgICBjYi0+YWJzb2x1dGVQb3NpdGlvbihhYnN4LCBhYnN5KTsKLSAgICBSZW5k
ZXJMYXllciAqbGF5ZXIgPSBjYi0+bGF5ZXIoKTsKKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBj
Yi0+bGF5ZXIoKTsKICAgICBpZiAobGF5ZXIpCiAgICAgICAgbGF5ZXItPnN1YnRyYWN0U2Nyb2xs
T2Zmc2V0KGFic3gsIGFic3kpOyAKLSAgICBmb3IgKElubGluZVRleHRCb3gqIGJveCA9IGZpcnN0
VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4dFRleHRCb3goKSkgewotICAgICAgICBJbnRS
ZWN0IHIgPSBib3gtPnNlbGVjdGlvblJlY3QoYWJzeCwgYWJzeSwgc3RhcnRQb3MsIGVuZFBvcyk7
Ci0gICAgICAgIGlmICghci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmIChyZWN0LmlzRW1w
dHkoKSkKLSAgICAgICAgICAgICAgICByZWN0ID0gcjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICByZWN0ID0gcmVjdC51bml0ZShyKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBm
b3IgKElubGluZVRleHRCb3gqIGJveCA9IGZpcnN0VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+
bmV4dFRleHRCb3goKSkKKyAgICAgICAgcmVjdC51bml0ZShib3gtPnNlbGVjdGlvblJlY3QoYWJz
eCwgYWJzeSwgc3RhcnRQb3MsIGVuZFBvcykpOwogCiAgICAgcmV0dXJuIHJlY3Q7CiB9CkluZGV4
OiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHJlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBACiAgICAgSW50UmVjdCBy
ID0gZi0+c2VsZWN0aW9uUmVjdEZvclRleHQodHggKyBtX3gsIHR5ICsgc2VsVG9wLCBzZWxIZWln
aHQsIHRleHRPYmotPnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4dE9iai0+c3RyLT5zLCB0ZXh0
T2JqLT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLCBtX3RvQWRkLCBtX3JldmVyc2VkLCBtX2Rpck92
ZXJyaWRlLCBzUG9zLCBlUG9zKTsKICAgICBpZiAoci5sZWZ0KCkgPiB0eCArIG1feCArIG1fd2lk
dGgpCiAgICAgICAgIHIuc2V0V2lkdGgoMCk7Ci0gICAgZWxzZSBpZiAoci5yaWdodCgpID4gdHgg
KyBtX3ggKyBtX3dpZHRoKQorICAgIGVsc2UgaWYgKHIucmlnaHQoKSAtIDEgPiB0eCArIG1feCAr
IG1fd2lkdGgpCiAgICAgICAgIHIuc2V0V2lkdGgodHggKyBtX3ggKyBtX3dpZHRoIC0gci5sZWZ0
KCkpOwogICAgIHJldHVybiByOwogfQpAQCAtMjM2LDggKzIzNiw3IEBACiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEludFJlY3QgcmVjdCh0eCArIG1feCwgdHkgKyBtX3ksIG1fd2lkdGgs
IG1faGVpZ2h0KTsKLSAgICBpZiAobV90cnVuY2F0aW9uICE9IGNGdWxsVHJ1bmNhdGlvbiAmJiAK
LSAgICAgICAgb2JqZWN0KCktPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIHJl
Y3QuY29udGFpbnMoeCwgeSkpIHsKKyAgICBpZiAobV90cnVuY2F0aW9uICE9IGNGdWxsVHJ1bmNh
dGlvbiAmJiBvYmplY3QoKS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgcmVj
dC5jb250YWluc1BpeGVsKHgsIHkpKSB7CiAgICAgICAgIG9iamVjdCgpLT5zZXRJbm5lck5vZGUo
aSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI1Miw3ICsyNTEsNyBAQAogCiAg
ICAgaW50IHhQb3MgPSB0eCArIG1feDsKICAgICBpbnQgdyA9IHdpZHRoKCk7Ci0gICAgaWYgKCh4
UG9zID49IGkuci54KCkgKyBpLnIud2lkdGgoKSkgfHwgKHhQb3MgKyB3IDw9IGkuci54KCkpKQor
ICAgIGlmICh4UG9zID49IGkuci5yaWdodCgpIHx8IHhQb3MgKyB3IDw9IGkuci5sZWZ0KCkpCiAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgYm9vbCBpc1ByaW50aW5nID0gKGkucC0+ZGV2
aWNlKCktPmRldlR5cGUoKSA9PSBRSW50ZXJuYWw6OlByaW50ZXIpOwpAQCAtNjU5LDcgKzY1OCw5
IEBACiAgICAgUmVuZGVyVGV4dCogdGV4dCA9IHN0YXRpY19jYXN0PFJlbmRlclRleHQqPihtX29i
amVjdCk7CiAgICAgUmVuZGVyU3R5bGUgKnN0eWxlID0gdGV4dC0+c3R5bGUobV9maXJzdExpbmUp
OwogICAgIGNvbnN0IEZvbnQqIGYgPSAmc3R5bGUtPmh0bWxGb250KCk7Ci0gICAgcmV0dXJuIGYt
PmNoZWNrU2VsZWN0aW9uUG9pbnQodGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQs
IG1fbGVuLCBtX3RvQWRkLCB0ZXh0LT50YWJXaWR0aCgpLCB0ZXh0UG9zKCksIF94IC0gbV94LCBt
X3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUg
fHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCgpLCBpbmNsdWRlUGFydGlhbEdseXBocyk7CisgICAg
cmV0dXJuIGYtPmNoZWNrU2VsZWN0aW9uUG9pbnQodGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmws
IG1fc3RhcnQsIG1fbGVuLAorICAgICAgICBtX3RvQWRkLCB0ZXh0LT50YWJXaWR0aCgpLCB0ZXh0
UG9zKCksIF94IC0gbV94LAorICAgICAgICBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQ
YWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCgpLCBp
bmNsdWRlUGFydGlhbEdseXBocyk7CiB9CiAKIGludCBJbmxpbmVUZXh0Qm94Ojpwb3NpdGlvbkZv
ck9mZnNldChpbnQgb2Zmc2V0KSBjb25zdApAQCAtNjY5LDcgKzY3MCw4IEBACiAgICAgaW50IGZy
b20gPSBtX3JldmVyc2VkID8gb2Zmc2V0IC0gbV9zdGFydCA6IDA7CiAgICAgaW50IHRvID0gbV9y
ZXZlcnNlZCA/IG1fbGVuIDogb2Zmc2V0IC0gbV9zdGFydDsKICAgICAvLyBGSVhNRTogRG8gd2Ug
bmVlZCB0byBhZGQgcmlnaHRCZWFyaW5nIGhlcmU/Ci0gICAgcmV0dXJuIGYtPnNlbGVjdGlvblJl
Y3RGb3JUZXh0KG1feCwgMCwgMCwgdGV4dC0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLCB0ZXh0LT5z
dHItPnMsIHRleHQtPnN0ci0+bCwgbV9zdGFydCwgbV9sZW4sIG1fdG9BZGQsIG1fcmV2ZXJzZWQs
IG1fZGlyT3ZlcnJpZGUsIGZyb20sIHRvKS5yaWdodCgpOworICAgIHJldHVybiBmLT5zZWxlY3Rp
b25SZWN0Rm9yVGV4dChtX3gsIDAsIDAsIHRleHQtPnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4
dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLAorICAgICAgICBtX3RvQWRk
LCBtX3JldmVyc2VkLCBtX2Rpck92ZXJyaWRlLCBmcm9tLCB0bykucmlnaHQoKSAtIDE7CiB9CiAK
IH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVy
aW5nL3JlbmRlcl9mb3JtLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyByZW5kZXJpbmcvcmVuZGVy
X2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDAsOCArNDQwLDggQEAKICAgICBoIC09IHlP
ZmY7CiAgICAgX3R5ICs9IHlPZmYgLSBib3JkZXJUb3BFeHRyYSgpOwogCi0gICAgaW50IG15ID0g
a01heChfdHksIGkuci55KCkpOwotICAgIGludCBlbmQgPSBrTWluKGkuci55KCkgKyBpLnIuaGVp
Z2h0KCksICBfdHkgKyBoKTsKKyAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnRvcCgpKTsKKyAg
ICBpbnQgZW5kID0ga01pbihpLnIuYm90dG9tKCksICBfdHkgKyBoKTsKICAgICBpbnQgbWggPSBl
bmQgLSBteTsKIAogICAgIHBhaW50QmFja2dyb3VuZChpLnAsIHN0eWxlKCktPmJhY2tncm91bmRD
b2xvcigpLCBzdHlsZSgpLT5iYWNrZ3JvdW5kTGF5ZXJzKCksIG15LCBtaCwgX3R4LCBfdHksIHcs
IGgpOwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJl
bmRlcmluZy9yZW5kZXJfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyByZW5kZXJpbmcv
cmVuZGVyX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAKICNpbmNs
dWRlIDxxcGFpbnRlci5oPgogI2luY2x1ZGUgIlBlbi5oIgogI2luY2x1ZGUgPHF0ZXh0Y29kZWMu
aD4KLSNpbmNsdWRlIDxxd21hdHJpeC5oPgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEzMDEsMzMgKzEzMDEsMjkgQEAKICAgICBhYnNv
bHV0ZVJlY3RzKHJlY3RzLCB4LCB5KTsKIAogICAgIGlmIChyZWN0cy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBJbnRSZWN0KDAsIDAsIDAsIDApOworICAgICAgICByZXR1cm4gSW50UmVjdCgp
OwogCiAgICAgUVZhbHVlTGlzdDxJbnRSZWN0Pjo6Q29uc3RJdGVyYXRvciBpdCA9IHJlY3RzLmJl
Z2luKCk7CiAgICAgSW50UmVjdCByZXN1bHQgPSAqaXQ7Ci0gICAgd2hpbGUgKCsraXQgIT0gcmVj
dHMuZW5kKCkpIHsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnVuaXRlKCppdCk7Ci0gICAgfQor
ICAgIHdoaWxlICgrK2l0ICE9IHJlY3RzLmVuZCgpKQorICAgICAgICByZXN1bHQudW5pdGUoKml0
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6YWRkQWJzb2x1
dGVSZWN0Rm9yTGF5ZXIoSW50UmVjdCYgcmVzdWx0KQogewotICAgIGlmIChsYXllcigpKSB7Ci0g
ICAgICAgIHJlc3VsdCA9IHJlc3VsdC51bml0ZShhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsK
LSAgICB9Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1
cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKSB7CisgICAgaWYgKGxheWVy
KCkpCisgICAgICAgIHJlc3VsdC51bml0ZShhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsKKyAg
ICBmb3IgKFJlbmRlck9iamVjdCogY3VycmVudCA9IGZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3Vy
cmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGN1cnJlbnQtPmFkZEFic29s
dXRlUmVjdEZvckxheWVyKHJlc3VsdCk7Ci0gICAgfQogfQogCiBJbnRSZWN0IFJlbmRlck9iamVj
dDo6cGFpbnRpbmdSb290UmVjdChJbnRSZWN0JiB0b3BMZXZlbFJlY3QpCiB7CiAgICAgSW50UmVj
dCByZXN1bHQgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOwogICAgIHRvcExldmVsUmVjdCA9
IHJlc3VsdDsKLSAgICBmb3IgKFJlbmRlck9iamVjdCogY3VycmVudCA9IGZpcnN0Q2hpbGQoKTsg
Y3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICBmb3IgKFJl
bmRlck9iamVjdCogY3VycmVudCA9IGZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1
cnJlbnQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGN1cnJlbnQtPmFkZEFic29sdXRlUmVjdEZv
ckxheWVyKHJlc3VsdCk7Ci0gICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTE0NDAs
MzEgKzE0MzYsMjkgQEAKICAgICBpZiAobmV3Qm91bmRzID09IG9sZEJvdW5kcyAmJiAhc2VsZk5l
ZWRzTGF5b3V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wgZnVsbFJlcGFp
bnQgPSBzZWxmTmVlZHNMYXlvdXQoKSB8fCBuZXdCb3VuZHMueCgpICE9IG9sZEJvdW5kcy54KCkg
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgbmV3Qm91bmRzLnkoKSAhPSBvbGRCb3VuZHMueSgp
IHx8IAotICAgICAgICAgICAgICAgICAgICAgICBtdXN0UmVwYWludEJhY2tncm91bmRPckJvcmRl
cigpOworICAgIGJvb2wgZnVsbFJlcGFpbnQgPSBzZWxmTmVlZHNMYXlvdXQoKSB8fCBuZXdCb3Vu
ZHMudG9wTGVmdCgpICE9IG9sZEJvdW5kcy50b3BMZWZ0KCkgfHwgbXVzdFJlcGFpbnRCYWNrZ3Jv
dW5kT3JCb3JkZXIoKTsKICAgICBpZiAoZnVsbFJlcGFpbnQpIHsKICAgICAgICAgYy0+cmVwYWlu
dFZpZXdSZWN0YW5nbGUob2xkRnVsbEJvdW5kcyk7CiAgICAgICAgIGlmIChuZXdCb3VuZHMgIT0g
b2xkQm91bmRzKQogICAgICAgICAgICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUobmV3RnVsbEJv
dW5kcyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gV2UgZGlkbid0IG1vdmUsIGJ1dCB3ZSBk
aWQgY2hhbmdlIHNpemUuICBJbnZhbGlkYXRlIHRoZSBkZWx0YSwgd2hpY2ggd2lsbCBjb25zaXN0
IG9mIHBvc3NpYmx5IAotICAgICAgICAvLyB0d28gcmVjdGFuZ2xlcyAoYnV0IHR5cGljYWxseSBv
bmx5IG9uZSkuCi0gICAgICAgIGludCB3aWR0aCA9IGFicyhuZXdCb3VuZHMud2lkdGgoKSAtIG9s
ZEJvdW5kcy53aWR0aCgpKTsKLSAgICAgICAgaWYgKHdpZHRoKQotICAgICAgICAgICAgYy0+cmVw
YWludFZpZXdSZWN0YW5nbGUoSW50UmVjdChrTWluKG5ld0JvdW5kcy54KCkgKyBuZXdCb3VuZHMu
d2lkdGgoKSwgb2xkQm91bmRzLngoKSArIG9sZEJvdW5kcy53aWR0aCgpKSAtIGJvcmRlclJpZ2h0
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdCb3VuZHMueSgpLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICsgYm9yZGVyUmlnaHQo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXgobmV3Qm91bmRzLmhl
aWdodCgpLCBvbGRCb3VuZHMuaGVpZ2h0KCkpKSk7Ci0gICAgICAgIGludCBoZWlnaHQgPSBhYnMo
bmV3Qm91bmRzLmhlaWdodCgpIC0gb2xkQm91bmRzLmhlaWdodCgpKTsKLSAgICAgICAgaWYgKGhl
aWdodCkKLSAgICAgICAgICAgIGMtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKEludFJlY3QobmV3Qm91
bmRzLngoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW4o
bmV3Qm91bmRzLnkoKSArIG5ld0JvdW5kcy5oZWlnaHQoKSwgb2xkQm91bmRzLnkoKSArIG9sZEJv
dW5kcy5oZWlnaHQoKSkgLSBib3JkZXJCb3R0b20oKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtNYXgobmV3Qm91bmRzLndpZHRoKCksIG9sZEJvdW5kcy53aWR0
aCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAr
IGJvcmRlckJvdHRvbSgpKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIHJldHVybiB0cnVlOworCisgICAgLy8gV2UgZGlkbid0IG1vdmUs
IGJ1dCB3ZSBkaWQgY2hhbmdlIHNpemUuICBJbnZhbGlkYXRlIHRoZSBkZWx0YSwgd2hpY2ggd2ls
bCBjb25zaXN0IG9mIHBvc3NpYmx5IAorICAgIC8vIHR3byByZWN0YW5nbGVzIChidXQgdHlwaWNh
bGx5IG9ubHkgb25lKS4KKyAgICBpbnQgd2lkdGggPSBhYnMobmV3Qm91bmRzLndpZHRoKCkgLSBv
bGRCb3VuZHMud2lkdGgoKSk7CisgICAgaWYgKHdpZHRoKQorICAgICAgICBjLT5yZXBhaW50Vmll
d1JlY3RhbmdsZShJbnRSZWN0KGtNaW4obmV3Qm91bmRzLmxlZnQoKSArIG5ld0JvdW5kcy53aWR0
aCgpLCBvbGRCb3VuZHMubGVmdCgpICsgb2xkQm91bmRzLndpZHRoKCkpIC0gYm9yZGVyUmlnaHQo
KSwKKyAgICAgICAgICAgIG5ld0JvdW5kcy50b3AoKSwKKyAgICAgICAgICAgIHdpZHRoICsgYm9y
ZGVyUmlnaHQoKSwKKyAgICAgICAgICAgIGtNYXgobmV3Qm91bmRzLmhlaWdodCgpLCBvbGRCb3Vu
ZHMuaGVpZ2h0KCkpKSk7CisgICAgaW50IGhlaWdodCA9IGFicyhuZXdCb3VuZHMuaGVpZ2h0KCkg
LSBvbGRCb3VuZHMuaGVpZ2h0KCkpOworICAgIGlmIChoZWlnaHQpCisgICAgICAgIGMtPnJlcGFp
bnRWaWV3UmVjdGFuZ2xlKEludFJlY3QobmV3Qm91bmRzLmxlZnQoKSwKKyAgICAgICAgICAgIGtN
aW4obmV3Qm91bmRzLmJvdHRvbSgpLCBvbGRCb3VuZHMuYm90dG9tKCkpIC0gYm9yZGVyQm90dG9t
KCksCisgICAgICAgICAgICBrTWF4KG5ld0JvdW5kcy53aWR0aCgpLCBvbGRCb3VuZHMud2lkdGgo
KSksCisgICAgICAgICAgICBoZWlnaHQgKyBib3JkZXJCb3R0b20oKSkpOworICAgIHJldHVybiBm
YWxzZTsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVk
KGludCB4LCBpbnQgeSkKQEAgLTE1MDEsMTkgKzE0OTUsMTcgQEAKIEludFJlY3QgUmVuZGVyT2Jq
ZWN0OjpnZXRBYnNvbHV0ZVJlcGFpbnRSZWN0V2l0aE91dGxpbmUoaW50IG93KQogewogICAgIElu
dFJlY3QgcihnZXRBYnNvbHV0ZVJlcGFpbnRSZWN0KCkpOwotICAgIHIuc2V0UmVjdChyLngoKS1v
dywgci55KCktb3csIHIud2lkdGgoKStvdyoyLCByLmhlaWdodCgpK293KjIpOworICAgIHIuaW5m
bGF0ZShvdyk7CiAKLSAgICBpZiAoY29udGludWF0aW9uKCkgJiYgIWlzSW5saW5lKCkpCi0gICAg
ICAgIHIuc2V0UmVjdChyLngoKSwgci55KCktY29sbGFwc2VkTWFyZ2luVG9wKCksIHIud2lkdGgo
KSwgci5oZWlnaHQoKStjb2xsYXBzZWRNYXJnaW5Ub3AoKStjb2xsYXBzZWRNYXJnaW5Cb3R0b20o
KSk7Ci0gICAgCi0gICAgaWYgKGlzSW5saW5lRmxvdygpKSB7Ci0gICAgICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjdXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dFNpYmxp
bmcoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1RleHQoKSkgewotICAgICAgICAgICAg
ICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdpdGhP
dXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0ZShjaGlsZFJlY3QpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYgKGNvbnRpbnVhdGlvbigpICYmICFpc0lubGlu
ZSgpKSB7CisgICAgICAgIHIuc2V0VG9wKHIudG9wKCkgLSBjb2xsYXBzZWRNYXJnaW5Ub3AoKSk7
CisgICAgICAgIHIuc2V0SGVpZ2h0KHIuaGVpZ2h0KCkgKyBjb2xsYXBzZWRNYXJnaW5Ub3AoKSAr
IGNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpKTsKICAgICB9CisgICAgCisgICAgaWYgKGlzSW5saW5l
RmxvdygpKQorICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IGZpcnN0Q2hpbGQoKTsg
Y3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBpZiAoIWN1cnIt
PmlzVGV4dCgpKQorICAgICAgICAgICAgICAgIHIudW5pdGUoY3Vyci0+Z2V0QWJzb2x1dGVSZXBh
aW50UmVjdFdpdGhPdXRsaW5lKG93KSk7CiAKICAgICByZXR1cm4gcjsKIH0KQEAgLTI0OTAsOSAr
MjQ4Miw5IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGludCB4LCB5OwotICAgICAg
ICAgICAgYWJzb2x1dGVQb3NpdGlvbiAoeCwgeSk7Ci0gICAgICAgICAgICByZWdpb24uYm91bmRz
LnNldFggKHggKyBzdHlsZVJlZ2lvbi5vZmZzZXQubGVmdC52YWx1ZSk7Ci0gICAgICAgICAgICBy
ZWdpb24uYm91bmRzLnNldFkgKHkgKyBzdHlsZVJlZ2lvbi5vZmZzZXQudG9wLnZhbHVlKTsKKyAg
ICAgICAgICAgIGFic29sdXRlUG9zaXRpb24oeCwgeSk7CisgICAgICAgICAgICByZWdpb24uYm91
bmRzLnNldExlZnQoeCArIHN0eWxlUmVnaW9uLm9mZnNldC5sZWZ0LnZhbHVlKTsKKyAgICAgICAg
ICAgIHJlZ2lvbi5ib3VuZHMuc2V0VG9wKHkgKyBzdHlsZVJlZ2lvbi5vZmZzZXQudG9wLnZhbHVl
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcmVnaW9ucy5hcHBlbmQgKHJlZ2lvbik7CiAg
ICAgICAgIH0KQEAgLTI2MDgsMTIgKzI2MDAsMTIgQEAKIAogI2lmIFNWR19TVVBQT1JUCiAKLVFN
YXRyaXggUmVuZGVyT2JqZWN0Ojpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zv
cm0gUmVuZGVyT2JqZWN0Ojpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFFN
YXRyaXgoMSwgMCwgMCwgMSwgeFBvcygpLCB5UG9zKCkpOworICAgIHJldHVybiB0cmFuc2xhdGlv
bk1hdHJpeCh4UG9zKCksIHlQb3MoKSk7CiB9CiAgCi1RTWF0cml4IFJlbmRlck9iamVjdDo6YWJz
b2x1dGVUcmFuc2Zvcm0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFJlbmRlck9iamVjdDo6YWJz
b2x1dGVUcmFuc2Zvcm0oKSBjb25zdAogewogICAgIGlmIChwYXJlbnQoKSkKICAgICAgICAgcmV0
dXJuIHBhcmVudCgpLT5hYnNvbHV0ZVRyYW5zZm9ybSgpICogbG9jYWxUcmFuc2Zvcm0oKTsKSW5k
ZXg6IHJlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
cmVuZGVyX2NhbnZhcy5jcHAJKHJldmlzaW9uIDEyNDExKQorKysgcmVuZGVyaW5nL3JlbmRlcl9j
YW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsOCArMjUwLDcgQEAKICAgICBpZiAoZWx0
IHx8IHZpZXcoKS0+aXNUcmFuc3BhcmVudCgpKQogICAgICAgICB2aWV3KCktPnVzZVNsb3dSZXBh
aW50cygpOyAvLyBUaGUgcGFyZW50IG11c3Qgc2hvdyBiZWhpbmQgdGhlIGNoaWxkLgogICAgIGVs
c2UKLSAgICAgICAgaS5wLT5maWxsUmVjdChpLnIueCgpLCBpLnIueSgpLCBpLnIud2lkdGgoKSwg
aS5yLmhlaWdodCgpLCAKLSAgICAgICAgICAgICAgICAgICAgdmlldygpLT5wYWxldHRlKCkuYWN0
aXZlKCkuY29sb3IoUUNvbG9yR3JvdXA6OkJhc2UpKTsKKyAgICAgICAgaS5wLT5maWxsUmVjdChp
LnIsIHZpZXcoKS0+cGFsZXR0ZSgpLmFjdGl2ZSgpLmNvbG9yKFFDb2xvckdyb3VwOjpCYXNlKSk7
CiB9CiAKIHZvaWQgUmVuZGVyQ2FudmFzOjpyZXBhaW50Vmlld1JlY3RhbmdsZShjb25zdCBJbnRS
ZWN0JiB1ciwgYm9vbCBpbW1lZGlhdGUpCkBAIC0yNjIsMjEgKzI2MSwyMCBAQAogICAgIGlmICht
X3ZpZXcgJiYgdXIuaW50ZXJzZWN0cyh2cikpIHsKICAgICAgICAgLy8gV2UgYWx3YXlzIGp1c3Qg
aW52YWxpZGF0ZSB0aGUgcm9vdCB2aWV3LCBzaW5jZSB3ZSBjb3VsZCBiZSBhbiBpZnJhbWUgdGhh
dCBpcyBjbGlwcGVkIG91dAogICAgICAgICAvLyBvciBldmVuIGludmlzaWJsZS4KLSAgICAgICAg
SW50UmVjdCByID0gdXIuaW50ZXJzZWN0KHZyKTsKKyAgICAgICAgSW50UmVjdCByID0gaW50ZXJz
ZWN0aW9uKHVyLCB2cik7CiAgICAgICAgIERPTTo6RWxlbWVudEltcGwqIGVsdCA9IGVsZW1lbnQo
KS0+Z2V0RG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCk7CiAgICAgICAgIGlmICghZWx0KQogICAg
ICAgICAgICAgbV92aWV3LT5yZXBhaW50UmVjdGFuZ2xlKHIsIGltbWVkaWF0ZSk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgLy8gU3VidHJhY3Qgb3V0IHRoZSBjb250ZW50c1ggYW5kIGNv
bnRlbnRzWSBvZmZzZXRzIHRvIGdldCBvdXIgY29vcmRzIHdpdGhpbiB0aGUgdmlld2luZwogICAg
ICAgICAgICAgLy8gcmVjdGFuZ2xlLgotICAgICAgICAgICAgci5zZXRYKHIueCgpIC0gbV92aWV3
LT5jb250ZW50c1goKSk7Ci0gICAgICAgICAgICByLnNldFkoci55KCkgLSBtX3ZpZXctPmNvbnRl
bnRzWSgpKTsKKyAgICAgICAgICAgIHIubW92ZSgtbV92aWV3LT5jb250ZW50c1goKSwgLW1fdmll
dy0+Y29udGVudHNZKCkpOwogCiAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG9iaiA9IGVsdC0+
cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGludCB5RnJhbWVPZmZzZXQgPSAobV92aWV3LT5mcmFt
ZVN0eWxlKCkgIT0gUUZyYW1lOjpOb0ZyYW1lKSA/IDIgOiAwOwogICAgICAgICAgICAgaW50IHhG
cmFtZU9mZnNldCA9IChtX3ZpZXctPmZyYW1lU3R5bGUoKSAhPSBRRnJhbWU6Ok5vRnJhbWUpID8g
MSA6IDA7Ci0gICAgICAgICAgICByLnNldFgoci54KCkgKyBvYmotPmJvcmRlckxlZnQoKStvYmot
PnBhZGRpbmdMZWZ0KCkgKyB4RnJhbWVPZmZzZXQpOwotICAgICAgICAgICAgci5zZXRZKHIueSgp
ICsgb2JqLT5ib3JkZXJUb3AoKStvYmotPnBhZGRpbmdUb3AoKSArIHlGcmFtZU9mZnNldCk7Cisg
ICAgICAgICAgICByLm1vdmUob2JqLT5ib3JkZXJMZWZ0KCkgKyBvYmotPnBhZGRpbmdMZWZ0KCkg
KyB4RnJhbWVPZmZzZXQsCisgICAgICAgICAgICAgICAgb2JqLT5ib3JkZXJUb3AoKSArIG9iai0+
cGFkZGluZ1RvcCgpICsgeUZyYW1lT2Zmc2V0KTsKICAgICAgICAgICAgIG9iai0+cmVwYWludFJl
Y3RhbmdsZShyLCBpbW1lZGlhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjkzLDEyICsyOTEs
MTEgQEAKIAogdm9pZCBSZW5kZXJDYW52YXM6OmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KElu
dFJlY3QmIHIsIGJvb2wgZikKIHsKLSAgICBpZiAobV9wcmludGluZ01vZGUpIHJldHVybjsKKyAg
ICBpZiAobV9wcmludGluZ01vZGUpCisgICAgICAgIHJldHVybjsKIAotICAgIGlmIChmICYmIG1f
dmlldykgewotICAgICAgICByLnNldFgoci54KCkgKyBtX3ZpZXctPmNvbnRlbnRzWCgpKTsKLSAg
ICAgICAgci5zZXRZKHIueSgpICsgbV92aWV3LT5jb250ZW50c1koKSk7Ci0gICAgfQorICAgIGlm
IChmICYmIG1fdmlldykKKyAgICAgICAgci5tb3ZlKG1fdmlldy0+Y29udGVudHNYKCksIG1fdmll
dy0+Y29udGVudHNZKCkpOwogfQogCiB2b2lkIFJlbmRlckNhbnZhczo6YWJzb2x1dGVSZWN0cyhR
VmFsdWVMaXN0PEludFJlY3Q+JiByZWN0cywgaW50IF90eCwgaW50IF90eSkKQEAgLTM0OCw3ICsz
NDUsNyBAQAogICAgIFNlbGVjdGlvbk1hcDo6aXRlcmF0b3IgZW5kID0gc2VsZWN0ZWRPYmplY3Rz
LmVuZCgpOwogICAgIGZvciAoU2VsZWN0aW9uTWFwOjppdGVyYXRvciBpID0gc2VsZWN0ZWRPYmpl
Y3RzLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpIHsKICAgICAgICAgU2VsZWN0aW9uSW5mbyogaW5m
byA9IGktPnNlY29uZDsKLSAgICAgICAgc2VsUmVjdCA9IHNlbFJlY3QudW5pdGUoaW5mby0+cmVj
dCgpKTsKKyAgICAgICAgc2VsUmVjdC51bml0ZShpbmZvLT5yZWN0KCkpOwogICAgICAgICBkZWxl
dGUgaW5mbzsKICAgICB9CiAgICAgcmV0dXJuIHNlbFJlY3Q7CkluZGV4OiByZW5kZXJpbmcvcmVu
ZGVyX3JlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2Vk
LmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyByZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODEsOSArODEsOSBAQAogICAgIH0KICAgICAKICAgICBpbnQgb3Mg
PSAyKm1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKTsKLSAgICBpZiAoKHR4ID49IGkuci54KCkg
KyBpLnIud2lkdGgoKSArIG9zKSB8fCAodHggKyBtX3dpZHRoIDw9IGkuci54KCkgLSBvcykpCisg
ICAgaWYgKHR4ID49IGkuci5yaWdodCgpICsgb3MgfHwgdHggKyBtX3dpZHRoIDw9IGkuci5sZWZ0
KCkgLSBvcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgodG9wID49IGkuci55KCkg
KyBpLnIuaGVpZ2h0KCkgKyBvcykgfHwgKGJvdHRvbSA8PSBpLnIueSgpIC0gb3MpKQorICAgIGlm
ICh0b3AgPj0gaS5yLmJvdHRvbSgpICsgb3MgfHwgYm90dG9tIDw9IGkuci50b3AoKSAtIG9zKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQwOSwxMiArNDA5
LDggQEAKICAgICBtX3dpZGdldC0+cGFpbnQoaS5wLCBpLnIpOwogICAgIAogICAgIC8vIFBhaW50
IGEgcGFydGlhbGx5IHRyYW5zcGFyZW50IHdhc2ggb3ZlciBzZWxlY3RlZCB3aWRnZXRzLgotICAg
IGJvb2wgaXNQcmludGluZyA9IChpLnAtPmRldmljZSgpLT5kZXZUeXBlKCkgPT0gUUludGVybmFs
OjpQcmludGVyKTsKLSAgICBpZiAoaXNTZWxlY3RlZCgpICYmICFpc1ByaW50aW5nKSB7Ci0gICAg
ICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNvbG9yKGkucCkpOwotICAgICAgICBJbnRSZWN0IHNl
bFJlY3Qoc2VsZWN0aW9uUmVjdCgpKTsKLSAgICAgICAgaS5wLT5maWxsUmVjdChzZWxSZWN0Lngo
KSwgc2VsUmVjdC55KCksIHNlbFJlY3Qud2lkdGgoKSwgc2VsUmVjdC5oZWlnaHQoKSwgYnJ1c2gp
OwotICAgIH0KKyAgICBpZiAoaXNTZWxlY3RlZCgpICYmIGkucC0+ZGV2aWNlKCktPmRldlR5cGUo
KSAhPSBRSW50ZXJuYWw6OlByaW50ZXIpCisgICAgICAgIGkucC0+ZmlsbFJlY3Qoc2VsZWN0aW9u
UmVjdCgpLCBzZWxlY3Rpb25Db2xvcihpLnApKTsKIH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6Omhh
bmRsZUZvY3VzT3V0KCkKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc2LDcgKzExNzYsNyBA
QAogICAgICAgICAgICAgaWYgKCFyLT5ub1BhaW50ICYmICFyLT5ub2RlLT5sYXllcigpKSB7CiAg
ICAgICAgICAgICAgICAgSW50UmVjdCBjaGlsZFJlY3QsIGNoaWxkRnVsbFJlY3Q7CiAgICAgICAg
ICAgICAgICAgci0+bm9kZS0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdEluY2x1ZGluZ0Zsb2F0cyhj
aGlsZFJlY3QsIGNoaWxkRnVsbFJlY3QpOwotICAgICAgICAgICAgICAgIGZ1bGxCb3VuZHMgPSBm
dWxsQm91bmRzLnVuaXRlKGNoaWxkRnVsbFJlY3QpOworICAgICAgICAgICAgICAgIGZ1bGxCb3Vu
ZHMudW5pdGUoY2hpbGRGdWxsUmVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMjIzLDggKzEyMjMsNyBAQAogICAgIGlmICghaXNJbmxpbmVGbG93KCkgJiYgIWlzUm9v
dCgpKSB7CiAgICAgICAgIEludFJlY3Qgb3ZlcmZsb3dCb3ggPSBvdmVyZmxvd1JlY3QoZmFsc2Up
OwogICAgICAgICBvdmVyZmxvd0JveC5pbmZsYXRlKG1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNl
KSk7Ci0gICAgICAgIG92ZXJmbG93Qm94LnNldFgob3ZlcmZsb3dCb3gueCgpICsgX3R4KTsKLSAg
ICAgICAgb3ZlcmZsb3dCb3guc2V0WShvdmVyZmxvd0JveC55KCkgKyBfdHkpOworICAgICAgICBv
dmVyZmxvd0JveC5tb3ZlKF90eCwgX3R5KTsKICAgICAgICAgYm9vbCBpbnRlcnNlY3RzT3ZlcmZs
b3dCb3ggPSBvdmVyZmxvd0JveC5pbnRlcnNlY3RzKGkucik7CiAgICAgICAgIGlmICghaW50ZXJz
ZWN0c092ZXJmbG93Qm94KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmbG9hdHMgbmV4dC4KQEAg
LTEyMzIsOCArMTIzMSw3IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
SW50UmVjdCBmbG9hdEJveCA9IGZsb2F0UmVjdCgpOwogICAgICAgICAgICAgZmxvYXRCb3guaW5m
bGF0ZShtYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSkpOwotICAgICAgICAgICAgZmxvYXRCb3gu
c2V0WChmbG9hdEJveC54KCkgKyBfdHgpOwotICAgICAgICAgICAgZmxvYXRCb3guc2V0WShmbG9h
dEJveC55KCkgKyBfdHkpOworICAgICAgICAgICAgZmxvYXRCb3gubW92ZShfdHgsIF90eSk7CiAg
ICAgICAgICAgICBpZiAoIWZsb2F0Qm94LmludGVyc2VjdHMoaS5yKSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyNTIsOCArMTI1MCw4IEBACiAgICAgZm9yIChSZW5k
ZXJPYmplY3QgKmNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkgeyAgICAgICAgCiAgICAgICAgIC8vIENoZWNrIGZvciBwYWdlLWJyZWFrLWJl
Zm9yZTogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQsIGJyZWFrIGFuZCBiYWlsLgogICAgICAgICBp
ZiAoaXNQcmludGluZyAmJiAhY2hpbGRyZW5JbmxpbmUoKSAmJiBjaGlsZC0+c3R5bGUoKS0+cGFn
ZUJyZWFrQmVmb3JlKCkgPT0gUEJBTFdBWVMgJiYKLSAgICAgICAgICAgIGluUm9vdEJsb2NrQ29u
dGV4dCgpICYmIChfdHkgKyBjaGlsZC0+eVBvcygpKSA+IGkuci55KCkgJiYgCi0gICAgICAgICAg
ICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB7CisgICAg
ICAgICAgICBpblJvb3RCbG9ja0NvbnRleHQoKSAmJiAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPiBp
LnIudG9wKCkgJiYgCisgICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBpLnIuYm90
dG9tKCkpIHsKICAgICAgICAgICAgIGNhbnZhcygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQoX3R5ICsg
Y2hpbGQtPnlQb3MoKSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTEyNjMsOCArMTI2MSw4IEBACiAgICAgICAgIAogICAgICAgICAvLyBDaGVjayBmb3Ig
cGFnZS1icmVhay1hZnRlcjogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQsIGJyZWFrIGFuZCBiYWls
LgogICAgICAgICBpZiAoaXNQcmludGluZyAmJiAhY2hpbGRyZW5JbmxpbmUoKSAmJiBjaGlsZC0+
c3R5bGUoKS0+cGFnZUJyZWFrQWZ0ZXIoKSA9PSBQQkFMV0FZUyAmJiAKLSAgICAgICAgICAgIGlu
Um9vdEJsb2NrQ29udGV4dCgpICYmIChfdHkgKyBjaGlsZC0+eVBvcygpICsgY2hpbGQtPmhlaWdo
dCgpKSA+IGkuci55KCkgJiYgCi0gICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSArIGNo
aWxkLT5oZWlnaHQoKSkgPCBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB7CisgICAgICAgICAgICBp
blJvb3RCbG9ja0NvbnRleHQoKSAmJiAoX3R5ICsgY2hpbGQtPnlQb3MoKSArIGNoaWxkLT5oZWln
aHQoKSkgPiBpLnIudG9wKCkgJiYgCisgICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSAr
IGNoaWxkLT5oZWlnaHQoKSkgPCBpLnIuYm90dG9tKCkpIHsKICAgICAgICAgICAgIGNhbnZhcygp
LT5zZXRCZXN0VHJ1bmNhdGVkQXQoX3R5ICsgY2hpbGQtPnlQb3MoKSArIGNoaWxkLT5oZWlnaHQo
KSArIGNoaWxkLT5jb2xsYXBzZWRNYXJnaW5Cb3R0b20oKSwgdGhpcywgdHJ1ZSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEzODcsNyArMTM4NSw3IEBACiAgICAgICAgIC8v
IGludGVyc2VjdC4KICAgICAgICAgaW50IHlQb3MgPSBfdHkgKyBmaXJzdExpbmVCb3goKS0+eVBv
cygpOzsKICAgICAgICAgaW50IGggPSBsYXN0TGluZUJveCgpLT55UG9zKCkgKyBsYXN0TGluZUJv
eCgpLT5oZWlnaHQoKSAtIGZpcnN0TGluZUJveCgpLT55UG9zKCk7Ci0gICAgICAgIGlmKCAoeVBv
cyA+PSBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoeVBvcyArIGggPD0gaS5yLnkoKSkpCisg
ICAgICAgIGlmICh5UG9zID49IGkuci5ib3R0b20oKSB8fCB5UG9zICsgaCA8PSBpLnIudG9wKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gU2VlIGlmIG91ciBib3hlcyBpbnRl
cnNlY3Qgd2l0aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdlIHBhaW50CkBAIC0xMzk2
LDcgKzEzOTQsNyBAQAogICAgICAgICBmb3IgKFJvb3RJbmxpbmVCb3gqIGN1cnIgPSBmaXJzdFJv
b3RCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRSb290Qm94KCkpIHsKICAgICAgICAgICAg
IHlQb3MgPSBfdHkgKyBjdXJyLT55UG9zKCk7CiAgICAgICAgICAgICBoID0gY3Vyci0+aGVpZ2h0
KCk7Ci0gICAgICAgICAgICBpZiAoY3Vyci0+ZWxsaXBzaXNCb3goKSAmJiAoeVBvcyA8IGkuci55
KCkgKyBpLnIuaGVpZ2h0KCkpICYmICh5UG9zICsgaCA+IGkuci55KCkpKQorICAgICAgICAgICAg
aWYgKGN1cnItPmVsbGlwc2lzQm94KCkgJiYgeVBvcyA8IGkuci5ib3R0b20oKSAmJiB5UG9zICsg
aCA+IGkuci50b3AoKSkKICAgICAgICAgICAgICAgICBjdXJyLT5wYWludEVsbGlwc2lzQm94KGks
IF90eCwgX3R5KTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1MTMsNyArMTUxMSw3IEBACiAgICAg
ICAgICAgICByZXN1bHQudW5pdGVDZW50ZXIoZmlsbFZlcnRpY2FsU2VsZWN0aW9uR2FwKGxhc3RU
b3AsIGxhc3RMZWZ0LCBsYXN0UmlnaHQsIHR5ICsgc2VsVG9wLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290QmxvY2ssIGJsb2NrWCwg
YmxvY2tZLCBpKSk7CiAKLSAgICAgICAgaWYgKCFpIHx8ICh0eSArIHNlbFRvcCA8IGktPnIueSgp
ICsgaS0+ci5oZWlnaHQoKSkgJiYgKHR5ICsgc2VsVG9wICsgc2VsSGVpZ2h0ID4gaS0+ci55KCkp
KQorICAgICAgICBpZiAoIWkgfHwgdHkgKyBzZWxUb3AgPCBpLT5yLmJvdHRvbSgpICYmIHR5ICsg
c2VsVG9wICsgc2VsSGVpZ2h0ID4gaS0+ci50b3AoKSkKICAgICAgICAgICAgIHJlc3VsdC51bml0
ZShjdXJyLT5maWxsTGluZVNlbGVjdGlvbkdhcChzZWxUb3AsIHNlbEhlaWdodCwgcm9vdEJsb2Nr
LCBibG9ja1gsIGJsb2NrWSwgdHgsIHR5LCBpKSk7CiAKICAgICAgICAgbGFzdFNlbGVjdGVkTGlu
ZSA9IGN1cnI7CkBAIC0yMDU2LDI2ICsyMDU0LDIwIEBACiAgICAgZm9yICg7IChyID0gaXQuY3Vy
cmVudCgpKTsgKytpdCkgewogICAgICAgICBpZiAoIXItPm5vUGFpbnQgJiYgIXItPm5vZGUtPmxh
eWVyKCkpIHsKICAgICAgICAgICAgIC8vIENoZWNrIHRoaXMgZmxvYXQuCi0gICAgICAgICAgICBp
bnQgYm90dG9tRGVsdGEgPSBrTWF4KDAsIHItPnN0YXJ0WSArIHItPm5vZGUtPm1hcmdpblRvcCgp
ICsgci0+bm9kZS0+b3ZlcmZsb3dIZWlnaHQoZmFsc2UpIC0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHJlc3VsdC55KCkgKyByZXN1bHQuaGVpZ2h0KCkpKTsKKyAgICAg
ICAgICAgIGludCBib3R0b21EZWx0YSA9IGtNYXgoMCwgci0+c3RhcnRZICsgci0+bm9kZS0+bWFy
Z2luVG9wKCkgKyByLT5ub2RlLT5vdmVyZmxvd0hlaWdodChmYWxzZSkgLSByZXN1bHQuYm90dG9t
KCkpOwogICAgICAgICAgICAgaWYgKGJvdHRvbURlbHRhKQogICAgICAgICAgICAgICAgIHJlc3Vs
dC5zZXRIZWlnaHQocmVzdWx0LmhlaWdodCgpICsgYm90dG9tRGVsdGEpOwotICAgICAgICAgICAg
aW50IHJpZ2h0RGVsdGEgPSBrTWF4KDAsIHItPmxlZnQgKyByLT5ub2RlLT5tYXJnaW5MZWZ0KCkg
KyByLT5ub2RlLT5vdmVyZmxvd1dpZHRoKGZhbHNlKSAtCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHJlc3VsdC54KCkgKyByZXN1bHQud2lkdGgoKSkpOworICAgICAgICAg
ICAgaW50IHJpZ2h0RGVsdGEgPSBrTWF4KDAsIHItPmxlZnQgKyByLT5ub2RlLT5tYXJnaW5MZWZ0
KCkgKyByLT5ub2RlLT5vdmVyZmxvd1dpZHRoKGZhbHNlKSAtIHJlc3VsdC5yaWdodCgpKTsKICAg
ICAgICAgICAgIGlmIChyaWdodERlbHRhKQogICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRXaWR0
aChyZXN1bHQud2lkdGgoKSArIHJpZ2h0RGVsdGEpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvLyBOb3cgY2hlY2sgbGVmdCBhbmQgdG9wCi0gICAgICAgICAgICBpbnQgdG9wRGVsdGEgPSBr
TWluKDAsIHItPnN0YXJ0WSArIHItPm5vZGUtPm1hcmdpblRvcCgpIC0gcmVzdWx0LnkoKSk7Ci0g
ICAgICAgICAgICBpZiAodG9wRGVsdGEgPCAwKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnNl
dFkocmVzdWx0LnkoKSArIHRvcERlbHRhKTsKLSAgICAgICAgICAgICAgICByZXN1bHQuc2V0SGVp
Z2h0KHJlc3VsdC5oZWlnaHQoKSAtIDIqdG9wRGVsdGEpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaW50IGxlZnREZWx0YSA9IGtNaW4oMCwgci0+bGVmdCArIHItPm5vZGUtPm1hcmdpbkxl
ZnQoKSAtIHJlc3VsdC54KCkpOwotICAgICAgICAgICAgaWYgKHRvcERlbHRhIDwgMCkgewotICAg
ICAgICAgICAgICAgIHJlc3VsdC5zZXRYKHJlc3VsdC54KCkgKyBsZWZ0RGVsdGEpOwotICAgICAg
ICAgICAgICAgIHJlc3VsdC5zZXRIZWlnaHQocmVzdWx0LndpZHRoKCkgLSAyKmxlZnREZWx0YSk7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdG9wRGVsdGEgPSBrTWluKDAsIHItPnN0
YXJ0WSArIHItPm5vZGUtPm1hcmdpblRvcCgpIC0gcmVzdWx0LnRvcCgpKTsKKyAgICAgICAgICAg
IGlmICh0b3BEZWx0YSA8IDApCisgICAgICAgICAgICAgICAgcmVzdWx0LmluZmxhdGVZKC10b3BE
ZWx0YSk7CisgICAgICAgICAgICBpbnQgbGVmdERlbHRhID0ga01pbigwLCByLT5sZWZ0ICsgci0+
bm9kZS0+bWFyZ2luTGVmdCgpIC0gcmVzdWx0LmxlZnQoKSk7CisgICAgICAgICAgICBpZiAobGVm
dERlbHRhIDwgMCkKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5mbGF0ZVgoLWxlZnREZWx0YSk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI0MzQsNyArMjQyNiw3IEBACiAgICAgICAgICAgICAg
ICAgICAgICAgIF90eSArIGJvcmRlclRvcCgpIC0gYm9yZGVyVG9wRXh0cmEoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgbV9sYXllci0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLAogICAgICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQoKSArIGJvcmRlclRvcEV4dHJhKCkgKyBib3JkZXJCb3R0
b21FeHRyYSgpIC0gYm9yZGVyVG9wKCkgLSBib3JkZXJCb3R0b20oKSk7Ci0gICAgICAgIGlmICh2
ZXJ0UmVjdC5jb250YWlucyhfeCwgX3kpKSB7CisgICAgICAgIGlmICh2ZXJ0UmVjdC5jb250YWlu
c1BpeGVsKF94LCBfeSkpIHsKICAgICAgICAgICAgIFJlbmRlckxheWVyOjpnU2Nyb2xsQmFyID0g
bV9sYXllci0+dmVydGljYWxTY3JvbGxiYXIoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CkBAIC0yNDQ1LDcgKzI0MzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAg
X3R5ICsgaGVpZ2h0KCkgKyBib3JkZXJCb3R0b21FeHRyYSgpIC0gbV9sYXllci0+aG9yaXpvbnRh
bFNjcm9sbGJhckhlaWdodCgpIC0gYm9yZGVyQm90dG9tKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aCgpIC0gYm9yZGVyTGVmdCgpIC0gYm9yZGVyUmlnaHQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbGF5ZXItPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSk7Ci0gICAg
ICAgIGlmIChob3JpelJlY3QuY29udGFpbnMoX3gsIF95KSkgeworICAgICAgICBpZiAoaG9yaXpS
ZWN0LmNvbnRhaW5zUGl4ZWwoX3gsIF95KSkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXI6OmdT
Y3JvbGxCYXIgPSBtX2xheWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjQ1NCw4ICsyNDQ2LDcgQEAKICAgICByZXR1cm4g
ZmFsc2U7ICAgIAogfQogCi1ib29sIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChOb2RlSW5mbyYg
aW5mbywgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlckJs
b2NrOjpub2RlQXRQb2ludChOb2RlSW5mbyYgaW5mbywgaW50IF94LCBpbnQgX3ksIGludCBfdHgs
IGludCBfdHksIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKICAgICBib29sIGlubGlu
ZUZsb3cgPSBpc0lubGluZUZsb3coKTsKIApAQCAtMjQ2NSwxNyArMjQ1NiwxNSBAQAogICAgIGlm
ICghaW5saW5lRmxvdyAmJiAhaXNSb290KCkpIHsKICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgbmVl
ZCB0byBkbyBhbnl0aGluZyBhdCBhbGwuCiAgICAgICAgIEludFJlY3Qgb3ZlcmZsb3dCb3ggPSBv
dmVyZmxvd1JlY3QoZmFsc2UpOwotICAgICAgICBvdmVyZmxvd0JveC5zZXRYKG92ZXJmbG93Qm94
LngoKSArIHR4KTsKLSAgICAgICAgb3ZlcmZsb3dCb3guc2V0WShvdmVyZmxvd0JveC55KCkgKyB0
eSk7Ci0gICAgICAgIGJvb2wgaW5zaWRlT3ZlcmZsb3dCb3ggPSBvdmVyZmxvd0JveC5jb250YWlu
cyhfeCwgX3kpOworICAgICAgICBvdmVyZmxvd0JveC5tb3ZlKHR4LCB0eSk7CisgICAgICAgIGJv
b2wgaW5zaWRlT3ZlcmZsb3dCb3ggPSBvdmVyZmxvd0JveC5jb250YWluc1BpeGVsKF94LCBfeSk7
CiAgICAgICAgIGlmICghaW5zaWRlT3ZlcmZsb3dCb3gpIHsKICAgICAgICAgICAgIC8vIENoZWNr
IGZsb2F0cyBuZXh0LgogICAgICAgICAgICAgaWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZs
b2F0KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIEludFJlY3Qg
ZmxvYXRCb3ggPSBmbG9hdFJlY3QoKTsKLSAgICAgICAgICAgIGZsb2F0Qm94LnNldFgoZmxvYXRC
b3gueCgpICsgdHgpOwotICAgICAgICAgICAgZmxvYXRCb3guc2V0WShmbG9hdEJveC55KCkgKyB0
eSk7Ci0gICAgICAgICAgICBpZiAoIWZsb2F0Qm94LmNvbnRhaW5zKF94LCBfeSkpCisgICAgICAg
ICAgICBmbG9hdEJveC5tb3ZlKHR4LCB0eSk7CisgICAgICAgICAgICBpZiAoIWZsb2F0Qm94LmNv
bnRhaW5zUGl4ZWwoX3gsIF95KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yNTM2LDcgKzI1MjUsNyBAQAogICAgIGlmICghaW5saW5lRmxvdyAm
JiAoaGl0VGVzdEFjdGlvbiA9PSBIaXRUZXN0QmxvY2tCYWNrZ3JvdW5kIHx8IGhpdFRlc3RBY3Rp
b24gPT0gSGl0VGVzdENoaWxkQmxvY2tCYWNrZ3JvdW5kKSkgewogICAgICAgICBpbnQgdG9wRXh0
cmEgPSBib3JkZXJUb3BFeHRyYSgpOwogICAgICAgICBJbnRSZWN0IGJvdW5kc1JlY3QodHgsIHR5
IC0gdG9wRXh0cmEsIG1fd2lkdGgsIG1faGVpZ2h0ICsgdG9wRXh0cmEgKyBib3JkZXJCb3R0b21F
eHRyYSgpKTsKLSAgICAgICAgaWYgKGlzUm9vdCgpIHx8IChzdHlsZSgpLT52aXNpYmlsaXR5KCkg
PT0gVklTSUJMRSAmJiBib3VuZHNSZWN0LmNvbnRhaW5zKF94LCBfeSkpKSB7CisgICAgICAgIGlm
IChpc1Jvb3QoKSB8fCAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgYm91bmRz
UmVjdC5jb250YWluc1BpeGVsKF94LCBfeSkpKSB7CiAgICAgICAgICAgICBzZXRJbm5lck5vZGUo
aW5mbyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpJbmRleDogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTI0MTEpCisrKyBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkgQEAKIAkJNjVG
RUE4NjkwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2Uu
Y3BwICovOyB9OwogCQk3RTZGRUVEODA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERl
YnVnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U2RkVFRDkwODk4
NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZFRUQ3MDg5ODU4MjMwMEM0NEMzRiAv
KiBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gKi87IH07CisJCTkzNTRGOUZFMDk4ODg1OUUwMDJD
RkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5z
Zm9ybS5jcHAgKi87IH07CisJCTkzNTRGOUZGMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFu
c2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NTRGOUZEMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAqLzsgfTsKKwkJOTM1
NEZBMEEwOTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0RkEwOTA5ODg4NzI3MDAyQ0ZB
ODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJOTM3QTM2QTcwOTdFMkUzMjAwRTRF
RTJGIC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzN0EzNkE2MDk3RTJFMzIwMEU0RUUyRiAvKiBVc2VyQWdl
bnRTdHlsZVNoZWV0cy5jcHAgKi87IH07CiAJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLzsgfTsKIAkJ
OTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmggKi87IH07CkBAIC0xMjE3LDYgKzEyMjAsOSBAQAogCQk5MzJCOTgzNDA3
MDI5N0RDMDAzMjgwNEYgLyogdGV4dF9ncmFudWxhcml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSB0ZXh0X2dyYW51bGFyaXR5Lmg7IHBhdGgg
PSBlZGl0aW5nL3RleHRfZ3JhbnVsYXJpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzMzg2QjkwMDM3MDQ1QjMwMDg2MzVDRSAv
KiBLV1FSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtXUVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzM4NkI5MTAzNzA0NUIzMDA4
NjM1Q0UgLyogS1dRUmVzb3VyY2VMb2FkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUVJlc291cmNlTG9hZGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJOTM1
NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBZmZpbmVUcmFuc2Zvcm0uY3BwOyBwYXRoID0gcGxh
dGZvcm0vQWZmaW5lVHJhbnNmb3JtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM1NEY5RkQwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBBZmZpbmVUcmFuc2Zvcm0uaDsgcGF0aCA9IHBsYXRmb3Jt
L0FmZmluZVRyYW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0RkEw
OTA5ODg4NzI3MDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFmZmluZVRyYW5zZm9ybS5jcHA7IHBhdGggPSBwbGF0Zm9y
bS9tYWMvQWZmaW5lVHJhbnNmb3JtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM3OEQ5RjkwNzY0MEE0NjAwNEI5N0JGIC8qIG1hcmt1cC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IG1hcmt1cC5jcHA7IHBhdGggPSBl
ZGl0aW5nL21hcmt1cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk5Mzc4RDlGQTA3NjQwQTQ2MDA0Qjk3QkYgLyogbWFya3VwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gbWFya3Vw
Lmg7IHBhdGggPSBlZGl0aW5nL21hcmt1cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM3QTM2QTYwOTdFMkUzMjAwRTRFRTJGIC8q
IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTMxNDEsNiArMzE0Nyw5IEBACiAJCUJDRjFBNUJBMDk3ODMyMDkwMDYxQTEyMyAvKiBw
bGF0Zm9ybSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
OTM1NEZBMDkwOTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJ
OTM1NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJ
OTM1NEY5RkQwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5oICovLAogCQkJCUJD
MDc1OTg1MDk4ODYxQTQwMDQwN0I0OCAvKiBCcnVzaC5oICovLAogCQkJCUJDQzhEMTcxMDk4ODMw
MTIwMDE0MEJGMiAvKiBQZW4uY3BwICovLAogCQkJCUJDQzhEMTcyMDk4ODMwMTIwMDE0MEJGMiAv
KiBQZW4uaCAqLywKQEAgLTQzOTcsNiArNDQwNiw3IEBACiAJCQkJQkNDOENGQ0MwOTg2Q0QyNDAw
MTQwQkYyIC8qIENvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M4RDE3NDA5ODgzMDEyMDAx
NDBCRjIgLyogUGVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA3NTk4NjA5ODg2MUE0MDA0MDdC
NDggLyogQnJ1c2guaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTRGOUZGMDk4ODg1OUUwMDJDRkE4
OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTUyMSw2ICs1NTMxLDgg
QEAKIAkJCQlCQ0M4Q0ZFNTA5ODZDRUE0MDAxNDBCRjIgLyogQ29sb3IubW0gaW4gU291cmNlcyAq
LywKIAkJCQlCQ0M4RDE3MzA5ODgzMDEyMDAxNDBCRjIgLyogUGVuLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBREI1Njk5MDk4ODI3QUQwMDMyRUVFMiAvKiBKU0V2ZW50cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5MzU0RjlGRTA5ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTkzNTRGQTBBMDk4ODg3MjcwMDJDRkE4OCAvKiBBZmZpbmVU
cmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzN0Y2M0EwOTg4RUUzMzAwRDA1RTkw
IC8qIEpTQ29yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oCShyZXZpc2lvbiAxMjQx
MSkKKysrIGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNywxMSBAQAogI2luY2x1ZGUgImtjYW52YXMvUmVuZGVyUGF0aC5oIgogI2luY2x1ZGUgIlJl
bmRlckNvbnRhaW5lci5oIgogCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgQWZmaW5l
VHJhbnNmb3JtOworfQordXNpbmcgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOworCiB0eXBlZGVm
IGVudW0KIHsKICAgICBBTElHTl9OT05FID0gMCwKQEAgLTY0LDggKzY5LDggQEAKICAgICB2aXJ0
dWFsIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCAmcCkgY29uc3Q7CiAgICAg
dmlydHVhbCBGbG9hdFJlY3QgcmVsYXRpdmVCQm94KGJvb2wgaW5jbHVkZVN0cm9rZSA9IHRydWUp
IGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRy
aXgpOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBGbG9hdFJlY3Qm
IHZpZXdwb3J0KSA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgdmlld3BvcnQoKSBjb25zdCA9
IDA7CkBAIC04MCw3ICs4NSw3IEBACiAgICAgYm9vbCBzbGljZSgpIGNvbnN0OwogICAgIAogcHJv
dGVjdGVkOgotICAgIEtDYW52YXNNYXRyaXggZ2V0QXNwZWN0UmF0aW8oY29uc3QgRmxvYXRSZWN0
IGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3Q7CisgICAgQWZmaW5lVHJh
bnNmb3JtIGdldEFzcGVjdFJhdGlvKGNvbnN0IEZsb2F0UmVjdCBsb2dpY2FsLCBjb25zdCBGbG9h
dFJlY3QgcGh5c2ljYWwpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNsYXNzIFByaXZhdGU7Cklu
ZGV4OiBrY2FudmFzL1JlbmRlclNWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL1Jl
bmRlclNWR0ltYWdlLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL1JlbmRlclNWR0lt
YWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQAogICAgIH0gZWxzZQogICAg
ICAgICBwYWludEluZm8ucC0+c2F2ZSgpOwogCi0gICAgY29udGV4dC0+Y29uY2F0Q1RNKFFNYXRy
aXgoKS50cmFuc2xhdGUocGFyZW50WCwgcGFyZW50WSkpOworICAgIGNvbnRleHQtPmNvbmNhdENU
TSh0cmFuc2xhdGlvbk1hdHJpeChwYXJlbnRYLCBwYXJlbnRZKSk7CiAgICAgY29udGV4dC0+Y29u
Y2F0Q1RNKGxvY2FsVHJhbnNmb3JtKCkpOwogICAgIHRyYW5zbGF0ZUZvckF0dHJpYnV0ZXMoKTsK
ICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQAogICAgIFNWR0ltYWdlRWxlbWVudEltcGwgKmltYWdl
ID0gc3RhdGljX2Nhc3Q8U1ZHSW1hZ2VFbGVtZW50SW1wbCAqPihub2RlKCkpOwogICAgIGZsb2F0
IHhPZmZzZXQgPSBpbWFnZS0+eCgpLT5iYXNlVmFsKCkgPyBpbWFnZS0+eCgpLT5iYXNlVmFsKCkt
PnZhbHVlKCkgOiAwOwogICAgIGZsb2F0IHlPZmZzZXQgPSBpbWFnZS0+eSgpLT5iYXNlVmFsKCkg
PyBpbWFnZS0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkgOiAwOwotICAgIGNvbnRleHQtPmNvbmNh
dENUTShRTWF0cml4KCkudHJhbnNsYXRlKHhPZmZzZXQsIHlPZmZzZXQpKTsKKyAgICBjb250ZXh0
LT5jb25jYXRDVE0odHJhbnNsYXRpb25NYXRyaXgoeE9mZnNldCwgeU9mZnNldCkpOwogfQogI2Vu
ZGlmIC8vIFNWR19TVVBQT1JUCiAKSW5kZXg6IGtjYW52YXMvUmVuZGVyU1ZHVGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2NhbnZhcy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTI0MTEpCisr
KyBrY2FudmFzL1JlbmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyOCArMjks
MjggQEAKICNpbmNsdWRlICJTVkdUZXh0RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZExlbmd0aExpc3RJbXBsLmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgotI2lu
Y2x1ZGUgIktDYW52YXNNYXRyaXguaCIKICNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUu
aCIKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCiBSZW5kZXJTVkdUZXh0OjpSZW5kZXJTVkdUZXh0
KEtTVkc6OlNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSkgCiAgICAgOiBSZW5kZXJCbG9jayhub2Rl
KQogewogfQogCi1RTWF0cml4IFJlbmRlclNWR1RleHQ6OnRyYW5zbGF0aW9uVG9wVG9CYXNlbGlu
ZSgpCitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHVGV4dDo6dHJhbnNsYXRpb25Ub3BUb0Jhc2Vs
aW5lKCkKIHsKLSAgICBpbnQgb2Zmc2V0ID0gYmFzZWxpbmVQb3NpdGlvbih0cnVlLCB0cnVlKTsK
LSAgICByZXR1cm4gUU1hdHJpeCgpLnRyYW5zbGF0ZSgwLCAtb2Zmc2V0KTsKKyAgICByZXR1cm4g
dHJhbnNsYXRpb25NYXRyaXgoMCwgLWJhc2VsaW5lUG9zaXRpb24odHJ1ZSwgdHJ1ZSkpOwogfQog
Ci1RTWF0cml4IFJlbmRlclNWR1RleHQ6OnRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpCitBZmZp
bmVUcmFuc2Zvcm0gUmVuZGVyU1ZHVGV4dDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkKIHsK
ICAgICBLU1ZHOjpTVkdUZXh0RWxlbWVudEltcGwgKnRleHQgPSBzdGF0aWNfY2FzdDxLU1ZHOjpT
VkdUZXh0RWxlbWVudEltcGwgKj4oZWxlbWVudCgpKTsKIAogICAgIGZsb2F0IHhPZmZzZXQgPSB0
ZXh0LT54KCktPmJhc2VWYWwoKS0+Z2V0Rmlyc3QoKSA/IHRleHQtPngoKS0+YmFzZVZhbCgpLT5n
ZXRGaXJzdCgpLT52YWx1ZSgpIDogMDsKICAgICBmbG9hdCB5T2Zmc2V0ID0gdGV4dC0+eSgpLT5i
YXNlVmFsKCktPmdldEZpcnN0KCkgPyB0ZXh0LT55KCktPmJhc2VWYWwoKS0+Z2V0Rmlyc3QoKS0+
dmFsdWUoKSA6IDA7CiAKLSAgICByZXR1cm4gUU1hdHJpeCgpLnRyYW5zbGF0ZSh4T2Zmc2V0LCB5
T2Zmc2V0KTsKKyAgICByZXR1cm4gdHJhbnNsYXRpb25NYXRyaXgoeE9mZnNldCwgeU9mZnNldCk7
CiB9CiAKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGlu
dCBwYXJlbnRYLCBpbnQgcGFyZW50WSkKQEAgLTcwLDcgKzcwLDcgQEAKICAgICAgICAgcGFpbnRJ
bmZvLnAtPnNhdmUoKTsKICAgICAKICAgICBjb250ZXh0LT5jb25jYXRDVE0obG9jYWxUcmFuc2Zv
cm0oKSk7Ci0gICAgY29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUocGFyZW50
WCwgcGFyZW50WSkpOworICAgIGNvbnRleHQtPmNvbmNhdENUTSh0cmFuc2xhdGlvbk1hdHJpeChw
YXJlbnRYLCBwYXJlbnRZKSk7CiAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0aW9uRm9y
QXR0cmlidXRlcygpKTsKICAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25Ub3BUb0Jh
c2VsaW5lKCkpOwogICAgIApAQCAtMTIwLDE0ICsxMjAsMTcgQEAKICAgICAgICAgcGFpbnRJbmZv
LnAtPnJlc3RvcmUoKTsKIH0KIAotYm9vbCBSZW5kZXJTVkdUZXh0Ojpub2RlQXRQb2ludChOb2Rl
SW5mbyYgaW5mbywgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIFdlYkNvcmU6Okhp
dFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKK2Jvb2wgUmVuZGVyU1ZHVGV4dDo6bm9kZUF0UG9p
bnQoTm9kZUluZm8mIGluZm8sIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RB
Y3Rpb24gYWN0aW9uKQogewotICAgIFFNYXRyaXggdG90YWxUcmFuc2Zvcm0gPSB0cmFuc2xhdGlv
bkZvckF0dHJpYnV0ZXMoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdG90YWxUcmFuc2Zvcm0gPSB0
cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKTsKICAgICB0b3RhbFRyYW5zZm9ybSAqPSB0cmFuc2xh
dGlvblRvcFRvQmFzZWxpbmUoKTsKICAgICB0b3RhbFRyYW5zZm9ybSAqPSBhYnNvbHV0ZVRyYW5z
Zm9ybSgpOwogICAgIGRvdWJsZSBsb2NhbFgsIGxvY2FsWTsKLSAgICB0b3RhbFRyYW5zZm9ybS5p
bnZlcnQoKS5tYXAoX3gsIF95LCAmbG9jYWxYLCAmbG9jYWxZKTsKLSAgICByZXR1cm4gUmVuZGVy
QmxvY2s6Om5vZGVBdFBvaW50KGluZm8sIChpbnQpbG9jYWxYLCAoaW50KWxvY2FsWSwgX3R4LCBf
dHksIGhpdFRlc3RBY3Rpb24pOworICAgIHRvdGFsVHJhbnNmb3JtLmludmVydCgpOworICAgIHRv
dGFsVHJhbnNmb3JtLm1hcCh4LCB5LCBsb2NhbFgsIGxvY2FsWSk7CisgICAgcmV0dXJuIFJlbmRl
ckJsb2NrOjpub2RlQXRQb2ludChpbmZvLCBzdGF0aWNfY2FzdDxpbnQ+KGxvY2FsWCksIHN0YXRp
Y19jYXN0PGludD4obG9jYWxZKSwgdHgsIHR5LCBhY3Rpb24pOwogfQorCit9CisKICNlbmRpZiAv
LyBTVkdfU1VQUE9SVAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNJdGVtLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrY2FudmFzL0tDYW52YXNJdGVtLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFz
L0tDYW52YXNJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMjAgKzIzLDE3IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlIDxrZGVidWcuaD4KLSNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+Cisj
aW5jbHVkZSAiS0NhbnZhc0l0ZW0uaCIKIAotI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhcy5oIgot
I2luY2x1ZGUgImtjYW52YXMvUmVuZGVyUGF0aC5oIgotI2luY2x1ZGUgIktDYW52YXNNYXRyaXgu
aCIKLSNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgIktDYW52YXNDb250YWluZXIuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5n
U3R5bGUuaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAjaW5jbHVkZSAiS1JlbmRl
cmluZ0ZpbGxQYWludGVyLmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIK
LQotI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIkFmZmluZVRy
YW5zZm9ybS5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8a3htbGNv
cmUvQXNzZXJ0aW9ucy5oPgogCiBjbGFzcyBSZW5kZXJQYXRoOjpQcml2YXRlCiB7CkBAIC00NCw3
ICs0MSw3IEBACiAgICAgUmVmUHRyPEtDYW52YXNQYXRoPiBwYXRoOwogCiAgICAgRmxvYXRSZWN0
IGZpbGxCQm94LCBzdHJva2VCYm94OwotICAgIFFNYXRyaXggbWF0cml4OworICAgIEFmZmluZVRy
YW5zZm9ybSBtYXRyaXg7CiB9OyAgICAgICAgCiAKIC8vIFJlbmRlclBhdGgKQEAgLTU4LDEyICs1
NSwxMiBAQAogICAgIGRlbGV0ZSBkOwogfQogCi1RTWF0cml4IFJlbmRlclBhdGg6OmxvY2FsVHJh
bnNmb3JtKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBSZW5kZXJQYXRoOjpsb2NhbFRyYW5zZm9y
bSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPm1hdHJpeDsKIH0KIAotdm9pZCBSZW5kZXJQYXRo
OjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgpCit2b2lkIFJlbmRlclBh
dGg6OnNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewog
ICAgIGQtPm1hdHJpeCA9IG1hdHJpeDsKIH0KQEAgLTkyLDExICs4OSwxMSBAQAogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogCiAgICAgaWYgKGluY2x1ZGVTdHJva2UpIHsKLSAgICAgICAgaWYoIWQt
PnN0cm9rZUJib3guaXNWYWxpZCgpKQorICAgICAgICBpZiAoZC0+c3Ryb2tlQmJveC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBkLT5zdHJva2VCYm94ID0gYmJveEZvclBhdGgodHJ1ZSk7CiAgICAg
ICAgIHJlc3VsdCA9IGQtPnN0cm9rZUJib3g7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYoIWQt
PmZpbGxCQm94LmlzVmFsaWQoKSkKKyAgICAgICAgaWYgKGQtPmZpbGxCQm94LmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIGQtPmZpbGxCQm94ID0gYmJveEZvclBhdGgoZmFsc2UpOwogICAgICAgICBy
ZXN1bHQgPSBkLT5maWxsQkJveDsKICAgICB9CkluZGV4OiBrY2FudmFzL1JlbmRlclNWR0ltYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9SZW5kZXJTVkdJbWFnZS5oCShyZXZpc2lvbiAxMjQx
MSkKKysrIGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyAr
MjUsNyBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJyZW5kZXJfaW1hZ2UuaCIKLSNp
bmNsdWRlIDxxbWF0cml4Lmg+CisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKIG5hbWVz
cGFjZSBLU1ZHCiB7CkBAIC0zNSwxMyArMzUsMTMgQEAKICAgICAgICAgUmVuZGVyU1ZHSW1hZ2Uo
U1ZHSW1hZ2VFbGVtZW50SW1wbCAqaW1wbCk7CiAgICAgICAgIHZpcnR1YWwgflJlbmRlclNWR0lt
YWdlKCk7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0o
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0
TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0g
dHJhbnNmb3JtOyB9CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICAgICAgdmlydHVhbCB2b2lk
IHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1f
dHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0cmFuc2xhdGVGb3JBdHRyaWJ1dGVzKCk7Ci0gICAg
ICAgIFFNYXRyaXggbV90cmFuc2Zvcm07CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5z
Zm9ybTsKICAgICB9OwogfQogCkluZGV4OiBrY2FudmFzL1JlbmRlclNWR1RleHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2Fu
dmFzL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMzEgKzI0LDMzIEBACiAj
ZGVmaW5lIFJlbmRlclNWR1RleHRfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgPHFtYXRy
aXguaD4KIAotbmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNzIFNWR1RleHRFbGVtZW50SW1wbDsK
LX0KK25hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU1ZHVGV4dEVsZW1lbnRJbXBsOworCiBj
bGFzcyBSZW5kZXJTVkdUZXh0IDogcHVibGljIGtodG1sOjpSZW5kZXJCbG9jawogewogcHVibGlj
OgotICAgIFJlbmRlclNWR1RleHQoS1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBsICpub2RlKTsKKyAg
ICBSZW5kZXJTVkdUZXh0KFNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSk7CiAKLSAgICBjb25zdCBj
aGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1RleHQiOyB9CisgICAg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUZXh0Ijsg
fQogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsK
ICAgICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25z
dCBRTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KKyAgICB2
aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CiAg
ICAgCi0gICAgYm9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCBfeCwgaW50IF95LCBpbnQg
X3R4LCBpbnQgX3R5LCBXZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICBib29sIG5vZGVBdFBv
aW50KE5vZGVJbmZvJiwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIEhpdFRlc3RB
Y3Rpb24pOwogCiAgcHJpdmF0ZToKLSAgICBRTWF0cml4IHRyYW5zbGF0aW9uVG9wVG9CYXNlbGlu
ZSgpOwotICAgIFFNYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJp
eCBtX3RyYW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25Ub3BUb0Jhc2Vs
aW5lKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOwor
ICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKK30KKwogI2VuZGlmIC8vIFNW
R19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0l0ZW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrY2FudmFzL0tDYW52YXNJdGVtLmgJKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZhcy9L
Q2FudmFzSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYsMTUgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGbG9hdFBvaW50OwogfQordXNpbmcgV2ViQ29yZTo6Rmxv
YXRQb2ludDsKK3VzaW5nIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTsKIAogbmFtZXNwYWNlIEtT
VkcgewogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotfTsKK30KIAogY2xhc3MgS0Nh
bnZhc1BhdGg7CiBjbGFzcyBLQ2FudmFzQ29udGFpbmVyOwotY2xhc3MgS0NhbnZhc01hdHJpeDsK
IGNsYXNzIFJlbmRlclBhdGggOiBwdWJsaWMga2h0bWw6OlJlbmRlck9iamVjdAogewogcHVibGlj
OgpAQCAtNTEsOCArNTIsOCBAQAogICAgIHZpcnR1YWwgflJlbmRlclBhdGgoKTsKIAogICAgIC8v
IEhpdC1kZXRlY3Rpb24gc2VwZXJhdGVkIGZvciB0aGUgZmlsbCBhbmQgdGhlIHN0cm9rZQotICAg
IHZpcnR1YWwgYm9vbCBmaWxsQ29udGFpbnMoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmcCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHN0cm9rZUNvbnRhaW5zKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQgJnApIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBmaWxsQ29udGFpbnMoY29uc3Qg
RmxvYXRQb2ludCAmcCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN0cm9rZUNvbnRhaW5zKGNv
bnN0IEZsb2F0UG9pbnQgJnApIGNvbnN0OwogCiAgICAgLy8gUmV0dXJucyBhbiB1bnNjYWxlZCBi
b3VuZGluZyBib3ggKG5vdCBldmVuIGluY2x1ZGluZyBsb2NhbFRyYW5zZm9ybSgpKSBmb3IgdGhp
cyB2ZWN0b3IgcGF0aAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZlQkJveChib29sIGlu
Y2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdDsKQEAgLTYzLDEyICs2NCwxMiBAQAogICAgIHZpcnR1
YWwgYm9vbCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIktDYW52YXNJdGVtIjsg
fQogICAgIAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0OwotICAg
IHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgpOwor
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwog
ICAgIAogcHJvdGVjdGVkOgogICAgIC8vIHJlc3RyaWN0ZWQgc2V0IG9mIGFyZ3MgZm9yIHBhc3Np
bmcgdG8gcGFpbnQgc2VydmVycywgZXRjLgotICAgIHZpcnR1YWwgYm9vbCBoaXRzUGF0aChjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50ICZoaXRQb2ludCwgYm9vbCBmaWxsKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGhpdHNQYXRoKGNvbnN0IEZsb2F0UG9pbnQgJmhpdFBvaW50LCBib29s
IGZpbGwpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBiYm94Rm9yUGF0aChib29s
IGluY2x1ZGVTdHJva2UpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToKSW5kZXg6IGtjYW52YXMvS0Nh
bnZhc01hdHJpeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzTWF0cml4LmNwcAko
cmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL0tDYW52YXNNYXRyaXguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDI5MSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWYgU1ZHX1NVUFBPUlQK
LSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8cXdtYXRyaXguaD4KLQotI2luY2x1ZGUgIktD
YW52YXNQYXRoLmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZzJyYWQgPSAwLjAxNzQ1MzI5MjUxOTk0MzI5NTc2OTsgLy8gcGkvMTgwCi0KLS8v
IEtDYW52YXNNYXRyaXgKLUtDYW52YXNNYXRyaXg6OktDYW52YXNNYXRyaXgoKQotewotICAgIG1f
bW9kZSA9IE9QU19QUkVNVUw7Ci19Ci0KLUtDYW52YXNNYXRyaXg6OktDYW52YXNNYXRyaXgoY29u
c3QgUU1hdHJpeCAmcW1hdHJpeCkKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVMOwotICAgICgq
dGhpcykgPSBxbWF0cml4OwotfQotCi1LQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4KGNvbnN0
IEtDYW52YXNNYXRyaXggJm1hdHJpeCkKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVMOwotICAg
ICgqdGhpcykgPSBtYXRyaXg7Ci19Ci0KLUtDYW52YXNNYXRyaXg6OktDYW52YXNNYXRyaXgoZG91
YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUgZikK
LXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVMOwotICAgIG1fbWF0cml4LnNldE1hdHJpeChhLCBi
LCBjLCBkLCBlLCBmKTsKLX0KLQotS0NhbnZhc01hdHJpeDo6fktDYW52YXNNYXRyaXgoKQotewot
fQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj0oY29uc3QgUU1hdHJp
eCAmb3RoZXIpCi17Ci0gICAgbV9tYXRyaXggPSBvdGhlcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19
Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6Om9wZXJhdG9yPShjb25zdCBLQ2FudmFz
TWF0cml4ICZvdGhlcikKLXsKLSAgICBtX21hdHJpeCA9IG90aGVyLm1fbWF0cml4OwotICAgIHJl
dHVybiAqdGhpczsKLX0KLQotYm9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj09KGNvbnN0IFFN
YXRyaXggJm90aGVyKSBjb25zdAotewotICAgIHJldHVybiAobV9tYXRyaXggPT0gb3RoZXIpOwot
fQotCi1ib29sIEtDYW52YXNNYXRyaXg6Om9wZXJhdG9yIT0oY29uc3QgUU1hdHJpeCAmb3RoZXIp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsKLX0KLQotYm9vbCBLQ2Fu
dmFzTWF0cml4OjpvcGVyYXRvcj09KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVyKSBjb25zdAot
ewotICAgIHJldHVybiAobV9tYXRyaXggPT0gb3RoZXIubV9tYXRyaXgpOwotfQotCi1ib29sIEtD
YW52YXNNYXRyaXg6Om9wZXJhdG9yIT0oY29uc3QgS0NhbnZhc01hdHJpeCAmb3RoZXIpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0
cml4OjpzZXRPcGVyYXRpb25Nb2RlKEtDTWF0cml4T3BlcmF0aW9uTW9kZSBtb2RlKQotewotICAg
IG1fbW9kZSA9IG1vZGU7Ci19ICAgIAotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEEoZG91Ymxl
IGEpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KGEsIG1fbWF0cml4Lm0xMigpLCBtX21hdHJp
eC5tMjEoKSwgbV9tYXRyaXgubTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwot
fQotCi1kb3VibGUgS0NhbnZhc01hdHJpeDo6YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0
cml4Lm0xMSgpOwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEIoZG91YmxlIGIpCi17Ci0g
ICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgpLCBiLCBtX21hdHJpeC5tMjEoKSwg
bV9tYXRyaXgubTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwotfQotCi1kb3Vi
bGUgS0NhbnZhc01hdHJpeDo6YigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4Lm0xMigp
OwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEMoZG91YmxlIGMpCi17Ci0gICAgbV9tYXRy
aXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgYywgbV9tYXRyaXgu
bTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwotfQotCi1kb3VibGUgS0NhbnZh
c01hdHJpeDo6YygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4Lm0yMSgpOwotfQotCi12
b2lkIEtDYW52YXNNYXRyaXg6OnNldEQoZG91YmxlIGQpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0
cml4KG1fbWF0cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIGQsIG1f
bWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwotfQotCi1kb3VibGUgS0NhbnZhc01hdHJpeDo6
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4Lm0yMigpOwotfQotCi12b2lkIEtDYW52
YXNNYXRyaXg6OnNldEUoZG91YmxlIGUpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0
cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigp
LCBlLCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmUoKSBjb25z
dAotewotICAgIHJldHVybiBtX21hdHJpeC5keCgpOwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6
OnNldEYoZG91YmxlIGYpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgp
LCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigpLCBtX21hdHJp
eC5keCgpLCBmKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmYoKSBjb25zdAotewotICAg
IHJldHVybiBtX21hdHJpeC5keSgpOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4
Ojp0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KQotewotICAgIGlmKG1fbW9kZSA9PSBPUFNf
UFJFTVVMKQotICAgICAgICBtX21hdHJpeC50cmFuc2xhdGUoeCwgeSk7Ci0gICAgZWxzZQotICAg
IHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnRyYW5zbGF0ZSh4LCB5KTsK
LSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19
Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6Om11bHRpcGx5KGNvbnN0IEtDYW52YXNN
YXRyaXggJm90aGVyKQotewotICAgIFFNYXRyaXggdGVtcChvdGhlci5hKCksIG90aGVyLmIoKSwg
b3RoZXIuYygpLCBvdGhlci5kKCksIG90aGVyLmUoKSwgb3RoZXIuZigpKTsKLQotICAgIGlmKG1f
bW9kZSA9PSBPUFNfUFJFTVVMKQotICAgIHsKLSAgICAgICAgdGVtcCAqPSBtX21hdHJpeDsKLSAg
ICAgICAgbV9tYXRyaXggPSB0ZW1wOwotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIG1fbWF0cml4
ICo9IHRlbXA7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52
YXNNYXRyaXg6OnNjYWxlKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3Rvclkp
Ci17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0gICAgICAgIG1fbWF0cml4LnNjYWxl
KHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBR
TWF0cml4IHRlbXA7Ci0gICAgICAgIHRlbXAuc2NhbGUoc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3Rv
clkpOwotICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwotICAgIH0KLQotICAgIHJldHVybiAqdGhp
czsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6cm90YXRlKGRvdWJsZSBhbmds
ZSkKLXsKLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAgICAgbV9tYXRyaXgucm90
YXRlKGFuZ2xlKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAg
ICAgIHRlbXAucm90YXRlKGFuZ2xlKTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAgICB9
Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6
OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KQotewotICAgIGlmKG1fbW9kZSA9
PSBPUFNfUFJFTVVMKQotICAgICAgICBtX21hdHJpeC5yb3RhdGUoYXRhbjIoeSwgeCkgLyBkZWcy
cmFkKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAgIHRl
bXAucm90YXRlKGF0YW4yKHksIHgpIC8gZGVnMnJhZCk7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRl
bXA7Ci0gICAgfQotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2Fu
dmFzTWF0cml4OjpmbGlwWCgpCi17Ci0gICAgcmV0dXJuIHNjYWxlKC0xLjBmLCAxLjBmKTsKLX0K
LQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6ZmxpcFkoKQotewotICAgIHJldHVybiBz
Y2FsZSgxLjBmLCAtMS4wZik7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6OnNr
ZXdYKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAg
ICAgbV9tYXRyaXguc2hlYXIodGFuKGFuZ2xlICogZGVnMnJhZCksIDAuMGYpOwotICAgIGVsc2UK
LSAgICB7Ci0gICAgICAgIFFNYXRyaXggdGVtcDsKLSAgICAgICAgdGVtcC5zaGVhcih0YW4oYW5n
bGUgKiBkZWcycmFkKSwgMC4wZik7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRlbXA7Ci0gICAgfQot
Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4Ojpz
a2V3WShkb3VibGUgYW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0gICAg
ICAgIG1fbWF0cml4LnNoZWFyKDAuMGYsIHRhbihhbmdsZSAqIGRlZzJyYWQpKTsKLSAgICBlbHNl
Ci0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAgIHRlbXAuc2hlYXIoMC4wZiwg
dGFuKGFuZ2xlICogZGVnMnJhZCkpOwotICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwotICAgIH0K
LQotICAgIHJldHVybiAqdGhpczsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpyZXNldCgpCi17
Ci0gICAgbV9tYXRyaXgucmVzZXQoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpyZW1vdmVT
Y2FsZShkb3VibGUgKnhTY2FsZSwgZG91YmxlICp5U2NhbGUpCi17Ci0gICAgZG91YmxlIHN4ID0g
c3FydChhKCkgKiBhKCkgKyBiKCkgKmIoKSk7Ci0gICAgZG91YmxlIHN5ID0gc3FydChjKCkgKiBj
KCkgKyBkKCkgKmQoKSk7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIHNjYWxpbmcgZnJvbSB0aGUgbWF0
cml4LgotICAgIHNldEEoYSgpIC8gc3gpOyBzZXRCKGIoKSAvIHN4KTsKLSAgICBzZXRDKGMoKSAv
IHN5KTsgc2V0RChkKCkgLyBzeSk7Ci0KLSAgICAqeFNjYWxlID0gc3g7ICp5U2NhbGUgPSBzeTsK
LX0KLQotUU1hdHJpeCBLQ2FudmFzTWF0cml4OjpxbWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9tYXRyaXg7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtj
YW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZhcy9L
Q2FudmFzVHJlZURlYnVnLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMzQgKzI5LDI2IEBACiAj
aWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgiCiAKLSNpbmNsdWRl
IDxtYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzTWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5j
bHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+CisjaW5jbHVkZSAiRmxvYXRTaXplLmgi
CisjaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgorI2luY2x1ZGUgIktDYW52YXNGaWx0ZXJz
LmgiCiAjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCi0jaW5jbHVkZSA8a2NhbnZh
cy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tS
ZW5kZXJpbmdTdHJva2VQYWludGVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ0ZpbGxQYWludGVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1Bh
aW50U2VydmVyU29saWQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJQYXR0ZXJuLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1Bh
aW50U2VydmVyR3JhZGllbnQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMu
aD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmg+Ci0KKyNpbmNsdWRlICJLQ2Fu
dmFzUmVzb3VyY2VzLmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgorI2luY2x1ZGUg
IktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZl
ckdyYWRpZW50LmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oIgor
I2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkLmgiCisjaW5jbHVkZSAiS1JlbmRl
cmluZ1N0cm9rZVBhaW50ZXIuaCIKICNpbmNsdWRlICJLV1FSZW5kZXJUcmVlRGVidWcuaCIKLQot
I2luY2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KLQorI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSA8a3N2ZzIvc3Zn
L1NWR1N0eWxlZEVsZW1lbnRJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrZG9tL0RPTVN0cmluZy5oPgor
I2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiZG9tX2F0b21pY3N0
cmluZy5oIgogI2luY2x1ZGUgImh0bWxuYW1lcy5oIgotCisjaW5jbHVkZSA8a3htbGNvcmUvQXNz
ZXJ0aW9ucy5oPgorI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgot
I2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtOTMs
MTAgKzg1LDEwIEBACiAKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywg
Y29uc3QgSW50UmVjdCAmcikKIHsKLSAgICByZXR1cm4gdHMgPDwgImF0ICgiIDw8IHIueCgpIDw8
ICIsIiA8PCByLnkoKSA8PCAiKSBzaXplICIgPDwgci53aWR0aCgpIDw8ICJ4IiA8PCByLmhlaWdo
dCgpOworICAgIHJldHVybiB0cyA8PCAiYXQgKCIgPDwgci5sZWZ0KCkgPDwgIiwiIDw8IHIudG9w
KCkgPDwgIikgc2l6ZSAiIDw8IHIud2lkdGgoKSA8PCAieCIgPDwgci5oZWlnaHQoKTsKIH0KIAot
Ym9vbCBoYXNGcmFjdGlvbnMoZG91YmxlIHZhbCkKK2Jvb2wgaGFzRnJhY3Rpb25hbFBhcnQoZG91
YmxlIHZhbCkKIHsKICAgICBkb3VibGUgZXBzaWxvbiA9IDAuMDAwMTsKICAgICBpbnQgaXZhbCA9
IGludCh2YWwpOwpAQCAtMTA0LDcwICs5Niw1MiBAQAogICAgIHJldHVybiAoZmFicyh2YWwtZHZh
bCkgPiBlcHNpbG9uKTsKIH0KIAorUVRleHRTdHJlYW0mIGR1bXAoUVRleHRTdHJlYW0mIHRzLCBm
bG9hdCBmKQoreworICAgIGlmICghaGFzRnJhY3Rpb25hbFBhcnQoZikpIAorICAgICAgICByZXR1
cm4gdHMgPDwgc3RhdGljX2Nhc3Q8aW50PihmKTsKKyAgICByZXR1cm4gdHMgPDwgZjsKK30KKwog
UVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBGbG9hdFJlY3Qg
JnIpCiB7CiAgICAgdHMgPDwgImF0ICgiOyAKLSAgICBpZiAoaGFzRnJhY3Rpb25zKHIueCgpKSkg
Ci0gICAgICAgIHRzIDw8IHIueCgpOwotICAgIGVsc2UgCi0gICAgICAgIHRzIDw8IGludChyLngo
KSk7CisgICAgZHVtcCh0cywgci5sZWZ0KCkpOwogICAgIHRzIDw8ICIsIjsKLSAgICBpZiAoaGFz
RnJhY3Rpb25zKHIueSgpKSkgCi0gICAgICAgIHRzIDw8IHIueSgpOwotICAgIGVsc2UgCi0gICAg
ICAgIHRzIDw8IGludChyLnkoKSk7CisgICAgZHVtcCh0cywgci50b3AoKSk7CiAgICAgdHMgPDwg
Iikgc2l6ZSAiOwotICAgIGlmIChoYXNGcmFjdGlvbnMoci53aWR0aCgpKSkgCi0gICAgICAgIHRz
IDw8IHIud2lkdGgoKTsgCi0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHIud2lkdGgoKSk7
IAorICAgIGR1bXAodHMsIHIud2lkdGgoKSk7CiAgICAgdHMgPDwgIngiOwotICAgIGlmIChoYXNG
cmFjdGlvbnMoci5oZWlnaHQoKSkpIAotICAgICAgICB0cyA8PCByLmhlaWdodCgpOwotICAgIGVs
c2UgCi0gICAgICAgIHRzIDw8IGludChyLmhlaWdodCgpKTsKKyAgICBkdW1wKHRzLCByLmhlaWdo
dCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0
U3RyZWFtICZ0cywgY29uc3QgRmxvYXRQb2ludCAmcCkKIHsKICAgICB0cyA8PCAiKCI7ICAgIAot
ICAgIGlmIChoYXNGcmFjdGlvbnMocC54KCkpKQotICAgICAgICB0cyA8PCBwLngoKTsKLSAgICBl
bHNlIAotICAgICAgICB0cyA8PCBpbnQocC54KCkpOyAgICAKKyAgICBkdW1wKHRzLCBwLngoKSk7
CiAgICAgdHMgPDwgIiwiOwotICAgIGlmIChoYXNGcmFjdGlvbnMocC55KCkpKSAKLSAgICAgICAg
dHMgPDwgcC55KCk7Ci0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHAueSgpKTsgICAgCisg
ICAgZHVtcCh0cywgcC55KCkpOwogICAgIHJldHVybiB0cyA8PCAiKSI7CiB9CiAKIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgRmxvYXRTaXplICZzKQogeyAg
IAogICAgIHRzIDw8ICJ3aWR0aD0iOwotICAgIGlmIChoYXNGcmFjdGlvbnMocy53aWR0aCgpKSkK
LSAgICAgICAgdHMgPDwgcy53aWR0aCgpOwotICAgIGVsc2UKLSAgICAgICAgdHMgPDwgaW50KHMu
d2lkdGgoKSk7CisgICAgZHVtcCh0cywgcy53aWR0aCgpKTsKICAgICB0cyA8PCAiIGhlaWdodD0i
OwotICAgIGlmIChoYXNGcmFjdGlvbnMocy5oZWlnaHQoKSkpIAotICAgICAgICB0cyA8PCBzLmhl
aWdodCgpOwotICAgIGVsc2UKLSAgICAgICAgdHMgPDwgaW50KHMuaGVpZ2h0KCkpOwotICAgICBy
ZXR1cm4gdHM7CisgICAgZHVtcCh0cywgcy5oZWlnaHQoKSk7CisgICAgcmV0dXJuIHRzOwogfQog
Ci0KLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUU1hdHJp
eCAmbSkKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgQWZm
aW5lVHJhbnNmb3JtICZtKQogewogICAgIGlmIChtLmlzSWRlbnRpdHkoKSkKICAgICAgICAgdHMg
PDwgImlkZW50aXR5IjsKICAgICBlbHNlIAogICAgIHsKLSAgICAgICAgdHMgPDwgInttPSgoIiA8
PCBtLm0xMSgpIDw8ICIsIiA8PCBtLm0xMigpIDw8ICIpKCIgPDwgbS5tMjEoKSA8PCAiLCIgPDwg
bS5tMjIoKSA8PCAiKSkiOwotICAgICAgICB0cyA8PCAiIHQ9KCIgPDwgbS5keCgpIDw8ICIsIiA8
PCBtLmR5KCkgPDwgIil9IjsKKyAgICAgICAgdHMgPDwgInttPSgoIiA8PCBtLmEoKSA8PCAiLCIg
PDwgbS5iKCkgPDwgIikoIiA8PCBtLmMoKSA8PCAiLCIgPDwgbS5kKCkgPDwgIikpIjsKKyAgICAg
ICAgdHMgPDwgIiB0PSgiIDw8IG0uZSgpIDw8ICIsIiA8PCBtLmYoKSA8PCAiKX0iOwogICAgIH0K
ICAgICByZXR1cm4gdHM7CiB9CkBAIC0zMDQsNyArMjc4LDcgQEAKIAogc3RhdGljIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUmVuZGVyUGF0aCAmbykKIHsK
LSAgICB0cyA8PCAiICIgPDwgby5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoby5yZWxhdGl2
ZUJCb3goKSk7CisgICAgdHMgPDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAoby5y
ZWxhdGl2ZUJCb3goKSk7CiAgICAgCiAgICAgd3JpdGVTdHlsZSh0cywgbyk7CiAgICAgCkBAIC0z
MTUsNyArMjg5LDcgQEAKIAogc3RhdGljIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3Ry
ZWFtICZ0cywgY29uc3QgS0NhbnZhc0NvbnRhaW5lciAmbykKIHsKLSAgICB0cyA8PCAiICIgPDwg
by5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoby5yZWxhdGl2ZUJCb3goKSk7CisgICAgdHMg
PDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAoby5yZWxhdGl2ZUJCb3goKSk7CiAg
ICAgCiAgICAgd3JpdGVTdHlsZSh0cywgbyk7CiAgICAgCkluZGV4OiBrY2FudmFzL2RldmljZS9L
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmgJKHJldmlzaW9uIDEyNDExKQorKysg
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsMTEgQEAKICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVy
aW5nUGFpbnRTZXJ2ZXIuaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZUxpc3Rl
bmVyLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07
Cit9Cit1c2luZyBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm07CisKIHR5cGVkZWYgZW51bQogewog
ICAgIFNQUkVBRE1FVEhPRF9QQUQgPSAxLApAQCAtNjEsNyArNjYsNiBAQAogCiBRVGV4dFN0cmVh
bSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmLCBjb25zdCBLQ1NvcnRlZEdyYWRpZW50U3RvcExp
c3QgJik7CiAKLWNsYXNzIEtDYW52YXNNYXRyaXg7CiBjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJHcmFkaWVudCA6IHB1YmxpYyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIKIHsKIHB1YmxpYzoKQEAg
LTgyLDggKzg2LDggQEAKICAgICBib29sIGJvdW5kaW5nQm94TW9kZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0Qm91bmRpbmdCb3hNb2RlKGJvb2wgbW9kZSA9IHRydWUpOwogCi0gICAgS0NhbnZhc01h
dHJpeCBncmFkaWVudFRyYW5zZm9ybSgpIGNvbnN0OwotICAgIHZvaWQgc2V0R3JhZGllbnRUcmFu
c2Zvcm0oY29uc3QgS0NhbnZhc01hdHJpeCAmbWF0KTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ3Jh
ZGllbnRUcmFuc2Zvcm0oKSBjb25zdDsKKyAgICB2b2lkIHNldEdyYWRpZW50VHJhbnNmb3JtKGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYpOwogICAgIAogICAgIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVy
ICpsaXN0ZW5lcigpIGNvbnN0OwogICAgIHZvaWQgc2V0TGlzdGVuZXIoS0NhbnZhc1Jlc291cmNl
TGlzdGVuZXIgKmxpc3RlbmVyKTsKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFz
SXRlbVF1YXJ0ei5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZh
c0l0ZW1RdWFydHoubW0JKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6
L0tDYW52YXNJdGVtUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAj
aW1wb3J0ICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdGaWxs
UGFpbnRlci5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKLSNpbXBvcnQg
IktDYW52YXNNYXRyaXguaCIKIAogI2ltcG9ydCAiS0NhbnZhc1BhdGhRdWFydHouaCIKICNpbXBv
cnQgIktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKQEAgLTQ3LDggKzQ2LDggQEAKICNpbXBvcnQg
IlNWR1JlbmRlclN0eWxlLmgiCiAjaW1wb3J0ICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2lt
cG9ydCAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW1wb3J0ICJJbnRSZWN0LmgiCiAKLQog
S0NhbnZhc0l0ZW1RdWFydHo6OktDYW52YXNJdGVtUXVhcnR6KGtodG1sOjpSZW5kZXJTdHlsZSAq
c3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlKSA6IFJlbmRlclBhdGgoc3R5
bGUsIG5vZGUpCiB7CiB9CkBAIC0xOTYsNyArMTk1LDcgQEAKIAogSW50UmVjdCBLQ2FudmFzSXRl
bVF1YXJ0ejo6Z2V0QWJzb2x1dGVSZXBhaW50UmVjdCgpCiB7Ci0gICAgcmV0dXJuIGVuY2xvc2lu
Z0ludFJlY3QoYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbGF0aXZlQkJveCh0cnVlKSkp
OworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGFic29sdXRlVHJhbnNmb3JtKCkubWFwKHJl
bGF0aXZlQkJveCh0cnVlKSkpOwogfQogCiB2b2lkIEtDYW52YXNJdGVtUXVhcnR6OjpwYWludChQ
YWludEluZm8gJnBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKQpJbmRleDoga2Nh
bnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHoubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHoubW0JKHJldmlz
aW9uIDEyNDExKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFy
dHoubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbXBvcnQgIlF1YXJ0elN1
cHBvcnQuaCIKIAogI2ltcG9ydCAia2NhbnZhcy9LQ2FudmFzLmgiCi0jaW1wb3J0ICJLQ2FudmFz
TWF0cml4LmgiCiAjaW1wb3J0ICJLQ2FudmFzSXRlbVF1YXJ0ei5oIgogI2ltcG9ydCAiS1JlbmRl
cmluZ0ZpbGxQYWludGVyLmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oIgpA
QCAtNTQsMTkgKzUzLDE3IEBACiAgICAgW21fbnNHcmFwaGljc0NvbnRleHQgcmVsZWFzZV07CiB9
CiAKLUtDYW52YXNNYXRyaXggS1JlbmRlcmluZ0RldmljZUNvbnRleHRRdWFydHo6OmNvbmNhdENU
TShjb25zdCBLQ2FudmFzTWF0cml4ICZ3b3JsZE1hdHJpeCkKK0FmZmluZVRyYW5zZm9ybSBLUmVu
ZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6Y29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgd29ybGRNYXRyaXgpCiB7Ci0gICAgS0NhbnZhc01hdHJpeCByZXQgPSBjdG0oKTsKLSAgICBD
R0FmZmluZVRyYW5zZm9ybSB3TWF0cml4ID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKHdvcmxkTWF0
cml4LmEoKSwgd29ybGRNYXRyaXguYigpLCB3b3JsZE1hdHJpeC5jKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkTWF0cml4LmQoKSwg
d29ybGRNYXRyaXguZSgpLCB3b3JsZE1hdHJpeC5mKCkpOwotICAgIENHQ29udGV4dENvbmNhdENU
TShtX2NnQ29udGV4dCwgd01hdHJpeCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJldCA9IGN0bSgp
OworICAgIENHQ29udGV4dENvbmNhdENUTShtX2NnQ29udGV4dCwgd29ybGRNYXRyaXgpOwogICAg
IHJldHVybiByZXQ7CiB9CiAKLUtDYW52YXNNYXRyaXggS1JlbmRlcmluZ0RldmljZUNvbnRleHRR
dWFydHo6OmN0bSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS1JlbmRlcmluZ0RldmljZUNvbnRl
eHRRdWFydHo6OmN0bSgpIGNvbnN0CiB7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gY29udGV4dENU
TSA9IENHQ29udGV4dEdldENUTShtX2NnQ29udGV4dCk7Ci0gICAgcmV0dXJuIEtDYW52YXNNYXRy
aXgoY29udGV4dENUTS5hLCBjb250ZXh0Q1RNLmIsIGNvbnRleHRDVE0uYywgY29udGV4dENUTS5k
LCBjb250ZXh0Q1RNLnR4LCBjb250ZXh0Q1RNLnR5KTsKKyAgICByZXR1cm4gQWZmaW5lVHJhbnNm
b3JtKGNvbnRleHRDVE0uYSwgY29udGV4dENUTS5iLCBjb250ZXh0Q1RNLmMsIGNvbnRleHRDVE0u
ZCwgY29udGV4dENUTS50eCwgY29udGV4dENUTS50eSk7CiB9CiAKIEludFJlY3QgS1JlbmRlcmlu
Z0RldmljZUNvbnRleHRRdWFydHo6Om1hcEZyb21WaXN1YWwoY29uc3QgSW50UmVjdCAmcmVjdCkK
SW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHou
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNl
cnZlclF1YXJ0ei5tbQkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHov
S1JlbmRlcmluZ1BhaW50U2VydmVyUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICsz
Niw2IEBACiAjaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKICNpbXBvcnQgIktSZW5k
ZXJpbmdGaWxsUGFpbnRlci5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIK
LSNpbXBvcnQgIktDYW52YXNNYXRyaXguaCIKICNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2UuaCIK
IAogI2ltcG9ydCAiS1dRTG9nZ2luZy5oIgpAQCAtMTY0LDEwICsxNjMsMTAgQEAKICAgICAgICAg
ICAgIAogICAgIC8vIFBhdHRlcm5zIGRvbid0IHNlZW0gdG8gcmVzZXBlY3QgdGhlIENUTSB1bmxl
c3Mgd2UgbWFrZSB0aGVtLi4uCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gY3RtID0gQ0dDb250ZXh0
R2V0Q1RNKGNvbnRleHQpOwotICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZm
aW5lVHJhbnNmb3JtKHBhdHRlcm5UcmFuc2Zvcm0oKS5xbWF0cml4KCkpOwotICAgIHRyYW5zZm9y
bSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KHRyYW5zZm9ybSwgY3RtKTsKKyAgICBDR0FmZmlu
ZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChwYXR0ZXJuVHJh
bnNmb3JtKCksIGN0bSk7CiAKLSAgICBDR1NpemUgcGhhc2UgPSBDR1NpemVNYWtlKGJib3goKS54
KCksIGJib3goKS55KCkpOworICAgIC8vIEZJWE1FOiBJIGJlbGlldmUgdGhpcyB3aWxsbmVlZCB0
byB1c2UgV0tTZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZS4KKyAgICBDR1NpemUgcGhhc2UgPSBD
R1NpemVNYWtlKGJib3goKS5sZWZ0KCksIGJib3goKS50b3AoKSk7CiAgICAgQ0dDb250ZXh0U2V0
UGF0dGVyblBoYXNlKGNvbnRleHQsIHBoYXNlKTsKIAogICAgIENHUGF0dGVybkNhbGxiYWNrcyBj
YWxsYmFja3MgPSB7MCwgcGF0dGVybkNhbGxiYWNrLCBOVUxMfTsKSW5kZXg6IGtjYW52YXMvZGV2
aWNlL3F1YXJ0ei9RdWFydHpTdXBwb3J0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNl
L3F1YXJ0ei9RdWFydHpTdXBwb3J0Lm1tCShyZXZpc2lvbiAxMjQxMSkKKysrIGtjYW52YXMvZGV2
aWNlL3F1YXJ0ei9RdWFydHpTdXBwb3J0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2
IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNpbXBvcnQgIlF1YXJ0elN1cHBvcnQuaCIKIAotI2ltcG9y
dCAiS0NhbnZhc01hdHJpeC5oIgogI2ltcG9ydCAiS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oIgog
I2ltcG9ydCAiS1JlbmRlcmluZ0ZpbGxQYWludGVyLmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nU3Ry
b2tlUGFpbnRlci5oIgpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNvdXJj
ZXNRdWFydHoubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNS
ZXNvdXJjZXNRdWFydHoubW0JKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZhcy9kZXZpY2UvcXVh
cnR6L0tDYW52YXNSZXNvdXJjZXNRdWFydHoubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDYgQEAKIAogI2ltcG9ydCAia2NhbnZhcy9LQ2FudmFzLmgiCiAjaW1wb3J0ICJTVkdSZW5kZXJT
dHlsZS5oIgotI2ltcG9ydCAiS0NhbnZhc01hdHJpeC5oIgogCiAjaW1wb3J0ICJLQ2FudmFzUGF0
aFF1YXJ0ei5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgpAQCAtNDEsNiAr
NDAsOCBAQAogCiAjaW1wb3J0IDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiB2b2lkIEtDYW52YXNDb250YWluZXJRdWFydHo6OmNhbGNNaW5NYXhX
aWR0aCgpCiB7CiAgICAgS0hUTUxBc3NlcnQoICFtaW5NYXhLbm93bigpKTsKQEAgLTEwMiwxMiAr
MTAzLDEyIEBACiAgICAgCiAgICAgaWYgKHBhcmVudFggIT0gMCB8fCBwYXJlbnRZICE9IDApIHsK
ICAgICAgICAgLy8gVHJhbnNsYXRlIGZyb20gcGFyZW50IG9mZnNldHMgKGtodG1sKSB0byBhIHJl
bGF0aXZlIHRyYW5zZm9ybSAoa3N2ZzIva2NhbnZhcykKLSAgICAgICAgZGV2aWNlQ29udGV4dC0+
Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUocGFyZW50WCwgcGFyZW50WSkpOworICAgICAg
ICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25NYXRyaXgocGFyZW50WCwgcGFy
ZW50WSkpOwogICAgICAgICBwYXJlbnRYID0gcGFyZW50WSA9IDA7CiAgICAgfQogICAgIAotICAg
IGlmICh2aWV3cG9ydCgpLmlzVmFsaWQoKSkKLSAgICAgICAgZGV2aWNlQ29udGV4dC0+Y29uY2F0
Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpKSk7
CisgICAgaWYgKCF2aWV3cG9ydCgpLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlQ29udGV4dC0+
Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KHZpZXdwb3J0KCkubGVmdCgpLCB2aWV3cG9ydCgp
LnRvcCgpKSk7CiAgICAgCiAgICAgaWYgKCFsb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkK
ICAgICAgICAgZGV2aWNlQ29udGV4dC0+Y29uY2F0Q1RNKGxvY2FsVHJhbnNmb3JtKCkpOwpAQCAt
MTI1LDEwICsxMjYsMTAgQEAKICAgICBpZiAoZmlsdGVyKQogICAgICAgICBmaWx0ZXItPnByZXBh
cmVGaWx0ZXIocmVsYXRpdmVCQm94KHRydWUpKTsKICAgICAKLSAgICBpZiAoIXZpZXdCb3goKS5p
c051bGwoKSkgeworICAgIGlmICghdmlld0JveCgpLmlzRW1wdHkoKSkgewogICAgICAgICBGbG9h
dFJlY3Qgdmlld3BvcnRSZWN0ID0gdmlld3BvcnQoKTsKICAgICAgICAgaWYgKCFwYXJlbnQoKS0+
aXNLQ2FudmFzQ29udGFpbmVyKCkpCi0gICAgICAgICAgICB2aWV3cG9ydFJlY3QgPSBGbG9hdFJl
Y3Qodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7Cisg
ICAgICAgICAgICB2aWV3cG9ydFJlY3QgPSBGbG9hdFJlY3Qodmlld3BvcnQoKS5sZWZ0KCksIHZp
ZXdwb3J0KCkudG9wKCksIHdpZHRoKCksIGhlaWdodCgpKTsKICAgICAgICAgZGV2aWNlQ29udGV4
dC0+Y29uY2F0Q1RNKGdldEFzcGVjdFJhdGlvKHZpZXdCb3goKSwgdmlld3BvcnRSZWN0KSk7CiAg
ICAgfQogICAgIApAQCAtMTc4LDE0ICsxNzksMTQgQEAKICAgICByZXR1cm4gbV9hbGlnbjsKIH0K
IAotUU1hdHJpeCBLQ2FudmFzQ29udGFpbmVyUXVhcnR6OjphYnNvbHV0ZVRyYW5zZm9ybSgpIGNv
bnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lclF1YXJ0ejo6YWJzb2x1dGVUcmFu
c2Zvcm0oKSBjb25zdAogewotICAgIFFNYXRyaXggdHJhbnNmb3JtID0gS0NhbnZhc0NvbnRhaW5l
cjo6YWJzb2x1dGVUcmFuc2Zvcm0oKTsKLSAgICBpZiAoIXZpZXdCb3goKS5pc051bGwoKSkgewor
ICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBLQ2FudmFzQ29udGFpbmVyOjphYnNvbHV0
ZVRyYW5zZm9ybSgpOworICAgIGlmICghdmlld0JveCgpLmlzRW1wdHkoKSkgewogICAgICAgICBG
bG9hdFJlY3Qgdmlld3BvcnRSZWN0ID0gdmlld3BvcnQoKTsKICAgICAgICAgaWYgKCFwYXJlbnQo
KS0+aXNLQ2FudmFzQ29udGFpbmVyKCkpCi0gICAgICAgICAgICB2aWV3cG9ydFJlY3QgPSBGbG9h
dFJlY3Qodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7
Ci0gICAgICAgIHRyYW5zZm9ybSAqPSBnZXRBc3BlY3RSYXRpbyh2aWV3Qm94KCksIHZpZXdwb3J0
UmVjdCkucW1hdHJpeCgpOworICAgICAgICAgICAgdmlld3BvcnRSZWN0ID0gRmxvYXRSZWN0KHZp
ZXdwb3J0KCkubGVmdCgpLCB2aWV3cG9ydCgpLnRvcCgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7Cisg
ICAgICAgIHRyYW5zZm9ybSAqPSBnZXRBc3BlY3RSYXRpbyh2aWV3Qm94KCksIHZpZXdwb3J0UmVj
dCk7CiAgICAgfQogICAgIHJldHVybiB0cmFuc2Zvcm07CiB9CkluZGV4OiBrY2FudmFzL2Rldmlj
ZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2Rldmlj
ZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFz
L2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAkod29ya2luZyBjb3B5KQpAQCAtMjUs
OCArMjUsNiBAQAogCiAjaW1wb3J0ICJrY2FudmFzL1JlbmRlclBhdGguaCIKIAotI2luY2x1ZGUg
PHFtYXRyaXguaD4KLQogY2xhc3MgS0NhbnZhc0l0ZW1RdWFydHogOiBwdWJsaWMgUmVuZGVyUGF0
aCB7CiBwdWJsaWM6CiAgICAgS0NhbnZhc0l0ZW1RdWFydHooV2ViQ29yZTo6UmVuZGVyU3R5bGUq
LCBXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50SW1wbCopOwpJbmRleDoga2NhbnZhcy9kZXZpY2Uv
cXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHouaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2Rl
dmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oCShyZXZpc2lvbiAxMjQxMSkKKysr
IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDggKzQ2LDggQEAKICAgICBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0
eihDR0NvbnRleHRSZWYgY29udGV4dCk7CiAgICAgdmlydHVhbCB+S1JlbmRlcmluZ0RldmljZUNv
bnRleHRRdWFydHooKTsKICAgICAKLSAgICB2aXJ0dWFsIEtDYW52YXNNYXRyaXggY29uY2F0Q1RN
KGNvbnN0IEtDYW52YXNNYXRyaXggJndvcmxkTWF0cml4KTsKLSAgICB2aXJ0dWFsIEtDYW52YXNN
YXRyaXggY3RtKCkgY29uc3Q7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gY29uY2F0Q1RN
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGN0
bSgpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgSW50UmVjdCBtYXBGcm9tVmlzdWFsKGNvbnN0
IEludFJlY3QgJnJlY3QpOwogICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChjb25zdCBJ
bnRSZWN0ICZyZWN0KTsKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJHcmFkaWVudFF1YXJ0ei5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9x
dWFydHovS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnRRdWFydHoubW0JKHJldmlzaW9uIDEy
NDExKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRp
ZW50UXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW1wb3J0ICJL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5o
IgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKLSNpbXBvcnQgIktDYW52YXNN
YXRyaXguaCIKICNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKIAogI2ltcG9ydCAi
S0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oIgpAQCAtNjcsOCArNjYsNyBAQAogICAgIH0KICAgICAK
ICAgICAvLyBhcHBseSB0aGUgZ3JhZGllbnQncyBvd24gdHJhbnNmb3JtCi0gICAgQ0dBZmZpbmVU
cmFuc2Zvcm0gZ3JhZGllbnRUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybShzZXJ2ZXItPmdy
YWRpZW50VHJhbnNmb3JtKCkucW1hdHJpeCgpKTsKLSAgICBDR0NvbnRleHRDb25jYXRDVE0oY29u
dGV4dCwgZ3JhZGllbnRUcmFuc2Zvcm0pOworICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0
LCBzZXJ2ZXItPmdyYWRpZW50VHJhbnNmb3JtKCkpOwogICAgIAogICAgIENHQ29udGV4dFNldEFs
cGhhKGNvbnRleHQsIHJlbmRlclN0eWxlLT5vcGFjaXR5KCkpOwogICAgIApJbmRleDoga2NhbnZh
cy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2Nh
bnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0JKHJldmlzaW9uIDEyNDEx
KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI3LDI1ICsyNywyNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNW
R19TVVBQT1JUCiAjaW1wb3J0ICJLQ2FudmFzRmlsdGVyUXVhcnR6LmgiCisKKyNpbXBvcnQgIklu
dFJlY3QuaCIKICNpbXBvcnQgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgotI2ltcG9ydCAiS0Nh
bnZhc01hdHJpeC5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgorI2ltcG9y
dCAiS1dRRXhjZXB0aW9ucy5oIgorI2ltcG9ydCAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW1wb3J0
ICJRdWFydHpTdXBwb3J0LmgiCi0jaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCisjaW1wb3J0ICJX
S0FyaXRobWV0aWNGaWx0ZXIuaCIKICNpbXBvcnQgIldLRGlmZnVzZUxpZ2h0aW5nRmlsdGVyLmgi
CisjaW1wb3J0ICJXS0Rpc3RhbnRMaWdodEZpbHRlci5oIgorI2ltcG9ydCAiV0tOb3JtYWxNYXBG
aWx0ZXIuaCIKKyNpbXBvcnQgIldLUG9pbnRMaWdodEZpbHRlci5oIgogI2ltcG9ydCAiV0tTcGVj
dWxhckxpZ2h0aW5nRmlsdGVyLmgiCiAjaW1wb3J0ICJXS1Nwb3RMaWdodEZpbHRlci5oIgotI2lt
cG9ydCAiV0tQb2ludExpZ2h0RmlsdGVyLmgiCi0jaW1wb3J0ICJXS0Rpc3RhbnRMaWdodEZpbHRl
ci5oIgotI2ltcG9ydCAiV0tOb3JtYWxNYXBGaWx0ZXIuaCIKLSNpbXBvcnQgIldLQXJpdGhtZXRp
Y0ZpbHRlci5oIgotCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQg
PGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAotI2ltcG9ydCAiSW50UmVjdC5oIgordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLSNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KLQogc3Rh
dGljIFFTdHJpbmcgS0NQcmV2aW91c0ZpbHRlck91dHB1dE5hbWUgPSAiX19wcmV2aW91c091dHB1
dF9fIjsKIAogc3RhdGljIGlubGluZSBDSUNvbG9yICpjaUNvbG9yKGNvbnN0IENvbG9yICZjKQpA
QCAtNzgsNyArNzgsNyBAQAogCiB2b2lkIEtDYW52YXNGaWx0ZXJRdWFydHo6OnByZXBhcmVGaWx0
ZXIoY29uc3QgRmxvYXRSZWN0ICZiYm94KQogewotICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwg
IUtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkpCisgICAgaWYgKGJib3gu
aXNFbXB0eSgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9lZmZlY3RzLmlzRW1wdHkoKSkKQEAgLTk0LDE3
ICs5NCwxNyBAQAogICAgICAgICBjb250ZXh0T3B0aW9ucyA9IFtOU0RpY3Rpb25hcnkgZGljdGlv
bmFyeVdpdGhPYmplY3RzQW5kS2V5czpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwga0NJ
Q29udGV4dFVzZVNvZnR3YXJlUmVuZGVyZXIsIG5pbF07CiAgICAgCiAgICAgbV9maWx0ZXJDSUNv
bnRleHQgPSBbW0NJQ29udGV4dCBjb250ZXh0V2l0aENHQ29udGV4dDpjZ0NvbnRleHQgb3B0aW9u
czpjb250ZXh0T3B0aW9uc10gcmV0YWluXTsKLSAgICBtX2ZpbHRlckNHTGF5ZXIgPSBbbV9maWx0
ZXJDSUNvbnRleHQgY3JlYXRlQ0dMYXllcldpdGhTaXplOkNHUmVjdChiYm94KS5zaXplIGluZm86
TlVMTF07CisgICAgbV9maWx0ZXJDR0xheWVyID0gW21fZmlsdGVyQ0lDb250ZXh0IGNyZWF0ZUNH
TGF5ZXJXaXRoU2l6ZTpiYm94LnNpemUoKSBpbmZvOk5VTExdOwogICAgIAogICAgIEtSZW5kZXJp
bmdEZXZpY2VDb250ZXh0ICpmaWx0ZXJDb250ZXh0ID0gbmV3IEtSZW5kZXJpbmdEZXZpY2VDb250
ZXh0UXVhcnR6KENHTGF5ZXJHZXRDb250ZXh0KG1fZmlsdGVyQ0dMYXllcikpOwogICAgIFFQYWlu
dGVyOjpyZW5kZXJpbmdEZXZpY2UoKS0+cHVzaENvbnRleHQoZmlsdGVyQ29udGV4dCk7CiAgICAg
Ci0gICAgZmlsdGVyQ29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUoLTEuMGYg
KiBiYm94LngoKSwgLTEuMGYgKiBiYm94LnkoKSkpOworICAgIGZpbHRlckNvbnRleHQtPmNvbmNh
dENUTSh0cmFuc2xhdGlvbk1hdHJpeCgtYmJveC50b3AoKSwgLWJib3gubGVmdCgpKSk7CiB9CiAK
IHZvaWQgS0NhbnZhc0ZpbHRlclF1YXJ0ejo6YXBwbHlGaWx0ZXIoY29uc3QgRmxvYXRSZWN0ICZi
Ym94KQogewotICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwgIUtSZW5kZXJpbmdEZXZpY2VRdWFy
dHo6OmZpbHRlcnNFbmFibGVkKCkgfHwgbV9lZmZlY3RzLmlzRW1wdHkoKSkKKyAgICBpZiAoYmJv
eC5pc0VtcHR5KCkgfHwgIUtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkg
fHwgbV9lZmZlY3RzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gcmVzdG9y
ZSB0aGUgcHJldmlvdXMgY29udGV4dCwgZGVsZXRlIHRoZSBmaWx0ZXIgY29udGV4dC4KQEAgLTU0
Miw3ICs1NDIsNyBAQAogICAgIFtmaWx0ZXIgc2V0VmFsdWU6aW5wdXRDb2xvciBmb3JLZXk6QCJp
bnB1dENvbG9yIl07CiAgICAgCiAgICAgQ0dSZWN0IGNyb3BSZWN0ID0gQ0dSZWN0TWFrZSgwLDAs
MTAwMCwxMDAwKTsgLy8gSEFDSwotICAgIGlmIChzdWJSZWdpb24oKS5pc1ZhbGlkKCkpCisgICAg
aWYgKCFzdWJSZWdpb24oKS5pc0VtcHR5KCkpCiAgICAgICAgIGNyb3BSZWN0ID0gQ0dSZWN0KHN1
YlJlZ2lvbigpKTsKICAgICBGRV9RVUFSVFpfQ1JPUF9UT19SRUNUKGNyb3BSZWN0KTsKICAgICAK
QEAgLTU2MSwxMiArNTYxLDEyIEBACiAgICAgW2ZpbHRlciBzZXREZWZhdWx0c107CiAgICAgW2Zp
bHRlciBzZXRWYWx1ZTpjaUltYWdlIGZvcktleTpAImlucHV0SW1hZ2UiXTsKICAgICAKLSAgICBD
R0FmZmluZVRyYW5zZm9ybSBjZ1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZSgxLDAs
MCwtMSwwLHBpeG1hcCgpLnJlY3QoKS5ib3R0b20oKSk7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
Y2dUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgMCwgMCwgLTEsIDAsIHBpeG1h
cCgpLnJlY3QoKS5ib3R0b20oKSk7CiAgICAgTlNBZmZpbmVUcmFuc2Zvcm0gKm5zVHJhbnNmb3Jt
ID0gW05TQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybV07CiAgICAgW25zVHJhbnNmb3JtIHNldFRy
YW5zZm9ybVN0cnVjdDoqKChOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCAqKSZjZ1RyYW5zZm9ybSld
OwogICAgIFtmaWx0ZXIgc2V0VmFsdWU6bnNUcmFuc2Zvcm0gZm9yS2V5OkAiaW5wdXRUcmFuc2Zv
cm0iXTsKICAgICAKLSAgICBpZiAoc3ViUmVnaW9uKCkuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFz
dWJSZWdpb24oKS5pc0VtcHR5KCkpIHsKICAgICAgICAgQ0lGaWx0ZXIgKnNjYWxlSW1hZ2UgPSBb
Q0lGaWx0ZXIgZmlsdGVyV2l0aE5hbWU6QCJDSUFmZmluZVRyYW5zZm9ybSJdOwogICAgICAgICBb
c2NhbGVJbWFnZSBzZXREZWZhdWx0c107CiAgICAgICAgIFtzY2FsZUltYWdlIHNldFZhbHVlOltm
aWx0ZXIgdmFsdWVGb3JLZXk6QCJvdXRwdXRJbWFnZSJdIGZvcktleTpAImlucHV0SW1hZ2UiXTsK
SW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNvdXJjZXNRdWFydHou
aAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291
cmNlc1F1YXJ0ei5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJL
Q2FudmFzSW1hZ2UuaCIKICNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXMuaCIKICNpbXBvcnQgIktD
YW52YXNDb250YWluZXIuaCIKLSNpbXBvcnQgPHFtYXRyaXguaD4KKyNpbXBvcnQgIkFmZmluZVRy
YW5zZm9ybS5oIgogCiB0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQgKkNHQ29udGV4dFJlZjsKIHR5
cGVkZWYgc3RydWN0IENHTGF5ZXIgKkNHTGF5ZXJSZWY7CkBAIC00Miw4ICs0Miw4IEBACiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8g
JnBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKICAgICAKLSAgICB2aXJ0dWFs
IEludFJlY3QgZ2V0QWJzb2x1dGVSZXBhaW50UmVjdCgpIHsgcmV0dXJuIGVuY2xvc2luZ0ludFJl
Y3QoYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbGF0aXZlQkJveCh0cnVlKSkpOyB9Ci0g
ICAgdmlydHVhbCBRTWF0cml4IGFic29sdXRlVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgdmlydHVh
bCBJbnRSZWN0IGdldEFic29sdXRlUmVwYWludFJlY3QoKSB7IHJldHVybiBlbmNsb3NpbmdJbnRS
ZWN0KGFic29sdXRlVHJhbnNmb3JtKCkubWFwKHJlbGF0aXZlQkJveCh0cnVlKSkpOyB9CisgICAg
dmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm0oKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCB2aWV3cG9ydCgpIGNvbnN0OwpJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyUGF0dGVybi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga2Nh
bnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDEyICsyMiwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NV
UFBPUlQKLSNpbmNsdWRlICJLQ2FudmFzTWF0cml4LmgiCiAjaW5jbHVkZSAiS0NhbnZhc0ltYWdl
LmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oIgogCiAjaW5jbHVk
ZSA8cXRleHRzdHJlYW0uaD4KICNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgiCisjaW5jbHVk
ZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKIGNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm46OlByaXZhdGUKIHsKQEAgLTQxLDcgKzQxLDcgQEAKICAgICB+UHJpdmF0ZSgpIHsgZGVsZXRl
IHRpbGU7IH0KIAogICAgIEtDYW52YXNJbWFnZSAqdGlsZTsKLSAgICBLQ2FudmFzTWF0cml4IHBh
dHRlcm5UcmFuc2Zvcm07CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm07CiAg
ICAgRmxvYXRSZWN0IGJib3g7CiAgICAgYm9vbCB1c2VCb3VuZGluZ0JveE1vZGU7CiAgICAgS0Nh
bnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVyOwpAQCAtODYsMTIgKzg2LDEyIEBACiAgICAg
ZC0+dGlsZSA9IHRpbGU7CiB9CiAKLUtDYW52YXNNYXRyaXggS1JlbmRlcmluZ1BhaW50U2VydmVy
UGF0dGVybjo6cGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS1JlbmRl
cmluZ1BhaW50U2VydmVyUGF0dGVybjo6cGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGQtPnBhdHRlcm5UcmFuc2Zvcm07CiB9CiAKLXZvaWQgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyUGF0dGVybjo6c2V0UGF0dGVyblRyYW5zZm9ybShjb25zdCBLQ2FudmFzTWF0cml4ICZtYXQp
Cit2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldFBhdHRlcm5UcmFuc2Zvcm0o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBtYXQpCiB7CiAgICAgZC0+cGF0dGVyblRyYW5zZm9ybSA9
IG1hdDsKIH0KQEAgLTExNyw4ICsxMTcsOCBAQAogICAgICAgICA8PCAiIFtiYm94PSIgPDwgYmJv
eCgpIDw8ICJdIjsKICAgICBpZiAoIWJvdW5kaW5nQm94TW9kZSgpKQogICAgICAgICB0cyA8PCAi
IFtib3VuZGluZyBib3ggbW9kZT0iIDw8IGJvdW5kaW5nQm94TW9kZSgpIDw8ICJdIjsgICAgICAg
IAotICAgIGlmICghcGF0dGVyblRyYW5zZm9ybSgpLnFtYXRyaXgoKS5pc0lkZW50aXR5KCkpCi0g
ICAgICAgIHRzIDw8ICIgW3BhdHRlcm4gdHJhbnNmb3JtPSIgPDwgcGF0dGVyblRyYW5zZm9ybSgp
LnFtYXRyaXgoKSA8PCAiXSI7CisgICAgaWYgKCFwYXR0ZXJuVHJhbnNmb3JtKCkuaXNJZGVudGl0
eSgpKQorICAgICAgICB0cyA8PCAiIFtwYXR0ZXJuIHRyYW5zZm9ybT0iIDw8IHBhdHRlcm5UcmFu
c2Zvcm0oKSA8PCAiXSI7CiAgICAgcmV0dXJuIHRzOwogfQogCkluZGV4OiBrY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nRGV2aWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ0RldmljZS5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJp
bmdEZXZpY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTYgKzMxLDIwIEBACiAjaW5jbHVkZSA8
a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5k
ZXJpbmdQYWludFNlcnZlci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgQWZm
aW5lVHJhbnNmb3JtOworfQordXNpbmcgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtOworCiAvLyBh
a2Egd2hlcmUgdG8gZHJhdwotY2xhc3MgS0NhbnZhc01hdHJpeDsKIGNsYXNzIEtSZW5kZXJpbmdE
ZXZpY2VDb250ZXh0CiB7CiBwdWJsaWM6CiAgICAgS1JlbmRlcmluZ0RldmljZUNvbnRleHQoKSB7
IH0KICAgICB2aXJ0dWFsIH5LUmVuZGVyaW5nRGV2aWNlQ29udGV4dCgpIHsgfQogCi0gICAgdmly
dHVhbCBLQ2FudmFzTWF0cml4IGNvbmNhdENUTShjb25zdCBLQ2FudmFzTWF0cml4ICZ3b3JsZE1h
dHJpeCkgPSAwOwotICAgIHZpcnR1YWwgS0NhbnZhc01hdHJpeCBjdG0oKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gY29uY2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYpID0gMDsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBjdG0oKSBjb25zdCA9IDA7CiAg
ICAgCiAgICAgdmlydHVhbCBJbnRSZWN0IG1hcEZyb21WaXN1YWwoY29uc3QgSW50UmVjdCAmcmVj
dCkgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChjb25zdCBJbnRSZWN0ICZy
ZWN0KSA9IDA7CkluZGV4OiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0
ZXJuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVy
UGF0dGVybi5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQ
YWludFNlcnZlclBhdHRlcm4uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTEgQEAKIAog
I2luY2x1ZGUgIkludFBvaW50LmgiCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBB
ZmZpbmVUcmFuc2Zvcm07Cit9Cit1c2luZyBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm07CisKIGNs
YXNzIEtDYW52YXNJbWFnZTsKIAogY2xhc3MgS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybiA6
IHB1YmxpYyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIKQEAgLTUyLDggKzU3LDggQEAKICAgICBLQ2Fu
dmFzSW1hZ2UgKnRpbGUoKSBjb25zdDsKICAgICB2b2lkIHNldFRpbGUoS0NhbnZhc0ltYWdlICp0
aWxlKTsKIAotICAgIEtDYW52YXNNYXRyaXggcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0UGF0dGVyblRyYW5zZm9ybShjb25zdCBLQ2FudmFzTWF0cml4ICZtYXQpOworICAg
IEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgdm9pZCBzZXRQ
YXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCiAgICAgS0NhbnZhc1Jl
c291cmNlTGlzdGVuZXIgKmxpc3RlbmVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMaXN0ZW5lcihL
Q2FudmFzUmVzb3VyY2VMaXN0ZW5lciAqbGlzdGVuZXIpOwpJbmRleDoga2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmNwcAkocmV2aXNpb24gMTI0MTEp
CisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogCiAj
aW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaCIKLSNpbmNsdWRlICJLQ2Fu
dmFzTWF0cml4LmgiCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKICNpbmNsdWRlIDxx
dGV4dHN0cmVhbS5oPgogI2luY2x1ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKQEAgLTk5LDcgKzk5
LDcgQEAKICAgICBLQ1NvcnRlZEdyYWRpZW50U3RvcExpc3Qgc3RvcHM7CiAgICAgS0NHcmFkaWVu
dFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2Q7CiAgICAgYm9vbCBib3VuZGluZ0JveE1vZGU7Ci0g
ICAgS0NhbnZhc01hdHJpeCBncmFkaWVudFRyYW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
Z3JhZGllbnRUcmFuc2Zvcm07CiAgICAgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVy
OwogfTsKIApAQCAtMTQyLDEyICsxNDIsMTIgQEAKICAgICBkLT5ib3VuZGluZ0JveE1vZGUgPSBt
b2RlOwogfQogCi1LQ2FudmFzTWF0cml4IEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50Ojpn
cmFkaWVudFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS1JlbmRlcmluZ1BhaW50
U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50VHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4g
ZC0+Z3JhZGllbnRUcmFuc2Zvcm07CiB9CiAKLXZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyR3Jh
ZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdCkKK3Zv
aWQgS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3JtKGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0KQogewogICAgIGQtPmdyYWRpZW50VHJhbnNmb3JtID0g
bWF0OwogfQpAQCAtMTYwLDggKzE2MCw4IEBACiAgICAgICAgIHRzIDw8ICJbbWV0aG9kPSIgPDwg
c3ByZWFkTWV0aG9kKCkgPDwgIl0iOyAgICAgICAgCiAgICAgaWYgKCFib3VuZGluZ0JveE1vZGUo
KSkKICAgICAgICAgdHMgPDwgIiBbYm91bmRpbmcgYm94IG1vZGU9IiA8PCBib3VuZGluZ0JveE1v
ZGUoKSA8PCAiXSI7Ci0gICAgaWYgKCFncmFkaWVudFRyYW5zZm9ybSgpLnFtYXRyaXgoKS5pc0lk
ZW50aXR5KCkpCi0gICAgICAgIHRzIDw8ICIgW3RyYW5zZm9ybT0iIDw8IGdyYWRpZW50VHJhbnNm
b3JtKCkucW1hdHJpeCgpIDw8ICJdIjsKKyAgICBpZiAoIWdyYWRpZW50VHJhbnNmb3JtKCkuaXNJ
ZGVudGl0eSgpKQorICAgICAgICB0cyA8PCAiIFt0cmFuc2Zvcm09IiA8PCBncmFkaWVudFRyYW5z
Zm9ybSgpIDw8ICJdIjsKICAgICAKICAgICByZXR1cm4gdHM7CiB9CkluZGV4OiBrY2FudmFzL0tD
YW52YXNNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNNYXRyaXguaAkocmV2
aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL0tDYW52YXNNYXRyaXguaAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMDYgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xh
cyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgotKi8KLQotI2lmbmRlZiBLQ2FudmFzTWF0cml4X0gKLSNkZWZpbmUgS0NhbnZhc01h
dHJpeF9ICi0jaWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgPHFtYXRyaXguaD4KLQotdHlwZWRl
ZiBlbnVtCi17Ci0gICAgT1BTX1BSRU1VTCA9IDEsIC8vIERlZmF1bHQgbW9kZSAoc3ZnIGNvbXBh
dGlibGUpCi0gICAgT1BTX1BPU1RNVUwgPSAyCi19IEtDTWF0cml4T3BlcmF0aW9uTW9kZTsKLQot
Y2xhc3MgS0NhbnZhc1BhdGg7Ci1jbGFzcyBLQ2FudmFzTWF0cml4Ci17Ci1wdWJsaWM6Ci0gICAg
S0NhbnZhc01hdHJpeCgpOwotICAgIEtDYW52YXNNYXRyaXgoY29uc3QgUU1hdHJpeCAmcW1hdHJp
eCk7Ci0gICAgS0NhbnZhc01hdHJpeChjb25zdCBLQ2FudmFzTWF0cml4ICZtYXRyaXgpOwotICAg
IEtDYW52YXNNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRv
dWJsZSBlLCBkb3VibGUgZik7Ci0gICAgfktDYW52YXNNYXRyaXgoKTsKLQotICAgIC8vIE9wZXJh
dG9ycwotICAgIEtDYW52YXNNYXRyaXggJm9wZXJhdG9yPShjb25zdCBRTWF0cml4ICZvdGhlcik7
Ci0gICAgS0NhbnZhc01hdHJpeCAmb3BlcmF0b3I9KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVy
KTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRTWF0cml4ICZvdGhlcikgY29uc3Q7Ci0g
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFFNYXRyaXggJm90aGVyKSBjb25zdDsKLQotICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcikgY29uc3Q7Ci0gICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVyKSBjb25zdDsKLQotICAgIHZv
aWQgc2V0T3BlcmF0aW9uTW9kZShLQ01hdHJpeE9wZXJhdGlvbk1vZGUgbW9kZSk7Ci0KLSAgICBk
b3VibGUgYSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QShkb3VibGUgYSk7Ci0KLSAgICBkb3VibGUg
YigpIGNvbnN0OwotICAgIHZvaWQgc2V0Qihkb3VibGUgYik7Ci0KLSAgICBkb3VibGUgYygpIGNv
bnN0OwotICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7Ci0KLSAgICBkb3VibGUgZCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0RChkb3VibGUgZCk7Ci0KLSAgICBkb3VibGUgZSgpIGNvbnN0OwotICAgIHZv
aWQgc2V0RShkb3VibGUgZSk7Ci0KLSAgICBkb3VibGUgZigpIGNvbnN0OwotICAgIHZvaWQgc2V0
Rihkb3VibGUgZik7Ci0KLSAgICAvLyBPUFNfUFJFTVVMIDogUHJlLW11bHRpcGxpZWQgb3BlcmF0
aW9ucyAobmVlZGVkIGZvciBzdmctbGlrZSBtYXRyaXggb3BlcmF0aW9ucykKLSAgICAvLyBPUFNf
UE9TVE1VTDogUG9zdC1tdWx0aXBsaWVkIG9wZXJhdGlvbnMKLSAgICBLQ2FudmFzTWF0cml4ICZ0
cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KTsKLSAgICBLQ2FudmFzTWF0cml4ICZtdWx0aXBs
eShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcik7Ci0gICAgS0NhbnZhc01hdHJpeCAmc2NhbGUo
ZG91YmxlIHNjYWxlRmFjdG9yWCwgZG91YmxlIHNjYWxlRmFjdG9yWSk7Ci0KLSAgICBLQ2FudmFz
TWF0cml4ICZyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICBLQ2FudmFzTWF0cml4ICZyb3RhdGVG
cm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0KLSAgICBLQ2FudmFzTWF0cml4ICZmbGlw
WCgpOwotICAgIEtDYW52YXNNYXRyaXggJmZsaXBZKCk7Ci0KLSAgICBLQ2FudmFzTWF0cml4ICZz
a2V3WChkb3VibGUgYW5nbGUpOwotICAgIEtDYW52YXNNYXRyaXggJnNrZXdZKGRvdWJsZSBhbmds
ZSk7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICAvLyBEZXRlcm1pbmUgdGhlIHNjYWxpbmcg
Y29tcG9uZW50IG9mIHRoZSBtYXRyaXggYW5kIGZhY3RvciBpdCBvdXQuCi0gICAgLy8gQWZ0ZXIg
dGhpcyBvcGVyYXRpb24sIHRoZSBtYXRyaXggaGFzIHggYW5kIHkgc2NhbGUgb2Ygb25lICgnMScp
LgotICAgIHZvaWQgcmVtb3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAqeVNjYWxlKTsK
LQotICAgIFFNYXRyaXggcW1hdHJpeCgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFFNYXRyaXgg
bV9tYXRyaXg7Ci0gICAgS0NNYXRyaXhPcGVyYXRpb25Nb2RlIG1fbW9kZTsKLX07Ci0KLSNlbmRp
ZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtjYW52
YXMvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9SZW5kZXJG
b3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL1JlbmRlckZvcmVp
Z25PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyMiArMjQsMjEgQEAKICNpZiBTVkdf
U1VQUE9SVAogI2luY2x1ZGUgIlJlbmRlckZvcmVpZ25PYmplY3QuaCIKIAotI2luY2x1ZGUgIktD
YW52YXNNYXRyaXguaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnRJbXBsLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1SZW5kZXJGb3JlaWduT2JqZWN0OjpSZW5kZXJGb3JlaWduT2JqZWN0KEtTVkc6OlNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50SW1wbCAqbm9kZSkgCitSZW5kZXJGb3JlaWduT2JqZWN0OjpSZW5k
ZXJGb3JlaWduT2JqZWN0KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqbm9kZSkgCiAgICAg
OiBSZW5kZXJCbG9jayhub2RlKQogewogfQogCi1RTWF0cml4IFJlbmRlckZvcmVpZ25PYmplY3Q6
OnRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpCitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyRm9yZWln
bk9iamVjdDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkKIHsKLSAgICBLU1ZHOjpTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudEltcGwgKmZvcmVpZ24gPSBzdGF0aWNfY2FzdDxLU1ZHOjpTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudEltcGwgKj4oZWxlbWVudCgpKTsKLSAgICByZXR1cm4gUU1hdHJpeCgp
LnRyYW5zbGF0ZShmb3JlaWduLT54KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgZm9yZWlnbi0+eSgp
LT5iYXNlVmFsKCktPnZhbHVlKCkpOworICAgIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCog
Zm9yZWlnbiA9IHN0YXRpY19jYXN0PFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqPihlbGVt
ZW50KCkpOworICAgIHJldHVybiB0cmFuc2xhdGlvbk1hdHJpeChmb3JlaWduLT54KCktPmJhc2VW
YWwoKS0+dmFsdWUoKSwgZm9yZWlnbi0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogfQogCiB2
b2lkIFJlbmRlckZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQg
cGFyZW50WCwgaW50IHBhcmVudFkpCkBAIC01OCw3ICs1Nyw3IEBACiAgICAgfSBlbHNlCiAgICAg
ICAgIHBhaW50SW5mby5wLT5zYXZlKCk7CiAKLSAgICBjb250ZXh0LT5jb25jYXRDVE0oUU1hdHJp
eCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgY29udGV4dC0+Y29uY2F0Q1RN
KHRyYW5zbGF0aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsKICAgICBjb250ZXh0LT5jb25j
YXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0
aW9uRm9yQXR0cmlidXRlcygpKTsKICAgICAKQEAgLTcxLDEzICs3MCwxNiBAQAogICAgICAgICBw
YWludEluZm8ucC0+cmVzdG9yZSgpOwogfQogCi1ib29sIFJlbmRlckZvcmVpZ25PYmplY3Q6Om5v
ZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBI
aXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlckZvcmVpZ25PYmplY3Q6Om5v
ZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBI
aXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBRTWF0cml4IHRvdGFsVHJhbnNmb3JtID0gYWJz
b2x1dGVUcmFuc2Zvcm0oKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdG90YWxUcmFuc2Zvcm0gPSBh
YnNvbHV0ZVRyYW5zZm9ybSgpOwogICAgIHRvdGFsVHJhbnNmb3JtICo9IHRyYW5zbGF0aW9uRm9y
QXR0cmlidXRlcygpOwogICAgIGRvdWJsZSBsb2NhbFgsIGxvY2FsWTsKLSAgICB0b3RhbFRyYW5z
Zm9ybS5pbnZlcnQoKS5tYXAoeCwgeSwgJmxvY2FsWCwgJmxvY2FsWSk7Ci0gICAgcmV0dXJuIFJl
bmRlckJsb2NrOjpub2RlQXRQb2ludChpbmZvLCAoaW50KWxvY2FsWCwgKGludClsb2NhbFksIHR4
LCB0eSwgaGl0VGVzdEFjdGlvbik7CisgICAgdG90YWxUcmFuc2Zvcm0uaW52ZXJ0KCk7CisgICAg
dG90YWxUcmFuc2Zvcm0ubWFwKHgsIHksIGxvY2FsWCwgbG9jYWxZKTsKKyAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6Om5vZGVBdFBvaW50KGluZm8sIHN0YXRpY19jYXN0PGludD4obG9jYWxYKSwgc3Rh
dGljX2Nhc3Q8aW50Pihsb2NhbFkpLCB0eCwgdHksIGFjdGlvbik7CiB9CisKK30KKwogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmNwcAkocmV2aXNpb24gMTI0MTEp
CisrKyBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwy
MiArMjIsMTkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgIktDYW52YXNS
ZXNvdXJjZXMuaCIKIAotI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhcy5oIgotI2luY2x1ZGUgImtj
YW52YXMvUmVuZGVyUGF0aC5oIgotI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhc0ltYWdlLmgiCi0j
aW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJLQ2FudmFzQ29udGFpbmVyLmgiCi0jaW5jbHVk
ZSAiS0NhbnZhc1Jlc291cmNlcy5oIgorI2luY2x1ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKICNp
bmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCi0KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0u
aCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgotCisjaW5jbHVkZSAia2NhbnZh
cy9LQ2FudmFzLmgiCisjaW5jbHVkZSAia2NhbnZhcy9LQ2FudmFzSW1hZ2UuaCIKKyNpbmNsdWRl
ICJrY2FudmFzL1JlbmRlclBhdGguaCIKICNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgotI2luY2x1
ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKIAogUVRl
eHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBLQ2FudmFzUmVzb3Vy
Y2UgJnIpIAogeyAKQEAgLTIyNSwyNCArMjIyLDIyIEBACiB7CiAgICAgaWYobV9tYXJrZXIpCiAg
ICAgewotICAgICAgICBLQ2FudmFzTWF0cml4IHRyYW5zbGF0aW9uOwotICAgICAgICB0cmFuc2xh
dGlvbi50cmFuc2xhdGUoeCwgeSk7Ci0KLSAgICAgICAgS0NhbnZhc01hdHJpeCByb3RhdGlvbjsK
LSAgICAgICAgcm90YXRpb24uc2V0T3BlcmF0aW9uTW9kZShPUFNfUE9TVE1VTCk7Ci0gICAgICAg
IHJvdGF0aW9uLnRyYW5zbGF0ZSgtbV9yZWZYLCAtbV9yZWZZKTsKLSAgICAgICAgcm90YXRpb24u
c2NhbGUobV9zY2FsZVgsIG1fc2NhbGVZKTsKLSAgICAgICAgcm90YXRpb24ucm90YXRlKG1fYW5n
bGUgPiAtMSA/IG1fYW5nbGUgOiBhbmdsZSk7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtYXRy
aXg7CisgICAgICAgIG1hdHJpeC50cmFuc2xhdGUoLW1fcmVmWCwgLW1fcmVmWSk7CisgICAgICAg
IG1hdHJpeC5zY2FsZShtX3NjYWxlWCwgbV9zY2FsZVkpOworICAgICAgICBtYXRyaXgucm90YXRl
KG1fYW5nbGUgPiAtMSA/IG1fYW5nbGUgOiBhbmdsZSk7CiAgICAgICAgIAogICAgICAgICAvLyBz
dHJva2Ugd2lkdGgKLSAgICAgICAgaWYobV91c2VTdHJva2VXaWR0aCkKLSAgICAgICAgICAgIHJv
dGF0aW9uLnNjYWxlKHN0cm9rZVdpZHRoLCBzdHJva2VXaWR0aCk7CisgICAgICAgIGlmIChtX3Vz
ZVN0cm9rZVdpZHRoKQorICAgICAgICAgICAgbWF0cml4LnNjYWxlKHN0cm9rZVdpZHRoLCBzdHJv
a2VXaWR0aCk7CiAKKyAgICAgICAgbWF0cml4LnRyYW5zbGF0ZSh4LCB5KTsKKwogICAgICAgICAv
LyBGSVhNRTogUGFpbnRJbmZvIHNob3VsZCBiZSBwYXNzZWQgaW50byB0aGlzIG1ldGhvZCBpbnN0
ZWFkLgogICAgICAgICAvLyBGSVhNRTogYm91bmRpbmcgYm94IGZyYWN0aW9ucyBsb3N0CiAgICAg
ICAgIFFQYWludGVyIHA7CiAgICAgICAgIGtodG1sOjpSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyBp
bmZvKCZwLCBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpLCBXZWJDb3JlOjpQYWludEFjdGlvbkZvcmVn
cm91bmQsIDApOwotICAgICAgICBtX21hcmtlci0+c2V0TG9jYWxUcmFuc2Zvcm0ocm90YXRpb24u
bXVsdGlwbHkodHJhbnNsYXRpb24pLnFtYXRyaXgoKSk7CisgICAgICAgIG1fbWFya2VyLT5zZXRM
b2NhbFRyYW5zZm9ybShtYXRyaXgpOwogICAgICAgICBzdGF0aWNfY2FzdDxLQ2FudmFzQ29udGFp
bmVyICo+KG1fbWFya2VyKS0+c2V0RHJhd3NDb250ZW50cyh0cnVlKTsKICAgICAgICAgbV9tYXJr
ZXItPnBhaW50KGluZm8sIDAsIDApOwogICAgICAgICBzdGF0aWNfY2FzdDxLQ2FudmFzQ29udGFp
bmVyICo+KG1fbWFya2VyKS0+c2V0RHJhd3NDb250ZW50cyhmYWxzZSk7CkluZGV4OiBrY2FudmFz
L0tDYW52YXNUcmVlRGVidWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNUcmVlRGVi
dWcuaAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPHF0ZXh0c3RyZWFtLmg+CiAj
aW5jbHVkZSA8cTN2YWx1ZWxpc3QuaD4KIAotY2xhc3MgUU1hdHJpeDsKIGNsYXNzIFFTdHJpbmdM
aXN0OwogY2xhc3MgS0NDbGlwRGF0YTsKIGNsYXNzIEtDUGF0aERhdGE7CkBAIC00Miw2ICs0MSw3
IEBACiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEludFBvaW50OwogICAgIGNsYXNz
IEludFJlY3Q7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogfQogCiBuYW1lc3BhY2UgS0RP
TSB7CkBAIC01NCw3ICs1NCw3IEBACiB2b2lkIHdyaXRlUmVuZGVyUmVzb3VyY2VzKFFUZXh0U3Ry
ZWFtICZ0cywgS0RPTTo6Tm9kZUltcGwgKnBhcmVudCk7CiAKIC8vIGhlbHBlciBvcGVyYXRvcnMg
ZGVmaW5lZCB1c2VkIGluIHZhcmlvdXMgY2xhc3NlcyB0byBkdW1wIHRoZSByZW5kZXIgdHJlZS4g
Ci1RVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFFNYXRyaXgg
Jik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybSAmKTsKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3Ry
ZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKTsKIFFUZXh0U3RyZWFtICZvcGVyYXRv
cjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6Q29sb3IgJik7CiBRVGV4dFN0cmVh
bSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50ICYp
OwpJbmRleDoga2NhbnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2Nh
bnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZhcy9S
ZW5kZXJGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDI5ICsyNSwzMSBAQAog
I2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgPHFt
YXRyaXguaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKIAotbmFtZXNwYWNlIEtTVkcg
ewotICAgIGNsYXNzIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbDsKLX0KK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsOworCiBjbGFzcyBS
ZW5kZXJGb3JlaWduT2JqZWN0IDogcHVibGljIGtodG1sOjpSZW5kZXJCbG9jawogewogcHVibGlj
OgotICAgIFJlbmRlckZvcmVpZ25PYmplY3QoS1NWRzo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJ
bXBsICpub2RlKTsKKyAgICBSZW5kZXJGb3JlaWduT2JqZWN0KFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50SW1wbCAqbm9kZSk7CiAgICAgCi0gICAgY29uc3QgY2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0
IHsgcmV0dXJuICJSZW5kZXJGb3JlaWduT2JqZWN0IjsgfQorICAgIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRm9yZWlnbk9iamVjdCI7IH0KICAgICB2b2lk
IHBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpOwog
ICAgIAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNmb3JtOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0
IFFNYXRyaXgmIHRyYW5zZm9ybSkgeyBtX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQorICAgIHZp
cnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2Zvcm07IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KICAg
ICAKICAgICBib29sIG5vZGVBdFBvaW50KE5vZGVJbmZvJiwgaW50IHgsIGludCB5LCBpbnQgdHgs
IGludCB0eSwgV2ViQ29yZTo6SGl0VGVzdEFjdGlvbik7CiAKICBwcml2YXRlOgotICAgIFFNYXRy
aXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJpeCBtX3RyYW5zZm9ybTsK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7CisgICAgQWZm
aW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogfTsKIAorfQorCiAjZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKICNlbmRpZgpJbmRleDoga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgJKHJldmlzaW9uIDEyNDExKQorKysga2NhbnZh
cy9LQ2FudmFzUmVzb3VyY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDYgQEAKICAg
ICBSU19NQVNLRVIgPSA0CiB9IEtDUmVzb3VyY2VUeXBlOwogCi1jbGFzcyBLQ2FudmFzTWF0cml4
OwogY2xhc3MgS1JlbmRlcmluZ1BhaW50U2VydmVyOwogCiBjbGFzcyBLQ2FudmFzUmVzb3VyY2UK
SW5kZXg6IGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZh
cy9LQ2FudmFzQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrY2FudmFzL0tDYW52
YXNDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiwxMSBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJLQ2FudmFzQ29udGFp
bmVyLmgiCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJLQ2FudmFz
UmVuZGVyaW5nU3R5bGUuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCi0jaW5jbHVk
ZSAiS0NhbnZhc0NvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgi
CiAKIGNsYXNzIEtDYW52YXNDb250YWluZXI6OlByaXZhdGUKQEAgLTM1LDcgKzM3LDcgQEAKIAog
ICAgIGJvb2wgZHJhd3NDb250ZW50cyA6IDE7CiAgICAgYm9vbCBzbGljZSA6IDE7Ci0gICAgUU1h
dHJpeCBtYXRyaXg7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKIH07CiAKIEtDYW52YXND
b250YWluZXI6OktDYW52YXNDb250YWluZXIoS1NWRzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5v
ZGUpCkBAIC01OSwxMiArNjEsMTIgQEAKICAgICBkLT5kcmF3c0NvbnRlbnRzID0gZHJhd3NDb250
ZW50czsKIH0KIAotUU1hdHJpeCBLQ2FudmFzQ29udGFpbmVyOjpsb2NhbFRyYW5zZm9ybSgpIGNv
bnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lcjo6bG9jYWxUcmFuc2Zvcm0oKSBj
b25zdAogewogICAgIHJldHVybiBkLT5tYXRyaXg7CiB9CiAKLXZvaWQgS0NhbnZhc0NvbnRhaW5l
cjo6c2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCAmbWF0cml4KQordm9pZCBLQ2FudmFz
Q29udGFpbmVyOjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJp
eCkKIHsKICAgICBkLT5tYXRyaXggPSBtYXRyaXg7CiB9CkBAIC0xMDAsOCArMTAyLDggQEAKICAg
ICBraHRtbDo6UmVuZGVyT2JqZWN0ICpjdXJyZW50ID0gZmlyc3RDaGlsZCgpOwogICAgIGZvcig7
IGN1cnJlbnQgIT0gMDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgRmxvYXRSZWN0IGNoaWxkQkJveCA9IGN1cnJlbnQtPnJlbGF0aXZlQkJveChpbmNsdWRlU3Ry
b2tlKTsKLSAgICAgICAgRmxvYXRSZWN0IG1hcHBlZEJCb3ggPSBjdXJyZW50LT5sb2NhbFRyYW5z
Zm9ybSgpLm1hcFJlY3QoY2hpbGRCQm94KTsKLSAgICAgICAgcmVjdCA9IHJlY3QudW5pdGUobWFw
cGVkQkJveCk7CisgICAgICAgIEZsb2F0UmVjdCBtYXBwZWRCQm94ID0gY3VycmVudC0+bG9jYWxU
cmFuc2Zvcm0oKS5tYXAoY2hpbGRCQm94KTsKKyAgICAgICAgcmVjdC51bml0ZShtYXBwZWRCQm94
KTsKICAgICB9CiAKICAgICByZXR1cm4gcmVjdDsKQEAgLTExNywxMiArMTE5LDEyIEBACiAgICAg
cmV0dXJuIGQtPnNsaWNlOwogfQogCi1LQ2FudmFzTWF0cml4IEtDYW52YXNDb250YWluZXI6Omdl
dEFzcGVjdFJhdGlvKGNvbnN0IEZsb2F0UmVjdCBsb2dpY2FsLCBjb25zdCBGbG9hdFJlY3QgcGh5
c2ljYWwpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lcjo6Z2V0QXNwZWN0
UmF0aW8oY29uc3QgRmxvYXRSZWN0IGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkg
Y29uc3QKIHsKLSAgICBLQ2FudmFzTWF0cml4IHRlbXA7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRl
bXA7CiAKLSAgICBmbG9hdCBsb2dpY1ggPSBsb2dpY2FsLngoKTsKLSAgICBmbG9hdCBsb2dpY1kg
PSBsb2dpY2FsLnkoKTsKKyAgICBmbG9hdCBsb2dpY1ggPSBsb2dpY2FsLmxlZnQoKTsKKyAgICBm
bG9hdCBsb2dpY1kgPSBsb2dpY2FsLnRvcCgpOwogICAgIGZsb2F0IGxvZ2ljV2lkdGggPSBsb2dp
Y2FsLndpZHRoKCk7CiAgICAgZmxvYXQgbG9naWNIZWlnaHQgPSBsb2dpY2FsLmhlaWdodCgpOwog
ICAgIGZsb2F0IHBoeXNXaWR0aCA9IHBoeXNpY2FsLndpZHRoKCk7CkluZGV4OiBicmlkZ2UvbWFj
L01hY0ZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvTWFjRnJhbWUubW0JKHJldmlz
aW9uIDEyNDExKQorKysgYnJpZGdlL21hYy9NYWNGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzA0MCw3ICszMDQwLDcgQEAKIAogICAgIC8vIDEuIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHVzZWQg
dG8gZHJhdyBiZWhpbmQgc2VsZWN0ZWQgY29udGVudCAoYWN0aXZlIHwgaW5hY3RpdmUgY29sb3Ip
CiAgICAgaWYgKGQtPm1fdmlldykKLSAgICAgICAgZC0+bV92aWV3LT51cGRhdGVDb250ZW50cyhJ
bnRSZWN0KHZpc2libGVTZWxlY3Rpb25SZWN0KCkpKTsKKyAgICAgICAgZC0+bV92aWV3LT51cGRh
dGVDb250ZW50cyhlbmNsb3NpbmdJbnRSZWN0KHZpc2libGVTZWxlY3Rpb25SZWN0KCkpKTsKIAog
ICAgIC8vIDIuIENhcmV0IGJsaW5raW5nIChibGlua3MgfCBkb2VzIG5vdCBibGluaykKICAgICBp
ZiAoZmxhZykKQEAgLTMwNjQsMTAgKzMwNjQsOSBAQAogICAgICAgICBOU1ZpZXcgKmRvY3VtZW50
VmlldyA9IGQtPm1fdmlldyA/IGQtPm1fdmlldy0+Z2V0RG9jdW1lbnRWaWV3KCkgOiAwOwogICAg
ICAgICBpZiAoZG9jdW1lbnRWaWV3ICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGRvYy0+
dXBkYXRlTGF5b3V0KCk7IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8gZGF0ZS4KLSAgICAgICAg
ICAgIEludFJlY3QgdmlzaWJsZVJlY3QoW2RvY3VtZW50VmlldyB2aXNpYmxlUmVjdF0pOwogICAg
ICAgICAgICAgUVBhaW50ZXIgcDsKICAgICAgICAgICAgIHAuc2V0VXBkYXRpbmdDb250cm9sVGlu
dHModHJ1ZSk7Ci0gICAgICAgICAgICBwYWludCgmcCwgdmlzaWJsZVJlY3QpOworICAgICAgICAg
ICAgcGFpbnQoJnAsIGVuY2xvc2luZ0ludFJlY3QoW2RvY3VtZW50VmlldyB2aXNpYmxlUmVjdF0p
KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTM0OTYsMTYgKzM0OTUsOCBAQAogICAgICAgICBp
ZiAocmVnaW9uLnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdpb246Ok5vbmUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICBOU1JlY3QgY2xpcDsKLSAgICAgICAg
Y2xpcC5vcmlnaW4ueCA9IHJlZ2lvbi5jbGlwLngoKTsKLSAgICAgICAgY2xpcC5vcmlnaW4ueSA9
IHJlZ2lvbi5jbGlwLnkoKTsKLSAgICAgICAgY2xpcC5zaXplLndpZHRoID0gcmVnaW9uLmNsaXAu
d2lkdGgoKTsKLSAgICAgICAgY2xpcC5zaXplLmhlaWdodCA9IHJlZ2lvbi5jbGlwLmhlaWdodCgp
OwotICAgICAgICBOU1JlY3QgcmVjdDsKLSAgICAgICAgcmVjdC5vcmlnaW4ueCA9IHJlZ2lvbi5i
b3VuZHMueCgpOwotICAgICAgICByZWN0Lm9yaWdpbi55ID0gcmVnaW9uLmJvdW5kcy55KCk7Ci0g
ICAgICAgIHJlY3Quc2l6ZS53aWR0aCA9IHJlZ2lvbi5ib3VuZHMud2lkdGgoKTsKLSAgICAgICAg
cmVjdC5zaXplLmhlaWdodCA9IHJlZ2lvbi5ib3VuZHMuaGVpZ2h0KCk7CisgICAgICAgIE5TUmVj
dCBjbGlwID0gcmVnaW9uLmNsaXA7CisgICAgICAgIE5TUmVjdCByZWN0ID0gcmVnaW9uLmJvdW5k
czsKICAgICAgICAgTlNTdHJpbmcgKmxhYmVsID0gcmVnaW9uLmxhYmVsLmdldE5TU3RyaW5nKCk7
CiAgICAgICAgIFdlYkRhc2hib2FyZFJlZ2lvblR5cGUgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lv
blR5cGVOb25lOwogICAgICAgICBpZiAocmVnaW9uLnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdp
b246OkNpcmNsZSkKSW5kZXg6IGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCShyZXZpc2lvbiAxMjQx
MSkKKysrIGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC05NzQsNyArOTc0LDcgQEAKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0IHdpdGhQYWlu
dGVyOihRUGFpbnRlciAqKXAKIHsKICAgICBbc2VsZiBfc2V0dXBSb290Rm9yUHJpbnRpbmc6WUVT
XTsKLSAgICBtX2ZyYW1lLT5wYWludChwLCBJbnRSZWN0KHJlY3QpKTsKKyAgICBtX2ZyYW1lLT5w
YWludChwLCBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKICAgICBbc2VsZiBfc2V0dXBSb290Rm9y
UHJpbnRpbmc6Tk9dOwogfQogCkBAIC0xNTMwLDE5ICsxNTMwLDE1IEBACiAgICAgSW50UmVjdCBz
dGFydENhcmV0UmVjdCA9IFtbcmFuZ2Ugc3RhcnRDb250YWluZXJdIF9ub2RlSW1wbF0tPnJlbmRl
cmVyKCktPmNhcmV0UmVjdChbcmFuZ2Ugc3RhcnRPZmZzZXRdLCBET1dOU1RSRUFNLCAmZXh0cmFX
aWR0aFRvRW5kT2ZMaW5lKTsKICAgICBJbnRSZWN0IGVuZENhcmV0UmVjdCA9IFtbcmFuZ2UgZW5k
Q29udGFpbmVyXSBfbm9kZUltcGxdLT5yZW5kZXJlcigpLT5jYXJldFJlY3QoW3JhbmdlIGVuZE9m
ZnNldF0sIFVQU1RSRUFNKTsKIAotICAgIGlmIChzdGFydENhcmV0UmVjdC55KCkgPT0gZW5kQ2Fy
ZXRSZWN0LnkoKSkgeworICAgIGlmIChzdGFydENhcmV0UmVjdC50b3AoKSA9PSBlbmRDYXJldFJl
Y3QudG9wKCkpIHsKICAgICAgICAgLy8gc3RhcnQgYW5kIGVuZCBhcmUgb24gdGhlIHNhbWUgbGlu
ZQotICAgICAgICByZXR1cm4gSW50UmVjdChNSU4oc3RhcnRDYXJldFJlY3QueCgpLCBlbmRDYXJl
dFJlY3QueCgpKSwgCi0gICAgICAgICAgICAgICAgICAgICBzdGFydENhcmV0UmVjdC55KCksIAot
ICAgICAgICAgICAgICAgICAgICAgYWJzKGVuZENhcmV0UmVjdC54KCkgLSBzdGFydENhcmV0UmVj
dC54KCkpLAotICAgICAgICAgICAgICAgICAgICAgTUFYKHN0YXJ0Q2FyZXRSZWN0LmhlaWdodCgp
LCBlbmRDYXJldFJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgcmV0dXJuIEludFJlY3Qoa01pbihz
dGFydENhcmV0UmVjdC5sZWZ0KCksIGVuZENhcmV0UmVjdC5sZWZ0KCkpLCBzdGFydENhcmV0UmVj
dC50b3AoKSwgCisgICAgICAgICAgICBhYnMoZW5kQ2FyZXRSZWN0LmxlZnQoKSAtIHN0YXJ0Q2Fy
ZXRSZWN0LmxlZnQoKSksIGtNYXgoc3RhcnRDYXJldFJlY3QuaGVpZ2h0KCksIGVuZENhcmV0UmVj
dC5oZWlnaHQoKSkpOwogICAgIH0KIAogICAgIC8vIHN0YXJ0IGFuZCBlbmQgYXJlbid0IG9uIHRo
ZSBzYW1lIGxpbmUsIHNvIGdvIGZyb20gc3RhcnQgdG8gdGhlIGVuZCBvZiBpdHMgbGluZQotICAg
IHJldHVybiBJbnRSZWN0KHN0YXJ0Q2FyZXRSZWN0LngoKSwgCi0gICAgICAgICAgICAgICAgIHN0
YXJ0Q2FyZXRSZWN0LnkoKSwKLSAgICAgICAgICAgICAgICAgc3RhcnRDYXJldFJlY3Qud2lkdGgo
KSArIGV4dHJhV2lkdGhUb0VuZE9mTGluZSwKLSAgICAgICAgICAgICAgICAgc3RhcnRDYXJldFJl
Y3QuaGVpZ2h0KCkpOworICAgIHJldHVybiBJbnRSZWN0KHN0YXJ0Q2FyZXRSZWN0LmxlZnQoKSwg
c3RhcnRDYXJldFJlY3QudG9wKCksCisgICAgICAgIHN0YXJ0Q2FyZXRSZWN0LndpZHRoKCkgKyBl
eHRyYVdpZHRoVG9FbmRPZkxpbmUsIHN0YXJ0Q2FyZXRSZWN0LmhlaWdodCgpKTsKIH0KIAogLSAo
TlNJbWFnZSAqKXNlbGVjdGlvbkltYWdlCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAg
KzI1LDggQEAKICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KIAogI2luY2x1ZGUgPGtj
YW52YXMvUmVuZGVyUGF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc01hdHJpeC5oPgog
CiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgog
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgpA
QCAtMTUxLDE0ICsxNDksMTEgQEAKICAgICAgICAgICAgICAgICAgICAgbV9mcm9tUm90YXRlU3Bl
Y2lhbENhc2UgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBp
ZighbV9mcm9tVHJhbnNmb3JtKQotICAgICAgICAgICAgICAgICAgICBtX2Zyb21UcmFuc2Zvcm0g
PSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAgICAgICAgICAgICAgIGlmICghbV9mcm9tVHJh
bnNmb3JtKQorICAgICAgICAgICAgICAgICAgICBtX2Zyb21UcmFuc2Zvcm0gPSBuZXcgU1ZHVHJh
bnNmb3JtSW1wbDsKIAotICAgICAgICAgICAgICAgIFNWR01hdHJpeEltcGwgKmJ5TWF0cml4ID0g
bV90b1RyYW5zZm9ybS0+bWF0cml4KCk7Ci0gICAgICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAq
ZnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5zZm9ybS0+bWF0cml4KCk7CisgICAgICAgICAgICAgICAg
bV90b1RyYW5zZm9ybS0+c2V0TWF0cml4KG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpICogbV9mcm9t
VHJhbnNmb3JtLT5tYXRyaXgoKSk7CiAKLSAgICAgICAgICAgICAgICBieU1hdHJpeC0+bXVsdGlw
bHkoZnJvbU1hdHJpeCk7Ci0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNhc2UgVkFMVUVTX0FOSU1BVElPTjoKQEAgLTE4Miw3ICsxNzcsNyBAQAog
ICAgIGlmKHRpbWVQZXJjZW50YWdlID49IDEuMCkKICAgICAgICAgdGltZVBlcmNlbnRhZ2UgPSAx
LjA7CiAgICAgCi0gICAgUVdNYXRyaXggcVRvTWF0cml4LCBxRnJvbU1hdHJpeDsKKyAgICBBZmZp
bmVUcmFuc2Zvcm0gcVRvTWF0cml4LCBxRnJvbU1hdHJpeDsKICAgICBkb3VibGUgdXNlVGltZVBl
cmNlbnRhZ2UgPSB0aW1lUGVyY2VudGFnZTsKIAogICAgIGlmKG1fdmFsdWVzKQpAQCAtMjA0LDgg
KzE5OSw4IEBACiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseSA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV9mcm9tVHJhbnNmb3JtKQogICAgICAgICAgICAg
ICAgIHsgICAgCi0gICAgICAgICAgICAgICAgICAgIHFUb01hdHJpeCA9IG1fdG9UcmFuc2Zvcm0t
Pm1hdHJpeCgpLT5xbWF0cml4KCk7Ci0gICAgICAgICAgICAgICAgICAgIHFGcm9tTWF0cml4ID0g
bV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKS0+cW1hdHJpeCgpOworICAgICAgICAgICAgICAgICAg
ICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3JtLT5tYXRyaXgoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcUZyb21NYXRyaXggPSBtX2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgpOwogICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgYXBwbHkgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9IDEuMDsKQEAgLTIyNywzOCArMjIyLDMzIEBACiAg
ICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9IGNhbGN1bGF0ZVJlbGF0aXZlVGltZVBlcmNl
bnRhZ2UodGltZVBlcmNlbnRhZ2UsIG1fY3VycmVudEl0ZW0pOwogICAgIH0KIAotICAgIGlmKG1f
dG9UcmFuc2Zvcm0gJiYgbV90b1RyYW5zZm9ybS0+bWF0cml4KCkgJiYgcVRvTWF0cml4LmlzSWRl
bnRpdHkoKSkKLSAgICAgICAgcVRvTWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCktPnFt
YXRyaXgoKTsKKyAgICBpZiAobV90b1RyYW5zZm9ybSAmJiBxVG9NYXRyaXguaXNJZGVudGl0eSgp
KQorICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3JtLT5tYXRyaXgoKTsKIAotICAgIGlm
KG1fZnJvbVRyYW5zZm9ybSAmJiBtX2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgpICYmIHFGcm9tTWF0
cml4LmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcUZyb21NYXRyaXggPSBtX2Zyb21UcmFuc2Zvcm0t
Pm1hdHJpeCgpLT5xbWF0cml4KCk7CisgICAgaWYgKG1fZnJvbVRyYW5zZm9ybSAmJiBxRnJvbU1h
dHJpeC5pc0lkZW50aXR5KCkpCisgICAgICAgIHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3Jt
LT5tYXRyaXgoKTsKIAotICAgIGlmKCFtX3RyYW5zZm9ybU1hdHJpeCkKLSAgICAgICAgbV90cmFu
c2Zvcm1NYXRyaXggPSBuZXcgU1ZHTWF0cml4SW1wbCgpOwotICAgIGVsc2UKLSAgICB7Ci0gICAg
ICAgIG1fdHJhbnNmb3JtTWF0cml4LT5yZXNldCgpOworICAgIG1fdHJhbnNmb3JtTWF0cml4LnJl
c2V0KCk7CiAKLSAgICAgICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdGlvbnMoKSAhPSAw
LjAgJiYgbV9sYXN0TWF0cml4KQotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgtPm11bHRp
cGx5KG1fbGFzdE1hdHJpeC5nZXQoKSk7Ci0gICAgfQorICAgIGlmIChpc0FjY3VtdWxhdGVkKCkg
JiYgcmVwZXRpdGlvbnMoKSAhPSAwLjApCisgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4ICo9IG1f
bGFzdE1hdHJpeDsKICAgICAKICAgICBzd2l0Y2gobV90eXBlKQogICAgIHsKICAgICAgICAgY2Fz
ZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURToKICAgICAgICAgewotICAgICAgICAgICAgZG91Ymxl
IGR4ID0gKChxVG9NYXRyaXguZHgoKSAtIHFGcm9tTWF0cml4LmR4KCkpICogdXNlVGltZVBlcmNl
bnRhZ2UpICsgcUZyb21NYXRyaXguZHgoKTsKLSAgICAgICAgICAgIGRvdWJsZSBkeSA9ICgocVRv
TWF0cml4LmR5KCkgLSBxRnJvbU1hdHJpeC5keSgpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFG
cm9tTWF0cml4LmR5KCk7CisgICAgICAgICAgICBkb3VibGUgZHggPSAoKHFUb01hdHJpeC5lKCkg
LSBxRnJvbU1hdHJpeC5lKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXguZSgp
OworICAgICAgICAgICAgZG91YmxlIGR5ID0gKChxVG9NYXRyaXguZigpIC0gcUZyb21NYXRyaXgu
ZigpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmYoKTsKIAotICAgICAgICAg
ICAgbV90cmFuc2Zvcm1NYXRyaXgtPnRyYW5zbGF0ZShkeCwgZHkpOworICAgICAgICAgICAgbV90
cmFuc2Zvcm1NYXRyaXgudHJhbnNsYXRlKGR4LCBkeSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6CiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGRvdWJsZSBzeCA9ICgocVRvTWF0cml4Lm0xMSgpIC0gcUZyb21NYXRyaXgubTEx
KCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXgubTExKCk7Ci0gICAgICAgICAg
ICBkb3VibGUgc3kgPSAoKHFUb01hdHJpeC5tMjIoKSAtIHFGcm9tTWF0cml4Lm0yMigpKSAqIHVz
ZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4Lm0yMigpOworICAgICAgICAgICAgZG91Ymxl
IHN4ID0gKChxVG9NYXRyaXguYSgpIC0gcUZyb21NYXRyaXguYSgpKSAqIHVzZVRpbWVQZXJjZW50
YWdlKSArIHFGcm9tTWF0cml4LmEoKTsKKyAgICAgICAgICAgIGRvdWJsZSBzeSA9ICgocVRvTWF0
cml4LmQoKSAtIHFGcm9tTWF0cml4LmQoKSkgKiB1c2VUaW1lUGVyY2VudGFnZSkgKyBxRnJvbU1h
dHJpeC5kKCk7CiAKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5zY2FsZU5vblVuaWZv
cm0oc3gsIHN5KTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnNjYWxlKHN4LCBzeSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZP
Uk1fUk9UQVRFOgpAQCAtMjg1LDI1ICsyNzUsMjEgQEAKICAgICAgICAgICAgIGRvdWJsZSBjeCA9
ICh0b0N4IC0gZnJvbUN4KSAqIHVzZVRpbWVQZXJjZW50YWdlICsgZnJvbUN4OwogICAgICAgICAg
ICAgZG91YmxlIGN5ID0gKHRvQ3kgLSBmcm9tQ3kpICogdXNlVGltZVBlcmNlbnRhZ2UgKyBmcm9t
Q3k7CiAKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT50cmFuc2xhdGUoY3gsIGN5KTsK
LSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5yb3RhdGUoYW5nbGUpOwotICAgICAgICAg
ICAgbV90cmFuc2Zvcm1NYXRyaXgtPnRyYW5zbGF0ZSgtY3gsIC1jeSk7CisgICAgICAgICAgICBt
X3RyYW5zZm9ybU1hdHJpeC50cmFuc2xhdGUoY3gsIGN5KTsKKyAgICAgICAgICAgIG1fdHJhbnNm
b3JtTWF0cml4LnJvdGF0ZShyYWRpYW5zKGFuZ2xlKSk7CisgICAgICAgICAgICBtX3RyYW5zZm9y
bU1hdHJpeC50cmFuc2xhdGUoLWN4LCAtY3kpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdYOgogICAgICAgICB7Ci0gICAgICAg
ICAgICBkb3VibGUgc3ggPSAoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuKHFUb01hdHJpeC5tMjEo
KSkgLSBhdGFuKHFGcm9tTWF0cml4Lm0yMSgpKSkgKgotICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZVRpbWVQZXJjZW50YWdlKSArIFNWR0FuZ2xlSW1wbDo6dG9kZWcoYXRhbihxRnJvbU1hdHJp
eC5tMjEoKSkpOwotCi0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+c2tld1goc3gpOwor
ICAgICAgICAgICAgZG91YmxlIHN4ID0gKGF0YW4ocVRvTWF0cml4LmMoKSkgLSBhdGFuKHFGcm9t
TWF0cml4LmMoKSkpICogdXNlVGltZVBlcmNlbnRhZ2UgKyBhdGFuKHFGcm9tTWF0cml4LmMoKSk7
CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC5za2V3WChzeCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1k6CiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBzeSA9IChTVkdBbmdsZUltcGw6OnRvZGVnKGF0YW4o
cVRvTWF0cml4Lm0xMigpKSAtIGF0YW4ocUZyb21NYXRyaXgubTEyKCkpKSAqCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgdXNlVGltZVBlcmNlbnRhZ2UpICsgU1ZHQW5nbGVJbXBsOjp0b2RlZyhh
dGFuKHFGcm9tTWF0cml4Lm0xMigpKSk7Ci0KLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4
LT5za2V3WShzeSk7CisgICAgICAgICAgICBkb3VibGUgc3kgPSAoYXRhbihxVG9NYXRyaXguYigp
KSAtIGF0YW4ocUZyb21NYXRyaXguYigpKSkgKiB1c2VUaW1lUGVyY2VudGFnZSArIGF0YW4ocUZy
b21NYXRyaXguYigpKTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnNrZXdZKHN5KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zMTMs
MTQgKzI5OSwxMCBAQAogICAgIC8vIEVuZCBjb25kaXRpb24uCiAgICAgaWYodGltZVBlcmNlbnRh
Z2UgPT0gMS4wKQogICAgIHsKLSAgICAgICAgaWYoKG1fcmVwZWF0Q291bnQgPiAwICYmIG1fcmVw
ZWF0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0luZGVmaW5pdGUobV9yZXBlYXRDb3Vu
dCkpCisgICAgICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGV0aXRpb25zIDwgbV9y
ZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENvdW50KSkKICAgICAgICAg
ewotICAgICAgICAgICAgbV9sYXN0TWF0cml4ID0gbmV3IFNWR01hdHJpeEltcGwoKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYobV90cmFuc2Zvcm1NYXRyaXgpCi0gICAgICAgICAgICAg
ICAgbV9sYXN0TWF0cml4LT5jb3B5KG1fdHJhbnNmb3JtTWF0cml4LmdldCgpKTsKLQotICAgICAg
ICAgICAgbV9yZXBlYXRpb25zKys7CisgICAgICAgICAgICBtX2xhc3RNYXRyaXggPSBtX3RyYW5z
Zm9ybU1hdHJpeDsKKyAgICAgICAgICAgIG1fcmVwZXRpdGlvbnMrKzsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0zMzUsMTQgKzMxNyw4IEBACiAgICAgICAgIG1fZnJvbVRy
YW5zZm9ybSA9IDA7CiAgICAgICAgIG1faW5pdGlhbFRyYW5zZm9ybSA9IDA7CiAKLSAgICAgICAg
aWYoIWlzRnJvemVuKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFNWR01hdHJpeEltcGwgKmlu
aXRpYWwgPSBpbml0aWFsTWF0cml4KCk7Ci0gICAgICAgICAgICBpZihpbml0aWFsKQotICAgICAg
ICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4ID0gaW5pdGlhbDsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeCA9IG5ldyBTVkdNYXRyaXhJbXBsKCk7
Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0Zyb3plbigpKQorICAgICAgICAgICAgbV90cmFu
c2Zvcm1NYXRyaXggPSBpbml0aWFsTWF0cml4KCk7CiAgICAgfQogfQogCkBAIC00MDcsNyArMzgz
LDcgQEAKICAgICAgICAgICAgICAgICBhbmdsZSA9IHBhcnNlLnRvRG91YmxlKCk7CiAKICAgICAg
ICAgICAgIC8vIE9rIG5vdyBoZXJlJ3MgYSBoYWNrIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gY2Fs
Y3VsYXRlIGN4L2N5IHZhbHVlcywgaWYgYW5nbGUgPSAwIAotICAgICAgICAgICAgLy8gb3IgYW5n
bGU9MzYwIC0+IGZvciBhbmdsZT0wIG91ciBtYXRyaXggaXMgbTExOiAxIG0xMjogMCBtMjE6IDAg
bTIyOiAxIGR4OiAwIGR5OiAwCisgICAgICAgICAgICAvLyBvciBhbmdsZT0zNjAgLT4gZm9yIGFu
Z2xlPTAgb3VyIG1hdHJpeCBpcyBhOiAxIGI6IDAgYzogMCBkOiAxIGR4OiAwIGR5OiAwCiAgICAg
ICAgICAgICAvLyBBcyB5b3UgY2FuIHNlZSB0aGVyZSBpcyBubyB3YXkgdG8gcmV0cmlldmUgdGhl
IGN4L2N5IHZhbHVlcyBmb3IgdGhlc2UgYW5nbGVzLgogICAgICAgICAgICAgLy8gLT4gc2V0ICdt
X3JvdGF0ZVNwZWNpYWxDYXNlJyB0byB0cnVlLCBhbmQgc2F2ZSBhbmdsZSA9IDEvMzU5IC0+IHRo
aXMgd2F5IHdlIGNhbiBjYWxjdWxhdGUKICAgICAgICAgICAgIC8vICAgIHRoZSBjeC9jeSB2YWx1
ZXMsIHdoaWxlIGtlZXBpbmcgdGhpcyB1YmVyLW9wdGltaXplZCB3YXkgb2YgaGFuZGxpbmcgPGFu
aW1hdGVUcmFuc2Zvcm0+IQpAQCAtNDQ2LDEzICs0MjIsMTIgQEAKICAgICByZXR1cm4gcGFyc2Vk
VHJhbnNmb3JtOwogfQogCi12b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6Y2Fs
Y3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFXTWF0cml4ICZtYXRyaXgsIGRvdWJsZSAm
YW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNvbnN0Cit2b2lkIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50SW1wbDo6Y2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgbWF0cml4LCBkb3VibGUmIGFuZ2xlLCBkb3VibGUmIGN4LCBkb3VibGUmIGN5
KSBjb25zdAogewotICAgIGRvdWJsZSBjb3NhID0gbWF0cml4Lm0xMSgpOwotICAgIGRvdWJsZSBz
aW5hID0gLW1hdHJpeC5tMjEoKTsKKyAgICBkb3VibGUgY29zYSA9IG1hdHJpeC5hKCk7CisgICAg
ZG91YmxlIHNpbmEgPSAtbWF0cml4LmMoKTsKIAotICAgIGlmKGNvc2EgIT0gMS4wKQotICAgIHsK
KyAgICBpZiAoY29zYSAhPSAxLjApIHsKICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBhbmdsZSB2
aWEgbWFnaWMgOykKICAgICAgICAgZG91YmxlIHRlbXAgPSBTVkdBbmdsZUltcGw6OnRvZGVnKGFz
aW4oc2luYSkpOwogICAgICAgICBhbmdsZSA9IFNWR0FuZ2xlSW1wbDo6dG9kZWcoYWNvcyhjb3Nh
KSk7CkBAIC00NjEsOCArNDM2LDggQEAKICAgICAgICAgCiAgICAgICAgIGRvdWJsZSByZXMgPSAo
MSAtIGNvc2EpICsgKChzaW5hICogc2luYSkgLyAoMSAtIGNvc2EpKTsKICAgICAgICAgCi0gICAg
ICAgIGN4ID0gKG1hdHJpeC5keCgpIC0gKChzaW5hICogbWF0cml4LmR5KCkpIC8gKDEgLSBjb3Nh
KSkpIC8gcmVzOwotICAgICAgICBjeSA9IChtYXRyaXguZHkoKSArICgoc2luYSAqIG1hdHJpeC5k
eCgpKSAvICgxIC0gY29zYSkpKSAvIHJlczsKKyAgICAgICAgY3ggPSAobWF0cml4LmUoKSAtICgo
c2luYSAqIG1hdHJpeC5mKCkpIC8gKDEgLSBjb3NhKSkpIC8gcmVzOworICAgICAgICBjeSA9ICht
YXRyaXguZigpICsgKChzaW5hICogbWF0cml4LmUoKSkgLyAoMSAtIGNvc2EpKSkgLyByZXM7CiAK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MiwzMCArNDQ3LDIyIEBACiAgICAgYW5nbGUg
PSAwLjA7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1w
bDo6aW5pdGlhbE1hdHJpeCgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnRJbXBsOjppbml0aWFsTWF0cml4KCkgY29uc3QKIHsKICAgICBpZiAoIXRhcmdl
dEVsZW1lbnQoKS0+aXNTdHlsZWRUcmFuc2Zvcm1hYmxlKCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAgICAgU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnRJbXBsICp0cmFuc2Zvcm0gPSBzdGF0aWNfY2FzdDxTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGwgKj4odGFyZ2V0RWxlbWVudCgpKTsKICAgICBTVkdUcmFuc2Zvcm1M
aXN0SW1wbCAqdHJhbnNmb3JtTGlzdCA9ICh0cmFuc2Zvcm0gPyB0cmFuc2Zvcm0tPnRyYW5zZm9y
bSgpLT5iYXNlVmFsKCkgOiAwKTsKLSAgICBpZighdHJhbnNmb3JtTGlzdCkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgaWYgKCF0cmFuc2Zvcm1MaXN0KQorICAgICAgICByZXR1cm4gQWZmaW5lVHJh
bnNmb3JtKCk7CiAgICAgCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IHJlc3VsdCA9IHRy
YW5zZm9ybUxpc3QtPmNvbmNhdGVuYXRlKCk7Ci0gICAgaWYoIXJlc3VsdCkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0o
KTsKIAotICAgIFNWR01hdHJpeEltcGwgKnJldCA9IHJlc3VsdC0+bWF0cml4KCk7Ci0gICAgcmV0
LT5yZWYoKTsKLQotICAgIHJldHVybiByZXQ7CisgICAgcmV0dXJuIHJlc3VsdC0+bWF0cml4KCk7
CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6dHJh
bnNmb3JtTWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFuc2Zvcm1NYXRyaXguZ2V0
KCk7Ci19Ci0KIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAx
MjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjIsMjUgKzIyLDI1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
ZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuaCIK
KwogI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgog
I2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAi
U1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKICNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1w
bC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKIAog
I2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc01h
dHJpeC5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5oPgogI2luY2x1ZGUg
PGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oPgorI2luY2x1ZGUgIkFmZmluZVRy
YW5zZm9ybS5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtMTExLDkgKzExMSw5IEBA
CiAgICAgZmxvYXQgX3gyID0geDIoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBfeTIgPSB5MigpLT5i
YXNlVmFsKCktPnZhbHVlKCk7CiAKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFk
aWVudCAqZ3JhZCA9IHN0YXRpY19jYXN0PEtSZW5kZXJpbmdQYWludFNlcnZlckxpbmVhckdyYWRp
ZW50ICo+KF9ncmFkKTsKLSAgICBLQ2FudmFzTWF0cml4IG1hdDsKLSAgICBpZihncmFkaWVudFRy
YW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9mSXRlbXMoKSA+IDApCi0gICAgICAgIG1hdCA9
IEtDYW52YXNNYXRyaXgoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0
ZSgpLT5tYXRyaXgoKS0+cW1hdHJpeCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0OworICAg
IGlmIChncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9mSXRlbXMoKSA+IDAp
CisgICAgICAgIG1hdCA9IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRh
dGUoKS0+bWF0cml4KCk7CiAKICAgICBRU3RyaW5nIHJlZiA9IEtET006OkRPTVN0cmluZyhocmVm
KCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQYWludFNlcnZlciAqcHNl
cnZlciA9IGdldFBhaW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCByZWYubWlkKDEpKTsKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2
Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNyArMjYsMTUg
QEAKIAogI2luY2x1ZGUgIlNWR0xvY2F0YWJsZUltcGwuaCIKIAotY2xhc3MgUU1hdHJpeDsKLQot
bmFtZXNwYWNlIEtET00gewotICAgIGNsYXNzIE5vZGVJbXBsOworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICBjbGFzcyBBdG9taWNTdHJpbmc7CiAg
ICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLX07CisgICAgY2xhc3MgTm9kZUltcGw7Cit9CiAKIG5h
bWVzcGFjZSBLU1ZHCiB7Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdU
cmFuc2Zvcm1MaXN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBs
OwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybWFibGVJbXBsIDogcHVibGljIFNWR0xvY2F0YWJsZUlt
cGwKQEAgLTQ3LDcgKzQ1LDcgQEAKIAogICAgICAgICAvLyAnU1ZHVHJhbnNmb3JtYWJsZScgZnVu
Y3Rpb25zCiAgICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCAqdHJh
bnNmb3JtKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2Fs
TWF0cml4KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2Nh
bE1hdHJpeCgpIGNvbnN0ID0gMDsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVMb2NhbFRyYW5zZm9ybShTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqbG9jYWxUcmFuc2Zvcm1zKSA9
IDA7CiAgICAgICAgIApJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuY3BwCShyZXZpc2lv
biAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDcgKzM5LDYgQEAKIAogI2luY2x1ZGUgImtzdmcuaCIKICNpbmNsdWRlICJL
U1ZHU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
UmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnRJbXBsLmgiCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmNwcAko
cmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5o
IgogCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2Fu
dmFzTWF0cml4Lmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+CiAjaW5j
bHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
c0ltYWdlLmg+CkBAIC0zNiw3ICszNSw2IEBACiAjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4
SW1wbC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJh
bnNmb3JtYWJsZUltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgpAQCAt
NDcsNiArNDUsNyBAQAogI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogCiB1
c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtMTY2LDcgKzE2NSw3IEBACiAgICAgbm90aWZ5QXR0
cmlidXRlQ2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpmaWxsQXR0
cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50SW1wbCAq
dGFyZ2V0LCBLQ2FudmFzTWF0cml4ICZwYXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdAordm9p
ZCBTVkdQYXR0ZXJuRWxlbWVudEltcGw6OmZpbGxBdHRyaWJ1dGVzRnJvbVJlZmVyZW5jZVBhdHRl
cm4oY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQsIEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3QKIHsKICAgICBRU3RyaW5nIHJlZiA9IEtET006
OkRPTVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQ
YWludFNlcnZlciAqcmVmU2VydmVyID0gZ2V0UGFpbnRTZXJ2ZXJCeUlkKGdldERvY3VtZW50KCks
IHJlZi5taWQoMSkpOwpAQCAtMTk4LDcgKzE5Nyw3IEBACiAgICAgICAgIHBhdHRlcm5UcmFuc2Zv
cm1NYXRyaXggPSByZWZQYXR0ZXJuLT5wYXR0ZXJuVHJhbnNmb3JtKCk7CiB9CiAKLXZvaWQgU1ZH
UGF0dGVybkVsZW1lbnRJbXBsOjpkcmF3UGF0dGVybkNvbnRlbnRJbnRvVGlsZShjb25zdCBTVkdQ
YXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgY29uc3QgSW50U2l6ZSAmbmV3U2l6ZSwgS0NhbnZh
c01hdHJpeCBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdAordm9pZCBTVkdQYXR0ZXJuRWxl
bWVudEltcGw6OmRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKGNvbnN0IFNWR1BhdHRlcm5FbGVt
ZW50SW1wbCAqdGFyZ2V0LCBjb25zdCBJbnRTaXplICZuZXdTaXplLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNvbnN0CiB7CiAgICAgS1JlbmRlcmluZ0Rl
dmljZSAqZGV2aWNlID0gUVBhaW50ZXI6OnJlbmRlcmluZ0RldmljZSgpOwogICAgIApAQCAtMjU4
LDE0ICsyNTcsMTQgQEAKICAgICAgICAgewogICAgICAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwg
KnN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdTVkdFbGVtZW50SW1wbCAqPih2aWV3cG9ydEVs
ZW1lbnQoKSk7CiAKLSAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBzdmdDVE0gPSBz
dmdFbGVtZW50LT5nZXRDVE0oKTsKLSAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBj
dG0gPSBnZXRDVE0oKTsKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBzdmdDVE0gPSBzdmdF
bGVtZW50LT5nZXRDVE0oKTsKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG0gPSBnZXRD
VE0oKTsKIAotICAgICAgICAgICAgS0NhbnZhc01hdHJpeCBuZXdNYXRyaXgoc3ZnQ1RNLT5xbWF0
cml4KCkpOworICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5ld01hdHJpeChzdmdDVE0tPm1h
dHJpeCgpKTsKICAgICAgICAgICAgIG5ld01hdHJpeC5tdWx0aXBseShzYXZlZE1hdHJpeCk7CiAg
ICAgICAgICAgICBuZXdNYXRyaXguc2NhbGUoMS4wIC8gY3RtLT5hKCksIDEuMCAvIGN0bS0+ZCgp
KTsKIAotICAgICAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0obmV3TWF0cml4LnFtYXRy
aXgoKSk7CisgICAgICAgICAgICBpdGVtLT5zZXRMb2NhbFRyYW5zZm9ybShuZXdNYXRyaXgubWF0
cml4KCkpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMjc2LDcgKzI3NSw3IEBACiAgICAgICAg
IGlmKHNhdmVkQ29udGV4dCkKICAgICAgICAgICAgIGUtPnB1c2hBdHRyaWJ1dGVDb250ZXh0KHNh
dmVkQ29udGV4dCk7CiAKLSAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0oc2F2ZWRNYXRy
aXgucW1hdHJpeCgpKTsKKyAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0oc2F2ZWRNYXRy
aXgubWF0cml4KCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0zMzksOSArMzM4LDkgQEAKICAgICB1
bnNpZ25lZCBzaG9ydCBzYXZlZFBhdHRlcm5Vbml0cyA9IHBhdHRlcm5Vbml0cygpLT5iYXNlVmFs
KCk7CiAgICAgdW5zaWduZWQgc2hvcnQgc2F2ZWRQYXR0ZXJuQ29udGVudFVuaXRzID0gcGF0dGVy
bkNvbnRlbnRVbml0cygpLT5iYXNlVmFsKCk7CiAKLSAgICBLQ2FudmFzTWF0cml4IHBhdHRlcm5U
cmFuc2Zvcm1NYXRyaXg7Ci0gICAgaWYocGF0dGVyblRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51
bWJlck9mSXRlbXMoKSA+IDApCi0gICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXggPSBLQ2Fu
dmFzTWF0cml4KHBhdHRlcm5UcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgpLT5t
YXRyaXgoKS0+cW1hdHJpeCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9y
bU1hdHJpeDsKKyAgICBpZiAocGF0dGVyblRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9m
SXRlbXMoKSA+IDApCisgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXggPSBwYXR0ZXJuVHJh
bnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBmaWxs
QXR0cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKHRhcmdldCwgcGF0dGVyblRyYW5zZm9ybU1h
dHJpeCk7CiAgICAgCkBAIC0zNzIsMTggKzM3MSw5IEBACiAgICAgcmV0dXJuIG1fcGFpbnRTZXJ2
ZXI7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1BhdHRlcm5FbGVtZW50SW1wbDo6Z2V0Q1RNKCkg
Y29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdQYXR0ZXJuRWxlbWVudEltcGw6OmdldENUTSgpIGNv
bnN0CiB7Ci0gICAgU1ZHTWF0cml4SW1wbCAqbWF0ID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0
ZVNWR01hdHJpeCgpOwotICAgIGlmKG1hdCkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxTVkdNYXRy
aXhJbXBsPiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFs
KCktPnZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwotCi0gICAgICAgIG1h
dC0+bXVsdGlwbHkodmlld0JveC5nZXQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1hdDsKKyAg
ICByZXR1cm4gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVl
KCksIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogfQogCiAvLyB2aW06dHM9NDpub2V0
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
c3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3Zn
Mi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIlNWR1RTcGFuRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZExlbmd0aExpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
SW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgogI2luY2x1ZGUgInJl
bmRlcl9zdHlsZS5oIgpAQCAtNTMsMTEgKzUyLDYgQEAKICAgICByZXR1cm4gbGF6eV9jcmVhdGU8
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbD4obV90cmFuc2Zvcm0sIHRoaXMpOwogfQogCi1T
VkdNYXRyaXhJbXBsICpTVkdUZXh0RWxlbWVudEltcGw6OmxvY2FsTWF0cml4KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHTWF0cml4SW1wbD4obV9sb2NhbE1hdHJpeCk7Ci19
Ci0KIHZvaWQgU1ZHVGV4dEVsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpN
YXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6OnRyYW5zZm9ybUF0dHIpIHsKQEAgLTc3LDcgKzcxLDcgQEAKICAgICBpZihsb2NhbFRy
YW5zZm9ybSkgewogICAgICAgICBtX2xvY2FsTWF0cml4ID0gbG9jYWxUcmFuc2Zvcm0tPm1hdHJp
eCgpOwogICAgICAgICBpZiAocmVuZGVyZXIoKSkgewotICAgICAgICAgICAgcmVuZGVyZXIoKS0+
c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeC0+cW1hdHJpeCgpKTsKKyAgICAgICAgICAg
IHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgpOwogICAgICAgICAg
ICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CkBA
IC04Nyw4ICs4MSw4IEBACiB7CiAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OmF0dGFjaCgpOwog
Ci0gICAgaWYgKHJlbmRlcmVyKCkgJiYgbV9sb2NhbE1hdHJpeCkKLSAgICAgICAgcmVuZGVyZXIo
KS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeC0+cW1hdHJpeCgpKTsKKyAgICBpZiAo
cmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2Nh
bE1hdHJpeCk7CiB9CiAKIFNWR0VsZW1lbnRJbXBsICpTVkdUZXh0RWxlbWVudEltcGw6Om5lYXJl
c3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdApAQCAtMTA2LDEzICsxMDAsMTggQEAKICAgICByZXR1
cm4gU1ZHVHJhbnNmb3JtYWJsZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeElt
cGwgKlNWR1RleHRFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKK0FmZmluZVRyYW5z
Zm9ybSBTVkdUZXh0RWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldFNjcmVlbkNUTSh0aGlzKTsKIH0KIAotU1ZHTWF0cml4
SW1wbCAqU1ZHVGV4dEVsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3Jt
IFNWR1RleHRFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBjb25zdAogeworICAgIHJldHVybiBt
X2xvY2FsTWF0cml4OworfQorCitBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnRJbXBsOjpn
ZXRDVE0oKSBjb25zdAorewogICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5D
VE0odGhpcyk7CiB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdNYXRyaXhJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5jcHAJKHJldmlzaW9uIDEyNDExKQorKysg
a3N2ZzIvc3ZnL1NWR01hdHJpeEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNzcgKzIy
LDg5IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUg
PG1hdGguaD4KKyNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAKLSNpbmNsdWRlICJrc3ZnLmgi
Ci0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHTWF0cml4SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUg
ImtzdmcuaCIKKyNpbmNsdWRlIDxtYXRoLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdNYXRyaXhJbXBsOjpTVkdNYXRyaXhJbXBsKCkgOiBTaGFyZWQ8U1ZHTWF0cml4SW1wbD4oKQor
QWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OmludmVyc2UoKSBjb25zdAogeworICAgIEFm
ZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuaW52ZXJ0KCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU1ZHTWF0cml4SW1wbDo6U1ZHTWF0cml4SW1wbChRTWF0
cml4IG1hdCkgOiBTaGFyZWQ8U1ZHTWF0cml4SW1wbD4oKQorQWZmaW5lVHJhbnNmb3JtIFNWR01h
dHJpeEltcGw6Om11bHRpcGx5KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgc2Vjb25kTWF0cml4KSBj
b25zdAogewotICAgIG1fbWF0ID0gbWF0OworICAgIHJldHVybiBtX21hdHJpeCAqIHNlY29uZE1h
dHJpeDsKIH0KIAotU1ZHTWF0cml4SW1wbDo6U1ZHTWF0cml4SW1wbChkb3VibGUgYSwgZG91Ymxl
IGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKSA6IFNoYXJlZDxTVkdN
YXRyaXhJbXBsPigpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6dHJhbnNsYXRlKGRv
dWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBtX21hdC5zZXRNYXRyaXgoYSwgYiwgYywg
ZCwgZSwgZik7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJl
c3VsdC50cmFuc2xhdGUoeCwgeSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU1ZHTWF0cml4
SW1wbDo6flNWR01hdHJpeEltcGwoKQorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OnNj
YWxlKGRvdWJsZSBzY2FsZUZhY3RvcikgY29uc3QKIHsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVz
dWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rv
cik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRBKGRv
dWJsZSBhKQorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OnNjYWxlTm9uVW5pZm9ybShk
b3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKSBjb25zdAogewotICAgIG1f
bWF0LnNldE1hdHJpeChhLCBtX21hdC5tMTIoKSwgbV9tYXQubTIxKCksIG1fbWF0Lm0yMigpLCBt
X21hdC5keCgpLCBtX21hdC5keSgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9t
YXRyaXg7CisgICAgcmVzdWx0LnNjYWxlKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKKyAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1kb3VibGUgU1ZHTWF0cml4SW1wbDo6YSgpIGNvbnN0CitB
ZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6cm90YXRlKGRvdWJsZSBhbmdsZSkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9tYXQubTExKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9
IG1fbWF0cml4OworICAgIHJlc3VsdC5yb3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0Qihkb3VibGUgYikKK0FmZmlu
ZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3Vi
bGUgeSkgY29uc3QKIHsKLSAgICBtX21hdC5zZXRNYXRyaXgobV9tYXQubTExKCksIGIsIG1fbWF0
Lm0yMSgpLCBtX21hdC5tMjIoKSwgbV9tYXQuZHgoKSwgbV9tYXQuZHkoKSk7CisgICAgQWZmaW5l
VHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5yb3RhdGUoYXRhbjIoeSwg
eCkpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJsZSBTVkdNYXRyaXhJbXBsOjpiKCkg
Y29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpmbGlwWCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fbWF0Lm0xMigpOworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21h
dHJpeDsKKyAgICByZXN1bHQuc2NhbGUoLTEsIDEpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0Qyhkb3VibGUgYykKK0FmZmluZVRyYW5zZm9ybSBTVkdN
YXRyaXhJbXBsOjpmbGlwWSgpIGNvbnN0CiB7Ci0gICAgbV9tYXQuc2V0TWF0cml4KG1fbWF0Lm0x
MSgpLCBtX21hdC5tMTIoKSwgYywgbV9tYXQubTIyKCksIG1fbWF0LmR4KCksIG1fbWF0LmR5KCkp
OworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2Nh
bGUoMSwgLTEpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJsZSBTVkdNYXRyaXhJbXBs
OjpjKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpza2V3WChkb3VibGUg
YW5nbGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWF0Lm0yMSgpOworICAgIEFmZmluZVRyYW5z
Zm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2tld1gocmFkaWFucyhhbmdsZSkp
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0RChkb3Vi
bGUgZCkKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpza2V3WShkb3VibGUgYW5nbGUp
IGNvbnN0CiB7Ci0gICAgbV9tYXQuc2V0TWF0cml4KG1fbWF0Lm0xMSgpLCBtX21hdC5tMTIoKSwg
bV9tYXQubTIxKCksIGQsIG1fbWF0LmR4KCksIG1fbWF0LmR5KCkpOworICAgIEFmZmluZVRyYW5z
Zm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2tld1kocmFkaWFucyhhbmdsZSkp
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJsZSBTVkdNYXRyaXhJbXBsOjpkKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9tYXQubTIyKCk7Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6
c2V0RShkb3VibGUgZSkKLXsKLSAgICBtX21hdC5zZXRNYXRyaXgobV9tYXQubTExKCksIG1fbWF0
Lm0xMigpLCBtX21hdC5tMjEoKSwgbV9tYXQubTIyKCksIGUsIG1fbWF0LmR5KCkpOwotfQotCi1k
b3VibGUgU1ZHTWF0cml4SW1wbDo6ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0LmR4KCk7
Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0Rihkb3VibGUgZikKLXsKLSAgICBtX21hdC5z
ZXRNYXRyaXgobV9tYXQubTExKCksIG1fbWF0Lm0xMigpLCBtX21hdC5tMjEoKSwgbV9tYXQubTIy
KCksIG1fbWF0LmR4KCksIGYpOwotfQotCi1kb3VibGUgU1ZHTWF0cml4SW1wbDo6ZigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fbWF0LmR5KCk7Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6Y29w
eShjb25zdCBTVkdNYXRyaXhJbXBsICpvdGhlcikKLXsKLSAgICBtX21hdC5zZXRNYXRyaXgob3Ro
ZXItPm1fbWF0Lm0xMSgpLCBvdGhlci0+bV9tYXQubTEyKCksIG90aGVyLT5tX21hdC5tMjEoKSwg
b3RoZXItPm1fbWF0Lm0yMigpLCBvdGhlci0+bV9tYXQuZHgoKSwgb3RoZXItPm1fbWF0LmR5KCkp
OwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0TXVsdGlwbHkoY29uc3Qg
U1ZHTWF0cml4SW1wbCAqc2Vjb25kTWF0cml4KQotewotICAgIFFNYXRyaXggdGVtcChzZWNvbmRN
YXRyaXgtPmEoKSwgc2Vjb25kTWF0cml4LT5iKCksIHNlY29uZE1hdHJpeC0+YygpLCBzZWNvbmRN
YXRyaXgtPmQoKSwgc2Vjb25kTWF0cml4LT5lKCksIHNlY29uZE1hdHJpeC0+ZigpKTsKLSAgICBt
X21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdN
YXRyaXhJbXBsOjppbnZlcnNlKCkKLXsKLSAgICBtX21hdCA9IG1fbWF0LmludmVydCgpOwotICAg
IHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0VHJh
bnNsYXRlKGRvdWJsZSB4LCAgZG91YmxlIHkpCi17Ci0gICAgLy8gQ291bGQgb3B0aW1pc2UgdGhl
c2UuCi0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAudHJhbnNsYXRlKHgsIHkpOwotICAgIG1f
bWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01h
dHJpeEltcGw6OnBvc3RTY2FsZShkb3VibGUgc2NhbGVGYWN0b3IpCi17Ci0gICAgUU1hdHJpeCB0
ZW1wOwotICAgIHRlbXAuc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTsKLSAgICBtX21h
dCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRy
aXhJbXBsOjpwb3N0U2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBz
Y2FsZUZhY3RvclkpCi17Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAuc2NhbGUoc2NhbGVG
YWN0b3JYLCBzY2FsZUZhY3RvclkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRo
aXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RSb3RhdGUoZG91Ymxl
IGFuZ2xlKQotewotICAgIFFNYXRyaXggdGVtcDsKLSAgICB0ZW1wLnJvdGF0ZShhbmdsZSk7Ci0g
ICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAq
U1ZHTWF0cml4SW1wbDo6cG9zdFJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KQot
ewotICAgIFFNYXRyaXggdGVtcDsKLSAgICB0ZW1wLnJvdGF0ZShTVkdBbmdsZUltcGw6OnRvZGVn
KGF0YW4yKHksIHgpKSk7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKLX0K
LQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdEZsaXBYKCkKLXsKLSAgICBRTWF0
cml4IHRlbXAoLTEuMEYsIDAuMEYsIDAuMEYsIDEuMEYsIDAuMEYsIDAuMEYpOwotICAgIG1fbWF0
ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJp
eEltcGw6OnBvc3RGbGlwWSgpCi17Ci0gICAgUU1hdHJpeCB0ZW1wKDEuMEYsIDAuMEYsIDAuMEYs
IC0xLjBGLCAwLjBGLCAwLjBGKTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlz
OwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0U2tld1goZG91YmxlIGFu
Z2xlKQotewotICAgIFFNYXRyaXggdGVtcDsKLSAgICB0ZW1wLnNoZWFyKHRhbihTVkdBbmdsZUlt
cGw6OnRvcmFkKGFuZ2xlKSksIDAuMEYpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJu
IHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RTa2V3WShkb3Vi
bGUgYW5nbGUpCi17Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAuc2hlYXIoMC4wRiwgdGFu
KFNWR0FuZ2xlSW1wbDo6dG9yYWQoYW5nbGUpKSk7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICBy
ZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6bXVsdGlwbHko
Y29uc3QgU1ZHTWF0cml4SW1wbCAqc2Vjb25kTWF0cml4KQotewotICAgIFFNYXRyaXggdGVtcChz
ZWNvbmRNYXRyaXgtPmEoKSwgc2Vjb25kTWF0cml4LT5iKCksIHNlY29uZE1hdHJpeC0+YygpLCBz
ZWNvbmRNYXRyaXgtPmQoKSwgc2Vjb25kTWF0cml4LT5lKCksIHNlY29uZE1hdHJpeC0+ZigpKTsK
LSAgICB0ZW1wICo9IG1fbWF0OwotICAgIG1fbWF0ID0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsK
LX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6dHJhbnNsYXRlKGRvdWJsZSB4LCAg
ZG91YmxlIHkpCi17Ci0gICAgbV9tYXQudHJhbnNsYXRlKHgsIHkpOwotICAgIHJldHVybiB0aGlz
OwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpzY2FsZShkb3VibGUgc2NhbGVG
YWN0b3IpCi17Ci0gICAgbV9tYXQuc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTsKLSAg
ICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6c2NhbGVO
b25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpCi17Ci0g
ICAgbV9tYXQuc2NhbGUoc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOwotICAgIHJldHVybiB0
aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpyb3RhdGUoZG91YmxlIGFu
Z2xlKQotewotICAgIG1fbWF0LnJvdGF0ZShhbmdsZSk7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0K
LVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgs
IGRvdWJsZSB5KQotewotICAgIG1fbWF0LnJvdGF0ZShTVkdBbmdsZUltcGw6OnRvZGVnKGF0YW4y
KHksIHgpKSk7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJp
eEltcGw6OmZsaXBYKCkKLXsKLSAgICBtX21hdC5zY2FsZSgtMS4wZiwgMS4wZik7Ci0gICAgcmV0
dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OmZsaXBZKCkKLXsK
LSAgICBtX21hdC5zY2FsZSgxLjBmLCAtMS4wZik7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNW
R01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnNrZXdYKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBt
X21hdC5zaGVhcih0YW4oU1ZHQW5nbGVJbXBsOjp0b3JhZChhbmdsZSkpLCAwLjBGKTsKLSAgICBy
ZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6c2tld1koZG91
YmxlIGFuZ2xlKQotewotICAgIG1fbWF0LnNoZWFyKDAuMEYsIHRhbihTVkdBbmdsZUltcGw6OnRv
cmFkKGFuZ2xlKSkpOwotICAgIHJldHVybiB0aGlzOwotfQotCi12b2lkIFNWR01hdHJpeEltcGw6
OnNldE1hdHJpeChRTWF0cml4IG1hdCkKLXsKLSAgICBtX21hdCA9IG1hdDsKLX0KLQotUU1hdHJp
eCAmU1ZHTWF0cml4SW1wbDo6cW1hdHJpeCgpCi17Ci0gICAgcmV0dXJuIG1fbWF0OwotfQotCi1j
b25zdCBRTWF0cml4ICZTVkdNYXRyaXhJbXBsOjpxbWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9tYXQ7Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6cmVzZXQoKQotewotICAgIG1fbWF0
LnJlc2V0KCk7Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6cmVtb3ZlU2NhbGUoZG91YmxlICp4
U2NhbGUsIGRvdWJsZSAqeVNjYWxlKQotewotICAgIGRvdWJsZSBzeCA9IHNxcnQoYSgpICogYSgp
ICsgYigpICogYigpKTsKLSAgICBkb3VibGUgc3kgPSBzcXJ0KGMoKSAqIGMoKSArIGQoKSAqIGQo
KSk7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIHNjYWxpbmcgZnJvbSB0aGUgbWF0cml4LgotICAgIHNl
dEEoYSgpIC8gc3gpOyBzZXRCKGIoKSAvIHN4KTsKLSAgICBzZXRDKGMoKSAvIHN5KTsgc2V0RChk
KCkgLyBzeSk7Ci0KLSAgICAqeFNjYWxlID0gc3g7Ci0gICAgKnlTY2FsZSA9IHN5OwotfQotCiAv
LyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga3N2ZzIvc3Zn
L1NWR01hcmtlckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWFy
a2VyRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDI4ICsyMiwyNyBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL0RPTVN0
cmluZy5oPgotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotI2luY2x1ZGUgPGtkb20v
Y29yZS9OYW1lZEF0dHJNYXBJbXBsLmg+CisjaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogCisj
aW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZUltcGwu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgorI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIK
KyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHTWFya2VyRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUg
PGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NyZWF0b3IuaD4K
ICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDb250YWluZXIuaD4KKyNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXNDcmVhdG9yLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0Rl
dmljZS5oPgorI2luY2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+CisjaW5jbHVkZSA8a2RvbS9jb3Jl
L0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL05hbWVkQXR0ck1hcEltcGwuaD4KIAot
I2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR0hl
bHBlci5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlSW1wbC5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aElt
cGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVu
dEltcGwuaCIKLSNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
TWFya2VyRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlSW1wbC5oIgot
I2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
RW51bWVyYXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdNYXJrZXJF
bGVtZW50SW1wbDo6U1ZHTWFya2VyRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCkBAIC0xNzAsOCArMTY5LDggQEAK
ICAgICBtX21hcmtlci0+c2V0VXNlU3Ryb2tlV2lkdGgobWFya2VyVW5pdHMoKS0+YmFzZVZhbCgp
ID09IFNWR19NQVJLRVJVTklUU19TVFJPS0VXSURUSCk7CiAgICAgZG91YmxlIHcgPSBtYXJrZXJX
aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZG91YmxlIGggPSBtYXJrZXJIZWlnaHQo
KS0+YmFzZVZhbCgpLT52YWx1ZSgpOwotICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB2aWV3Qm94
ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsKLSAgICBtX21hcmtlci0+c2V0U2NhbGUo
dmlld0JveC0+cW1hdHJpeCgpLm0xMSgpLCB2aWV3Qm94LT5xbWF0cml4KCkubTIyKCkpOworICAg
IEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsK
KyAgICBtX21hcmtlci0+c2V0U2NhbGUodmlld0JveC5hKCksIHZpZXdCb3guZCgpKTsKICAgICAK
ICAgICByZXR1cm4gbV9tYXJrZXI7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJbXBsLmgJKHJl
dmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveEltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTcgKzI0LDEzIEBACiAjZGVmaW5lIEtTVkdfU1ZHRml0VG9WaWV3Qm94
SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotbmFtZXNwYWNlIEtET00KK25hbWVzcGFjZSBXZWJD
b3JlCiB7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogICAgIGNsYXNzIEF0dHJpYnV0ZUlt
cGw7CiAgICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZHCi17CiAg
ICAgY2xhc3MgU1ZHQW5pbWF0ZWRSZWN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9JbXBsOwotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3Mg
U1ZHRml0VG9WaWV3Qm94SW1wbAogICAgIHsKICAgICBwdWJsaWM6CkBAIC00Niw3ICs0Miw3IEBA
CiAgICAgICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwgKnByZXNlcnZlQXNw
ZWN0UmF0aW8oKSBjb25zdDsKIAogICAgICAgICB2b2lkIHBhcnNlVmlld0JveChLRE9NOjpET01T
dHJpbmdJbXBsICpzdHIpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICp2aWV3Qm94VG9WaWV3VHJh
bnNmb3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7CisgICAgICAg
IEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKGZsb2F0IHZpZXdXaWR0aCwg
ZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7CiAKICAgICAgICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsy
NiwxMyBAQAogCiAjaW5jbHVkZSAiU2hhcmVkLmgiCiAKLW5hbWVzcGFjZSBLRE9NCi17CituYW1l
c3BhY2UgS0RPTSB7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogICAgIGNsYXNzIERPTVN0
cmluZ0ltcGw7Ci19OworfQogCiBuYW1lc3BhY2UgS1NWRwogewotICAgIGNsYXNzIFNWR01hdHJp
eEltcGw7CiAgICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudEltcGw7CiAgICAgY2xhc3MgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb0ltcGwgOiBwdWJsaWMgU2hhcmVkPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9JbXBsPgogICAgIHsgCkBAIC00NywxMCArNDYsMTAgQEAKICAgICAgICAgdm9pZCBzZXRNZWV0
T3JTbGljZSh1bnNpZ25lZCBzaG9ydCk7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNs
aWNlKCkgY29uc3Q7CiAgICAgICAgIAotICAgICAgICBTVkdNYXRyaXhJbXBsICpnZXRDVE0oZmxv
YXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bG9hdCBsb2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hlaWdodCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZsb2F0IHBoeXNYLCBmbG9hdCBwaHlzWSwgZmxvYXQgcGh5c1dpZHRoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGh5c0hlaWdodCk7CisgICAgICAgIEFm
ZmluZVRyYW5zZm9ybSBnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksCisgICAgICAg
ICAgICBmbG9hdCBsb2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hlaWdodCwKKyAgICAgICAgICAgIGZs
b2F0IHBoeXNYLCBmbG9hdCBwaHlzWSwgZmxvYXQgcGh5c1dpZHRoLAorICAgICAgICAgICAgZmxv
YXQgcGh5c0hlaWdodCk7CiAKICAgICAgICAgLy8gSGVscGVyCiAgICAgICAgIHZvaWQgcGFyc2VQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKEtET006OkRPTVN0cmluZ0ltcGwgKnN0cmluZyk7CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR0ZpdFRvVmlld0JveEltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9T
VkdGaXRUb1ZpZXdCb3hJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvSW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0ltcGwuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKIAogdXNpbmcgbmFtZXNwYWNl
IEtTVkc7CiAKQEAgLTgyLDExICs4MywxMSBAQAogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldB
Uk5JTkc6IE1hbGZvcm1lZCB2aWV3Ym94IHN0cmluZzogJXMgKGw6ICVpKSIsIHZpZXdib3guYXNj
aWkoKSwgdmlld2JveC5sZW5ndGgoKSk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0ZpdFRvVmll
d0JveEltcGw6OnZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2
aWV3SGVpZ2h0KSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR0ZpdFRvVmlld0JveEltcGw6OnZp
ZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3SGVpZ2h0KSBj
b25zdAogewogICAgIFNWR1JlY3RJbXBsICp2aWV3Qm94UmVjdCA9IHZpZXdCb3goKS0+YmFzZVZh
bCgpOwogICAgIGlmKHZpZXdCb3hSZWN0LT53aWR0aCgpID09IDAgfHwgdmlld0JveFJlY3QtPmhl
aWdodCgpID09IDApCi0gICAgICAgIHJldHVybiBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZH
TWF0cml4KCk7CisgICAgICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIAogICAgIHJldHVy
biBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmJhc2VWYWwoKS0+Z2V0Q1RNKHZpZXdCb3hSZWN0LT54
KCksCiAgICAgICAgICAgICB2aWV3Qm94UmVjdC0+eSgpLCB2aWV3Qm94UmVjdC0+d2lkdGgoKSwg
dmlld0JveFJlY3QtPmhlaWdodCgpLApJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlzdEltcGwuY3Bw
CShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDEwICsyMiwxMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHVHJhbnNmb3JtTGlzdEltcGwuaCIKKwogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIK
ICNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxp
c3RJbXBsLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkBAIC0zOCw3ICszOCw3IEBACiB7
CiB9CiAKLVNWR1RyYW5zZm9ybUltcGwgKlNWR1RyYW5zZm9ybUxpc3RJbXBsOjpjcmVhdGVTVkdU
cmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCkgY29uc3QKK1NWR1RyYW5z
Zm9ybUltcGwgKlNWR1RyYW5zZm9ybUxpc3RJbXBsOjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0
cml4KEFmZmluZVRyYW5zZm9ybSBtYXRyaXgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1NWR0Vs
ZW1lbnRJbXBsOjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiB9CkBAIC02
NSwxMiArNjUsMTEgQEAKICAgICBpZighbGVuZ3RoKQogICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgCi0gICAgU1ZHVHJhbnNmb3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0
ZVNWR1RyYW5zZm9ybSgpOwotICAgIFNWR01hdHJpeEltcGwgKm1hdHJpeCA9IFNWR1NWR0VsZW1l
bnRJbXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsKLQorICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXg7
CiAgICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQotICAgICAgICBt
YXRyaXgtPm11bHRpcGx5KGdldEl0ZW0oaSktPm1hdHJpeCgpKTsKKyAgICAgICAgbWF0cml4ICo9
IGdldEl0ZW0oaSktPm1hdHJpeCgpOwogCisgICAgU1ZHVHJhbnNmb3JtSW1wbCAqb2JqID0gU1ZH
U1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybSgpOwogICAgIG9iai0+c2V0TWF0cml4
KG1hdHJpeCk7CiAgICAgcmV0dXJuIG9iajsKIH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdMb2NhdGFi
bGVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuaAkocmV2
aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlSW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCwxMCArMjQsMTAgQEAKICNkZWZpbmUgS1NWR19TVkdMb2NhdGFibGVJbXBsX0gK
ICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS1NWRworbmFtZXNwYWNlIFdlYkNvcmUKIHsK
KyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiAgICAgY2xhc3MgU1ZHUmVjdEltcGw7Ci0gICAg
Y2xhc3MgU1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdFbGVtZW50SW1wbDsKICAgICBjbGFz
cyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKICAgICBjbGFzcyBTVkdMb2NhdGFibGVJbXBsCkBAIC00
MSwxOCArNDEsMTggQEAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCAqZmFydGhlc3RW
aWV3cG9ydEVsZW1lbnQoKSBjb25zdCA9IDA7CiAKICAgICAgICAgdmlydHVhbCBTVkdSZWN0SW1w
bCAqZ2V0QkJveCgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpn
ZXRDVE0oKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2Ny
ZWVuQ1RNKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFRy
YW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqZWxlbWVudCkgY29uc3QgPSAwOworICAg
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oKSBjb25zdCA9IDA7CisgICAgICAg
IHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTSgpIGNvbnN0ID0gMDsKKyAgICAg
ICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1l
bnRJbXBsKikgY29uc3QgPSAwOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgU1ZH
RWxlbWVudEltcGwgKm5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dEltcGwgKmVsZW1lbnQpOwogICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0
Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICplbGVtZW50KTsKICAg
ICAgICAgc3RhdGljIFNWR1JlY3RJbXBsICpnZXRCQm94KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJ
bXBsICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR01hdHJpeEltcGwgKmdldENUTShjb25z
dCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCk7Ci0gICAgICAgIHN0YXRpYyBTVkdNYXRyaXhJbXBs
ICpnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpOworICAgICAgICBz
dGF0aWMgQWZmaW5lVHJhbnNmb3JtIGdldENUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVu
dCk7CisgICAgICAgIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2NyZWVuQ1RNKGNvbnN0IFNW
R0VsZW1lbnRJbXBsICplbGVtZW50KTsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19T
VVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgJKHJldmlzaW9u
IDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MCw3ICs4MCw3IEBACiAgICAgICAgIHZpcnR1YWwgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyUGF0dGVybiAqY2FudmFzUmVzb3VyY2UoKTsKIAogICAgICAgICAvLyAndmlydHVhbCBTVkdM
b2NhdGFibGUnIGZ1bmN0aW9ucwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldENU
TSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oKSBjb25z
dDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsPiBtX3g7CkBAIC05OSw4ICs5OSw4IEBACiAgICAgICAgIAogICAgIHByaXZhdGU6
CiAgICAgICAgIC8vIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSBoZWxwZXJzOgotICAgICAgICB2b2lk
IGZpbGxBdHRyaWJ1dGVzRnJvbVJlZmVyZW5jZVBhdHRlcm4oY29uc3QgU1ZHUGF0dGVybkVsZW1l
bnRJbXBsICp0YXJnZXQsIEtDYW52YXNNYXRyaXggJnBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNv
bnN0OwotICAgICAgICB2b2lkIGRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKGNvbnN0IFNWR1Bh
dHRlcm5FbGVtZW50SW1wbCAqdGFyZ2V0LCBjb25zdCBJbnRTaXplICZuZXdTaXplLCBLQ2FudmFz
TWF0cml4IHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNvbnN0OworICAgICAgICB2b2lkIGZpbGxB
dHRyaWJ1dGVzRnJvbVJlZmVyZW5jZVBhdHRlcm4oY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBs
ICp0YXJnZXQsIEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7
CisgICAgICAgIHZvaWQgZHJhd1BhdHRlcm5Db250ZW50SW50b1RpbGUoY29uc3QgU1ZHUGF0dGVy
bkVsZW1lbnRJbXBsICp0YXJnZXQsIGNvbnN0IEludFNpemUgJm5ld1NpemUsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
bm90aWZ5Q2xpZW50c1RvUmVwYWludCgpIGNvbnN0OwogICAgIH07CiB9OwpJbmRleDoga3N2ZzIv
c3ZnL1NWR1BvaW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdQb2ludEltcGwu
aAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDEyICsyNywxMiBAQAogI2luY2x1ZGUgIlNoYXJlZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBJbnRQb2ludDsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07
CisgICAgY2xhc3MgSW50UG9pbnQ7CiB9CiAKIG5hbWVzcGFjZSBLU1ZHCiB7Ci0gICAgY2xhc3Mg
U1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKICAgICBjbGFz
cyBTVkdQb2ludEltcGwgOiBwdWJsaWMgU2hhcmVkPFNWR1BvaW50SW1wbD4KICAgICB7CkBAIC00
OSw3ICs0OSw3IEBACiAgICAgICAgIHZvaWQgc2V0WShmbG9hdCB5KTsKICAgICAgICAgZmxvYXQg
eSgpIGNvbnN0OwogCi0gICAgICAgIFNWR1BvaW50SW1wbCAqbWF0cml4VHJhbnNmb3JtKFNWR01h
dHJpeEltcGwgKm1hdHJpeCk7CisgICAgICAgIFNWR1BvaW50SW1wbCogbWF0cml4VHJhbnNmb3Jt
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZmxvYXQg
bV94OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdEltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtz
dmcyL3N2Zy9TVkdMZW5ndGhMaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDYgQEAKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKLSNpbmNs
dWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNp
bmNsdWRlICJTVkdMZW5ndGhMaXN0SW1wbC5oIgogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9pbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAkocmV2aXNp
b24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQsNyArMjQsNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUG9pbnRJbXBs
LmgiCiAKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxl
bWVudEltcGwuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogCkBAIC04MSw3ICs4MCw3IEBACiAg
ICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKLVNWR1BvaW50
SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zvcm0oU1ZHTWF0cml4SW1wbCAqIC8qIG1h
dHJpeCAqLykKK1NWR1BvaW50SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zvcm0oY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiAvKiBtYXRyaXggKi8pCiB7CiAgICAgLy8gVE9ETzogaW1wbGVt
ZW50IG1lIQogICAgIHJldHVybiAwOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb0ltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE2ICsyMiwxNSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvSW1wbC5oIgorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5j
bHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8
a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KICNpbmNsdWRlIDxxc3RyaW5nLmg+CiAjaW5jbHVk
ZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+
Ci0KLSNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1
ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b0ltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9JbXBsOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50
SW1wbCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGw+KCkKQEAg
LTEwOCwxMCArMTA3LDEwIEBACiAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hh
bmdlKCk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsOjpn
ZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lkdGgsIGZsb2F0
IGxvZ2ljSGVpZ2h0LAorQWZmaW5lVHJhbnNmb3JtIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBs
OjpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lkdGgsIGZs
b2F0IGxvZ2ljSGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmbG9hdCAvKnBoeXNYKi8sIGZsb2F0IC8qcGh5c1kqLywgZmxvYXQgcGh5c1dp
ZHRoLCBmbG9hdCBwaHlzSGVpZ2h0KQogewotICAgIFNWR01hdHJpeEltcGwgKnRlbXAgPSBTVkdT
VkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRl
bXA7CiAKICAgICBpZihhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04p
CiAgICAgICAgIHJldHVybiB0ZW1wOwpAQCAtMTE5LDMyICsxMTgsMzIgQEAKICAgICBmbG9hdCB2
cGFyID0gbG9naWNXaWR0aCAvIGxvZ2ljSGVpZ2h0OwogICAgIGZsb2F0IHN2Z2FyID0gcGh5c1dp
ZHRoIC8gcGh5c0hlaWdodDsKIAotICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fTk9ORSkKKyAgICBpZiAoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19O
T05FKQogICAgIHsKLSAgICAgICAgdGVtcC0+c2NhbGVOb25Vbmlmb3JtKHBoeXNXaWR0aCAvIGxv
Z2ljV2lkdGgsIHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7Ci0gICAgICAgIHRlbXAtPnRyYW5z
bGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKKyAgICAgICAgdGVtcC5zY2FsZShwaHlzV2lkdGggLyBs
b2dpY1dpZHRoLCBwaHlzSGVpZ2h0IC8gbG9naWNIZWlnaHQpOworICAgICAgICB0ZW1wLnRyYW5z
bGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKICAgICB9CiAgICAgZWxzZSBpZih2cGFyIDwgc3ZnYXIg
JiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX01FRVQpIHx8IHZwYXIgPj0gc3Zn
YXIgJiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX1NMSUNFKSkKICAgICB7Ci0g
ICAgICAgIHRlbXAtPnNjYWxlKHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7CisgICAgICAgIHRl
bXAuc2NhbGUocGh5c0hlaWdodCAvIGxvZ2ljSGVpZ2h0KTsKIAogICAgICAgICBpZihhbGlnbigp
ID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIHx8IGFsaWduKCkgPT0gU1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQgfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlOWU1BWCkKLSAgICAgICAgICAgIHRlbXAtPnRyYW5zbGF0ZSgtbG9naWNYLCAt
bG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAudHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kpOwog
ICAgICAgICBlbHNlIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlN
SU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRCB8fCBhbGln
bigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYKQotICAgICAgICAgICAgdGVt
cC0+dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVp
Z2h0IC8gcGh5c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAudHJhbnNs
YXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVpZ2h0IC8gcGh5
c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVtcC0+
dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVpZ2h0
IC8gcGh5c0hlaWdodCksIC1sb2dpY1kpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxv
Z2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBwaHlzSGVpZ2h0
KSwgLWxvZ2ljWSk7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHRlbXAtPnNjYWxl
KHBoeXNXaWR0aCAvIGxvZ2ljV2lkdGgpOworICAgICAgICB0ZW1wLnNjYWxlKHBoeXNXaWR0aCAv
IGxvZ2ljV2lkdGgpOwogCiAgICAgICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JTllNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlE
WU1JTiB8fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOKQotICAg
ICAgICAgICAgdGVtcC0+dHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kpOworICAgICAgICAgICAg
dGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSk7CiAgICAgICAgIGVsc2UgaWYoYWxpZ24o
KSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRCB8fCBhbGlnbigpID09IFNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEIHx8IGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1BWFlNSUQpCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2ljWCwg
LWxvZ2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dp
ZHRoKSAvIDIpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSAt
IChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dpZHRoKSAvIDIp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2ljWCwgLWxv
Z2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dpZHRo
KSk7CisgICAgICAgICAgICB0ZW1wLnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZIC0gKGxvZ2lj
SGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpKTsKICAgICB9CiAK
ICAgICByZXR1cm4gdGVtcDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5oCShyZXZpc2lv
biAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNs
dWRlICJTVkdTdHlsYWJsZUltcGwuaCIKIAotI2luY2x1ZGUgPHF3bWF0cml4Lmg+CiAjaW5jbHVk
ZSA8a2NhbnZhcy9LQ2FudmFzUGF0aC5oPgogI2luY2x1ZGUgInJlbmRlcl9zdHlsZS5oIgogCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGwuY3BwCShyZXZpc2lv
biAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImtzdmcuaCIKICNpbmNs
dWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR01h
dHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
U3RvcEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdEltcGwuaCIKQEAg
LTM5LDkgKzM4LDkgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgi
CiAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52
YXNNYXRyaXguaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+
CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQu
aD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7
CiAKQEAgLTEzMSw5ICsxMzAsOSBAQAogICAgIGZsb2F0IF9meSA9IGZ5U2V0ID8gZnkoKS0+YmFz
ZVZhbCgpLT52YWx1ZSgpIDogX2N5OwogCiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVyUmFkaWFs
R3JhZGllbnQgKmdyYWQgPSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxH
cmFkaWVudCAqPihfZ3JhZCk7Ci0gICAgS0NhbnZhc01hdHJpeCBtYXQ7CisgICAgQWZmaW5lVHJh
bnNmb3JtIG1hdDsKICAgICBpZihncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJl
ck9mSXRlbXMoKSA+IDApCi0gICAgICAgIG1hdCA9IEtDYW52YXNNYXRyaXgoZ3JhZGllbnRUcmFu
c2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgpLT5tYXRyaXgoKS0+cW1hdHJpeCgpKTsK
KyAgICAgICAgbWF0ID0gZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0
ZSgpLT5tYXRyaXgoKTsKIAogICAgIFFTdHJpbmcgcmVmID0gS0RPTTo6RE9NU3RyaW5nKGhyZWYo
KS0+YmFzZVZhbCgpKS5xc3RyaW5nKCk7CiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVyICpwc2Vy
dmVyID0gZ2V0UGFpbnRTZXJ2ZXJCeUlkKGdldERvY3VtZW50KCksIHJlZi5taWQoMSkpOwpJbmRl
eDoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwuY3BwCShyZXZpc2lv
biAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDE0ICsyMiwxNCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2tkb20uaD4KKyNpbmNsdWRlICJTVkdT
dHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oIgorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3Jt
LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdSZWN0SW1wbC5o
IgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5o
IgotI2luY2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAi
U1ZHU1ZHRWxlbWVudEltcGwuaCIKLQogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0l0ZW0uaD4K
KyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKQEAgLTU3
LDIwICs1NywyMCBAQAogICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpnZXRCQm94KHRoaXMp
OwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0
Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1w
bDo6Z2V0Q1RNKCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RN
KHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1w
bDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2NhdGFi
bGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9j
YXRhYmxlSW1wbDo6Z2V0U2NyZWVuQ1RNKHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdT
dHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1l
bnRJbXBsICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dEltcGw6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqKSBjb25zdAogewog
ICAgIC8vIFRPRE8hCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgp
OwogfQogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5oCShyZXZp
c2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudEltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2RlZmluZSBLU1ZHX1NWR1RleHRFbGVtZW50SW1wbF9I
CiAjaWYgU1ZHX1NVUFBPUlQKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1
ZGUgIlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNm
b3JtYWJsZUltcGwuaCIKIApAQCAtNDMsOSArNDQsOSBAQAogICAgICAgICB2aXJ0dWFsIFNWR0Vs
ZW1lbnRJbXBsICpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwogCiAgICAgICAgIHZp
cnR1YWwgU1ZHUmVjdEltcGwgKmdldEJCb3goKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdN
YXRyaXhJbXBsICpnZXRDVE0oKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBs
ICpnZXRTY3JlZW5DVE0oKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpn
ZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKCkgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTSgpIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZH
RWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOyB9
CiAKICAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0
eWxlICopIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICAgdmlydHVhbCBraHRtbDo6UmVuZGVyT2Jq
ZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHls
ZSAqc3R5bGUpOwpAQCAtNTMsMTIgKzU0LDEyIEBACiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKTsKIAogICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRy
YW5zZm9ybSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0
cml4KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4
KCkgY29uc3Q7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9jYWxUcmFu
c2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxvY2FsVHJhbnNmb3Jtcyk7CiAgICAgICAgIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbG9j
YWxNYXRyaXg7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtX2xvY2FsTWF0cml4OwogICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsPiBtX3RyYW5zZm9y
bTsKICAgICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1wbC5oCShyZXZpc2lvbiAx
MjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgIFNWR1RyYW5zZm9ybUxpc3RJbXBsKGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0ID0gMCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1Ry
YW5zZm9ybUxpc3RJbXBsKCk7CiAKLSAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCAqY3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpIGNvbnN0OworICAgICAg
ICBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KEFmZmluZVRy
YW5zZm9ybSBtYXRyaXgpIGNvbnN0OwogICAgICAgICBTVkdUcmFuc2Zvcm1JbXBsICpjb25zb2xp
ZGF0ZSgpOwogCiAgICAgICAgIC8vIEludGVybmFsIHVzZSBvbmx5CkluZGV4OiBrc3ZnMi9zdmcv
U1ZHTnVtYmVyTGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdOdW1iZXJM
aXN0SW1wbC5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR051bWJlckxpc3RJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogI2lmIFNWR19TVVBQT1JU
CiAjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIK
ICNpbmNsdWRlICJTVkdOdW1iZXJJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0SW1wbC5oIgpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDExKQor
Kysga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNJdGVt
Lmg+CiAKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIK
QEAgLTU1LDM5ICs1NCwyNCBAQAogICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RJbXBsPihtX3RyYW5zZm9ybSwgdGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwg
KlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBjb25zdAor
QWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0Q1RN
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHTWF0cml4SW1wbD4obV9sb2Nh
bE1hdHJpeCk7CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldENUTSh0aGlzKSAqIG1f
bG9jYWxNYXRyaXg7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7Ci0gICAgU1ZHTWF0
cml4SW1wbCAqY3RtID0gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKHRoaXMpOwotCi0gICAgaWYo
bV9sb2NhbE1hdHJpeCkKLSAgICAgICAgY3RtLT5tdWx0aXBseShtX2xvY2FsTWF0cml4LmdldCgp
KTsKLQotICAgIHJldHVybiBjdG07CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldFNj
cmVlbkNUTSh0aGlzKSAqIG1fbG9jYWxNYXRyaXg7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKLXsKLSAg
ICBTVkdNYXRyaXhJbXBsICpjdG0gPSBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhp
cyk7Ci0KLSAgICBpZihtX2xvY2FsTWF0cml4KQotICAgICAgICBjdG0tPm11bHRpcGx5KG1fbG9j
YWxNYXRyaXguZ2V0KCkpOwotCi0gICAgcmV0dXJuIGN0bTsKLX0KLQogdm9pZCBTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OnVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9y
bUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpCiB7CiAgICAgLy8gVXBkYXRlIGNhY2hlZCBsb2Nh
bCBtYXRyaXgKICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gbG9jYWxUcmFuc2Zvcm0gPSBs
b2NhbFRyYW5zZm9ybXMtPmNvbmNhdGVuYXRlKCk7Ci0gICAgaWYobG9jYWxUcmFuc2Zvcm0pIHsK
KyAgICBpZiAobG9jYWxUcmFuc2Zvcm0pIHsKICAgICAgICAgbV9sb2NhbE1hdHJpeCA9IGxvY2Fs
VHJhbnNmb3JtLT5tYXRyaXgoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAg
ICAgIHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgo
KSk7CisgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0
cml4KTsKICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTIwLDE3ICsxMDQsMjIgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtYWJsZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1l
bnRJbXBsICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1fbG9jYWxNYXRyaXg7CiB9CiAKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGw6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAq
KSBjb25zdAoreworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKK30KKwogdm9pZCBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OmF0dGFjaCgpCiB7CiAgICAgU1ZHU3R5bGVk
RWxlbWVudEltcGw6OmF0dGFjaCgpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkgJiYgbV9sb2NhbE1h
dHJpeCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJp
eC0+cW1hdHJpeCgpKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+
c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiB9CiAKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR1RyYW5zZm9ybUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3Jt
SW1wbC5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAogCkBAIC0yNSwyMyArMjYsMjEgQEAKICNpZiBTVkdfU1VQUE9SVAog
CiAjaW5jbHVkZSAiU2hhcmVkLmgiCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5j
bHVkZSA8a3htbGNvcmUvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgS1NWRwogewotICAgIGNs
YXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3MgU1ZHVHJhbnNmb3JtSW1wbCA6IHB1YmxpYyBT
aGFyZWQ8U1ZHVHJhbnNmb3JtSW1wbD4KICAgICB7CiAgICAgcHVibGljOgogICAgICAgICBTVkdU
cmFuc2Zvcm1JbXBsKCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR1RyYW5zZm9ybUltcGwoKTsKIAot
ICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlKCkgY29uc3Q7CisgICAgICAgIHVuc2lnbmVkIHNo
b3J0IHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICAgICAgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBtYXRyaXgoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeDsgfQorICAgICAgICBk
b3VibGUgYW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2FuZ2xlOyB9CiAKLSAgICAgICAgU1ZHTWF0
cml4SW1wbCAqbWF0cml4KCkgY29uc3Q7Ci0gICAgCi0gICAgICAgIGRvdWJsZSBhbmdsZSgpIGNv
bnN0OwotCi0gICAgICAgIHZvaWQgc2V0TWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCk7Cisg
ICAgICAgIHZvaWQgc2V0TWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogICAgICAgICB2
b2lkIHNldFRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0eSk7CiAgICAgICAgIHZvaWQgc2V0
U2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpOwogICAgICAgICB2b2lkIHNldFJvdGF0ZShkb3Vi
bGUgYW5nbGUsIGRvdWJsZSBjeCwgZG91YmxlIGN5KTsKQEAgLTQ5LDExICs0OCwxMSBAQAogICAg
ICAgICB2b2lkIHNldFNrZXdZKGRvdWJsZSBhbmdsZSk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBkb3VibGUgbV9hbmdsZTsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV90eXBlOwotICAgICAg
ICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gbV9tYXRyaXg7CisgICAgICAgIGRvdWJsZSBtX2FuZ2xl
OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRyaXg7CiAgICAgfTsKLX07Cit9CiAKICNl
bmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTAgKzI0
LDkgQEAKICNkZWZpbmUgS1NWR19TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGxfSAogI2lm
IFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KLQogI2lu
Y2x1ZGUgImtzdmcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgorI2lu
Y2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogCiBuYW1lc3BhY2UgS1NWRwogewpAQCAtNDQsMTAg
KzQzLDEwIEBACiAKICAgICAgICAgLy8gSGVscGVycwogICAgICAgICBSZWZQdHI8U1ZHVHJhbnNm
b3JtSW1wbD4gcGFyc2VUcmFuc2Zvcm1WYWx1ZShjb25zdCBRU3RyaW5nICZkYXRhKSBjb25zdDsK
LSAgICAgICAgdm9pZCBjYWxjdWxhdGVSb3RhdGlvbkZyb21NYXRyaXgoY29uc3QgUVdNYXRyaXgg
Jm1hdHJpeCwgZG91YmxlICZhbmdsZSwgZG91YmxlICZjeCwgZG91YmxlICZjeSkgY29uc3Q7Cisg
ICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgbWF0cml4LCBkb3VibGUmIGFuZ2xlLCBkb3VibGUmIGN4LCBkb3VibGUmIGN5KSBjb25z
dDsKIAotICAgICAgICBTVkdNYXRyaXhJbXBsICppbml0aWFsTWF0cml4KCkgY29uc3Q7Ci0gICAg
ICAgIFNWR01hdHJpeEltcGwgKnRyYW5zZm9ybU1hdHJpeCgpIGNvbnN0OworICAgICAgICBBZmZp
bmVUcmFuc2Zvcm0gaW5pdGlhbE1hdHJpeCgpIGNvbnN0OworICAgICAgICBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHRyYW5zZm9ybU1hdHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtTWF0
cml4OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBpbnQgbV9jdXJyZW50SXRlbTsKQEAgLTU3
LDggKzU2LDggQEAKICAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IG1fZnJvbVRyYW5z
Zm9ybTsKICAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IG1faW5pdGlhbFRyYW5zZm9y
bTsKIAotICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gbV9sYXN0TWF0cml4OwotICAgICAg
ICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gbV90cmFuc2Zvcm1NYXRyaXg7CisgICAgICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX2xhc3RNYXRyaXg7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5z
Zm9ybU1hdHJpeDsKIAogICAgICAgICBtdXRhYmxlIGJvb2wgbV9yb3RhdGVTcGVjaWFsQ2FzZSA6
IDE7CiAgICAgICAgIGJvb2wgbV90b1JvdGF0ZVNwZWNpYWxDYXNlIDogMSwgbV9mcm9tUm90YXRl
U3BlY2lhbENhc2UgOiAxOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgJKHJl
dmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzMCw3ICsxMzAsNyBAQAogICAgICAgICBpbnQgY2FsY3VsYXRlQ3Vy
cmVudFZhbHVlSXRlbShkb3VibGUgdGltZVBlcmNlbnRhZ2UpOwogICAgICAgICBkb3VibGUgY2Fs
Y3VsYXRlUmVsYXRpdmVUaW1lUGVyY2VudGFnZShkb3VibGUgdGltZVBlcmNlbnRhZ2UsIGludCBj
dXJyZW50SXRlbSk7CiAKLSAgICAgICAgZG91YmxlIHJlcGVhdGlvbnMoKSBjb25zdDsKKyAgICAg
ICAgZG91YmxlIHJlcGV0aXRpb25zKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNJbmRlZmluaXRl
KGRvdWJsZSB2YWx1ZSkgY29uc3Q7CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC0xNjEsNyArMTYxLDgg
QEAKICAgICAgICAgZG91YmxlIG1fZW5kOwogICAgICAgICBkb3VibGUgbV9iZWdpbjsKIAotICAg
ICAgICBkb3VibGUgbV9yZXBlYXRpb25zOworICAgICAgICAvLyBGSVhNRTogVGhlc2UgbmVlZCB0
byBiZSBpbnRlZ2VycyByYXRoZXIgdGhhbiBmbG9hdGluZyBwb2ludC4KKyAgICAgICAgZG91Ymxl
IG1fcmVwZXRpdGlvbnM7CiAgICAgICAgIGRvdWJsZSBtX3JlcGVhdENvdW50OwogCiAgICAgICAg
IFJlZlB0cjxTVkdTdHJpbmdMaXN0SW1wbD4gbV92YWx1ZXM7CkluZGV4OiBrc3ZnMi9zdmcvU1ZH
QW5pbWF0aW9uRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmlt
YXRpb25FbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQAog
ICAgIG1fbWF4ID0gMC4wOwogICAgIG1fYmVnaW4gPSAwLjA7CiAKLSAgICBtX3JlcGVhdGlvbnMg
PSAwOworICAgIG1fcmVwZXRpdGlvbnMgPSAwOwogICAgIG1fcmVwZWF0Q291bnQgPSAwOwogCiAg
ICAgbV9maWxsID0gRklMTF9SRU1PVkU7CkBAIC01OTEsOSArNTkxLDkgQEAKICAgICAgICAgICAg
IChlbmRUaW1lUGVyY2VudGFnZSAtIGJlZ2luVGltZVBlcmNlbnRhZ2UpKTsKIH0KIAotZG91Ymxl
IFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOjpyZXBlYXRpb25zKCkgY29uc3QKK2RvdWJsZSBTVkdB
bmltYXRpb25FbGVtZW50SW1wbDo6cmVwZXRpdGlvbnMoKSBjb25zdAogewotICAgIHJldHVybiBt
X3JlcGVhdGlvbnM7CisgICAgcmV0dXJuIG1fcmVwZXRpdGlvbnM7CiB9CiAKIGJvb2wgU1ZHQW5p
bWF0aW9uRWxlbWVudEltcGw6OmlzSW5kZWZpbml0ZShkb3VibGUgdmFsdWUpIGNvbnN0CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
RWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHRWxlbWVudElt
cGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMzEgKzI4LDMwIEBACiAjaW5jbHVkZSA8a2RvbS9j
b3JlL1hNTEVsZW1lbnRJbXBsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBT
VkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1NWR0VsZW1lbnRJbXBsOwogICAgIGNsYXNzIFNW
R1N0eWxlZEVsZW1lbnRJbXBsOwogICAgIGNsYXNzIEVjbWE7CiAgICAgY2xhc3MgRG9jdW1lbnRQ
dHI7CiAgICAgdHlwZWRlZiBTdHlsZWRFbGVtZW50SW1wbCBYTUxFbGVtZW50SW1wbDsKIAotICAg
IGNsYXNzIFNWR0VsZW1lbnRJbXBsIDogcHVibGljIEtET006OlhNTEVsZW1lbnRJbXBsCisgICAg
Y2xhc3MgU1ZHRWxlbWVudEltcGwgOiBwdWJsaWMgWE1MRWxlbWVudEltcGwKICAgICB7CiAgICAg
cHVibGljOgotICAgICAgICBTVkdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7CisgICAgICAgIFNWR0VsZW1lbnRJ
bXBsKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCAqZG9jKTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHRWxlbWVudEltcGwoKTsKICAgICAgICAgdmlydHVhbCBib29sIGlz
U1ZHRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBib29s
IGlzU3VwcG9ydGVkKEtET006OkRPTVN0cmluZ0ltcGwgKmZlYXR1cmUsIEtET006OkRPTVN0cmlu
Z0ltcGwgKnZlcnNpb24pIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdXBwb3J0ZWQo
RE9NU3RyaW5nSW1wbCAqZmVhdHVyZSwgRE9NU3RyaW5nSW1wbCAqdmVyc2lvbikgY29uc3Q7CiAK
ICAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwgKm93bmVyU1ZHRWxlbWVudCgpIGNvbnN0OwogICAg
ICAgICBTVkdFbGVtZW50SW1wbCAqdmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICAgICAg
Ly8gSGVscGVyIG1ldGhvZHMgdGhhdCByZXR1cm5zIHRoZSBhdHRyIHZhbHVlIGlmIGF0dHIgaXMg
c2V0LCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgIC8vIEl0IHRocm93cyBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgdGhlIGVsZW1lbnQgaXMgcmVhZC1vbmx5Lgot
ICAgICAgICBLRE9NOjpBdG9taWNTdHJpbmcgdHJ5R2V0QXR0cmlidXRlKGNvbnN0IEtET006OkRP
TVN0cmluZyYgbmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9IEtET006OkF0
b21pY1N0cmluZygpKSBjb25zdDsKLSAgICAgICAgS0RPTTo6QXRvbWljU3RyaW5nIHRyeUdldEF0
dHJpYnV0ZU5TKGNvbnN0IEtET006OkRPTVN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBLRE9N
OjpET01TdHJpbmcmIGxvY2FsTmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9
IEtET006OkF0b21pY1N0cmluZygpKSBjb25zdDsKKyAgICAgICAgQXRvbWljU3RyaW5nIHRyeUdl
dEF0dHJpYnV0ZShjb25zdCBET01TdHJpbmcmIG5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFs
dWUgPSBBdG9taWNTdHJpbmcoKSkgY29uc3Q7CisgICAgICAgIEF0b21pY1N0cmluZyB0cnlHZXRB
dHRyaWJ1dGVOUyhjb25zdCBET01TdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgRE9NU3RyaW5n
JiBsb2NhbE5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUgPSBBdG9taWNTdHJpbmcoKSkg
Y29uc3Q7CiAKICAgICAgICAgLy8gSW50ZXJuYWwKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNl
TWFwcGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCAq
YXR0cik7CiAKICAgICAgICAgLy8gVG8gYmUgaW1wbGVtZW50ZWQgYnkgYW55IGVsZW1lbnQgd2hp
Y2ggY2FuIGVzdGFibGlzaCBuZXcgdmlld3BvcnRzLi4uCiAgICAgICAgIHZpcnR1YWwgUVN0cmlu
ZyBhZGp1c3RWaWV3cG9ydENsaXBwaW5nKCkgY29uc3QgeyByZXR1cm4gUVN0cmluZzo6bnVsbDsg
fQpAQCAtNzgsMTYgKzc3LDE0IEBACiAgICAgICAgIGJvb2wgbV9jbG9zZWQ7CiAgICAgICAgIHZv
aWQgYWRkU1ZHRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgQXR0cmlidXRlSW1wbCogYXR0cik7CiAgICAgfTsKLX07CiAKLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICBzdGF0aWMgaW5saW5lIFNWR0VsZW1lbnRJbXBsICpzdmdfZHluYW1pY19jYXN0KEtE
T006Ok5vZGVJbXBsICpub2RlKSB7CisgICAgc3RhdGljIGlubGluZSBTVkdFbGVtZW50SW1wbCAq
c3ZnX2R5bmFtaWNfY2FzdChOb2RlSW1wbCAqbm9kZSkgewogICAgICAgICBTVkdFbGVtZW50SW1w
bCAqc3ZnRWxlbWVudCA9IE5VTEw7CiAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzU1ZHRWxl
bWVudCgpKQogICAgICAgICAgICAgc3ZnRWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnRJ
bXBsICo+KG5vZGUpOwogICAgICAgICByZXR1cm4gc3ZnRWxlbWVudDsKICAgICB9Ci19OworfQog
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR01hdHJp
eEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5oCShyZXZpc2lv
biAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdNYXRyaXhJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDggKzI0LDcgQEAKICNkZWZpbmUgS1NWR19TVkdNYXRyaXhJbXBsX0gKICNpZiBTVkdfU1VQ
UE9SVAogCi0jaW5jbHVkZSA8cW1hdHJpeC5oPgotCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3Jt
LmgiCiAjaW5jbHVkZSAiU2hhcmVkLmgiCiAKIG5hbWVzcGFjZSBLU1ZHCkBAIC0zMyw3MiArMzIs
MzggQEAKICAgICBjbGFzcyBTVkdNYXRyaXhJbXBsIDogcHVibGljIFNoYXJlZDxTVkdNYXRyaXhJ
bXBsPgogICAgIHsgCiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXRyaXhJbXBsKCk7Ci0gICAg
ICAgIFNWR01hdHJpeEltcGwoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQs
IGRvdWJsZSBlLCBkb3VibGUgZik7Ci0gICAgICAgIFNWR01hdHJpeEltcGwoUU1hdHJpeCBtYXQp
OwotICAgICAgICB2aXJ0dWFsIH5TVkdNYXRyaXhJbXBsKCk7CisgICAgICAgIFNWR01hdHJpeElt
cGwoKSB7IH0KKyAgICAgICAgU1ZHTWF0cml4SW1wbChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJs
ZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICAgICAgOiBtX21hdHJp
eChhLCBiLCBjLCBkLCBlLCBmKSB7IH0KKyAgICAgICAgU1ZHTWF0cml4SW1wbChjb25zdCBTVkdN
YXRyaXhJbXBsJiBvdGhlcikgOiBTaGFyZWQ8U1ZHTWF0cml4SW1wbD4oKSwgbV9tYXRyaXgob3Ro
ZXIubV9tYXRyaXgpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBsKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgbWF0cml4KSA6IG1fbWF0cml4KG1hdHJpeCkgeyB9CiAKLSAgICAgICAgdm9pZCBzZXRB
KGRvdWJsZSBhKTsKLSAgICAgICAgZG91YmxlIGEoKSBjb25zdDsKKyAgICAgICAgb3BlcmF0b3Ig
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4OyB9CiAKLSAg
ICAgICAgdm9pZCBzZXRCKGRvdWJsZSBiKTsKLSAgICAgICAgZG91YmxlIGIoKSBjb25zdDsKKyAg
ICAgICAgZG91YmxlIGEoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5hKCk7IH0KKyAgICAgICAg
ZG91YmxlIGIoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5iKCk7IH0KKyAgICAgICAgZG91Ymxl
IGMoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5jKCk7IH0KKyAgICAgICAgZG91YmxlIGQoKSBj
b25zdCB7IHJldHVybiBtX21hdHJpeC5kKCk7IH0KKyAgICAgICAgZG91YmxlIGUoKSBjb25zdCB7
IHJldHVybiBtX21hdHJpeC5lKCk7IH0KKyAgICAgICAgZG91YmxlIGYoKSBjb25zdCB7IHJldHVy
biBtX21hdHJpeC5mKCk7IH0KIAotICAgICAgICB2b2lkIHNldEMoZG91YmxlIGMpOwotICAgICAg
ICBkb3VibGUgYygpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gaW52ZXJzZSgpIGNv
bnN0OwogCi0gICAgICAgIHZvaWQgc2V0RChkb3VibGUgZCk7Ci0gICAgICAgIGRvdWJsZSBkKCkg
Y29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtdWx0aXBseShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0ZShkb3VibGUg
eCwgZG91YmxlIHkpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gc2NhbGUoZG91Ymxl
IHNjYWxlRmFjdG9yKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHNjYWxlTm9uVW5p
Zm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKSBjb25zdDsKKyAg
ICAgICAgQWZmaW5lVHJhbnNmb3JtIHJvdGF0ZShkb3VibGUgYW5nbGUpIGNvbnN0OworICAgICAg
ICBBZmZpbmVUcmFuc2Zvcm0gcm90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpIGNv
bnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gZmxpcFgoKSBjb25zdDsKKyAgICAgICAgQWZm
aW5lVHJhbnNmb3JtIGZsaXBZKCkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBza2V3
WChkb3VibGUgYW5nbGUpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gc2tld1koZG91
YmxlIGFuZ2xlKSBjb25zdDsKIAotICAgICAgICB2b2lkIHNldEUoZG91YmxlIGUpOwotICAgICAg
ICBkb3VibGUgZSgpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgc2V0Rihkb3VibGUgZik7Ci0gICAg
ICAgIGRvdWJsZSBmKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBjb3B5KGNvbnN0IFNWR01hdHJp
eEltcGwgKm90aGVyKTsKLQotICAgICAgICBTVkdNYXRyaXhJbXBsICppbnZlcnNlKCk7Ci0KLSAg
ICAgICAgLy8gUHJlLW11bHRpcGxpZWQgb3BlcmF0aW9ucywgYXMgcGVyIHRoZSBzcGVjcy4KLSAg
ICAgICAgU1ZHTWF0cml4SW1wbCAqbXVsdGlwbHkoY29uc3QgU1ZHTWF0cml4SW1wbCAqc2Vjb25k
TWF0cml4KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqdHJhbnNsYXRlKGRvdWJsZSB4LCBkb3Vi
bGUgeSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnNjYWxlKGRvdWJsZSBzY2FsZUZhY3Rvcik7
Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnNjYWxlTm9uVW5pZm9ybShkb3VibGUgc2NhbGVGYWN0
b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcm90YXRl
KGRvdWJsZSBhbmdsZSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnJvdGF0ZUZyb21WZWN0b3Io
ZG91YmxlIHgsIGRvdWJsZSB5KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqZmxpcFgoKTsKLSAg
ICAgICAgU1ZHTWF0cml4SW1wbCAqZmxpcFkoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2tl
d1goZG91YmxlIGFuZ2xlKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2tld1koZG91YmxlIGFu
Z2xlKTsKLQotICAgICAgICAvLyBQb3N0LW11bHRpcGxpZWQgb3BlcmF0aW9ucwotICAgICAgICBT
VkdNYXRyaXhJbXBsICpwb3N0TXVsdGlwbHkoY29uc3QgU1ZHTWF0cml4SW1wbCAqc2Vjb25kTWF0
cml4KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFRyYW5zbGF0ZShkb3VibGUgeCwgZG91
YmxlIHkpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0U2NhbGUoZG91YmxlIHNjYWxlRmFj
dG9yKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFNjYWxlTm9uVW5pZm9ybShkb3VibGUg
c2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAgU1ZHTWF0cml4SW1w
bCAqcG9zdFJvdGF0ZShkb3VibGUgYW5nbGUpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0
Um90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpOwotICAgICAgICBTVkdNYXRyaXhJ
bXBsICpwb3N0RmxpcFgoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdEZsaXBZKCk7Ci0g
ICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTa2V3WChkb3VibGUgYW5nbGUpOwotICAgICAgICBT
VkdNYXRyaXhJbXBsICpwb3N0U2tld1koZG91YmxlIGFuZ2xlKTsKLQotICAgICAgICB2b2lkIHJl
c2V0KCk7Ci0KLSAgICAgICAgLy8gS1NWRyBoZWxwZXIgbWV0aG9kCi0gICAgICAgIFFNYXRyaXgg
JnFtYXRyaXgoKTsKLSAgICAgICAgY29uc3QgUU1hdHJpeCAmcW1hdHJpeCgpIGNvbnN0OwotCi0g
ICAgICAgIC8vIERldGVybWluZSB0aGUgc2NhbGluZyBjb21wb25lbnQgb2YgdGhlIG1hdHJpeCBh
bmQgZmFjdG9yIGl0IG91dC4gQWZ0ZXIKLSAgICAgICAgLy8gdGhpcyBvcGVyYXRpb24sIHRoZSBt
YXRyaXggaGFzIHggYW5kIHkgc2NhbGUgb2Ygb25lLgotICAgICAgICB2b2lkIHJlbW92ZVNjYWxl
KGRvdWJsZSAqeFNjYWxlLCBkb3VibGUgKnlTY2FsZSk7Ci0KICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIHNldE1hdHJpeChRTWF0cml4IG1hdCk7Ci0gICAgICAgIFFNYXRyaXggbV9tYXQ7Cisg
ICAgICAgIEFmZmluZVRyYW5zZm9ybSBtX21hdHJpeDsKICAgICB9OwotfTsKK30KIAogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JF
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVs
ZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNyArMjA0LDcgQEAKICAg
ICAgICAgYiA9IG1faW5pdGlhbENvbG9yLmJsdWUoKTsKICAgICB9CiAKLSAgICBpZihpc0FjY3Vt
dWxhdGVkKCkgJiYgcmVwZWF0aW9ucygpICE9IDAuMCkKKyAgICBpZihpc0FjY3VtdWxhdGVkKCkg
JiYgcmVwZXRpdGlvbnMoKSAhPSAwLjApCiAgICAgewogICAgICAgICByICs9IG1fbGFzdENvbG9y
LnJlZCgpOwogICAgICAgICBnICs9IG1fbGFzdENvbG9yLmdyZWVuKCk7CkBAIC0yMTcsMTAgKzIx
NywxMCBAQAogICAgIC8vIEVuZCBjb25kaXRpb24uCiAgICAgaWYodGltZVBlcmNlbnRhZ2UgPT0g
MS4wKQogICAgIHsKLSAgICAgICAgaWYoKG1fcmVwZWF0Q291bnQgPiAwICYmIG1fcmVwZWF0aW9u
cyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0luZGVmaW5pdGUobV9yZXBlYXRDb3VudCkpCisg
ICAgICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGV0aXRpb25zIDwgbV9yZXBlYXRD
b3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENvdW50KSkKICAgICAgICAgewogICAg
ICAgICAgICAgbV9sYXN0Q29sb3IgPSBtX2N1cnJlbnRDb2xvcjsKLSAgICAgICAgICAgIG1fcmVw
ZWF0aW9ucysrOworICAgICAgICAgICAgbV9yZXBldGl0aW9ucysrOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyMSArMjQs
MTIgQEAKICNkZWZpbmUgS1NWR19TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGxfSAog
I2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRl
ICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bWFibGVJbXBsLmgiCiAKLWNsYXNzIFFNYXRyaXg7Ci0KLW5hbWVzcGFjZSBLRE9NCi17Ci0gICAg
Y2xhc3MgTm9kZUltcGw7Ci0gICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsKLSAgICBjbGFzcyBBdHRy
aWJ1dGVJbXBsOwotfTsKLQogbmFtZXNwYWNlIEtTVkcKIHsKLSAgICBjbGFzcyBTVkdNYXRyaXhJ
bXBsOwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3RJbXBsOwogICAgIGNsYXNzIFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEltcGw7CiAgICAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsIDogcHVibGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLCBwdWJsaWMg
U1ZHVHJhbnNmb3JtYWJsZUltcGwKQEAgLTUxLDE2ICs0MiwxNiBAQAogCiAgICAgICAgIC8vICdT
VkdUcmFuc2Zvcm1hYmxlJyBmdW5jdGlvbnMKICAgICAgICAgdmlydHVhbCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RJbXBsICp0cmFuc2Zvcm0oKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdN
YXRyaXhJbXBsICpsb2NhbE1hdHJpeCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRy
YW5zZm9ybSBsb2NhbE1hdHJpeCgpIGNvbnN0OwogCiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTog
J1NWR0xvY2F0YWJsZScKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRDVE0oKSBj
b25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRTY3JlZW5DVE0oKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKCkgY29uc3Q7CisgICAg
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTSgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50
KCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBTVkdSZWN0SW1wbCAqZ2V0QkJveCgpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFRyYW5zZm9ybVRvRWxlbWVudChT
VkdFbGVtZW50SW1wbCAqZWxlbWVudCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJh
bnNmb3JtIGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqZWxlbWVudCkgY29u
c3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEtET006Ok1h
cHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOwogCkBAIC02OSw3ICs2MCw3IEBACiAgICAgICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8U1ZHTWF0cml4SW1wbD4gbV9sb2NhbE1hdHJpeDsKKyAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIG1fbG9jYWxNYXRyaXg7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdEltcGw+IG1fdHJhbnNmb3JtOwogICAgIH07CiB9OwpJbmRleDoga3N2ZzIvc3Zn
L1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDExKQorKysga3N2
ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKIG5hbWVzcGFjZSBLU1ZHCiB7CiAgICAgY2xhc3MgU1ZHUmVjdEltcGw7
Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdFbGVtZW50SW1wbDsKICAg
ICBjbGFzcyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRF
bGVtZW50SW1wbCwgcHVibGljIFNWR0xvY2F0YWJsZUltcGwKICAgICB7CkBAIC00NSwxMSArNDQs
MTEgQEAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCAqZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsICpnZXRCQm94KCkg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1l
bnRJbXBsICplbGVtZW50KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0g
Z2V0Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVl
bkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQoU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0OwogICAgIH07Ci19Owor
fQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR1Ry
YW5zZm9ybWFibGVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3Jt
YWJsZUltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1h
YmxlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxNSArMTA2LDEzIEBACiAgICAgICAg
ICAgICB0LT5zZXRTa2V3WChwYXJhbXNbMF0udG9Eb3VibGUoKSk7CiAgICAgICAgIGVsc2UgaWYg
KHN1YnRyYW5zZm9ybVswXSA9PSAic2tld3kiICYmIChwYXJhbXMuY291bnQoKSA9PSAxKSkKICAg
ICAgICAgICAgIHQtPnNldFNrZXdZKHBhcmFtc1swXS50b0RvdWJsZSgpKTsKLSAgICAgICAgZWxz
ZSBpZiAoc3VidHJhbnNmb3JtWzBdID09ICJtYXRyaXgiICYmIChwYXJhbXMuY291bnQoKSA9PSA2
KSkgewotICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqcmV0ID0gbmV3IFNWR01hdHJpeEltcGwo
cGFyYW1zWzBdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbXNbMV0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1syXS50b0RvdWJsZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1z
WzNdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXJhbXNbNF0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKTsKLSAgICAg
ICAgICAgIHQtPnNldE1hdHJpeChyZXQpOwotICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN1
YnRyYW5zZm9ybVswXSA9PSAibWF0cml4IiAmJiAocGFyYW1zLmNvdW50KCkgPT0gNikpCisgICAg
ICAgICAgICB0LT5zZXRNYXRyaXgoQWZmaW5lVHJhbnNmb3JtKHBhcmFtc1swXS50b0RvdWJsZSgp
LAorICAgICAgICAgICAgICAgIHBhcmFtc1sxXS50b0RvdWJsZSgpLAorICAgICAgICAgICAgICAg
IHBhcmFtc1syXS50b0RvdWJsZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1szXS50b0RvdWJs
ZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1s0XS50b0RvdWJsZSgpLAorICAgICAgICAgICAg
ICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAodC0+dHlw
ZSgpID09IFNWR19UUkFOU0ZPUk1fVU5LTk9XTikKICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWls
ZWQgdG8gcGFyc2UgYSB2YWxpZCB0cmFuc2Zvcm0sIGFib3J0LgpJbmRleDoga3N2ZzIvc3ZnL1NW
R01hcmtlckVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1l
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDIwICsyNCwxNSBAQAogI2RlZmluZSBLU1ZH
X1NWR01hcmtlckVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAiU1ZH
TGFuZ1NwYWNlSW1wbC5oIgorI2luY2x1ZGUgIktDYW52YXNSZXNvdXJjZXMuaCIKKyNpbmNsdWRl
ICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRv
Vmlld0JveEltcGwuaCIKKyNpbmNsdWRlICJTVkdMYW5nU3BhY2VJbXBsLmgiCiAjaW5jbHVkZSAi
U1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSW1wbC5oIgogCi1jbGFzcyBLQ2FudmFzTWFya2VyOwotCi1uYW1lc3BhY2UgS0RPTQor
bmFtZXNwYWNlIFdlYkNvcmUKIHsKICAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci19OwotCi1uYW1l
c3BhY2UgS1NWRwotewogICAgIGNsYXNzIFNWR0FuZ2xlSW1wbDsKICAgICBjbGFzcyBTVkdBbmlt
YXRlZEFuZ2xlSW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R1RyYW5zZm9ybUltcGwuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdUcmFu
c2Zvcm1JbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
ICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDQyICsyNSwxOCBAQAogI2lm
IFNWR19TVVBQT1JUCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAKLSNpbmNsdWRlICJTVkdNYXRyaXhJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgogI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAia3N2Zy5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
IAotU1ZHVHJhbnNmb3JtSW1wbDo6U1ZHVHJhbnNmb3JtSW1wbCgpIDogU2hhcmVkPFNWR1RyYW5z
Zm9ybUltcGw+KCkKK1NWR1RyYW5zZm9ybUltcGw6OlNWR1RyYW5zZm9ybUltcGwoKSA6IG1fdHlw
ZShTVkdfVFJBTlNGT1JNX1VOS05PV04pLCBtX2FuZ2xlKDApCiB7Ci0gICAgbV9tYXRyaXggPSBT
VkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7Ci0KLSAgICBtX3R5cGUgPSBTVkdf
VFJBTlNGT1JNX1VOS05PV047Ci0gICAgbV9hbmdsZSA9IDA7CiB9CiAKLVNWR1RyYW5zZm9ybUlt
cGw6On5TVkdUcmFuc2Zvcm1JbXBsKCkKK3ZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0TWF0cml4
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewotfQotCi11bnNpZ25lZCBzaG9ydCBT
VkdUcmFuc2Zvcm1JbXBsOjp0eXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90eXBlOwotfQot
Ci1TVkdNYXRyaXhJbXBsICpTVkdUcmFuc2Zvcm1JbXBsOjptYXRyaXgoKSBjb25zdAotewotICAg
IHJldHVybiBtX21hdHJpeC5nZXQoKTsKLX0KLQotZG91YmxlIFNWR1RyYW5zZm9ybUltcGw6OmFu
Z2xlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hbmdsZTsKLX0KLQotdm9pZCBTVkdUcmFuc2Zv
cm1JbXBsOjpzZXRNYXRyaXgoU1ZHTWF0cml4SW1wbCAqbWF0cml4KQotewogICAgIG1fdHlwZSA9
IFNWR19UUkFOU0ZPUk1fTUFUUklYOwogICAgIG1fYW5nbGUgPSAwOwogICAgIApAQCAtNzEsOCAr
NDgsNyBAQAogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOwogICAgIG1fYW5n
bGUgPSAwOwogICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgpOwotICAgIG1fbWF0cml4LT50cmFu
c2xhdGUodHgsIHR5KTsKKyAgICBtX21hdHJpeCA9IHRyYW5zbGF0aW9uTWF0cml4KHR4LCB0eSk7
CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2NhbGUoZG91YmxlIHN4LCBkb3VibGUg
c3kpCkBAIC04MCw4ICs1Niw3IEBACiAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TQ0FMRTsK
ICAgICBtX2FuZ2xlID0gMDsKICAgICAKLSAgICBtX21hdHJpeC0+cmVzZXQoKTsKLSAgICBtX21h
dHJpeC0+c2NhbGVOb25Vbmlmb3JtKHN4LCBzeSk7CisgICAgbV9tYXRyaXggPSBzY2FsZU1hdHJp
eChzeCwgc3kpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNldFJvdGF0ZShkb3VibGUg
YW5nbGUsIGRvdWJsZSBjeCwgZG91YmxlIGN5KQpAQCAtOTAsMTAgKzY1LDkgQEAKICAgICBtX2Fu
Z2xlID0gYW5nbGU7CiAgICAgCiAgICAgLy8gVE9ETzogdG9TdHJpbmcoKSBpbXBsZW1lbnRhdGlv
biwgd2hpY2ggY2FuIHNob3cgY3gsIGN5IChuZWVkIHRvIGJlIHN0b3JlZD8pCi0gICAgbV9tYXRy
aXgtPnJlc2V0KCk7Ci0gICAgbV9tYXRyaXgtPnRyYW5zbGF0ZShjeCwgY3kpOwotICAgIG1fbWF0
cml4LT5yb3RhdGUoYW5nbGUpOwotICAgIG1fbWF0cml4LT50cmFuc2xhdGUoLWN4LCAtY3kpOwor
ICAgIG1fbWF0cml4ID0gdHJhbnNsYXRpb25NYXRyaXgoY3gsIGN5KTsKKyAgICBtX21hdHJpeC5y
b3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgIG1fbWF0cml4LnRyYW5zbGF0ZSgtY3gsIC1jeSk7
CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2tld1goZG91YmxlIGFuZ2xlKQpAQCAt
MTAxLDggKzc1LDcgQEAKICAgICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1NLRVdYOwogICAgIG1f
YW5nbGUgPSBhbmdsZTsKICAgICAKLSAgICBtX21hdHJpeC0+cmVzZXQoKTsKLSAgICBtX21hdHJp
eC0+c2tld1goYW5nbGUpOworICAgIG1fbWF0cml4ID0gc2tld1hNYXRyaXgocmFkaWFucyhhbmds
ZSkpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNldFNrZXdZKGRvdWJsZSBhbmdsZSkK
QEAgLTExMCwxMCArODMsOCBAQAogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fU0tFV1k7CiAg
ICAgbV9hbmdsZSA9IGFuZ2xlOwogICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgpOwotICAgIG1f
bWF0cml4LT5za2V3WShhbmdsZSk7CisgICAgbV9tYXRyaXggPSBza2V3WU1hdHJpeChyYWRpYW5z
KGFuZ2xlKSk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAot
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcv
U1ZHU1ZHRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQAogICAg
IGNsYXNzIFNWR1BvaW50SW1wbDsKICAgICBjbGFzcyBTVkdOdW1iZXJJbXBsOwogICAgIGNsYXNz
IFNWR0xlbmd0aEltcGw7Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdU
cmFuc2Zvcm1JbXBsOwogICAgIGNsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbDsKICAgICBjbGFz
cyBUaW1lU2NoZWR1bGVyOwpAQCAtMTA4LDE2ICsxMDcsMTYgQEAKICAgICAgICAgc3RhdGljIFNW
R0xlbmd0aEltcGwgKmNyZWF0ZVNWR0xlbmd0aCgpOwogICAgICAgICBzdGF0aWMgU1ZHQW5nbGVJ
bXBsICpjcmVhdGVTVkdBbmdsZSgpOwogICAgICAgICBzdGF0aWMgU1ZHUG9pbnRJbXBsICpjcmVh
dGVTVkdQb2ludChjb25zdCBJbnRQb2ludCAmcCA9IEludFBvaW50KCkpOwotICAgICAgICBzdGF0
aWMgU1ZHTWF0cml4SW1wbCAqY3JlYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIHN0YXRpYyBBZmZp
bmVUcmFuc2Zvcm0gY3JlYXRlU1ZHTWF0cml4KCk7CiAgICAgICAgIHN0YXRpYyBTVkdSZWN0SW1w
bCAqY3JlYXRlU1ZHUmVjdCgpOwogICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCAqY3Jl
YXRlU1ZHVHJhbnNmb3JtKCk7Ci0gICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1JbXBsICpjcmVh
dGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCk7CisgICAgICAg
IHN0YXRpYyBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKIAogICAgICAgICAv
LyAndmlydHVhbCBTVkdMb2NhdGFibGUnIGZ1bmN0aW9ucwotICAgICAgICB2aXJ0dWFsIFNWR01h
dHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwg
KmdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBn
ZXRDVE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2NyZWVu
Q1RNKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0
bWw6OlJlbmRlclN0eWxlICopIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICAgdmlydHVhbCBraHRt
bDo6UmVuZGVyT2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1s
OjpSZW5kZXJTdHlsZSAqc3R5bGUpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuY3BwCShyZXZp
c2lvbiAxMjQxMSkKKysrIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgog
I2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
c01hdHJpeC5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NyZWF0b3IuaD4KICNpbmNsdWRl
IDxrY2FudmFzL0tDYW52YXNDb250YWluZXIuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9L
UmVuZGVyaW5nRGV2aWNlLmg+CkBAIC00MCw3ICszOSw2IEBACiAjaW5jbHVkZSAiU1ZHUmVjdElt
cGwuaCIKICNpbmNsdWRlICJTVkdBbmdsZUltcGwuaCIKICNpbmNsdWRlICJTVkdQb2ludEltcGwu
aCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHTnVtYmVySW1wbC5o
IgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5o
IgpAQCAtMTQ1LDEzICsxNDMsMTQgQEAKICAgICBkb3VibGUgX3kgPSB5KCktPmJhc2VWYWwoKS0+
dmFsdWUoKTsKICAgICBkb3VibGUgdyA9IHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKICAg
ICBkb3VibGUgaCA9IGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7Ci0gICAgUmVmUHRyPFNW
R01hdHJpeEltcGw+IHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHcsIGgpOwotICAg
IHZpZXdCb3gtPnFtYXRyaXgoKS5tYXAoX3gsIF95LCAmX3gsICZfeSk7Ci0gICAgdmlld0JveC0+
cW1hdHJpeCgpLm1hcCh3LCBoLCAmdywgJmgpOworICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94
ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsKKyAgICB2aWV3Qm94Lm1hcChfeCwgX3ks
IF94LCBfeSk7CisgICAgZG91YmxlIHJpZ2h0LCBib3R0b207CisgICAgdmlld0JveC5tYXAoX3gg
KyB3LCBfeSArIGgsIHJpZ2h0LCBib3R0b20pOwogICAgIHJldC0+c2V0WChfeCk7CiAgICAgcmV0
LT5zZXRZKF95KTsKLSAgICByZXQtPnNldFdpZHRoKHcpOwotICAgIHJldC0+c2V0SGVpZ2h0KGgp
OworICAgIHJldC0+c2V0V2lkdGgocmlnaHQgLSBfeCk7CisgICAgcmV0LT5zZXRIZWlnaHQoYm90
dG9tIC0gX3kpOwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTM1NSwxNSArMzU0LDEyIEBACiAK
IFNWR1BvaW50SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1BvaW50KGNvbnN0IElu
dFBvaW50ICZwKQogewotICAgIGlmKHAuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBuZXcgU1ZH
UG9pbnRJbXBsKCk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gbmV3IFNWR1BvaW50SW1wbChw
KTsKKyAgICByZXR1cm4gbmV3IFNWR1BvaW50SW1wbChwKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAq
U1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR01hdHJpeCgpCitBZmZpbmVUcmFuc2Zvcm0gU1ZH
U1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR01hdHJpeCgpCiB7Ci0gICAgcmV0dXJuIG5ldyBTVkdN
YXRyaXhJbXBsKCk7CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogfQogCiBTVkdSZWN0
SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1JlY3QoKQpAQCAtMzc2LDQ0ICszNzIs
MzIgQEAKICAgICByZXR1cm4gbmV3IFNWR1RyYW5zZm9ybUltcGwoKTsKIH0KIAotU1ZHVHJhbnNm
b3JtSW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4SW1wbCAqbWF0cml4KQorU1ZHVHJhbnNmb3JtSW1wbCogU1ZHU1ZHRWxlbWVudElt
cGw6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBt
YXRyaXgpCiB7ICAgIAotICAgIFNWR1RyYW5zZm9ybUltcGwgKm9iaiA9IFNWR1NWR0VsZW1lbnRJ
bXBsOjpjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKKyAgICBTVkdUcmFuc2Zvcm1JbXBsKiBvYmogPSBT
VkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAgICAgb2JqLT5zZXRNYXRy
aXgobWF0cml4KTsKICAgICByZXR1cm4gb2JqOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTVkdF
bGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50
SW1wbDo6Z2V0Q1RNKCkgY29uc3QKIHsKLSAgICBTVkdNYXRyaXhJbXBsICptYXQgPSBjcmVhdGVT
VkdNYXRyaXgoKTsKLSAgICBpZihtYXQpCi0gICAgewotICAgICAgICBtYXQtPnRyYW5zbGF0ZSh4
KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgeSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOworICAgIEFm
ZmluZVRyYW5zZm9ybSBtYXQgPSB0cmFuc2xhdGlvbk1hdHJpeCh4KCktPmJhc2VWYWwoKS0+dmFs
dWUoKSwgeSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogCi0gICAgICAgIGlmKGF0dHJpYnV0ZXMo
KS0+Z2V0TmFtZWRJdGVtKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5z
Zm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIGhlaWdodCgpLT5iYXNlVmFsKCktPnZh
bHVlKCkpOwotICAgICAgICAgICAgbWF0LT5tdWx0aXBseSh2aWV3Qm94LmdldCgpKTsKLSAgICAg
ICAgfQotICAgIH0KKyAgICBpZiAoYXR0cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFtZXM6
OnZpZXdCb3hBdHRyKSkKKyAgICAgICAgbWF0ICo9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lk
dGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsK
IAogICAgIHJldHVybiBtYXQ7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1NWR0VsZW1lbnRJbXBs
OjpnZXRTY3JlZW5DVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1NWR0VsZW1lbnRJbXBs
OjpnZXRTY3JlZW5DVE0oKSBjb25zdAogewotICAgIFNWR01hdHJpeEltcGwgKm1hdCA9IFNWR1N0
eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKTsKLSAgICBpZihtYXQpCi0g
ICAgewotICAgICAgICBtYXQtPnRyYW5zbGF0ZSh4KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgeSgp
LT5iYXNlVmFsKCktPnZhbHVlKCkpOworICAgIEFmZmluZVRyYW5zZm9ybSBtYXQgPSBTVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCk7CiAKLSAgICAgICAgaWYoYXR0
cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKSkKLSAgICAgICAg
ewotICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IHZpZXdCb3ggPSB2aWV3Qm94VG9W
aWV3VHJhbnNmb3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VW
YWwoKS0+dmFsdWUoKSk7Ci0gICAgICAgICAgICBtYXQtPm11bHRpcGx5KHZpZXdCb3guZ2V0KCkp
OwotICAgICAgICB9Ci0gICAgfQorICAgIG1hdC50cmFuc2xhdGUoeCgpLT5iYXNlVmFsKCktPnZh
bHVlKCksIHkoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKIAorICAgIGlmIChhdHRyaWJ1dGVzKCkt
PmdldE5hbWVkSXRlbShTVkdOYW1lczo6dmlld0JveEF0dHIpKQorICAgICAgICBtYXQgKj0gdmll
d0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIGhlaWdodCgp
LT5iYXNlVmFsKCktPnZhbHVlKCkpOworCiAgICAgcmV0dXJuIG1hdDsKIH0KIApJbmRleDoga3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdM
b2NhdGFibGVJbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9zdmcvU1ZHTG9jYXRh
YmxlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEyICsyNCwxMiBAQAogI2lmIFNWR19T
VVBQT1JUCiAjaW5jbHVkZSA8a2RvbS9rZG9tLmg+CiAjaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIK
LSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIK
ICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudElt
cGwuaCIKIAogI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgIkFmZmlu
ZVRyYW5zZm9ybS5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtODQsNjMgKzg0LDQ0
IEBACiAgICAgewogICAgICAgICBGbG9hdFJlY3QgYmJveFJlY3QgPSBlLT5yZW5kZXJlcigpLT5y
ZWxhdGl2ZUJCb3goZmFsc2UpOwogICAgICAgICByZWN0ID0gbmV3IFNWR1JlY3RJbXBsKDApOwot
ICAgICAgICByZWN0LT5zZXRYKGJib3hSZWN0LngoKSk7Ci0gICAgICAgIHJlY3QtPnNldFkoYmJv
eFJlY3QueSgpKTsKLSAgICAgICAgcmVjdC0+c2V0V2lkdGgoYmJveFJlY3Qud2lkdGgoKSAtIDEp
OwotICAgICAgICByZWN0LT5zZXRIZWlnaHQoYmJveFJlY3QuaGVpZ2h0KCkgLSAxKTsKKyAgICAg
ICAgcmVjdC0+c2V0WChiYm94UmVjdC50b3AoKSk7CisgICAgICAgIHJlY3QtPnNldFkoYmJveFJl
Y3QubGVmdCgpKTsKKyAgICAgICAgcmVjdC0+c2V0V2lkdGgoYmJveFJlY3Qud2lkdGgoKSAtIDEp
OyAvLyBGSVhNRTogV2h5IC0xPworICAgICAgICByZWN0LT5zZXRIZWlnaHQoYmJveFJlY3QuaGVp
Z2h0KCkgLSAxKTsgLy8gRklYTUU6IFdoeSAtMT8KICAgICB9CiAKICAgICByZXR1cm4gcmVjdDsK
IH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKGNvbnN0IFNWR0Vs
ZW1lbnRJbXBsICplbGVtZW50KQorQWZmaW5lVHJhbnNmb3JtIFNWR0xvY2F0YWJsZUltcGw6Omdl
dENUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCkKIHsKLSAgICBpZighZWxlbWVudCkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gQWZm
aW5lVHJhbnNmb3JtKCk7CiAKLSAgICBTVkdNYXRyaXhJbXBsICpjdG0gPSBTVkdTVkdFbGVtZW50
SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7Ci0KICAgICBLRE9NOjpOb2RlSW1wbCAqcGFyZW50ID0g
ZWxlbWVudC0+cGFyZW50Tm9kZSgpOwotICAgIGlmKHBhcmVudCAmJiBwYXJlbnQtPm5vZGVUeXBl
KCkgPT0gS0RPTTo6RUxFTUVOVF9OT0RFKQotICAgIHsKLSAgICAgICAgU1ZHRWxlbWVudEltcGwg
KnBhcmVudEVsZW1lbnQgPSBzdmdfZHluYW1pY19jYXN0KHBhcmVudCk7Ci0gICAgICAgIGlmKHBh
cmVudEVsZW1lbnQgJiYgcGFyZW50RWxlbWVudC0+aXNTdHlsZWRMb2NhdGFibGUoKSkKLSAgICAg
ICAgewotICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IHBhcmVudENUTSA9IHN0YXRp
Y19jYXN0PFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsICo+KHBhcmVudEVsZW1lbnQpLT5n
ZXRDVE0oKTsKLSAgICAgICAgICAgIGN0bS0+bXVsdGlwbHkocGFyZW50Q1RNLmdldCgpKTsKLSAg
ICAgICAgfQorICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5ub2RlVHlwZSgpID09IEtET006OkVM
RU1FTlRfTk9ERSkgeworICAgICAgICBTVkdFbGVtZW50SW1wbCogcGFyZW50RWxlbWVudCA9IHN2
Z19keW5hbWljX2Nhc3QocGFyZW50KTsKKyAgICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgcGFy
ZW50RWxlbWVudC0+aXNTdHlsZWRMb2NhdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCAqPihwYXJlbnRFbGVtZW50KS0+
Z2V0Q1RNKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGN0bTsKKyAgICByZXR1cm4gQWZmaW5lVHJh
bnNmb3JtKCk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0xvY2F0YWJsZUltcGw6OmdldFNjcmVl
bkNUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCkKK0FmZmluZVRyYW5zZm9ybSBTVkdM
b2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQp
CiB7Ci0gICAgaWYoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmICghZWxlbWVu
dCkKKyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogCi0gICAgU1ZHTWF0cml4SW1w
bCAqY3RtID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR01hdHJpeCgpOwotCi0gICAgS0RP
TTo6Tm9kZUltcGwgKnBhcmVudCA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsKLSAgICBpZihwYXJl
bnQgJiYgcGFyZW50LT5pc0VsZW1lbnROb2RlKCkpCi0gICAgewotICAgICAgICBTVkdFbGVtZW50
SW1wbCAqcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnRJbXBsICo+KHBhcmVu
dCk7Ci0gICAgICAgIGlmKHBhcmVudEVsZW1lbnQtPmlzU3R5bGVkTG9jYXRhYmxlKCkpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBwYXJlbnRDVE0gPSBzdGF0
aWNfY2FzdDxTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCAqPihwYXJlbnRFbGVtZW50KS0+
Z2V0U2NyZWVuQ1RNKCk7Ci0gICAgICAgICAgICBjdG0tPm11bHRpcGx5KHBhcmVudENUTS5nZXQo
KSk7Ci0gICAgICAgIH0KKyAgICBLRE9NOjpOb2RlSW1wbCogcGFyZW50ID0gZWxlbWVudC0+cGFy
ZW50Tm9kZSgpOworICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0VsZW1lbnROb2RlKCkpIHsK
KyAgICAgICAgU1ZHRWxlbWVudEltcGwqIHBhcmVudEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdF
bGVtZW50SW1wbCAqPihwYXJlbnQpOworICAgICAgICBpZiAocGFyZW50RWxlbWVudC0+aXNTdHls
ZWRMb2NhdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50SW1wbCAqPihwYXJlbnRFbGVtZW50KS0+Z2V0U2NyZWVuQ1RNKCk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIGN0bTsKKyAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiB9
Ci0vKgotU1ZHTWF0cml4SW1wbCAqU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVt
ZW50KFNWR0VsZW1lbnRJbXBsICopIGNvbnN0Ci17Ci0gICAgLy8gVE9ETyEKLSAgICByZXR1cm4g
MDsKLX0KLSovCisKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkx
LDcgKzE5MSw3IEBACiAgICAgewogICAgIH0KIAotICAgIGlmKGlzQWNjdW11bGF0ZWQoKSAmJiBy
ZXBlYXRpb25zKCkgIT0gMC4wKQorICAgIGlmKGlzQWNjdW11bGF0ZWQoKSAmJiByZXBldGl0aW9u
cygpICE9IDAuMCkKICAgICB7CiAgICAgfQogCkBAIC0yMDAsOSArMjAwLDkgQEAKICAgICAvLyBF
bmQgY29uZGl0aW9uLgogICAgIGlmKHRpbWVQZXJjZW50YWdlID09IDEuMCkKICAgICB7Ci0gICAg
ICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBtX3JlcGVhdENvdW50
IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQorICAgICAgICBpZigobV9yZXBl
YXRDb3VudCA+IDAgJiYgbV9yZXBldGl0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0lu
ZGVmaW5pdGUobV9yZXBlYXRDb3VudCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fcmVwZWF0
aW9ucysrOworICAgICAgICAgICAgbV9yZXBldGl0aW9ucysrOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKSW5kZXg6IGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAx
MjQxMSkKKysrIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1
ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwu
aCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBs
LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgiCkBAIC04
OSwxMiArODgsMTIgQEAKICAgICByZXR1cm4gbV9zaW5nbGVTaG90OwogfQogICAgICAgICAKLWRv
dWJsZSBTVkdUaW1lcjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBzZWQsIGRv
dWJsZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVwZWF0aW9u
cykKK2RvdWJsZSBTVkdUaW1lcjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBz
ZWQsIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVw
ZXRpdGlvbnMpCiB7CiAgICAgZG91YmxlIHBlcmNlbnRhZ2UgPSAwLjA7CiAKLSAgICAvLyBUYWtl
IGludG8gYWNjb3VudCByZXBlYXRpb25zLi4uCi0gICAgZG91YmxlIHVzZUVsYXBzZWQgPSBlbGFw
c2VkIC0gKGR1cmF0aW9uICogcmVwZWF0aW9ucyk7CisgICAgLy8gVGFrZSBpbnRvIGFjY291bnQg
cmVwZXRpdGlvbnMuLi4KKyAgICBkb3VibGUgdXNlRWxhcHNlZCA9IGVsYXBzZWQgLSAoZHVyYXRp
b24gKiByZXBldGl0aW9ucyk7CiAgICAgCiAgICAgaWYoZHVyYXRpb24gPiAwLjAgJiYgZW5kID09
IDAuMCkKICAgICAgICAgcGVyY2VudGFnZSA9IDEuMCAtICgoKHN0YXJ0ICsgZHVyYXRpb24pIC0g
dXNlRWxhcHNlZCkgLyBkdXJhdGlvbik7CkBAIC0xMDgsNyArMTA3LDcgQEAKICAgICBlbHNlIGlm
KGR1cmF0aW9uID09IDAuMCAmJiBlbmQgIT0gMC4wKQogICAgICAgICBwZXJjZW50YWdlID0gMS4w
IC0gKCgoc3RhcnQgKyBlbmQpIC0gdXNlRWxhcHNlZCkgLyBlbmQpOwogCi0gICAgLy8ga2REZWJ1
ZygpIDw8ICJSRVRVUk5JTkcgUEVSQ0VOVEFHRTogIiA8PCBwZXJjZW50YWdlIDw8ICIgKGVsYXBz
ZWQ6ICIgPDwgZWxhcHNlZCA8PCAiIC0+ICIgPDwgdXNlRWxhcHNlZCA8PCAiIHN0YXJ0OiAiIDw8
IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCAiIGR1cjogIiA8PCBkdXJhdGlvbiA8PCAiIHJl
cDogIiA8PCByZXBlYXRpb25zIDw8ICIpIiA8PCBlbmRsOworICAgIC8vIGtkRGVidWcoKSA8PCAi
UkVUVVJOSU5HIFBFUkNFTlRBR0U6ICIgPDwgcGVyY2VudGFnZSA8PCAiIChlbGFwc2VkOiAiIDw8
IGVsYXBzZWQgPDwgIiAtPiAiIDw8IHVzZUVsYXBzZWQgPDwgIiBzdGFydDogIiA8PCBzdGFydCA8
PCAiIGVuZDogIiA8PCBlbmQgPDwgIiBkdXI6ICIgPDwgZHVyYXRpb24gPDwgIiByZXA6ICIgPDwg
cmVwZXRpdGlvbnMgPDwgIikiIDw8IGVuZGw7CiAgICAgcmV0dXJuIHBlcmNlbnRhZ2U7CiB9CiAK
QEAgLTE4OCw3ICsxODcsNyBAQAogICAgICAgICAgICAgZG91YmxlIGVuZCA9IGFuaW1hdGlvbi0+
Z2V0RW5kVGltZSgpOwogICAgICAgICAgICAgZG91YmxlIHN0YXJ0ID0gYW5pbWF0aW9uLT5nZXRT
dGFydFRpbWUoKTsKICAgICAgICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IGFuaW1hdGlvbi0+Z2V0
U2ltcGxlRHVyYXRpb24oKTsKLSAgICAgICAgICAgIGRvdWJsZSByZXBlYXRpb25zID0gYW5pbWF0
aW9uLT5yZXBlYXRpb25zKCk7CisgICAgICAgICAgICBkb3VibGUgcmVwZXRpdGlvbnMgPSBhbmlt
YXRpb24tPnJlcGV0aXRpb25zKCk7CiAKICAgICAgICAgICAgIC8vIFZhbGlkYXRlIGFuaW1hdGlv
biB0aW1pbmcgc2V0dGluZ3M6CiAgICAgICAgICAgICAvLyAjMSAoZHVyYXRpb24gPiAwKSAtPiBm
aW5lCkBAIC0xOTgsNyArMTk3LDcgQEAKICAgICAgICAgICAgICAgIChhbmltYXRpb24tPmlzSW5k
ZWZpbml0ZShkdXJhdGlvbikgJiYgZW5kIDw9IDAuMCkpIC8vIElnbm9yZSBkdXI9IjAiIG9yIGR1
cj0iLW5lZyIuLi4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgZmxvYXQgcGVyY2VudGFnZSA9IGNhbGN1bGF0ZVRpbWVQZXJjZW50YWdlKGVsYXBz
ZWQsIHN0YXJ0LCBlbmQsIGR1cmF0aW9uLCByZXBlYXRpb25zKTsKKyAgICAgICAgICAgIGZsb2F0
IHBlcmNlbnRhZ2UgPSBjYWxjdWxhdGVUaW1lUGVyY2VudGFnZShlbGFwc2VkLCBzdGFydCwgZW5k
LCBkdXJhdGlvbiwgcmVwZXRpdGlvbnMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYocGVyY2VudGFnZSA8PSAxLjAgfHwgYW5pbWF0aW9uLT5jb25uZWN0ZWQoKSkKICAgICAgICAg
ICAgICAgICBhbmltYXRpb24tPmhhbmRsZVRpbWVyRXZlbnQocGVyY2VudGFnZSk7CkBAIC0yMTIs
MzYgKzIxMSwzMSBAQAogICAgICAgICAgICAgICAgIGlmKCFhbmltVHJhbnNmb3JtKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRy
aXhJbXBsPiB0cmFuc2Zvcm1NYXRyaXggPSBhbmltVHJhbnNmb3JtLT50cmFuc2Zvcm1NYXRyaXgo
KTsKLSAgICAgICAgICAgICAgICBpZighdHJhbnNmb3JtTWF0cml4KQotICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
TWF0cml4ID0gYW5pbVRyYW5zZm9ybS0+dHJhbnNmb3JtTWF0cml4KCk7CiAKLSAgICAgICAgICAg
ICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gaW5pdGlhbE1hdHJpeCA9IGFuaW1UcmFuc2Zvcm0t
PmluaXRpYWxNYXRyaXgoKTsKKyAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gaW5pdGlh
bE1hdHJpeCA9IGFuaW1UcmFuc2Zvcm0tPmluaXRpYWxNYXRyaXgoKTsKICAgICAgICAgICAgICAg
ICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gZGF0YSA9IG5ldyBTVkdUcmFuc2Zvcm1JbXBsKCk7
CiAKICAgICAgICAgICAgICAgICBpZighdGFyZ2V0VHJhbnNmb3JtcykgLy8gbGF6eSBjcmVhdGlv
biwgb25seSBpZiBuZWVkZWQuCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICB0YXJnZXRUcmFuc2Zvcm1zID0gbmV3IFNWR1RyYW5zZm9ybUxpc3RJbXBsKCk7CisgICAgICAg
ICAgICAgICAgICAgIHRhcmdldFRyYW5zZm9ybXMgPSBuZXcgU1ZHVHJhbnNmb3JtTGlzdEltcGw7
CiAKLSAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkgJiYgaW5p
dGlhbE1hdHJpeCkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1hdHJpeCA9IG5ldyBTVkdNYXRyaXhJbXBsKGluaXRp
YWxNYXRyaXgtPnFtYXRyaXgoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeChtYXRyaXguZ2V0KCkpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGEtPnNldE1hdHJpeChpbml0aWFsTWF0cml4KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldFRyYW5zZm9ybXMtPmFwcGVuZEl0ZW0oZGF0YS5nZXQoKSk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG5ldyBTVkdUcmFuc2Zvcm1JbXBsOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYo
dGFyZ2V0VHJhbnNmb3Jtcy0+bnVtYmVyT2ZJdGVtcygpIDw9IDEpCi0gICAgICAgICAgICAgICAg
ICAgIGRhdGEtPnNldE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkpOworICAgICAgICAgICAg
ICAgICAgICBkYXRhLT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZighYW5pbWF0
aW9uLT5pc0FkZGl0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRUcmFuc2Zv
cm1zLT5jbGVhcigpOyAgICAKICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIGRhdGEtPnNldE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkpOworICAgICAgICAgICAg
ICAgICAgICBkYXRhLT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsKICAgICAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgICAgICB0YXJnZXRUcmFuc2Zvcm1zLT5hcHBlbmRJdGVtKGRhdGEu
Z2V0KCkpOwpJbmRleDoga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga3N2
ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5o
IgogCiAjaW5jbHVkZSAicmVuZGVyX2ltYWdlLmgiCkluZGV4OiBrc3ZnMi9taXNjL0tDYW52YXNS
ZW5kZXJpbmdTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmlu
Z1N0eWxlLmgJKHJldmlzaW9uIDEyNDExKQorKysga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVyaW5n
U3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2lmIFNWR19TVVBQT1JU
CiAKICNpbmNsdWRlICJjc3NfdmFsdWVpbXBsLmgiCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
TWF0cml4Lmg+CiAjaW5jbHVkZSA8cXZhbHVlbGlzdC5oPgogCiAvLyBGSVhNRTogdGhlc2Ugc2hv
dWxkIGJlIHJlbW92ZWQsIHVzZSBLU1ZHIG9uZXMgaW5zdGVhZApJbmRleDoga3N2ZzIvbWlzYy9L
U1ZHVGltZVNjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hl
ZHVsZXIuaAkocmV2aXNpb24gMTI0MTEpCisrKyBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAKICAgICAgICAgdm9pZCByZW1vdmVO
b3RpZnkoU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwgKmVsZW1lbnQpOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgZG91YmxlIGNhbGN1bGF0ZVRpbWVQZXJjZW50YWdlKGRvdWJsZSBlbGFwc2VkLCBk
b3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIHJlcGVhdGlv
bnMpOworICAgICAgICBkb3VibGUgY2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBz
ZWQsIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVw
ZXRpdGlvbnMpOwogCiAgICAgICAgIHVuc2lnbmVkIGludCBtX21zOwogICAgICAgICBib29sIG1f
aW52b2tlZCwgbV9zaW5nbGVTaG90OwpJbmRleDoga3dxL0tXUVBpeG1hcC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrd3EvS1dRUGl4bWFwLm1tCShyZXZpc2lvbiAxMjQxMSkKKysrIGt3cS9LV1FQaXhtYXAu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQAogCiB2b2lkIFFQaXhtYXA6OnNl
dEFuaW1hdGlvblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKIHsKLSAgICBbbV9pbWFn
ZVJlbmRlcmVyIHNldEFuaW1hdGlvblJlY3Q6TlNNYWtlUmVjdChyZWN0LngoKSwgcmVjdC55KCks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSldOworICAgIFttX2ltYWdlUmVuZGVyZXIgc2V0
QW5pbWF0aW9uUmVjdDpyZWN0XTsKIH0KIAogQGludGVyZmFjZSBXZWJJbWFnZUNhbGxiYWNrIDog
TlNPYmplY3QKSW5kZXg6IGt3cS9LV1FXTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdN
YXRyaXguaAkocmV2aXNpb24gMTI0MTEpCisrKyBrd3EvS1dRV01hdHJpeC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUVdNQVRS
SVhfSF8KLSNkZWZpbmUgUVdNQVRSSVhfSF8KLQotI2lmIF9fQVBQTEVfXwotLy8gRklYTUU6IEp1
c3QgY29tbWVudCBvdXQgdGhlIGVudGlyZSBmaWxlLCBzaW5jZSBpdHMgaW1wbGVtZW50YXRpb24g
aXMgY29tcGxldGVseSBDRy1zcGVjaWZpYy4KLQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2Vydmlj
ZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xh
c3MgSW50UmVjdDsKLSAgICBjbGFzcyBGbG9hdFJlY3Q7Ci19Ci0KLWNsYXNzIFFNYXRyaXggewot
cHVibGljOgotICAgIFFNYXRyaXgoKTsKLSAgICBRTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwg
ZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSk7Ci0gICAgUU1hdHJpeChD
R0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pOwotCi0gICAgdm9pZCBzZXRNYXRyaXgoZG91Ymxl
IGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsK
LSAgICB2b2lkIG1hcChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSAqeDIsIGRvdWJsZSAqeTIp
IGNvbnN0OwotICAgIFdlYkNvcmU6OkludFJlY3QgUU1hdHJpeDo6bWFwUmVjdChjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IFFNYXRyaXg6Om1h
cFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgCi0gICAgYm9vbCBp
c0lkZW50aXR5KCkgY29uc3Q7Ci0gICAgCi0gICAgZG91YmxlIG0xMSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNmb3JtLmE7IH0KLSAgICBkb3VibGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2Zvcm0uYjsgfQotICAgIGRvdWJsZSBtMjEoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5j
OyB9Ci0gICAgZG91YmxlIG0yMigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmQ7IH0KLSAg
ICBkb3VibGUgZHgoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS50eDsgfQotICAgIGRvdWJs
ZSBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLnR5OyB9Ci0KLSAgICB2b2lkIHJlc2V0
KCk7Ci0gICAgCi0gICAgUU1hdHJpeCAmc2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpOwotICAg
IFFNYXRyaXggJnJvdGF0ZShkb3VibGUgZCk7Ci0gICAgUU1hdHJpeCAmdHJhbnNsYXRlKGRvdWJs
ZSB0eCwgZG91YmxlIHR5KTsKLSAgICBRTWF0cml4ICZzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBz
eSk7Ci0gICAgCi0gICAgZG91YmxlIGRldCgpIGNvbnN0OwotICAgIGJvb2wgaXNJbnZlcnRpYmxl
KCkgY29uc3Q7Ci0gICAgUU1hdHJpeCBpbnZlcnQoKSBjb25zdDsKLQotICAgIG9wZXJhdG9yIENH
QWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7Ci0KLSAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IFFN
YXRyaXggJikgY29uc3Q7Ci0gICAgUU1hdHJpeCAmb3BlcmF0b3IqPSAoY29uc3QgUU1hdHJpeCAm
KTsKLSAgICBRTWF0cml4IG9wZXJhdG9yKiAoY29uc3QgUU1hdHJpeCAmbTIpOwotICAgIAotcHJp
dmF0ZToKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKLX07Ci0KLSNkZWZpbmUg
UVdNYXRyaXggUU1hdHJpeAotCi0jZW5kaWYgLy8gX19BUFBMRV9fCi0KLSNlbmRpZgpJbmRleDog
a3dxL0tXUUZpbGVCdXR0b24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUUZpbGVCdXR0b24ubW0J
KHJldmlzaW9uIDEyNDExKQorKysga3dxL0tXUUZpbGVCdXR0b24ubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEwNiwxMCArMTA2LDggQEAKIHsKICAgICBOU1ZpZXcgPFdlYkNvcmVGaWxlQnV0dG9uPiAq
YnV0dG9uID0gZ2V0VmlldygpOwogCi0gICAgTlNSZWN0IGZyYW1lID0ge3swLDB9LHswLDB9fTsK
ICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKLSAgICBmcmFtZSA9IFtidXR0b24gdmlzdWFsRnJh
bWVdOwotICAgIHJldHVybiBJbnRSZWN0KGZyYW1lKTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50
UmVjdChbYnV0dG9uIHZpc3VhbEZyYW1lXSk7CiAgICAgS1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsK
ICAgICByZXR1cm4gSW50UmVjdCgpOwogfQpJbmRleDoga3dxL0tXUUNvbWJvQm94Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGt3cS9LV1FDb21ib0JveC5tbQkocmV2aXNpb24gMTI0MTEpCisrKyBrd3EvS1dR
Q29tYm9Cb3gubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyMCwxNCArMjIwLDE0IEBACiBJbnRSZWN0
IFFDb21ib0JveDo6ZnJhbWVHZW9tZXRyeSgpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByID0gUVdp
ZGdldDo6ZnJhbWVHZW9tZXRyeSgpOwotICAgIHJldHVybiBJbnRSZWN0KHIueCgpICsgZGltZW5z
aW9ucygpW2xlZnRNYXJnaW5dLCByLnkoKSArIGRpbWVuc2lvbnMoKVt0b3BNYXJnaW5dLAorICAg
IHJldHVybiBJbnRSZWN0KHIubGVmdCgpICsgZGltZW5zaW9ucygpW2xlZnRNYXJnaW5dLCByLnRv
cCgpICsgZGltZW5zaW9ucygpW3RvcE1hcmdpbl0sCiAgICAgICAgIHIud2lkdGgoKSAtIChkaW1l
bnNpb25zKClbbGVmdE1hcmdpbl0gKyBkaW1lbnNpb25zKClbcmlnaHRNYXJnaW5dKSwKICAgICAg
ICAgci5oZWlnaHQoKSAtIChkaW1lbnNpb25zKClbdG9wTWFyZ2luXSArIGRpbWVuc2lvbnMoKVti
b3R0b21NYXJnaW5dKSk7CiB9CiAKLXZvaWQgUUNvbWJvQm94OjpzZXRGcmFtZUdlb21ldHJ5KGNv
bnN0IEludFJlY3QgJnIpCit2b2lkIFFDb21ib0JveDo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCBJ
bnRSZWN0JiByKQogewotICAgIFFXaWRnZXQ6OnNldEZyYW1lR2VvbWV0cnkoSW50UmVjdCgtZGlt
ZW5zaW9ucygpW2xlZnRNYXJnaW5dICsgci54KCksIC1kaW1lbnNpb25zKClbdG9wTWFyZ2luXSAr
IHIueSgpLAorICAgIFFXaWRnZXQ6OnNldEZyYW1lR2VvbWV0cnkoSW50UmVjdCgtZGltZW5zaW9u
cygpW2xlZnRNYXJnaW5dICsgci5sZWZ0KCksIC1kaW1lbnNpb25zKClbdG9wTWFyZ2luXSArIHIu
dG9wKCksCiAgICAgICAgIGRpbWVuc2lvbnMoKVtsZWZ0TWFyZ2luXSArIHIud2lkdGgoKSArIGRp
bWVuc2lvbnMoKVtyaWdodE1hcmdpbl0sCiAgICAgICAgIGRpbWVuc2lvbnMoKVt0b3BNYXJnaW5d
ICsgci5oZWlnaHQoKSArIGRpbWVuc2lvbnMoKVtib3R0b21NYXJnaW5dKSk7CiB9CkluZGV4OiBr
d3EvS1dRUGFpbnRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRUGFpbnRlci5tbQkocmV2aXNp
b24gMTI0MTEpCisrKyBrd3EvS1dRUGFpbnRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDU5LDcg
KzQ1OSw3IEBACiAKIHZvaWQgUVBhaW50ZXI6OmRyYXdQaXhtYXAoY29uc3QgSW50UG9pbnQgJnAs
IGNvbnN0IFFQaXhtYXAgJnBpeCwgY29uc3QgSW50UmVjdCAmcikKIHsKLSAgICBkcmF3UGl4bWFw
KHAueCgpLCBwLnkoKSwgcGl4LCByLngoKSwgci55KCksIHIud2lkdGgoKSwgci5oZWlnaHQoKSk7
CisgICAgZHJhd1BpeG1hcChwLngoKSwgcC55KCksIHBpeCwgci5sZWZ0KCksIHIudG9wKCksIHIu
d2lkdGgoKSwgci5oZWlnaHQoKSk7CiB9CiAKIHN0cnVjdCBDb21wb3NpdGVPcGVyYXRvcgpAQCAt
NTE5LDcgKzUxOSw3IEBACiAKIHZvaWQgUVBhaW50ZXI6OmRyYXdQaXhtYXAoY29uc3QgSW50UG9p
bnQgJnAsIGNvbnN0IFFQaXhtYXAgJnBpeCwgY29uc3QgSW50UmVjdCAmciwgY29uc3QgUVN0cmlu
ZyAmY29tcG9zaXRlT3BlcmF0b3IpCiB7Ci0gICAgZHJhd1BpeG1hcChwLngoKSwgcC55KCksIHBp
eCwgci54KCksIHIueSgpLCByLndpZHRoKCksIHIuaGVpZ2h0KCksIGNvbXBvc2l0ZU9wZXJhdG9y
RnJvbVN0cmluZyhjb21wb3NpdGVPcGVyYXRvcikpOworICAgIGRyYXdQaXhtYXAocC54KCksIHAu
eSgpLCBwaXgsIHIubGVmdCgpLCByLnRvcCgpLCByLndpZHRoKCksIHIuaGVpZ2h0KCksIGNvbXBv
c2l0ZU9wZXJhdG9yRnJvbVN0cmluZyhjb21wb3NpdGVPcGVyYXRvcikpOwogfQogCiB2b2lkIFFQ
YWludGVyOjpkcmF3UGl4bWFwKCBpbnQgeCwgaW50IHksIGNvbnN0IFFQaXhtYXAgJnBpeG1hcCwK
QEAgLTgyNywzMCArODI3LDMwIEBACiAgICAgLy8gbm90IGNsaXBwaW5nIHRoZSBvdGhlciAzLzQg
b2YgdGhlIGVsbGlwc2Ugd2UgZG9uJ3QgY2FyZSBhYm91dC4gIFdlJ3JlIHJlbHlpbmcgb24gdGhl
IGZhY3QgdGhhdCBmb3IKICAgICAvLyBub3JtYWwgdXNlIGNhc2VzIHRoZXNlIGVsbGlwc2VzIHdv
bid0IG92ZXJsYXAgb25lIGFub3RoZXIgKG9yIHdoZW4gdGhleSBkbyB0aGUgY3VydmF0dXJlIG9m
IG9uZSB3aWxsCiAgICAgLy8gYmUgc3Vic3VtZWQgYnkgdGhlIG90aGVyKS4KLSAgICBDR0NvbnRl
eHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCksIHJlY3QueSgp
LCB0b3BMZWZ0LndpZHRoKCkgKiAyLCB0b3BMZWZ0LmhlaWdodCgpICogMikpOwotICAgIENHQ29u
dGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSArIHJlY3Qu
d2lkdGgoKSAtIHRvcFJpZ2h0LndpZHRoKCkgKiAyLCByZWN0LnkoKSwKKyAgICBDR0NvbnRleHRB
ZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC5sZWZ0KCksIHJlY3QudG9w
KCksIHRvcExlZnQud2lkdGgoKSAqIDIsIHRvcExlZnQuaGVpZ2h0KCkgKiAyKSk7CisgICAgQ0dD
b250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QucmlnaHQoKSAt
IHRvcFJpZ2h0LndpZHRoKCkgKiAyLCByZWN0LnRvcCgpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdodC53aWR0aCgpICogMiwgdG9wUmln
aHQuaGVpZ2h0KCkgKiAyKSk7Ci0gICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0
LCBDR1JlY3RNYWtlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSBib3R0b21M
ZWZ0LmhlaWdodCgpICogMiwKKyAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQs
IENHUmVjdE1ha2UocmVjdC5sZWZ0KCksIHJlY3QudG9wKCkgKyByZWN0LmhlaWdodCgpIC0gYm90
dG9tTGVmdC5oZWlnaHQoKSAqIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQud2lkdGgoKSAqIDIsIGJvdHRvbUxlZnQuaGVpZ2h0
KCkgKiAyKSk7Ci0gICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0LCBDR1JlY3RN
YWtlKHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gYm90dG9tUmlnaHQud2lkdGgoKSAqIDIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSAtIGJvdHRvbVJpZ2h0LmhlaWdodCgpICogMiwKKyAgICBDR0NvbnRl
eHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC5yaWdodCgpIC0gYm90
dG9tUmlnaHQud2lkdGgoKSAqIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY3QuYm90dG9tKCkgLSBib3R0b21SaWdodC5oZWlnaHQoKSAqIDIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRv
bVJpZ2h0LndpZHRoKCkgKiAyLCBib3R0b21SaWdodC5oZWlnaHQoKSAqIDIpKTsKICAgICAKICAg
ICAvLyBOb3cgYWRkIGZpdmUgcmVjdHMgKG9uZSBmb3IgZWFjaCBlZGdlIHJlY3QgaW4gYmV0d2Vl
biB0aGUgcm91bmRlZCBjb3JuZXJzIGFuZCBvbmUgZm9yIHRoZSBpbnRlcmlvcikuCi0gICAgQ0dD
b250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpICsgdG9wTGVmdC53aWR0
aCgpLCByZWN0LnkoKSwKKyAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRleHQsIENHUmVjdE1ha2Uo
cmVjdC5sZWZ0KCkgKyB0b3BMZWZ0LndpZHRoKCksIHJlY3QudG9wKCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qud2lkdGgoKSAtIHRvcExlZnQud2lkdGgo
KSAtIHRvcFJpZ2h0LndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtNYXgodG9wTGVmdC5oZWlnaHQoKSwgdG9wUmlnaHQuaGVpZ2h0KCkpKSk7Ci0gICAg
Q0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpICsgYm90dG9tTGVm
dC53aWR0aCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj
dC55KCkgKyByZWN0LmhlaWdodCgpIC0ga01heChib3R0b21MZWZ0LmhlaWdodCgpLCBib3R0b21S
aWdodC5oZWlnaHQoKSksCisgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtl
KHJlY3QubGVmdCgpICsgYm90dG9tTGVmdC53aWR0aCgpLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC5ib3R0b20oKSAtIGtNYXgoYm90dG9tTGVmdC5oZWln
aHQoKSwgYm90dG9tUmlnaHQuaGVpZ2h0KCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWN0LndpZHRoKCkgLSBib3R0b21MZWZ0LndpZHRoKCkgLSBib3R0b21S
aWdodC53aWR0aCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
TWF4KGJvdHRvbUxlZnQuaGVpZ2h0KCksIGJvdHRvbVJpZ2h0LmhlaWdodCgpKSkpOwotICAgIENH
Q29udGV4dEFkZFJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSwgcmVjdC55KCkgKyB0
b3BMZWZ0LmhlaWdodCgpLAorICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4dCwgQ0dSZWN0TWFr
ZShyZWN0LmxlZnQoKSwgcmVjdC50b3AoKSArIHRvcExlZnQuaGVpZ2h0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXgodG9wTGVmdC53aWR0aCgpLCBib3R0
b21MZWZ0LndpZHRoKCkpLCByZWN0LmhlaWdodCgpIC0gdG9wTGVmdC5oZWlnaHQoKSAtIGJvdHRv
bUxlZnQuaGVpZ2h0KCkpKTsKLSAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRleHQsIENHUmVjdE1h
a2UocmVjdC54KCkgKyByZWN0LndpZHRoKCkgLSBrTWF4KHRvcFJpZ2h0LndpZHRoKCksIGJvdHRv
bVJpZ2h0LndpZHRoKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWN0LnkoKSArIHRvcFJpZ2h0LmhlaWdodCgpLAorICAgIENHQ29udGV4dEFkZFJlY3QoY29u
dGV4dCwgQ0dSZWN0TWFrZShyZWN0LnJpZ2h0KCkgLSBrTWF4KHRvcFJpZ2h0LndpZHRoKCksIGJv
dHRvbVJpZ2h0LndpZHRoKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LnRvcCgpICsgdG9wUmlnaHQuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtNYXgodG9wUmlnaHQud2lkdGgoKSwgYm90dG9tUmlnaHQu
d2lkdGgoKSksIHJlY3QuaGVpZ2h0KCkgLSB0b3BSaWdodC5oZWlnaHQoKSAtIGJvdHRvbVJpZ2h0
LmhlaWdodCgpKSk7Ci0gICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJl
Y3QueCgpICsga01heCh0b3BMZWZ0LndpZHRoKCksIGJvdHRvbUxlZnQud2lkdGgoKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgpICsga01heCh0b3BM
ZWZ0LmhlaWdodCgpLCB0b3BSaWdodC5oZWlnaHQoKSksCisgICAgQ0dDb250ZXh0QWRkUmVjdChj
b250ZXh0LCBDR1JlY3RNYWtlKHJlY3QubGVmdCgpICsga01heCh0b3BMZWZ0LndpZHRoKCksIGJv
dHRvbUxlZnQud2lkdGgoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlY3QudG9wKCkgKyBrTWF4KHRvcExlZnQuaGVpZ2h0KCksIHRvcFJpZ2h0LmhlaWdodCgp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC53aWR0aCgp
IC0ga01heCh0b3BMZWZ0LndpZHRoKCksIGJvdHRvbUxlZnQud2lkdGgoKSkgLSBrTWF4KHRvcFJp
Z2h0LndpZHRoKCksIGJvdHRvbVJpZ2h0LndpZHRoKCkpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWN0LmhlaWdodCgpIC0ga01heCh0b3BMZWZ0LmhlaWdodCgp
LCB0b3BSaWdodC5oZWlnaHQoKSkgLSBrTWF4KGJvdHRvbUxlZnQuaGVpZ2h0KCksIGJvdHRvbVJp
Z2h0LmhlaWdodCgpKSkpOwogICAgIENHQ29udGV4dENsaXAoY29udGV4dCk7CkluZGV4OiBrd3Ev
S1dRQXBwbGljYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUUFwcGxpY2F0aW9uLm1tCShy
ZXZpc2lvbiAxMjQxMSkKKysrIGt3cS9LV1FBcHBsaWNhdGlvbi5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTcsNyArNTcsNyBAQAogICAgIC8vIHdoaWNoIGlzIHRoZSBzY3JlZW4gdGhhdCB0aGUga2V5
IHdpbmRvdyBpcyBvbi4KICAgICBOU1JlY3QgcmVjdCA9IFtbTlNTY3JlZW4gbWFpblNjcmVlbl0g
ZnJhbWVdOwogICAgIHJlY3Qub3JpZ2luLnkgPSBOU01heFkoW1tbTlNTY3JlZW4gc2NyZWVuc10g
b2JqZWN0QXRJbmRleDowXSBmcmFtZV0pIC0gTlNNYXhZKHJlY3QpOwotICAgIHJldHVybiBJbnRS
ZWN0KHJlY3QpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOwogfQogCiBJbnRS
ZWN0IFFEZXNrdG9wV2lkZ2V0OjphdmFpbGFibGVHZW9tZXRyeShRV2lkZ2V0ICp3aWRnZXQpCkBA
IC02Nyw3ICs2Nyw3IEBACiAgICAgICAgIHNjcmVlbiA9IFtOU1NjcmVlbiBtYWluU2NyZWVuXTsK
ICAgICBOU1JlY3QgcmVjdCA9IFtzY3JlZW4gdmlzaWJsZUZyYW1lXTsKICAgICByZWN0Lm9yaWdp
bi55ID0gTlNNYXhZKFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVd
KSAtIE5TTWF4WShyZWN0KTsKLSAgICByZXR1cm4gSW50UmVjdChyZWN0KTsKKyAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChyZWN0KTsKIH0KIAogdm9pZCBRQXBwbGljYXRpb246OnNldE92ZXJy
aWRlQ3Vyc29yKGNvbnN0IFFDdXJzb3IgJmMpCkluZGV4OiBrd3EvS1dRV2luZG93V2lkZ2V0Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGt3cS9LV1FXaW5kb3dXaWRnZXQubW0JKHJldmlzaW9uIDEyNDExKQor
Kysga3dxL0tXUVdpbmRvd1dpZGdldC5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNiBA
QAogdm9pZCBLV1FXaW5kb3dXaWRnZXQ6OnNldEZyYW1lR2VvbWV0cnkoY29uc3QgSW50UmVjdCAm
cikKIHsKICAgICAvLyBGSVhNRTogQ291bGQgZG8gc29tZXRoaW5nIHRvIG1ha2UgaXQgZWFzeSBm
b3IgdGhlIGJyb3dzZXIgdG8gYXZvaWQgc2F2aW5nIHRoaXMgY2hhbmdlLgotICAgIFtkLT5icmlk
Z2Ugc2V0V2luZG93RnJhbWU6TlNNYWtlUmVjdChyLngoKSwgTlNNYXhZKFtbW05TU2NyZWVuIHNj
cmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIChyLnkoKSArIHIuaGVpZ2h0KCkpLAor
ICAgIFtkLT5icmlkZ2Ugc2V0V2luZG93RnJhbWU6TlNNYWtlUmVjdChyLmxlZnQoKSwgTlNNYXhZ
KFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIHIuYm90dG9t
KCksCiAgICAgICAgIHIud2lkdGgoKSwgci5oZWlnaHQoKSldOwogfQpJbmRleDoga3dxL0tXUUFj
Y09iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRQWNjT2JqZWN0Lm1tCShyZXZpc2lvbiAx
MjQxMSkKKysrIGt3cS9LV1FBY2NPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2Niw3ICs1
NjYsNyBAQAogCiBzdGF0aWMgSW50UmVjdCBib3VuZGluZ0JveFJlY3QoUmVuZGVyT2JqZWN0KiBv
YmopCiB7Ci0gICAgSW50UmVjdCByZWN0KDAsMCwwLDApOworICAgIEludFJlY3QgcmVjdDsKICAg
ICBpZiAob2JqKSB7CiAgICAgICAgIGlmIChvYmotPmlzSW5saW5lQ29udGludWF0aW9uKCkpCiAg
ICAgICAgICAgICBvYmogPSBvYmotPmVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKQEAgLTU3Niw3ICs1
NzYsNyBAQAogICAgICAgICBvYmotPmFic29sdXRlUmVjdHMocmVjdHMsIHgsIHkpOwogICAgICAg
ICBmb3IgKFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3IgaXQgPSByZWN0cy5iZWdp
bigpOyBpdCAhPSByZWN0cy5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgSW50UmVjdCByID0g
Kml0OwotICAgICAgICAgICAgaWYgKHIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBpZiAoIXIu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG9iai0+c3R5bGUoKS0+aGFzQXBwZWFy
YW5jZSgpKQogICAgICAgICAgICAgICAgICAgICB0aGVtZSgpLT5hZGp1c3RSZXBhaW50UmVjdChv
YmosIHIpOwogICAgICAgICAgICAgICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKQEAgLTU5Myw4ICs1
OTMsOCBAQAogewogICAgIEludFJlY3QgcmVjdCA9IG1fYXJlYUVsZW1lbnQgPyBtX2FyZWFFbGVt
ZW50LT5nZXRSZWN0KG1fcmVuZGVyZXIpIDogYm91bmRpbmdCb3hSZWN0KG1fcmVuZGVyZXIpOwog
ICAgIAotICAgIC8vIFRoZSBDb2NvYSBhY2Nlc3NpYmlsaXR5IEFQSSB3YW50cyB0aGUgbG93ZXIt
bGVmdCBjb3JuZXIsIG5vdCB0aGUgdXBwZXItbGVmdCwgc28gd2UgYWRkIGluIG91ciBoZWlnaHQu
Ci0gICAgTlNQb2ludCBwb2ludCA9IE5TTWFrZVBvaW50KHJlY3QueCgpLCByZWN0LnkoKSArIHJl
Y3QuaGVpZ2h0KCkpOworICAgIC8vIFRoZSBDb2NvYSBhY2Nlc3NpYmlsaXR5IEFQSSB3YW50cyB0
aGUgbG93ZXItbGVmdCBjb3JuZXIsIG5vdCB0aGUgdXBwZXItbGVmdC4KKyAgICBOU1BvaW50IHBv
aW50ID0gcmVjdC5ib3R0b21MZWZ0KCk7CiAgICAgaWYgKG1fcmVuZGVyZXIgJiYgbV9yZW5kZXJl
ci0+Y2FudmFzKCkgJiYgbV9yZW5kZXJlci0+Y2FudmFzKCktPnZpZXcoKSkgewogICAgICAgICBO
U1ZpZXcqIHZpZXcgPSBtX3JlbmRlcmVyLT5jYW52YXMoKS0+dmlldygpLT5nZXREb2N1bWVudFZp
ZXcoKTsKICAgICAgICAgcG9pbnQgPSBbW3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVu
OiBbdmlldyBjb252ZXJ0UG9pbnQ6IHBvaW50IHRvVmlldzpuaWxdXTsKQEAgLTExMzMsNyArMTEz
Myw4IEBACiAgICAgLy8gdXNlIHRoZSBTZWxlY3Rpb25Db250cm9sbGVyIGNsYXNzIHRvIGhlbHAg
Y2FsY3VsYXRlIHRoZSBjb3JyZXNwb25kaW5nIHJlY3RhbmdsZQogICAgIEludFJlY3QgcmVjdDEg
PSBTZWxlY3Rpb25Db250cm9sbGVyKHN0YXJ0VmlzaWJsZVBvc2l0aW9uLCBzdGFydFZpc2libGVQ
b3NpdGlvbikuY2FyZXRSZWN0KCk7CiAgICAgSW50UmVjdCByZWN0MiA9IFNlbGVjdGlvbkNvbnRy
b2xsZXIoZW5kVmlzaWJsZVBvc2l0aW9uLCBlbmRWaXNpYmxlUG9zaXRpb24pLmNhcmV0UmVjdCgp
OwotICAgIEludFJlY3Qgb3VycmVjdCA9IHJlY3QxLnVuaXRlKHJlY3QyKTsKKyAgICBJbnRSZWN0
IG91cnJlY3QgPSByZWN0MTsKKyAgICBvdXJyZWN0LnVuaXRlKHJlY3QyKTsKIAogICAgIC8vIHRy
eSB0byB1c2UgdGhlIGRvY3VtZW50IHZpZXcgZnJvbSB0aGUgc2VsZWN0aW9uLCBzbyB0aGF0IG5l
c3RlZCBXZWJBcmVhcyB3b3JrLAogICAgIC8vIGJ1dCBmYWxsIGJhY2sgdG8gdGhlIHRvcCBsZXZl
bCBkb2MgaWYgd2UgZG8gbm90IGZpbmQgaXQgZWFzaWx5CkBAIC0xMTUxLDEyICsxMTUyLDEyIEBA
CiAgICAgLy8gaWYgdGhlIHNlbGVjdGlvbiBzcGFucyBsaW5lcywgdGhlIHJlY3RhbmdsZSBpcyB0
byBleHRlbmQKICAgICAvLyBhY3Jvc3MgdGhlIHdpZHRoIG9mIHRoZSB2aWV3CiAgICAgaWYgKHJl
Y3QxLmJvdHRvbSgpICE9IHJlY3QyLmJvdHRvbSgpKSB7Ci0gICAgICAgIG91cnJlY3Quc2V0WCgo
aW50KVt2aWV3IGZyYW1lXS5vcmlnaW4ueCk7Ci0gICAgICAgIG91cnJlY3Quc2V0V2lkdGgoKGlu
dClbdmlldyBmcmFtZV0uc2l6ZS53aWR0aCk7CisgICAgICAgIG91cnJlY3Quc2V0VG9wKHN0YXRp
Y19jYXN0PGludD4oW3ZpZXcgZnJhbWVdLm9yaWdpbi54KSk7CisgICAgICAgIG91cnJlY3Quc2V0
V2lkdGgoc3RhdGljX2Nhc3Q8aW50PihbdmlldyBmcmFtZV0uc2l6ZS53aWR0aCkpOwogICAgIH0K
ICAKICAgICAvLyBjb252ZXJ0IG91ciByZWN0YW5nbGUgdG8gc2NyZWVuIGNvb3JkaW5hdGVzCi0g
ICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KG91cnJlY3QubGVmdCgpLCBvdXJyZWN0LnRvcCgp
LCBvdXJyZWN0LndpZHRoKCksIG91cnJlY3QuaGVpZ2h0KCkpOworICAgIE5TUmVjdCByZWN0ID0g
b3VycmVjdDsKICAgICByZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC1kb2NWaWV3LT5jb250ZW50
c1goKSwgLWRvY1ZpZXctPmNvbnRlbnRzWSgpKTsKICAgICByZWN0ID0gW3ZpZXcgY29udmVydFJl
Y3Q6cmVjdCB0b1ZpZXc6bmlsXTsKICAgICByZWN0Lm9yaWdpbiA9IFtbdmlldyB3aW5kb3ddIGNv
bnZlcnRCYXNlVG9TY3JlZW46cmVjdC5vcmlnaW5dOwpJbmRleDoga3dxL0tXUVJlZ2lvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3dxL0tXUVJlZ2lvbi5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga3dx
L0tXUVJlZ2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDUgKzg4LDUgQEAKIAogSW50UmVj
dCBRUmVnaW9uOjpib3VuZGluZ1JlY3QoKSBjb25zdAogewotICAgIHJldHVybiBwYXRoID8gSW50
UmVjdChDR1BhdGhHZXRCb3VuZGluZ0JveChwYXRoKSkgOiBJbnRSZWN0KCk7CisgICAgcmV0dXJu
IHBhdGggPyBlbmNsb3NpbmdJbnRSZWN0KENHUGF0aEdldEJvdW5kaW5nQm94KHBhdGgpKSA6IElu
dFJlY3QoKTsKIH0KSW5kZXg6IGt3cS9LV1FLV2luTW9kdWxlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3
cS9LV1FLV2luTW9kdWxlLm1tCShyZXZpc2lvbiAxMjQxMSkKKysrIGt3cS9LV1FLV2luTW9kdWxl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw1ICszMiw1IEBACiAgICAgLy8gTm8gbmVlZCB0byBi
bG9jayBleGNlcHRpb25zIGJlY2F1c2UgdGhlc2Ugc2ltcGxlIE5TU2NyZWVuIGNhbGxzIG5ldmVy
IHRocm93LgogICAgIE5TUmVjdCByZWN0ID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSB2aXNpYmxl
RnJhbWVdOwogICAgIHJlY3Qub3JpZ2luLnkgPSBOU01heFkoW1tbTlNTY3JlZW4gc2NyZWVuc10g
b2JqZWN0QXRJbmRleDowXSBmcmFtZV0pIC0gTlNNYXhZKHJlY3QpOwotICAgIHJldHVybiBJbnRS
ZWN0KHJlY3QpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOwogfQpJbmRleDog
a3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVJlbmRlclRy
ZWVEZWJ1Zy5jcHAJKHJldmlzaW9uIDEyNDExKQorKysga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNCwxMSArMzE0LDExIEBACiAgICAgdHMgPDwgImxheWVy
IjsKICAgICB0cyA8PCAiICIgPDwgbGF5ZXJCb3VuZHM7CiAKLSAgICBpZiAobGF5ZXJCb3VuZHMg
IT0gbGF5ZXJCb3VuZHMuaW50ZXJzZWN0KGJhY2tncm91bmRDbGlwUmVjdCkpCisgICAgaWYgKCFi
YWNrZ3JvdW5kQ2xpcFJlY3QuY29udGFpbnMobGF5ZXJCb3VuZHMpKQogICAgICAgICB0cyA8PCAi
IGJhY2tncm91bmRDbGlwICIgPDwgYmFja2dyb3VuZENsaXBSZWN0OwotICAgIGlmIChsYXllckJv
dW5kcyAhPSBsYXllckJvdW5kcy5pbnRlcnNlY3QoY2xpcFJlY3QpKQorICAgIGlmICghY2xpcFJl
Y3QuY29udGFpbnMobGF5ZXJCb3VuZHMpKQogICAgICAgICB0cyA8PCAiIGNsaXAgIiA8PCBjbGlw
UmVjdDsKLSAgICBpZiAobGF5ZXJCb3VuZHMgIT0gbGF5ZXJCb3VuZHMuaW50ZXJzZWN0KG91dGxp
bmVDbGlwUmVjdCkpCisgICAgaWYgKCFvdXRsaW5lQ2xpcFJlY3QuY29udGFpbnMobGF5ZXJCb3Vu
ZHMpKQogICAgICAgICB0cyA8PCAiIG91dGxpbmVDbGlwICIgPDwgb3V0bGluZUNsaXBSZWN0Owog
CiAgICAgaWYgKGwucmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKSW5kZXg6IGt3cS9L
V1FXaWRnZXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdpZGdldC5tbQkocmV2aXNpb24gMTI0
MTEpCisrKyBrd3EvS1dRV2lkZ2V0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsMTAgKzE4Myw4
IEBACiAKIEludFJlY3QgUVdpZGdldDo6ZnJhbWVHZW9tZXRyeSgpIGNvbnN0CiB7Ci0gICAgSW50
UmVjdCByZWN0OwogICAgIEtXUV9CTE9DS19FWENFUFRJT05TOwotICAgIHJlY3QgPSBJbnRSZWN0
KFtnZXRPdXRlclZpZXcoKSBmcmFtZV0pOwotICAgIHJldHVybiByZWN0OworICAgIHJldHVybiBl
bmNsb3NpbmdJbnRSZWN0KFtnZXRPdXRlclZpZXcoKSBmcmFtZV0pOwogICAgIEtXUV9VTkJMT0NL
X0VYQ0VQVElPTlM7CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KSW5kZXg6IGt3cS9LV1FGb250
TWV0cmljcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRRm9udE1ldHJpY3MubW0JKHJldmlzaW9u
IDEyNDExKQorKysga3dxL0tXUUZvbnRNZXRyaWNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQs
NyArMjU0LDcgQEAKICAgICBnZW9tZXRyeS5zZWxlY3Rpb25ZID0geTsKICAgICBnZW9tZXRyeS5z
ZWxlY3Rpb25IZWlnaHQgPSBoOwogICAgIGdlb21ldHJ5LnVzZUZvbnRNZXRyaWNzRm9yU2VsZWN0
aW9uWUFuZEhlaWdodCA9IGZhbHNlOwotICAgIHJldHVybiBJbnRSZWN0KFtkYXRhLT5nZXRSZW5k
ZXJlcigpIHNlbGVjdGlvblJlY3RGb3JSdW46JnJ1biBzdHlsZTomc3R5bGUgZ2VvbWV0cnk6Jmdl
b21ldHJ5XSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW2RhdGEtPmdldFJlbmRlcmVy
KCkgc2VsZWN0aW9uUmVjdEZvclJ1bjomcnVuIHN0eWxlOiZzdHlsZSBnZW9tZXRyeTomZ2VvbWV0
cnldKTsKIH0KIAogaW50IFFGb250TWV0cmljczo6Y2hlY2tTZWxlY3Rpb25Qb2ludChRQ2hhciAq
cywgaW50IHNsZW4sIGludCBwb3MsIGludCBsZW4sIGludCB0b0FkZCwgaW50IHRhYldpZHRoLCBp
bnQgeHBvcywgaW50IGxldHRlclNwYWNpbmcsIGludCB3b3JkU3BhY2luZywgYm9vbCBzbWFsbENh
cHMsIGludCB4LCBib29sIHJldmVyc2VkLCBib29sIGRpck92ZXJyaWRlLCBib29sIGluY2x1ZGVQ
YXJ0aWFsR2x5cGhzKSBjb25zdApAQCAtMjk3LDcgKzI5Nyw3IEBACiBJbnRSZWN0IFFGb250TWV0
cmljczo6Ym91bmRpbmdSZWN0KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBp
bnQgZmxhZ3MsIGNvbnN0IFFTdHJpbmcgJnN0ciwgaW50IHRhYldpZHRoLCBpbnQgeHBvcykgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogbmVlZCB0byBzdXBwb3J0IHdvcmQgd3JhcHBpbmc/Ci0gICAg
cmV0dXJuIEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkuaW50ZXJzZWN0KGJvdW5kaW5nUmVj
dChzdHIsIHRhYldpZHRoLCB4cG9zKSk7CisgICAgcmV0dXJuIGludGVyc2VjdGlvbihJbnRSZWN0
KHgsIHksIHdpZHRoLCBoZWlnaHQpLCBib3VuZGluZ1JlY3Qoc3RyLCB0YWJXaWR0aCwgeHBvcykp
OwogfQogCiBJbnRTaXplIFFGb250TWV0cmljczo6c2l6ZShpbnQsIGNvbnN0IFFTdHJpbmcgJnFz
dHJpbmcsIGludCB0YWJXaWR0aCwgaW50IHhwb3MpIGNvbnN0CkluZGV4OiBrd3EvS1dRUGFpbnRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FQYWludGVyLmgJKHJldmlzaW9uIDEyNDExKQorKysg
a3dxL0tXUVBhaW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsMTAgQEAKICNpbmNs
dWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNlbmRpZgog
Ci1jbGFzcyBJbnRQb2ludEFycmF5OworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIElu
dFBvaW50QXJyYXk7Cit9CisKIGNsYXNzIFFGb250OwogY2xhc3MgUVBhaW50RGV2aWNlOwogY2xh
c3MgUVBhaW50ZXJQcml2YXRlOwpAQCAtODQsNyArODcsNyBAQAogICAgIHZvaWQgZHJhd0xpbmUo
aW50LCBpbnQsIGludCwgaW50KTsKICAgICB2b2lkIGRyYXdFbGxpcHNlKGludCwgaW50LCBpbnQs
IGludCk7CiAgICAgdm9pZCBkcmF3QXJjKGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpOwot
ICAgIHZvaWQgZHJhd0NvbnZleFBvbHlnb24oY29uc3QgSW50UG9pbnRBcnJheSAmKTsKKyAgICB2
b2lkIGRyYXdDb252ZXhQb2x5Z29uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50QXJyYXkgJik7CiAK
ICAgICB2b2lkIGZpbGxSZWN0KGludCwgaW50LCBpbnQsIGludCwgY29uc3QgV2ViQ29yZTo6QnJ1
c2ggJik7CiAgICAgdm9pZCBmaWxsUmVjdChjb25zdCBJbnRSZWN0ICYsIGNvbnN0IFdlYkNvcmU6
OkJydXNoICYpOwpJbmRleDoga3dxL0tXUVdNYXRyaXguY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9L
V1FXTWF0cml4LmNwcAkocmV2aXNpb24gMTI0MTEpCisrKyBrd3EvS1dRV01hdHJpeC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJLV1FXTWF0cml4LmgiCi0KLSNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKLQotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWcycmFkID0gMC4wMTc0NTMyOTI1MTk5
NDMyOTU3Njk7IC8vIHBpLzE4MAotCi1RTWF0cml4OjpRTWF0cml4KCkKLXsKLSAgICBtX3RyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7Ci19Ci0KLVFNYXRyaXg6OlFNYXRyaXgo
ZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91Ymxl
IHR5KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKGEsYixjLGQs
dHgsdHkpOwotfQotCi1RTWF0cml4OjpRTWF0cml4KENHQWZmaW5lVHJhbnNmb3JtIHQpIHsKLSAg
ICBtX3RyYW5zZm9ybSA9IHQ7Ci19Ci0KLXZvaWQgUU1hdHJpeDo6c2V0TWF0cml4KGRvdWJsZSBh
LCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSkKLXsK
LSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZShhLGIsYyxkLHR4LHR5KTsK
LX0KLQotdm9pZCBRTWF0cml4OjptYXAoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgKngyLCBk
b3VibGUgKnkyKSBjb25zdAotewotICAgIENHUG9pbnQgcmVzdWx0ID0gQ0dQb2ludEFwcGx5QWZm
aW5lVHJhbnNmb3JtKENHUG9pbnRNYWtlKHgseSksbV90cmFuc2Zvcm0pOwotICAgICp4MiA9IHJl
c3VsdC54OwotICAgICp5MiA9IHJlc3VsdC55OwotfQotCi1JbnRSZWN0IFFNYXRyaXg6Om1hcFJl
Y3QoY29uc3QgSW50UmVjdCAmcmVjdCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50UmVjdChDR1Jl
Y3RBcHBseUFmZmluZVRyYW5zZm9ybShDR1JlY3QocmVjdCksIG1fdHJhbnNmb3JtKSk7Ci19Ci0K
LUZsb2F0UmVjdCBRTWF0cml4OjptYXBSZWN0KGNvbnN0IEZsb2F0UmVjdCAmcmVjdCkgY29uc3QK
LXsKLSAgICByZXR1cm4gRmxvYXRSZWN0KENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKENHUmVj
dChyZWN0KSwgbV90cmFuc2Zvcm0pKTsKLX0KLQotYm9vbCBRTWF0cml4Ojppc0lkZW50aXR5KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KG1fdHJhbnNm
b3JtKTsKLX0KLQotdm9pZCBRTWF0cml4OjpyZXNldCgpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OwotfQotCi1RTWF0cml4ICZRTWF0cml4OjpzY2FsZShk
b3VibGUgc3gsIGRvdWJsZSBzeSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNm
b3JtU2NhbGUobV90cmFuc2Zvcm0sIHN4LCBzeSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1R
TWF0cml4ICZRTWF0cml4Ojpyb3RhdGUoZG91YmxlIGQpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybVJvdGF0ZShtX3RyYW5zZm9ybSwgZCAqIGRlZzJyYWQpOwotICAgIHJl
dHVybiAqdGhpczsKLX0KLQotUU1hdHJpeCAmUU1hdHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB0eCwg
ZG91YmxlIHR5KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xh
dGUobV90cmFuc2Zvcm0sIHR4LCB0eSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1RTWF0cml4
ICZRTWF0cml4OjpzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBzeSkKLXsKLSAgICBDR0FmZmluZVRy
YW5zZm9ybSBzaGVhciA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZSgxLCBzeSwgc3gsIDEsIDAsIDAp
OwotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQoc2hlYXIsbV90cmFu
c2Zvcm0pOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotZG91YmxlIFFNYXRyaXg6OmRldCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtLmEgKiBtX3RyYW5zZm9ybS5kIC0gbV90cmFu
c2Zvcm0uYiAqIG1fdHJhbnNmb3JtLmM7Ci19Ci0KLWJvb2wgUU1hdHJpeDo6aXNJbnZlcnRpYmxl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZGV0KCkgIT0gMC4wOwotfQotCi1RTWF0cml4IFFNYXRy
aXg6OmludmVydCgpIGNvbnN0Ci17Ci0gICAgaWYgKGlzSW52ZXJ0aWJsZSgpKQotICAgICAgICBy
ZXR1cm4gUU1hdHJpeChDR0FmZmluZVRyYW5zZm9ybUludmVydChtX3RyYW5zZm9ybSkpOwotICAg
IHJldHVybiBRTWF0cml4KCk7Ci19Ci0KLVFNYXRyaXg6Om9wZXJhdG9yIENHQWZmaW5lVHJhbnNm
b3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFuc2Zvcm07Ci19Ci0KLWJvb2wgUU1hdHJp
eDo6b3BlcmF0b3I9PSAoY29uc3QgUU1hdHJpeCAmbTIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENH
QWZmaW5lVHJhbnNmb3JtRXF1YWxUb1RyYW5zZm9ybShtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFu
c2Zvcm0obTIpKTsKLX0KLQotUU1hdHJpeCAmUU1hdHJpeDo6b3BlcmF0b3IqPSAoY29uc3QgUU1h
dHJpeCAmbTIpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdCht
X3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0obTIpKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19
Ci0KLVFNYXRyaXggUU1hdHJpeDo6b3BlcmF0b3IqIChjb25zdCBRTWF0cml4ICZtMikKLXsKLSAg
ICByZXR1cm4gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQobV90cmFuc2Zvcm0sIENHQWZmaW5lVHJh
bnNmb3JtKG0yKSk7Ci19CkluZGV4OiBrd3EvS1dRUGl4bWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dx
L0tXUVBpeG1hcC5oCShyZXZpc2lvbiAxMjQxMSkKKysrIGt3cS9LV1FQaXhtYXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNyArNDcsNiBAQAogCiAjZW5kaWYgLy8gX19BUFBMRV9fCiAKLWNsYXNz
IFFXTWF0cml4OwogY2xhc3MgUVBhaW50ZXI7CiBjbGFzcyBRUGl4bWFwOwogCkluZGV4OiBsb2Fk
ZXIvQ2FjaGVkSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRlci9DYWNoZWRJbWFnZS5jcHAJ
KHJldmlzaW9uIDEyNDExKQorKysgbG9hZGVyL0NhY2hlZEltYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjIsMTUgKzYyLDE1IEBACiAgICAgY2xlYXIoKTsKIH0KIAotdm9pZCBDYWNoZWRJbWFn
ZTo6cmVmKCBDYWNoZWRPYmplY3RDbGllbnQgKmMgKQordm9pZCBDYWNoZWRJbWFnZTo6cmVmKENh
Y2hlZE9iamVjdENsaWVudCogYykKIHsKICAgICBDYWNoZWRPYmplY3Q6OnJlZihjKTsKIAogICAg
IC8vIGZvciBtb3VzZW92ZXJzLCBkeW5hbWljIGNoYW5nZXMKLSAgICBpZiAoIXZhbGlkX3JlY3Qo
KS5pc051bGwoKSkKLSAgICAgICAgYy0+c2V0UGl4bWFwKCBwaXhtYXAoKSwgdmFsaWRfcmVjdCgp
LCB0aGlzKTsKKyAgICBpZiAoIXZhbGlkX3JlY3QoKS5pc0VtcHR5KCkpCisgICAgICAgIGMtPnNl
dFBpeG1hcChwaXhtYXAoKSwgdmFsaWRfcmVjdCgpLCB0aGlzKTsKIAotICAgIGlmKCFtX2xvYWRp
bmcpCisgICAgaWYgKCFtX2xvYWRpbmcpCiAgICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRoaXMp
OwogfQogCkluZGV4OiBwYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFt
ZVZpZXcuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHBhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODMxLDggKzgzMSw4IEBACiAgICAgaW50IHgsIHksIHhlLCB5ZTsKICAgICB4
ID0gYm91bmRzLmxlZnQoKTsKICAgICB5ID0gYm91bmRzLnRvcCgpOwotICAgIHhlID0gYm91bmRz
LnJpZ2h0KCk7Ci0gICAgeWUgPSBib3VuZHMuYm90dG9tKCk7CisgICAgeGUgPSBib3VuZHMucmln
aHQoKSAtIDE7CisgICAgeWUgPSBib3VuZHMuYm90dG9tKCkgLSAxOwogICAgIAogICAgIGludCBk
ZWx0YXg7CiAgICAgaW50IGRlbHRheTsKQEAgLTg0MCwzOCArODQwLDM2IEBACiAgICAgaW50IGN1
ckhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICBpbnQgY3VyV2lkdGggPSB2aXNpYmxlV2lk
dGgoKTsKIAotICAgIGlmICh5ZS15PmN1ckhlaWdodC1kLT5ib3JkZXJZKQotCXllICA9IHkgKyBj
dXJIZWlnaHQgLSBkLT5ib3JkZXJZOworICAgIGlmICh5ZSAtIHk+Y3VySGVpZ2h0LWQtPmJvcmRl
clkpCisJeWUgPSB5ICsgY3VySGVpZ2h0IC0gZC0+Ym9yZGVyWTsKIAotICAgIGlmICh4ZS14PmN1
cldpZHRoLWQtPmJvcmRlclgpCisgICAgaWYgKHhlIC0geD5jdXJXaWR0aC1kLT5ib3JkZXJYKQog
CXhlID0geCArIGN1cldpZHRoIC0gZC0+Ym9yZGVyWDsKIAogICAgIC8vIGlzIHhwb3Mgb2YgdGFy
Z2V0IGxlZnQgb2YgdGhlIHZpZXcncyBib3JkZXI/CiAgICAgaWYgKHggPCBjb250ZW50c1goKSAr
IGQtPmJvcmRlclggKQotICAgICAgICAgICAgZGVsdGF4ID0geCAtIGNvbnRlbnRzWCgpIC0gZC0+
Ym9yZGVyWDsKKyAgICAgICAgZGVsdGF4ID0geCAtIGNvbnRlbnRzWCgpIC0gZC0+Ym9yZGVyWDsK
ICAgICAvLyBpcyB4cG9zIG9mIHRhcmdldCByaWdodCBvZiB0aGUgdmlldydzIHJpZ2h0IGJvcmRl
cj8KICAgICBlbHNlIGlmICh4ZSArIGQtPmJvcmRlclggPiBjb250ZW50c1goKSArIGN1cldpZHRo
KQotICAgICAgICAgICAgZGVsdGF4ID0geGUgKyBkLT5ib3JkZXJYIC0gKCBjb250ZW50c1goKSAr
IGN1cldpZHRoICk7CisgICAgICAgIGRlbHRheCA9IHhlICsgZC0+Ym9yZGVyWCAtICggY29udGVu
dHNYKCkgKyBjdXJXaWR0aCApOwogICAgIGVsc2UKICAgICAgICAgZGVsdGF4ID0gMDsKIAogICAg
IC8vIGlzIHlwb3Mgb2YgdGFyZ2V0IGFib3ZlIHVwcGVyIGJvcmRlcj8KICAgICBpZiAoeSA8IGNv
bnRlbnRzWSgpICsgZC0+Ym9yZGVyWSkKLSAgICAgICAgICAgIGRlbHRheSA9IHkgLSBjb250ZW50
c1koKSAtIGQtPmJvcmRlclk7CisgICAgICAgIGRlbHRheSA9IHkgLSBjb250ZW50c1koKSAtIGQt
PmJvcmRlclk7CiAgICAgLy8gaXMgeXBvcyBvZiB0YXJnZXQgYmVsb3cgbG93ZXIgYm9yZGVyPwog
ICAgIGVsc2UgaWYgKHllICsgZC0+Ym9yZGVyWSA+IGNvbnRlbnRzWSgpICsgY3VySGVpZ2h0KQot
ICAgICAgICAgICAgZGVsdGF5ID0geWUgKyBkLT5ib3JkZXJZIC0gKCBjb250ZW50c1koKSArIGN1
ckhlaWdodCApOworICAgICAgICBkZWx0YXkgPSB5ZSArIGQtPmJvcmRlclkgLSAoIGNvbnRlbnRz
WSgpICsgY3VySGVpZ2h0ICk7CiAgICAgZWxzZQogICAgICAgICBkZWx0YXkgPSAwOwogCi0gICAg
aW50IG1heHggPSBjdXJXaWR0aC1kLT5ib3JkZXJYOwotICAgIGludCBtYXh5ID0gY3VySGVpZ2h0
LWQtPmJvcmRlclk7CisgICAgaW50IG1heHggPSBjdXJXaWR0aCAtIGQtPmJvcmRlclg7CisgICAg
aW50IG1heHkgPSBjdXJIZWlnaHQgLSBkLT5ib3JkZXJZOwogCi0gICAgaW50IHNjcm9sbFgsc2Ny
b2xsWTsKKyAgICBpbnQgc2Nyb2xsWCA9IGRlbHRheCA+IDAgPyAoZGVsdGF4ID4gbWF4eCA/IG1h
eHggOiBkZWx0YXgpIDogZGVsdGF4ID09IDAgPyAwIDogKGRlbHRheCA+IC1tYXh4ID8gZGVsdGF4
IDogLW1heHgpOworICAgIGludCBzY3JvbGxZID0gZGVsdGF5ID4gMCA/IChkZWx0YXkgPiBtYXh5
ID8gbWF4eSA6IGRlbHRheSkgOiBkZWx0YXkgPT0gMCA/IDAgOiAoZGVsdGF5ID4gLW1heHkgPyBk
ZWx0YXkgOiAtbWF4eSk7CiAKLSAgICBzY3JvbGxYID0gZGVsdGF4ID4gMCA/IChkZWx0YXggPiBt
YXh4ID8gbWF4eCA6IGRlbHRheCkgOiBkZWx0YXggPT0gMCA/IDAgOiAoZGVsdGF4Pi1tYXh4ID8g
ZGVsdGF4IDogLW1heHgpOwotICAgIHNjcm9sbFkgPSBkZWx0YXkgPiAwID8gKGRlbHRheSA+IG1h
eHkgPyBtYXh5IDogZGVsdGF5KSA6IGRlbHRheSA9PSAwID8gMCA6IChkZWx0YXk+LW1heHkgPyBk
ZWx0YXkgOiAtbWF4eSk7Ci0KICAgICBpZiAoY29udGVudHNYKCkgKyBzY3JvbGxYIDwgMCkKIAlz
Y3JvbGxYID0gLWNvbnRlbnRzWCgpOwogICAgIGVsc2UgaWYgKGNvbnRlbnRzV2lkdGgoKSAtIHZp
c2libGVXaWR0aCgpIC0gY29udGVudHNYKCkgPCBzY3JvbGxYKQpAQCAtODg1LDE3ICs4ODMsMTQg
QEAKICAgICBzY3JvbGxCeShzY3JvbGxYLCBzY3JvbGxZKTsKIAogICAgIC8vIGdlbmVyYXRlIGFi
cyhzY3JvbGwuKQotICAgIGlmIChzY3JvbGxYPDApCi0gICAgICAgIHNjcm9sbFg9LXNjcm9sbFg7
Ci0gICAgaWYgKHNjcm9sbFk8MCkKLSAgICAgICAgc2Nyb2xsWT0tc2Nyb2xsWTsKKyAgICBpZiAo
c2Nyb2xsWCA8IDApCisgICAgICAgIHNjcm9sbFggPSAtc2Nyb2xsWDsKKyAgICBpZiAoc2Nyb2xs
WSA8IDApCisgICAgICAgIHNjcm9sbFkgPSAtc2Nyb2xsWTsKIAogICAgIGQtPnNjcm9sbGluZ1Nl
bGYgPSBmYWxzZTsKIAotICAgIGlmICggKHNjcm9sbFghPW1heHgpICYmIChzY3JvbGxZIT1tYXh5
KSApCi0JcmV0dXJuIHRydWU7Ci0gICAgZWxzZSByZXR1cm4gZmFsc2U7Ci0KKyAgICByZXR1cm4g
c2Nyb2xsWCAhPSBtYXh4ICYmIHNjcm9sbFkgIT0gbWF4eTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6
OmZvY3VzTmV4dFByZXZOb2RlKGJvb2wgbmV4dCkKQEAgLTkyMSwxMyArOTE2LDEwIEBACiAgICAg
ICAgIGJvb2wgdmlzaWJsZSA9IGZhbHNlOwogICAgICAgICBOb2RlSW1wbCAqdG9Gb2N1cyA9IG5l
d0ZvY3VzTm9kZTsKICAgICAgICAgd2hpbGUgKCF2aXNpYmxlICYmIHRvRm9jdXMpIHsKLSAgICAg
ICAgICAgIEludFJlY3QgZm9jdXNOb2RlUmVjdCA9IHRvRm9jdXMtPmdldFJlY3QoKTsKLSAgICAg
ICAgICAgIGlmICgoZm9jdXNOb2RlUmVjdC5sZWZ0KCkgPiBjb250ZW50c1goKSkgJiYgKGZvY3Vz
Tm9kZVJlY3QucmlnaHQoKSA8IGNvbnRlbnRzWCgpICsgdmlzaWJsZVdpZHRoKCkpICYmCi0gICAg
ICAgICAgICAgICAgKGZvY3VzTm9kZVJlY3QudG9wKCkgPiBjb250ZW50c1koKSkgJiYgKGZvY3Vz
Tm9kZVJlY3QuYm90dG9tKCkgPCBjb250ZW50c1koKSArIHZpc2libGVIZWlnaHQoKSkpIHsKKyAg
ICAgICAgICAgIGlmICh0b0ZvY3VzLT5nZXRSZWN0KCkuaW50ZXJzZWN0cyhJbnRSZWN0KGNvbnRl
bnRzWCgpLCBjb250ZW50c1koKSwgdmlzaWJsZVdpZHRoKCksIHZpc2libGVIZWlnaHQoKSkpKSB7
CiAgICAgICAgICAgICAgICAgLy8gdG9Gb2N1cyBpcyB2aXNpYmxlIGluIHRoZSBjb250ZW50cyBh
cmVhCiAgICAgICAgICAgICAgICAgdmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8g
dG9Gb2N1cyBpcyBfbm90XyB2aXNpYmxlIGluIHRoZSBjb250ZW50cyBhcmVhLCBwaWNrIHRoZSBu
ZXh0IG5vZGUKICAgICAgICAgICAgICAgICBpZiAobmV4dCkKICAgICAgICAgICAgICAgICAgICAg
dG9Gb2N1cyA9IGRvYy0+bmV4dEZvY3VzTm9kZSh0b0ZvY3VzKTsKSW5kZXg6IHBhZ2UvRnJhbWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMjQxMSkKKysrIHBh
Z2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjkyLDcgKzMyOTIsNyBAQAogICAgICAg
ICBmaWxsV2l0aFJlZCA9IHRydWU7CiAgICAgCiAgICAgaWYgKGZpbGxXaXRoUmVkKQotICAgICAg
ICBwLT5maWxsUmVjdChyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSwgQ29sb3IoMHhGRiwgMCwgMCkpOworICAgICAgICBwLT5maWxsUmVjdChyZWN0LCBDb2xv
cigweEZGLCAwLCAwKSk7CiAjZW5kaWYKICAgICAKICAgICBpZiAocmVuZGVyZXIoKSkgewo=
</data>
<flag name="review"
          id="1429"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6054</attachid>
            <date>2006-01-28 16:47:05 -0800</date>
            <delta_ts>2006-01-29 11:46:25 -0800</delta_ts>
            <desc>patch revised based on Hyatt&apos;s review</desc>
            <filename>AffinePatch.txt</filename>
            <type>text/plain</type>
            <size>445403</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTI0MjQp
CisrKyBraHRtbC9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTksMTcgKzc1OSwxNSBAQAogCiBJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmNh
cmV0UmVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbmVlZHNMYXlvdXQpIHsKKyAgICBpZiAobV9u
ZWVkc0xheW91dCkKICAgICAgICAgY29uc3RfY2FzdDxTZWxlY3Rpb25Db250cm9sbGVyICo+KHRo
aXMpLT5sYXlvdXQoKTsKLSAgICB9CiAgICAgCiAgICAgSW50UmVjdCBjYXJldCA9IG1fY2FyZXRS
ZWN0OwotICAgIAorCiAgICAgaWYgKG1fc2VsLnN0YXJ0KCkubm9kZSgpICYmIG1fc2VsLnN0YXJ0
KCkubm9kZSgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIGludCB4LCB5OwogICAgICAgICBtX3Nl
bC5zdGFydCgpLm5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVQb3NpdGlvbih4LCB5KTsKLSAg
ICAgICAgSW50UG9pbnQgZGlmZiA9IEludFBvaW50KHgsIHkpIC0gbV9jYXJldFBvc2l0aW9uT25M
YXlvdXQ7Ci0gICAgICAgIGNhcmV0Lm1vdmVUb3BMZWZ0KGRpZmYpOworICAgICAgICBjYXJldC5t
b3ZlKEludFBvaW50KHgsIHkpIC0gbV9jYXJldFBvc2l0aW9uT25MYXlvdXQpOwogICAgIH0KIAog
ICAgIHJldHVybiBjYXJldDsKQEAgLTc4MSw3ICs3NzksNyBAQAogICAgIEludFJlY3QgciA9IGNh
cmV0UmVjdCgpOwogICAgIGlmIChyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEludFJlY3Qo
KTsKLSAgICByZXR1cm4gSW50UmVjdChyLmxlZnQoKSAtIDEsIHIudG9wKCkgLSAxLCByLndpZHRo
KCkgKyAyLCByLmhlaWdodCgpICsgMik7CisgICAgcmV0dXJuIEludFJlY3Qoci54KCkgLSAxLCBy
LnkoKSAtIDEsIHIud2lkdGgoKSArIDIsIHIuaGVpZ2h0KCkgKyAyKTsKIH0KIAogdm9pZCBTZWxl
Y3Rpb25Db250cm9sbGVyOjpuZWVkc0NhcmV0UmVwYWludCgpCkBAIC04MjUsMTAgKzgyMyw5IEBA
CiAgICAgaWYgKG1fbmVlZHNMYXlvdXQpCiAgICAgICAgIGxheW91dCgpOwogICAgICAgICAKLSAg
ICBJbnRSZWN0IGNhcmV0ID0gY2FyZXRSZWN0KCk7Ci0KLSAgICBpZiAoY2FyZXQuaXNWYWxpZCgp
KQotICAgICAgICBwLT5maWxsUmVjdChjYXJldCAmIHJlY3QsIEJydXNoKCkpOworICAgIEludFJl
Y3QgY2FyZXQgPSBpbnRlcnNlY3Rpb24oY2FyZXRSZWN0KCksIHJlY3QpOworICAgIGlmICghY2Fy
ZXQuaXNFbXB0eSgpKQorICAgICAgICBwLT5maWxsUmVjdChjYXJldCwgQnJ1c2goKSk7CiB9CiAK
IHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6ZGVidWdSZW5kZXJlcihSZW5kZXJPYmplY3QgKnIs
IGJvb2wgc2VsZWN0ZWQpIGNvbnN0CkluZGV4OiBraHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3BwCShyZXZpc2lv
biAxMjQyNCkKKysrIGtodG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzQsMTkgKzc0LDE3IEBACiAgICAgLy8gQmVmb3JlIGNhbGxpbmcgYWJzb2x1dGVSZWN0
cywgY2hlY2sgZm9yIHRoZSBjb21tb24gY2FzZSB3aGVyZSB0aGUgcmVuZGVyZXIKICAgICAvLyBv
ciBvbmUgb2YgdGhlIGNvbnRpbnVhdGlvbnMgaXMgbm9uLWVtcHR5LCBzaW5jZSB0aGlzIGlzIGEg
ZmFzdGVyIGNoZWNrIGFuZAogICAgIC8vIGFsbW9zdCBhbHdheXMgcmV0dXJucyB0cnVlLgotICAg
IGZvciAoUmVuZGVyT2JqZWN0ICpyID0gcmVuZGVyZXIoKTsgcjsgciA9IHItPmNvbnRpbnVhdGlv
bigpKSB7CisgICAgZm9yIChSZW5kZXJPYmplY3QgKnIgPSByZW5kZXJlcigpOyByOyByID0gci0+
Y29udGludWF0aW9uKCkpCiAgICAgICAgIGlmIChyLT53aWR0aCgpID4gMCAmJiByLT5oZWlnaHQo
KSA+IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAKICAgICBRVmFsdWVMaXN0
PEludFJlY3Q+IHJlY3RzOwogICAgIGludCB4ID0gMCwgeSA9IDA7CiAgICAgcmVuZGVyZXIoKS0+
YWJzb2x1dGVQb3NpdGlvbih4LCB5KTsKICAgICByZW5kZXJlcigpLT5hYnNvbHV0ZVJlY3RzKHJl
Y3RzLCB4LCB5KTsKLSAgICBmb3IgKFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3Ig
aXQgPSByZWN0cy5iZWdpbigpOyBpdCAhPSByZWN0cy5lbmQoKTsgKytpdCkgewotICAgICAgICBp
ZiAoKCppdCkuaXNWYWxpZCgpKQorICAgIGZvciAoUVZhbHVlTGlzdDxJbnRSZWN0Pjo6Q29uc3RJ
dGVyYXRvciBpdCA9IHJlY3RzLmJlZ2luKCk7IGl0ICE9IHJlY3RzLmVuZCgpOyArK2l0KQorICAg
ICAgICBpZiAoISgqaXQpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KIAogICAgIHJldHVybiBmYWxzZTsKIH0KSW5kZXg6IGtodG1sL2h0bWwvaHRtbF9vYmplY3Rp
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAJKHJl
dmlzaW9uIDEyNDI0KQorKysga2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiZG9tX3N0cmluZy5oIgogI2luY2x1
ZGUgImRvbV90ZXh0aW1wbC5oIgogI2luY2x1ZGUgImh0bWxfZG9jdW1lbnRpbXBsLmgiCisjaW5j
bHVkZSAiaHRtbF9pbWFnZWltcGwuaCIKICNpbmNsdWRlICJyZW5kZXJfYXBwbGV0LmgiCiAjaW5j
bHVkZSAicmVuZGVyX2ZyYW1lcy5oIgogI2luY2x1ZGUgInJlbmRlcl9pbWFnZS5oIgpJbmRleDog
a2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0
bWxfb2JqZWN0aW1wbC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIGtodG1sL2h0bWwvaHRtbF9vYmpl
Y3RpbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAgKgogICogQ29weXJpZ2h0
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5
OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwxMSArMjEsMTEgQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICoKICAqLworCiAjaWZuZGVmIEhUTUxf
T0JKRUNUSU1QTF9ICiAjZGVmaW5lIEhUTUxfT0JKRUNUSU1QTF9ICiAKLSNpbmNsdWRlICJodG1s
X2ltYWdlaW1wbC5oIgotI2luY2x1ZGUgInhtbC9kb21fc3RyaW5naW1wbC5oIgorI2luY2x1ZGUg
IkhUTUxFbGVtZW50SW1wbC5oIgogCiAjaWYgX19BUFBMRV9fCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvcnVudGltZS5oPgpAQCAtMzMsMTYgKzMzLDE1IEBACiBuYW1lc3BhY2UgS0pTIHsgbmFt
ZXNwYWNlIEJpbmRpbmdzIHsgY2xhc3MgSW5zdGFuY2U7IH0gfQogI2VuZGlmCiAKLWNsYXNzIFFT
dHJpbmdMaXN0OwotCiBuYW1lc3BhY2UgRE9NIHsKIAogY2xhc3MgSFRNTEZvcm1FbGVtZW50SW1w
bDsKK2NsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIAogY2xhc3MgSFRNTEFwcGxldEVsZW1lbnRJbXBs
IDogcHVibGljIEhUTUxFbGVtZW50SW1wbAogewogcHVibGljOgotICAgIEhUTUxBcHBsZXRFbGVt
ZW50SW1wbChEb2N1bWVudEltcGwgKmRvYyk7CisgICAgSFRNTEFwcGxldEVsZW1lbnRJbXBsKERv
Y3VtZW50SW1wbCopOwogICAgIH5IVE1MQXBwbGV0RWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c1JlcXVpcmVkOyB9CkBAIC01MCw2MiArNDksNTkgQEAKICAgICB2aXJ0dWFsIGJvb2wgY2hl
Y2tEVEQoY29uc3QgTm9kZUltcGwqIG5ld0NoaWxkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBU
b0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRy
eSYgcmVzdWx0KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
TWFwcGVkQXR0cmlidXRlSW1wbCAqdG9rZW4pOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAgICAgCi0gICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwotICAgIHZpcnR1YWwga2h0
bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKiwga2h0bWw6OlJl
bmRlclN0eWxlICopOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0
eWxlKik7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKICAgICAKICAgICBET01TdHJpbmcgYWxpZ24oKSBj
b25zdDsKLSAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNl
dEFsaWduKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGFsdCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0QWx0KGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldEFsdChjb25z
dCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBhcmNoaXZlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRBcmNoaXZlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldEFyY2hpdmUoY29u
c3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgY29kZSgpIGNvbnN0OwotICAgIHZvaWQg
c2V0Q29kZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRDb2RlKGNvbnN0IERPTVN0
cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGNvZGVCYXNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRD
b2RlQmFzZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRDb2RlQmFzZShjb25zdCBE
T01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBoZWlnaHQoKSBjb25zdDsKLSAgICB2b2lkIHNl
dEhlaWdodChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRIZWlnaHQoY29uc3QgRE9N
U3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgaHNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRI
c3BhY2UoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0SHNwYWNlKGNvbnN0IERPTVN0
cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIG5hbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldE5hbWUo
Y29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0TmFtZShjb25zdCBET01TdHJpbmcmKTsK
IAogICAgIERPTVN0cmluZyBvYmplY3QoKSBjb25zdDsKLSAgICB2b2lkIHNldE9iamVjdChjb25z
dCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRPYmplY3QoY29uc3QgRE9NU3RyaW5nJik7CiAK
ICAgICBET01TdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWc3BhY2UoY29uc3Qg
RE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VnNwYWNlKGNvbnN0IERPTVN0cmluZyYpOwogCiAg
ICAgRE9NU3RyaW5nIHdpZHRoKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRXaWR0aChjb25zdCBET01T
dHJpbmcgJik7CisgICAgdm9pZCBzZXRXaWR0aChjb25zdCBET01TdHJpbmcmKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBhbGxQYXJhbXNBdmFpbGFibGUoKTsKICAgICB2b2lkIHNldHVwQXBwbGV0KCkg
Y29uc3Q7CiAKLSAgICBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAqZ2V0QXBwbGV0SW5zdGFuY2Uo
KSBjb25zdDsKKyAgICBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSogZ2V0QXBwbGV0SW5zdGFuY2Uo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CiAKLXByb3RlY3RlZDoKLSAgICBr
aHRtbDo6VkFsaWduIHZhbGlnbjsKLQogcHJpdmF0ZToKICAgICBET01TdHJpbmcgb2xkTmFtZUF0
dHI7CiAgICAgRE9NU3RyaW5nIG9sZElkQXR0cjsKIAotICAgIG11dGFibGUgS0pTOjpCaW5kaW5n
czo6SW5zdGFuY2UgKmFwcGxldEluc3RhbmNlOworICAgIG11dGFibGUgS0pTOjpCaW5kaW5nczo6
SW5zdGFuY2UqIGFwcGxldEluc3RhbmNlOwogCiAgICAgYm9vbCBtX2FsbFBhcmFtc0F2YWlsYWJs
ZTsKIH07CkBAIC0xMTUsNyArMTExLDcgQEAKIGNsYXNzIEhUTUxFbWJlZEVsZW1lbnRJbXBsIDog
cHVibGljIEhUTUxFbGVtZW50SW1wbAogewogcHVibGljOgotICAgIEhUTUxFbWJlZEVsZW1lbnRJ
bXBsKERvY3VtZW50SW1wbCAqZG9jKTsKKyAgICBIVE1MRW1iZWRFbGVtZW50SW1wbChEb2N1bWVu
dEltcGwqKTsKICAgICB+SFRNTEVtYmVkRWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1YWwgSFRN
TFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1Jl
cXVpcmVkOyB9CkBAIC0xMjMsMTggKzExOSwxOCBAQAogICAgIHZpcnR1YWwgYm9vbCBjaGVja0RU
RChjb25zdCBOb2RlSW1wbCogbmV3Q2hpbGQpOwogCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50
cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiBy
ZXN1bHQpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBw
ZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgp
OwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKik7Ci0gICAgdmlydHVhbCBraHRtbDo6UmVuZGVy
T2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqLCBraHRtbDo6UmVuZGVyU3R5bGUg
Kik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKKyAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAgCi0gICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZUltcGwgKmF0dHIpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsKikgY29uc3Q7CiAKLSAgICBLSlM6
OkJpbmRpbmdzOjpJbnN0YW5jZSAqZ2V0RW1iZWRJbnN0YW5jZSgpIGNvbnN0OworICAgIEtKUzo6
QmluZGluZ3M6Okluc3RhbmNlKiBnZXRFbWJlZEluc3RhbmNlKCkgY29uc3Q7CiAKICAgICBRU3Ry
aW5nIHVybDsKICAgICBRU3RyaW5nIHBsdWdpblBhZ2U7CkBAIC0xNDMsNyArMTM5LDcgQEAKIHBy
aXZhdGU6CiAgICAgRE9NU3RyaW5nIG9sZE5hbWVBdHRyOwogCi0gICAgbXV0YWJsZSBLSlM6OkJp
bmRpbmdzOjpJbnN0YW5jZSAqZW1iZWRJbnN0YW5jZTsKKyAgICBtdXRhYmxlIEtKUzo6QmluZGlu
Z3M6Okluc3RhbmNlKiBlbWJlZEluc3RhbmNlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtMTUxLDIxICsxNDcsMjEgQEAKIGNsYXNzIEhUTUxPYmplY3RFbGVtZW50SW1wbCA6IHB1Ymxp
YyBIVE1MRWxlbWVudEltcGwKIHsKIHB1YmxpYzoKLSAgICBIVE1MT2JqZWN0RWxlbWVudEltcGwo
RG9jdW1lbnRJbXBsICpkb2MpOworICAgIEhUTUxPYmplY3RFbGVtZW50SW1wbChEb2N1bWVudElt
cGwqKTsKICAgICB+SFRNTE9iamVjdEVsZW1lbnRJbXBsKCk7CiAKICAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1
aXJlZDsgfQogICAgIHZpcnR1YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gNzsg
fQogICAgIHZpcnR1YWwgYm9vbCBjaGVja0RURChjb25zdCBOb2RlSW1wbCogbmV3Q2hpbGQpOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50SW1wbCAqZm9ybSgpIGNvbnN0OworICAgIEhUTUxGb3JtRWxl
bWVudEltcGwqIGZvcm0oKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlSW1wbCAqdG9rZW4pOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0g
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwot
ICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEgKiwga2h0bWw6OlJlbmRlclN0eWxlICopOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKFJlbmRlclN0eWxlKik7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VSZW5kZXJlcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKICAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKQEAgLTE3Niw2OSArMTcyLDY5IEBACiAKICAgICBE
b2N1bWVudEltcGwqIGNvbnRlbnREb2N1bWVudCgpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsICphdHRyKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlSW1wbCopIGNvbnN0OwogCiAgICAgYm9v
bCBpc0ltYWdlVHlwZSgpOwogCiAgICAgdm9pZCByZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIAog
ICAgIERPTVN0cmluZyBjb2RlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb2RlKGNvbnN0IERPTVN0
cmluZyAmKTsKKyAgICB2b2lkIHNldENvZGUoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01T
dHJpbmcgYWxpZ24oKSBjb25zdDsKLSAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5n
IGFyY2hpdmUoKSBjb25zdDsKLSAgICB2b2lkIHNldEFyY2hpdmUoY29uc3QgRE9NU3RyaW5nICYp
OworICAgIHZvaWQgc2V0QXJjaGl2ZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmlu
ZyBib3JkZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldEJvcmRlcihjb25zdCBET01TdHJpbmcgJik7
CisgICAgdm9pZCBzZXRCb3JkZXIoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcg
Y29kZUJhc2UoKSBjb25zdDsKLSAgICB2b2lkIHNldENvZGVCYXNlKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldENvZGVCYXNlKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3Ry
aW5nIGNvZGVUeXBlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb2RlVHlwZShjb25zdCBET01TdHJp
bmcgJik7CisgICAgdm9pZCBzZXRDb2RlVHlwZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERP
TVN0cmluZyBkYXRhKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREYXRhKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldERhdGEoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBib29sIGRlY2xh
cmUoKSBjb25zdDsKICAgICB2b2lkIHNldERlY2xhcmUoYm9vbCk7CiAKICAgICBET01TdHJpbmcg
aGVpZ2h0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRIZWlnaHQoY29uc3QgRE9NU3RyaW5nICYpOwor
ICAgIHZvaWQgc2V0SGVpZ2h0KGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGhz
cGFjZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0SHNwYWNlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAg
ICB2b2lkIHNldEhzcGFjZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBuYW1l
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXROYW1lKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lk
IHNldE5hbWUoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgc3RhbmRieSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0U3RhbmRieShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBz
ZXRTdGFuZGJ5KGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgaW50IHRhYkluZGV4KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRUYWJJbmRleChpbnQpOwogCiAgICAgRE9NU3RyaW5nIHR5cGUoKSBjb25z
dDsKLSAgICB2b2lkIHNldFR5cGUoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VHlw
ZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyB1c2VNYXAoKSBjb25zdDsKLSAg
ICB2b2lkIHNldFVzZU1hcChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRVc2VNYXAo
Y29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRWc3BhY2UoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VnNwYWNlKGNv
bnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHdpZHRoKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRXaWR0aChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRXaWR0aChjb25zdCBE
T01TdHJpbmcmKTsKIAogICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cGxldGU7IH0KICAgICB2b2lkIHNldENvbXBsZXRlKGJvb2wgY29tcGxldGUpOwogICAgIAogICAg
IGJvb2wgaXNEb2NOYW1lZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2RvY05hbWVkSXRlbTsgfQog
Ci0gICAgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UgKmdldE9iamVjdEluc3RhbmNlKCkgY29uc3Q7
CisgICAgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UqIGdldE9iamVjdEluc3RhbmNlKCkgY29uc3Q7
CiAKICAgICBRU3RyaW5nIHNlcnZpY2VUeXBlOwogICAgIFFTdHJpbmcgdXJsOwpAQCAtMjUyLDcg
KzI0OCw3IEBACiAgICAgRE9NU3RyaW5nIG9sZElkQXR0cjsKICAgICBET01TdHJpbmcgb2xkTmFt
ZUF0dHI7CiAKLSAgICBtdXRhYmxlIEtKUzo6QmluZGluZ3M6Okluc3RhbmNlICpvYmplY3RJbnN0
YW5jZTsKKyAgICBtdXRhYmxlIEtKUzo6QmluZGluZ3M6Okluc3RhbmNlKiBvYmplY3RJbnN0YW5j
ZTsKIAogICAgIGJvb2wgbV9jb21wbGV0ZTsKICAgICBib29sIG1fZG9jTmFtZWRJdGVtOwpAQCAt
MjY0LDI3ICsyNjAsMjcgQEAKIHsKICAgICBmcmllbmQgY2xhc3MgSFRNTEFwcGxldEVsZW1lbnRJ
bXBsOwogcHVibGljOgotICAgIEhUTUxQYXJhbUVsZW1lbnRJbXBsKERvY3VtZW50SW1wbCAqZG9j
KTsKKyAgICBIVE1MUGFyYW1FbGVtZW50SW1wbChEb2N1bWVudEltcGwqKTsKICAgICB+SFRNTFBh
cmFtRWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1
aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQogICAgIHZpcnR1
YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwgKnRva2VuKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCop
OwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZUltcGwgKmF0dHIp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsKikg
Y29uc3Q7CiAKICAgICBET01TdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQot
ICAgIHZvaWQgc2V0TmFtZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXROYW1lKGNv
bnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHR5cGUoKSBjb25zdDsKLSAgICB2b2lk
IHNldFR5cGUoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VHlwZShjb25zdCBET01T
dHJpbmcmKTsKIAogICAgIERPTVN0cmluZyB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldFZh
bHVlKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHZhbHVlVHlwZSgpIGNvbnN0
OwotICAgIHZvaWQgc2V0VmFsdWVUeXBlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNl
dFZhbHVlVHlwZShjb25zdCBET01TdHJpbmcmKTsKIAogIHByb3RlY3RlZDoKICAgICBBdG9taWNT
dHJpbmcgbV9uYW1lOwpJbmRleDoga2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtodG1s
L2VjbWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQAog
ewogICBLV2luTW9kdWxlIGluZm87CiAgIFFXaWRnZXQgKnRoaXNXaWRnZXQgPSBXaW5kb3c6OnJl
dHJpZXZlQWN0aXZlKGV4ZWMpLT5mcmFtZSgpLT52aWV3KCk7Ci0gIEludFJlY3Qgc2cgPSBRQXBw
bGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9w
KCktPnNjcmVlbk51bWJlcih0aGlzV2lkZ2V0KSk7CisgIEludFJlY3Qgc2cgPSBRRGVza3RvcFdp
ZGdldDo6c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcih0aGlzV2lk
Z2V0KSk7CiAKICAgc3dpdGNoKCB0b2tlbiApIHsKICAgY2FzZSBIZWlnaHQ6CkBAIC0xNjAsMjUg
KzE2MCwxNiBAQAogICBjYXNlIFdpZHRoOgogICAgIHJldHVybiBqc051bWJlcihzZy53aWR0aCgp
KTsKICAgY2FzZSBDb2xvckRlcHRoOgotICBjYXNlIFBpeGVsRGVwdGg6IHsKLSAgICByZXR1cm4g
anNOdW1iZXIoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkRlcHRoKCkpOwotICB9Ci0g
IGNhc2UgQXZhaWxMZWZ0OiB7Ci0gICAgSW50UmVjdCBjbGlwcGVkID0gaW5mby53b3JrQXJlYSgp
LmludGVyc2VjdChzZyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGNsaXBwZWQueCgpLXNnLngoKSk7
Ci0gIH0KLSAgY2FzZSBBdmFpbFRvcDogewotICAgIEludFJlY3QgY2xpcHBlZCA9IGluZm8ud29y
a0FyZWEoKS5pbnRlcnNlY3Qoc2cpOwotICAgIHJldHVybiBqc051bWJlcihjbGlwcGVkLnkoKS1z
Zy55KCkpOwotICB9Ci0gIGNhc2UgQXZhaWxIZWlnaHQ6IHsKLSAgICBJbnRSZWN0IGNsaXBwZWQg
PSBpbmZvLndvcmtBcmVhKCkuaW50ZXJzZWN0KHNnKTsKLSAgICByZXR1cm4ganNOdW1iZXIoY2xp
cHBlZC5oZWlnaHQoKSk7Ci0gIH0KLSAgY2FzZSBBdmFpbFdpZHRoOiB7Ci0gICAgSW50UmVjdCBj
bGlwcGVkID0gaW5mby53b3JrQXJlYSgpLmludGVyc2VjdChzZyk7Ci0gICAgcmV0dXJuIGpzTnVt
YmVyKGNsaXBwZWQud2lkdGgoKSk7Ci0gIH0KKyAgY2FzZSBQaXhlbERlcHRoOgorICAgIHJldHVy
biBqc051bWJlcihRRGVza3RvcFdpZGdldDo6c2NyZWVuRGVwdGgoUURlc2t0b3BXaWRnZXQ6OnNj
cmVlbk51bWJlcih0aGlzV2lkZ2V0KSkpOworICBjYXNlIEF2YWlsTGVmdDoKKyAgICByZXR1cm4g
anNOdW1iZXIoaW50ZXJzZWN0aW9uKGluZm8ud29ya0FyZWEoKSwgc2cpLngoKSAtIHNnLngoKSk7
CisgIGNhc2UgQXZhaWxUb3A6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlvbihpbmZv
LndvcmtBcmVhKCksIHNnKS55KCkgLSBzZy55KCkpOworICBjYXNlIEF2YWlsSGVpZ2h0OgorICAg
IHJldHVybiBqc051bWJlcihpbnRlcnNlY3Rpb24oaW5mby53b3JrQXJlYSgpLCBzZykuaGVpZ2h0
KCkpOworICBjYXNlIEF2YWlsV2lkdGg6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlv
bihpbmZvLndvcmtBcmVhKCksIHNnKS53aWR0aCgpKTsKICAgZGVmYXVsdDoKICAgICBrZFdhcm5p
bmcoKSA8PCAiU2NyZWVuOjpnZXRWYWx1ZVByb3BlcnR5IHVuaGFuZGxlZCB0b2tlbiAiIDw8IHRv
a2VuIDw8IGVuZGw7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02MTEsMTYgKzYwMiwx
NiBAQAogICAgIC8vIC0gaGVscDogYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJoZWxwIiwgdHJ1ZSks
IG1ha2VzIGhlbHAgaWNvbiBhcHBlYXIgaW4gZGlhbG9nICh3aGF0IGRvZXMgaXQgZG8gb24gV2lu
ZG93cz8pCiAgICAgLy8gLSB1bmFkb3JuZWQ6IHRydXN0ZWQgJiYgYm9vbEZlYXR1cmUoZmVhdHVy
ZXMsICJ1bmFkb3JuZWQiKTsKIAotICAgIEludFJlY3Qgc2NyZWVuUmVjdCA9IFFBcHBsaWNhdGlv
bjo6ZGVza3RvcCgpLT5hdmFpbGFibGVHZW9tZXRyeShvcGVuZXJXaW5kb3ctPmZyYW1lKCktPnZp
ZXcoKSk7CisgICAgSW50UmVjdCBzY3JlZW5SZWN0ID0gUURlc2t0b3BXaWRnZXQ6OmF2YWlsYWJs
ZUdlb21ldHJ5KG9wZW5lcldpbmRvdy0+ZnJhbWUoKS0+dmlldygpKTsKIAogICAgIHdhcmdzLndp
ZHRoID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ3dpZHRoIiwgMTAwLCBzY3JlZW5SZWN0
LndpZHRoKCksIDYyMCk7IC8vIGRlZmF1bHQgaGVyZSBjYW1lIGZyb20gZnJhbWUgc2l6ZSBvZiBk
aWFsb2cgaW4gTWFjSUUKICAgICB3YXJncy53aWR0aFNldCA9IHRydWU7CiAgICAgd2FyZ3MuaGVp
Z2h0ID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2hlaWdodCIsIDEwMCwgc2NyZWVuUmVj
dC5oZWlnaHQoKSwgNDUwKTsgLy8gZGVmYXVsdCBoZXJlIGNhbWUgZnJvbSBmcmFtZSBzaXplIG9m
IGRpYWxvZyBpbiBNYWNJRQogICAgIHdhcmdzLmhlaWdodFNldCA9IHRydWU7CiAKLSAgICB3YXJn
cy54ID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2xlZnQiLCBzY3JlZW5SZWN0LngoKSwg
c2NyZWVuUmVjdC54KCkgKyBzY3JlZW5SZWN0LndpZHRoKCkgLSB3YXJncy53aWR0aCwgLTEpOwor
ICAgIHdhcmdzLnggPSBpbnRGZWF0dXJlKGZlYXR1cmVzLCAiZGlhbG9nbGVmdCIsIHNjcmVlblJl
Y3QueCgpLCBzY3JlZW5SZWN0LnJpZ2h0KCkgLSB3YXJncy53aWR0aCwgLTEpOwogICAgIHdhcmdz
LnhTZXQgPSB3YXJncy54ID4gMDsKLSAgICB3YXJncy55ID0gaW50RmVhdHVyZShmZWF0dXJlcywg
ImRpYWxvZ3RvcCIsIHNjcmVlblJlY3QueSgpLCBzY3JlZW5SZWN0LnkoKSArIHNjcmVlblJlY3Qu
aGVpZ2h0KCkgLSB3YXJncy5oZWlnaHQsIC0xKTsKKyAgICB3YXJncy55ID0gaW50RmVhdHVyZShm
ZWF0dXJlcywgImRpYWxvZ3RvcCIsIHNjcmVlblJlY3QueSgpLCBzY3JlZW5SZWN0LmJvdHRvbSgp
IC0gd2FyZ3MuaGVpZ2h0LCAtMSk7CiAgICAgd2FyZ3MueVNldCA9IHdhcmdzLnkgPiAwOwogCiAg
ICAgaWYgKGJvb2xGZWF0dXJlKGZlYXR1cmVzLCAiY2VudGVyIiwgdHJ1ZSkpIHsKQEAgLTYzMyw3
ICs2MjQsNyBAQAogICAgICAgICAgICAgd2FyZ3MueVNldCA9IHRydWU7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgICAgIAorCiAgICAgd2FyZ3MuZGlhbG9nID0gdHJ1ZTsKICAgICB3YXJncy5yZXNp
emFibGUgPSBib29sRmVhdHVyZShmZWF0dXJlcywgInJlc2l6YWJsZSIpOwogICAgIHdhcmdzLnNj
cm9sbEJhcnNWaXNpYmxlID0gYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJzY3JvbGwiLCB0cnVlKTsK
QEAgLTc1MywyNCArNzQ0LDE5IEBACiAgICAgY2FzZSBQZXJzb25hbGJhcjoKICAgICAgIHJldHVy
biBwZXJzb25hbGJhcihleGVjKTsKICAgICBjYXNlIFNjcmVlbkxlZnQ6Ci0gICAgY2FzZSBTY3Jl
ZW5YOiB7Ci0gICAgICBpZiAobV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgIC8vIFdlIHdhbnQg
dG8gdXNlIGZyYW1lR2VvbWV0cnkgaGVyZSBpbnN0ZWFkIG9mIG1hcFRvR2xvYmFsIGJlY2F1c2Ug
aXQgZ29lcyB0aHJvdWdoCi0gICAgICAgIC8vIHRoZSB3aW5kb3dGcmFtZSBtZXRob2Qgb2YgdGhl
IFdlYktpdCdzIFVJIGRlbGVnYXRlLiBBbHNvIHdlIGRvbid0IHdhbnQgdG8gdHJ5Ci0gICAgICAg
IC8vIHRvIGRvIGFueXRoaW5nIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4gdGhlIHdpbmRvdyBpcyBv
biwgc28gdGhlIGNvZGUgYmVsb3cgaXMgbm8KLSAgICAgICAgLy8gZ29vZCBvZiB1cyBhbnl3YXku
Ci0gICAgICAgIHJldHVybiBqc051bWJlcihtX2ZyYW1lLT52aWV3KCktPnRvcExldmVsV2lkZ2V0
KCktPmZyYW1lR2VvbWV0cnkoKS54KCkpOwotICAgICAgfSBlbHNlCisgICAgY2FzZSBTY3JlZW5Y
OgorICAgICAgaWYgKCFtX2ZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIH0KKyAgICAgIC8vIFdlIHdhbnQgdG8gdXNlIGZyYW1lR2VvbWV0cnkgaGVyZSBp
bnN0ZWFkIG9mIG1hcFRvR2xvYmFsIGJlY2F1c2UgaXQgZ29lcyB0aHJvdWdoCisgICAgICAvLyB0
aGUgd2luZG93RnJhbWUgbWV0aG9kIG9mIHRoZSBXZWJLaXQncyBVSSBkZWxlZ2F0ZS4gQWxzbyB3
ZSBkb24ndCB3YW50IHRvIHRyeQorICAgICAgLy8gdG8gZG8gYW55dGhpbmcgcmVsYXRpdmUgdG8g
dGhlIHNjcmVlbiB0aGUgd2luZG93IGlzIG9uLgorICAgICAgcmV0dXJuIGpzTnVtYmVyKG1fZnJh
bWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9tZXRyeSgpLngoKSk7CiAgICAg
Y2FzZSBTY3JlZW5Ub3A6Ci0gICAgY2FzZSBTY3JlZW5ZOiB7Ci0gICAgICBpZiAobV9mcmFtZS0+
dmlldygpKSB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IGFib3ZlIGluIFNjcmVlblguCi0gICAg
ICAgIHJldHVybiBqc051bWJlcihtX2ZyYW1lLT52aWV3KCktPnRvcExldmVsV2lkZ2V0KCktPmZy
YW1lR2VvbWV0cnkoKS55KCkpOwotICAgICAgfSBlbHNlIAorICAgIGNhc2UgU2NyZWVuWToKKyAg
ICAgIGlmICghbV9mcmFtZS0+dmlldygpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICB9CisgICAgICAvLyBTZWUgY29tbWVudCBhYm92ZSBpbiBTY3JlZW5YLgorICAgICAgcmV0
dXJuIGpzTnVtYmVyKG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9t
ZXRyeSgpLnkoKSk7CiAgICAgY2FzZSBTY3JvbGxYOgogICAgICAgaWYgKCFtX2ZyYW1lLT52aWV3
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTUyOSwyMiArMTUxNSwyMiBA
QAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgY29uc3RyYWluVG9WaXNpYmxlKGNvbnN0IEludFJl
Y3QgJnNjcmVlbiwgV2luZG93QXJncyYgd2luZG93QXJncykKK3N0YXRpYyB2b2lkIGNvbnN0cmFp
blRvVmlzaWJsZShjb25zdCBJbnRSZWN0JiBzY3JlZW4sIFdpbmRvd0FyZ3MmIHdpbmRvd0FyZ3Mp
CiB7CiAgICAgd2luZG93QXJncy54ICs9IHNjcmVlbi54KCk7Ci0gICAgaWYgKHdpbmRvd0FyZ3Mu
eCA8IHNjcmVlbi54KCkgfHwgd2luZG93QXJncy54ID4gc2NyZWVuLnJpZ2h0KCkpCi0gICAgICAg
IHdpbmRvd0FyZ3MueCA9IHNjcmVlbi54KCk7IC8vIG9ubHkgc2FmZSBjaG9pY2UgdW50aWwgc2l6
ZSBpcyBkZXRlcm1pbmVkCisgICAgaWYgKHdpbmRvd0FyZ3MueCA8IHNjcmVlbi54KCkgfHwgd2lu
ZG93QXJncy54ID49IHNjcmVlbi5yaWdodCgpKQorICAgICAgICB3aW5kb3dBcmdzLnggPSBzY3Jl
ZW4ueCgpOwogICAgIAogICAgIHdpbmRvd0FyZ3MueSArPSBzY3JlZW4ueSgpOwotICAgIGlmICh3
aW5kb3dBcmdzLnkgPCBzY3JlZW4ueSgpIHx8IHdpbmRvd0FyZ3MueSA+IHNjcmVlbi5ib3R0b20o
KSkKLSAgICAgICAgd2luZG93QXJncy55ID0gc2NyZWVuLnkoKTsgLy8gb25seSBzYWZlIGNob2lj
ZSB1bnRpbCBzaXplIGlzIGRldGVybWluZWQKKyAgICBpZiAod2luZG93QXJncy55IDwgc2NyZWVu
LnkoKSB8fCB3aW5kb3dBcmdzLnkgPj0gc2NyZWVuLmJvdHRvbSgpKQorICAgICAgICB3aW5kb3dB
cmdzLnkgPSBzY3JlZW4ueSgpOwogICAgIAotICAgIGlmICh3aW5kb3dBcmdzLmhlaWdodCA+IHNj
cmVlbi5oZWlnaHQoKSkgIC8vIHNob3VsZCBhY3R1YWxseSBjaGVjayB3b3Jrc3BhY2UKKyAgICBp
ZiAod2luZG93QXJncy5oZWlnaHQgPiBzY3JlZW4uaGVpZ2h0KCkpCiAgICAgICAgIHdpbmRvd0Fy
Z3MuaGVpZ2h0ID0gc2NyZWVuLmhlaWdodCgpOwogICAgIGlmICh3aW5kb3dBcmdzLmhlaWdodCA8
IDEwMCkKICAgICAgICAgd2luZG93QXJncy5oZWlnaHQgPSAxMDA7CiAgICAgCi0gICAgaWYgKHdp
bmRvd0FyZ3Mud2lkdGggPiBzY3JlZW4ud2lkdGgoKSkgICAgLy8gc2hvdWxkIGFjdHVhbGx5IGNo
ZWNrIHdvcmtzcGFjZQorICAgIGlmICh3aW5kb3dBcmdzLndpZHRoID4gc2NyZWVuLndpZHRoKCkp
CiAgICAgICAgIHdpbmRvd0FyZ3Mud2lkdGggPSBzY3JlZW4ud2lkdGgoKTsKICAgICBpZiAod2lu
ZG93QXJncy53aWR0aCA8IDEwMCkKICAgICAgICAgd2luZG93QXJncy53aWR0aCA9IDEwMDsKQEAg
LTE1OTgsOCArMTU4NCw4IEBACiAgICAgICBRU3RyaW5nIGZlYXR1cmVzID0gYXJnc1syXS0+aXNV
bmRlZmluZWRPck51bGwoKSA/IFFTdHJpbmcoKSA6IGFyZ3NbMl0tPnRvU3RyaW5nKGV4ZWMpLnFz
dHJpbmcoKTsKICAgICAgIHBhcnNlV2luZG93RmVhdHVyZXMoZmVhdHVyZXMsIHdpbmRvd0FyZ3Mp
OwogICAgICAgCi0gICAgICBpbnQgc2NyZWVuTnVtYmVyID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9w
KCktPnNjcmVlbk51bWJlcih3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCkpOwotICAgICAgY29uc3Ry
YWluVG9WaXNpYmxlKFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShzY3Jl
ZW5OdW1iZXIpLCB3aW5kb3dBcmdzKTsKKyAgICAgIGludCBzY3JlZW5OdW1iZXIgPSBRRGVza3Rv
cFdpZGdldDo6c2NyZWVuTnVtYmVyKHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKSk7CisgICAgICBj
b25zdHJhaW5Ub1Zpc2libGUoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KHNjcmVlbk51
bWJlciksIHdpbmRvd0FyZ3MpOwogICAgICAgCiAgICAgICAvLyBwcmVwYXJlIGFyZ3VtZW50cwog
ICAgICAgS1VSTCB1cmw7CkBAIC0xNjc2LDY4ICsxNjYyLDU4IEBACiAgIGNhc2UgV2luZG93OjpT
Y3JvbGw6CiAgIGNhc2UgV2luZG93OjpTY3JvbGxUbzoKICAgICB3aW5kb3ctPnVwZGF0ZUxheW91
dCgpOwotICAgIGlmKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KQorICAgIGlmIChhcmdzLnNp
emUoKSA+PSAyICYmIHdpZGdldCkKICAgICAgIHdpZGdldC0+c2V0Q29udGVudHNQb3MoYXJnc1sw
XS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpNb3ZlQnk6Ci0gICAgaWYoYXJncy5zaXplKCkg
Pj0gMiAmJiB3aWRnZXQpCi0gICAgewotICAgICAgUVdpZGdldCAqIHRsID0gd2lkZ2V0LT50b3BM
ZXZlbFdpZGdldCgpOwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0
b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJl
cih0bCkpOwotICAgICAgSW50UG9pbnQgZGVzdCA9IHRsLT5wb3MoKSArIEludFBvaW50KCBhcmdz
WzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICk7Ci0gICAgICAvLyBT
ZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRl
IHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICAgIGlmICggZGVzdC54KCkgPj0gc2cueCgp
ICYmIGRlc3QueSgpID49IHNnLngoKSAmJgotICAgICAgICAgICBkZXN0LngoKSt0bC0+d2lkdGgo
KSA8PSBzZy53aWR0aCgpK3NnLngoKSAmJgotICAgICAgICAgICBkZXN0LnkoKSt0bC0+aGVpZ2h0
KCkgPD0gc2cuaGVpZ2h0KCkrc2cueSgpICkKLSAgICAgICAgdGwtPm1vdmUoIGRlc3QgKTsKKyAg
ICBpZiAoYXJncy5zaXplKCkgPj0gMiAmJiB3aWRnZXQpIHsKKyAgICAgIFFXaWRnZXQqIHRsID0g
d2lkZ2V0LT50b3BMZXZlbFdpZGdldCgpOworICAgICAgSW50UmVjdCBzZyA9IFFEZXNrdG9wV2lk
Z2V0OjpzY3JlZW5HZW9tZXRyeShRRGVza3RvcFdpZGdldDo6c2NyZWVuTnVtYmVyKHRsKSk7Cisg
ICAgICBJbnRQb2ludCBkZXN0ID0gdGwtPnBvcygpICsgSW50UG9pbnQoYXJnc1swXS0+dG9JbnQz
MihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CisgICAgICAvLyBTZWN1cml0eSBjaGVj
ayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUg
dGhpcyBjaGVjaykKKyAgICAgIGlmIChzZy5jb250YWlucyhJbnRSZWN0KGRlc3QsIEludFNpemUo
dGwtPndpZHRoKCksIHRsLT5oZWlnaHQoKSkpKSkKKyAgICAgICAgdGwtPm1vdmUoZGVzdCk7CiAg
ICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICBjYXNlIFdpbmRvdzo6TW92ZVRvOgot
ICAgIGlmKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KQotICAgIHsKLSAgICAgIFFXaWRnZXQg
KiB0bCA9IHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKTsKLSAgICAgICAgICBJbnRSZWN0IHNnID0g
UUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkdlb21ldHJ5KFFBcHBsaWNhdGlvbjo6ZGVz
a3RvcCgpLT5zY3JlZW5OdW1iZXIodGwpKTsKLSAgICAgIEludFBvaW50IGRlc3QoIGFyZ3NbMF0t
PnRvSW50MzIoZXhlYykrc2cueCgpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpK3NnLnkoKSApOwot
ICAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJy
b3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgICBpZiAoIGRlc3QueCgp
ID49IHNnLngoKSAmJiBkZXN0LnkoKSA+PSBzZy55KCkgJiYKLSAgICAgICAgICAgZGVzdC54KCkr
dGwtPndpZHRoKCkgPD0gc2cud2lkdGgoKStzZy54KCkgJiYKLSAgICAgICAgICAgZGVzdC55KCkr
dGwtPmhlaWdodCgpIDw9IHNnLmhlaWdodCgpK3NnLnkoKSApCi0gICAgICAgIHRsLT5tb3ZlKCBk
ZXN0ICk7CisgICAgaWYgKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CisgICAgICBRV2lk
Z2V0KiB0bCA9IHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKTsKKyAgICAgIEludFJlY3Qgc2cgPSBR
RGVza3RvcFdpZGdldDo6c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJl
cih0bCkpOworICAgICAgSW50UG9pbnQgZGVzdChhcmdzWzBdLT50b0ludDMyKGV4ZWMpICsgc2cu
eCgpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICsgc2cueSgpKTsKKyAgICAgIC8vIFNlY3VyaXR5
IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlz
YWJsZSB0aGlzIGNoZWNrKQorICAgICAgaWYgKHNnLmNvbnRhaW5zKEludFJlY3QoZGVzdCwgSW50
U2l6ZSh0bC0+d2lkdGgoKSwgdGwtPmhlaWdodCgpKSkpKQorICAgICAgICB0bC0+bW92ZShkZXN0
KTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpSZXNp
emVCeToKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkKLSAgICB7Ci0gICAgICBR
V2lkZ2V0ICogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7Ci0gICAgICBJbnRTaXplIGRl
c3QgPSB0bC0+c2l6ZSgpICsgSW50U2l6ZSggYXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sx
XS0+dG9JbnQzMihleGVjKSApOwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246
OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVl
bk51bWJlcih0bCkpOworICAgIGlmIChhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkgeworICAg
ICAgUVdpZGdldCogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7CisgICAgICBJbnRTaXpl
IGRlc3QgPSB0bC0+c2l6ZSgpICsgSW50U2l6ZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdz
WzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgIEludFJlY3Qgc2cgPSBRRGVza3RvcFdpZGdldDo6
c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcih0bCkpOwogICAgICAg
Ly8gU2VjdXJpdHkgY2hlY2s6IHdpdGhpbiBkZXNrdG9wIGxpbWl0cyBhbmQgYmlnZ2VyIHRoYW4g
MTAweDEwMCAocGVyIHNwZWMpCi0gICAgICBpZiAoIHRsLT54KCkrZGVzdC53aWR0aCgpIDw9IHNn
LngoKStzZy53aWR0aCgpICYmCi0gICAgICAgICAgIHRsLT55KCkrZGVzdC5oZWlnaHQoKSA8PSBz
Zy55KCkrc2cuaGVpZ2h0KCkgJiYKLSAgICAgICAgICAgZGVzdC53aWR0aCgpID49IDEwMCAmJiBk
ZXN0LmhlaWdodCgpID49IDEwMCApCisgICAgICBpZiAodGwtPngoKSArIGRlc3Qud2lkdGgoKSA8
PSBzZy5yaWdodCgpICYmIHRsLT55KCkgKyBkZXN0LmhlaWdodCgpIDw9IHNnLmJvdHRvbSgpCisg
ICAgICAgICAgICYmIGRlc3Qud2lkdGgoKSA+PSAxMDAgJiYgZGVzdC5oZWlnaHQoKSA+PSAxMDAp
CiAgICAgICB7CiAgICAgICAgIC8vIFRha2UgaW50byBhY2NvdW50IHRoZSB3aW5kb3cgZnJhbWUK
ICAgICAgICAgaW50IGRlbHRhV2lkdGggPSB0bC0+ZnJhbWVHZW9tZXRyeSgpLndpZHRoKCkgLSB0
bC0+d2lkdGgoKTsKICAgICAgICAgaW50IGRlbHRhSGVpZ2h0ID0gdGwtPmZyYW1lR2VvbWV0cnko
KS5oZWlnaHQoKSAtIHRsLT5oZWlnaHQoKTsKLSAgICAgICAgdGwtPnJlc2l6ZSggZGVzdC53aWR0
aCgpIC0gZGVsdGFXaWR0aCwgZGVzdC5oZWlnaHQoKSAtIGRlbHRhSGVpZ2h0ICk7CisgICAgICAg
IHRsLT5yZXNpemUoZGVzdC53aWR0aCgpIC0gZGVsdGFXaWR0aCwgZGVzdC5oZWlnaHQoKSAtIGRl
bHRhSGVpZ2h0KTsKICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
IGNhc2UgV2luZG93OjpSZXNpemVUbzoKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdl
dCkKLSAgICB7CisgICAgaWYgKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CiAgICAgICBR
V2lkZ2V0ICogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7Ci0gICAgICBJbnRTaXplIGRl
c3QgPSBJbnRTaXplKCBhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4
ZWMpICk7Ci0gICAgICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5z
Y3JlZW5HZW9tZXRyeShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuTnVtYmVyKHRsKSk7
CisgICAgICBJbnRTaXplIGRlc3QgPSBJbnRTaXplKGFyZ3NbMF0tPnRvSW50MzIoZXhlYyksIGFy
Z3NbMV0tPnRvSW50MzIoZXhlYykpOworICAgICAgSW50UmVjdCBzZyA9IFFEZXNrdG9wV2lkZ2V0
OjpzY3JlZW5HZW9tZXRyeShRRGVza3RvcFdpZGdldDo6c2NyZWVuTnVtYmVyKHRsKSk7CiAgICAg
ICAvLyBTZWN1cml0eSBjaGVjazogd2l0aGluIGRlc2t0b3AgbGltaXRzIGFuZCBiaWdnZXIgdGhh
biAxMDB4MTAwIChwZXIgc3BlYykKLSAgICAgIGlmICggdGwtPngoKStkZXN0LndpZHRoKCkgPD0g
c2cueCgpK3NnLndpZHRoKCkgJiYKLSAgICAgICAgICAgdGwtPnkoKStkZXN0LmhlaWdodCgpIDw9
IHNnLnkoKStzZy5oZWlnaHQoKSAmJgotICAgICAgICAgICBkZXN0LndpZHRoKCkgPj0gMTAwICYm
IGRlc3QuaGVpZ2h0KCkgPj0gMTAwICkKKyAgICAgIGlmICh0bC0+eCgpICsgZGVzdC53aWR0aCgp
IDw9IHNnLnJpZ2h0KCkgJiYgdGwtPnkoKSArIGRlc3QuaGVpZ2h0KCkgPD0gc2cuYm90dG9tKCkg
JiYKKyAgICAgICAgICAgZGVzdC53aWR0aCgpID49IDEwMCAmJiBkZXN0LmhlaWdodCgpID49IDEw
MCkKICAgICAgIHsKICAgICAgICAgLy8gVGFrZSBpbnRvIGFjY291bnQgdGhlIHdpbmRvdyBmcmFt
ZQogICAgICAgICBpbnQgZGVsdGFXaWR0aCA9IHRsLT5mcmFtZUdlb21ldHJ5KCkud2lkdGgoKSAt
IHRsLT53aWR0aCgpOwogICAgICAgICBpbnQgZGVsdGFIZWlnaHQgPSB0bC0+ZnJhbWVHZW9tZXRy
eSgpLmhlaWdodCgpIC0gdGwtPmhlaWdodCgpOwotICAgICAgICB0bC0+cmVzaXplKCBkZXN0Lndp
ZHRoKCkgLSBkZWx0YVdpZHRoLCBkZXN0LmhlaWdodCgpIC0gZGVsdGFIZWlnaHQgKTsKKyAgICAg
ICAgdGwtPnJlc2l6ZShkZXN0LndpZHRoKCkgLSBkZWx0YVdpZHRoLCBkZXN0LmhlaWdodCgpIC0g
ZGVsdGFIZWlnaHQpOwogICAgICAgfQogICAgIH0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
SW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvZWNtYS9r
anNfZG9tLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBraHRtbC9lY21hL2tqc19kb20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSwzNiArMjEsMzQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJranNfZG9tLmgiCiAKLSNpbmNsdWRlIDxrZGVidWcuaD4KLSNpbmNsdWRlICJGcmFt
ZS5oIgotI2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKLSNpbmNsdWRlICJ4bWwvZG9t
Ml92aWV3c2ltcGwuaCIKLSNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50VHlwZUltcGwuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbklt
cGwuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50SW1wbC5oIgotI2luY2x1ZGUgInhtbC9k
b21fdGV4dGltcGwuaCIKLSNpbmNsdWRlICJ4bWwvRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgInht
bC9kb21feG1saW1wbC5oIgotI2luY2x1ZGUgImh0bWwvaHRtbF9kb2N1bWVudGltcGwuaCIKLSNp
bmNsdWRlICJjc3MvY3NzX3J1bGVpbXBsLmgiCi0jaW5jbHVkZSAiY3NzL2Nzc19zdHlsZXNoZWV0
aW1wbC5oIgotCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlSW1wbC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRG9jdW1l
bnRUeXBlLmgiCi0KLSNpbmNsdWRlICJranNfaHRtbC5oIgorI2luY2x1ZGUgImNzcy9jc3NfcnVs
ZWltcGwuaCIKKyNpbmNsdWRlICJjc3MvY3NzX3N0eWxlc2hlZXRpbXBsLmgiCisjaW5jbHVkZSAi
ZG9tL2RvbV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJodG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgi
CisjaW5jbHVkZSAiaHRtbF9vYmplY3RpbXBsLmgiCisjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCisj
aW5jbHVkZSAia2h0bWxfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJranNfY3NzLmgiCisjaW5jbHVk
ZSAia2pzX2V2ZW50cy5oIgorI2luY2x1ZGUgImtqc19odG1sLmgiCiAjaW5jbHVkZSAia2pzX3Jh
bmdlLmgiCiAjaW5jbHVkZSAia2pzX3RyYXZlcnNhbC5oIgotI2luY2x1ZGUgImtqc19ldmVudHMu
aCIKICNpbmNsdWRlICJranNfdmlld3MuaCIKICNpbmNsdWRlICJranNfd2luZG93LmgiCi0jaW5j
bHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2Nh
bnZhcy5oIgorI2luY2x1ZGUgInhtbC9FdmVudE5hbWVzLmgiCisjaW5jbHVkZSAieG1sL2RvbTJf
ZXZlbnRzaW1wbC5oIgorI2luY2x1ZGUgInhtbC9kb20yX3ZpZXdzaW1wbC5oIgorI2luY2x1ZGUg
InhtbC9kb21fdGV4dGltcGwuaCIKKyNpbmNsdWRlICJ4bWwvZG9tX3htbGltcGwuaCIKKyNpbmNs
dWRlIDxrZGVidWcuaD4KIAotI2luY2x1ZGUgImh0bWxfb2JqZWN0aW1wbC5oIgotI2luY2x1ZGUg
Imh0bWxuYW1lcy5oIgotCiAjaWYgX19BUFBMRV9fCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
cnVudGltZV9vYmplY3QuaD4KICNlbmRpZgpJbmRleDoga2h0bWwvbWlzYy9raHRtbGxheW91dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtodG1sL21pc2Mva2h0bWxsYXlvdXQuaAkocmV2aXNpb24gMTI0MjQp
CisrKyBraHRtbC9taXNjL2todG1sbGF5b3V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKIAogICAgIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICAgIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MSwxMTQgKzIyLDEwNSBAQAogCiAgICAgVGhpcyB3aWRnZXQgaG9sZHMgc29tZSB1c2VmdWwgZGVm
aW5pdGlvbnMgbmVlZGVkIGZvciBsYXlvdXRpbmcgRWxlbWVudHMKICovCisKICNpZm5kZWYgSFRN
TF9MQVlPVVRfSAogI2RlZmluZSBIVE1MX0xBWU9VVF9ICiAKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qCi0gKiB0aGlzIG5hbWVzcGFjZSBjb250YWlucyBk
ZWZpbml0aW9ucyBmb3IgdmFyaW91cyB0eXBlcyBuZWVkZWQgZm9yCi0gKiBsYXlvdXRpbmcuCi0g
Ki8KLW5hbWVzcGFjZSBraHRtbAoteworbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY29uc3Qg
aW50IFVOREVGSU5FRCA9IC0xOwogCi0gICAgLy8gYWxpZ25tZW50Ci0gICAgZW51bSBWQWxpZ24g
eyBWTm9uZT0wLCBCb3R0b20sIFZDZW50ZXIsIFRvcCwgQmFzZWxpbmUgfTsKLSAgICBlbnVtIEhB
bGlnbiB7IEhEZWZhdWx0LCBMZWZ0LCBIQ2VudGVyLCBSaWdodCwgSE5vbmUgPSAwIH07Ci0KLSAg
ICAvKgotICAgICAqICVtdWx0aUxlbmd0aCBhbmQgJUxlbmd0aAotICAgICAqLwogICAgIGVudW0g
TGVuZ3RoVHlwZSB7IEF1dG8gPSAwLCBSZWxhdGl2ZSwgUGVyY2VudCwgRml4ZWQsIFN0YXRpYywg
SW50cmluc2ljLCBNaW5JbnRyaW5zaWMgfTsKICAgICBzdHJ1Y3QgTGVuZ3RoCiAgICAgewotCUxl
bmd0aCgpIHsgKigoUV9VSU5UMzIgKil0aGlzKSA9IDA7IH0KKyAgICAgICAgLy8gRklYTUU6IEEg
bW9yZSByZWxpYWJsZSBhbmQgc3RyYWlnaHRmb3J3YXJkIHdheSBvZiBkb2luZyB0aGlzIGlzIHRv
IGp1c3QgaGF2ZQorICAgICAgICAvLyBhbiB1bnNpZ25lZCBhbmQgZXh0cmFjdCB0aGUgYml0cyBh
cyBuZWVkZWQsIGluc3RlYWQgb2YgcmVseWluZyBvbiBiaXQgZmllbGRzIGxheW91dAorICAgICAg
ICAvLyBmaXR0aW5nIGluIGEgMzItYml0IGludGVnZXIuIFNob3VsZCBmaXggdGhpcy4KKworCUxl
bmd0aCgpIHsgKigodWludDMyX3QgKil0aGlzKSA9IDA7IH0KICAgICAgICAgTGVuZ3RoKExlbmd0
aFR5cGUgdCkgeyB0eXBlID0gdDsgdmFsdWUgPSAwOyBxdWlyayA9IGZhbHNlOyB9CiAgICAgICAg
IExlbmd0aChpbnQgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHE9ZmFsc2UpIDogdmFsdWUodiksIHR5
cGUodCksIHF1aXJrKHEpIHt9CiAgICAgICAgIExlbmd0aChjb25zdCBMZW5ndGggJm8pCi0JICAg
IHsgKigoUV9VSU5UMzIgKil0aGlzKSA9ICooKFFfVUlOVDMyICopJm8pOyB9CisJICAgIHsgKigo
dWludDMyX3QgKil0aGlzKSA9ICooKHVpbnQzMl90ICopJm8pOyB9CiAKICAgICAgICAgTGVuZ3Ro
JiBvcGVyYXRvcj0oY29uc3QgTGVuZ3RoJiBvKQotICAgICAgICAgICAgeyAqKChRX1VJTlQzMiAq
KXRoaXMpID0gKigoUV9VSU5UMzIgKikmbyk7IHJldHVybiAqdGhpczsgfQorICAgICAgICAgICAg
eyAqKCh1aW50MzJfdCAqKXRoaXMpID0gKigodWludDMyX3QgKikmbyk7IHJldHVybiAqdGhpczsg
fQogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdAotICAgICAg
ICAgICAgeyByZXR1cm4gKigoUV9VSU5UMzIgKil0aGlzKSA9PSAqKChRX1VJTlQzMiAqKSZvKTsg
fQorICAgICAgICAgICAgeyByZXR1cm4gKigodWludDMyX3QgKil0aGlzKSA9PSAqKCh1aW50MzJf
dCAqKSZvKTsgfQogICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTGVuZ3RoJiBvKSBjb25z
dAotICAgICAgICAgICAgeyByZXR1cm4gKigoUV9VSU5UMzIgKil0aGlzKSAhPSAqKChRX1VJTlQz
MiAqKSZvKTsgfQorICAgICAgICAgICAgeyByZXR1cm4gKigodWludDMyX3QgKil0aGlzKSAhPSAq
KCh1aW50MzJfdCAqKSZvKTsgfQogCiAKIAlpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gdmFs
dWU7IH0KIAotCS8qCi0JICogd29ya3Mgb25seSBmb3IgRml4ZWQgYW5kIFBlcmNlbnQsIHJldHVy
bnMgLTEgb3RoZXJ3aXNlCi0JICovCi0JaW50IHdpZHRoKGludCBtYXhXaWR0aCkgY29uc3QKLQkg
ICAgewotCQlzd2l0Y2godHlwZSkKLQkJeworCS8vIG5vdGU6IHdvcmtzIG9ubHkgZm9yIGNlcnRh
aW4gdHlwZXMsIHJldHVybnMgLTEgb3RoZXJ3aXNlCisJaW50IHdpZHRoKGludCBtYXhXaWR0aCkg
Y29uc3QgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAJCWNhc2UgRml4ZWQ6CiAJCSAg
ICByZXR1cm4gdmFsdWU7CiAJCWNhc2UgUGVyY2VudDoKLQkJICAgIHJldHVybiBtYXhXaWR0aCp2
YWx1ZS8xMDA7CisJCSAgICByZXR1cm4gbWF4V2lkdGggKiB2YWx1ZSAvIDEwMDsKIAkJY2FzZSBB
dXRvOgogCQkgICAgcmV0dXJuIG1heFdpZHRoOwogCQlkZWZhdWx0OgogCQkgICAgcmV0dXJuIC0x
OwotCQl9Ci0JICAgIH0KLQkvKgotCSAqIHJldHVybnMgdGhlIG1pbmltdW0gd2lkdGggdmFsdWUg
d2hpY2ggY291bGQgd29yay4uLgotCSAqLwotCWludCBtaW5XaWR0aChpbnQgbWF4V2lkdGgpIGNv
bnN0Ci0JICAgIHsKLQkJc3dpdGNoKHR5cGUpCi0JCXsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisJaW50IG1pbldpZHRoKGludCBtYXhXaWR0aCkgY29uc3QgeworICAgICAgICAgICAgc3dp
dGNoICh0eXBlKSB7CiAJCWNhc2UgRml4ZWQ6CiAJCSAgICByZXR1cm4gdmFsdWU7CiAJCWNhc2Ug
UGVyY2VudDoKLQkJICAgIHJldHVybiBtYXhXaWR0aCp2YWx1ZS8xMDA7CisJCSAgICByZXR1cm4g
bWF4V2lkdGggKiB2YWx1ZSAvIDEwMDsKIAkJY2FzZSBBdXRvOgogCQlkZWZhdWx0OgogCQkgICAg
cmV0dXJuIDA7Ci0JCX0KLQkgICAgfQotICAgICAgICBib29sIGlzQXV0bygpIGNvbnN0IHsgcmV0
dXJuICh0eXBlID09IEF1dG8pOyB9Ci0gICAgICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNvbnN0IHsg
cmV0dXJuICh0eXBlID09IFJlbGF0aXZlKTsgfQotICAgICAgICBib29sIGlzUGVyY2VudCgpIGNv
bnN0IHsgcmV0dXJuICh0eXBlID09IFBlcmNlbnQpOyB9Ci0gICAgICAgIGJvb2wgaXNGaXhlZCgp
IGNvbnN0IHsgcmV0dXJuICh0eXBlID09IEZpeGVkKTsgfQotICAgICAgICBib29sIGlzU3RhdGlj
KCkgY29uc3QgeyByZXR1cm4gKHR5cGUgPT0gU3RhdGljKTsgfQotICAgICAgICBib29sIGlzSW50
cmluc2ljT3JBdXRvKCkgY29uc3QgeyByZXR1cm4gKHR5cGUgPT0gQXV0byB8fCB0eXBlID09IE1p
bkludHJpbnNpYyB8fCB0eXBlID09IEludHJpbnNpYyk7IH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogCisgICAgICAgIGJvb2wgaXNBdXRvKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9PSBBdXRv
OyB9CisgICAgICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUgPT0gUmVs
YXRpdmU7IH0KKyAgICAgICAgYm9vbCBpc1BlcmNlbnQoKSBjb25zdCB7IHJldHVybiB0eXBlID09
IFBlcmNlbnQ7IH0KKyAgICAgICAgYm9vbCBpc0ZpeGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9
PSBGaXhlZDsgfQorICAgICAgICBib29sIGlzU3RhdGljKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9
PSBTdGF0aWM7IH0KKyAgICAgICAgYm9vbCBpc0ludHJpbnNpY09yQXV0bygpIGNvbnN0IHsgcmV0
dXJuIHR5cGUgPT0gQXV0byB8fCB0eXBlID09IE1pbkludHJpbnNpYyB8fCB0eXBlID09IEludHJp
bnNpYzsgfQorCiAgICAgICAgIGludCB2YWx1ZSA6IDI4OwogICAgICAgICBMZW5ndGhUeXBlIHR5
cGUgOiAzOwogICAgICAgICBib29sIHF1aXJrIDogMTsKICAgICB9OwogCiAgICAgc3RydWN0IEdh
cFJlY3RzIHsKLSAgICAgICAgSW50UmVjdCBtX2xlZnQ7Ci0gICAgICAgIEludFJlY3QgbV9jZW50
ZXI7Ci0gICAgICAgIEludFJlY3QgbV9yaWdodDsKKyAgICAgICAgY29uc3QgSW50UmVjdCYgbGVm
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgICAgICBjb25zdCBJbnRSZWN0JiBjZW50
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlcjsgfQorICAgICAgICBjb25zdCBJbnRSZWN0JiBy
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KICAgICAgICAgCi0gICAgICAgIEludFJl
Y3QgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQotICAgICAgICBJbnRSZWN0IGNlbnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyOyB9Ci0gICAgICAgIEludFJlY3QgcmlnaHQoKSBj
b25zdCB7IHJldHVybiBtX3JpZ2h0OyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHVuaXRlTGVm
dChjb25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdCA9IG1fbGVmdC51bml0ZShyKTsgfQotICAgICAg
ICB2b2lkIHVuaXRlQ2VudGVyKGNvbnN0IEludFJlY3QmIHIpIHsgbV9jZW50ZXIgPSBtX2NlbnRl
ci51bml0ZShyKTsgfQotICAgICAgICB2b2lkIHVuaXRlUmlnaHQoY29uc3QgSW50UmVjdCYgcikg
eyBtX3JpZ2h0ID0gbV9yaWdodC51bml0ZShyKTsgfQorICAgICAgICB2b2lkIHVuaXRlTGVmdChj
b25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdC51bml0ZShyKTsgfQorICAgICAgICB2b2lkIHVuaXRl
Q2VudGVyKGNvbnN0IEludFJlY3QmIHIpIHsgbV9jZW50ZXIudW5pdGUocik7IH0KKyAgICAgICAg
dm9pZCB1bml0ZVJpZ2h0KGNvbnN0IEludFJlY3QmIHIpIHsgbV9yaWdodC51bml0ZShyKTsgfQog
ICAgICAgICB2b2lkIHVuaXRlKGNvbnN0IEdhcFJlY3RzJiBvKSB7IHVuaXRlTGVmdChvLmxlZnQo
KSk7IHVuaXRlQ2VudGVyKG8uY2VudGVyKCkpOyB1bml0ZVJpZ2h0KG8ucmlnaHQoKSk7IH0KIAog
ICAgICAgICBvcGVyYXRvciBJbnRSZWN0KCkgY29uc3QgewotICAgICAgICAgICAgSW50UmVjdCBy
ZXN1bHQgPSBtX2xlZnQudW5pdGUobV9jZW50ZXIpOwotICAgICAgICAgICAgcmVzdWx0ID0gcmVz
dWx0LnVuaXRlKG1fcmlnaHQpOworICAgICAgICAgICAgSW50UmVjdCByZXN1bHQgPSBtX2xlZnQ7
CisgICAgICAgICAgICByZXN1bHQudW5pdGUobV9jZW50ZXIpOworICAgICAgICAgICAgcmVzdWx0
LnVuaXRlKG1fcmlnaHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQog
ICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR2FwUmVjdHMmIG90aGVyKSB7CiAgICAgICAg
ICAgICByZXR1cm4gbV9sZWZ0ID09IG90aGVyLmxlZnQoKSAmJiBtX2NlbnRlciA9PSBvdGhlci5j
ZW50ZXIoKSAmJiBtX3JpZ2h0ID09IG90aGVyLnJpZ2h0KCk7CiAgICAgICAgIH0KICAgICAgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEdhcFJlY3RzJiBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9
PSBvdGhlcik7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEludFJlY3QgbV9sZWZ0OworICAg
ICAgICBJbnRSZWN0IG1fY2VudGVyOworICAgICAgICBJbnRSZWN0IG1fcmlnaHQ7CiAgICAgfTsK
LX07CiAKK30KKwogI2VuZGlmCkluZGV4OiBwbGF0Zm9ybS9GbG9hdFNpemUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHBsYXRmb3JtL0Zsb2F0U2l6ZS5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZv
cm0vRmxvYXRTaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNDUgKzI2LDEzIEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKwogI2luY2x1ZGUgIklu
dFNpemUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFNpemU6OkZsb2F0U2l6ZSgp
IDogdygtMS4wZiksIGgoLTEuMGYpCitGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkK
IHsKIH0KIAotRmxvYXRTaXplOjpGbG9hdFNpemUoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
OiB3KHdpZHRoKSwgaChoZWlnaHQpCi17CiB9Ci0KLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0
IEludFNpemUmIG8pIDogdyhvLndpZHRoKCkpLCBoKG8uaGVpZ2h0KCkpCi17Ci19Ci0KLWJvb2wg
RmxvYXRTaXplOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA+PSAwLjBmICYmIGgg
Pj0gMC4wZjsKLX0KLQotRmxvYXRTaXplIEZsb2F0U2l6ZTo6ZXhwYW5kZWRUbyhjb25zdCBGbG9h
dFNpemUmIG8pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSh3ID4gby53ID8gdyA6IG8u
dywgaCA+IG8uaCA/IGggOiBvLmgpOwotfQotCi1GbG9hdFNpemUgb3BlcmF0b3IrKGNvbnN0IEZs
b2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBGbG9hdFNpemUo
YS53ICsgYi53LCBhLmggKyBiLmgpOwotfQotCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRT
aXplJiBhLCBjb25zdCBGbG9hdFNpemUmIGIpCi17Ci0gICAgcmV0dXJuIGEudyA9PSBiLncgJiYg
YS5oID09IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29u
c3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBiLmg7
Ci19Ci0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBwbGF0Zm9ybS9JbnRS
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkocmV2aXNpb24gMTI0
MjQpCisrKyBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKKwogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogdXNpbmcgc3RkOjptYXg7CkBA
IC0zMiwxNjAgKzMzLDYwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW50UmVjdDo6SW50
UmVjdCgpIDogeHAoMCksIHlwKDApLCB3KDApLCBoKDApCitib29sIEludFJlY3Q6OmludGVyc2Vj
dHMoY29uc3QgSW50UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gQ2hlY2tpbmcgZW1wdGlu
ZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwgYXMgemVyby4KKyAgICByZXR1cm4g
IWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIHgoKSA8IG90aGVyLnJp
Z2h0KCkgJiYgb3RoZXIueCgpIDwgcmlnaHQoKQorICAgICAgICAmJiB5KCkgPCBvdGhlci5ib3R0
b20oKSAmJiBvdGhlci55KCkgPCBib3R0b20oKTsKIH0KIAotSW50UmVjdDo6SW50UmVjdChpbnQg
eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgp
LCBoKGhlaWdodCkKK2Jvb2wgSW50UmVjdDo6Y29udGFpbnMoY29uc3QgSW50UmVjdCYgb3RoZXIp
IGNvbnN0CiB7CisgICAgcmV0dXJuIHgoKSA8PSBvdGhlci54KCkgJiYgcmlnaHQoKSA+PSBvdGhl
ci5yaWdodCgpCisgICAgICAgICYmIHkoKSA8PSBvdGhlci55KCkgJiYgYm90dG9tKCkgPj0gb3Ro
ZXIuYm90dG9tKCk7CiB9CiAKLUludFJlY3Q6OkludFJlY3QoSW50UG9pbnQgcCwgSW50U2l6ZSBz
KSA6IHhwKHAueCgpKSwgeXAocC55KCkpLCB3KHMud2lkdGgoKSksIGgocy5oZWlnaHQoKSkKK3Zv
aWQgSW50UmVjdDo6aW50ZXJzZWN0KGNvbnN0IEludFJlY3QmIG90aGVyKQogewotfQorICAgIGlu
dCBsID0gbWF4KHgoKSwgb3RoZXIueCgpKTsKKyAgICBpbnQgdCA9IG1heCh5KCksIG90aGVyLnko
KSk7CisgICAgaW50IHIgPSBtaW4ocmlnaHQoKSwgb3RoZXIucmlnaHQoKSk7CisgICAgaW50IGIg
PSBtaW4oYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsKIAotSW50UmVjdDo6SW50UmVjdChjb25z
dCBJbnRQb2ludCAmdG9wTGVmdCwgY29uc3QgSW50UG9pbnQgJmJvdHRvbVJpZ2h0KQotewotICAg
IHhwID0gdG9wTGVmdC54KCk7Ci0gICAgeXAgPSB0b3BMZWZ0LnkoKTsKLSAgICB3ID0gYm90dG9t
UmlnaHQueCgpIC0gdG9wTGVmdC54KCkgKyAxOwotICAgIGggPSBib3R0b21SaWdodC55KCkgLSB0
b3BMZWZ0LnkoKSArIDE7Ci19Ci0KLWJvb2wgSW50UmVjdDo6aXNOdWxsKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gdyA9PSAwICYmIGggPT0gMDsKLX0KLQotYm9vbCBJbnRSZWN0Ojppc1ZhbGlkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gdyA+IDAgJiYgaCA+IDA7Ci19Ci0KLWJvb2wgSW50UmVjdDo6
aXNFbXB0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPD0gMCB8fCBoIDw9IDA7Ci19Ci0KLWlu
dCBJbnRSZWN0OjpyaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHhwICsgdyAtIDE7Ci19Ci0K
LWludCBJbnRSZWN0Ojpib3R0b20oKSBjb25zdAotewotICAgIHJldHVybiB5cCArIGggLSAxOwot
fQotCi1JbnRQb2ludCBJbnRSZWN0Ojp0b3BMZWZ0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50
UG9pbnQoeHAseXApOwotfQotCi1JbnRQb2ludCBJbnRSZWN0Ojp0b3BSaWdodCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIEludFBvaW50KHJpZ2h0KCksdG9wKCkpOwotfQotCi1JbnRQb2ludCBJbnRS
ZWN0Ojpib3R0b21SaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFBvaW50KHJpZ2h0KCks
Ym90dG9tKCkpOwotfQotCi1JbnRQb2ludCBJbnRSZWN0Ojpib3R0b21MZWZ0KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gSW50UG9pbnQobGVmdCgpLGJvdHRvbSgpKTsKLX0KLQotSW50U2l6ZSBJbnRS
ZWN0OjpzaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50U2l6ZSh3LGgpOwotfQotCi1JbnRS
ZWN0IEludFJlY3Q6OnVuaXRlKGNvbnN0IEludFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgaWYgKHIu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgCi0gICAgaWYgKGlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIHI7Ci0KLSAgICBpbnQgbngsIG55LCBudywgbmg7Ci0KLSAgICBu
eCA9IG1pbih4cCwgci54cCk7Ci0gICAgbnkgPSBtaW4oeXAsIHIueXApOwotCi0gICAgaWYgKHhw
ICsgdyA+PSByLnhwICsgci53KSB7Ci0gICAgICAgIG53ID0geHAgKyB3IC0gbng7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgbncgPSByLnhwICsgci53IC0gbng7IAorICAgIC8vIFJldHVybiBhIGNs
ZWFuIGVtcHR5IHJlY3RhbmdsZSBmb3Igbm9uLWludGVyc2VjdGluZyBjYXNlcy4KKyAgICBpZiAo
bCA+PSByIHx8IHQgPj0gYikgeworICAgICAgICBsID0gMDsKKyAgICAgICAgdCA9IDA7CisgICAg
ICAgIHIgPSAwOworICAgICAgICBiID0gMDsKICAgICB9CiAKLSAgICBpZiAoeXAgKyBoID49IHIu
eXAgKyByLmgpIHsKLSAgICAgICAgbmggPSB5cCArIGggLSBueTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBuaCA9IHIueXAgKyByLmggLSBueTsgCi0gICAgfQotCi0gICAgcmV0dXJuIEludFJlY3Qo
bngsIG55LCBudywgbmgpOworICAgIG1fbG9jYXRpb24uc2V0WChsKTsKKyAgICBtX2xvY2F0aW9u
LnNldFkodCk7CisgICAgbV9zaXplLnNldFdpZHRoKHIgLSBsKTsKKyAgICBtX3NpemUuc2V0SGVp
Z2h0KGIgLSB0KTsKIH0KIAotSW50UmVjdCBJbnRSZWN0Ojpub3JtYWxpemUoKSBjb25zdAordm9p
ZCBJbnRSZWN0Ojp1bml0ZShjb25zdCBJbnRSZWN0JiBvdGhlcikKIHsKLSAgICBJbnRSZWN0IG5l
d1JlY3Q7Ci0gICAgCi0gICAgbmV3UmVjdC54cCAgPSAodyA8IDApID8gKHhwIC0gdykgOiB4cDsK
LSAgICBuZXdSZWN0LncgICA9ICh3IDwgMCkgPyAtdyA6IHc7Ci0gICAgCi0gICAgbmV3UmVjdC55
cCAgPSAoaCA8IDApID8gKHlwIC0gaCkgOiB5cDsKLSAgICBuZXdSZWN0LmggICA9IChoIDwgMCkg
PyAtaCA6IGg7Ci0gICAgCi0gICAgcmV0dXJuIG5ld1JlY3Q7Ci19Ci0KLWJvb2wgSW50UmVjdDo6
aW50ZXJzZWN0cyhjb25zdCBJbnRSZWN0ICZyKSBjb25zdAotewotICAgIHJldHVybiBpbnRlcnNl
Y3QocikuaXNWYWxpZCgpOwotfQotCi1JbnRSZWN0IEludFJlY3Q6OmludGVyc2VjdChjb25zdCBJ
bnRSZWN0ICZyKSBjb25zdAotewotICAgIGludCBueCwgbnksIG53LCBuaDsKLQotICAgIG54ID0g
bWF4KHhwLCByLnhwKTsKLSAgICBueSA9IG1heCh5cCwgci55cCk7Ci0KLSAgICBpZiAoeHAgKyB3
IDw9IHIueHAgKyByLncpIHsKLSAgICAgICAgbncgPSB4cCArIHcgLSBueDsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBudyA9IHIueHAgKyByLncgLSBueDsgCisgICAgLy8gSGFuZGxlIGVtcHR5IHNw
ZWNpYWwgY2FzZXMgZmlyc3QuCisgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICh5cCArIGggPD0gci55cCArIHIuaCkgewotICAg
ICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5oID0gci55cCAr
IHIuaCAtIG55OyAKLSAgICB9CisgICAgaW50IGwgPSBtaW4oeCgpLCBvdGhlci54KCkpOworICAg
IGludCB0ID0gbWluKHkoKSwgb3RoZXIueSgpKTsKKyAgICBpbnQgciA9IG1heChyaWdodCgpLCBv
dGhlci5yaWdodCgpKTsKKyAgICBpbnQgYiA9IG1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkp
OwogCi0gICAgcmV0dXJuIEludFJlY3QobngsIG55LCBudywgbmgpOworICAgIG1fbG9jYXRpb24u
c2V0WChsKTsKKyAgICBtX2xvY2F0aW9uLnNldFkodCk7CisgICAgbV9zaXplLnNldFdpZHRoKHIg
LSBsKTsKKyAgICBtX3NpemUuc2V0SGVpZ2h0KGIgLSB0KTsKIH0KIAotdm9pZCBJbnRSZWN0Ojpp
bmZsYXRlKGludCBzKQotewotICAgIHhwIC09IHM7Ci0gICAgeXAgLT0gczsKLSAgICB3ICs9IDIq
czsKLSAgICBoICs9IDIqczsKIH0KLQotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3QgJmEs
IGNvbnN0IEludFJlY3QgJmIpCi17Ci0gICAgcmV0dXJuIGEueHAgPT0gYi54cCAmJiBhLnlwID09
IGIueXAgJiYgYS53ID09IGIudyAmJiBhLmggPT0gYi5oOwotfQotCi1ib29sIG9wZXJhdG9yIT0o
Y29uc3QgSW50UmVjdCAmYSwgY29uc3QgSW50UmVjdCAmYikKLXsKLSAgICByZXR1cm4gIShhID09
IGIpOwotfQotCi19CkluZGV4OiBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5oCShyZXZpc2lvbiAxMjQyNCkKKysrIHBsYXRmb3Jt
L0ludFBvaW50QXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzcsNyArMzcsNiBAQAogcHVibGljOgogICAgIEludFBvaW50QXJyYXkoKSB7IH0KICAg
ICBJbnRQb2ludEFycmF5KGludCBzaXplKSA6IEFycmF5PEludFBvaW50PihzaXplKSB7IH0KLSAg
ICBJbnRQb2ludEFycmF5KGNvbnN0IEludFJlY3QgJnJlY3QpOwogICAgIEludFBvaW50QXJyYXko
aW50LCBjb25zdCBpbnQgKik7CiAgICAgCiAgICAgSW50UmVjdCBib3VuZGluZ1JlY3QoKSBjb25z
dDsKSW5kZXg6IHBsYXRmb3JtL0ludFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50
UG9pbnQuaAkocmV2aXNpb24gMTI0MjQpCisrKyBwbGF0Zm9ybS9JbnRQb2ludC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2MCArMjcsODcgQEAKICNk
ZWZpbmUgSU5UUE9JTlRfSF8KIAogI2lmIF9fQVBQTEVfXworCit0eXBlZGVmIHN0cnVjdCBDR1Bv
aW50IENHUG9pbnQ7CisKIC8vIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1
PgotI2lmICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8zMl9MSUtFXzY0CisjaWYgIV9fTFA2NF9f
ICYmICFOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9N
RVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBOU1BvaW50OwogI2Vsc2UKIHR5cGVk
ZWYgc3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7CiAjZW5kaWYKLXR5cGVkZWYgc3RydWN0IENHUG9p
bnQgQ0dQb2ludDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW50
UG9pbnQgewogcHVibGljOgotICAgIEludFBvaW50KCk7Ci0gICAgSW50UG9pbnQoaW50LCBpbnQp
OwotICAgIAorICAgIEludFBvaW50KCkgOiBtX3goMCksIG1feSgwKSB7IH0KKyAgICBJbnRQb2lu
dChpbnQgeCwgaW50IHkpIDogbV94KHgpLCBtX3koeSkgeyB9CisKKyAgICBpbnQgeCgpIGNvbnN0
IHsgcmV0dXJuIG1feDsgfQorICAgIGludCB5KCkgY29uc3QgeyByZXR1cm4gbV95OyB9CisKKyAg
ICB2b2lkIHNldFgoaW50IHgpIHsgbV94ID0geDsgfQorICAgIHZvaWQgc2V0WShpbnQgeSkgeyBt
X3kgPSB5OyB9CisKICNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBJbnRQb2ludChjb25zdCBOU1BvaW50
ICYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQotI2VuZGlm
Ci0gICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgQ0dQb2ludCAmKTsgLy8gZG9uJ3QgZG8gdGhp
cyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNlbmRpZgogCi0gICAgaW50IHgoKSBjb25z
dCB7IHJldHVybiB4Q29vcmQ7IH0KLSAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJuIHlDb29yZDsg
fQotICAgIAotICAgIHZvaWQgc2V0WChpbnQgeCkgeyB4Q29vcmQgPSB4OyB9Ci0gICAgdm9pZCBz
ZXRZKGludCB5KSB7IHlDb29yZCA9IHk7IH0KLSAgICAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIHhDb29yZCA9PSAwICYmIHlDb29yZCA9PSAwOyB9Ci0gICAgCi0gICAgSW50UG9p
bnQgJm9wZXJhdG9yIC09KGNvbnN0IEludFBvaW50ICZ0d28pIHsgeENvb3JkIC09IHR3by54Q29v
cmQ7IHlDb29yZCAtPSB0d28ueUNvb3JkOyByZXR1cm4gKnRoaXM7IH0KLSAgICBmcmllbmQgY29u
c3QgSW50UG9pbnQgb3BlcmF0b3IqKGNvbnN0IEludFBvaW50ICZwLCBkb3VibGUgcyk7Ci0gICAg
ZnJpZW5kIEludFBvaW50IG9wZXJhdG9yKyhjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJbnRQb2lu
dCAmKTsKLSAgICBmcmllbmQgSW50UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEludFBvaW50ICYsIGNv
bnN0IEludFBvaW50ICYpOworICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IENHUG9pbnQmKTsg
Ly8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBvcGVyYXRv
ciBDR1BvaW50KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExFX18gICAgCi0jaWZuZGVmIE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgTlNQ
b2ludCYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAg
IG9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHUG9pbnQo
KSBjb25zdDsKKwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgaW50IHhDb29yZDsKLSAgICBpbnQg
eUNvb3JkOworICAgIGludCBtX3gsIG1feTsKIH07CiAKK2lubGluZSBJbnRQb2ludCYgb3BlcmF0
b3IrPShJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7CisgICAgYS5zZXRYKGEueCgp
ICsgYi54KCkpOworICAgIGEuc2V0WShhLnkoKSArIGIueSgpKTsKKyAgICByZXR1cm4gYTsKIH0K
IAoraW5saW5lIEludFBvaW50JiBvcGVyYXRvci09KEludFBvaW50JiBhLCBjb25zdCBJbnRQb2lu
dCYgYikKK3sKKyAgICBhLnNldFgoYS54KCkgLSBiLngoKSk7CisgICAgYS5zZXRZKGEueSgpIC0g
Yi55KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxpbmUgSW50UG9pbnQgb3BlcmF0b3IrKGNv
bnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikKK3sKKyAgICByZXR1cm4gSW50UG9p
bnQoYS54KCkgKyBiLngoKSwgYS55KCkgKyBiLnkoKSk7Cit9CisKK2lubGluZSBJbnRQb2ludCBv
cGVyYXRvci0oY29uc3QgSW50UG9pbnQmIGEsIGNvbnN0IEludFBvaW50JiBiKQoreworICAgIHJl
dHVybiBJbnRQb2ludChhLngoKSAtIGIueCgpLCBhLnkoKSAtIGIueSgpKTsKK30KKworaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7
CisgICAgcmV0dXJuIGEueCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQorCitpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikK
K3sKKyAgICByZXR1cm4gYS54KCkgIT0gYi54KCkgfHwgYS55KCkgIT0gYi55KCk7Cit9CisKK30K
KwogLy8gRklYTUU6IFJlbW92ZSB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdlYkNvcmUgbmFt
ZXNwYWNlLgogdXNpbmcgV2ViQ29yZTo6SW50UG9pbnQ7CiAKSW5kZXg6IHBsYXRmb3JtL21hYy9J
bnRSZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9JbnRSZWN0Lm1tCShyZXZpc2lv
biAxMjQyNCkKKysrIHBsYXRmb3JtL21hYy9JbnRSZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAotIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwzNSArMjQsNDAgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogCi0j
aW1wb3J0IDxhbGdvcml0aG0+Ci0KLXVzaW5nIHN0ZDo6bWF4OwotdXNpbmcgc3RkOjptaW47Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUwotSW50UmVjdDo6SW50UmVjdChjb25zdCBOU1JlY3QgJnIpIDogeHAo
KGludClyLm9yaWdpbi54KSwgeXAoKGludClyLm9yaWdpbi55KSwgdygoaW50KXIuc2l6ZS53aWR0
aCksIGgoKGludClyLnNpemUuaGVpZ2h0KQorSW50UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkgY29u
c3QKIHsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZSh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkp
OwogfQotI2VuZGlmCiAKLUludFJlY3Q6OkludFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6IHhwKChp
bnQpci5vcmlnaW4ueCksIHlwKChpbnQpci5vcmlnaW4ueSksIHcoKGludClyLnNpemUud2lkdGgp
LCBoKChpbnQpci5zaXplLmhlaWdodCkKK0ludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBD
R1JlY3QmIHJlY3QpCiB7CisgICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0
Lm9yaWdpbi54KSk7CisgICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9y
aWdpbi55KSk7CisgICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKENHUmVjdEdldE1h
eFgocmVjdCkpKTsKKyAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoQ0dSZWN0R2V0
TWF4WShyZWN0KSkpOworICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9
CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNp
ZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwogSW50UmVjdDo6
b3BlcmF0b3IgTlNSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gTlNNYWtlUmVjdCh4cCwgeXAs
IHcsIGgpOworICAgIHJldHVybiBOU01ha2VSZWN0KHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQo
KSk7CiB9Ci0jZW5kaWYKIAotSW50UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkgY29uc3QKK0ludFJl
Y3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIENH
UmVjdE1ha2UoeHAsIHlwLCB3LCBoKTsKKyAgICBpbnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxv
b3JmKHJlY3Qub3JpZ2luLngpKTsKKyAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3Jm
KHJlY3Qub3JpZ2luLnkpKTsKKyAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoTlNN
YXhYKHJlY3QpKSk7CisgICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKE5TTWF4WShy
ZWN0KSkpOworICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9CiAKKyNl
bmRpZgorCiB9CkluZGV4OiBwbGF0Zm9ybS9tYWMvQWZmaW5lVHJhbnNmb3JtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBwbGF0Zm9ybS9tYWMvQWZmaW5lVHJhbnNmb3JtLmNwcAkocmV2aXNpb24gMCkKKysr
IHBsYXRmb3JtL21hYy9BZmZpbmVUcmFuc2Zvcm0uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisKKyNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0Fw
cGxpY2F0aW9uU2VydmljZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBZmZpbmVUcmFu
c2Zvcm06OkFmZmluZVRyYW5zZm9ybShjb25zdCBDR0FmZmluZVRyYW5zZm9ybSYgdCkKKyAgICA6
IG1fYSh0LmEpLCBtX2IodC5iKSwgbV9jKHQuYyksIG1fZCh0LmQpLCBtX2UodC50eCksIG1fZih0
LnR5KQoreworfQorCitBZmZpbmVUcmFuc2Zvcm06Om9wZXJhdG9yIENHQWZmaW5lVHJhbnNmb3Jt
KCkgY29uc3QKK3sKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0ID0geyBtX2EsIG1fYiwgbV9jLCBt
X2QsIG1fZSwgbV9mIH07CisgICAgcmV0dXJuIHQ7Cit9CisKK30KClByb3BlcnR5IGNoYW5nZXMg
b246IHBsYXRmb3JtL21hYy9BZmZpbmVUcmFuc2Zvcm0uY3BwCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
OmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IHBsYXRmb3JtL21hYy9GbG9hdFBvaW50Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9GbG9hdFBvaW50Lm1tCShyZXZpc2lvbiAxMjQy
NCkKKysrIHBsYXRmb3JtL21hYy9GbG9hdFBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwy
NiArMjksMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWZuZGVmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1GbG9hdFBvaW50OjpGbG9hdFBvaW50KGNv
bnN0IE5TUG9pbnQmIHApIDogeENvb3JkKHAueCksIHlDb29yZChwLnkpCitGbG9hdFBvaW50OjpG
bG9hdFBvaW50KGNvbnN0IENHUG9pbnQmIHApIDogbV94KHAueCksIG1feShwLnkpCiB7CiB9Ci0j
ZW5kaWYKIAotRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25zdCBDR1BvaW50JiBwKSA6IHhDb29y
ZChwLngpLCB5Q29vcmQocC55KQorRmxvYXRQb2ludDo6b3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0
CiB7CisgICAgcmV0dXJuIENHUG9pbnRNYWtlKG1feCwgbV95KTsKIH0KIAotI2lmbmRlZiBOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotRmxvYXRQb2ludDo6b3BlcmF0
b3IgTlNQb2ludCgpIGNvbnN0CisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCisKK0Zsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgTlNQb2ludCYgcCkgOiBt
X3gocC54KSwgbV95KHAueSkKIHsKLSAgICByZXR1cm4gTlNNYWtlUG9pbnQoeENvb3JkLCB5Q29v
cmQpOwogfQotI2VuZGlmCiAKLUZsb2F0UG9pbnQ6Om9wZXJhdG9yIENHUG9pbnQoKSBjb25zdAor
RmxvYXRQb2ludDo6b3BlcmF0b3IgTlNQb2ludCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENHUG9p
bnRNYWtlKHhDb29yZCwgeUNvb3JkKTsKKyAgICByZXR1cm4gTlNNYWtlUG9pbnQobV94LCBtX3kp
OwogfQogCisjZW5kaWYKKwogfQpJbmRleDogcGxhdGZvcm0vbWFjL0Zsb2F0U2l6ZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwbGF0Zm9ybS9tYWMvRmxvYXRTaXplLm1tCShyZXZpc2lvbiAxMjQyNCkKKysr
IHBsYXRmb3JtL21hYy9GbG9hdFNpemUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSwy
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19T
QU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IE5TU2l6
ZSYgcykgOiB3KHMud2lkdGgpLCBoKHMuaGVpZ2h0KQorRmxvYXRTaXplOjpGbG9hdFNpemUoY29u
c3QgQ0dTaXplJiBzKSA6IG1fd2lkdGgocy53aWR0aCksIG1faGVpZ2h0KHMuaGVpZ2h0KQogewog
fQotI2VuZGlmCiAKLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IENHU2l6ZSYgcykgOiB3KHMu
d2lkdGgpLCBoKHMuaGVpZ2h0KQorRmxvYXRTaXplOjpvcGVyYXRvciBDR1NpemUoKSBjb25zdAog
eworICAgIHJldHVybiBDR1NpemVNYWtlKG1fd2lkdGgsIG1faGVpZ2h0KTsKIH0KIAotI2lmbmRl
ZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworI2lmICFOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCitGbG9hdFNpemU6OkZsb2F0U2l6
ZShjb25zdCBOU1NpemUmIHMpIDogbV93aWR0aChzLndpZHRoKSwgbV9oZWlnaHQocy5oZWlnaHQp
Cit7Cit9CisKIEZsb2F0U2l6ZTo6b3BlcmF0b3IgTlNTaXplKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gTlNNYWtlU2l6ZSh3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlU2l6ZShtX3dpZHRoLCBtX2hl
aWdodCk7CiB9CisKICNlbmRpZgogCi1GbG9hdFNpemU6Om9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIENHU2l6ZU1ha2UodywgaCk7CiB9Ci0KLX0KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBwbGF0Zm9ybS9tYWMvRmxvYXRSZWN0Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHBsYXRmb3JtL21hYy9GbG9hdFJlY3QubW0JKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZv
cm0vbWFjL0Zsb2F0UmVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksMjYgKzI5LDI2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUwotRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29uc3QgTlNSZWN0ICZyKSA6
IHhwKHIub3JpZ2luLngpLCB5cChyLm9yaWdpbi55KSwgdyhyLnNpemUud2lkdGgpLCBoKHIuc2l6
ZS5oZWlnaHQpCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBDR1JlY3QmIHIpIDogbV9sb2Nh
dGlvbihyLm9yaWdpbiksIG1fc2l6ZShyLnNpemUpCiB7CiB9Ci0jZW5kaWYKIAotRmxvYXRSZWN0
OjpGbG9hdFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6IHhwKHIub3JpZ2luLngpLCB5cChyLm9yaWdp
bi55KSwgdyhyLnNpemUud2lkdGgpLCBoKHIuc2l6ZS5oZWlnaHQpCitGbG9hdFJlY3Q6Om9wZXJh
dG9yIENHUmVjdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHUmVjdE1ha2UoeCgpLCB5KCksIHdp
ZHRoKCksIGhlaWdodCgpKTsKIH0KIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUwotRmxvYXRSZWN0OjpvcGVyYXRvciBOU1JlY3QoKSBjb25zdAorI2lm
ICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCitGbG9hdFJlY3Q6
OkZsb2F0UmVjdChjb25zdCBOU1JlY3QmIHIpIDogbV9sb2NhdGlvbihyLm9yaWdpbiksIG1fc2l6
ZShyLnNpemUpCiB7Ci0gICAgcmV0dXJuIE5TTWFrZVJlY3QoeHAsIHlwLCB3LCBoKTsKIH0KLSNl
bmRpZgogCi1GbG9hdFJlY3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CitGbG9hdFJlY3Q6Om9w
ZXJhdG9yIE5TUmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENHUmVjdE1ha2UoeHAsIHlwLCB3
LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlUmVjdCh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkp
OwogfQogCisjZW5kaWYKKwogfQpJbmRleDogcGxhdGZvcm0vbWFjL0ludFBvaW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHBsYXRmb3JtL21hYy9JbnRQb2ludC5tbQkocmV2aXNpb24gMTI0MjQpCisrKyBw
bGF0Zm9ybS9tYWMvSW50UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw1IEBACi0g
Ci0gLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMzEgKzI0LDMwIEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2ltcG9ydCAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRQb2ludC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKLUludFBvaW50OjpJbnRQb2ludChjb25zdCBOU1BvaW50ICZwKSA6IHhD
b29yZCgoaW50KXAueCksIHlDb29yZCgoaW50KXAueSkKK0ludFBvaW50OjpJbnRQb2ludChjb25z
dCBDR1BvaW50JiBwKSA6IG1feChzdGF0aWNfY2FzdDxpbnQ+KHAueCkpLCBtX3koc3RhdGljX2Nh
c3Q8aW50PihwLnkpKQogewogfQotI2VuZGlmCiAKLUludFBvaW50OjpJbnRQb2ludChjb25zdCBD
R1BvaW50ICZwKSA6IHhDb29yZCgoaW50KXAueCksIHlDb29yZCgoaW50KXAueSkKK0ludFBvaW50
OjpvcGVyYXRvciBDR1BvaW50KCkgY29uc3QKIHsKKyAgICByZXR1cm4gQ0dQb2ludE1ha2UobV94
LCBtX3kpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZ
X1RZUEVTCi1JbnRQb2ludDo6b3BlcmF0b3IgTlNQb2ludCgpIGNvbnN0CisjaWYgIU5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0ludFBvaW50OjpJbnRQb2ludChj
b25zdCBOU1BvaW50JiBwKSA6IG1feChzdGF0aWNfY2FzdDxpbnQ+KHAueCkpLCBtX3koc3RhdGlj
X2Nhc3Q8aW50PihwLnkpKQogewotICAgIHJldHVybiBOU01ha2VQb2ludCh4Q29vcmQsIHlDb29y
ZCk7CiB9Ci0jZW5kaWYKIAotSW50UG9pbnQ6Om9wZXJhdG9yIENHUG9pbnQoKSBjb25zdAorSW50
UG9pbnQ6Om9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdAogewotICAgIHJldHVybiBDR1BvaW50TWFr
ZSh4Q29vcmQsIHlDb29yZCk7CisgICAgcmV0dXJuIE5TTWFrZVBvaW50KG1feCwgbV95KTsKIH0K
IAorI2VuZGlmCiAKIH0KSW5kZXg6IHBsYXRmb3JtL21hYy9JbnRTaXplLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHBsYXRmb3JtL21hYy9JbnRTaXplLm1tCShyZXZpc2lvbiAxMjQyNCkKKysrIHBsYXRmb3Jt
L21hYy9JbnRTaXplLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCwyNiArMjgsMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWZu
ZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1JbnRTaXplOjpJ
bnRTaXplKGNvbnN0IE5TU2l6ZSAmcykgOiB3KChpbnQpcy53aWR0aCksIGgoKGludClzLmhlaWdo
dCkKK0ludFNpemU6OkludFNpemUoY29uc3QgQ0dTaXplJiBzKSA6IG1fd2lkdGgoc3RhdGljX2Nh
c3Q8aW50PihzLndpZHRoKSksIG1faGVpZ2h0KHN0YXRpY19jYXN0PGludD4ocy5oZWlnaHQpKQog
ewogfQotI2VuZGlmCiAKLUludFNpemU6OkludFNpemUoY29uc3QgQ0dTaXplICZzKSA6IHcoKGlu
dClzLndpZHRoKSwgaCgoaW50KXMuaGVpZ2h0KQorSW50U2l6ZTo6b3BlcmF0b3IgQ0dTaXplKCkg
Y29uc3QKIHsKKyAgICByZXR1cm4gQ0dTaXplTWFrZShtX3dpZHRoLCBtX2hlaWdodCk7CiB9CiAK
LSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiAh
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKworSW50U2l6ZTo6SW50
U2l6ZShjb25zdCBOU1NpemUmIHMpIDogbV93aWR0aChzdGF0aWNfY2FzdDxpbnQ+KHMud2lkdGgp
KSwgbV9oZWlnaHQoc3RhdGljX2Nhc3Q8aW50PihzLmhlaWdodCkpCit7Cit9CisKIEludFNpemU6
Om9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE5TTWFrZVNpemUodywgaCk7
CisgICAgcmV0dXJuIE5TTWFrZVNpemUobV93aWR0aCwgbV9oZWlnaHQpOwogfQorCiAjZW5kaWYK
IAotSW50U2l6ZTo6b3BlcmF0b3IgQ0dTaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ0dTaXpl
TWFrZSh3LCBoKTsKIH0KLQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IHBs
YXRmb3JtL0Zsb2F0UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9GbG9hdFBvaW50LmgJ
KHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZvcm0vRmxvYXRQb2ludC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxNyArMjgsMjAgQEAKICNkZWZpbmUgRkxPQVRQT0lOVF9IXwogCiAjaWYgX19BUFBM
RV9fCisKK3R5cGVkZWYgc3RydWN0IENHUG9pbnQgQ0dQb2ludDsKKwogLy8gd29ya2Fyb3VuZCBm
b3IgPHJkYXI6Ly9wcm9ibGVtLzQyOTQ2MjU+Ci0jaWYgISBfX0xQNjRfXyAmJiAhIE5TX0JVSUxE
XzMyX0xJS0VfNjQKKyNpZiAhX19MUDY0X18gJiYgIU5TX0JVSUxEXzMyX0xJS0VfNjQKICN1bmRl
ZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogI2VuZGlmCiAKLSNp
ZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworI2lmIE5TR0VP
TUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1Bv
aW50IE5TUG9pbnQ7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX05TUG9pbnQgTlNQb2ludDsKICNl
bmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBDR1BvaW50OworCiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNDcsNDQgKzUwLDY4IEBACiAKIGNsYXNzIEZsb2F0UG9pbnQgewog
cHVibGljOgotICAgIEZsb2F0UG9pbnQoKTsKLSAgICBGbG9hdFBvaW50KGZsb2F0LCBmbG9hdCk7
CisgICAgRmxvYXRQb2ludCgpIDogbV94KDApLCBtX3koMCkgeyB9CisgICAgRmxvYXRQb2ludChm
bG9hdCB4LCBmbG9hdCB5KSA6IG1feCh4KSwgbV95KHkpIHsgfQogICAgIEZsb2F0UG9pbnQoY29u
c3QgSW50UG9pbnQmKTsKLSAgICAKLSNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBGbG9hdFBvaW50KGNv
bnN0IE5TUG9pbnQmKTsKLSNlbmRpZgotICAgIGV4cGxpY2l0IEZsb2F0UG9pbnQoY29uc3QgQ0dQ
b2ludCYpOwotI2VuZGlmCiAKLSAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4geENvb3JkOyB9
Ci0gICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHlDb29yZDsgfQorICAgIGZsb2F0IHgoKSBj
b25zdCB7IHJldHVybiBtX3g7IH0KKyAgICBmbG9hdCB5KCkgY29uc3QgeyByZXR1cm4gbV95OyB9
CiAKLSAgICB2b2lkIHNldFgoaW50IHgpIHsgeENvb3JkID0geDsgfQotICAgIHZvaWQgc2V0WShp
bnQgeSkgeyB5Q29vcmQgPSB5OyB9CisgICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgbV94ID0geDsg
fQorICAgIHZvaWQgc2V0WShmbG9hdCB5KSB7IG1feSA9IHk7IH0KIAotICAgIGJvb2wgaXNOdWxs
KCkgY29uc3QgeyByZXR1cm4geENvb3JkID09IDAuMGYgJiYgeUNvb3JkID09IDAuMGY7IH0KKyNp
ZiBfX0FQUExFX18KIAotICAgIEZsb2F0UG9pbnQmIG9wZXJhdG9yIC09KGNvbnN0IEZsb2F0UG9p
bnQmIHR3bykgeyB4Q29vcmQgLT0gdHdvLnhDb29yZDsgeUNvb3JkIC09IHR3by55Q29vcmQ7IHJl
dHVybiAqdGhpczsgfQotICAgIGZyaWVuZCBjb25zdCBGbG9hdFBvaW50IG9wZXJhdG9yKihjb25z
dCBGbG9hdFBvaW50JiBwLCBkb3VibGUgcyk7Ci0gICAgZnJpZW5kIEZsb2F0UG9pbnQgb3BlcmF0
b3IrKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7Ci0gICAgZnJpZW5kIEZs
b2F0UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7
CisgICAgRmxvYXRQb2ludChjb25zdCBDR1BvaW50Jik7CisgICAgb3BlcmF0b3IgQ0dQb2ludCgp
IGNvbnN0OwogCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCisgICAgRmxvYXRQb2ludChjb25zdCBOU1BvaW50Jik7CiAgICAgb3BlcmF0b3Ig
TlNQb2ludCgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0Owor
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBmbG9hdCB4Q29vcmQ7Ci0gICAgZmxvYXQgeUNvb3Jk
OworICAgIGZsb2F0IG1feCwgbV95OwogfTsKIAoraW5saW5lIEZsb2F0UG9pbnQmIG9wZXJhdG9y
Kz0oRmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYikKK3sKKyAgICBhLnNldFgoYS54
KCkgKyBiLngoKSk7CisgICAgYS5zZXRZKGEueSgpICsgYi55KCkpOworICAgIHJldHVybiBhOwog
fQogCitpbmxpbmUgRmxvYXRQb2ludCYgb3BlcmF0b3ItPShGbG9hdFBvaW50JiBhLCBjb25zdCBG
bG9hdFBvaW50JiBiKQoreworICAgIGEuc2V0WChhLngoKSAtIGIueCgpKTsKKyAgICBhLnNldFko
YS55KCkgLSBiLnkoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBGbG9hdFBvaW50IG9w
ZXJhdG9yKyhjb25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAg
IHJldHVybiBGbG9hdFBvaW50KGEueCgpICsgYi54KCksIGEueSgpICsgYi55KCkpOworfQorCitp
bmxpbmUgRmxvYXRQb2ludCBvcGVyYXRvci0oY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3QgRmxv
YXRQb2ludCYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRQb2ludChhLngoKSAtIGIueCgpLCBhLnko
KSAtIGIueSgpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGbG9hdFBvaW50
JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJldHVybiBhLngoKSA9PSBiLngoKSAm
JiBhLnkoKSA9PSBiLnkoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGbG9h
dFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJldHVybiBhLngoKSAhPSBi
LngoKSB8fCBhLnkoKSAhPSBiLnkoKTsKK30KKworfQorCiAvLyBGSVhNRTogUmVtb3ZlIHdoZW4g
ZXZlcnl0aGluZyBpcyBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiB1c2luZyBXZWJDb3JlOjpG
bG9hdFBvaW50OwogCkluZGV4OiBwbGF0Zm9ybS9JbnRTaXplLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
bGF0Zm9ybS9JbnRTaXplLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBwbGF0Zm9ybS9JbnRTaXpl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDAzLTYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotSW50U2l6ZTo6SW50U2l6ZSgpIDogdygtMSksIGgoLTEpCi17Ci19Ci0K
LUludFNpemU6OkludFNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA6IHcod2lkdGgpLCBoKGhl
aWdodCkKLXsKLX0KLQotYm9vbCBJbnRTaXplOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdyA+PSAwICYmIGggPj0gMDsKLX0KLQotSW50U2l6ZSBJbnRTaXplOjpleHBhbmRlZFRvKGNv
bnN0IEludFNpemUgJm8pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFNpemUodyA+IG8udyA/IHcg
OiBvLncsIGggPiBvLmggPyBoIDogby5oKTsKLX0KLQotSW50U2l6ZSBvcGVyYXRvcisoY29uc3Qg
SW50U2l6ZSAmYSwgY29uc3QgSW50U2l6ZSAmYikKLXsKLSAgICByZXR1cm4gSW50U2l6ZShhLncg
KyBiLncsIGEuaCArIGIuaCk7Ci19Ci0KLWJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRTaXplICZh
LCBjb25zdCBJbnRTaXplICZiKQotewotICAgIHJldHVybiBhLncgPT0gYi53ICYmIGEuaCA9PSBi
Lmg7Ci19Ci0KLWJvb2wgb3BlcmF0b3IhPShjb25zdCBJbnRTaXplICZhLCBjb25zdCBJbnRTaXpl
ICZiKQotewotICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBiLmg7Ci19Ci0KLX0KSW5k
ZXg6IHBsYXRmb3JtL0Zsb2F0UmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0Zsb2F0UmVj
dC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIHBsYXRmb3JtL0Zsb2F0UmVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywxOCArMjcsMTkgQEAKICNpZm5kZWYgRkxPQVRSRUNURl9IXwogI2RlZmluZSBG
TE9BVFJFQ1RGX0hfCiAKLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSAiRmxvYXRTaXplLmgi
CiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKIAogI2lmIF9f
QVBQTEVfXwotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVT
CisKK3R5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CisKKyNpZiBOU0dFT01FVFJZX1RZUEVT
X1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IE5TUmVjdDsK
ICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKICNlbmRpZgotdHlwZWRlZiBz
dHJ1Y3QgQ0dSZWN0IENHUmVjdDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ3LDkwICs0OCw5MSBAQAogCiBjbGFzcyBGbG9hdFJlY3QgewogcHVibGljOgotICAgIEZsb2F0
UmVjdCgpOwotICAgIEZsb2F0UmVjdChGbG9hdFBvaW50IHAsIEZsb2F0U2l6ZSBzKTsKLSAgICBG
bG9hdFJlY3QoZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwotICAgIEZsb2F0UmVjdChjb25z
dCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpOworICAgIEZsb2F0UmVjdCgpIHsgfQor
ICAgIEZsb2F0UmVjdChjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgY29uc3QgRmxvYXRTaXpl
JiBzaXplKQorICAgICAgICA6IG1fbG9jYXRpb24obG9jYXRpb24pLCBtX3NpemUoc2l6ZSkgeyB9
CisgICAgRmxvYXRSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln
aHQpCisgICAgICAgIDogbV9sb2NhdGlvbihGbG9hdFBvaW50KHgsIHkpKSwgbV9zaXplKEZsb2F0
U2l6ZSh3aWR0aCwgaGVpZ2h0KSkgeyB9CiAgICAgRmxvYXRSZWN0KGNvbnN0IEludFJlY3QmKTsK
LSAgICAKLSNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBGbG9hdFJlY3QoY29uc3QgTlNSZWN0Jik7Ci0j
ZW5kaWYKLSAgICBleHBsaWNpdCBGbG9hdFJlY3QoY29uc3QgQ0dSZWN0Jik7Ci0jZW5kaWYKIAot
ICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Ci0gICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBsb2NhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fbG9jYXRpb247IH0KKyAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2l6ZTsgfQogCi0gICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJuIHhwOyB9Ci0gICAgZmxv
YXQgeSgpIGNvbnN0IHsgcmV0dXJuIHlwOyB9Ci0gICAgZmxvYXQgbGVmdCgpIGNvbnN0IHsgcmV0
dXJuIHhwOyB9Ci0gICAgZmxvYXQgdG9wKCkgY29uc3QgeyByZXR1cm4geXA7IH0KLSAgICBmbG9h
dCByaWdodCgpIGNvbnN0OwotICAgIGZsb2F0IGJvdHRvbSgpIGNvbnN0OwotICAgIGZsb2F0IHdp
ZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGZsb2F0IGhlaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGg7IH0KKyAgICB2b2lkIHNldExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9u
KSB7IG1fbG9jYXRpb24gPSBsb2NhdGlvbjsgfQorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBGbG9h
dFNpemUmIHNpemUpIHsgbV9zaXplID0gc2l6ZTsgfQogCi0gICAgRmxvYXRQb2ludCB0b3BMZWZ0
KCkgY29uc3Q7Ci0gICAgRmxvYXRQb2ludCB0b3BSaWdodCgpIGNvbnN0OwotICAgIEZsb2F0UG9p
bnQgYm90dG9tUmlnaHQoKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGJvdHRvbUxlZnQoKSBjb25z
dDsKKyAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi54KCk7IH0KKyAgICBm
bG9hdCB5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi55KCk7IH0KKyAgICBmbG9hdCB3aWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS53aWR0aCgpOyB9CisgICAgZmxvYXQgaGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9zaXplLmhlaWdodCgpOyB9CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgp
IGNvbnN0OwotICAgIHZvaWQgc2V0WChmbG9hdCB4KSB7IHhwID0geDsgfQotICAgIHZvaWQgc2V0
WShmbG9hdCB5KSB7IHlwID0geTsgfQotICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lkdGgpIHsg
dyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IGggPSBoZWln
aHQ7IH0KLSAgICB2b2lkIHNldFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZs
b2F0IGhlaWdodCkgeyB4cCA9IHg7IHlwID0geTsgdyA9IHdpZHRoOyBoID0gaGVpZ2h0OyB9Ci0g
ICAgRmxvYXRSZWN0IGludGVyc2VjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICB2b2lk
IHNldFgoZmxvYXQgeCkgeyBtX2xvY2F0aW9uLnNldFgoeCk7IH0KKyAgICB2b2lkIHNldFkoZmxv
YXQgeSkgeyBtX2xvY2F0aW9uLnNldFkoeSk7IH0KKyAgICB2b2lkIHNldFdpZHRoKGZsb2F0IHdp
ZHRoKSB7IG1fc2l6ZS5zZXRXaWR0aCh3aWR0aCk7IH0KKyAgICB2b2lkIHNldEhlaWdodChmbG9h
dCBoZWlnaHQpIHsgbV9zaXplLnNldEhlaWdodChoZWlnaHQpOyB9CisKKyAgICBib29sIGlzRW1w
dHkoKSBjb25zdCB7IHJldHVybiBtX3NpemUuaXNFbXB0eSgpOyB9CisKKyAgICBmbG9hdCByaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIHgoKSArIHdpZHRoKCk7IH0KKyAgICBmbG9hdCBib3R0b20oKSBj
b25zdCB7IHJldHVybiB5KCkgKyBoZWlnaHQoKTsgfQorCisgICAgdm9pZCBtb3ZlKGNvbnN0IEZs
b2F0UG9pbnQmIHApIHsgbV9sb2NhdGlvbiArPSBwOyB9IAorICAgIHZvaWQgbW92ZShmbG9hdCBk
eCwgZmxvYXQgZHkpIHsgbV9sb2NhdGlvbiArPSBGbG9hdFBvaW50KGR4LCBkeSk7IH0gCisKICAg
ICBib29sIGludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgRmxvYXRSZWN0
IHVuaXRlKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgIEZsb2F0UmVjdCBub3JtYWxpemUo
KSBjb25zdDsKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCi0g
ICAgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QgeyByZXR1cm4g
Y29udGFpbnMocG9pbnQueCgpLCBwb2ludC55KCkpOyB9CisgICAgdm9pZCBpbnRlcnNlY3QoY29u
c3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCB1bml0ZShjb25zdCBGbG9hdFJlY3QmKTsKIAotICAg
IGJvb2wgY29udGFpbnMoZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBwcm9wZXIgPSBmYWxzZSkgY29u
c3QKLSAgICB7Ci0gICAgICAgIGlmIChwcm9wZXIpCi0gICAgICAgICAgICByZXR1cm4geCA+IHhw
ICYmICh4IDwgKHhwICsgdyAtIDEpKSAmJiB5ID4geXAgJiYgeSA8ICh5cCArIGggLSAxKTsKLSAg
ICAgICAgcmV0dXJuIHggPj0geHAgJiYgeCA8ICh4cCArIHcpICYmIHkgPj0geXAgJiYgeSA8ICh5
cCArIGgpOworICAgIHZvaWQgaW5mbGF0ZVgoZmxvYXQgZHgpIHsKKyAgICAgICAgbV9sb2NhdGlv
bi5zZXRYKG1fbG9jYXRpb24ueCgpIC0gZHgpOworICAgICAgICBtX3NpemUuc2V0V2lkdGgobV9z
aXplLndpZHRoKCkgKyBkeCArIGR4KTsKICAgICB9CisgICAgdm9pZCBpbmZsYXRlWShmbG9hdCBk
eSkgeworICAgICAgICBtX2xvY2F0aW9uLnNldFkobV9sb2NhdGlvbi55KCkgLSBkeSk7CisgICAg
ICAgIG1fc2l6ZS5zZXRIZWlnaHQobV9zaXplLmhlaWdodCgpICsgZHkgKyBkeSk7CisgICAgfQor
ICAgIHZvaWQgaW5mbGF0ZShmbG9hdCBkKSB7IGluZmxhdGVYKGQpOyBpbmZsYXRlWShkKTsgfQog
Ci0gICAgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0dXJu
IGludGVyc2VjdChyZWN0KSA9PSByZWN0OyB9CisjaWYgX19BUFBMRV9fCiAKLSAgICB2b2lkIGlu
ZmxhdGUoZmxvYXQgcyk7CisgICAgRmxvYXRSZWN0KGNvbnN0IENHUmVjdCYpOworICAgIG9wZXJh
dG9yIENHUmVjdCgpIGNvbnN0OwogCi0gICAgaW5saW5lIEZsb2F0UmVjdCBvcGVyYXRvciYoY29u
c3QgRmxvYXRSZWN0JiByKSBjb25zdCB7IHJldHVybiBpbnRlcnNlY3Qocik7IH0KLQotI2lmIF9f
QVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UworI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworICAgIEZs
b2F0UmVjdChjb25zdCBOU1JlY3QmKTsKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNl
bmRpZgotICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OworCiAjZW5kaWYKIAotICAgIG9wZXJh
dG9yIEludFJlY3QoKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgZmxvYXQgeHA7Ci0gICAgZmxvYXQg
eXA7Ci0gICAgZmxvYXQgdzsKLSAgICBmbG9hdCBoOwotCi0gICAgZnJpZW5kIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBmcmllbmQgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYpOworICAgIEZs
b2F0UG9pbnQgbV9sb2NhdGlvbjsKKyAgICBGbG9hdFNpemUgbV9zaXplOwogfTsKIAotaW5saW5l
IEludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBGbG9hdFJlY3QmIGZyKQoraW5saW5lIEZs
b2F0UmVjdCBpbnRlcnNlY3Rpb24oY29uc3QgRmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJlY3Qm
IGIpCiB7Ci0gICAgaW50IHggPSBpbnQoZmxvb3IoZnIueCgpKSk7Ci0gICAgaW50IHkgPSBpbnQo
Zmxvb3IoZnIueSgpKSk7Ci0gICAgcmV0dXJuIEludFJlY3QoeCwgeSwgaW50KGNlaWwoZnIueCgp
ICsgZnIud2lkdGgoKSkpIC0geCwgaW50KGNlaWwoZnIueSgpICsgZnIuaGVpZ2h0KCkpKSAtIHkp
OworICAgIEZsb2F0UmVjdCBjID0gYTsKKyAgICBjLmludGVyc2VjdChiKTsKKyAgICByZXR1cm4g
YzsKIH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGbG9hdFJlY3QmIGEsIGNvbnN0
IEZsb2F0UmVjdCYgYikKK3sKKyAgICByZXR1cm4gYS5sb2NhdGlvbigpID09IGIubG9jYXRpb24o
KSAmJiBhLnNpemUoKSA9PSBiLnNpemUoKTsKIH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBGbG9hdFJlY3QmIGEsIGNvbnN0IEZsb2F0UmVjdCYgYikKK3sKKyAgICByZXR1cm4gYS5s
b2NhdGlvbigpICE9IGIubG9jYXRpb24oKSB8fCBhLnNpemUoKSAhPSBiLnNpemUoKTsKK30KKwor
SW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworCit9CisKIC8vIEZJ
WE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4K
IHVzaW5nIFdlYkNvcmU6OkZsb2F0UmVjdDsKIApJbmRleDogcGxhdGZvcm0vQWZmaW5lVHJhbnNm
b3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmgJKHJldmlzaW9u
IDApCisrKyBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgTUFUUklYX0hfCisj
ZGVmaW5lIE1BVFJJWF9IXworCisjaWYgX19BUFBMRV9fCit0eXBlZGVmIHN0cnVjdCBDR0FmZmlu
ZVRyYW5zZm9ybSBDR0FmZmluZVRyYW5zZm9ybTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBGbG9hdFNp
emU7CisKK2NsYXNzIEFmZmluZVRyYW5zZm9ybSB7CitwdWJsaWM6CisgICAgQWZmaW5lVHJhbnNm
b3JtKCkKKyAgICAgICAgOiBtX2EoMSksIG1fYigwKSwgbV9jKDApLCBtX2QoMSksIG1fZSgwKSwg
bV9mKDApIHsgfQorICAgIEFmZmluZVRyYW5zZm9ybShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBj
LCBmbG9hdCBkLCBmbG9hdCBlLCBmbG9hdCBmKQorICAgICAgICA6IG1fYShhKSwgbV9iKGIpLCBt
X2MoYyksIG1fZChkKSwgbV9lKGUpLCBtX2YoZikgeyB9CisKKyAgICBmbG9hdCBhKCkgY29uc3Qg
eyByZXR1cm4gbV9hOyB9CisgICAgZmxvYXQgYigpIGNvbnN0IHsgcmV0dXJuIG1fYjsgfQorICAg
IGZsb2F0IGMoKSBjb25zdCB7IHJldHVybiBtX2M7IH0KKyAgICBmbG9hdCBkKCkgY29uc3QgeyBy
ZXR1cm4gbV9kOyB9CisgICAgZmxvYXQgZSgpIGNvbnN0IHsgcmV0dXJuIG1fZTsgfQorICAgIGZs
b2F0IGYoKSBjb25zdCB7IHJldHVybiBtX2Y7IH0KKworICAgIHZvaWQgcmVzZXQoKQorICAgICAg
ICB7IG1fYSA9IDE7IG1fYiA9IDA7IG1fYyA9IDA7IG1fZCA9IDE7IG1fZSA9IDA7IG1fZiA9IDA7
IH0KKyAgICB2b2lkIHNldChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjLCBmbG9hdCBkLCBmbG9h
dCBlLCBmbG9hdCBmKQorICAgICAgICB7IG1fYSA9IGE7IG1fYiA9IGI7IG1fYyA9IGM7IG1fZCA9
IGQ7IG1fZSA9IGU7IG1fZiA9IGY7IH0KKworICAgIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0Cisg
ICAgICAgIHsgcmV0dXJuIG1fYSA9PSAxICYmIG1fYiA9PSAwICYmIG1fYyA9PSAwICYmIG1fZCA9
PSAxICYmIG1fZSA9PSAwICYmIG1fZiA9PSAwOyB9CisKKyAgICBib29sIGlzSW52ZXJ0aWJsZSgp
IGNvbnN0IHsgcmV0dXJuIGRldGVybWluYW50KCkgIT0gMDsgfQorICAgIGZsb2F0IGRldGVybWlu
YW50KCkgY29uc3Q7CisgICAgCisgICAgRmxvYXRQb2ludCBtYXAoY29uc3QgRmxvYXRQb2ludCYp
IGNvbnN0OworICAgIEZsb2F0U2l6ZSBtYXAoY29uc3QgRmxvYXRTaXplJikgY29uc3Q7CisgICAg
RmxvYXRSZWN0IG1hcChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICAKKyAgICBBZmZpbmVU
cmFuc2Zvcm0mIG9wZXJhdG9yKj0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisgICAgCisgICAg
dm9pZCBpbnZlcnQoKTsKKworICAgIHZvaWQgdHJhbnNsYXRlKGZsb2F0IHR4LCBmbG9hdCB0eSk7
CisgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpOworICAgIHZvaWQgc2NhbGUo
ZmxvYXQgcyk7CisgICAgdm9pZCBzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpOworICAgIHZvaWQg
c2hlYXIoZmxvYXQgc3gsIGZsb2F0IHN5KTsKKyAgICB2b2lkIHNrZXdYKGZsb2F0IGFuZ2xlSW5S
YWRpYW5zKTsKKyAgICB2b2lkIHNrZXdZKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKTsKKyAgICAKKyNp
ZiBfX0FQUExFX18KKyAgICBBZmZpbmVUcmFuc2Zvcm0oY29uc3QgQ0dBZmZpbmVUcmFuc2Zvcm0m
KTsKKyAgICBvcGVyYXRvciBDR0FmZmluZVRyYW5zZm9ybSgpIGNvbnN0OworI2VuZGlmCisKK3By
aXZhdGU6CisgICAgZmxvYXQgbV9hLCBtX2IsIG1fYywgbV9kLCBtX2UsIG1fZjsKK307CisKK2lu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MSwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0MikKK3sKKyAgICByZXR1cm4gdDEuYSgpID09IHQyLmEoKQorICAgICAg
ICAmJiB0MS5iKCkgPT0gdDIuYigpCisgICAgICAgICYmIHQxLmMoKSA9PSB0Mi5jKCkKKyAgICAg
ICAgJiYgdDEuZCgpID09IHQyLmQoKQorICAgICAgICAmJiB0MS5lKCkgPT0gdDIuZSgpCisgICAg
ICAgICYmIHQxLmYoKSA9PSB0Mi5mKCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiB0MSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MikKK3sKKyAg
ICByZXR1cm4gISh0MSA9PSB0Mik7Cit9CisKK0FmZmluZVRyYW5zZm9ybSBvcGVyYXRvciooY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisKK2lubGluZSBB
ZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25NYXRyaXgoZmxvYXQgdHgsIGZsb2F0IHR5KSB7IHJl
dHVybiBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgdHgsIHR5KTsgfQorQWZmaW5lVHJhbnNm
b3JtIHJvdGF0aW9uTWF0cml4KGZsb2F0IGFuZ2xlSW5SYWRpYW5zKTsKK2lubGluZSBBZmZpbmVU
cmFuc2Zvcm0gc2NhbGVNYXRyaXgoZmxvYXQgcykgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKHMs
IDAsIDAsIHMsIDAsIDApOyB9CitpbmxpbmUgQWZmaW5lVHJhbnNmb3JtIHNjYWxlTWF0cml4KGZs
b2F0IHN4LCBmbG9hdCBzeSkgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKHN4LCAwLCAwLCBzeSwg
MCwgMCk7IH0KK2lubGluZSBBZmZpbmVUcmFuc2Zvcm0gc2hlYXJNYXRyaXgoZmxvYXQgc3gsIGZs
b2F0IHN5KSB7IHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oMSwgc3ksIHN4LCAxLCAwLCAwKTsgfQor
QWZmaW5lVHJhbnNmb3JtIHNrZXdYTWF0cml4KGZsb2F0IGFuZ2xlSW5SYWRpYW5zKTsKK0FmZmlu
ZVRyYW5zZm9ybSBza2V3WU1hdHJpeChmbG9hdCBhbmdsZUluUmFkaWFucyk7CisKK2Zsb2F0IHJh
ZGlhbnMoZmxvYXQgYW5nbGVJbkRlZ3JlZXMpOworCit9CisKKyNlbmRpZgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmgKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHJldmlzaW9uIDEyNDI0
KQorKysgcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0
ICszMiw2IEBACiAgICAgc2V0UG9pbnRzKG5Qb2ludHMsIHBvaW50cyk7CiB9CiAKLUludFBvaW50
QXJyYXk6OkludFBvaW50QXJyYXkoY29uc3QgSW50UmVjdCAmcmVjdCkKLXsKLSAgICBzZXRQb2lu
dHMoNCwgcmVjdC50b3BMZWZ0KCkueCgpLCByZWN0LnRvcExlZnQoKS55KCksCi0gICAgICAgICAg
ICAgIHJlY3QudG9wUmlnaHQoKS54KCksIHJlY3QudG9wUmlnaHQoKS55KCksCi0gICAgICAgICAg
ICAgIHJlY3QuYm90dG9tUmlnaHQoKS54KCksIHJlY3QuYm90dG9tUmlnaHQoKS55KCksCi0gICAg
ICAgICAgICAgIHJlY3QuYm90dG9tTGVmdCgpLngoKSwgcmVjdC5ib3R0b21MZWZ0KCkueSgpKTsK
LX0KLQogSW50UG9pbnRBcnJheSBJbnRQb2ludEFycmF5Ojpjb3B5KCkgY29uc3QKIHsKICAgICBJ
bnRQb2ludEFycmF5IGNvcHk7CkBAIC01MSw3ICs0Myw3IEBACiB7CiAgICAgaW50IG5Qb2ludHMg
PSBjb3VudCgpOwogICAgIAotICAgIGlmIChuUG9pbnRzIDwgMSkgcmV0dXJuIEludFJlY3QoMCww
LDAsMCk7CisgICAgaWYgKG5Qb2ludHMgPCAxKSByZXR1cm4gSW50UmVjdCgpOwogICAgIAogICAg
IGludCBtaW5YID0gSU5UX01BWCwgbWF4WCA9IDA7CiAgICAgaW50IG1pblkgPSBJTlRfTUFYLCBt
YXhZID0gMDsKSW5kZXg6IHBsYXRmb3JtL0ludFBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0
Zm9ybS9JbnRQb2ludC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZvcm0vSW50UG9pbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotSW50UG9pbnQ6OkludFBvaW50KCkgOiB4Q29vcmQoMCksIHlDb29yZCgw
KQotewotfQotCi1JbnRQb2ludDo6SW50UG9pbnQoaW50IHhJbiwgaW50IHlJbikgOiB4Q29vcmQo
eEluKSwgeUNvb3JkKHlJbikKLXsKLX0KLQotSW50UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEludFBv
aW50ICZhLCBjb25zdCBJbnRQb2ludCAmYikKLXsKLSAgICByZXR1cm4gSW50UG9pbnQoYS54Q29v
cmQgKyBiLnhDb29yZCwgYS55Q29vcmQgKyBiLnlDb29yZCk7Ci19Ci0KLUludFBvaW50IG9wZXJh
dG9yLShjb25zdCBJbnRQb2ludCAmYSwgY29uc3QgSW50UG9pbnQgJmIpCi17Ci0gICAgcmV0dXJu
IEludFBvaW50KGEueENvb3JkIC0gYi54Q29vcmQsIGEueUNvb3JkIC0gYi55Q29vcmQpOwotfQot
Ci1jb25zdCBJbnRQb2ludCBvcGVyYXRvciooY29uc3QgSW50UG9pbnQgJnAsIGRvdWJsZSBzKQot
ewotICAgIHJldHVybiBJbnRQb2ludCgoaW50KShwLnhDb29yZCAqIHMpLCAoaW50KShwLnlDb29y
ZCAqIHMpKTsKLX0KLQotfQpJbmRleDogcGxhdGZvcm0vRmxvYXRTaXplLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGxhdGZvcm0vRmxvYXRTaXplLmgJKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZvcm0vRmxv
YXRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYwICszMCw5OCBAQAogI2luY2x1ZGUgIktX
UURlZi5oIgogCiAjaWYgX19BUFBMRV9fCisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7
CisKIC8vIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgotI2lmICEgX19M
UDY0X18gJiYgISBOU19CVUlMRF8zMl9MSUtFXzY0CisjaWYgIV9fTFA2NF9fICYmICFOU19CVUlM
RF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllf
VFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwog
dHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNT
aXplIE5TU2l6ZTsKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKKwogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKwogY2xhc3MgSW50U2l6ZTsKLSAgICAK
KwogY2xhc3MgRmxvYXRTaXplIHsKIHB1YmxpYzoKLSAgICBGbG9hdFNpemUoKTsKLSAgICBGbG9h
dFNpemUoZmxvYXQsIGZsb2F0KTsKLSAgICBGbG9hdFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOworICAgIEZsb2F0U2l6ZSgpIDogbV93aWR0aCgwKSwgbV9oZWlnaHQoMCkgeyB9CisgICAg
RmxvYXRTaXplKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIDogbV93aWR0aCh3aWR0aCksIG1f
aGVpZ2h0KGhlaWdodCkgeyB9CisgICAgRmxvYXRTaXplKGNvbnN0IEludFNpemUmKTsKKyAgICAK
KyAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KKyAgICBmbG9hdCBo
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQorCisgICAgdm9pZCBzZXRXaWR0aChm
bG9hdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldEhlaWdodChmbG9h
dCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KKworICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fd2lkdGggPD0gMCB8fCBtX2hlaWdodCA8PSAwOyB9CisKKyAgICBGbG9h
dFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmIG90aGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0U2l6ZShtX3dpZHRoID4gb3RoZXIubV93aWR0aCA/IG1fd2lkdGgg
OiBvdGhlci5tX3dpZHRoLAorICAgICAgICAgICAgbV9oZWlnaHQgPiBvdGhlci5tX2hlaWdodCA/
IG1faGVpZ2h0IDogb3RoZXIubV9oZWlnaHQpOworICAgIH0KKwogI2lmIF9fQVBQTEVfXwotI2lm
bmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotICAgIGV4cGxp
Y2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUmKTsKLSNlbmRpZgotICAgIGV4cGxpY2l0IEZsb2F0
U2l6ZShjb25zdCBDR1NpemUmKTsKLSNlbmRpZgogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7
Ci0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiB3OyB9Ci0gICAgZmxvYXQgaGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gaDsgfQotICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lkdGgpIHsg
dyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IGggPSBoZWln
aHQ7IH0KLSAgICBGbG9hdFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmKSBjb25zdDsK
KyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgQ0dTaXplJik7IC8vIGRvbid0IGRvIHRoaXMg
aW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CisgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7
CiAKLSNpZiBfX0FQUExFX18KICNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VP
TUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgTlNTaXplICYpOyAvLyBk
b24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJhdG9yIE5T
U2l6ZSgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CisKICNl
bmRpZgogCi0gICAgZnJpZW5kIEZsb2F0U2l6ZSBvcGVyYXRvcisoY29uc3QgRmxvYXRTaXplJiwg
Y29uc3QgRmxvYXRTaXplJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBGbG9hdFNpemUmKTsKLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYpOwotCiBwcml2YXRlOgotICAgIGZsb2F0
IHc7Ci0gICAgZmxvYXQgaDsKKyAgICBmbG9hdCBtX3dpZHRoLCBtX2hlaWdodDsKIH07CiAKK2lu
bGluZSBGbG9hdFNpemUmIG9wZXJhdG9yKz0oRmxvYXRTaXplJiBhLCBjb25zdCBGbG9hdFNpemUm
IGIpCit7CisgICAgYS5zZXRXaWR0aChhLndpZHRoKCkgKyBiLndpZHRoKCkpOworICAgIGEuc2V0
SGVpZ2h0KGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsKIH0KIAoraW5s
aW5lIEZsb2F0U2l6ZSYgb3BlcmF0b3ItPShGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYg
YikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSAtIGIud2lkdGgoKSk7CisgICAgYS5zZXRI
ZWlnaHQoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxp
bmUgRmxvYXRTaXplIG9wZXJhdG9yKyhjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6
ZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRTaXplKGEud2lkdGgoKSArIGIud2lkdGgoKSwgYS5o
ZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworfQorCitpbmxpbmUgRmxvYXRTaXplIG9wZXJhdG9yLShj
b25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gRmxv
YXRTaXplKGEud2lkdGgoKSAtIGIud2lkdGgoKSwgYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpOwor
fQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxv
YXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0aCgpICYmIGEuaGVp
Z2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBG
bG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gYS53aWR0aCgp
ICE9IGIud2lkdGgoKSB8fCBhLmhlaWdodCgpICE9IGIuaGVpZ2h0KCk7Cit9CisKK30KKwogLy8g
RklYTUU6IFJlbW92ZSB3aGVuIHRoZSBlbmdpbmUgZmlsZXMgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0
byBiZSBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiB1c2luZyBXZWJDb3JlOjpGbG9hdFNpemU7
CiAKSW5kZXg6IHBsYXRmb3JtL0ludFJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRS
ZWN0LmgJKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZvcm0vSW50UmVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOTkgKzI2LDEyNCBAQAogI2lmbmRlZiBJTlRS
RUNUX0hfCiAjZGVmaW5lIElOVFJFQ1RfSF8KIAorI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkludFBvaW50QXJyYXkuaCIKIAogI2lmIF9fQVBQ
TEVfXwotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisK
K3R5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CisKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IE5TUmVjdDsKICNl
bHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKICNlbmRpZgotdHlwZWRlZiBzdHJ1
Y3QgQ0dSZWN0IENHUmVjdDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW50UmVjdCB7CiBwdWJsaWM6Ci0gICAgSW50UmVjdCgpOwotICAgIEludFJlY3QoSW50UG9p
bnQgcCwgSW50U2l6ZSBzKTsKLSAgICBJbnRSZWN0KGludCwgaW50LCBpbnQsIGludCk7Ci0gICAg
SW50UmVjdChjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJbnRQb2ludCAmKTsKLSAgICAKLSNpZiBf
X0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKLSAgICBleHBsaWNpdCBJbnRSZWN0KGNvbnN0IE5TUmVjdCAmKTsgLy8gZG9uJ3QgZG8gdGhp
cyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNlbmRpZgotICAgIGV4cGxpY2l0IEludFJl
Y3QoY29uc3QgQ0dSZWN0ICYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQn
cyBsb3NzeQotI2VuZGlmCisgICAgSW50UmVjdCgpIHsgfQorICAgIEludFJlY3QoY29uc3QgSW50
UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgICAgICA6IG1fbG9jYXRp
b24obG9jYXRpb24pLCBtX3NpemUoc2l6ZSkgeyB9CisgICAgSW50UmVjdChpbnQgeCwgaW50IHks
IGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICAgICAgOiBtX2xvY2F0aW9uKEludFBvaW50KHgs
IHkpKSwgbV9zaXplKEludFNpemUod2lkdGgsIGhlaWdodCkpIHsgfQogCi0gICAgYm9vbCBpc051
bGwoKSBjb25zdDsKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBib29sIGlzRW1wdHko
KSBjb25zdDsKKyAgICBJbnRQb2ludCBsb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYXRp
b247IH0KKyAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAg
IGludCB4KCkgY29uc3QgeyByZXR1cm4geHA7IH0KLSAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJu
IHlwOyB9Ci0gICAgaW50IGxlZnQoKSBjb25zdCB7IHJldHVybiB4cDsgfQotICAgIGludCB0b3Ao
KSBjb25zdCB7IHJldHVybiB5cDsgfQotICAgIGludCByaWdodCgpIGNvbnN0OwotICAgIGludCBi
b3R0b20oKSBjb25zdDsKLSAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJldHVybiB3OyB9Ci0gICAg
aW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGg7IH0KKyAgICB2b2lkIHNldExvY2F0aW9uKGNv
bnN0IEludFBvaW50JiBsb2NhdGlvbikgeyBtX2xvY2F0aW9uID0gbG9jYXRpb247IH0KKyAgICB2
b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CiAKLSAg
ICBJbnRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7Ci0gICAgSW50UG9pbnQgdG9wUmlnaHQoKSBjb25z
dDsKLSAgICBJbnRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0OwotICAgIEludFBvaW50IGJvdHRv
bUxlZnQoKSBjb25zdDsKLSAgICAKLSAgICB2b2lkIG1vdmVUb3BMZWZ0KGNvbnN0IEludFBvaW50
ICZwKSB7IHhwICs9IHAueCgpOyB5cCArPSBwLnkoKTsgfSAKKyAgICBpbnQgeCgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9jYXRpb24ueCgpOyB9CisgICAgaW50IHkoKSBjb25zdCB7IHJldHVybiBtX2xv
Y2F0aW9uLnkoKTsgfQorICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS53aWR0
aCgpOyB9CisgICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS5oZWlnaHQoKTsg
fQogCi0gICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRYKGludCB4KSB7IHhw
ID0geDsgfQotICAgIHZvaWQgc2V0WShpbnQgeSkgeyB5cCA9IHk7IH0KLSAgICB2b2lkIHNldFdp
ZHRoKGludCB3aWR0aCkgeyB3ID0gd2lkdGg7IH0KLSAgICB2b2lkIHNldEhlaWdodChpbnQgaGVp
Z2h0KSB7IGggPSBoZWlnaHQ7IH0KLSAgICB2b2lkIHNldFJlY3QoaW50IHgsIGludCB5LCBpbnQg
d2lkdGgsIGludCBoZWlnaHQpIHsgeHAgPSB4OyB5cCA9IHk7IHcgPSB3aWR0aDsgaCA9IGhlaWdo
dDsgfQotICAgIEludFJlY3QgaW50ZXJzZWN0KGNvbnN0IEludFJlY3QgJikgY29uc3Q7Ci0gICAg
Ym9vbCBpbnRlcnNlY3RzKGNvbnN0IEludFJlY3QgJikgY29uc3Q7Ci0gICAgSW50UmVjdCB1bml0
ZShjb25zdCBJbnRSZWN0ICYpIGNvbnN0OwotICAgIEludFJlY3Qgbm9ybWFsaXplKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRYKGludCB4KSB7IG1fbG9jYXRpb24uc2V0WCh4KTsgfQorICAgIHZvaWQg
c2V0WShpbnQgeSkgeyBtX2xvY2F0aW9uLnNldFkoeSk7IH0KKyAgICB2b2lkIHNldFdpZHRoKGlu
dCB3aWR0aCkgeyBtX3NpemUuc2V0V2lkdGgod2lkdGgpOyB9CisgICAgdm9pZCBzZXRIZWlnaHQo
aW50IGhlaWdodCkgeyBtX3NpemUuc2V0SGVpZ2h0KGhlaWdodCk7IH0KIAotICAgIGJvb2wgY29u
dGFpbnMoY29uc3QgSW50UG9pbnQgJnBvaW50KSBjb25zdCB7IHJldHVybiBjb250YWlucyhwb2lu
dC54KCksIHBvaW50LnkoKSk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3NpemUuaXNFbXB0eSgpOyB9CiAKLSAgICBib29sIGNvbnRhaW5zKGludCB4LCBpbnQgeSwgYm9v
bCBwcm9wZXIgPSBmYWxzZSkgY29uc3QgewotICAgICAgICBpZiAocHJvcGVyKQotICAgICAgICAg
ICAgcmV0dXJuIHggPiB4cCAmJiAoeCA8ICh4cCArIHcgLSAxKSkgJiYgeSA+IHlwICYmIHkgPCAo
eXAgKyBoIC0gMSk7Ci0gICAgICAgIHJldHVybiB4ID49IHhwICYmIHggPCAoeHAgKyB3KSAmJiB5
ID49IHlwICYmIHkgPCAoeXAgKyBoKTsKKyAgICBpbnQgcmlnaHQoKSBjb25zdCB7IHJldHVybiB4
KCkgKyB3aWR0aCgpOyB9CisgICAgaW50IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIHkoKSArIGhl
aWdodCgpOyB9CisKKyAgICB2b2lkIG1vdmUoY29uc3QgSW50UG9pbnQmIHApIHsgbV9sb2NhdGlv
biArPSBwOyB9IAorICAgIHZvaWQgbW92ZShpbnQgZHgsIGludCBkeSkgeyBtX2xvY2F0aW9uICs9
IEludFBvaW50KGR4LCBkeSk7IH0gCisKKyAgICBib29sIGludGVyc2VjdHMoY29uc3QgSW50UmVj
dCYpIGNvbnN0OworICAgIGJvb2wgY29udGFpbnMoY29uc3QgSW50UmVjdCYpIGNvbnN0OworCisg
ICAgLy8gVGhpcyBjaGVja3MgdG8gc2VlIGlmIHRoZSByZWN0IGNvbnRhaW5zIHgseSBpbiB0aGUg
dHJhZGl0aW9uYWwgc2Vuc2UuCisgICAgLy8gRXF1aXZhbGVudCB0byBjaGVja2luZyBpZiB0aGUg
cmVjdCBjb250YWlucyBhIDF4MSByZWN0IGJlbG93IGFuZCB0byB0aGUgcmlnaHQgb2YgKHB4LHB5
KS4KKyAgICBib29sIGNvbnRhaW5zKGludCBweCwgaW50IHB5KSBjb25zdAorICAgICAgICB7IHJl
dHVybiBweCA+PSB4KCkgJiYgcHggPCByaWdodCgpICYmIHB5ID49IHkoKSAmJiBweSA8IGJvdHRv
bSgpOyB9CisKKyAgICB2b2lkIGludGVyc2VjdChjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCB1
bml0ZShjb25zdCBJbnRSZWN0Jik7CisKKyAgICB2b2lkIGluZmxhdGVYKGludCBkeCkgeworICAg
ICAgICBtX2xvY2F0aW9uLnNldFgobV9sb2NhdGlvbi54KCkgLSBkeCk7CisgICAgICAgIG1fc2l6
ZS5zZXRXaWR0aChtX3NpemUud2lkdGgoKSArIGR4ICsgZHgpOwogICAgIH0KKyAgICB2b2lkIGlu
ZmxhdGVZKGludCBkeSkgeworICAgICAgICBtX2xvY2F0aW9uLnNldFkobV9sb2NhdGlvbi55KCkg
LSBkeSk7CisgICAgICAgIG1fc2l6ZS5zZXRIZWlnaHQobV9zaXplLmhlaWdodCgpICsgZHkgKyBk
eSk7CisgICAgfQorICAgIHZvaWQgaW5mbGF0ZShpbnQgZCkgeyBpbmZsYXRlWChkKTsgaW5mbGF0
ZVkoZCk7IH0KIAotICAgIGJvb2wgY29udGFpbnMoY29uc3QgSW50UmVjdCAmcmVjdCkgY29uc3Qg
eyByZXR1cm4gaW50ZXJzZWN0KHJlY3QpID09IHJlY3Q7IH0KLSAgICAKLSAgICB2b2lkIGluZmxh
dGUoaW50IHMpOworI2lmIF9fQVBQTEVfXwogCi0gICAgaW5saW5lIEludFJlY3Qgb3BlcmF0b3Im
KGNvbnN0IEludFJlY3QgJnIpIGNvbnN0IHsgcmV0dXJuIGludGVyc2VjdChyKTsgfQorICAgIG9w
ZXJhdG9yIENHUmVjdCgpIGNvbnN0OwogCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYhIE5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiAgICAgb3BlcmF0b3IgTlNSZWN0KCkgY29uc3Q7CiAj
ZW5kaWYKLSAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25zdDsKKwogI2VuZGlmCiAKIHByaXZhdGU6
Ci0gICAgaW50IHhwOwotICAgIGludCB5cDsKLSAgICBpbnQgdzsKLSAgICBpbnQgaDsKLQotICAg
IGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgSW50UmVjdCAmLCBjb25zdCBJbnRSZWN0ICYp
OwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgSW50UmVjdCAmLCBjb25zdCBJbnRS
ZWN0ICYpOworICAgIEludFBvaW50IG1fbG9jYXRpb247CisgICAgSW50U2l6ZSBtX3NpemU7CiB9
OwogCitpbmxpbmUgSW50UmVjdCBpbnRlcnNlY3Rpb24oY29uc3QgSW50UmVjdCYgYSwgY29uc3Qg
SW50UmVjdCYgYikKK3sKKyAgICBJbnRSZWN0IGMgPSBhOworICAgIGMuaW50ZXJzZWN0KGIpOwor
ICAgIHJldHVybiBjOwogfQogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3Qm
IGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAgcmV0dXJuIGEubG9jYXRpb24oKSA9PSBiLmxv
Y2F0aW9uKCkgJiYgYS5zaXplKCkgPT0gYi5zaXplKCk7Cit9CisKK2lubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKK3sKKyAgICByZXR1cm4g
YS5sb2NhdGlvbigpICE9IGIubG9jYXRpb24oKSB8fCBhLnNpemUoKSAhPSBiLnNpemUoKTsKK30K
KworI2lmIF9fQVBQTEVfXworCitJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgQ0dSZWN0
Jik7CisKKyNpZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwor
SW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IE5TUmVjdCYpOworCisjZW5kaWYKKworI2Vu
ZGlmCisKK30KKwogLy8gRklYTUU6IFJlbW92ZSB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdl
YkNvcmUgbmFtZXNwYWNlLgogdXNpbmcgV2ViQ29yZTo6SW50UmVjdDsKK3VzaW5nIFdlYkNvcmU6
OmVuY2xvc2luZ0ludFJlY3Q7CiAKICNlbmRpZgpJbmRleDogcGxhdGZvcm0vRmxvYXRQb2ludC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vRmxvYXRQb2ludC5jcHAJKHJldmlzaW9uIDEyNDI0
KQorKysgcGxhdGZvcm0vRmxvYXRQb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM1ICsy
NiwxMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKKwog
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFBv
aW50OjpGbG9hdFBvaW50KCkgOiB4Q29vcmQoMCksIHlDb29yZCgwKQorRmxvYXRQb2ludDo6Rmxv
YXRQb2ludChjb25zdCBJbnRQb2ludCYgcCkgOiBtX3gocC54KCkpLCBtX3kocC55KCkpCiB7CiB9
CiAKLUZsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoZmxvYXQgeEluLCBmbG9hdCB5SW4pIDogeENvb3Jk
KHhJbiksIHlDb29yZCh5SW4pCi17CiB9Ci0KLUZsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3Qg
SW50UG9pbnQmIHApIDp4Q29vcmQocC54KCkpLCB5Q29vcmQocC55KCkpCi17Ci19Ci0KLUZsb2F0
UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIp
Ci17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoYS54Q29vcmQgKyBiLnhDb29yZCwgYS55Q29vcmQg
KyBiLnlDb29yZCk7Ci19Ci0KLUZsb2F0UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEZsb2F0UG9pbnQm
IGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIpCi17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoYS54Q29v
cmQgLSBiLnhDb29yZCwgYS55Q29vcmQgLSBiLnlDb29yZCk7Ci19Ci0KLWNvbnN0IEZsb2F0UG9p
bnQgb3BlcmF0b3IqKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGRvdWJsZSBzKQotewotICAgIHJldHVy
biBGbG9hdFBvaW50KHAueENvb3JkICogcywgcC55Q29vcmQgKiBzKTsKLX0KLQotfQpJbmRleDog
cGxhdGZvcm0vRmxvYXRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9GbG9hdFJlY3Qu
Y3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIHBsYXRmb3JtL0Zsb2F0UmVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgorCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KIAogdXNpbmcgc3RkOjptYXg7CkBAIC0zMywxNTggKzM1LDczIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotRmxvYXRSZWN0OjpGbG9hdFJlY3QoKSA6IHhwKDAuMGYpLCB5cCgwLjBmKSwg
dygwLjBmKSwgaCgwLjBmKQorRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29uc3QgSW50UmVjdCYgcikg
OiBtX2xvY2F0aW9uKHIubG9jYXRpb24oKSksIG1fc2l6ZShyLnNpemUoKSkKIHsKIH0KIAotRmxv
YXRSZWN0OjpGbG9hdFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgpLCBoKGhlaWdodCkKK2Jvb2wgRmxvYXRSZWN0
OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gQ2hl
Y2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwgYXMgemVyby4K
KyAgICByZXR1cm4gIWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIHgo
KSA8IG90aGVyLnJpZ2h0KCkgJiYgb3RoZXIueCgpIDwgcmlnaHQoKQorICAgICAgICAmJiB5KCkg
PCBvdGhlci5ib3R0b20oKSAmJiBvdGhlci55KCkgPCBib3R0b20oKTsKIH0KIAotRmxvYXRSZWN0
OjpGbG9hdFJlY3QoRmxvYXRQb2ludCBwLCBGbG9hdFNpemUgcykgOiB4cChwLngoKSksIHlwKHAu
eSgpKSwgdyhzLndpZHRoKCkpLCBoKHMuaGVpZ2h0KCkpCitib29sIEZsb2F0UmVjdDo6Y29udGFp
bnMoY29uc3QgRmxvYXRSZWN0JiBvdGhlcikgY29uc3QKIHsKKyAgICByZXR1cm4geCgpIDw9IG90
aGVyLngoKSAmJiByaWdodCgpID49IG90aGVyLnJpZ2h0KCkKKyAgICAgICAgJiYgeSgpIDw9IG90
aGVyLnkoKSAmJiBib3R0b20oKSA+PSBvdGhlci5ib3R0b20oKTsKIH0KIAotRmxvYXRSZWN0OjpG
bG9hdFJlY3QoY29uc3QgRmxvYXRQb2ludCAmdG9wTGVmdCwgY29uc3QgRmxvYXRQb2ludCAmYm90
dG9tUmlnaHQpCi0gIDogeHAodG9wTGVmdC54KCkpLCB5cCh0b3BMZWZ0LnkoKSksCi0gIHcoYm90
dG9tUmlnaHQueCgpIC0gdG9wTGVmdC54KCkgKyAxLjBmKSwgaChib3R0b21SaWdodC55KCkgLSB0
b3BMZWZ0LnkoKSArIDEuMGYpCit2b2lkIEZsb2F0UmVjdDo6aW50ZXJzZWN0KGNvbnN0IEZsb2F0
UmVjdCYgb3RoZXIpCiB7Ci19CisgICAgZmxvYXQgbCA9IG1heCh4KCksIG90aGVyLngoKSk7Cisg
ICAgZmxvYXQgdCA9IG1heCh5KCksIG90aGVyLnkoKSk7CisgICAgZmxvYXQgciA9IG1pbihyaWdo
dCgpLCBvdGhlci5yaWdodCgpKTsKKyAgICBmbG9hdCBiID0gbWluKGJvdHRvbSgpLCBvdGhlci5i
b3R0b20oKSk7CiAKLUZsb2F0UmVjdDo6RmxvYXRSZWN0KGNvbnN0IEludFJlY3QmIHIpIDogeHAo
ci54KCkpLCB5cChyLnkoKSksIHcoci53aWR0aCgpKSwgaChyLmhlaWdodCgpKQotewotfQorICAg
IC8vIFJldHVybiBhIGNsZWFuIGVtcHR5IHJlY3RhbmdsZSBmb3Igbm9uLWludGVyc2VjdGluZyBj
YXNlcy4KKyAgICBpZiAobCA+PSByIHx8IHQgPj0gYikgeworICAgICAgICBsID0gMDsKKyAgICAg
ICAgdCA9IDA7CisgICAgICAgIHIgPSAwOworICAgICAgICBiID0gMDsKKyAgICB9CiAKLWJvb2wg
RmxvYXRSZWN0Ojppc051bGwoKSBjb25zdAotewotICAgIHJldHVybiB3ID09IDAuMGYgJiYgaCA9
PSAwLjBmOworICAgIG1fbG9jYXRpb24uc2V0WChsKTsKKyAgICBtX2xvY2F0aW9uLnNldFkodCk7
CisgICAgbV9zaXplLnNldFdpZHRoKHIgLSBsKTsKKyAgICBtX3NpemUuc2V0SGVpZ2h0KGIgLSB0
KTsKIH0KIAotYm9vbCBGbG9hdFJlY3Q6OmlzVmFsaWQoKSBjb25zdAordm9pZCBGbG9hdFJlY3Q6
OnVuaXRlKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpCiB7Ci0gICAgcmV0dXJuIHcgPiAwLjBmICYm
IGggPiAwLjBmOwotfQorICAgIC8vIEhhbmRsZSBlbXB0eSBzcGVjaWFsIGNhc2VzIGZpcnN0Lgor
ICAgIGlmIChvdGhlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoaXNFbXB0
eSgpKSB7CisgICAgICAgICp0aGlzID0gb3RoZXI7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAK
LWJvb2wgRmxvYXRSZWN0Ojppc0VtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA8PSAwLjBm
IHx8IGggPD0gMC4wZjsKLX0KKyAgICBmbG9hdCBsID0gbWluKHgoKSwgb3RoZXIueCgpKTsKKyAg
ICBmbG9hdCB0ID0gbWluKHkoKSwgb3RoZXIueSgpKTsKKyAgICBmbG9hdCByID0gbWF4KHJpZ2h0
KCksIG90aGVyLnJpZ2h0KCkpOworICAgIGZsb2F0IGIgPSBtYXgoYm90dG9tKCksIG90aGVyLmJv
dHRvbSgpKTsKIAotZmxvYXQgRmxvYXRSZWN0OjpyaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHhwICsgdyAtIDEuMGY7CisgICAgbV9sb2NhdGlvbi5zZXRYKGwpOworICAgIG1fbG9jYXRpb24u
c2V0WSh0KTsKKyAgICBtX3NpemUuc2V0V2lkdGgociAtIGwpOworICAgIG1fc2l6ZS5zZXRIZWln
aHQoYiAtIHQpOwogfQogCi1mbG9hdCBGbG9hdFJlY3Q6OmJvdHRvbSgpIGNvbnN0CitJbnRSZWN0
IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIHJldHVybiB5
cCArIGggLSAxLjBmOworICAgIGludCBsID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC54
KCkpKTsKKyAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKHJlY3QueSgpKSk7Cisg
ICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QucmlnaHQoKSkpOworICAgIGlu
dCBiID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LmJvdHRvbSgpKSk7CisgICAgcmV0dXJu
IEludFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKIH0KIAotRmxvYXRQb2ludCBGbG9hdFJlY3Q6
OnRvcExlZnQoKSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFBvaW50KHhwLHlwKTsKIH0KLQot
RmxvYXRQb2ludCBGbG9hdFJlY3Q6OnRvcFJpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxv
YXRQb2ludChyaWdodCgpLHRvcCgpKTsKLX0KLQotRmxvYXRQb2ludCBGbG9hdFJlY3Q6OmJvdHRv
bVJpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxvYXRQb2ludChyaWdodCgpLGJvdHRvbSgp
KTsKLX0KLQotRmxvYXRQb2ludCBGbG9hdFJlY3Q6OmJvdHRvbUxlZnQoKSBjb25zdAotewotICAg
IHJldHVybiBGbG9hdFBvaW50KGxlZnQoKSxib3R0b20oKSk7Ci19Ci0KLUZsb2F0U2l6ZSBGbG9h
dFJlY3Q6OnNpemUoKSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFNpemUodyxoKTsKLX0KLQot
RmxvYXRSZWN0IEZsb2F0UmVjdDo6dW5pdGUoY29uc3QgRmxvYXRSZWN0ICZyKSBjb25zdAotewot
ICAgIGlmIChyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwotCi0gICAgaWYgKGlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHI7Ci0KLSAgICBmbG9hdCBueCwgbnksIG53LCBuaDsK
LQotICAgIG54ID0gbWluKHhwLCByLnhwKTsKLSAgICBueSA9IG1pbih5cCwgci55cCk7Ci0KLSAg
ICBpZiAoeHAgKyB3ID49IHIueHAgKyByLncpCi0gICAgICAgIG53ID0geHAgKyB3IC0gbng7Ci0g
ICAgZWxzZQotICAgICAgICBudyA9IHIueHAgKyByLncgLSBueDsKLQotICAgIGlmICh5cCArIGgg
Pj0gci55cCArIHIuaCkKLSAgICAgICAgbmggPSB5cCArIGggLSBueTsKLSAgICBlbHNlCi0gICAg
ICAgIG5oID0gci55cCArIHIuaCAtIG55OwotCi0gICAgcmV0dXJuIEZsb2F0UmVjdChueCwgbnks
IG53LCBuaCk7Ci19Ci0KLUZsb2F0UmVjdCBGbG9hdFJlY3Q6Om5vcm1hbGl6ZSgpIGNvbnN0Ci17
Ci0gICAgRmxvYXRSZWN0IG5ld1JlY3Q7Ci0KLSAgICBuZXdSZWN0LnhwICA9ICh3IDwgMC4wZikg
PyAoeHAgLSB3KSA6IHhwOwotICAgIG5ld1JlY3QudyAgID0gKHcgPCAwLjBmKSA/IC13IDogdzsK
LQotICAgIG5ld1JlY3QueXAgID0gKGggPCAwLjBmKSA/ICh5cCAtIGgpIDogeXA7Ci0gICAgbmV3
UmVjdC5oICAgPSAoaCA8IDAuMGYpID8gLWggOiBoOwotCi0gICAgcmV0dXJuIG5ld1JlY3Q7Ci19
Ci0KLWJvb2wgRmxvYXRSZWN0OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCAmcikgY29uc3QK
LXsKLSAgICByZXR1cm4gaW50ZXJzZWN0KHIpLmlzVmFsaWQoKTsKLX0KLQotRmxvYXRSZWN0IEZs
b2F0UmVjdDo6aW50ZXJzZWN0KGNvbnN0IEZsb2F0UmVjdCAmcikgY29uc3QKLXsKLSAgICBmbG9h
dCBueCwgbnksIG53LCBuaDsKLQotICAgIG54ID0gbWF4KHhwLCByLnhwKTsKLSAgICBueSA9IG1h
eCh5cCwgci55cCk7Ci0KLSAgICBpZiAoeHAgKyB3IDw9IHIueHAgKyByLncpCi0gICAgICAgIG53
ID0geHAgKyB3IC0gbng7Ci0gICAgZWxzZQotICAgICAgICBudyA9IHIueHAgKyByLncgLSBueDsK
LQotICAgIGlmICh5cCArIGggPD0gci55cCArIHIuaCkKLSAgICAgICAgbmggPSB5cCArIGggLSBu
eTsKLSAgICBlbHNlCi0gICAgICAgIG5oID0gci55cCArIHIuaCAtIG55OwotCi0gICAgcmV0dXJu
IEZsb2F0UmVjdChueCwgbnksIG53LCBuaCk7Ci19Ci0KLXZvaWQgRmxvYXRSZWN0OjppbmZsYXRl
KGZsb2F0IHMpCi17Ci0gICAgeHAgLT0gczsKLSAgICB5cCAtPSBzOwotICAgIHcgKz0gMi4wZiAq
IHM7Ci0gICAgaCArPSAyLjBmICogczsKLX0KLQotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0
UmVjdCYgYSwgY29uc3QgRmxvYXRSZWN0ICZiKQotewotICAgIHJldHVybiBhLnhwID09IGIueHAg
JiYgYS55cCA9PSBiLnlwICYmIGEudyA9PSBiLncgJiYgYS5oID09IGIuaDsKLX0KLQotYm9vbCBv
cGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdCAmYSwgY29uc3QgRmxvYXRSZWN0ICZiKQotewotICAg
IHJldHVybiAhKGEgPT0gYik7Ci19Ci0KLX0KSW5kZXg6IHBsYXRmb3JtL0FmZmluZVRyYW5zZm9y
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmNwcAkocmV2aXNp
b24gMCkKKysrIHBsYXRmb3JtL0FmZmluZVRyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNp
bmNsdWRlIDxtYXRoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhlIGZvbGxvd2lu
ZyBjb25zdGFudCBpcyAycGkgLyAzNjAuCisvLyBJIHdvdWxkIHVzZSB3b3VsZCB1c2UgTV9QSSBi
dXQgaXQncyBwcm9iYWJseSBub3QgcG9ydGFibGUuCisvLyBUaGUgY29uc3RhbnQgaXMgcHJlY2lz
ZSBlbm91Z2ggdG8gYmUgdXNlZCBhcyBhIGRvdWJsZSBldmVuIHRob3VnaCB3ZSdyZSB1c2luZyBp
dCBhcyBhIGZsb2F0IGp1c3Qgbm93LgorY29uc3QgZmxvYXQgcmFkaWFuc1BlckRlZ3JlZSA9IDAu
MDE3NDUzMjkyNTE5OTQzMjk1NzY5OworCitGbG9hdFBvaW50IEFmZmluZVRyYW5zZm9ybTo6bWFw
KGNvbnN0IEZsb2F0UG9pbnQmIHApIGNvbnN0Cit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQobV9h
ICogcC54KCkgKyBtX2MgKiBwLnkoKSArIG1fZSwgbV9iICogcC54KCkgKyBtX2QgKiBwLnkoKSAr
IG1fZik7Cit9CisKK0Zsb2F0U2l6ZSBBZmZpbmVUcmFuc2Zvcm06Om1hcChjb25zdCBGbG9hdFNp
emUmIHMpIGNvbnN0Cit7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShtX2EgKiBzLndpZHRoKCkgKyBt
X2MgKiBzLmhlaWdodCgpLCBtX2IgKiBzLndpZHRoKCkgKyBtX2QgKiBzLmhlaWdodCgpKTsKK30K
KworRmxvYXRSZWN0IEFmZmluZVRyYW5zZm9ybTo6bWFwKGNvbnN0IEZsb2F0UmVjdCYgcikgY29u
c3QKK3sKKyAgICByZXR1cm4gRmxvYXRSZWN0KG1hcChyLmxvY2F0aW9uKCkpLCBtYXAoci5zaXpl
KCkpKTsKK30KKworQWZmaW5lVHJhbnNmb3JtJiBBZmZpbmVUcmFuc2Zvcm06Om9wZXJhdG9yKj0o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0MikKK3sKKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHQxID0gKnRoaXM7CisKKyAgICBmbG9hdCBhID0gdDEuYSgpICogdDIuYSgpICsgdDEuYigpICog
dDIuYygpOworICAgIGZsb2F0IGIgPSB0MS5hKCkgKiB0Mi5iKCkgKyB0MS5iKCkgKiB0Mi5kKCk7
CisgICAgZmxvYXQgYyA9IHQxLmMoKSAqIHQyLmEoKSArIHQxLmQoKSAqIHQyLmMoKTsKKyAgICBm
bG9hdCBkID0gdDEuYygpICogdDIuYigpICsgdDEuZCgpICogdDIuZCgpOworICAgIGZsb2F0IHR4
ID0gdDEuYSgpICogdDIuZSgpICsgdDEuYigpICogdDIuZigpICsgdDEuZSgpOworICAgIGZsb2F0
IHR5ID0gdDEuYygpICogdDIuZSgpICsgdDEuZCgpICogdDIuZigpICsgdDEuZigpOworCisgICAg
c2V0KGEsIGIsIGMsIGQsIHR4LCB0eSk7CisKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3ZvaWQg
QWZmaW5lVHJhbnNmb3JtOjppbnZlcnQoKQoreworICAgIGZsb2F0IGRldGVybWluYW50ID0gbV9h
ICogbV9kIC0gbV9iICogbV9jOworICAgIGlmIChkZXRlcm1pbmFudCA9PSAwKSB7CisgICAgICAg
IHJlc2V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmbG9hdCBhID0gbV9kIC8g
ZGV0ZXJtaW5hbnQ7CisgICAgZmxvYXQgYiA9IC1tX2IgLyBkZXRlcm1pbmFudDsKKyAgICBmbG9h
dCBjID0gLW1fYyAvIGRldGVybWluYW50OworICAgIGZsb2F0IGQgPSBtX2EgLyBkZXRlcm1pbmFu
dDsKKyAgICBmbG9hdCB0eCA9IChtX2YgKiBtX2MgIC0gbV9lICogbV9kKSAvIGRldGVybWluYW50
OworICAgIGZsb2F0IHR5ID0gKG1fZSAqIG1fYiAgLSBtX2YgKiBtX2EpIC8gZGV0ZXJtaW5hbnQ7
CisKKyAgICBzZXQoYSwgYiwgYywgZCwgdHgsIHR5KTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zv
cm06OnRyYW5zbGF0ZShmbG9hdCB0eCwgZmxvYXQgdHkpCit7CisgICAgKnRoaXMgKj0gdHJhbnNs
YXRpb25NYXRyaXgodHgsIHR5KTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zvcm06OnJvdGF0ZShm
bG9hdCBhbmdsZUluUmFkaWFucykKK3sKKyAgICAqdGhpcyAqPSByb3RhdGlvbk1hdHJpeChhbmds
ZUluUmFkaWFucyk7Cit9CisKK3ZvaWQgQWZmaW5lVHJhbnNmb3JtOjpzY2FsZShmbG9hdCBzKQor
eworICAgICp0aGlzICo9IHNjYWxlTWF0cml4KHMpOworfQorCit2b2lkIEFmZmluZVRyYW5zZm9y
bTo6c2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KQoreworICAgICp0aGlzICo9IHNjYWxlTWF0cml4
KHN4LCBzeSk7Cit9CisKK3ZvaWQgQWZmaW5lVHJhbnNmb3JtOjpzaGVhcihmbG9hdCBzeCwgZmxv
YXQgc3kpCit7CisgICAgKnRoaXMgKj0gc2hlYXJNYXRyaXgoc3gsIHN5KTsKK30KKwordm9pZCBB
ZmZpbmVUcmFuc2Zvcm06OnNrZXdYKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKQoreworICAgICp0aGlz
ICo9IHNrZXdYTWF0cml4KGFuZ2xlSW5SYWRpYW5zKTsKK30KKwordm9pZCBBZmZpbmVUcmFuc2Zv
cm06OnNrZXdZKGZsb2F0IGFuZ2xlSW5SYWRpYW5zKQoreworICAgICp0aGlzICo9IHNrZXdZTWF0
cml4KGFuZ2xlSW5SYWRpYW5zKTsKK30KKworQWZmaW5lVHJhbnNmb3JtIG9wZXJhdG9yKihjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHQxLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHQyKQoreworICAg
IGZsb2F0IGEgPSB0MS5hKCkgKiB0Mi5hKCkgKyB0MS5iKCkgKiB0Mi5jKCk7CisgICAgZmxvYXQg
YiA9IHQxLmEoKSAqIHQyLmIoKSArIHQxLmIoKSAqIHQyLmQoKTsKKyAgICBmbG9hdCBjID0gdDEu
YygpICogdDIuYSgpICsgdDEuZCgpICogdDIuYygpOworICAgIGZsb2F0IGQgPSB0MS5jKCkgKiB0
Mi5iKCkgKyB0MS5kKCkgKiB0Mi5kKCk7CisgICAgZmxvYXQgdHggPSB0MS5hKCkgKiB0Mi5lKCkg
KyB0MS5iKCkgKiB0Mi5mKCkgKyB0MS5lKCk7CisgICAgZmxvYXQgdHkgPSB0MS5jKCkgKiB0Mi5l
KCkgKyB0MS5kKCkgKiB0Mi5mKCkgKyB0MS5mKCk7CisKKyAgICByZXR1cm4gQWZmaW5lVHJhbnNm
b3JtKGEsIGIsIGMsIGQsIHR4LCB0eSk7Cit9CisKK0FmZmluZVRyYW5zZm9ybSByb3RhdGlvbk1h
dHJpeChmbG9hdCBhbmdsZUluUmFkaWFucykKK3sKKyAgICBmbG9hdCBjID0gY29zZihhbmdsZUlu
UmFkaWFucyk7CisgICAgZmxvYXQgcyA9IHNpbmYoYW5nbGVJblJhZGlhbnMpOworICAgIHJldHVy
biBBZmZpbmVUcmFuc2Zvcm0oYywgcywgLXMsIGMsIDAsIDApOworfQorCitBZmZpbmVUcmFuc2Zv
cm0gc2tld1hNYXRyaXgoZmxvYXQgYW5nbGVJblJhZGlhbnMpCit7CisgICAgcmV0dXJuIEFmZmlu
ZVRyYW5zZm9ybSgxLCAwLCB0YW5mKGFuZ2xlSW5SYWRpYW5zKSwgMSwgMCwgMCk7Cit9CisKK0Fm
ZmluZVRyYW5zZm9ybSBza2V3WU1hdHJpeChmbG9hdCBhbmdsZUluUmFkaWFucykKK3sKKyAgICBy
ZXR1cm4gQWZmaW5lVHJhbnNmb3JtKDEsIHRhbmYoYW5nbGVJblJhZGlhbnMpLCAwLCAxLCAwLCAw
KTsKK30KKworZmxvYXQgcmFkaWFucyhmbG9hdCBhbmdsZUluRGVncmVlcykKK3sKKyAgICByZXR1
cm4gYW5nbGVJbkRlZ3JlZXMgKiByYWRpYW5zUGVyRGVncmVlOworfQorCit9CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uY3BwCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTog
c3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IHBsYXRmb3JtL0ludFNpemUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRTaXplLmgJKHJldmlzaW9uIDEyNDI0KQorKysgcGxhdGZv
cm0vSW50U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw1OCArMjcsOTUgQEAKICNkZWZpbmUgSU5UU0laRV9IXwogCiAjaWYgX19BUFBM
RV9fCisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CisKIC8vIHdvcmthcm91bmQgZm9y
IDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgotI2lmICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8z
Ml9MSUtFXzY0CisjaWYgIV9fTFA2NF9fICYmICFOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYg
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZk
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXpl
IE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNTaXplIE5TU2l6ZTsKICNlbmRpZgot
dHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSW50U2l6ZSB7CiBwdWJsaWM6Ci0gICAgSW50U2l6ZSgpOwotICAgIElu
dFNpemUoaW50LGludCk7CisgICAgSW50U2l6ZSgpIDogbV93aWR0aCgwKSwgbV9oZWlnaHQoMCkg
eyB9CisgICAgSW50U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIDogbV93aWR0aCh3aWR0aCks
IG1faGVpZ2h0KGhlaWdodCkgeyB9CiAgICAgCisgICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aDsgfQorICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsg
fQorCisgICAgdm9pZCBzZXRXaWR0aChpbnQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9Cisg
ICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQorCisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0
IDw9IDA7IH0KKworICAgIEludFNpemUgZXhwYW5kZWRUbyhjb25zdCBJbnRTaXplJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBJbnRTaXplKG1fd2lkdGggPiBvdGhlci5tX3dp
ZHRoID8gbV93aWR0aCA6IG90aGVyLm1fd2lkdGgsCisgICAgICAgICAgICBtX2hlaWdodCA+IG90
aGVyLm1faGVpZ2h0ID8gbV9oZWlnaHQgOiBvdGhlci5tX2hlaWdodCk7CisgICAgfQorCiAjaWYg
X19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi0gICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7Ci0jZW5kaWYKLSAgICBl
eHBsaWNpdCBJbnRTaXplKGNvbnN0IENHU2l6ZSAmKTsKLSNlbmRpZgogCi0gICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7Ci0gICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGlu
dCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBoOyB9Ci0gICAgdm9pZCBzZXRXaWR0aChpbnQgd2lk
dGgpIHsgdyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBoID0g
aGVpZ2h0OyB9Ci0gICAgSW50U2l6ZSBleHBhbmRlZFRvKGNvbnN0IEludFNpemUgJikgY29uc3Q7
CisgICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBDR1NpemUmKTsgLy8gZG9uJ3QgZG8gdGhpcyBp
bXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsK
IAotI2lmIF9fQVBQTEVfXyAgICAKICNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBJbnRTaXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8g
ZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRvciBO
U1NpemUoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0OworCiAj
ZW5kaWYKIAotICAgIGZyaWVuZCBJbnRTaXplIG9wZXJhdG9yKyhjb25zdCBJbnRTaXplICYsIGNv
bnN0IEludFNpemUgJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRTaXpl
ICYsIGNvbnN0IEludFNpemUgJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJ
bnRTaXplICYsIGNvbnN0IEludFNpemUgJik7Ci0KIHByaXZhdGU6Ci0gICAgaW50IHc7Ci0gICAg
aW50IGg7CisgICAgaW50IG1fd2lkdGgsIG1faGVpZ2h0OwogfTsKIAoraW5saW5lIEludFNpemUm
IG9wZXJhdG9yKz0oSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICBhLnNldFdp
ZHRoKGEud2lkdGgoKSArIGIud2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAr
IGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOwogfQogCitpbmxpbmUgSW50U2l6ZSYgb3BlcmF0
b3ItPShJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIGEuc2V0V2lkdGgoYS53
aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdodChhLmhlaWdodCgpIC0gYi5oZWln
aHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBJbnRTaXplIG9wZXJhdG9yKyhjb25z
dCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBJbnRTaXplKGEu
d2lkdGgoKSArIGIud2lkdGgoKSwgYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworfQorCitpbmxp
bmUgSW50U2l6ZSBvcGVyYXRvci0oY29uc3QgSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikK
K3sKKyAgICByZXR1cm4gSW50U2l6ZShhLndpZHRoKCkgLSBiLndpZHRoKCksIGEuaGVpZ2h0KCkg
LSBiLmhlaWdodCgpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRTaXpl
JiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0
aCgpICYmIGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBh
LndpZHRoKCkgIT0gYi53aWR0aCgpIHx8IGEuaGVpZ2h0KCkgIT0gYi5oZWlnaHQoKTsKK30KKwor
fQorCiAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gdGhlIGVuZ2luZSBmaWxlcyBoYXZlIGJlZW4gY29u
dmVydGVkIHRvIGJlIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4KIHVzaW5nIFdlYkNvcmU6Oklu
dFNpemU7CiAKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfbGluZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
cmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJpbmcv
cmVuZGVyX2xpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsMTEgKzc0OCw5IEBACiAKIHZv
aWQgSW5saW5lRmxvd0JveDo6cGFpbnQoUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGludCB0
eCwgaW50IHR5KQogewotICAgIGJvb2wgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSB0cnVlOwogICAg
IGludCB4UG9zID0gdHggKyBtX3ggLSBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVTaXplKGkucGhh
c2UpOwogICAgIGludCB3ID0gd2lkdGgoKSArIDIgKiBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVT
aXplKGkucGhhc2UpOwotICAgIGlmICgoeFBvcyA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkpIHx8
ICh4UG9zICsgdyA8PSBpLnIueCgpKSkKLSAgICAgICAgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSBm
YWxzZTsKKyAgICBib29sIGludGVyc2VjdHNEYW1hZ2VSZWN0ID0geFBvcyA8IGkuci5yaWdodCgp
ICYmIHhQb3MgKyB3ID4gaS5yLngoKTsKICAgICAKICAgICBpZiAoaW50ZXJzZWN0c0RhbWFnZVJl
Y3QpIHsKICAgICAgICAgaWYgKGkucGhhc2UgPT0gUGFpbnRBY3Rpb25PdXRsaW5lKSB7CkBAIC04
NDMsNyArODQxLDcgQEAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7CiAgICAgaW50
IG1oOwogICAgIGlmIChfdHkgPCBpLnIueSgpKQotICAgICAgICBtaD0ga01heCgwLCBoIC0gKGku
ci55KCkgLSBfdHkpKTsKKyAgICAgICAgbWggPSBrTWF4KDAsIGggLSAoaS5yLnkoKSAtIF90eSkp
OwogICAgIGVsc2UKICAgICAgICAgbWggPSBrTWluKGkuci5oZWlnaHQoKSwgaCk7CiAKQEAgLTEw
OTAsMjMgKzEwODgsMjYgQEAKICAgICB9CiB9CiAKLWJvb2wgRWxsaXBzaXNCb3g6Om5vZGVBdFBv
aW50KFJlbmRlck9iamVjdDo6Tm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4
LCBpbnQgX3R5KQorYm9vbCBFbGxpcHNpc0JveDo6bm9kZUF0UG9pbnQoUmVuZGVyT2JqZWN0OjpO
b2RlSW5mbyYgaW5mbywgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSkKIHsKKyAgICB0eCAr
PSBtX3g7CisgICAgdHkgKz0gbV95OworCiAgICAgLy8gSGl0IHRlc3QgdGhlIG1hcmt1cCBib3gu
CiAgICAgaWYgKG1fbWFya3VwQm94KSB7Ci0gICAgICAgIF90eCArPSBtX3ggKyBtX3dpZHRoIC0g
bV9tYXJrdXBCb3gtPnhQb3MoKTsKLSAgICAgICAgX3R5ICs9IG1feSArIG1fYmFzZWxpbmUgLSAo
bV9tYXJrdXBCb3gtPnlQb3MoKSArIG1fbWFya3VwQm94LT5iYXNlbGluZSgpKTsKLSAgICAgICAg
aWYgKG1fbWFya3VwQm94LT5ub2RlQXRQb2ludChpbmZvLCBfeCwgX3ksIF90eCwgX3R5KSkgewor
ICAgICAgICBpbnQgbXR4ID0gdHggKyBtX3dpZHRoIC0gbV9tYXJrdXBCb3gtPnhQb3MoKTsKKyAg
ICAgICAgaW50IG10eSA9IHR5ICsgbV9iYXNlbGluZSAtIChtX21hcmt1cEJveC0+eVBvcygpICsg
bV9tYXJrdXBCb3gtPmJhc2VsaW5lKCkpOworICAgICAgICBpZiAobV9tYXJrdXBCb3gtPm5vZGVB
dFBvaW50KGluZm8sIHgsIHksIG10eCwgbXR5KSkgewogICAgICAgICAgICAgb2JqZWN0KCktPnNl
dElubmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgSW50UmVjdCByZWN0KF90eCArIG1feCwgX3R5ICsgbV95LCBtX3dpZHRoLCBt
X2hlaWdodCk7Ci0gICAgaWYgKG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklT
SUJMRSAmJiByZWN0LmNvbnRhaW5zKF94LCBfeSkpIHsKKyAgICBpZiAob2JqZWN0KCktPnN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIEludFJlY3QodHgsIHR5LCBtX3dpZHRoLCBt
X2hlaWdodCkuY29udGFpbnMoeCwgeSkpIHsKICAgICAgICAgb2JqZWN0KCktPnNldElubmVyTm9k
ZShpbmZvKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIwLDE1ICs1MjAs
MTQgQEAKIAogICAgIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLi4u
CiAgICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSk7Ci0gICAgaWYgKChf
dHkgPj0gaS5yLnkoKSArIGkuci5oZWlnaHQoKSArIG9zKSB8fCAoX3R5ICsgX3RvcEV4dHJhICsg
bV9oZWlnaHQgKyBfYm90dG9tRXh0cmEgPD0gaS5yLnkoKSAtIG9zKSkKKyAgICBpZiAoX3R5ID49
IGkuci5ib3R0b20oKSArIG9zIHx8IF90eSArIF90b3BFeHRyYSArIG1faGVpZ2h0ICsgX2JvdHRv
bUV4dHJhIDw9IGkuci55KCkgLSBvcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGkucGhh
c2UgPT0gUGFpbnRBY3Rpb25Db2xsYXBzZWRUYWJsZUJvcmRlcnMgJiYgc3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgaW50IHcgPSB3aWR0aCgpOwogICAgICAgICBp
bnQgaCA9IGhlaWdodCgpICsgYm9yZGVyVG9wRXh0cmEoKSArIGJvcmRlckJvdHRvbUV4dHJhKCk7
CiAgICAgICAgIHBhaW50Q29sbGFwc2VkQm9yZGVyKGkucCwgX3R4LCBfdHksIHcsIGgpOwotICAg
IH0KLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAgICAgIFJlbmRlckJsb2NrOjpwYWludE9iamVj
dChpLCBfdHgsIF90eSArIF90b3BFeHRyYSk7CiAKICNpZmRlZiBCT1hfREVCVUcKQEAgLTczMyw3
ICs3MzIsNyBAQAogICAgIH0KIAogICAgIGludCBteSA9IGtNYXgoX3R5LCBpLnIueSgpKTsKLSAg
ICBpbnQgZW5kID0ga01pbihpLnIueSgpICsgaS5yLmhlaWdodCgpLCBfdHkgKyBoKTsKKyAgICBp
bnQgZW5kID0ga01pbihpLnIuYm90dG9tKCksIF90eSArIGgpOwogICAgIGludCBtaCA9IGVuZCAt
IG15OwogCiAgICAgaWYgKGJnTGF5ZXItPmhhc0ltYWdlKCkgfHwgYy5pc1ZhbGlkKCkpIHsKSW5k
ZXg6IHJlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9y
ZW5kZXJfbGF5ZXIuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIHJlbmRlcmluZy9yZW5kZXJfbGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDcsNyArNjQ3LDcgQEAKICAgICAKICAgICAvLyBG
aW5kIHRoZSBhcHByb3ByaWF0ZSBYIGNvb3JkaW5hdGUgdG8gc2Nyb2xsIHRvLgogICAgIFNjcm9s
bEJlaGF2aW9yIHNjcm9sbFggPSBnZXRIaWRkZW5CZWhhdmlvcihhbGlnblgpOwotICAgIGludCBp
bnRlcnNlY3RXaWR0aCA9IHZpc2libGVSZWN0LmludGVyc2VjdChleHBvc2VSZWN0KS53aWR0aCgp
OworICAgIGludCBpbnRlcnNlY3RXaWR0aCA9IGludGVyc2VjdGlvbih2aXNpYmxlUmVjdCwgZXhw
b3NlUmVjdCkud2lkdGgoKTsKICAgICAvLyBJZiB0aGUgcmVjdGFuZ2xlIGlzIGZ1bGx5IHZpc2li
bGUsIHVzZSB0aGUgc3BlY2lmaWVkIHZpc2libGUgYmVoYXZpb3IuCiAgICAgLy8gSWYgdGhlIHJl
Y3RhbmdsZSBpcyBwYXJ0aWFsbHkgdmlzaWJsZSwgYnV0IG92ZXIgYSBjZXJ0YWluIHRocmVzaG9s
ZCwgdGhlbiB0cmVhdCBpdCBhcyBmdWxseSB2aXNpYmxlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGhv
cml6b250YWwgc2Nyb2xsaW5nCiAgICAgaWYgKGludGVyc2VjdFdpZHRoID09IHcgfHwgaW50ZXJz
ZWN0V2lkdGggPj0gTUlOX0lOVEVSU0VDVF9GT1JfUkVWRUFMKQpAQCAtNjY3LDcgKzY2Nyw3IEBA
CiAgICAgICAgIHggPSB2aXNpYmxlUmVjdC54KCk7CiAgICAgLy8gSWYgd2UncmUgdHJ5aW5nIHRv
IGFsaWduIHRvIHRoZSBjbG9zZXN0IGVkZ2UsIGFuZCB0aGUgZXhwb3NlUmVjdCBpcyBmdXJ0aGVy
IHJpZ2h0IHRoYW4gdGhlIHZpc2libGVSZWN0LCBhbmQgbm90IGJpZ2dlciB0aGFuIHRoZSB2aXNp
YmxlIGFyZWEsIHRoZW4gYWxpZ25SaWdodC4KICAgICBlbHNlIGlmICgoc2Nyb2xsWCA9PSBhbGln
blJpZ2h0KSB8fCAoKHNjcm9sbFggPT0gYWxpZ25Ub0Nsb3Nlc3RFZGdlKSAmJiBleHBvc2VSZWN0
LnJpZ2h0KCkgPiB2aXNpYmxlUmVjdC5yaWdodCgpICYmIHcgPCB2aXNpYmxlUmVjdC53aWR0aCgp
KSkKLSAgICAgICAgeCA9IGV4cG9zZVJlY3QucmlnaHQoKSAtIHZpc2libGVSZWN0LndpZHRoKCk7
CisgICAgICAgIHggPSAoZXhwb3NlUmVjdC5yaWdodCgpIC0gMSkgLSB2aXNpYmxlUmVjdC53aWR0
aCgpOwogICAgIGVsc2UgaWYgKHNjcm9sbFggPT0gYWxpZ25DZW50ZXIpCiAgICAgICAgIHggLT0g
KHZpc2libGVSZWN0LndpZHRoKCkgLSB3KSAvIDI7CiAgICAgLy8gQnkgZGVmYXVsdCwgeCBpcyBz
ZXQgdG8gdGhlIGxlZnQgb2YgdGhlIGV4cG9zZVJlY3QsIHNvIGZvciB0aGUgYWxpZ25MZWZ0IGNh
c2UsIApAQCAtNjc2LDcgKzY3Niw3IEBACiAgICAgCiAgICAgLy8gRmluZCB0aGUgYXBwcm9wcmlh
dGUgWSBjb29yZGluYXRlIHRvIHNjcm9sbCB0by4KICAgICBTY3JvbGxCZWhhdmlvciBzY3JvbGxZ
ID0gZ2V0SGlkZGVuQmVoYXZpb3IoYWxpZ25ZKTsKLSAgICBpbnQgaW50ZXJzZWN0SGVpZ2h0ID0g
dmlzaWJsZVJlY3QuaW50ZXJzZWN0KGV4cG9zZVJlY3QpLmhlaWdodCgpOworICAgIGludCBpbnRl
cnNlY3RIZWlnaHQgPSBpbnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJlY3QpLmhlaWdo
dCgpOwogICAgIC8vIElmIHRoZSByZWN0YW5nbGUgaXMgZnVsbHkgdmlzaWJsZSwgdXNlIHRoZSBz
cGVjaWZpZWQgdmlzaWJsZSBiZWhhdmlvci4KICAgICBpZiAoaW50ZXJzZWN0SGVpZ2h0ID09IGgp
CiAgICAgICAgIHNjcm9sbFkgPSBnZXRWaXNpYmxlQmVoYXZpb3IoYWxpZ25ZKTsKQEAgLTY5NSw3
ICs2OTUsNyBAQAogICAgICAgICB5ID0gdmlzaWJsZVJlY3QueSgpOwogICAgIC8vIElmIHdlJ3Jl
IHRyeWluZyB0byBhbGlnbiB0byB0aGUgY2xvc2VzdCBlZGdlLCBhbmQgdGhlIGV4cG9zZVJlY3Qg
aXMgZnVydGhlciBkb3duIHRoYW4gdGhlIHZpc2libGVSZWN0LCBhbmQgbm90IGJpZ2dlciB0aGFu
IHRoZSB2aXNpYmxlIGFyZWEsIHRoZW4gYWxpZ25Cb3R0b20uCiAgICAgZWxzZSBpZiAoKHNjcm9s
bFkgPT0gYWxpZ25Cb3R0b20pIHx8ICgoc2Nyb2xsWSA9PSBhbGlnblRvQ2xvc2VzdEVkZ2UpICYm
IGV4cG9zZVJlY3QuYm90dG9tKCkgPiB2aXNpYmxlUmVjdC5ib3R0b20oKSAmJiBoIDwgdmlzaWJs
ZVJlY3QuaGVpZ2h0KCkpKQotICAgICAgICB5ID0gZXhwb3NlUmVjdC5ib3R0b20oKSAtIHZpc2li
bGVSZWN0LmhlaWdodCgpOworICAgICAgICB5ID0gKGV4cG9zZVJlY3QuYm90dG9tKCkgLSAxKSAt
IHZpc2libGVSZWN0LmhlaWdodCgpOwogICAgIGVsc2UgaWYgKHNjcm9sbFkgPT0gYWxpZ25DZW50
ZXIpCiAgICAgICAgIHkgLT0gKHZpc2libGVSZWN0LmhlaWdodCgpIC0gaCkgLyAyOwogICAgIC8v
IEJ5IGRlZmF1bHQsIHkgaXMgc2V0IHRvIHRoZSB0b3Agb2YgdGhlIGV4cG9zZVJlY3QsIHNvIGZv
ciB0aGUgYWxpZ25Ub3AgY2FzZSwgCkBAIC04MDIsMTkgKzgwMiwxNyBAQAogUmVuZGVyTGF5ZXI6
OnBvc2l0aW9uU2Nyb2xsYmFycyhjb25zdCBJbnRSZWN0JiBhYnNCb3VuZHMpCiB7CiAgICAgaWYg
KG1fdkJhcikgewotICAgICAgICBtX3ZCYXItPm1vdmUoYWJzQm91bmRzLngoKSthYnNCb3VuZHMu
d2lkdGgoKS1tX29iamVjdC0+Ym9yZGVyUmlnaHQoKS1tX3ZCYXItPndpZHRoKCksCi0gICAgICAg
ICAgICAgICAgICAgICBhYnNCb3VuZHMueSgpK21fb2JqZWN0LT5ib3JkZXJUb3AoKSk7Ci0gICAg
ICAgIG1fdkJhci0+cmVzaXplKG1fdkJhci0+d2lkdGgoKSwgYWJzQm91bmRzLmhlaWdodCgpIC0K
LSAgICAgICAgICAgICAgICAgICAgICAgKG1fb2JqZWN0LT5ib3JkZXJUb3AoKSttX29iamVjdC0+
Ym9yZGVyQm90dG9tKCkpIC0KLSAgICAgICAgICAgICAgICAgICAgICAgKG1faEJhciA/IG1faEJh
ci0+aGVpZ2h0KCktMSA6IDApKTsKKyAgICAgICAgbV92QmFyLT5tb3ZlKGFic0JvdW5kcy5yaWdo
dCgpIC0gbV9vYmplY3QtPmJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCksCisgICAgICAg
ICAgICBhYnNCb3VuZHMueSgpICsgbV9vYmplY3QtPmJvcmRlclRvcCgpKTsKKyAgICAgICAgbV92
QmFyLT5yZXNpemUobV92QmFyLT53aWR0aCgpLAorICAgICAgICAgICAgYWJzQm91bmRzLmhlaWdo
dCgpIC0gKG1fb2JqZWN0LT5ib3JkZXJUb3AoKSArIG1fb2JqZWN0LT5ib3JkZXJCb3R0b20oKSkg
LSAobV9oQmFyID8gbV9oQmFyLT5oZWlnaHQoKSAtIDEgOiAwKSk7CiAgICAgfQogCiAgICAgaWYg
KG1faEJhcikgewotICAgICAgICBtX2hCYXItPm1vdmUoYWJzQm91bmRzLngoKSttX29iamVjdC0+
Ym9yZGVyTGVmdCgpLAotICAgICAgICAgICAgICAgICAgICAgYWJzQm91bmRzLnkoKSthYnNCb3Vu
ZHMuaGVpZ2h0KCktbV9vYmplY3QtPmJvcmRlckJvdHRvbSgpLW1faEJhci0+aGVpZ2h0KCkpOwot
ICAgICAgICBtX2hCYXItPnJlc2l6ZShhYnNCb3VuZHMud2lkdGgoKSAtIChtX29iamVjdC0+Ym9y
ZGVyTGVmdCgpK21fb2JqZWN0LT5ib3JkZXJSaWdodCgpKSAtCi0gICAgICAgICAgICAgICAgICAg
ICAgIChtX3ZCYXIgPyBtX3ZCYXItPndpZHRoKCktMSA6IDApLAotICAgICAgICAgICAgICAgICAg
ICAgICBtX2hCYXItPmhlaWdodCgpKTsKKyAgICAgICAgbV9oQmFyLT5tb3ZlKGFic0JvdW5kcy54
KCkgKyBtX29iamVjdC0+Ym9yZGVyTGVmdCgpLAorICAgICAgICAgICAgYWJzQm91bmRzLmJvdHRv
bSgpIC0gbV9vYmplY3QtPmJvcmRlckJvdHRvbSgpIC0gbV9oQmFyLT5oZWlnaHQoKSk7CisgICAg
ICAgIG1faEJhci0+cmVzaXplKGFic0JvdW5kcy53aWR0aCgpIC0gKG1fb2JqZWN0LT5ib3JkZXJM
ZWZ0KCkgKyBtX29iamVjdC0+Ym9yZGVyUmlnaHQoKSkgLSAobV92QmFyID8gbV92QmFyLT53aWR0
aCgpIC0gMSA6IDApLAorICAgICAgICAgICAgbV9oQmFyLT5oZWlnaHQoKSk7CiAgICAgfQogfQog
CkBAIC0xMjU4LDE1ICsxMjU2LDE1IEBACiAgICAgICAgIAogICAgICAgICBpZiAobV9vYmplY3Qt
Pmhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAgICAgICBJbnRSZWN0IG5ld092ZXJmbG93Q2xp
cCA9IG1fb2JqZWN0LT5nZXRPdmVyZmxvd0NsaXBSZWN0KHgseSk7Ci0gICAgICAgICAgICBvdmVy
Zmxvd0NsaXBSZWN0ICA9IG5ld092ZXJmbG93Q2xpcC5pbnRlcnNlY3Qob3ZlcmZsb3dDbGlwUmVj
dCk7CisgICAgICAgICAgICBvdmVyZmxvd0NsaXBSZWN0LmludGVyc2VjdChuZXdPdmVyZmxvd0Ns
aXApOwogICAgICAgICAgICAgaWYgKG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSB8fCBtX29iamVj
dC0+aXNSZWxQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgcG9zQ2xpcFJlY3QgPSBuZXdP
dmVyZmxvd0NsaXAuaW50ZXJzZWN0KHBvc0NsaXBSZWN0KTsKKyAgICAgICAgICAgICAgICBwb3ND
bGlwUmVjdC5pbnRlcnNlY3QobmV3T3ZlcmZsb3dDbGlwKTsKICAgICAgICAgfQogICAgICAgICBp
ZiAobV9vYmplY3QtPmhhc0NsaXAoKSkgewogICAgICAgICAgICAgSW50UmVjdCBuZXdQb3NDbGlw
ID0gbV9vYmplY3QtPmdldENsaXBSZWN0KHgseSk7Ci0gICAgICAgICAgICBwb3NDbGlwUmVjdCA9
IHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKLSAgICAgICAgICAgIG92ZXJmbG93
Q2xpcFJlY3QgPSBvdmVyZmxvd0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKLSAgICAg
ICAgICAgIGZpeGVkQ2xpcFJlY3QgPSBmaXhlZENsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlw
KTsKKyAgICAgICAgICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAg
ICAgICAgIG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOworICAgICAgICAg
ICAgZml4ZWRDbGlwUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC0xMjg5LDcgKzEyODcsNyBAQAogICAgICAgICBiYWNrZ3JvdW5kUmVjdCA9IG1f
b2JqZWN0LT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZJWEVEID8gcGFyZW50KCktPmNsaXBSZWN0
cygpLT5maXhlZENsaXBSZWN0KCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgIChtX29iamVj
dC0+aXNQb3NpdGlvbmVkKCkgPyBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPnBvc0NsaXBSZWN0KCkg
OiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCkpOwotICAgICAgICBiYWNr
Z3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludERpcnR5UmVjdCk7Cisg
ICAgICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludERpcnR5UmVjdCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGJhY2tncm91bmRSZWN0ID0gcGFpbnREaXJ0eVJlY3Q7CiAgICAgZm9yZWdy
b3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKQEAgLTEzMDQsMTggKzEzMDIsMTggQEAKICAgICBp
ZiAobV9vYmplY3QtPmhhc092ZXJmbG93Q2xpcCgpIHx8IG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsK
ICAgICAgICAgLy8gVGhpcyBsYXllciBlc3RhYmxpc2hlcyBhIGNsaXAgb2Ygc29tZSBraW5kLgog
ICAgICAgICBpZiAobV9vYmplY3QtPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgZm9y
ZWdyb3VuZFJlY3QgPSBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3QobV9vYmplY3QtPmdldE92ZXJm
bG93Q2xpcFJlY3QoeCx5KSk7CisgICAgICAgICAgICBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3Qo
bV9vYmplY3QtPmdldE92ZXJmbG93Q2xpcFJlY3QoeCx5KSk7CiAgICAgICAgIGlmIChtX29iamVj
dC0+aGFzQ2xpcCgpKSB7CiAgICAgICAgICAgICAvLyBDbGlwIGFwcGxpZXMgdG8gKnVzKiBhcyB3
ZWxsLCBzbyBnbyBhaGVhZCBhbmQgdXBkYXRlIHRoZSBkYW1hZ2VSZWN0LgogICAgICAgICAgICAg
SW50UmVjdCBuZXdQb3NDbGlwID0gbV9vYmplY3QtPmdldENsaXBSZWN0KHgseSk7Ci0gICAgICAg
ICAgICBiYWNrZ3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChuZXdQb3NDbGlw
KTsKLSAgICAgICAgICAgIGZvcmVncm91bmRSZWN0ID0gZm9yZWdyb3VuZFJlY3QuaW50ZXJzZWN0
KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAgb3V0bGluZVJlY3QgPSBvdXRsaW5lUmVjdC5pbnRl
cnNlY3QobmV3UG9zQ2xpcCk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3Qo
bmV3UG9zQ2xpcCk7CisgICAgICAgICAgICBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3QobmV3UG9z
Q2xpcCk7CisgICAgICAgICAgICBvdXRsaW5lUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBJZiB3ZSBlc3RhYmxpc2ggYSBjbGlwIGF0IGFsbCwgdGhl
biBnbyBhaGVhZCBhbmQgbWFrZSBzdXJlIG91ciBiYWNrZ3JvdW5kCiAgICAgICAgIC8vIHJlY3Qg
aXMgaW50ZXJzZWN0ZWQgd2l0aCBvdXIgbGF5ZXIncyBib3VuZHMuCi0gICAgICAgIGJhY2tncm91
bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KGxheWVyQm91bmRzKTsKKyAgICAgICAg
YmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KGxheWVyQm91bmRzKTsKICAgICB9CiB9CiAKSW5kZXg6
IHJlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVu
ZGVyX2ZyYW1lcy5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysgcmVuZGVyaW5nL3JlbmRlcl9mcmFt
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsMjQgKzU2NiwyNCBAQAogICAgICAgICBpbnQg
c3cgPSBlbGVtZW50KCktPmJvcmRlcigpOwogICAgICAgICBpbnQgcCA9IG1fcmVzaXppbmcgPyAo
bV92U3BsaXQgPiAtMSA/IF94IDogX3kpIDogLTE7CiAgICAgICAgIGlmIChtX3ZTcGxpdCA+IC0x
KSB7Ci0gICAgICAgICAgICBpZiAoIG1fb2xkcG9zID49IDAgKQotICAgICAgICAgICAgICAgIHYt
PnVwZGF0ZUNvbnRlbnRzKCBtX29sZHBvcyArIHN3LzIgLSByQm9yZCAsIHIueSgpLCAyKnJCb3Jk
LCByLmhlaWdodCgpLCB0cnVlICk7Ci0gICAgICAgICAgICBpZiAoIHAgPj0gMCApeworICAgICAg
ICAgICAgaWYgKG1fb2xkcG9zID49IDApCisgICAgICAgICAgICAgICAgdi0+dXBkYXRlQ29udGVu
dHMobV9vbGRwb3MgKyBzdy8yIC0gckJvcmQsIHIueSgpLCAyICogckJvcmQsIHIuaGVpZ2h0KCks
IHRydWUgKTsKKyAgICAgICAgICAgIGlmIChwID49IDApIHsKICAgICAgICAgICAgICAgICBwYWlu
dC5zZXRQZW4oUGVuOjpOb1Blbik7Ci0gICAgICAgICAgICAgICAgcGFpbnQuc2V0QnJ1c2goIENv
bG9yOjpncmF5ICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0FscGhhKChmbG9hdCkw
LjI1KTsKLSAgICAgICAgICAgICAgICBwYWludC5kcmF3UmVjdCggcCAgKyBzdy8yIC0gckJvcmQs
IHIueSgpLCAyKnJCb3JkLCByLmhlaWdodCgpICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJh
d2luZ0FscGhhKChmbG9hdCkxLjApOworICAgICAgICAgICAgICAgIHBhaW50LnNldEJydXNoKENv
bG9yOjpncmF5KTsKKyAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoMC4yNSk7Cisg
ICAgICAgICAgICAgICAgcGFpbnQuZHJhd1JlY3QocCArIHN3LzIgLSByQm9yZCwgci55KCksIDIq
ckJvcmQsIHIuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgx
LjApOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCBt
X29sZHBvcyA+PSAwICkKLSAgICAgICAgICAgICAgICB2LT51cGRhdGVDb250ZW50cyggci54KCks
IG1fb2xkcG9zICsgc3cvMiAtIHJCb3JkLCByLndpZHRoKCksIDIqckJvcmQsIHRydWUgKTsKLSAg
ICAgICAgICAgIGlmICggcCA+PSAwICl7CisgICAgICAgICAgICBpZiAobV9vbGRwb3MgPj0gMCkK
KyAgICAgICAgICAgICAgICB2LT51cGRhdGVDb250ZW50cyhyLngoKSwgbV9vbGRwb3MgKyBzdy8y
IC0gckJvcmQsIHIud2lkdGgoKSwgMipyQm9yZCwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAocCA+
PSAwKSB7CiAgICAgICAgICAgICAgICAgcGFpbnQuc2V0UGVuKFBlbjo6Tm9QZW4pOwotICAgICAg
ICAgICAgICAgIHBhaW50LnNldEJydXNoKCBDb2xvcjo6Z3JheSApOwotICAgICAgICAgICAgICAg
IHYtPnNldERyYXdpbmdBbHBoYSgoZmxvYXQpMC4yNSk7Ci0gICAgICAgICAgICAgICAgcGFpbnQu
ZHJhd1JlY3QoIHIueCgpLCBwICsgc3cvMiAtIHJCb3JkLCByLndpZHRoKCksIDIqckJvcmQgKTsK
LSAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoKGZsb2F0KTEuMCk7CisgICAgICAg
ICAgICAgICAgcGFpbnQuc2V0QnJ1c2goQ29sb3I6OmdyYXkpOworICAgICAgICAgICAgICAgIHYt
PnNldERyYXdpbmdBbHBoYSgwLjI1KTsKKyAgICAgICAgICAgICAgICBwYWludC5kcmF3UmVjdChy
LngoKSwgcCArIHN3LzIgLSByQm9yZCwgci53aWR0aCgpLCAyICogckJvcmQpOworICAgICAgICAg
ICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgxLjApOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIG1fb2xkcG9zID0gcDsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAkocmV2aXNpb24gMTI0MjQp
CisrKyByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsOSAr
MzcyLDkgQEAKICAgICBQYWludEFjdGlvbiBwYWludEFjdGlvbiA9IGkucGhhc2U7CiAgICAgCiAg
ICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNpemUocGFpbnRBY3Rpb24pOwotICAgIGlmICgo
X3R5ID49IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkgKyBvcykgfHwgKF90eSArIGhlaWdodCgpIDw9
IGkuci55KCkgLSBvcykpCisgICAgaWYgKF90eSA+PSBpLnIuYm90dG9tKCkgKyBvcyB8fCBfdHkg
KyBoZWlnaHQoKSA8PSBpLnIueSgpIC0gb3MpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoKF90
eCA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkgKyBvcykgfHwgKF90eCArIHdpZHRoKCkgPD0gaS5y
LngoKSAtIG9zKSkKKyAgICBpZiAoX3R4ID49IGkuci5yaWdodCgpICsgb3MgfHwgX3R4ICsgd2lk
dGgoKSA8PSBpLnIueCgpIC0gb3MpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICgocGFpbnRB
Y3Rpb24gPT0gUGFpbnRBY3Rpb25CbG9ja0JhY2tncm91bmQgfHwgcGFpbnRBY3Rpb24gPT0gUGFp
bnRBY3Rpb25DaGlsZEJsb2NrQmFja2dyb3VuZCkKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfYm94
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2JveC5jcHAJKHJldmlzaW9uIDEy
NDI0KQorKysgcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQs
MzEgKzIzNCwzMCBAQAogfQogCiAvLyBIaXQgVGVzdGluZwotYm9vbCBSZW5kZXJCb3g6Om5vZGVB
dFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50IF90eSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24p
Citib29sIFJlbmRlckJveDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCB4LCBpbnQg
eSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQogeworICAgIHR4ICs9IG1f
eDsKKyAgICB0eSArPSBtX3k7CisKICAgICAvLyBDaGVjayBraWRzIGZpcnN0LgotICAgIF90eCAr
PSBtX3g7Ci0gICAgX3R5ICs9IG1feTsKICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBs
YXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNraXAgb3ZlciBpbmxpbmUgZmxvd3MsIHNpbmNl
IHRoZXkgY2FuIHNob3cgdXAgaW5zaWRlIHRhYmxlIHJvd3MgYXQgdGhlIG1vbWVudCAoYSBkZW1v
dGVkIGlubGluZSA8Zm9ybT4gZm9yIGV4YW1wbGUpLiAgSWYgd2UgZXZlciBpbXBsZW1lbnQgYQot
ICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBoaXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3Vs
ZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbnl3YXkpLCB0aGVuIHdlIGNhbiByZW1vdmUg
dGhpcyBjaGVjay4KLSAgICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5s
aW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2ludChpbmZvLCBfeCwgX3ksIF90eCwgX3R5LCBo
aXRUZXN0QWN0aW9uKSkgeworICAgICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBza2lwIG92ZXIg
aW5saW5lIGZsb3dzLCBzaW5jZSB0aGV5IGNhbiBzaG93IHVwIGluc2lkZSB0YWJsZSByb3dzCisg
ICAgICAgIC8vIGF0IHRoZSBtb21lbnQgKGEgZGVtb3RlZCBpbmxpbmUgPGZvcm0+IGZvciBleGFt
cGxlKS4gSWYgd2UgZXZlciBpbXBsZW1lbnQgYQorICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBo
aXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3VsZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29u
cyBhbnl3YXkpLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiByZW1vdmUgdGhpcyBjaGVjay4KKyAg
ICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5saW5lRmxvdygpICYmIGNo
aWxkLT5ub2RlQXRQb2ludChpbmZvLCB4LCB5LCB0eCwgdHksIGFjdGlvbikpIHsKICAgICAgICAg
ICAgIHNldElubmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQogICAgIAotICAgIC8vIENoZWNrIG91ciBib3VuZHMgbmV4dC4gIEZvciB0aGlz
IHB1cnBvc2UgYWx3YXlzIGFzc3VtZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKKyAg
ICAvLyBDaGVjayBvdXIgYm91bmRzIG5leHQuIEZvciB0aGlzIHB1cnBvc2UgYWx3YXlzIGFzc3Vt
ZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKICAgICAvLyBmb3JlZ3JvdW5kIHBoYXNl
ICh3aGljaCBpcyB0cnVlIGZvciByZXBsYWNlZCBlbGVtZW50cyBsaWtlIGltYWdlcykuCi0gICAg
aWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZvcmVncm91bmQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBJbnRSZWN0IGJvdW5kc1JlY3QoX3R4LCBfdHksIG1fd2lkdGgsIG1f
aGVpZ2h0KTsKLSAgICBpZiAoYm91bmRzUmVjdC5jb250YWlucyhfeCwgX3kpKSB7CisgICAgaWYg
KGFjdGlvbiA9PSBIaXRUZXN0Rm9yZWdyb3VuZCAmJiBJbnRSZWN0KHR4LCB0eSwgbV93aWR0aCwg
bV9oZWlnaHQpLmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIHNldElubmVyTm9kZShpbmZvKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBA
IC0zMzYsNyArMzM1LDcgQEAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7CiAgICAg
aW50IG1oOwogICAgIGlmIChfdHkgPCBpLnIueSgpKQotICAgICAgICBtaD0ga01heCgwLCBoIC0g
KGkuci55KCkgLSBfdHkpKTsKKyAgICAgICAgbWggPSBrTWF4KDAsIGggLSAoaS5yLnkoKSAtIF90
eSkpOwogICAgIGVsc2UKICAgICAgICAgbWggPSBrTWluKGkuci5oZWlnaHQoKSwgaCk7CiAKQEAg
LTUwMiw3ICs1MDEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY3ggKz0geFBvc2l0aW9u
OwogICAgICAgICAgICAgICAgICAgICAgICAgY3cgLT0geFBvc2l0aW9uOwogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc3ggPSAgcGl4dyAtICh4
UG9zaXRpb24gJSBwaXh3ICk7CisgICAgICAgICAgICAgICAgICAgICAgICBzeCA9IHBpeHcgLSAo
eFBvc2l0aW9uICUgcGl4dyApOwogICAgICAgICAgICAgICAgICAgICAgICAgc3ggLT0gbGVmdCAl
IHBpeHc7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC01NTAs
MzIgKzU0OSwzMSBAQAogICAgICAgICAgICAgRUJhY2tncm91bmRSZXBlYXQgYmdyID0gYmdMYXll
ci0+YmFja2dyb3VuZFJlcGVhdCgpOwogICAgICAgICAgICAgaWYoIChiZ3IgPT0gTk9fUkVQRUFU
IHx8IGJnciA9PSBSRVBFQVRfWSkgJiYgcHcgPiBwaXh3ICkgewogICAgICAgICAgICAgICAgIGN3
ID0gcGl4dzsKLSAgICAgICAgICAgICAgICBjeCA9IHZyLngoKSArIGJnTGF5ZXItPmJhY2tncm91
bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdy1waXh3KTsKKyAgICAgICAgICAgICAgICBjeCA9IHZy
LngoKSArIGJnTGF5ZXItPmJhY2tncm91bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdyAtIHBpeHcp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjdyA9IHB3OwogICAgICAg
ICAgICAgICAgIGN4ID0gdnIueCgpOwotICAgICAgICAgICAgICAgIGlmIChwaXh3ID4gMCkgewot
ICAgICAgICAgICAgICAgICAgICBzeCA9ICBwaXh3IC0gKChiZ0xheWVyLT5iYWNrZ3JvdW5kWFBv
c2l0aW9uKCkubWluV2lkdGgocHctcGl4dykpICUgcGl4dyApOwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAocGl4dyA+IDApCisgICAgICAgICAgICAgICAgICAgIHN4ID0g
cGl4dyAtIGJnTGF5ZXItPmJhY2tncm91bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdyAtIHBpeHcp
ICUgcGl4dzsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYoIChiZ3IgPT0gTk9fUkVQ
RUFUIHx8IGJnciA9PSBSRVBFQVRfWCkgJiYgcGggPiBwaXhoICkgewogICAgICAgICAgICAgICAg
IGNoID0gcGl4aDsKLSAgICAgICAgICAgICAgICBjeSA9IHZyLnkoKSArIGJnTGF5ZXItPmJhY2tn
cm91bmRZUG9zaXRpb24oKS5taW5XaWR0aChwaC1waXhoKTsKKyAgICAgICAgICAgICAgICBjeSA9
IHZyLnkoKSArIGJnTGF5ZXItPmJhY2tncm91bmRZUG9zaXRpb24oKS5taW5XaWR0aChwaCAtIHBp
eGgpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjaCA9IHBoOwogICAg
ICAgICAgICAgICAgIGN5ID0gdnIueSgpOwotICAgICAgICAgICAgICAgIGlmIChwaXhoID4gMCkg
ewotICAgICAgICAgICAgICAgICAgICBzeSA9IHBpeGggLSAoKGJnTGF5ZXItPmJhY2tncm91bmRZ
UG9zaXRpb24oKS5taW5XaWR0aChwaC1waXhoKSkgJSBwaXhoICk7Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChwaXhoID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3kg
PSBwaXhoIC0gYmdMYXllci0+YmFja2dyb3VuZFlQb3NpdGlvbigpLm1pbldpZHRoKHBoIC0gcGl4
aCkgJSBwaXhoOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBJbnRSZWN0IGZpeChjeCxj
eSxjdyxjaCk7Ci0gICAgICAgICAgICBJbnRSZWN0IGVsZShfdHgsX3R5LHcsaCk7Ci0gICAgICAg
ICAgICBJbnRSZWN0IGIgPSBmaXguaW50ZXJzZWN0KGVsZSk7Ci0gICAgICAgICAgICBzeCs9Yi54
KCktY3g7Ci0gICAgICAgICAgICBzeSs9Yi55KCktY3k7Ci0gICAgICAgICAgICBjeD1iLngoKTtj
eT1iLnkoKTtjdz1iLndpZHRoKCk7Y2g9Yi5oZWlnaHQoKTsKKyAgICAgICAgICAgIEludFJlY3Qg
YiA9IGludGVyc2VjdGlvbihJbnRSZWN0KGN4LCBjeSwgY3csIGNoKSwgSW50UmVjdChfdHgsIF90
eSwgdywgaCkpOworICAgICAgICAgICAgc3ggKz0gYi54KCkgLSBjeDsKKyAgICAgICAgICAgIHN5
ICs9IGIueSgpIC0gY3k7CisgICAgICAgICAgICBjeCA9IGIueCgpOworICAgICAgICAgICAgY3kg
PSBiLnkoKTsKKyAgICAgICAgICAgIGN3ID0gYi53aWR0aCgpOworICAgICAgICAgICAgY2ggPSBi
LmhlaWdodCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGN3PjAgJiYgY2g+MCkKQEAgLTc4
NywxMSArNzg1LDEwIEBACiAgICAgICAgICAgICBJbnRSZWN0IGJveFJlY3QoMCwgMCwgby0+bGF5
ZXIoKS0+d2lkdGgoKSwgby0+bGF5ZXIoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgby0+bGF5
ZXIoKS0+c3VidHJhY3RTY3JvbGxPZmZzZXQoeCx5KTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Ny
b2xsL2hpZGRlbi4KICAgICAgICAgICAgIEludFJlY3QgcmVwYWludFJlY3QoeCwgeSwgci53aWR0
aCgpLCByLmhlaWdodCgpKTsKLSAgICAgICAgICAgIHIgPSByZXBhaW50UmVjdC5pbnRlcnNlY3Qo
Ym94UmVjdCk7CisgICAgICAgICAgICByID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hS
ZWN0KTsKICAgICAgICAgICAgIGlmIChyLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICByLnNldFgoeCk7CiAgICAgICAgICAgICByLnNldFkoeSk7CiAgICAgICAgIH0KSW5kZXg6
IHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRl
cl9mbG93LmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsNyArMzcwLDcgQEAKICAgICBpbnQgeVBvcyA9IGZpcnN0
TGluZUJveCgpLT5yb290KCktPnNlbGVjdGlvblRvcCgpIC0gbWF4aW1hbE91dGxpbmVTaXplKGku
cGhhc2UpOwogICAgIGludCBoID0gbWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpICsgbGFzdExp
bmVCb3goKS0+cm9vdCgpLT5zZWxlY3Rpb25Ub3AoKSArIGxhc3RMaW5lQm94KCktPnJvb3QoKS0+
c2VsZWN0aW9uSGVpZ2h0KCkgLSB5UG9zOwogICAgIHlQb3MgKz0gX3R5OwotICAgIGlmICgoeVBv
cyA+PSBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoeVBvcyArIGggPD0gaS5yLnkoKSkpCisg
ICAgaWYgKHlQb3MgPj0gaS5yLmJvdHRvbSgpIHx8IHlQb3MgKyBoIDw9IGkuci55KCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFNlZSBpZiBvdXIgcm9vdCBsaW5lcyBpbnRlcnNlY3Qgd2l0
aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdlIHBhaW50CkBAIC0zODYsNyArMzg2LDcg
QEAKICAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCBzcGxpdHRpbmcgYSBsaW5lIHZlcnRpY2Fs
bHksIGJ1dCBvbmx5IGlmIGl0J3MgbGVzcyB0aGFuIHRoZSBoZWlnaHQKICAgICAgICAgICAgIC8v
IG9mIHRoZSBlbnRpcmUgcGFnZS4KICAgICAgICAgICAgIGlmIChjdXJyLT5yb290KCktPmJvdHRv
bU92ZXJmbG93KCkgLSBjdXJyLT5yb290KCktPnRvcE92ZXJmbG93KCkgPD0gYy0+cHJpbnRSZWN0
KCkuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoX3R5ICsgY3Vyci0+cm9vdCgpLT5i
b3R0b21PdmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkueSgpICsgYy0+cHJpbnRSZWN0KCkuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoX3R5ICsgY3Vyci0+cm9vdCgpLT5ib3R0b21P
dmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkuYm90dG9tKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+dG9wT3ZlcmZsb3coKSA8IGMtPnRydW5jYXRlZEF0
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjLT5zZXRCZXN0VHJ1bmNhdGVkQXQoX3R5ICsg
Y3Vyci0+cm9vdCgpLT50b3BPdmVyZmxvdygpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAg
Ly8gSWYgd2Ugd2VyZSBhYmxlIHRvIHRydW5jYXRlLCBkb24ndCBwYWludC4KQEAgLTQwMCw3ICs0
MDAsNyBAQAogICAgICAgICBpbnQgYm90dG9tID0ga01heChjdXJyLT5yb290KCktPnNlbGVjdGlv
blRvcCgpICsgY3Vyci0+cm9vdCgpLT5zZWxlY3Rpb25IZWlnaHQoKSwgY3Vyci0+cm9vdCgpLT5i
b3R0b21PdmVyZmxvdygpKSArIG1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKTsKICAgICAgICAg
aCA9IGJvdHRvbSAtIHRvcDsKICAgICAgICAgeVBvcyA9IF90eSArIHRvcDsKLSAgICAgICAgaWYg
KCh5UG9zIDwgaS5yLnkoKSArIGkuci5oZWlnaHQoKSkgJiYgKHlQb3MgKyBoID4gaS5yLnkoKSkp
CisgICAgICAgIGlmICh5UG9zIDwgaS5yLmJvdHRvbSgpICYmIHlQb3MgKyBoID4gaS5yLnkoKSkK
ICAgICAgICAgICAgIGN1cnItPnBhaW50KGksIF90eCwgX3R5KTsKICAgICB9CiAKQEAgLTQ4Mywx
MiArNDgzLDEyIEBACiAgICAgICAgICAgICAvLyBjYi0+aGVpZ2h0KCkgaXMgaW5hY2N1cmF0ZSBp
ZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9mIHxjYnwsIHNvIHVzZSB0aGUKICAg
ICAgICAgICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBz
aXplIGlzIHdyb25nLCB0aGUgbGF5ZXIgaXRzZWxmIHdpbGwgcmVwYWludAogICAgICAgICAgICAg
Ly8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAgICAgICAgICAgaW50IHggPSBy
LmxlZnQoKTsKLSAgICAgICAgICAgIGludCB5ID0gci50b3AoKTsKKyAgICAgICAgICAgIGludCB4
ID0gci54KCk7CisgICAgICAgICAgICBpbnQgeSA9IHIueSgpOwogICAgICAgICAgICAgSW50UmVj
dCBib3hSZWN0KDAsIDAsIGNiLT5sYXllcigpLT53aWR0aCgpLCBjYi0+bGF5ZXIoKS0+aGVpZ2h0
KCkpOwotICAgICAgICAgICAgY2ItPmxheWVyKCktPnN1YnRyYWN0U2Nyb2xsT2Zmc2V0KHgseSk7
IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisgICAgICAgICAgICBjYi0+bGF5
ZXIoKS0+c3VidHJhY3RTY3JvbGxPZmZzZXQoeCwgeSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Nj
cm9sbC9oaWRkZW4uCiAgICAgICAgICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0KHgsIHksIHIud2lk
dGgoKSwgci5oZWlnaHQoKSk7Ci0gICAgICAgICAgICByID0gcmVwYWludFJlY3QuaW50ZXJzZWN0
KGJveFJlY3QpOworICAgICAgICAgICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94
UmVjdCk7CiAgICAgICAgIH0KICAgICAgICAgY2ItPmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0
KHIpOwogICAgICAgICAKQEAgLTQ5NiwxMyArNDk2LDEzIEBACiAgICAgICAgICAgICBmb3IgKFJl
bmRlck9iamVjdCogY3VyciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBh
aW50UmVjdFdpdGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICAgICAgciA9IHIudW5pdGUo
Y2hpbGRSZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgci51bml0ZShjaGlsZFJlY3QpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKGNvbnRpbnVhdGlvbigpICYmICFjb250aW51YXRpb24oKS0+aXNJbmxpbmUoKSkgewogICAg
ICAgICAgICAgICAgIEludFJlY3QgY29udFJlY3QgPSBjb250aW51YXRpb24oKS0+Z2V0QWJzb2x1
dGVSZXBhaW50UmVjdFdpdGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0
ZShjb250UmVjdCk7CisgICAgICAgICAgICAgICAgci51bml0ZShjb250UmVjdCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkBAIC02OTYsMTEgKzY5NiwxMSBAQAogICAgIFFQ
dHJMaXN0IDxJbnRSZWN0PiByZWN0czsKICAgICByZWN0cy5zZXRBdXRvRGVsZXRlKHRydWUpOwog
ICAgIAotICAgIHJlY3RzLmFwcGVuZChuZXcgSW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMu
YXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICBmb3IgKElubGluZVJ1bkJveCogY3VyciA9IGZpcnN0
TGluZUJveCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkgewogICAgICAgICBy
ZWN0cy5hcHBlbmQobmV3IEludFJlY3QoY3Vyci0+eFBvcygpLCBjdXJyLT55UG9zKCksIGN1cnIt
PndpZHRoKCksIGN1cnItPmhlaWdodCgpKSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChuZXcg
SW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IHJlY3RzLmNvdW50KCkgLSAxOyBpKysp
CiAgICAgICAgIHBhaW50T3V0bGluZUZvckxpbmUocCwgX3R4LCBfdHksICpyZWN0cy5hdChpLTEp
LCAqcmVjdHMuYXQoaSksICpyZWN0cy5hdChpKzEpKTsKQEAgLTcxNiw3NyArNzE2LDc3IEBACiAg
ICAgCiAgICAgaW50IG9mZnNldCA9IHN0eWxlKCktPm91dGxpbmVPZmZzZXQoKTsKICAgICAKLSAg
ICBpbnQgdCA9IHR5ICsgdGhpc2xpbmUudG9wKCkgLSBvZmZzZXQ7Ci0gICAgaW50IGwgPSB0eCAr
IHRoaXNsaW5lLmxlZnQoKSAtIG9mZnNldDsKLSAgICBpbnQgYiA9IHR5ICsgdGhpc2xpbmUuYm90
dG9tKCkgKyBvZmZzZXQgKyAxOwotICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdodCgpICsg
b2Zmc2V0ICsgMTsKKyAgICBpbnQgdCA9IHR5ICsgdGhpc2xpbmUueSgpIC0gb2Zmc2V0OworICAg
IGludCBsID0gdHggKyB0aGlzbGluZS54KCkgLSBvZmZzZXQ7CisgICAgaW50IGIgPSB0eSArIHRo
aXNsaW5lLmJvdHRvbSgpICsgb2Zmc2V0OworICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdo
dCgpICsgb2Zmc2V0OwogICAgIAogICAgIC8vIGxlZnQgZWRnZQogICAgIGRyYXdCb3JkZXIocCwK
ICAgICAgICAgICAgICAgIGwgLSBvdywKLSAgICAgICAgICAgICAgIHQgLSAobGFzdGxpbmUuaXNF
bXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSB8fCBsYXN0bGluZS5y
aWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogMCksCisgICAgICAgICAgICAgICB0IC0g
KGxhc3RsaW5lLmlzRW1wdHkoKSB8fCB0aGlzbGluZS54KCkgPCBsYXN0bGluZS54KCkgfHwgKGxh
c3RsaW5lLnJpZ2h0KCkgLSAxKSA8PSB0aGlzbGluZS54KCkgPyBvdyA6IDApLAogICAgICAgICAg
ICAgICAgbCwKLSAgICAgICAgICAgICAgIGIgKyAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNs
aW5lLmxlZnQoKSA8PSBuZXh0bGluZS5sZWZ0KCkgfHwgbmV4dGxpbmUucmlnaHQoKSA8PSB0aGlz
bGluZS5sZWZ0KCkgPyBvdyA6IDApLAorICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0Vt
cHR5KCkgfHwgdGhpc2xpbmUueCgpIDw9IG5leHRsaW5lLngoKSB8fCAobmV4dGxpbmUucmlnaHQo
KSAtIDEpIDw9IHRoaXNsaW5lLngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICBCU0xlZnQs
CiAgICAgICAgICAgICAgICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAg
ICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQo
KSB8fCBsYXN0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKLSAg
ICAgICAgICAgICAgIChuZXh0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUubGVmdCgpIDw9IG5l
eHRsaW5lLmxlZnQoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93
IDogLW93KSwKKyAgICAgICAgICAgICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUu
eCgpIDwgbGFzdGxpbmUueCgpIHx8IChsYXN0bGluZS5yaWdodCgpIC0gMSkgPD0gdGhpc2xpbmUu
eCgpID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCB0
aGlzbGluZS54KCkgPD0gbmV4dGxpbmUueCgpIHx8IChuZXh0bGluZS5yaWdodCgpIC0gMSkgPD0g
dGhpc2xpbmUueCgpID8gb3cgOiAtb3cpLAogICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAg
ICAgLy8gcmlnaHQgZWRnZQogICAgIGRyYXdCb3JkZXIocCwKICAgICAgICAgICAgICAgIHIsCi0g
ICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBsYXN0bGluZS5yaWdodCgp
IDwgdGhpc2xpbmUucmlnaHQoKSB8fCB0aGlzbGluZS5yaWdodCgpIDw9IGxhc3RsaW5lLmxlZnQo
KSA/IG93IDogMCksCisgICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBs
YXN0bGluZS5yaWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSB8fCAodGhpc2xpbmUucmlnaHQoKSAt
IDEpIDw9IGxhc3RsaW5lLngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICByICsgb3csCi0g
ICAgICAgICAgICAgICBiICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgp
IDw9IHRoaXNsaW5lLnJpZ2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0
KCkgPyBvdyA6IDApLAorICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0VtcHR5KCkgfHwg
bmV4dGxpbmUucmlnaHQoKSA8PSB0aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgp
IC0gMSkgPD0gbmV4dGxpbmUueCgpID8gb3cgOiAwKSwKICAgICAgICAgICAgICAgIEJTUmlnaHQs
CiAgICAgICAgICAgICAgICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAg
ICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdo
dCgpIHx8IHRoaXNsaW5lLnJpZ2h0KCkgPD0gbGFzdGxpbmUubGVmdCgpID8gb3cgOiAtb3cpLAot
ICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9
IHRoaXNsaW5lLnJpZ2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0KCkg
PyBvdyA6IC1vdyksCisgICAgICAgICAgICAgICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3Rs
aW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgpIC0gMSkg
PD0gbGFzdGxpbmUueCgpID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlz
RW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLnJpZ2h0KCkgfHwgKHRoaXNs
aW5lLnJpZ2h0KCkgLSAxKSA8PSBuZXh0bGluZS54KCkgPyBvdyA6IC1vdyksCiAgICAgICAgICAg
ICAgICB0cnVlKTsKICAgICAvLyB1cHBlciBlZGdlCi0gICAgaWYgKCB0aGlzbGluZS5sZWZ0KCkg
PCBsYXN0bGluZS5sZWZ0KCkpCisgICAgaWYgKHRoaXNsaW5lLngoKSA8IGxhc3RsaW5lLngoKSkK
ICAgICAgICAgZHJhd0JvcmRlcihwLAogICAgICAgICAgICAgICAgICAgIGwgLSBvdywKICAgICAg
ICAgICAgICAgICAgICB0IC0gb3csCi0gICAgICAgICAgICAgICAgICAga01pbihyK293LCAobGFz
dGxpbmUuaXNWYWxpZCgpPyB0eCtsYXN0bGluZS5sZWZ0KCkgOiAxMDAwMDAwKSksCisgICAgICAg
ICAgICAgICAgICAga01pbihyK293LCAobGFzdGxpbmUuaXNFbXB0eSgpID8gMTAwMDAwMCA6IHR4
ICsgbGFzdGxpbmUueCgpKSksCiAgICAgICAgICAgICAgICAgICAgdCAsCiAgICAgICAgICAgICAg
ICAgICAgQlNUb3AsIG9jLCBzdHlsZSgpLT5jb2xvcigpLCBvcywKICAgICAgICAgICAgICAgICAg
ICBvdywKLSAgICAgICAgICAgICAgICAgICAobGFzdGxpbmUuaXNWYWxpZCgpICYmIHR4K2xhc3Rs
aW5lLmxlZnQoKSsxPHIrb3cgPyAtb3cgOiBvdyksCisgICAgICAgICAgICAgICAgICAgKCFsYXN0
bGluZS5pc0VtcHR5KCkgJiYgdHggKyBsYXN0bGluZS54KCkgKyAxIDwgciArIG93KSA/IC1vdyA6
IG93LAogICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgIAogICAgIGlmIChsYXN0bGluZS5y
aWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSkKICAgICAgICAgZHJhd0JvcmRlcihwLAotICAgICAg
ICAgICAgICAgICAgIGtNYXgobGFzdGxpbmUuaXNWYWxpZCgpP3R4ICsgbGFzdGxpbmUucmlnaHQo
KSArIDE6LTEwMDAwMDAsIGwgLSBvdyksCisgICAgICAgICAgICAgICAgICAga01heChsYXN0bGlu
ZS5pc0VtcHR5KCkgPyAtMTAwMDAwMCA6IHR4ICsgbGFzdGxpbmUucmlnaHQoKSwgbCAtIG93KSwK
ICAgICAgICAgICAgICAgICAgICB0IC0gb3csCiAgICAgICAgICAgICAgICAgICAgciArIG93LAog
ICAgICAgICAgICAgICAgICAgIHQgLAogICAgICAgICAgICAgICAgICAgIEJTVG9wLCBvYywgc3R5
bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAgICAgKGxhc3RsaW5lLmlzVmFsaWQo
KSAmJiBsLW93IDwgdHgrbGFzdGxpbmUucmlnaHQoKSsxID8gLW93IDogb3cpLAorICAgICAgICAg
ICAgICAgICAgICghbGFzdGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgbGFzdGxpbmUu
cmlnaHQoKSA/IC1vdyA6IG93LAogICAgICAgICAgICAgICAgICAgIG93LAogICAgICAgICAgICAg
ICAgICAgIHRydWUpOwogICAgIAogICAgIC8vIGxvd2VyIGVkZ2UKLSAgICBpZiAoIHRoaXNsaW5l
LmxlZnQoKSA8IG5leHRsaW5lLmxlZnQoKSkKKyAgICBpZiAodGhpc2xpbmUueCgpIDwgbmV4dGxp
bmUueCgpKQogICAgICAgICBkcmF3Qm9yZGVyKHAsCiAgICAgICAgICAgICAgICAgICAgbCAtIG93
LAogICAgICAgICAgICAgICAgICAgIGIsCi0gICAgICAgICAgICAgICAgICAga01pbihyK293LCBu
ZXh0bGluZS5pc1ZhbGlkKCk/IHR4K25leHRsaW5lLmxlZnQoKSsxIDogMTAwMDAwMCksCisgICAg
ICAgICAgICAgICAgICAga01pbihyICsgb3csICFuZXh0bGluZS5pc0VtcHR5KCkgPyB0eCArIG5l
eHRsaW5lLngoKSArIDEgOiAxMDAwMDAwKSwKICAgICAgICAgICAgICAgICAgICBiICsgb3csCiAg
ICAgICAgICAgICAgICAgICAgQlNCb3R0b20sIG9jLCBzdHlsZSgpLT5jb2xvcigpLCBvcywKICAg
ICAgICAgICAgICAgICAgICBvdywKLSAgICAgICAgICAgICAgICAgICAobmV4dGxpbmUuaXNWYWxp
ZCgpICYmIHR4K25leHRsaW5lLmxlZnQoKSsxPHIrb3c/IC1vdyA6IG93KSwKKyAgICAgICAgICAg
ICAgICAgICAoIW5leHRsaW5lLmlzRW1wdHkoKSAmJiB0eCArIG5leHRsaW5lLngoKSArIDEgPCBy
ICsgb3cpID8gLW93IDogb3csCiAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAgICAg
aWYgKG5leHRsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdodCgpKQogICAgICAgICBkcmF3Qm9y
ZGVyKHAsCi0gICAgICAgICAgICAgICAgICAga01heChuZXh0bGluZS5pc1ZhbGlkKCk/dHgrbmV4
dGxpbmUucmlnaHQoKSsxOi0xMDAwMDAwICwgbC1vdyksCisgICAgICAgICAgICAgICAgICAga01h
eCghbmV4dGxpbmUuaXNFbXB0eSgpID8gdHggKyBuZXh0bGluZS5yaWdodCgpIDogLTEwMDAwMDAs
IGwgLSBvdyksCiAgICAgICAgICAgICAgICAgICAgYiwKICAgICAgICAgICAgICAgICAgICByICsg
b3csCiAgICAgICAgICAgICAgICAgICAgYiArIG93LAogICAgICAgICAgICAgICAgICAgIEJTQm90
dG9tLCBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAgICAgKG5leHRs
aW5lLmlzVmFsaWQoKSAmJiBsLW93IDwgdHgrbmV4dGxpbmUucmlnaHQoKSsxPyAtb3cgOiBvdyks
CisgICAgICAgICAgICAgICAgICAgKCFuZXh0bGluZS5pc0VtcHR5KCkgJiYgbCAtIG93IDwgdHgg
KyBuZXh0bGluZS5yaWdodCgpKSA/IC1vdyA6IG93LAogICAgICAgICAgICAgICAgICAgIG93LAog
ICAgICAgICAgICAgICAgICAgIHRydWUpOwogfQpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl90aGVt
ZV9tYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl90aGVtZV9tYWMubW0JKHJl
dmlzaW9uIDEyNDI0KQorKysgcmVuZGVyaW5nL3JlbmRlcl90aGVtZV9tYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUwOCw3ICs1MDgsNyBAQAogICAgIGlmIChbYnV0dG9uIGJlemVsU3R5bGVdID09
IE5TUm91bmRlZEJlemVsU3R5bGUpIHsKICAgICAgICAgLy8gQ2VudGVyIHRoZSBidXR0b24gd2l0
aGluIHRoZSBhdmFpbGFibGUgc3BhY2UuCiAgICAgICAgIGlmIChpbmZsYXRlZFJlY3QuaGVpZ2h0
KCkgPiBzaXplLmhlaWdodCgpKSB7Ci0gICAgICAgICAgICBpbmZsYXRlZFJlY3Quc2V0WChpbmZs
YXRlZFJlY3QueCgpICsgKGluZmxhdGVkUmVjdC5oZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCkpLzIp
OworICAgICAgICAgICAgaW5mbGF0ZWRSZWN0LnNldFkoaW5mbGF0ZWRSZWN0LnkoKSArIChpbmZs
YXRlZFJlY3QuaGVpZ2h0KCkgLSBzaXplLmhlaWdodCgpKSAvIDIpOwogICAgICAgICAgICAgaW5m
bGF0ZWRSZWN0LnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKICAgICAgICAgfQogICAgICAgICAK
SW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L3JlbmRlcl9saXN0LmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJpbmcvcmVuZGVyX2xp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzYsNyArMzc2LDcgQEAKICAgICBfdHggKz0gbV94
OwogICAgIF90eSArPSBtX3k7CiAKLSAgICBpZiAoKF90eSA+IGkuci55KCkgKyBpLnIuaGVpZ2h0
KCkpIHx8IChfdHkgKyBtX2hlaWdodCA8IGkuci55KCkpKQorICAgIGlmIChfdHkgPiBpLnIuYm90
dG9tKCkgfHwgX3R5ICsgbV9oZWlnaHQgPCBpLnIueSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAoc2hvdWxkUGFpbnRCYWNrZ3JvdW5kT3JCb3JkZXIoKSkgCkBAIC00MTgsNyArNDE4LDcg
QEAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgICAgIFJlbmRlckNhbnZhcyog
YyA9IGNhbnZhcygpOwotICAgICAgICBpZiAoX3R5ICsgbV9oZWlnaHQgKyBwYWRkaW5nQm90dG9t
KCkgKyBib3JkZXJCb3R0b20oKSA+PSBjLT5wcmludFJlY3QoKS55KCkgKyBjLT5wcmludFJlY3Qo
KS5oZWlnaHQoKSkgeworICAgICAgICBpZiAoX3R5ICsgbV9oZWlnaHQgKyBwYWRkaW5nQm90dG9t
KCkgKyBib3JkZXJCb3R0b20oKSA+PSBjLT5wcmludFJlY3QoKS5ib3R0b20oKSkgewogICAgICAg
ICAgICAgaWYgKF90eSA8IGMtPnRydW5jYXRlZEF0KCkpCiAgICAgICAgICAgICAgICAgYy0+c2V0
QmVzdFRydW5jYXRlZEF0KF90eSwgdGhpcyk7CiAgICAgICAgICAgICAvLyBMZXQncyBwcmludCB0
aGlzIG9uIHRoZSBuZXh0IHBhZ2UuCkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgJKHJldmlzaW9uIDEyNDI0KQor
KysgcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTcgKzI3
LDE0IEBACiAjZGVmaW5lIHJlbmRlcl9vYmplY3RfaAogCiAjaW5jbHVkZSAiQ2FjaGVkT2JqZWN0
Q2xpZW50LmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiS1dRU2Nyb2xsQmFy
LmgiCiAjaW5jbHVkZSAiTm9kZUltcGwuaCIKICNpbmNsdWRlICJyZW5kZXJfc3R5bGUuaCIKICNp
bmNsdWRlICJ0ZXh0X2FmZmluaXR5LmgiCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8
a3htbGNvcmUvSGFzaFNldC5oPgogCiBjbGFzcyBDU1NTdHlsZTsKIGNsYXNzIEZyYW1lVmlldzsK
LWNsYXNzIFFNYXRyaXg7CiBjbGFzcyBRVGV4dFN0cmVhbTsKIGNsYXNzIFJlbmRlckFyZW5hOwog
CkBAIC02MywxMiArNjAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBZmZp
bmVUcmFuc2Zvcm07CiBjbGFzcyBDb2xvcjsKIGNsYXNzIENvbGxhcHNlZEJvcmRlclZhbHVlOwog
Y2xhc3MgRE9NU3RyaW5nOwogY2xhc3MgRG9jdW1lbnRJbXBsOwogY2xhc3MgRWxlbWVudEltcGw7
CiBjbGFzcyBFdmVudEltcGw7CitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBIVE1MQXJlYUVsZW1l
bnRJbXBsOwogY2xhc3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5lRmxvd0JveDsKQEAgLTc5LDcg
Kzc4LDYgQEAKIGNsYXNzIFJlbmRlckZsb3c7CiBjbGFzcyBSZW5kZXJGcmFtZVNldDsKIGNsYXNz
IFJlbmRlckxheWVyOwotY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJUYWJsZTsKIGNs
YXNzIFJlbmRlclRleHQ7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC0yNzgsMTEgKzI3Niwx
MSBAQAogI2lmIFNWR19TVVBQT1JUCiAgICAgdmlydHVhbCBib29sIGlzS0NhbnZhc0NvbnRhaW5l
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGF0
aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVsYXRp
dmVCQm94KGJvb2wgaW5jbHVkZVN0cm9rZSA9IHRydWUpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVj
dCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVsYXRpdmVCQm94KGJvb2wgaW5jbHVkZVN0
cm9rZSA9IHRydWUpIGNvbnN0OwogICAgIC8vIFdlIG1heSBldmVudHVhbGx5IHdhbnQgdG8gbWFr
ZSB0aGVzZSBub24tdmlydHVhbAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4
JikgeyBhc3NlcnQoZmFsc2UpOyB9Ci0gICAgdmlydHVhbCBRTWF0cml4IGFic29sdXRlVHJhbnNm
b3JtKCkgY29uc3Q7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0o
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgQWZmaW5l
VHJhbnNmb3JtJik7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zv
cm0oKSBjb25zdDsKICNlbmRpZgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRhYmxlKCkg
Y29uc3Q7CkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX2NhbnZhc2ltYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2NhbnZhc2ltYWdlLmNwcAkocmV2aXNpb24gMTI0MjQpCisr
KyByZW5kZXJpbmcvcmVuZGVyX2NhbnZhc2ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgw
LDExICsxODAsOCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGRyYXdTZWxlY3Rpb25U
aW50KSB7Ci0gICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNvbG9yKHApKTsKLSAgICAgICAg
SW50UmVjdCBzZWxSZWN0KHNlbGVjdGlvblJlY3QoKSk7Ci0gICAgICAgIHAtPmZpbGxSZWN0KHNl
bFJlY3QueCgpLCBzZWxSZWN0LnkoKSwgc2VsUmVjdC53aWR0aCgpLCBzZWxSZWN0LmhlaWdodCgp
LCBicnVzaCk7Ci0gICAgfQorICAgIGlmIChkcmF3U2VsZWN0aW9uVGludCkKKyAgICAgICAgcC0+
ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rpb25Db2xvcihwKSk7CiB9CiAKIHZvaWQg
UmVuZGVyQ2FudmFzSW1hZ2U6OmxheW91dCgpCkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX2ltYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAkocmV2aXNpb24g
MTI0MjQpCisrKyByZW5kZXJpbmcvcmVuZGVyX2ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjc1LDEyICsyNzUsOSBAQAogICAgICAgICB9CiAgICAgfQogICAgIGVsc2UgaWYgKG1faW1hZ2Ug
JiYgIW1faW1hZ2UtPmlzVHJhbnNwYXJlbnQoKSkgewotICAgICAgICBpZiAoIChjV2lkdGggIT0g
aW50cmluc2ljV2lkdGgoKSB8fCAgY0hlaWdodCAhPSBpbnRyaW5zaWNIZWlnaHQoKSkgJiYKLSAg
ICAgICAgICAgICBwaXgud2lkdGgoKSA+IDAgJiYgcGl4LmhlaWdodCgpID4gMCAmJiBtX2ltYWdl
LT52YWxpZF9yZWN0KCkuaXNWYWxpZCgpKQotICAgICAgICB7CisgICAgICAgIGlmICgoY1dpZHRo
ICE9IGludHJpbnNpY1dpZHRoKCkgfHwgY0hlaWdodCAhPSBpbnRyaW5zaWNIZWlnaHQoKSkgJiYg
cGl4LndpZHRoKCkgPiAwICYmIHBpeC5oZWlnaHQoKSA+IDAgJiYgIW1faW1hZ2UtPnZhbGlkX3Jl
Y3QoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIEludFNpemUgdGludFNpemU7Ci0gICAgICAg
ICAgICBpZiAocmVzaXplQ2FjaGUuaXNOdWxsKCkgJiYgY1dpZHRoICYmIGNIZWlnaHQpCi0gICAg
ICAgICAgICB7CisgICAgICAgICAgICBpZiAocmVzaXplQ2FjaGUuaXNOdWxsKCkgJiYgY1dpZHRo
ICYmIGNIZWlnaHQpIHsKICAgICAgICAgICAgICAgICBJbnRSZWN0IHNjYWxlZHJlY3QobV9pbWFn
ZS0+dmFsaWRfcmVjdCgpKTsKICAgICAgICAgICAgICAgICByZXNpemVDYWNoZSA9IHBpeDsKICAg
ICAgICAgICAgICAgICBzY2FsZWRyZWN0LnNldFdpZHRoKCAoIGNXaWR0aCpzY2FsZWRyZWN0Lndp
ZHRoKCkgKSAvIGludHJpbnNpY1dpZHRoKCkgKTsKQEAgLTI5Nyw0MSArMjk0LDMwIEBACiAgICAg
ICAgICAgICAgICAgaWYgKHJlc2l6ZUNhY2hlLnNpemUoKSAhPSBzKQogICAgICAgICAgICAgICAg
ICAgICByZXNpemVDYWNoZS5yZXNpemUocyk7CiAKLSAgICAgICAgICAgICAgICBwLT5kcmF3SW1h
Z2UoIEludFBvaW50KCBfdHggKyBsZWZ0Qm9yZGVyICsgbGVmdFBhZCwgX3R5ICsgdG9wQm9yZGVy
ICsgdG9wUGFkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemVDYWNoZSwg
c2NhbGVkcmVjdCApOworICAgICAgICAgICAgICAgIHAtPmRyYXdJbWFnZShJbnRQb2ludChfdHgg
KyBsZWZ0Qm9yZGVyICsgbGVmdFBhZCwgX3R5ICsgdG9wQm9yZGVyICsgdG9wUGFkKSwgcmVzaXpl
Q2FjaGUsIHNjYWxlZHJlY3QpOwogICAgICAgICAgICAgICAgIHRpbnRTaXplID0gczsKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcC0+ZHJhd0ltYWdlKCBJbnRQb2ludCgg
X3R4ICsgbGVmdEJvcmRlciArIGxlZnRQYWQsIF90eSArIHRvcEJvcmRlciArIHRvcFBhZCksIHJl
c2l6ZUNhY2hlICk7CiAgICAgICAgICAgICAgICAgdGludFNpemUgPSByZXNpemVDYWNoZS5yZWN0
KCkuc2l6ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGRyYXdTZWxlY3Rpb25U
aW50KSB7Ci0gICAgICAgICAgICAgICAgQnJ1c2ggYnJ1c2goc2VsZWN0aW9uQ29sb3IocCkpOwot
ICAgICAgICAgICAgICAgIEludFJlY3Qgc2VsUmVjdChzZWxlY3Rpb25SZWN0KCkpOwotICAgICAg
ICAgICAgICAgIHAtPmZpbGxSZWN0KHNlbFJlY3QueCgpLCBzZWxSZWN0LnkoKSwgc2VsUmVjdC53
aWR0aCgpLCBzZWxSZWN0LmhlaWdodCgpLCBicnVzaCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBq
dXN0IGFib3V0IHN3aXRjaGluZyBpbWFnZXMKLSAgICAgICAgICAgIC8vIHNvIHBpeCBjb250YWlu
cyB0aGUgb2xkIG9uZSAod2Ugd2FudCB0byBwYWludCksIGJ1dCBpbWFnZS0+dmFsaWRfcmVjdCBp
cyBzdGlsbCBpbnZhbGlkCisgICAgICAgICAgICBpZiAoZHJhd1NlbGVjdGlvblRpbnQpCisgICAg
ICAgICAgICAgICAgcC0+ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rpb25Db2xvcihw
KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBpbiB0aGUg
cHJvY2VzcyBvZiBzd2l0Y2hpbmcgaW1hZ2VzCisgICAgICAgICAgICAvLyBzbyBwaXggY29udGFp
bnMgdGhlIG9sZCBvbmUgKHdlIHdhbnQgdG8gcGFpbnQpLCBidXQgaW1hZ2UtPnZhbGlkX3JlY3Qg
aXMgc3RpbGwgZW1wdHkKICAgICAgICAgICAgIC8vIHNvIHVzZSBpbnRyaW5zaWMgU2l6ZSBpbnN0
ZWFkLgogICAgICAgICAgICAgLy8gIyMjIG1heWJlIG5vIHByb2dyZXNzaXZlIGxvYWRpbmcgZm9y
IHRoZSBzZWNvbmQgaW1hZ2UgPwotICAgICAgICAgICAgSW50UmVjdCByZWN0KG1faW1hZ2UtPnZh
bGlkX3JlY3QoKS5pc1ZhbGlkKCkgPyBtX2ltYWdlLT52YWxpZF9yZWN0KCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgOiBJbnRSZWN0KDAsIDAsIGludHJpbnNpY1dpZHRoKCksIGludHJpbnNpY0hl
aWdodCgpKSk7CisgICAgICAgICAgICBJbnRSZWN0IHJlY3QoIW1faW1hZ2UtPnZhbGlkX3JlY3Qo
KS5pc0VtcHR5KCkgPyBtX2ltYWdlLT52YWxpZF9yZWN0KCkgOiBJbnRSZWN0KDAsIDAsIGludHJp
bnNpY1dpZHRoKCksIGludHJpbnNpY0hlaWdodCgpKSk7CiAKICAgICAgICAgICAgIEludFBvaW50
IG9mZnMoIF90eCArIGxlZnRCb3JkZXIgKyBsZWZ0UGFkLCBfdHkgKyB0b3BCb3JkZXIgKyB0b3BQ
YWQpOwotICAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnRJbXBsKiBpID0gKGVsZW1lbnQoKSAm
JiBlbGVtZW50KCktPmhhc1RhZ05hbWUoaW1nVGFnKSkgPyBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VF
bGVtZW50SW1wbCo+KGVsZW1lbnQoKSkgOiAwOwotICAgICAgICAgICAgIGlmIChpICYmICFpLT5j
b21wb3NpdGVPcGVyYXRvcigpLmlzTnVsbCgpKXsKLSAgICAgICAgICAgICAgICBwLT5kcmF3SW1h
Z2UgKG9mZnMsIHBpeCwgcmVjdCwgaS0+Y29tcG9zaXRlT3BlcmF0b3IoKSk7Ci0gICAgICAgICAg
ICAgfQotICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICBwLT5kcmF3SW1hZ2Uo
b2ZmcywgcGl4LCByZWN0KTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgaWYgKGRyYXdT
ZWxlY3Rpb25UaW50KSB7Ci0gICAgICAgICAgICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNv
bG9yKHApKTsKLSAgICAgICAgICAgICAgICAgSW50UmVjdCBzZWxSZWN0KHNlbGVjdGlvblJlY3Qo
KSk7Ci0gICAgICAgICAgICAgICAgIHAtPmZpbGxSZWN0KHNlbFJlY3QueCgpLCBzZWxSZWN0Lnko
KSwgc2VsUmVjdC53aWR0aCgpLCBzZWxSZWN0LmhlaWdodCgpLCBicnVzaCk7Ci0gICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBIVE1MSW1hZ2VFbGVtZW50SW1wbCogaSA9IChlbGVtZW50KCkg
JiYgZWxlbWVudCgpLT5oYXNUYWdOYW1lKGltZ1RhZykpID8gc3RhdGljX2Nhc3Q8SFRNTEltYWdl
RWxlbWVudEltcGwqPihlbGVtZW50KCkpIDogMDsKKyAgICAgICAgICAgIGlmIChpICYmICFpLT5j
b21wb3NpdGVPcGVyYXRvcigpLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHAtPmRyYXdJbWFn
ZShvZmZzLCBwaXgsIHJlY3QsIGktPmNvbXBvc2l0ZU9wZXJhdG9yKCkpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHAtPmRyYXdJbWFnZShvZmZzLCBwaXgsIHJlY3QpOworICAg
ICAgICAgICAgaWYgKGRyYXdTZWxlY3Rpb25UaW50KQorICAgICAgICAgICAgICAgIHAtPmZpbGxS
ZWN0KHNlbGVjdGlvblJlY3QoKSwgc2VsZWN0aW9uQ29sb3IocCkpOwogICAgICAgICB9CiAgICAg
fQogfQpJbmRleDogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNDIsMTggKzEwNDIsMTEgQEAKIAogICAgIGlu
dCBhYnN4LCBhYnN5OwogICAgIGNiLT5hYnNvbHV0ZVBvc2l0aW9uKGFic3gsIGFic3kpOwotICAg
IFJlbmRlckxheWVyICpsYXllciA9IGNiLT5sYXllcigpOworICAgIFJlbmRlckxheWVyKiBsYXll
ciA9IGNiLT5sYXllcigpOwogICAgIGlmIChsYXllcikKICAgICAgICBsYXllci0+c3VidHJhY3RT
Y3JvbGxPZmZzZXQoYWJzeCwgYWJzeSk7IAotICAgIGZvciAoSW5saW5lVGV4dEJveCogYm94ID0g
Zmlyc3RUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAg
IEludFJlY3QgciA9IGJveC0+c2VsZWN0aW9uUmVjdChhYnN4LCBhYnN5LCBzdGFydFBvcywgZW5k
UG9zKTsKLSAgICAgICAgaWYgKCFyLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKHJlY3Qu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJlY3QgPSByOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHJlY3QgPSByZWN0LnVuaXRlKHIpOwotICAgICAgICB9Ci0gICAgfQor
ICAgIGZvciAoSW5saW5lVGV4dEJveCogYm94ID0gZmlyc3RUZXh0Qm94KCk7IGJveDsgYm94ID0g
Ym94LT5uZXh0VGV4dEJveCgpKQorICAgICAgICByZWN0LnVuaXRlKGJveC0+c2VsZWN0aW9uUmVj
dChhYnN4LCBhYnN5LCBzdGFydFBvcywgZW5kUG9zKSk7CiAKICAgICByZXR1cm4gcmVjdDsKIH0K
SW5kZXg6IHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysgcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMTAgKzEyOCwxMCBAQAogICAgIGNv
bnN0IEZvbnQgKmYgPSB0ZXh0T2JqLT5odG1sRm9udChtX2ZpcnN0TGluZSk7CiAKICAgICBJbnRS
ZWN0IHIgPSBmLT5zZWxlY3Rpb25SZWN0Rm9yVGV4dCh0eCArIG1feCwgdHkgKyBzZWxUb3AsIHNl
bEhlaWdodCwgdGV4dE9iai0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLCB0ZXh0T2JqLT5zdHItPnMs
IHRleHRPYmotPnN0ci0+bCwgbV9zdGFydCwgbV9sZW4sIG1fdG9BZGQsIG1fcmV2ZXJzZWQsIG1f
ZGlyT3ZlcnJpZGUsIHNQb3MsIGVQb3MpOwotICAgIGlmIChyLmxlZnQoKSA+IHR4ICsgbV94ICsg
bV93aWR0aCkKKyAgICBpZiAoci54KCkgPiB0eCArIG1feCArIG1fd2lkdGgpCiAgICAgICAgIHIu
c2V0V2lkdGgoMCk7Ci0gICAgZWxzZSBpZiAoci5yaWdodCgpID4gdHggKyBtX3ggKyBtX3dpZHRo
KQotICAgICAgICByLnNldFdpZHRoKHR4ICsgbV94ICsgbV93aWR0aCAtIHIubGVmdCgpKTsKKyAg
ICBlbHNlIGlmIChyLnJpZ2h0KCkgLSAxID4gdHggKyBtX3ggKyBtX3dpZHRoKQorICAgICAgICBy
LnNldFdpZHRoKHR4ICsgbV94ICsgbV93aWR0aCAtIHIueCgpKTsKICAgICByZXR1cm4gcjsKIH0K
IApAQCAtMjM2LDggKzIzNiw3IEBACiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEludFJl
Y3QgcmVjdCh0eCArIG1feCwgdHkgKyBtX3ksIG1fd2lkdGgsIG1faGVpZ2h0KTsKLSAgICBpZiAo
bV90cnVuY2F0aW9uICE9IGNGdWxsVHJ1bmNhdGlvbiAmJiAKLSAgICAgICAgb2JqZWN0KCktPnN0
eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIHJlY3QuY29udGFpbnMoeCwgeSkpIHsK
KyAgICBpZiAobV90cnVuY2F0aW9uICE9IGNGdWxsVHJ1bmNhdGlvbiAmJiBvYmplY3QoKS0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgcmVjdC5jb250YWlucyh4LCB5KSkgewog
ICAgICAgICBvYmplY3QoKS0+c2V0SW5uZXJOb2RlKGkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CkBAIC0yNTIsNyArMjUxLDcgQEAKIAogICAgIGludCB4UG9zID0gdHggKyBtX3g7CiAg
ICAgaW50IHcgPSB3aWR0aCgpOwotICAgIGlmICgoeFBvcyA+PSBpLnIueCgpICsgaS5yLndpZHRo
KCkpIHx8ICh4UG9zICsgdyA8PSBpLnIueCgpKSkKKyAgICBpZiAoeFBvcyA+PSBpLnIucmlnaHQo
KSB8fCB4UG9zICsgdyA8PSBpLnIueCgpKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAg
IGJvb2wgaXNQcmludGluZyA9IGkucC0+cHJpbnRpbmcoKTsKQEAgLTY1OSw3ICs2NTgsOSBAQAog
ICAgIFJlbmRlclRleHQqIHRleHQgPSBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Kj4obV9vYmplY3Qp
OwogICAgIFJlbmRlclN0eWxlICpzdHlsZSA9IHRleHQtPnN0eWxlKG1fZmlyc3RMaW5lKTsKICAg
ICBjb25zdCBGb250KiBmID0gJnN0eWxlLT5odG1sRm9udCgpOwotICAgIHJldHVybiBmLT5jaGVj
a1NlbGVjdGlvblBvaW50KHRleHQtPnN0ci0+cywgdGV4dC0+c3RyLT5sLCBtX3N0YXJ0LCBtX2xl
biwgbV90b0FkZCwgdGV4dC0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLCBfeCAtIG1feCwgbV9yZXZl
cnNlZCA/IFFQYWludGVyOjpSVEwgOiBRUGFpbnRlcjo6TFRSLCBtX2Rpck92ZXJyaWRlIHx8IHN0
eWxlLT52aXN1YWxseU9yZGVyZWQoKSwgaW5jbHVkZVBhcnRpYWxHbHlwaHMpOworICAgIHJldHVy
biBmLT5jaGVja1NlbGVjdGlvblBvaW50KHRleHQtPnN0ci0+cywgdGV4dC0+c3RyLT5sLCBtX3N0
YXJ0LCBtX2xlbiwKKyAgICAgICAgbV90b0FkZCwgdGV4dC0+dGFiV2lkdGgoKSwgdGV4dFBvcygp
LCBfeCAtIG1feCwKKyAgICAgICAgbV9yZXZlcnNlZCA/IFFQYWludGVyOjpSVEwgOiBRUGFpbnRl
cjo6TFRSLCBtX2Rpck92ZXJyaWRlIHx8IHN0eWxlLT52aXN1YWxseU9yZGVyZWQoKSwgaW5jbHVk
ZVBhcnRpYWxHbHlwaHMpOwogfQogCiBpbnQgSW5saW5lVGV4dEJveDo6cG9zaXRpb25Gb3JPZmZz
ZXQoaW50IG9mZnNldCkgY29uc3QKQEAgLTY2OSw3ICs2NzAsOCBAQAogICAgIGludCBmcm9tID0g
bV9yZXZlcnNlZCA/IG9mZnNldCAtIG1fc3RhcnQgOiAwOwogICAgIGludCB0byA9IG1fcmV2ZXJz
ZWQgPyBtX2xlbiA6IG9mZnNldCAtIG1fc3RhcnQ7CiAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQg
dG8gYWRkIHJpZ2h0QmVhcmluZyBoZXJlPwotICAgIHJldHVybiBmLT5zZWxlY3Rpb25SZWN0Rm9y
VGV4dChtX3gsIDAsIDAsIHRleHQtPnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4dC0+c3RyLT5z
LCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLCBtX3RvQWRkLCBtX3JldmVyc2VkLCBtX2Rp
ck92ZXJyaWRlLCBmcm9tLCB0bykucmlnaHQoKTsKKyAgICByZXR1cm4gZi0+c2VsZWN0aW9uUmVj
dEZvclRleHQobV94LCAwLCAwLCB0ZXh0LT50YWJXaWR0aCgpLCB0ZXh0UG9zKCksIHRleHQtPnN0
ci0+cywgdGV4dC0+c3RyLT5sLCBtX3N0YXJ0LCBtX2xlbiwKKyAgICAgICAgbV90b0FkZCwgbV9y
ZXZlcnNlZCwgbV9kaXJPdmVycmlkZSwgZnJvbSwgdG8pLnJpZ2h0KCkgLSAxOwogfQogCiB9Cklu
ZGV4OiByZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9y
ZW5kZXJfZm9ybS5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysgcmVuZGVyaW5nL3JlbmRlcl9mb3Jt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQxLDcgKzQ0MSw3IEBACiAgICAgX3R5ICs9IHlPZmYg
LSBib3JkZXJUb3BFeHRyYSgpOwogCiAgICAgaW50IG15ID0ga01heChfdHksIGkuci55KCkpOwot
ICAgIGludCBlbmQgPSBrTWluKGkuci55KCkgKyBpLnIuaGVpZ2h0KCksICBfdHkgKyBoKTsKKyAg
ICBpbnQgZW5kID0ga01pbihpLnIuYm90dG9tKCksICBfdHkgKyBoKTsKICAgICBpbnQgbWggPSBl
bmQgLSBteTsKIAogICAgIHBhaW50QmFja2dyb3VuZChpLnAsIHN0eWxlKCktPmJhY2tncm91bmRD
b2xvcigpLCBzdHlsZSgpLT5iYWNrZ3JvdW5kTGF5ZXJzKCksIG15LCBtaCwgX3R4LCBfdHksIHcs
IGgpOwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJl
bmRlcmluZy9yZW5kZXJfb2JqZWN0LmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJpbmcv
cmVuZGVyX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIktXUUFjY09iamVjdENhY2hlLmgi
IApAQCAtNTYsNyArNTcsNyBAQAogI2luY2x1ZGUgPHFwYWludGVyLmg+CiAjaW5jbHVkZSAiUGVu
LmgiCiAjaW5jbHVkZSA8cXRleHRjb2RlYy5oPgotI2luY2x1ZGUgPHF3bWF0cml4Lmg+CisjaW5j
bHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMw
MSwzMyArMTMwMiwyOSBAQAogICAgIGFic29sdXRlUmVjdHMocmVjdHMsIHgsIHkpOwogCiAgICAg
aWYgKHJlY3RzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEludFJlY3QoMCwgMCwgMCwgMCk7
CisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKICAgICBRVmFsdWVMaXN0PEludFJlY3Q+OjpD
b25zdEl0ZXJhdG9yIGl0ID0gcmVjdHMuYmVnaW4oKTsKICAgICBJbnRSZWN0IHJlc3VsdCA9ICpp
dDsKLSAgICB3aGlsZSAoKytpdCAhPSByZWN0cy5lbmQoKSkgewotICAgICAgICByZXN1bHQgPSBy
ZXN1bHQudW5pdGUoKml0KTsKLSAgICB9CisgICAgd2hpbGUgKCsraXQgIT0gcmVjdHMuZW5kKCkp
CisgICAgICAgIHJlc3VsdC51bml0ZSgqaXQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZv
aWQgUmVuZGVyT2JqZWN0OjphZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihJbnRSZWN0JiByZXN1bHQp
CiB7Ci0gICAgaWYgKGxheWVyKCkpIHsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnVuaXRlKGFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCkpOwotICAgIH0KLSAgICBmb3IgKFJlbmRlck9iamVjdCog
Y3VycmVudCA9IGZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRT
aWJsaW5nKCkpIHsKKyAgICBpZiAobGF5ZXIoKSkKKyAgICAgICAgcmVzdWx0LnVuaXRlKGFic29s
dXRlQm91bmRpbmdCb3hSZWN0KCkpOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0g
Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkK
ICAgICAgICAgY3VycmVudC0+YWRkQWJzb2x1dGVSZWN0Rm9yTGF5ZXIocmVzdWx0KTsKLSAgICB9
CiB9CiAKIEludFJlY3QgUmVuZGVyT2JqZWN0OjpwYWludGluZ1Jvb3RSZWN0KEludFJlY3QmIHRv
cExldmVsUmVjdCkKIHsKICAgICBJbnRSZWN0IHJlc3VsdCA9IGFic29sdXRlQm91bmRpbmdCb3hS
ZWN0KCk7CiAgICAgdG9wTGV2ZWxSZWN0ID0gcmVzdWx0OwotICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBjdXJyZW50ID0gZmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4
dFNpYmxpbmcoKSkgeworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gZmlyc3RDaGls
ZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAg
Y3VycmVudC0+YWRkQWJzb2x1dGVSZWN0Rm9yTGF5ZXIocmVzdWx0KTsKLSAgICB9CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApAQCAtMTQ0MCwzMSArMTQzNywyOSBAQAogICAgIGlmIChuZXdCb3Vu
ZHMgPT0gb2xkQm91bmRzICYmICFzZWxmTmVlZHNMYXlvdXQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgYm9vbCBmdWxsUmVwYWludCA9IHNlbGZOZWVkc0xheW91dCgpIHx8IG5ld0Jv
dW5kcy54KCkgIT0gb2xkQm91bmRzLngoKSB8fAotICAgICAgICAgICAgICAgICAgICAgICBuZXdC
b3VuZHMueSgpICE9IG9sZEJvdW5kcy55KCkgfHwgCi0gICAgICAgICAgICAgICAgICAgICAgIG11
c3RSZXBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCk7CisgICAgYm9vbCBmdWxsUmVwYWludCA9IHNl
bGZOZWVkc0xheW91dCgpIHx8IG5ld0JvdW5kcy5sb2NhdGlvbigpICE9IG9sZEJvdW5kcy5sb2Nh
dGlvbigpIHx8IG11c3RSZXBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCk7CiAgICAgaWYgKGZ1bGxS
ZXBhaW50KSB7CiAgICAgICAgIGMtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKG9sZEZ1bGxCb3VuZHMp
OwogICAgICAgICBpZiAobmV3Qm91bmRzICE9IG9sZEJvdW5kcykKICAgICAgICAgICAgIGMtPnJl
cGFpbnRWaWV3UmVjdGFuZ2xlKG5ld0Z1bGxCb3VuZHMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IC8vIFdlIGRpZG4ndCBtb3ZlLCBidXQgd2UgZGlkIGNoYW5nZSBzaXplLiAgSW52YWxpZGF0ZSB0
aGUgZGVsdGEsIHdoaWNoIHdpbGwgY29uc2lzdCBvZiBwb3NzaWJseSAKLSAgICAgICAgLy8gdHdv
IHJlY3RhbmdsZXMgKGJ1dCB0eXBpY2FsbHkgb25seSBvbmUpLgotICAgICAgICBpbnQgd2lkdGgg
PSBhYnMobmV3Qm91bmRzLndpZHRoKCkgLSBvbGRCb3VuZHMud2lkdGgoKSk7Ci0gICAgICAgIGlm
ICh3aWR0aCkKLSAgICAgICAgICAgIGMtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKEludFJlY3Qoa01p
bihuZXdCb3VuZHMueCgpICsgbmV3Qm91bmRzLndpZHRoKCksIG9sZEJvdW5kcy54KCkgKyBvbGRC
b3VuZHMud2lkdGgoKSkgLSBib3JkZXJSaWdodCgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3Qm91bmRzLnkoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWR0aCArIGJvcmRlclJpZ2h0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrTWF4KG5ld0JvdW5kcy5oZWlnaHQoKSwgb2xkQm91bmRzLmhlaWdodCgpKSkp
OwotICAgICAgICBpbnQgaGVpZ2h0ID0gYWJzKG5ld0JvdW5kcy5oZWlnaHQoKSAtIG9sZEJvdW5k
cy5oZWlnaHQoKSk7Ci0gICAgICAgIGlmIChoZWlnaHQpCi0gICAgICAgICAgICBjLT5yZXBhaW50
Vmlld1JlY3RhbmdsZShJbnRSZWN0KG5ld0JvdW5kcy54KCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrTWluKG5ld0JvdW5kcy55KCkgKyBuZXdCb3VuZHMuaGVp
Z2h0KCksIG9sZEJvdW5kcy55KCkgKyBvbGRCb3VuZHMuaGVpZ2h0KCkpIC0gYm9yZGVyQm90dG9t
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4KG5ld0Jv
dW5kcy53aWR0aCgpLCBvbGRCb3VuZHMud2lkdGgoKSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQgKyBib3JkZXJCb3R0b20oKSkpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1
ZTsKKworICAgIC8vIFdlIGRpZG4ndCBtb3ZlLCBidXQgd2UgZGlkIGNoYW5nZSBzaXplLiAgSW52
YWxpZGF0ZSB0aGUgZGVsdGEsIHdoaWNoIHdpbGwgY29uc2lzdCBvZiBwb3NzaWJseSAKKyAgICAv
LyB0d28gcmVjdGFuZ2xlcyAoYnV0IHR5cGljYWxseSBvbmx5IG9uZSkuCisgICAgaW50IHdpZHRo
ID0gYWJzKG5ld0JvdW5kcy53aWR0aCgpIC0gb2xkQm91bmRzLndpZHRoKCkpOworICAgIGlmICh3
aWR0aCkKKyAgICAgICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUoSW50UmVjdChrTWluKG5ld0Jv
dW5kcy54KCkgKyBuZXdCb3VuZHMud2lkdGgoKSwgb2xkQm91bmRzLngoKSArIG9sZEJvdW5kcy53
aWR0aCgpKSAtIGJvcmRlclJpZ2h0KCksCisgICAgICAgICAgICBuZXdCb3VuZHMueSgpLAorICAg
ICAgICAgICAgd2lkdGggKyBib3JkZXJSaWdodCgpLAorICAgICAgICAgICAga01heChuZXdCb3Vu
ZHMuaGVpZ2h0KCksIG9sZEJvdW5kcy5oZWlnaHQoKSkpKTsKKyAgICBpbnQgaGVpZ2h0ID0gYWJz
KG5ld0JvdW5kcy5oZWlnaHQoKSAtIG9sZEJvdW5kcy5oZWlnaHQoKSk7CisgICAgaWYgKGhlaWdo
dCkKKyAgICAgICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUoSW50UmVjdChuZXdCb3VuZHMueCgp
LAorICAgICAgICAgICAga01pbihuZXdCb3VuZHMuYm90dG9tKCksIG9sZEJvdW5kcy5ib3R0b20o
KSkgLSBib3JkZXJCb3R0b20oKSwKKyAgICAgICAgICAgIGtNYXgobmV3Qm91bmRzLndpZHRoKCks
IG9sZEJvdW5kcy53aWR0aCgpKSwKKyAgICAgICAgICAgIGhlaWdodCArIGJvcmRlckJvdHRvbSgp
KSk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludER1
cmluZ0xheW91dElmTW92ZWQoaW50IHgsIGludCB5KQpAQCAtMTUwMSwxOSArMTQ5NiwxNSBAQAog
SW50UmVjdCBSZW5kZXJPYmplY3Q6OmdldEFic29sdXRlUmVwYWludFJlY3RXaXRoT3V0bGluZShp
bnQgb3cpCiB7CiAgICAgSW50UmVjdCByKGdldEFic29sdXRlUmVwYWludFJlY3QoKSk7Ci0gICAg
ci5zZXRSZWN0KHIueCgpLW93LCByLnkoKS1vdywgci53aWR0aCgpK293KjIsIHIuaGVpZ2h0KCkr
b3cqMik7CisgICAgci5pbmZsYXRlKG93KTsKIAogICAgIGlmIChjb250aW51YXRpb24oKSAmJiAh
aXNJbmxpbmUoKSkKLSAgICAgICAgci5zZXRSZWN0KHIueCgpLCByLnkoKS1jb2xsYXBzZWRNYXJn
aW5Ub3AoKSwgci53aWR0aCgpLCByLmhlaWdodCgpK2NvbGxhcHNlZE1hcmdpblRvcCgpK2NvbGxh
cHNlZE1hcmdpbkJvdHRvbSgpKTsKKyAgICAgICAgci5pbmZsYXRlWShjb2xsYXBzZWRNYXJnaW5U
b3AoKSk7CiAgICAgCi0gICAgaWYgKGlzSW5saW5lRmxvdygpKSB7Ci0gICAgICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjdXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1RleHQoKSkgewotICAgICAgICAg
ICAgICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdp
dGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0ZShjaGlsZFJlY3QpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpc0lubGluZUZsb3coKSkK
KyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBmaXJzdENoaWxkKCk7IGN1cnI7IGN1
cnIgPSBjdXJyLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1RleHQo
KSkKKyAgICAgICAgICAgICAgICByLnVuaXRlKGN1cnItPmdldEFic29sdXRlUmVwYWludFJlY3RX
aXRoT3V0bGluZShvdykpOwogCiAgICAgcmV0dXJuIHI7CiB9CkBAIC0yNDkwLDExICsyNDgxLDEx
IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGludCB4LCB5OwotICAgICAgICAgICAg
YWJzb2x1dGVQb3NpdGlvbiAoeCwgeSk7Ci0gICAgICAgICAgICByZWdpb24uYm91bmRzLnNldFgg
KHggKyBzdHlsZVJlZ2lvbi5vZmZzZXQubGVmdC52YWx1ZSk7Ci0gICAgICAgICAgICByZWdpb24u
Ym91bmRzLnNldFkgKHkgKyBzdHlsZVJlZ2lvbi5vZmZzZXQudG9wLnZhbHVlKTsKKyAgICAgICAg
ICAgIGFic29sdXRlUG9zaXRpb24oeCwgeSk7CisgICAgICAgICAgICByZWdpb24uYm91bmRzLnNl
dFgoeCArIHN0eWxlUmVnaW9uLm9mZnNldC5sZWZ0LnZhbHVlKTsKKyAgICAgICAgICAgIHJlZ2lv
bi5ib3VuZHMuc2V0WSh5ICsgc3R5bGVSZWdpb24ub2Zmc2V0LnRvcC52YWx1ZSk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIHJlZ2lvbnMuYXBwZW5kIChyZWdpb24pOworICAgICAgICAgICAg
cmVnaW9ucy5hcHBlbmQocmVnaW9uKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTI2MDgsMTMg
KzI1OTksMjMgQEAKIAogI2lmIFNWR19TVVBQT1JUCiAKLVFNYXRyaXggUmVuZGVyT2JqZWN0Ojps
b2NhbFRyYW5zZm9ybSgpIGNvbnN0CitGbG9hdFJlY3QgUmVuZGVyT2JqZWN0OjpyZWxhdGl2ZUJC
b3goYm9vbCkgY29uc3QKIHsKLSAgICByZXR1cm4gUU1hdHJpeCgxLCAwLCAwLCAxLCB4UG9zKCks
IHlQb3MoKSk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQorCitBZmZpbmVUcmFuc2Zvcm0g
UmVuZGVyT2JqZWN0Ojpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyYW5z
bGF0aW9uTWF0cml4KHhQb3MoKSwgeVBvcygpKTsKK30KICAKLVFNYXRyaXggUmVuZGVyT2JqZWN0
OjphYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6c2V0TG9jYWxU
cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJikKIHsKKyAgICBhc3NlcnQoZmFsc2UpOwor
fQorCitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRyYW5zZm9ybSgpIGNv
bnN0Cit7CiAgICAgaWYgKHBhcmVudCgpKQogICAgICAgICByZXR1cm4gcGFyZW50KCktPmFic29s
dXRlVHJhbnNmb3JtKCkgKiBsb2NhbFRyYW5zZm9ybSgpOwogICAgIHJldHVybiBsb2NhbFRyYW5z
Zm9ybSgpOwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHJlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyByZW5kZXJp
bmcvcmVuZGVyX2NhbnZhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MCw4ICsyNTAsNyBAQAog
ICAgIGlmIChlbHQgfHwgdmlldygpLT5pc1RyYW5zcGFyZW50KCkpCiAgICAgICAgIHZpZXcoKS0+
dXNlU2xvd1JlcGFpbnRzKCk7IC8vIFRoZSBwYXJlbnQgbXVzdCBzaG93IGJlaGluZCB0aGUgY2hp
bGQuCiAgICAgZWxzZQotICAgICAgICBpLnAtPmZpbGxSZWN0KGkuci54KCksIGkuci55KCksIGku
ci53aWR0aCgpLCBpLnIuaGVpZ2h0KCksIAotICAgICAgICAgICAgICAgICAgICB2aWV3KCktPnBh
bGV0dGUoKS5hY3RpdmUoKS5jb2xvcihRQ29sb3JHcm91cDo6QmFzZSkpOworICAgICAgICBpLnAt
PmZpbGxSZWN0KGkuciwgdmlldygpLT5wYWxldHRlKCkuYWN0aXZlKCkuY29sb3IoUUNvbG9yR3Jv
dXA6OkJhc2UpKTsKIH0KIAogdm9pZCBSZW5kZXJDYW52YXM6OnJlcGFpbnRWaWV3UmVjdGFuZ2xl
KGNvbnN0IEludFJlY3QmIHVyLCBib29sIGltbWVkaWF0ZSkKQEAgLTI2MiwyMSArMjYxLDIwIEBA
CiAgICAgaWYgKG1fdmlldyAmJiB1ci5pbnRlcnNlY3RzKHZyKSkgewogICAgICAgICAvLyBXZSBh
bHdheXMganVzdCBpbnZhbGlkYXRlIHRoZSByb290IHZpZXcsIHNpbmNlIHdlIGNvdWxkIGJlIGFu
IGlmcmFtZSB0aGF0IGlzIGNsaXBwZWQgb3V0CiAgICAgICAgIC8vIG9yIGV2ZW4gaW52aXNpYmxl
LgotICAgICAgICBJbnRSZWN0IHIgPSB1ci5pbnRlcnNlY3QodnIpOworICAgICAgICBJbnRSZWN0
IHIgPSBpbnRlcnNlY3Rpb24odXIsIHZyKTsKICAgICAgICAgRE9NOjpFbGVtZW50SW1wbCogZWx0
ID0gZWxlbWVudCgpLT5nZXREb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKTsKICAgICAgICAgaWYg
KCFlbHQpCiAgICAgICAgICAgICBtX3ZpZXctPnJlcGFpbnRSZWN0YW5nbGUociwgaW1tZWRpYXRl
KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvdXQgdGhlIGNvbnRl
bnRzWCBhbmQgY29udGVudHNZIG9mZnNldHMgdG8gZ2V0IG91ciBjb29yZHMgd2l0aGluIHRoZSB2
aWV3aW5nCiAgICAgICAgICAgICAvLyByZWN0YW5nbGUuCi0gICAgICAgICAgICByLnNldFgoci54
KCkgLSBtX3ZpZXctPmNvbnRlbnRzWCgpKTsKLSAgICAgICAgICAgIHIuc2V0WShyLnkoKSAtIG1f
dmlldy0+Y29udGVudHNZKCkpOworICAgICAgICAgICAgci5tb3ZlKC1tX3ZpZXctPmNvbnRlbnRz
WCgpLCAtbV92aWV3LT5jb250ZW50c1koKSk7CiAKICAgICAgICAgICAgIFJlbmRlck9iamVjdCog
b2JqID0gZWx0LT5yZW5kZXJlcigpOwogICAgICAgICAgICAgaW50IHlGcmFtZU9mZnNldCA9ICht
X3ZpZXctPmZyYW1lU3R5bGUoKSAhPSBRRnJhbWU6Ok5vRnJhbWUpID8gMiA6IDA7CiAgICAgICAg
ICAgICBpbnQgeEZyYW1lT2Zmc2V0ID0gKG1fdmlldy0+ZnJhbWVTdHlsZSgpICE9IFFGcmFtZTo6
Tm9GcmFtZSkgPyAxIDogMDsKLSAgICAgICAgICAgIHIuc2V0WChyLngoKSArIG9iai0+Ym9yZGVy
TGVmdCgpK29iai0+cGFkZGluZ0xlZnQoKSArIHhGcmFtZU9mZnNldCk7Ci0gICAgICAgICAgICBy
LnNldFkoci55KCkgKyBvYmotPmJvcmRlclRvcCgpK29iai0+cGFkZGluZ1RvcCgpICsgeUZyYW1l
T2Zmc2V0KTsKKyAgICAgICAgICAgIHIubW92ZShvYmotPmJvcmRlckxlZnQoKSArIG9iai0+cGFk
ZGluZ0xlZnQoKSArIHhGcmFtZU9mZnNldCwKKyAgICAgICAgICAgICAgICBvYmotPmJvcmRlclRv
cCgpICsgb2JqLT5wYWRkaW5nVG9wKCkgKyB5RnJhbWVPZmZzZXQpOwogICAgICAgICAgICAgb2Jq
LT5yZXBhaW50UmVjdGFuZ2xlKHIsIGltbWVkaWF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0y
OTMsMTIgKzI5MSwxMSBAQAogCiB2b2lkIFJlbmRlckNhbnZhczo6Y29tcHV0ZUFic29sdXRlUmVw
YWludFJlY3QoSW50UmVjdCYgciwgYm9vbCBmKQogewotICAgIGlmIChtX3ByaW50aW5nTW9kZSkg
cmV0dXJuOworICAgIGlmIChtX3ByaW50aW5nTW9kZSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKGYgJiYgbV92aWV3KSB7Ci0gICAgICAgIHIuc2V0WChyLngoKSArIG1fdmlldy0+Y29udGVu
dHNYKCkpOwotICAgICAgICByLnNldFkoci55KCkgKyBtX3ZpZXctPmNvbnRlbnRzWSgpKTsKLSAg
ICB9CisgICAgaWYgKGYgJiYgbV92aWV3KQorICAgICAgICByLm1vdmUobV92aWV3LT5jb250ZW50
c1goKSwgbV92aWV3LT5jb250ZW50c1koKSk7CiB9CiAKIHZvaWQgUmVuZGVyQ2FudmFzOjphYnNv
bHV0ZVJlY3RzKFFWYWx1ZUxpc3Q8SW50UmVjdD4mIHJlY3RzLCBpbnQgX3R4LCBpbnQgX3R5KQpA
QCAtMzQ4LDcgKzM0NSw3IEBACiAgICAgU2VsZWN0aW9uTWFwOjppdGVyYXRvciBlbmQgPSBzZWxl
Y3RlZE9iamVjdHMuZW5kKCk7CiAgICAgZm9yIChTZWxlY3Rpb25NYXA6Oml0ZXJhdG9yIGkgPSBz
ZWxlY3RlZE9iamVjdHMuYmVnaW4oKTsgaSAhPSBlbmQ7ICsraSkgewogICAgICAgICBTZWxlY3Rp
b25JbmZvKiBpbmZvID0gaS0+c2Vjb25kOwotICAgICAgICBzZWxSZWN0ID0gc2VsUmVjdC51bml0
ZShpbmZvLT5yZWN0KCkpOworICAgICAgICBzZWxSZWN0LnVuaXRlKGluZm8tPnJlY3QoKSk7CiAg
ICAgICAgIGRlbGV0ZSBpbmZvOwogICAgIH0KICAgICByZXR1cm4gc2VsUmVjdDsKSW5kZXg6IHJl
bmRlcmluZy9yZW5kZXJfcmVwbGFjZWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5k
ZXJfcmVwbGFjZWQuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIHJlbmRlcmluZy9yZW5kZXJfcmVw
bGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSw5IEBACiAgICAgfQogICAgIAog
ICAgIGludCBvcyA9IDIqbWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpOwotICAgIGlmICgodHgg
Pj0gaS5yLngoKSArIGkuci53aWR0aCgpICsgb3MpIHx8ICh0eCArIG1fd2lkdGggPD0gaS5yLngo
KSAtIG9zKSkKKyAgICBpZiAodHggPj0gaS5yLnJpZ2h0KCkgKyBvcyB8fCB0eCArIG1fd2lkdGgg
PD0gaS5yLngoKSAtIG9zKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCh0b3AgPj0g
aS5yLnkoKSArIGkuci5oZWlnaHQoKSArIG9zKSB8fCAoYm90dG9tIDw9IGkuci55KCkgLSBvcykp
CisgICAgaWYgKHRvcCA+PSBpLnIuYm90dG9tKCkgKyBvcyB8fCBib3R0b20gPD0gaS5yLnkoKSAt
IG9zKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQwOSwx
MSArNDA5LDggQEAKICAgICBtX3dpZGdldC0+cGFpbnQoaS5wLCBpLnIpOwogICAgIAogICAgIC8v
IFBhaW50IGEgcGFydGlhbGx5IHRyYW5zcGFyZW50IHdhc2ggb3ZlciBzZWxlY3RlZCB3aWRnZXRz
LgotICAgIGlmIChpc1NlbGVjdGVkKCkgJiYgIWkucC0+cHJpbnRpbmcoKSkgewotICAgICAgICBC
cnVzaCBicnVzaChzZWxlY3Rpb25Db2xvcihpLnApKTsKLSAgICAgICAgSW50UmVjdCBzZWxSZWN0
KHNlbGVjdGlvblJlY3QoKSk7Ci0gICAgICAgIGkucC0+ZmlsbFJlY3Qoc2VsUmVjdC54KCksIHNl
bFJlY3QueSgpLCBzZWxSZWN0LndpZHRoKCksIHNlbFJlY3QuaGVpZ2h0KCksIGJydXNoKTsKLSAg
ICB9CisgICAgaWYgKGlzU2VsZWN0ZWQoKSAmJiAhaS5wLT5wcmludGluZygpKQorICAgICAgICBp
LnAtPmZpbGxSZWN0KHNlbGVjdGlvblJlY3QoKSwgc2VsZWN0aW9uQ29sb3IoaS5wKSk7CiB9CiAK
IHZvaWQgUmVuZGVyV2lkZ2V0OjpoYW5kbGVGb2N1c091dCgpCkluZGV4OiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJl
dmlzaW9uIDEyNDI0KQorKysgcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE3Niw3ICsxMTc2LDcgQEAKICAgICAgICAgICAgIGlmICghci0+bm9QYWludCAmJiAh
ci0+bm9kZS0+bGF5ZXIoKSkgewogICAgICAgICAgICAgICAgIEludFJlY3QgY2hpbGRSZWN0LCBj
aGlsZEZ1bGxSZWN0OwogICAgICAgICAgICAgICAgIHItPm5vZGUtPmdldEFic29sdXRlUmVwYWlu
dFJlY3RJbmNsdWRpbmdGbG9hdHMoY2hpbGRSZWN0LCBjaGlsZEZ1bGxSZWN0KTsKLSAgICAgICAg
ICAgICAgICBmdWxsQm91bmRzID0gZnVsbEJvdW5kcy51bml0ZShjaGlsZEZ1bGxSZWN0KTsKKyAg
ICAgICAgICAgICAgICBmdWxsQm91bmRzLnVuaXRlKGNoaWxkRnVsbFJlY3QpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTIyMyw4ICsxMjIzLDcgQEAKICAgICBpZiAoIWlz
SW5saW5lRmxvdygpICYmICFpc1Jvb3QoKSkgewogICAgICAgICBJbnRSZWN0IG92ZXJmbG93Qm94
ID0gb3ZlcmZsb3dSZWN0KGZhbHNlKTsKICAgICAgICAgb3ZlcmZsb3dCb3guaW5mbGF0ZShtYXhp
bWFsT3V0bGluZVNpemUoaS5waGFzZSkpOwotICAgICAgICBvdmVyZmxvd0JveC5zZXRYKG92ZXJm
bG93Qm94LngoKSArIF90eCk7Ci0gICAgICAgIG92ZXJmbG93Qm94LnNldFkob3ZlcmZsb3dCb3gu
eSgpICsgX3R5KTsKKyAgICAgICAgb3ZlcmZsb3dCb3gubW92ZShfdHgsIF90eSk7CiAgICAgICAg
IGJvb2wgaW50ZXJzZWN0c092ZXJmbG93Qm94ID0gb3ZlcmZsb3dCb3guaW50ZXJzZWN0cyhpLnIp
OwogICAgICAgICBpZiAoIWludGVyc2VjdHNPdmVyZmxvd0JveCkgewogICAgICAgICAgICAgLy8g
Q2hlY2sgZmxvYXRzIG5leHQuCkBAIC0xMjMyLDggKzEyMzEsNyBAQAogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIEludFJlY3QgZmxvYXRCb3ggPSBmbG9hdFJlY3QoKTsKICAg
ICAgICAgICAgIGZsb2F0Qm94LmluZmxhdGUobWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpKTsK
LSAgICAgICAgICAgIGZsb2F0Qm94LnNldFgoZmxvYXRCb3gueCgpICsgX3R4KTsKLSAgICAgICAg
ICAgIGZsb2F0Qm94LnNldFkoZmxvYXRCb3gueSgpICsgX3R5KTsKKyAgICAgICAgICAgIGZsb2F0
Qm94Lm1vdmUoX3R4LCBfdHkpOwogICAgICAgICAgICAgaWYgKCFmbG9hdEJveC5pbnRlcnNlY3Rz
KGkucikpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjUzLDcgKzEy
NTEsNyBAQAogICAgICAgICAvLyBDaGVjayBmb3IgcGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cywg
YW5kIGlmIGl0J3Mgc2V0LCBicmVhayBhbmQgYmFpbC4KICAgICAgICAgaWYgKGlzUHJpbnRpbmcg
JiYgIWNoaWxkcmVuSW5saW5lKCkgJiYgY2hpbGQtPnN0eWxlKCktPnBhZ2VCcmVha0JlZm9yZSgp
ID09IFBCQUxXQVlTICYmCiAgICAgICAgICAgICBpblJvb3RCbG9ja0NvbnRleHQoKSAmJiAoX3R5
ICsgY2hpbGQtPnlQb3MoKSkgPiBpLnIueSgpICYmIAotICAgICAgICAgICAgKF90eSArIGNoaWxk
LT55UG9zKCkpIDwgaS5yLnkoKSArIGkuci5oZWlnaHQoKSkgeworICAgICAgICAgICAgKF90eSAr
IGNoaWxkLT55UG9zKCkpIDwgaS5yLmJvdHRvbSgpKSB7CiAgICAgICAgICAgICBjYW52YXMoKS0+
c2V0QmVzdFRydW5jYXRlZEF0KF90eSArIGNoaWxkLT55UG9zKCksIHRoaXMsIHRydWUpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjY0LDcgKzEyNjIsNyBAQAogICAgICAg
ICAvLyBDaGVjayBmb3IgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQs
IGJyZWFrIGFuZCBiYWlsLgogICAgICAgICBpZiAoaXNQcmludGluZyAmJiAhY2hpbGRyZW5Jbmxp
bmUoKSAmJiBjaGlsZC0+c3R5bGUoKS0+cGFnZUJyZWFrQWZ0ZXIoKSA9PSBQQkFMV0FZUyAmJiAK
ICAgICAgICAgICAgIGluUm9vdEJsb2NrQ29udGV4dCgpICYmIChfdHkgKyBjaGlsZC0+eVBvcygp
ICsgY2hpbGQtPmhlaWdodCgpKSA+IGkuci55KCkgJiYgCi0gICAgICAgICAgICAoX3R5ICsgY2hp
bGQtPnlQb3MoKSArIGNoaWxkLT5oZWlnaHQoKSkgPCBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB7
CisgICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSArIGNoaWxkLT5oZWlnaHQoKSkgPCBp
LnIuYm90dG9tKCkpIHsKICAgICAgICAgICAgIGNhbnZhcygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQo
X3R5ICsgY2hpbGQtPnlQb3MoKSArIGNoaWxkLT5oZWlnaHQoKSArIGNoaWxkLT5jb2xsYXBzZWRN
YXJnaW5Cb3R0b20oKSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTEzODcsNyArMTM4NSw3IEBACiAgICAgICAgIC8vIGludGVyc2VjdC4KICAgICAgICAg
aW50IHlQb3MgPSBfdHkgKyBmaXJzdExpbmVCb3goKS0+eVBvcygpOzsKICAgICAgICAgaW50IGgg
PSBsYXN0TGluZUJveCgpLT55UG9zKCkgKyBsYXN0TGluZUJveCgpLT5oZWlnaHQoKSAtIGZpcnN0
TGluZUJveCgpLT55UG9zKCk7Ci0gICAgICAgIGlmKCAoeVBvcyA+PSBpLnIueSgpICsgaS5yLmhl
aWdodCgpKSB8fCAoeVBvcyArIGggPD0gaS5yLnkoKSkpCisgICAgICAgIGlmICh5UG9zID49IGku
ci5ib3R0b20oKSB8fCB5UG9zICsgaCA8PSBpLnIueSgpKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIC8vIFNlZSBpZiBvdXIgYm94ZXMgaW50ZXJzZWN0IHdpdGggdGhlIGRpcnR5IHJl
Y3QuICBJZiBzbywgdGhlbiB3ZSBwYWludApAQCAtMTM5Niw3ICsxMzk0LDcgQEAKICAgICAgICAg
Zm9yIChSb290SW5saW5lQm94KiBjdXJyID0gZmlyc3RSb290Qm94KCk7IGN1cnI7IGN1cnIgPSBj
dXJyLT5uZXh0Um9vdEJveCgpKSB7CiAgICAgICAgICAgICB5UG9zID0gX3R5ICsgY3Vyci0+eVBv
cygpOwogICAgICAgICAgICAgaCA9IGN1cnItPmhlaWdodCgpOwotICAgICAgICAgICAgaWYgKGN1
cnItPmVsbGlwc2lzQm94KCkgJiYgKHlQb3MgPCBpLnIueSgpICsgaS5yLmhlaWdodCgpKSAmJiAo
eVBvcyArIGggPiBpLnIueSgpKSkKKyAgICAgICAgICAgIGlmIChjdXJyLT5lbGxpcHNpc0JveCgp
ICYmIHlQb3MgPCBpLnIuYm90dG9tKCkgJiYgeVBvcyArIGggPiBpLnIueSgpKQogICAgICAgICAg
ICAgICAgIGN1cnItPnBhaW50RWxsaXBzaXNCb3goaSwgX3R4LCBfdHkpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTUxMyw3ICsxNTExLDcgQEAKICAgICAgICAgICAgIHJlc3VsdC51bml0ZUNlbnRl
cihmaWxsVmVydGljYWxTZWxlY3Rpb25HYXAobGFzdFRvcCwgbGFzdExlZnQsIGxhc3RSaWdodCwg
dHkgKyBzZWxUb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJvb3RCbG9jaywgYmxvY2tYLCBibG9ja1ksIGkpKTsKIAotICAgICAgICBp
ZiAoIWkgfHwgKHR5ICsgc2VsVG9wIDwgaS0+ci55KCkgKyBpLT5yLmhlaWdodCgpKSAmJiAodHkg
KyBzZWxUb3AgKyBzZWxIZWlnaHQgPiBpLT5yLnkoKSkpCisgICAgICAgIGlmICghaSB8fCB0eSAr
IHNlbFRvcCA8IGktPnIuYm90dG9tKCkgJiYgdHkgKyBzZWxUb3AgKyBzZWxIZWlnaHQgPiBpLT5y
LnkoKSkKICAgICAgICAgICAgIHJlc3VsdC51bml0ZShjdXJyLT5maWxsTGluZVNlbGVjdGlvbkdh
cChzZWxUb3AsIHNlbEhlaWdodCwgcm9vdEJsb2NrLCBibG9ja1gsIGJsb2NrWSwgdHgsIHR5LCBp
KSk7CiAKICAgICAgICAgbGFzdFNlbGVjdGVkTGluZSA9IGN1cnI7CkBAIC0yMDU2LDI2ICsyMDU0
LDIwIEBACiAgICAgZm9yICg7IChyID0gaXQuY3VycmVudCgpKTsgKytpdCkgewogICAgICAgICBp
ZiAoIXItPm5vUGFpbnQgJiYgIXItPm5vZGUtPmxheWVyKCkpIHsKICAgICAgICAgICAgIC8vIENo
ZWNrIHRoaXMgZmxvYXQuCi0gICAgICAgICAgICBpbnQgYm90dG9tRGVsdGEgPSBrTWF4KDAsIHIt
PnN0YXJ0WSArIHItPm5vZGUtPm1hcmdpblRvcCgpICsgci0+bm9kZS0+b3ZlcmZsb3dIZWlnaHQo
ZmFsc2UpIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdC55
KCkgKyByZXN1bHQuaGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIGludCBib3R0b21EZWx0YSA9IGtN
YXgoMCwgci0+c3RhcnRZICsgci0+bm9kZS0+bWFyZ2luVG9wKCkgKyByLT5ub2RlLT5vdmVyZmxv
d0hlaWdodChmYWxzZSkgLSByZXN1bHQuYm90dG9tKCkpOwogICAgICAgICAgICAgaWYgKGJvdHRv
bURlbHRhKQogICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRIZWlnaHQocmVzdWx0LmhlaWdodCgp
ICsgYm90dG9tRGVsdGEpOwotICAgICAgICAgICAgaW50IHJpZ2h0RGVsdGEgPSBrTWF4KDAsIHIt
PmxlZnQgKyByLT5ub2RlLT5tYXJnaW5MZWZ0KCkgKyByLT5ub2RlLT5vdmVyZmxvd1dpZHRoKGZh
bHNlKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdC54KCkg
KyByZXN1bHQud2lkdGgoKSkpOworICAgICAgICAgICAgaW50IHJpZ2h0RGVsdGEgPSBrTWF4KDAs
IHItPmxlZnQgKyByLT5ub2RlLT5tYXJnaW5MZWZ0KCkgKyByLT5ub2RlLT5vdmVyZmxvd1dpZHRo
KGZhbHNlKSAtIHJlc3VsdC5yaWdodCgpKTsKICAgICAgICAgICAgIGlmIChyaWdodERlbHRhKQog
ICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRXaWR0aChyZXN1bHQud2lkdGgoKSArIHJpZ2h0RGVs
dGEpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBOb3cgY2hlY2sgbGVmdCBhbmQgdG9w
CiAgICAgICAgICAgICBpbnQgdG9wRGVsdGEgPSBrTWluKDAsIHItPnN0YXJ0WSArIHItPm5vZGUt
Pm1hcmdpblRvcCgpIC0gcmVzdWx0LnkoKSk7Ci0gICAgICAgICAgICBpZiAodG9wRGVsdGEgPCAw
KSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnNldFkocmVzdWx0LnkoKSArIHRvcERlbHRhKTsK
LSAgICAgICAgICAgICAgICByZXN1bHQuc2V0SGVpZ2h0KHJlc3VsdC5oZWlnaHQoKSAtIDIqdG9w
RGVsdGEpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRvcERlbHRhIDwgMCkKKyAg
ICAgICAgICAgICAgICByZXN1bHQuaW5mbGF0ZVkoLXRvcERlbHRhKTsKICAgICAgICAgICAgIGlu
dCBsZWZ0RGVsdGEgPSBrTWluKDAsIHItPmxlZnQgKyByLT5ub2RlLT5tYXJnaW5MZWZ0KCkgLSBy
ZXN1bHQueCgpKTsKLSAgICAgICAgICAgIGlmICh0b3BEZWx0YSA8IDApIHsKLSAgICAgICAgICAg
ICAgICByZXN1bHQuc2V0WChyZXN1bHQueCgpICsgbGVmdERlbHRhKTsKLSAgICAgICAgICAgICAg
ICByZXN1bHQuc2V0SGVpZ2h0KHJlc3VsdC53aWR0aCgpIC0gMipsZWZ0RGVsdGEpOwotICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGxlZnREZWx0YSA8IDApCisgICAgICAgICAgICAgICAg
cmVzdWx0LmluZmxhdGVYKC1sZWZ0RGVsdGEpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNDU0
LDggKzI0NDYsNyBAQAogICAgIHJldHVybiBmYWxzZTsgICAgCiB9CiAKLWJvb2wgUmVuZGVyQmxv
Y2s6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwg
aW50IF90eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhpdFRlc3RBY3Rpb24gaGl0
VGVzdEFjdGlvbikKK2Jvb2wgUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZv
LCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50IF90eSwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0
QWN0aW9uKQogewogICAgIGJvb2wgaW5saW5lRmxvdyA9IGlzSW5saW5lRmxvdygpOwogCkBAIC0y
NDY1LDE2ICsyNDU2LDE0IEBACiAgICAgaWYgKCFpbmxpbmVGbG93ICYmICFpc1Jvb3QoKSkgewog
ICAgICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIGF0IGFsbC4KICAgICAg
ICAgSW50UmVjdCBvdmVyZmxvd0JveCA9IG92ZXJmbG93UmVjdChmYWxzZSk7Ci0gICAgICAgIG92
ZXJmbG93Qm94LnNldFgob3ZlcmZsb3dCb3gueCgpICsgdHgpOwotICAgICAgICBvdmVyZmxvd0Jv
eC5zZXRZKG92ZXJmbG93Qm94LnkoKSArIHR5KTsKKyAgICAgICAgb3ZlcmZsb3dCb3gubW92ZSh0
eCwgdHkpOwogICAgICAgICBib29sIGluc2lkZU92ZXJmbG93Qm94ID0gb3ZlcmZsb3dCb3guY29u
dGFpbnMoX3gsIF95KTsKICAgICAgICAgaWYgKCFpbnNpZGVPdmVyZmxvd0JveCkgewogICAgICAg
ICAgICAgLy8gQ2hlY2sgZmxvYXRzIG5leHQuCiAgICAgICAgICAgICBpZiAoaGl0VGVzdEFjdGlv
biAhPSBIaXRUZXN0RmxvYXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgSW50UmVjdCBmbG9hdEJveCA9IGZsb2F0UmVjdCgpOwotICAgICAgICAgICAgZmxvYXRC
b3guc2V0WChmbG9hdEJveC54KCkgKyB0eCk7Ci0gICAgICAgICAgICBmbG9hdEJveC5zZXRZKGZs
b2F0Qm94LnkoKSArIHR5KTsKKyAgICAgICAgICAgIGZsb2F0Qm94Lm1vdmUodHgsIHR5KTsKICAg
ICAgICAgICAgIGlmICghZmxvYXRCb3guY29udGFpbnMoX3gsIF95KSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDEyNDI0KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw5IEBACiAJCTY1RkVBODY5MDk4MzNBREUwMEJF
RDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCAqLzsgfTsKIAkJN0U2
RkVFRDgwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2RkVFRDYwODk4NTgyMzAw
QzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFNkZFRUQ5MDg5ODU4MjMwMEM0NEMzRiAvKiBX
ZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTZGRUVENzA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERl
YnVnZ2VyLm1tICovOyB9OworCQk5MzU0RjlGRTA5ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJh
bnNmb3JtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNTRGOUZDMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwICovOyB9Owor
CQk5MzU0RjlGRjA5ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0RjlGRDA5ODg4NTlFMDAy
Q0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmggKi87IH07CisJCTkzNTRGQTBBMDk4ODg3MjcwMDJD
RkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NEZBMDkwOTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5z
Zm9ybS5jcHAgKi87IH07CiAJCTkzN0EzNkE3MDk3RTJFMzIwMEU0RUUyRiAvKiBVc2VyQWdlbnRT
dHlsZVNoZWV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzdBMzZBNjA5N0UyRTMyMDBFNEVFMkYgLyogVXNlckFnZW50U3R5bGVTaGVldHMuY3Bw
ICovOyB9OwogCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMTA4QjdF
M0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgKi87IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEw
MEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICov
OyB9OwpAQCAtNTQwLDggKzU0Myw2IEBACiAJCUE4OEFEM0MwMDk1MjQ4NkUwMDFERDE5NiAvKiBL
Q2FudmFzSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGQjgxMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzSW1hZ2UuaCAqLzsgfTsKIAkJ
QTg4QUQzQzEwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJdGVtLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjgyMDg5NzAxRjgwMEJBNTEx
NCAvKiBLQ2FudmFzSXRlbS5jcHAgKi87IH07CiAJCUE4OEFEM0MyMDk1MjQ4NkUwMDFERDE5NiAv
KiBLQ2FudmFzSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEZCODMwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmggKi87IH07Ci0J
CUE4OEFEM0MzMDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjg0MDg5NzAxRjgwMEJB
NTExNCAvKiBLQ2FudmFzTWF0cml4LmNwcCAqLzsgfTsKLQkJQTg4QUQzQzQwOTUyNDg2RTAwMURE
MTk2IC8qIEtDYW52YXNNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGQjg1MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzTWF0cml4Lmgg
Ki87IH07CiAJCUE4OEFEM0M1MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzUGF0aC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODYwODk3MDFG
ODAwQkE1MTE0IC8qIEtDYW52YXNQYXRoLmggKi87IH07CiAJCUE4OEFEM0M2MDk1MjQ4NkUwMDFE
RDE5NiAvKiBLQ2FudmFzUGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NzU4QzQ0MzA4QzVGMjE3MDA5QkFGMDUgLyogS0NhbnZhc1BhdGguY3Bw
ICovOyB9OwogCQlBODhBRDNDNzA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc1Jlc291cmNlTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQjg5MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oICovOyB9
OwpAQCAtODQ0LDggKzg0NSw2IEBACiAJCUE4REY1RjRBMDk4NDQ4QzgwMDUyOTgxQiAvKiBKU1NW
R0xhenlFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOERGNTQ1QzA5ODNBNzUxMDA1Mjk4MUIgLyogSlNTVkdMYXp5RXZlbnRMaXN0
ZW5lci5oICovOyB9OwogCQlBOERGNUZBMzA5ODQ2MEFBMDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOERGNUZBMTA5ODQ2MEFBMDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmggKi87
IH07CiAJCUE4REY1RkE0MDk4NDYwQUEwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjVG
QTIwOTg0NjBBQTAwNTI5ODFCIC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi87IH07Ci0J
CUE4RkQ4Qjg2MDg3Q0I0NEMwMERDMzcwNyAvKiBLV1FXTWF0cml4LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QThDMDg3OUVDNjQwMDZBOTE3
MiAvKiBLV1FXTWF0cml4LmNwcCAqLzsgfTsKLQkJQThGRDhCODcwODdDQjQ1NzAwREMzNzA3IC8q
IEtXUVdNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NUQ3QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4LmggKi87IH07CiAJCUE4
RkVGQjBBMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIwODA5NzlGNDcyMDA1
ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5oICovOyB9OwogCQlBOEZFRkIwQjA5NzlGNDcy
MDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIwOTA5NzlGNDcyMDA1ODM5RkQgLyogUmVu
ZGVyRm9yZWlnbk9iamVjdC5jcHAgKi87IH07CiAJCUE4RkVGQjMxMDk3OUY0RjYwMDU4MzlGRCAv
KiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThGRUZCMkYwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgKi87IH07CkBAIC0xMjE0LDYgKzEyMTMsOSBAQAog
CQk5MzJCOTgzNDA3MDI5N0RDMDAzMjgwNEYgLyogdGV4dF9ncmFudWxhcml0eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSB0ZXh0X2dyYW51bGFy
aXR5Lmg7IHBhdGggPSBlZGl0aW5nL3RleHRfZ3JhbnVsYXJpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzMzg2QjkwMDM3MDQ1
QjMwMDg2MzVDRSAvKiBLV1FSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzM4NkI5
MTAzNzA0NUIzMDA4NjM1Q0UgLyogS1dRUmVzb3VyY2VMb2FkZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUVJlc291cmNlTG9h
ZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKKwkJOTM1NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBZmZpbmVUcmFuc2Zvcm0uY3Bw
OyBwYXRoID0gcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM1NEY5RkQwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBZmZpbmVUcmFuc2Zvcm0uaDsgcGF0
aCA9IHBsYXRmb3JtL0FmZmluZVRyYW5zZm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzU0RkEwOTA5ODg4NzI3MDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFmZmluZVRyYW5zZm9ybS5jcHA7IHBh
dGggPSBwbGF0Zm9ybS9tYWMvQWZmaW5lVHJhbnNmb3JtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM3OEQ5RjkwNzY0MEE0NjAwNEI5N0JGIC8qIG1hcmt1cC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IG1hcmt1cC5j
cHA7IHBhdGggPSBlZGl0aW5nL21hcmt1cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5Mzc4RDlGQTA3NjQwQTQ2MDA0Qjk3QkYg
LyogbWFya3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gbWFya3VwLmg7IHBhdGggPSBlZGl0aW5nL21hcmt1cC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM3QTM2QTYwOTdFMkUz
MjAwRTRFRTJGIC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MjcsOCArMTQyOSw2IEBACiAJCUE4M0M4MTlGMDkxMTg5Qjkw
MDlCRjRBNyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgzQzgxQTAwOTExODlCOTAw
OUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUUHJvY2Vzc29yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4NUQ3QTJGMDg3
OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
UXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9R
dWFydHpDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJQTg1
RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS1dRV01hdHJpeC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlB
ODVEN0E4RDA4NzlFQzY0MDA2QTkxNzIgLyogS1dRV01hdHJpeC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FXTWF0cml4Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODg0Mjgz
ODA5MzA4QzFDMDBCNkQ0NjEgLyogU1ZHTmFtZXNXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTmFtZXNXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUE4ODQyODM5MDkzMDhDMUMwMEI2RDQ2MSAvKiBTVkdFbGVtZW50RmFjdG9yeVdyYXBwZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdFbGVtZW50RmFjdG9yeVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg4NDI4M0EwOTMwOEMxQzAwQjZENDYx
IC8qIGtkb21ldmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBrZG9tZXZlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTczNCw4ICsxNzM0LDYgQEAKIAkJQThDMEZCODEw
ODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNJbWFnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEZCODIwODk3
MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc0l0ZW0uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEZCODMw
ODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZhc0l0ZW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGQjg0MDg5NzAx
RjgwMEJBNTExNCAvKiBLQ2FudmFzTWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc01hdHJpeC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRkI4
NTA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc01hdHJpeC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNNYXRyaXguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGQjg2
MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNQYXRoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRkI4OTA4OTcw
MUY4MDBCQTUxMTQgLyogS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJQThDMEZCOEEwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNSZXNvdXJjZXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2Fu
dmFzUmVzb3VyY2VzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CkBAIC0yOTMyLDggKzI5MzAsNiBAQAogCQkJCUE4QzBGQjgxMDg5NzAx
RjgwMEJBNTExNCAvKiBLQ2FudmFzSW1hZ2UuaCAqLywKIAkJCQlBOEMwRkI4MjA4OTcwMUY4MDBC
QTUxMTQgLyogS0NhbnZhc0l0ZW0uY3BwICovLAogCQkJCUE4QzBGQjgzMDg5NzAxRjgwMEJBNTEx
NCAvKiBLQ2FudmFzSXRlbS5oICovLAotCQkJCUE4QzBGQjg0MDg5NzAxRjgwMEJBNTExNCAvKiBL
Q2FudmFzTWF0cml4LmNwcCAqLywKLQkJCQlBOEMwRkI4NTA4OTcwMUY4MDBCQTUxMTQgLyogS0Nh
bnZhc01hdHJpeC5oICovLAogCQkJCUE4QzBGQjg2MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFz
UGF0aC5oICovLAogCQkJCTQ3NThDNDQzMDhDNUYyMTcwMDlCQUYwNSAvKiBLQ2FudmFzUGF0aC5j
cHAgKi8sCiAJCQkJQThDMEZCODkwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNSZXNvdXJjZUxp
c3RlbmVyLmggKi8sCkBAIC0zMTM1LDYgKzMxMzEsOSBAQAogCQlCQ0YxQTVCQTA5NzgzMjA5MDA2
MUExMjMgLyogcGxhdGZvcm0gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTkzNTRGQTA5MDk4ODg3MjcwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3Bw
ICovLAorCQkJCTkzNTRGOUZDMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3Bw
ICovLAorCQkJCTkzNTRGOUZEMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAq
LywKIAkJCQlCQ0Q3NUFCRDA5ODlBNDVDMDAzRTI4REYgLyogSW1hZ2UubW0gKi8sCiAJCQkJQkNE
NzVBQkIwOTg5QTQ0NjAwM0UyOERGIC8qIEltYWdlLmggKi8sCiAJCQkJQkMwNzU5ODUwOTg4NjFB
NDAwNDA3QjQ4IC8qIEJydXNoLmggKi8sCkBAIC0zODQ5LDggKzM4NDgsNiBAQAogCQkJCUY1ODc4
NTNGMDJERTM3NTkwMUVBNDEyMiAvKiBLV1FWZWN0b3JJbXBsLmNwcCAqLywKIAkJCQlGNTg3ODZD
NTAyREUzQjg2MDFFQTQxMjIgLyogS1dRV2lkZ2V0LmggKi8sCiAJCQkJRjU4Nzg1NDIwMkRFMzc1
OTAxRUE0MTIyIC8qIEtXUVdpZGdldC5tbSAqLywKLQkJCQlBODVEN0E4RDA4NzlFQzY0MDA2QTkx
NzIgLyogS1dRV01hdHJpeC5oICovLAotCQkJCUE4NUQ3QThDMDg3OUVDNjQwMDZBOTE3MiAvKiBL
V1FXTWF0cml4LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gcXQ7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNDA2Nyw3ICs0MDY0LDYgQEAKIAkJCQk1NTBBMEJDQTA4NUY2MDM5MDA3
MzUzRDYgLyogZG9tX3FuYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NTBBMEJDRTA4NUY2MDRE
MDA3MzUzRDYgLyogaHRtbG5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VGMzQzNTA4N0I1
NjNFMDBCQkY4MzMgLyogaHRtbGZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RkQ4Qjg3
MDg3Q0I0NTcwMERDMzcwNyAvKiBLV1FXTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTZG
RUVEODA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjVDOTdBRjMwOEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oIGluIEhl
YWRlcnMgKi8sCkBAIC00MDk5LDcgKzQwOTUsNiBAQAogCQkJCUE4OEFEM0JFMDk1MjQ4NkUwMDFE
RDE5NiAvKiBLQ2FudmFzRmlsdGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQzQzAwOTUy
NDg2RTAwMUREMTk2IC8qIEtDYW52YXNJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQz
QzIwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJdGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
ODhBRDNDNDA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc01hdHJpeC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTg4QUQzQzUwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNQYXRoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDNDNzA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc1Jlc291cmNlTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFEM0M5MDk1MjQ4NkUwMDFERDE5NiAvKiBL
Q2FudmFzUmVzb3VyY2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTQzODUsNiArNDM4MCw3IEBACiAJ
CQkJQkNDOENGQ0MwOTg2Q0QyNDAwMTQwQkYyIC8qIENvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0M4RDE3NDA5ODgzMDEyMDAxNDBCRjIgLyogUGVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzA3NTk4NjA5ODg2MUE0MDA0MDdCNDggLyogQnJ1c2guaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
NTRGOUZGMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRDc1QUJDMDk4OUE0NDYwMDNFMjhERiAvKiBJbWFnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC01
MjA2LDcgKzUyMDIsNiBAQAogCQkJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBkb21fcW5h
bWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTUwQTBCQ0QwODVGNjA0RDAwNzM1M0Q2IC8qIGh0
bWxuYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGMzQzNDA4N0I1NjNFMDBCQkY4MzMg
LyogaHRtbGZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThGRDhCODYwODdDQjQ0QzAw
REMzNzA3IC8qIEtXUVdNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0U2RkVFRDkwODk4
NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxRUU3NzM4MDhGMTA4NkMwMDE2Njg3MCAvKiBXZWJDb3JlVGV4dERlY29kZXIu
bW0gaW4gU291cmNlcyAqLywKQEAgLTUyMzcsNyArNTIzMiw2IEBACiAJCQkJQTg4QUQzQkQwOTUy
NDg2RTAwMUREMTk2IC8qIEtDYW52YXNGaWx0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
OEFEM0JGMDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTg4QUQzQzEwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJdGVtLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4OEFEM0MzMDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzTWF0cml4LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFEM0M2MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFz
UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDNDODA5NTI0ODZFMDAxREQxOTYgLyog
S0NhbnZhc1Jlc291cmNlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDNDQzA5NTI0ODZF
MDAxREQxOTYgLyogS0NhbnZhc1RyZWVEZWJ1Zy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU1MDgs
NiArNTUwMiw4IEBACiAJCQkJQkNDOENGRTUwOTg2Q0VBNDAwMTQwQkYyIC8qIENvbG9yLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNDOEQxNzMwOTg4MzAxMjAwMTQwQkYyIC8qIFBlbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQURCNTY5OTA5ODgyN0FEMDAzMkVFRTIgLyogSlNFdmVudHMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTM1NEY5RkUwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRy
YW5zZm9ybS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzU0RkEwQTA5ODg4NzI3MDAyQ0ZBODgg
LyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDc1QUJFMDk4OUE0
NUMwMDNFMjhERiAvKiBJbWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMzdGNjNBMDk4OEVF
MzMwMEQwNUU5MCAvKiBKU0NvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpJbmRleDoga2Nh
bnZhcy9LQ2FudmFzQ29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzQ29u
dGFpbmVyLmgJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwxMSArMjUsMTkgQEAKICNkZWZpbmUgS0NhbnZhc0Nv
bnRhaW5lcl9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgImtjYW52YXMvUmVuZGVyUGF0
aC5oIgogI2luY2x1ZGUgIlJlbmRlckNvbnRhaW5lci5oIgogCi10eXBlZGVmIGVudW0KLXsKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CisgICAgY2xhc3Mg
RmxvYXRQb2ludDsKKyAgICBjbGFzcyBGbG9hdFJlY3Q7CisgICAgY2xhc3MgU1ZHU3R5bGVkRWxl
bWVudEltcGw7Cit9Cit1c2luZyBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm07Cit1c2luZyBXZWJD
b3JlOjpGbG9hdFBvaW50OwordXNpbmcgV2ViQ29yZTo6RmxvYXRSZWN0OworCitlbnVtIEtDQWxp
Z24gewogICAgIEFMSUdOX05PTkUgPSAwLAogICAgIEFMSUdOX1hNSU5ZTUlOID0gMSwKICAgICBB
TElHTl9YTUlEWU1JTiA9IDIsCkBAIC0zOSwxMiArNDgsOCBAQAogICAgIEFMSUdOX1hNSU5ZTUFY
ID0gNywKICAgICBBTElHTl9YTUlEWU1BWCA9IDgsCiAgICAgQUxJR05fWE1BWFlNQVggPSA5Ci19
IEtDQWxpZ247Cit9OwogCi1uYW1lc3BhY2UgS1NWRyB7Ci0gICAgY2xhc3MgS0NhbnZhc1JlbmRl
cmluZ1N0eWxlOwotfQotCiBjbGFzcyBLQ2FudmFzQ29udGFpbmVyIDogcHVibGljIGtodG1sOjpS
ZW5kZXJDb250YWluZXIKIHsKIHB1YmxpYzoKQEAgLTY0LDggKzY5LDggQEAKICAgICB2aXJ0dWFs
IGJvb2wgc3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCAmcCkgY29uc3Q7CiAgICAgdmly
dHVhbCBGbG9hdFJlY3QgcmVsYXRpdmVCQm94KGJvb2wgaW5jbHVkZVN0cm9rZSA9IHRydWUpIGNv
bnN0OwogICAgIAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0Owot
ICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgp
OworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYp
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBGbG9hdFJlY3QmIHZp
ZXdwb3J0KSA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgdmlld3BvcnQoKSBjb25zdCA9IDA7
CkBAIC04MCw3ICs4NSw3IEBACiAgICAgYm9vbCBzbGljZSgpIGNvbnN0OwogICAgIAogcHJvdGVj
dGVkOgotICAgIEtDYW52YXNNYXRyaXggZ2V0QXNwZWN0UmF0aW8oY29uc3QgRmxvYXRSZWN0IGxv
Z2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3Q7CisgICAgQWZmaW5lVHJhbnNm
b3JtIGdldEFzcGVjdFJhdGlvKGNvbnN0IEZsb2F0UmVjdCBsb2dpY2FsLCBjb25zdCBGbG9hdFJl
Y3QgcGh5c2ljYWwpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNsYXNzIFByaXZhdGU7CkluZGV4
OiBrY2FudmFzL1JlbmRlclNWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL1JlbmRl
clNWR0ltYWdlLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL1JlbmRlclNWR0ltYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTQgKzQxLDEwIEBACiB1c2luZyBuYW1lc3BhY2Ug
S1NWRzsKIAogUmVuZGVyU1ZHSW1hZ2U6OlJlbmRlclNWR0ltYWdlKFNWR0ltYWdlRWxlbWVudElt
cGwgKmltcGwpCi06IFJlbmRlckltYWdlKGltcGwpCisgICAgOiBSZW5kZXJJbWFnZShpbXBsKQog
ewogfQogCi1SZW5kZXJTVkdJbWFnZTo6flJlbmRlclNWR0ltYWdlKCkKLXsKLX0KLQogdm9pZCBS
ZW5kZXJTVkdJbWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBp
bnQgcGFyZW50WSkKIHsKICAgICBpZiAocGFpbnRJbmZvLnAtPnBhaW50aW5nRGlzYWJsZWQoKSB8
fCAocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50QWN0aW9uRm9yZWdyb3VuZCkgfHwgc3R5bGUoKS0+
dmlzaWJpbGl0eSgpID09IGtodG1sOjpISURERU4pCkBAIC02NSw3ICs2MSw3IEBACiAgICAgfSBl
bHNlCiAgICAgICAgIHBhaW50SW5mby5wLT5zYXZlKCk7CiAKLSAgICBjb250ZXh0LT5jb25jYXRD
VE0oUU1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgY29udGV4dC0+
Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsKICAgICBjb250
ZXh0LT5jb25jYXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgdHJhbnNsYXRlRm9yQXR0cmli
dXRlcygpOwogICAgIApAQCAtMTAxLDcgKzk3LDcgQEAKICAgICBTVkdJbWFnZUVsZW1lbnRJbXBs
ICppbWFnZSA9IHN0YXRpY19jYXN0PFNWR0ltYWdlRWxlbWVudEltcGwgKj4obm9kZSgpKTsKICAg
ICBmbG9hdCB4T2Zmc2V0ID0gaW1hZ2UtPngoKS0+YmFzZVZhbCgpID8gaW1hZ2UtPngoKS0+YmFz
ZVZhbCgpLT52YWx1ZSgpIDogMDsKICAgICBmbG9hdCB5T2Zmc2V0ID0gaW1hZ2UtPnkoKS0+YmFz
ZVZhbCgpID8gaW1hZ2UtPnkoKS0+YmFzZVZhbCgpLT52YWx1ZSgpIDogMDsKLSAgICBjb250ZXh0
LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5zbGF0ZSh4T2Zmc2V0LCB5T2Zmc2V0KSk7CisgICAg
Y29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KHhPZmZzZXQsIHlPZmZzZXQpKTsK
IH0KICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCkluZGV4OiBrY2FudmFzL1JlbmRlclNWR1RleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEy
NDI0KQorKysga2NhbnZhcy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
MjggKzI5LDI4IEBACiAjaW5jbHVkZSAiU1ZHVGV4dEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbC5oIgogI2luY2x1ZGUgIktSZW5kZXJpbmdEZXZpY2Uu
aCIKLSNpbmNsdWRlICJLQ2FudmFzTWF0cml4LmgiCiAjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmlu
Z1N0eWxlLmgiCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogUmVuZGVyU1ZHVGV4dDo6UmVuZGVy
U1ZHVGV4dChLU1ZHOjpTVkdUZXh0RWxlbWVudEltcGwgKm5vZGUpIAogICAgIDogUmVuZGVyQmxv
Y2sobm9kZSkKIHsKIH0KIAotUU1hdHJpeCBSZW5kZXJTVkdUZXh0Ojp0cmFuc2xhdGlvblRvcFRv
QmFzZWxpbmUoKQorQWZmaW5lVHJhbnNmb3JtIFJlbmRlclNWR1RleHQ6OnRyYW5zbGF0aW9uVG9w
VG9CYXNlbGluZSgpCiB7Ci0gICAgaW50IG9mZnNldCA9IGJhc2VsaW5lUG9zaXRpb24odHJ1ZSwg
dHJ1ZSk7Ci0gICAgcmV0dXJuIFFNYXRyaXgoKS50cmFuc2xhdGUoMCwgLW9mZnNldCk7CisgICAg
cmV0dXJuIHRyYW5zbGF0aW9uTWF0cml4KDAsIC1iYXNlbGluZVBvc2l0aW9uKHRydWUsIHRydWUp
KTsKIH0KIAotUU1hdHJpeCBSZW5kZXJTVkdUZXh0Ojp0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMo
KQorQWZmaW5lVHJhbnNmb3JtIFJlbmRlclNWR1RleHQ6OnRyYW5zbGF0aW9uRm9yQXR0cmlidXRl
cygpCiB7CiAgICAgS1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBsICp0ZXh0ID0gc3RhdGljX2Nhc3Q8
S1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBsICo+KGVsZW1lbnQoKSk7CiAKICAgICBmbG9hdCB4T2Zm
c2V0ID0gdGV4dC0+eCgpLT5iYXNlVmFsKCktPmdldEZpcnN0KCkgPyB0ZXh0LT54KCktPmJhc2VW
YWwoKS0+Z2V0Rmlyc3QoKS0+dmFsdWUoKSA6IDA7CiAgICAgZmxvYXQgeU9mZnNldCA9IHRleHQt
PnkoKS0+YmFzZVZhbCgpLT5nZXRGaXJzdCgpID8gdGV4dC0+eSgpLT5iYXNlVmFsKCktPmdldEZp
cnN0KCktPnZhbHVlKCkgOiAwOwogCi0gICAgcmV0dXJuIFFNYXRyaXgoKS50cmFuc2xhdGUoeE9m
ZnNldCwgeU9mZnNldCk7CisgICAgcmV0dXJuIHRyYW5zbGF0aW9uTWF0cml4KHhPZmZzZXQsIHlP
ZmZzZXQpOwogfQogCiB2b2lkIFJlbmRlclNWR1RleHQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpCkBAIC03MCw3ICs3MCw3IEBACiAgICAgICAg
IHBhaW50SW5mby5wLT5zYXZlKCk7CiAgICAgCiAgICAgY29udGV4dC0+Y29uY2F0Q1RNKGxvY2Fs
VHJhbnNmb3JtKCkpOwotICAgIGNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCkudHJhbnNsYXRl
KHBhcmVudFgsIHBhcmVudFkpKTsKKyAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25N
YXRyaXgocGFyZW50WCwgcGFyZW50WSkpOwogICAgIGNvbnRleHQtPmNvbmNhdENUTSh0cmFuc2xh
dGlvbkZvckF0dHJpYnV0ZXMoKSk7CiAgICAgY29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0aW9u
VG9wVG9CYXNlbGluZSgpKTsKICAgICAKQEAgLTEyMCwxNCArMTIwLDE2IEBACiAgICAgICAgIHBh
aW50SW5mby5wLT5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgUmVuZGVyU1ZHVGV4dDo6bm9kZUF0UG9p
bnQoTm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4LCBpbnQgX3R5LCBXZWJD
b3JlOjpIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlclNWR1RleHQ6Om5v
ZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBI
aXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBRTWF0cml4IHRvdGFsVHJhbnNmb3JtID0gdHJh
bnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRvdGFsVHJhbnNm
b3JtID0gdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7CiAgICAgdG90YWxUcmFuc2Zvcm0gKj0g
dHJhbnNsYXRpb25Ub3BUb0Jhc2VsaW5lKCk7CiAgICAgdG90YWxUcmFuc2Zvcm0gKj0gYWJzb2x1
dGVUcmFuc2Zvcm0oKTsKLSAgICBkb3VibGUgbG9jYWxYLCBsb2NhbFk7Ci0gICAgdG90YWxUcmFu
c2Zvcm0uaW52ZXJ0KCkubWFwKF94LCBfeSwgJmxvY2FsWCwgJmxvY2FsWSk7Ci0gICAgcmV0dXJu
IFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChpbmZvLCAoaW50KWxvY2FsWCwgKGludClsb2NhbFks
IF90eCwgX3R5LCBoaXRUZXN0QWN0aW9uKTsKKyAgICB0b3RhbFRyYW5zZm9ybS5pbnZlcnQoKTsK
KyAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSB0b3RhbFRyYW5zZm9ybS5tYXAoSW50UG9pbnQo
eCwgeSkpOworICAgIHJldHVybiBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoaW5mbywgc3RhdGlj
X2Nhc3Q8aW50Pihsb2NhbFBvaW50LngoKSksIHN0YXRpY19jYXN0PGludD4obG9jYWxQb2ludC55
KCkpLCB0eCwgdHksIGFjdGlvbik7CiB9CisKK30KKwogI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0K
SW5kZXg6IGtjYW52YXMvS0NhbnZhc0l0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0Nh
bnZhc0l0ZW0uY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtjYW52YXMvS0NhbnZhc0l0ZW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywyMCArMjMsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgPGtkZWJ1
Zy5oPgotI2luY2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlICJLQ2FudmFz
SXRlbS5oIgogCi0jaW5jbHVkZSAia2NhbnZhcy9LQ2FudmFzLmgiCi0jaW5jbHVkZSAia2NhbnZh
cy9SZW5kZXJQYXRoLmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgotI2luY2x1ZGUgIktS
ZW5kZXJpbmdEZXZpY2UuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiS0NhbnZh
c0NvbnRhaW5lci5oIgorI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1
ZGUgIktSZW5kZXJpbmdEZXZpY2UuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIu
aCIKICNpbmNsdWRlICJLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oIgotCi0jaW5jbHVkZSAiS0Nh
bnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+
CiAKIGNsYXNzIFJlbmRlclBhdGg6OlByaXZhdGUKIHsKQEAgLTQ0LDcgKzQxLDcgQEAKICAgICBS
ZWZQdHI8S0NhbnZhc1BhdGg+IHBhdGg7CiAKICAgICBGbG9hdFJlY3QgZmlsbEJCb3gsIHN0cm9r
ZUJib3g7Ci0gICAgUU1hdHJpeCBtYXRyaXg7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsK
IH07ICAgICAgICAKIAogLy8gUmVuZGVyUGF0aApAQCAtNTgsMTIgKzU1LDEyIEBACiAgICAgZGVs
ZXRlIGQ7CiB9CiAKLVFNYXRyaXggUmVuZGVyUGF0aDo6bG9jYWxUcmFuc2Zvcm0oKSBjb25zdAor
QWZmaW5lVHJhbnNmb3JtIFJlbmRlclBhdGg6OmxvY2FsVHJhbnNmb3JtKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gZC0+bWF0cml4OwogfQogCi12b2lkIFJlbmRlclBhdGg6OnNldExvY2FsVHJhbnNm
b3JtKGNvbnN0IFFNYXRyaXggJm1hdHJpeCkKK3ZvaWQgUmVuZGVyUGF0aDo6c2V0TG9jYWxUcmFu
c2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBtYXRyaXgpCiB7CiAgICAgZC0+bWF0cml4ID0g
bWF0cml4OwogfQpAQCAtOTIsMTEgKzg5LDExIEBACiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAK
ICAgICBpZiAoaW5jbHVkZVN0cm9rZSkgewotICAgICAgICBpZighZC0+c3Ryb2tlQmJveC5pc1Zh
bGlkKCkpCisgICAgICAgIGlmIChkLT5zdHJva2VCYm94LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IGQtPnN0cm9rZUJib3ggPSBiYm94Rm9yUGF0aCh0cnVlKTsKICAgICAgICAgcmVzdWx0ID0gZC0+
c3Ryb2tlQmJveDsKICAgICB9IGVsc2UgewotICAgICAgICBpZighZC0+ZmlsbEJCb3guaXNWYWxp
ZCgpKQorICAgICAgICBpZiAoZC0+ZmlsbEJCb3guaXNFbXB0eSgpKQogICAgICAgICAgICAgZC0+
ZmlsbEJCb3ggPSBiYm94Rm9yUGF0aChmYWxzZSk7CiAgICAgICAgIHJlc3VsdCA9IGQtPmZpbGxC
Qm94OwogICAgIH0KSW5kZXg6IGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrY2FudmFzL1JlbmRlclNWR0ltYWdlLmgJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9S
ZW5kZXJTVkdJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwyMyArMjUsMjMgQEAKICNpZiBT
VkdfU1VQUE9SVAogCiAjaW5jbHVkZSAicmVuZGVyX2ltYWdlLmgiCi0jaW5jbHVkZSA8cW1hdHJp
eC5oPgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogCi1uYW1lc3BhY2UgS1NWRwotewor
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0ltYWdlRWxlbWVudEltcGw7Ci0gICAg
Y2xhc3MgUmVuZGVyU1ZHSW1hZ2UgOiBwdWJsaWMga2h0bWw6OlJlbmRlckltYWdlIHsKKworICAg
IGNsYXNzIFJlbmRlclNWR0ltYWdlIDogcHVibGljIFJlbmRlckltYWdlIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIFJlbmRlclNWR0ltYWdlKFNWR0ltYWdlRWxlbWVudEltcGwgKmltcGwpOwotICAg
ICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdJbWFnZSgpOworICAgICAgICBSZW5kZXJTVkdJbWFnZShT
VkdJbWFnZUVsZW1lbnRJbXBsKik7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIFFNYXRyaXgg
bG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQotICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCYgdHJhbnNmb3JtKSB7
IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
dHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CiAgICAgICAgIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBp
bnQgcGFyZW50WSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBpbnQg
cGFyZW50WCwgaW50IHBhcmVudFkpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0cmFu
c2xhdGVGb3JBdHRyaWJ1dGVzKCk7Ci0gICAgICAgIFFNYXRyaXggbV90cmFuc2Zvcm07CisgICAg
ICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKICAgICB9OwogfQogCkluZGV4OiBrY2Fu
dmFzL1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL1JlbmRlclNWR1RleHQu
aAkocmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjQsMzEgKzI0LDMzIEBACiAjZGVmaW5lIFJlbmRlclNWR1RleHRfSAogI2lmIFNW
R19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJSZW5k
ZXJCbG9jay5oIgotI2luY2x1ZGUgPHFtYXRyaXguaD4KIAotbmFtZXNwYWNlIEtTVkcgewotICAg
IGNsYXNzIFNWR1RleHRFbGVtZW50SW1wbDsKLX0KK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgUmVuZGVyU1ZHVGV4dCA6IHB1YmxpYyBraHRtbDo6UmVuZGVyQmxvY2sKK2NsYXNzIFNWR1Rl
eHRFbGVtZW50SW1wbDsKKworY2xhc3MgUmVuZGVyU1ZHVGV4dCA6IHB1YmxpYyBSZW5kZXJCbG9j
awogewogcHVibGljOgotICAgIFJlbmRlclNWR1RleHQoS1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBs
ICpub2RlKTsKKyAgICBSZW5kZXJTVkdUZXh0KFNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSk7CiAK
LSAgICBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1Rl
eHQiOyB9CisgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5k
ZXJTVkdUZXh0IjsgfQogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGlu
dCBwYXJlbnRZKTsKICAgICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRy
YW5zZm9ybShjb25zdCBRTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zv
cm07IH0KKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNm
b3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJh
bnNmb3JtOyB9CiAgICAgCi0gICAgYm9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCBfeCwg
aW50IF95LCBpbnQgX3R4LCBpbnQgX3R5LCBXZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICBi
b29sIG5vZGVBdFBvaW50KE5vZGVJbmZvJiwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBf
dHksIEhpdFRlc3RBY3Rpb24pOwogCiAgcHJpdmF0ZToKLSAgICBRTWF0cml4IHRyYW5zbGF0aW9u
VG9wVG9CYXNlbGluZSgpOwotICAgIFFNYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7
Ci0gICAgUU1hdHJpeCBtX3RyYW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRp
b25Ub3BUb0Jhc2VsaW5lKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0aW9uRm9yQXR0
cmlidXRlcygpOworICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKK30KKwog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0l0ZW0u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNJdGVtLmgJKHJldmlzaW9uIDEyNDI0KQor
Kysga2NhbnZhcy9LQ2FudmFzSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hA
a2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWMuc2VpZGVsQGtk
ZW1haWwubmV0PgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgog
CiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI1LDU5ICsy
Niw1MiBAQAogI2RlZmluZSBLQ2FudmFzSXRlbV9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1
ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJJbnRQb2ludC5oIgotI2luY2x1ZGUgIkludFJlY3Qu
aCIKLSNpbmNsdWRlIDxxM3ZhbHVlbGlzdC5oPgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotCiAj
aW5jbHVkZSAicmVuZGVyX29iamVjdC5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsgLy8g
bW92ZSBLQ2FudmFzSXRlbSBpbnRvIFdlYkNvcmUgYW5kIHJlbW92ZSB0aGlzCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGbG9hdFBvaW50OworICAgIGNsYXNzIEZsb2F0UmVjdDsK
KyAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKIH0KIAotbmFtZXNwYWNlIEtTVkcgewot
ICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotfTsKLQogY2xhc3MgS0NhbnZhc1BhdGg7
CiBjbGFzcyBLQ2FudmFzQ29udGFpbmVyOwotY2xhc3MgS0NhbnZhc01hdHJpeDsKLWNsYXNzIFJl
bmRlclBhdGggOiBwdWJsaWMga2h0bWw6OlJlbmRlck9iamVjdAorY2xhc3MgUmVuZGVyUGF0aCA6
IHB1YmxpYyBSZW5kZXJPYmplY3QKIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJQYXRoKGtodG1sOjpS
ZW5kZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlKTsKKyAg
ICBSZW5kZXJQYXRoKFJlbmRlclN0eWxlKiwgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJQYXRoKCk7CiAKICAgICAvLyBIaXQtZGV0ZWN0aW9uIHNlcGVyYXRlZCBm
b3IgdGhlIGZpbGwgYW5kIHRoZSBzdHJva2UKLSAgICB2aXJ0dWFsIGJvb2wgZmlsbENvbnRhaW5z
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQgJnApIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBz
dHJva2VDb250YWlucyhjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50ICZwKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogCiAg
ICAgLy8gUmV0dXJucyBhbiB1bnNjYWxlZCBib3VuZGluZyBib3ggKG5vdCBldmVuIGluY2x1ZGlu
ZyBsb2NhbFRyYW5zZm9ybSgpKSBmb3IgdGhpcyB2ZWN0b3IgcGF0aAogICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHJlbGF0aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdDsKIAot
ICAgIHZvaWQgY2hhbmdlUGF0aChLQ2FudmFzUGF0aCogbmV3UGF0aCk7CisgICAgdm9pZCBjaGFu
Z2VQYXRoKEtDYW52YXNQYXRoKik7CiAgICAgS0NhbnZhc1BhdGgqIHBhdGgoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIktDYW52
YXNJdGVtIjsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsg
cmV0dXJuICJLQ2FudmFzSXRlbSI7IH0KICAgICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxU
cmFuc2Zvcm0oKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29u
c3QgUU1hdHJpeCAmbWF0cml4KTsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRy
YW5zZm9ybSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICAKIHByb3RlY3RlZDoKICAgICAvLyByZXN0cmljdGVk
IHNldCBvZiBhcmdzIGZvciBwYXNzaW5nIHRvIHBhaW50IHNlcnZlcnMsIGV0Yy4KLSAgICB2aXJ0
dWFsIGJvb2wgaGl0c1BhdGgoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmaGl0UG9pbnQsIGJv
b2wgZmlsbCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoaXRzUGF0aChjb25zdCBGbG9h
dFBvaW50JiwgYm9vbCBmaWxsKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgYmJv
eEZvclBhdGgoYm9vbCBpbmNsdWRlU3Ryb2tlKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CiAgICAg
Y2xhc3MgUHJpdmF0ZTsKLSAgICBQcml2YXRlICpkOworICAgIFByaXZhdGUqIGQ7CiB9OwogCiAv
LyBIZWxwZXIgZGF0YSBzdHJ1Y3R1cmUKLXR5cGVkZWYgUTNWYWx1ZUxpc3Q8Y29uc3QgUmVuZGVy
UGF0aCAqPiBLQ2FudmFzSXRlbUxpc3Q7Cit0eXBlZGVmIFEzVmFsdWVMaXN0PGNvbnN0IFJlbmRl
clBhdGgqPiBLQ2FudmFzSXRlbUxpc3Q7CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlm
CkluZGV4OiBrY2FudmFzL0tDYW52YXNNYXRyaXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMv
S0NhbnZhc01hdHJpeC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9LQ2FudmFzTWF0
cml4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyOTEgKzAsMCBAQAotLyoKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0g
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAot
ICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPHF3bWF0cml4
Lmg+Ci0KLSNpbmNsdWRlICJLQ2FudmFzUGF0aC5oIgotI2luY2x1ZGUgIktDYW52YXNNYXRyaXgu
aCIKLQotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWcycmFkID0gMC4wMTc0NTMyOTI1MTk5NDMyOTU3
Njk7IC8vIHBpLzE4MAotCi0vLyBLQ2FudmFzTWF0cml4Ci1LQ2FudmFzTWF0cml4OjpLQ2FudmFz
TWF0cml4KCkKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVMOwotfQotCi1LQ2FudmFzTWF0cml4
OjpLQ2FudmFzTWF0cml4KGNvbnN0IFFNYXRyaXggJnFtYXRyaXgpCi17Ci0gICAgbV9tb2RlID0g
T1BTX1BSRU1VTDsKLSAgICAoKnRoaXMpID0gcW1hdHJpeDsKLX0KLQotS0NhbnZhc01hdHJpeDo6
S0NhbnZhc01hdHJpeChjb25zdCBLQ2FudmFzTWF0cml4ICZtYXRyaXgpCi17Ci0gICAgbV9tb2Rl
ID0gT1BTX1BSRU1VTDsKLSAgICAoKnRoaXMpID0gbWF0cml4OwotfQotCi1LQ2FudmFzTWF0cml4
OjpLQ2FudmFzTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBk
b3VibGUgZSwgZG91YmxlIGYpCi17Ci0gICAgbV9tb2RlID0gT1BTX1BSRU1VTDsKLSAgICBtX21h
dHJpeC5zZXRNYXRyaXgoYSwgYiwgYywgZCwgZSwgZik7Ci19Ci0KLUtDYW52YXNNYXRyaXg6On5L
Q2FudmFzTWF0cml4KCkKLXsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6b3Bl
cmF0b3I9KGNvbnN0IFFNYXRyaXggJm90aGVyKQotewotICAgIG1fbWF0cml4ID0gb3RoZXI7Ci0g
ICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjpvcGVy
YXRvcj0oY29uc3QgS0NhbnZhc01hdHJpeCAmb3RoZXIpCi17Ci0gICAgbV9tYXRyaXggPSBvdGhl
ci5tX21hdHJpeDsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLWJvb2wgS0NhbnZhc01hdHJpeDo6
b3BlcmF0b3I9PShjb25zdCBRTWF0cml4ICZvdGhlcikgY29uc3QKLXsKLSAgICByZXR1cm4gKG1f
bWF0cml4ID09IG90aGVyKTsKLX0KLQotYm9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvciE9KGNv
bnN0IFFNYXRyaXggJm90aGVyKSBjb25zdAotewotICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhl
cik7Ci19Ci0KLWJvb2wgS0NhbnZhc01hdHJpeDo6b3BlcmF0b3I9PShjb25zdCBLQ2FudmFzTWF0
cml4ICZvdGhlcikgY29uc3QKLXsKLSAgICByZXR1cm4gKG1fbWF0cml4ID09IG90aGVyLm1fbWF0
cml4KTsKLX0KLQotYm9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvciE9KGNvbnN0IEtDYW52YXNN
YXRyaXggJm90aGVyKSBjb25zdAotewotICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Ci19
Ci0KLXZvaWQgS0NhbnZhc01hdHJpeDo6c2V0T3BlcmF0aW9uTW9kZShLQ01hdHJpeE9wZXJhdGlv
bk1vZGUgbW9kZSkKLXsKLSAgICBtX21vZGUgPSBtb2RlOwotfSAgICAKLQotdm9pZCBLQ2FudmFz
TWF0cml4OjpzZXRBKGRvdWJsZSBhKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeChhLCBtX21h
dHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigpLCBtX21hdHJpeC5keCgp
LCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmEoKSBjb25zdAot
ewotICAgIHJldHVybiBtX21hdHJpeC5tMTEoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4Ojpz
ZXRCKGRvdWJsZSBiKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwg
YiwgbV9tYXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigpLCBtX21hdHJpeC5keCgpLCBtX21hdHJp
eC5keSgpKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmIoKSBjb25zdAotewotICAgIHJl
dHVybiBtX21hdHJpeC5tMTIoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXRDKGRvdWJs
ZSBjKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgu
bTEyKCksIGMsIG1fbWF0cml4Lm0yMigpLCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgpKTsK
LX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmMoKSBjb25zdAotewotICAgIHJldHVybiBtX21h
dHJpeC5tMjEoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXREKGRvdWJsZSBkKQotewot
ICAgIG1fbWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIG1f
bWF0cml4Lm0yMSgpLCBkLCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91
YmxlIEtDYW52YXNNYXRyaXg6OmQoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5tMjIo
KTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXRFKGRvdWJsZSBlKQotewotICAgIG1fbWF0
cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIG1fbWF0cml4Lm0y
MSgpLCBtX21hdHJpeC5tMjIoKSwgZSwgbV9tYXRyaXguZHkoKSk7Ci19Ci0KLWRvdWJsZSBLQ2Fu
dmFzTWF0cml4OjplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9tYXRyaXguZHgoKTsKLX0KLQot
dm9pZCBLQ2FudmFzTWF0cml4OjpzZXRGKGRvdWJsZSBmKQotewotICAgIG1fbWF0cml4LnNldE1h
dHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIG1fbWF0cml4Lm0yMSgpLCBtX21h
dHJpeC5tMjIoKSwgbV9tYXRyaXguZHgoKSwgZik7Ci19Ci0KLWRvdWJsZSBLQ2FudmFzTWF0cml4
OjpmKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9tYXRyaXguZHkoKTsKLX0KLQotS0NhbnZhc01h
dHJpeCAmS0NhbnZhc01hdHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAg
ICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAgICAgbV9tYXRyaXgudHJhbnNsYXRlKHgs
IHkpOwotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIFFNYXRyaXggdGVtcDsKLSAgICAgICAgdGVt
cC50cmFuc2xhdGUoeCwgeSk7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRlbXA7Ci0gICAgfQotCi0g
ICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjptdWx0
aXBseShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcikKLXsKLSAgICBRTWF0cml4IHRlbXAob3Ro
ZXIuYSgpLCBvdGhlci5iKCksIG90aGVyLmMoKSwgb3RoZXIuZCgpLCBvdGhlci5lKCksIG90aGVy
LmYoKSk7Ci0KLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICB7Ci0gICAgICAgIHRl
bXAgKj0gbV9tYXRyaXg7Ci0gICAgICAgIG1fbWF0cml4ID0gdGVtcDsKLSAgICB9Ci0gICAgZWxz
ZQotICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1L
Q2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjpzY2FsZShkb3VibGUgc2NhbGVGYWN0b3JYLCBk
b3VibGUgc2NhbGVGYWN0b3JZKQotewotICAgIGlmKG1fbW9kZSA9PSBPUFNfUFJFTVVMKQotICAg
ICAgICBtX21hdHJpeC5zY2FsZShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7Ci0gICAgZWxz
ZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnNjYWxlKHNjYWxl
RmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAgICB9
Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6
OnJvdGF0ZShkb3VibGUgYW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0g
ICAgICAgIG1fbWF0cml4LnJvdGF0ZShhbmdsZSk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAg
UU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnJvdGF0ZShhbmdsZSk7Ci0gICAgICAgIG1fbWF0
cml4ICo9IHRlbXA7Ci0gICAgfQotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0
cml4ICZLQ2FudmFzTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkK
LXsKLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAgICAgbV9tYXRyaXgucm90YXRl
KGF0YW4yKHksIHgpIC8gZGVnMnJhZCk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJp
eCB0ZW1wOwotICAgICAgICB0ZW1wLnJvdGF0ZShhdGFuMih5LCB4KSAvIGRlZzJyYWQpOwotICAg
ICAgICBtX21hdHJpeCAqPSB0ZW1wOwotICAgIH0KLQotICAgIHJldHVybiAqdGhpczsKLX0KLQot
S0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6ZmxpcFgoKQotewotICAgIHJldHVybiBzY2Fs
ZSgtMS4wZiwgMS4wZik7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6OmZsaXBZ
KCkKLXsKLSAgICByZXR1cm4gc2NhbGUoMS4wZiwgLTEuMGYpOwotfQotCi1LQ2FudmFzTWF0cml4
ICZLQ2FudmFzTWF0cml4Ojpza2V3WChkb3VibGUgYW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09
IE9QU19QUkVNVUwpCi0gICAgICAgIG1fbWF0cml4LnNoZWFyKHRhbihhbmdsZSAqIGRlZzJyYWQp
LCAwLjBmKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAg
IHRlbXAuc2hlYXIodGFuKGFuZ2xlICogZGVnMnJhZCksIDAuMGYpOwotICAgICAgICBtX21hdHJp
eCAqPSB0ZW1wOwotICAgIH0KLQotICAgIHJldHVybiAqdGhpczsKLX0KLQotS0NhbnZhc01hdHJp
eCAmS0NhbnZhc01hdHJpeDo6c2tld1koZG91YmxlIGFuZ2xlKQotewotICAgIGlmKG1fbW9kZSA9
PSBPUFNfUFJFTVVMKQotICAgICAgICBtX21hdHJpeC5zaGVhcigwLjBmLCB0YW4oYW5nbGUgKiBk
ZWcycmFkKSk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAg
ICB0ZW1wLnNoZWFyKDAuMGYsIHRhbihhbmdsZSAqIGRlZzJyYWQpKTsKLSAgICAgICAgbV9tYXRy
aXggKj0gdGVtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLXZvaWQgS0NhbnZh
c01hdHJpeDo6cmVzZXQoKQotewotICAgIG1fbWF0cml4LnJlc2V0KCk7Ci19Ci0KLXZvaWQgS0Nh
bnZhc01hdHJpeDo6cmVtb3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAqeVNjYWxlKQot
ewotICAgIGRvdWJsZSBzeCA9IHNxcnQoYSgpICogYSgpICsgYigpICpiKCkpOwotICAgIGRvdWJs
ZSBzeSA9IHNxcnQoYygpICogYygpICsgZCgpICpkKCkpOwotCi0gICAgLy8gUmVtb3ZlIHRoZSBz
Y2FsaW5nIGZyb20gdGhlIG1hdHJpeC4KLSAgICBzZXRBKGEoKSAvIHN4KTsgc2V0QihiKCkgLyBz
eCk7Ci0gICAgc2V0QyhjKCkgLyBzeSk7IHNldEQoZCgpIC8gc3kpOwotCi0gICAgKnhTY2FsZSA9
IHN4OyAqeVNjYWxlID0gc3k7Ci19Ci0KLVFNYXRyaXggS0NhbnZhc01hdHJpeDo6cW1hdHJpeCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4OwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0j
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuY3BwCShyZXZpc2lvbiAx
MjQyNCkKKysrIGtjYW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDM0ICsyOSwyNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiS0NhbnZhc1RyZWVE
ZWJ1Zy5oIgogCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5o
PgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc01hdHJpeC5oPgotI2luY2x1ZGUgPGtjYW52YXMv
UmVuZGVyUGF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgorI2lu
Y2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIktDYW52YXNDb250YWluZXIuaCIKKyNpbmNs
dWRlICJLQ2FudmFzRmlsdGVycy5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5o
IgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KLSNpbmNsdWRl
IDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oPgotI2luY2x1ZGUgPGtj
YW52YXMvZGV2aWNlL0tSZW5kZXJpbmdGaWxsUGFpbnRlci5oPgotI2luY2x1ZGUgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9k
ZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oPgotI2luY2x1ZGUgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50Lmg+Ci0jaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzUmVzb3VyY2VzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5o
PgotCisjaW5jbHVkZSAiS0NhbnZhc1Jlc291cmNlcy5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdE
ZXZpY2UuaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKKyNpbmNsdWRlICJL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWlu
dFNlcnZlclBhdHRlcm4uaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZC5o
IgorI2luY2x1ZGUgIktSZW5kZXJpbmdTdHJva2VQYWludGVyLmgiCiAjaW5jbHVkZSAiS1dRUmVu
ZGVyVHJlZURlYnVnLmgiCi0KLSNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+Ci0KKyNp
bmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgot
I2luY2x1ZGUgPGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5oPgotCi0jaW5jbHVkZSA8
a2RvbS9ET01TdHJpbmcuaD4KKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2lu
Y2x1ZGUgImRvbV9hdG9taWNzdHJpbmcuaCIKICNpbmNsdWRlICJodG1sbmFtZXMuaCIKLQorI2lu
Y2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8cXRleHRzdHJlYW0uaD4KLSNpbmNsdWRlICJGbG9hdFNpemUuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIEtTVkc7CiAKQEAgLTk2LDcgKzg4LDcgQEAKICAgICByZXR1cm4gdHMgPDwgImF0ICgiIDw8
IHIueCgpIDw8ICIsIiA8PCByLnkoKSA8PCAiKSBzaXplICIgPDwgci53aWR0aCgpIDw8ICJ4IiA8
PCByLmhlaWdodCgpOwogfQogCi1ib29sIGhhc0ZyYWN0aW9ucyhkb3VibGUgdmFsKQorYm9vbCBo
YXNGcmFjdGlvbmFsUGFydChkb3VibGUgdmFsKQogewogICAgIGRvdWJsZSBlcHNpbG9uID0gMC4w
MDAxOwogICAgIGludCBpdmFsID0gaW50KHZhbCk7CkBAIC0xMDQsNzAgKzk2LDUyIEBACiAgICAg
cmV0dXJuIChmYWJzKHZhbC1kdmFsKSA+IGVwc2lsb24pOwogfQogCitRVGV4dFN0cmVhbSYgZHVt
cChRVGV4dFN0cmVhbSYgdHMsIGZsb2F0IGYpCit7CisgICAgaWYgKCFoYXNGcmFjdGlvbmFsUGFy
dChmKSkgCisgICAgICAgIHJldHVybiB0cyA8PCBzdGF0aWNfY2FzdDxpbnQ+KGYpOworICAgIHJl
dHVybiB0cyA8PCBmOworfQorCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAm
dHMsIGNvbnN0IEZsb2F0UmVjdCAmcikKIHsKICAgICB0cyA8PCAiYXQgKCI7IAotICAgIGlmICho
YXNGcmFjdGlvbnMoci54KCkpKSAKLSAgICAgICAgdHMgPDwgci54KCk7Ci0gICAgZWxzZSAKLSAg
ICAgICAgdHMgPDwgaW50KHIueCgpKTsKKyAgICBkdW1wKHRzLCByLngoKSk7CiAgICAgdHMgPDwg
IiwiOwotICAgIGlmIChoYXNGcmFjdGlvbnMoci55KCkpKSAKLSAgICAgICAgdHMgPDwgci55KCk7
Ci0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHIueSgpKTsKKyAgICBkdW1wKHRzLCByLnko
KSk7CiAgICAgdHMgPDwgIikgc2l6ZSAiOwotICAgIGlmIChoYXNGcmFjdGlvbnMoci53aWR0aCgp
KSkgCi0gICAgICAgIHRzIDw8IHIud2lkdGgoKTsgCi0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwg
aW50KHIud2lkdGgoKSk7IAorICAgIGR1bXAodHMsIHIud2lkdGgoKSk7CiAgICAgdHMgPDwgIngi
OwotICAgIGlmIChoYXNGcmFjdGlvbnMoci5oZWlnaHQoKSkpIAotICAgICAgICB0cyA8PCByLmhl
aWdodCgpOwotICAgIGVsc2UgCi0gICAgICAgIHRzIDw8IGludChyLmhlaWdodCgpKTsKKyAgICBk
dW1wKHRzLCByLmhlaWdodCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKIFFUZXh0U3RyZWFtICZv
cGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgRmxvYXRQb2ludCAmcCkKIHsKICAgICB0
cyA8PCAiKCI7ICAgIAotICAgIGlmIChoYXNGcmFjdGlvbnMocC54KCkpKQotICAgICAgICB0cyA8
PCBwLngoKTsKLSAgICBlbHNlIAotICAgICAgICB0cyA8PCBpbnQocC54KCkpOyAgICAKKyAgICBk
dW1wKHRzLCBwLngoKSk7CiAgICAgdHMgPDwgIiwiOwotICAgIGlmIChoYXNGcmFjdGlvbnMocC55
KCkpKSAKLSAgICAgICAgdHMgPDwgcC55KCk7Ci0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50
KHAueSgpKTsgICAgCisgICAgZHVtcCh0cywgcC55KCkpOwogICAgIHJldHVybiB0cyA8PCAiKSI7
CiB9CiAKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgRmxv
YXRTaXplICZzKQogeyAgIAogICAgIHRzIDw8ICJ3aWR0aD0iOwotICAgIGlmIChoYXNGcmFjdGlv
bnMocy53aWR0aCgpKSkKLSAgICAgICAgdHMgPDwgcy53aWR0aCgpOwotICAgIGVsc2UKLSAgICAg
ICAgdHMgPDwgaW50KHMud2lkdGgoKSk7CisgICAgZHVtcCh0cywgcy53aWR0aCgpKTsKICAgICB0
cyA8PCAiIGhlaWdodD0iOwotICAgIGlmIChoYXNGcmFjdGlvbnMocy5oZWlnaHQoKSkpIAotICAg
ICAgICB0cyA8PCBzLmhlaWdodCgpOwotICAgIGVsc2UKLSAgICAgICAgdHMgPDwgaW50KHMuaGVp
Z2h0KCkpOwotICAgICByZXR1cm4gdHM7CisgICAgZHVtcCh0cywgcy5oZWlnaHQoKSk7CisgICAg
cmV0dXJuIHRzOwogfQogCi0KLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0
cywgY29uc3QgUU1hdHJpeCAmbSkKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFt
ICZ0cywgY29uc3QgQWZmaW5lVHJhbnNmb3JtICZtKQogewogICAgIGlmIChtLmlzSWRlbnRpdHko
KSkKICAgICAgICAgdHMgPDwgImlkZW50aXR5IjsKICAgICBlbHNlIAogICAgIHsKLSAgICAgICAg
dHMgPDwgInttPSgoIiA8PCBtLm0xMSgpIDw8ICIsIiA8PCBtLm0xMigpIDw8ICIpKCIgPDwgbS5t
MjEoKSA8PCAiLCIgPDwgbS5tMjIoKSA8PCAiKSkiOwotICAgICAgICB0cyA8PCAiIHQ9KCIgPDwg
bS5keCgpIDw8ICIsIiA8PCBtLmR5KCkgPDwgIil9IjsKKyAgICAgICAgdHMgPDwgInttPSgoIiA8
PCBtLmEoKSA8PCAiLCIgPDwgbS5iKCkgPDwgIikoIiA8PCBtLmMoKSA8PCAiLCIgPDwgbS5kKCkg
PDwgIikpIjsKKyAgICAgICAgdHMgPDwgIiB0PSgiIDw8IG0uZSgpIDw8ICIsIiA8PCBtLmYoKSA8
PCAiKX0iOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkBAIC0zMDQsNyArMjc4LDcgQEAKIAog
c3RhdGljIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUmVu
ZGVyUGF0aCAmbykKIHsKLSAgICB0cyA8PCAiICIgPDwgby5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1h
cFJlY3Qoby5yZWxhdGl2ZUJCb3goKSk7CisgICAgdHMgPDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFu
c2Zvcm0oKS5tYXAoby5yZWxhdGl2ZUJCb3goKSk7CiAgICAgCiAgICAgd3JpdGVTdHlsZSh0cywg
byk7CiAgICAgCkBAIC0zMTUsNyArMjg5LDcgQEAKIAogc3RhdGljIFFUZXh0U3RyZWFtICZvcGVy
YXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgS0NhbnZhc0NvbnRhaW5lciAmbykKIHsKLSAg
ICB0cyA8PCAiICIgPDwgby5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoby5yZWxhdGl2ZUJC
b3goKSk7CisgICAgdHMgPDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAoby5yZWxh
dGl2ZUJCb3goKSk7CiAgICAgCiAgICAgd3JpdGVTdHlsZSh0cywgbyk7CiAgICAgCkluZGV4OiBr
Y2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmgJKHJldmlz
aW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAg
ICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI1LDIyICsyNiwyNiBAQAogI2lmIFNWR19TVVBQ
T1JUCiAKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZl
ci5oIgogI2luY2x1ZGUgPHEzcHRybGlzdC5oPgogCi0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3Vy
Y2VMaXN0ZW5lci5oPgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7IC8vIG1vdmUgY29udGVudHMg
b2YgdGhpcyBmaWxlIGludG8gV2ViQ29yZSBuYW1lc3BhY2UgYW5kIHJlbW92ZSB0aGlzCiAKLXR5
cGVkZWYgZW51bQoteworY2xhc3MgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXI7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9CisKK2VudW0gS0NHcmFk
aWVudFNwcmVhZE1ldGhvZCB7CiAgICAgU1BSRUFETUVUSE9EX1BBRCA9IDEsCiAgICAgU1BSRUFE
TUVUSE9EX1JFUEVBVCA9IDIsCiAgICAgU1BSRUFETUVUSE9EX1JFRkxFQ1QgPSA0Ci19IEtDR3Jh
ZGllbnRTcHJlYWRNZXRob2Q7Cit9OwogCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0
cmVhbSAmdHMsIEtDR3JhZGllbnRTcHJlYWRNZXRob2QgbSk7CiAKLXN0cnVjdCBLQ0dyYWRpZW50
T2Zmc2V0UGFpcgoteworc3RydWN0IEtDR3JhZGllbnRPZmZzZXRQYWlyIHsKICAgICBmbG9hdCBv
ZmZzZXQ7CiAgICAgQ29sb3IgY29sb3I7CiB9OwpAQCAtNDksNyArNTQsNyBAQAogewogcHVibGlj
OgogICAgIEtDU29ydGVkR3JhZGllbnRTdG9wTGlzdCgpOwotICAgIHZvaWQgYWRkU3RvcChmbG9h
dCBvZmZzZXQsIGNvbnN0IENvbG9yICZjb2xvcik7CisgICAgdm9pZCBhZGRTdG9wKGZsb2F0IG9m
ZnNldCwgY29uc3QgQ29sb3ImKTsKIAogICAgIHR5cGVkZWYgUTNQdHJMaXN0SXRlcmF0b3I8S0NH
cmFkaWVudE9mZnNldFBhaXI+IEl0ZXJhdG9yOwogCkBAIC02MSw3ICs2Niw2IEBACiAKIFFUZXh0
U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICYsIGNvbnN0IEtDU29ydGVkR3JhZGllbnRT
dG9wTGlzdCAmKTsKIAotY2xhc3MgS0NhbnZhc01hdHJpeDsKIGNsYXNzIEtSZW5kZXJpbmdQYWlu
dFNlcnZlckdyYWRpZW50IDogcHVibGljIEtSZW5kZXJpbmdQYWludFNlcnZlcgogewogcHVibGlj
OgpAQCAtODIsOCArODYsOCBAQAogICAgIGJvb2wgYm91bmRpbmdCb3hNb2RlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRCb3VuZGluZ0JveE1vZGUoYm9vbCBtb2RlID0gdHJ1ZSk7CiAKLSAgICBLQ2Fu
dmFzTWF0cml4IGdyYWRpZW50VHJhbnNmb3JtKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRHcmFkaWVu
dFRyYW5zZm9ybShjb25zdCBLQ2FudmFzTWF0cml4ICZtYXQpOworICAgIEFmZmluZVRyYW5zZm9y
bSBncmFkaWVudFRyYW5zZm9ybSgpIGNvbnN0OworICAgIHZvaWQgc2V0R3JhZGllbnRUcmFuc2Zv
cm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CiAgICAgCiAgICAgS0NhbnZhc1Jlc291cmNlTGlz
dGVuZXIgKmxpc3RlbmVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMaXN0ZW5lcihLQ2FudmFzUmVz
b3VyY2VMaXN0ZW5lciAqbGlzdGVuZXIpOwpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tD
YW52YXNJdGVtUXVhcnR6Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9L
Q2FudmFzSXRlbVF1YXJ0ei5tbQkocmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL2RldmljZS9x
dWFydHovS0NhbnZhc0l0ZW1RdWFydHoubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYg
QEAKICNpbXBvcnQgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgogI2ltcG9ydCAiS1JlbmRlcmlu
Z0ZpbGxQYWludGVyLmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oIgotI2lt
cG9ydCAiS0NhbnZhc01hdHJpeC5oIgogCiAjaW1wb3J0ICJLQ2FudmFzUGF0aFF1YXJ0ei5oIgog
I2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgpAQCAtNDcsOCArNDYsOCBAQAogI2lt
cG9ydCAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbXBvcnQgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgi
CiAjaW1wb3J0ICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKKyNpbXBvcnQgIkludFJlY3QuaCIK
IAotCiBLQ2FudmFzSXRlbVF1YXJ0ejo6S0NhbnZhc0l0ZW1RdWFydHooa2h0bWw6OlJlbmRlclN0
eWxlICpzdHlsZSwgS1NWRzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUpIDogUmVuZGVyUGF0
aChzdHlsZSwgbm9kZSkKIHsKIH0KQEAgLTE5Niw3ICsxOTUsNyBAQAogCiBJbnRSZWN0IEtDYW52
YXNJdGVtUXVhcnR6OjpnZXRBYnNvbHV0ZVJlcGFpbnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZW5j
bG9zaW5nSW50UmVjdChhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3QocmVsYXRpdmVCQm94KHRy
dWUpKSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoYWJzb2x1dGVUcmFuc2Zvcm0oKS5t
YXAocmVsYXRpdmVCQm94KHRydWUpKSk7CiB9CiAKIHZvaWQgS0NhbnZhc0l0ZW1RdWFydHo6OnBh
aW50KFBhaW50SW5mbyAmcGFpbnRJbmZvLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpCkluZGV4
OiBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5tbQko
cmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0Rldmlj
ZVF1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9ydCAiUXVh
cnR6U3VwcG9ydC5oIgogCiAjaW1wb3J0ICJrY2FudmFzL0tDYW52YXMuaCIKLSNpbXBvcnQgIktD
YW52YXNNYXRyaXguaCIKICNpbXBvcnQgIktDYW52YXNJdGVtUXVhcnR6LmgiCiAjaW1wb3J0ICJL
UmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdTdHJva2VQYWludGVy
LmgiCkBAIC01NCwxOSArNTMsMTcgQEAKICAgICBbbV9uc0dyYXBoaWNzQ29udGV4dCByZWxlYXNl
XTsKIH0KIAotS0NhbnZhc01hdHJpeCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6Y29u
Y2F0Q1RNKGNvbnN0IEtDYW52YXNNYXRyaXggJndvcmxkTWF0cml4KQorQWZmaW5lVHJhbnNmb3Jt
IEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6Ojpjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB3b3JsZE1hdHJpeCkKIHsKLSAgICBLQ2FudmFzTWF0cml4IHJldCA9IGN0bSgpOwot
ICAgIENHQWZmaW5lVHJhbnNmb3JtIHdNYXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybU1ha2Uod29y
bGRNYXRyaXguYSgpLCB3b3JsZE1hdHJpeC5iKCksIHdvcmxkTWF0cml4LmMoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGRNYXRyaXgu
ZCgpLCB3b3JsZE1hdHJpeC5lKCksIHdvcmxkTWF0cml4LmYoKSk7Ci0gICAgQ0dDb250ZXh0Q29u
Y2F0Q1RNKG1fY2dDb250ZXh0LCB3TWF0cml4KTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmV0ID0g
Y3RtKCk7CisgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKG1fY2dDb250ZXh0LCB3b3JsZE1hdHJpeCk7
CiAgICAgcmV0dXJuIHJldDsKIH0KIAotS0NhbnZhc01hdHJpeCBLUmVuZGVyaW5nRGV2aWNlQ29u
dGV4dFF1YXJ0ejo6Y3RtKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBLUmVuZGVyaW5nRGV2aWNl
Q29udGV4dFF1YXJ0ejo6Y3RtKCkgY29uc3QKIHsKICAgICBDR0FmZmluZVRyYW5zZm9ybSBjb250
ZXh0Q1RNID0gQ0dDb250ZXh0R2V0Q1RNKG1fY2dDb250ZXh0KTsKLSAgICByZXR1cm4gS0NhbnZh
c01hdHJpeChjb250ZXh0Q1RNLmEsIGNvbnRleHRDVE0uYiwgY29udGV4dENUTS5jLCBjb250ZXh0
Q1RNLmQsIGNvbnRleHRDVE0udHgsIGNvbnRleHRDVE0udHkpOworICAgIHJldHVybiBBZmZpbmVU
cmFuc2Zvcm0oY29udGV4dENUTS5hLCBjb250ZXh0Q1RNLmIsIGNvbnRleHRDVE0uYywgY29udGV4
dENUTS5kLCBjb250ZXh0Q1RNLnR4LCBjb250ZXh0Q1RNLnR5KTsKIH0KIAogSW50UmVjdCBLUmVu
ZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6bWFwRnJvbVZpc3VhbChjb25zdCBJbnRSZWN0ICZy
ZWN0KQpAQCAtMTkwLDcgKzE4Nyw3IEBACiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIFJl
c291cmNlIENyZWF0aW9uCiAKLUtSZW5kZXJpbmdQYWludFNlcnZlciAqS1JlbmRlcmluZ0Rldmlj
ZVF1YXJ0ejo6Y3JlYXRlUGFpbnRTZXJ2ZXIoY29uc3QgS0NQYWludFNlcnZlclR5cGUgJnR5cGUp
IGNvbnN0CitLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKktSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmNy
ZWF0ZVBhaW50U2VydmVyKEtDUGFpbnRTZXJ2ZXJUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgS1Jl
bmRlcmluZ1BhaW50U2VydmVyICpuZXdTZXJ2ZXIgPSBOVUxMOwogICAgIHN3aXRjaCh0eXBlKSB7
CkBAIC0yMjIsNyArMjE5LDcgQEAKICAgICByZXR1cm4gaXRlbTsKIH0KIAotS0NhbnZhc1Jlc291
cmNlICpLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpjcmVhdGVSZXNvdXJjZShjb25zdCBLQ1Jlc291
cmNlVHlwZSAmdHlwZSkgY29uc3QKK0tDYW52YXNSZXNvdXJjZSogS1JlbmRlcmluZ0RldmljZVF1
YXJ0ejo6Y3JlYXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUgdHlwZSkgY29uc3QKIHsKICAgICBz
d2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFJTX0NMSVBQRVI6CkBAIC0yNDAsNyArMjM3LDcgQEAK
ICAgICByZXR1cm4gMDsKIH0KIAotS0NhbnZhc0ZpbHRlckVmZmVjdCAqS1JlbmRlcmluZ0Rldmlj
ZVF1YXJ0ejo6Y3JlYXRlRmlsdGVyRWZmZWN0KGNvbnN0IEtDRmlsdGVyRWZmZWN0VHlwZSAmdHlw
ZSkgY29uc3QKK0tDYW52YXNGaWx0ZXJFZmZlY3QgKktSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmNy
ZWF0ZUZpbHRlckVmZmVjdChLQ0ZpbHRlckVmZmVjdFR5cGUgdHlwZSkgY29uc3QKIHsKICAgICBz
d2l0Y2godHlwZSkKICAgICB7CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmlu
Z1BhaW50U2VydmVyUXVhcnR6Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0
ei9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHoubW0JKHJldmlzaW9uIDEyNDI0KQorKysga2Nh
bnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ei5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMjIgKzI0LDIwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCiAj
aW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHouaCIKLSNpbXBvcnQgIlF1YXJ0elN1
cHBvcnQuaCIKLSNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXNRdWFydHouaCIKLSNpbXBvcnQgIktS
ZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKIAogI2ltcG9ydCAiS0NhbnZhc1JlbmRlcmluZ1N0eWxl
LmgiCi0jaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKKyNpbXBvcnQgIktDYW52YXNS
ZXNvdXJjZUxpc3RlbmVyLmgiCisjaW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgiCisj
aW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlLmgiCisjaW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlUXVh
cnR6LmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKKyNpbXBvcnQgIktSZW5k
ZXJpbmdQYWludFNlcnZlci5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIK
LSNpbXBvcnQgIktDYW52YXNNYXRyaXguaCIKLSNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2UuaCIK
LQogI2ltcG9ydCAiS1dRTG9nZ2luZy5oIgorI2ltcG9ydCAiUXVhcnR6U3VwcG9ydC5oIgogCiB2
b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ekhlbHBlcjo6c3Ryb2tlUGF0aChDR0NvbnRl
eHRSZWYgY29udGV4dCwgY29uc3QgUmVuZGVyUGF0aCAqcmVuZGVyUGF0aCkKIHsKQEAgLTE2NCw5
ICsxNjIsOSBAQAogICAgICAgICAgICAgCiAgICAgLy8gUGF0dGVybnMgZG9uJ3Qgc2VlbSB0byBy
ZXNlcGVjdCB0aGUgQ1RNIHVubGVzcyB3ZSBtYWtlIHRoZW0uLi4KICAgICBDR0FmZmluZVRyYW5z
Zm9ybSBjdG0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7Ci0gICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm0ocGF0dGVyblRyYW5zZm9ybSgpLnFtYXRy
aXgoKSk7Ci0gICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQodHJhbnNmb3Jt
LCBjdG0pOworICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNm
b3JtQ29uY2F0KHBhdHRlcm5UcmFuc2Zvcm0oKSwgY3RtKTsKIAorICAgIC8vIEZJWE1FOiBJIGJl
bGlldmUgdGhpcyB3aWxsbmVlZCB0byB1c2UgV0tTZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZS4K
ICAgICBDR1NpemUgcGhhc2UgPSBDR1NpemVNYWtlKGJib3goKS54KCksIGJib3goKS55KCkpOwog
ICAgIENHQ29udGV4dFNldFBhdHRlcm5QaGFzZShjb250ZXh0LCBwaGFzZSk7CiAKQEAgLTIzMCw0
ICsyMjgsMyBAQAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiB9CiAjZW5k
aWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1YXJ0elN1
cHBvcnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1YXJ0elN1cHBv
cnQubW0JKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1YXJ0elN1
cHBvcnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBTVkdfU1VQUE9S
VAogI2ltcG9ydCAiUXVhcnR6U3VwcG9ydC5oIgogCi0jaW1wb3J0ICJLQ2FudmFzTWF0cml4Lmgi
CiAjaW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5n
RmlsbFBhaW50ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdTdHJva2VQYWludGVyLmgiCkluZGV4
OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5tbQko
cmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNl
c1F1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogCiAjaW1wb3J0ICJr
Y2FudmFzL0tDYW52YXMuaCIKICNpbXBvcnQgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW1wb3J0ICJL
Q2FudmFzTWF0cml4LmgiCiAKICNpbXBvcnQgIktDYW52YXNQYXRoUXVhcnR6LmgiCiAjaW1wb3J0
ICJLUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgiCkBAIC00MSw2ICs0MCw4IEBACiAKICNpbXBvcnQg
PGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIHZv
aWQgS0NhbnZhc0NvbnRhaW5lclF1YXJ0ejo6Y2FsY01pbk1heFdpZHRoKCkKIHsKICAgICBLSFRN
TEFzc2VydCggIW1pbk1heEtub3duKCkpOwpAQCAtMTAyLDEyICsxMDMsMTIgQEAKICAgICAKICAg
ICBpZiAocGFyZW50WCAhPSAwIHx8IHBhcmVudFkgIT0gMCkgewogICAgICAgICAvLyBUcmFuc2xh
dGUgZnJvbSBwYXJlbnQgb2Zmc2V0cyAoa2h0bWwpIHRvIGEgcmVsYXRpdmUgdHJhbnNmb3JtIChr
c3ZnMi9rY2FudmFzKQotICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0oUU1hdHJpeCgp
LnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgICAgIGRldmljZUNvbnRleHQtPmNv
bmNhdENUTSh0cmFuc2xhdGlvbk1hdHJpeChwYXJlbnRYLCBwYXJlbnRZKSk7CiAgICAgICAgIHBh
cmVudFggPSBwYXJlbnRZID0gMDsKICAgICB9CiAgICAgCi0gICAgaWYgKHZpZXdwb3J0KCkuaXNW
YWxpZCgpKQotICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5z
bGF0ZSh2aWV3cG9ydCgpLngoKSwgdmlld3BvcnQoKS55KCkpKTsKKyAgICBpZiAoIXZpZXdwb3J0
KCkuaXNFbXB0eSgpKQorICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRp
b25NYXRyaXgodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpKSk7CiAgICAgCiAgICAgaWYg
KCFsb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkKICAgICAgICAgZGV2aWNlQ29udGV4dC0+
Y29uY2F0Q1RNKGxvY2FsVHJhbnNmb3JtKCkpOwpAQCAtMTI1LDcgKzEyNiw3IEBACiAgICAgaWYg
KGZpbHRlcikKICAgICAgICAgZmlsdGVyLT5wcmVwYXJlRmlsdGVyKHJlbGF0aXZlQkJveCh0cnVl
KSk7CiAgICAgCi0gICAgaWYgKCF2aWV3Qm94KCkuaXNOdWxsKCkpIHsKKyAgICBpZiAoIXZpZXdC
b3goKS5pc0VtcHR5KCkpIHsKICAgICAgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdCA9IHZpZXdw
b3J0KCk7CiAgICAgICAgIGlmICghcGFyZW50KCktPmlzS0NhbnZhc0NvbnRhaW5lcigpKQogICAg
ICAgICAgICAgdmlld3BvcnRSZWN0ID0gRmxvYXRSZWN0KHZpZXdwb3J0KCkueCgpLCB2aWV3cG9y
dCgpLnkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkpOwpAQCAtMTc4LDE0ICsxNzksMTQgQEAKICAgICBy
ZXR1cm4gbV9hbGlnbjsKIH0KIAotUU1hdHJpeCBLQ2FudmFzQ29udGFpbmVyUXVhcnR6OjphYnNv
bHV0ZVRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lclF1
YXJ0ejo6YWJzb2x1dGVUcmFuc2Zvcm0oKSBjb25zdAogewotICAgIFFNYXRyaXggdHJhbnNmb3Jt
ID0gS0NhbnZhc0NvbnRhaW5lcjo6YWJzb2x1dGVUcmFuc2Zvcm0oKTsKLSAgICBpZiAoIXZpZXdC
b3goKS5pc051bGwoKSkgeworICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBLQ2FudmFz
Q29udGFpbmVyOjphYnNvbHV0ZVRyYW5zZm9ybSgpOworICAgIGlmICghdmlld0JveCgpLmlzRW1w
dHkoKSkgewogICAgICAgICBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0ID0gdmlld3BvcnQoKTsKICAg
ICAgICAgaWYgKCFwYXJlbnQoKS0+aXNLQ2FudmFzQ29udGFpbmVyKCkpCiAgICAgICAgICAgICB2
aWV3cG9ydFJlY3QgPSBGbG9hdFJlY3Qodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpLCB3
aWR0aCgpLCBoZWlnaHQoKSk7Ci0gICAgICAgIHRyYW5zZm9ybSAqPSBnZXRBc3BlY3RSYXRpbyh2
aWV3Qm94KCksIHZpZXdwb3J0UmVjdCkucW1hdHJpeCgpOworICAgICAgICB0cmFuc2Zvcm0gKj0g
Z2V0QXNwZWN0UmF0aW8odmlld0JveCgpLCB2aWV3cG9ydFJlY3QpOwogICAgIH0KICAgICByZXR1
cm4gdHJhbnNmb3JtOwogfQpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVt
UXVhcnR6LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVt
UXVhcnR6LmgJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52
YXNJdGVtUXVhcnR6LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywx
NCArMjMsMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpbXBvcnQgImtjYW52YXMvUmVu
ZGVyUGF0aC5oIgorI2ltcG9ydCAiS0NhbnZhc0l0ZW0uaCIKIAotI2luY2x1ZGUgPHFtYXRyaXgu
aD4KLQogY2xhc3MgS0NhbnZhc0l0ZW1RdWFydHogOiBwdWJsaWMgUmVuZGVyUGF0aCB7CiBwdWJs
aWM6Ci0gICAgS0NhbnZhc0l0ZW1RdWFydHooV2ViQ29yZTo6UmVuZGVyU3R5bGUqLCBXZWJDb3Jl
OjpTVkdTdHlsZWRFbGVtZW50SW1wbCopOwotICAgIHZpcnR1YWwgfktDYW52YXNJdGVtUXVhcnR6
KCkgeyB9CisgICAgS0NhbnZhc0l0ZW1RdWFydHooUmVuZGVyU3R5bGUqLCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCopOwogICAgIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGJib3hGb3JQYXRoKGJvb2wg
aW5jbHVkZVN0cm9rZSkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhpdHNQYXRoKGNvbnN0IEZs
b2F0UG9pbnQmLCBib29sIGZpbGwgLyogZmFsc2UgbWVhbnMgc3Ryb2tlICovKSBjb25zdDsKQEAg
LTQwLDcgKzM3LDggQEAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpOwotICAgIHZpcnR1YWwg
Ym9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHks
IFdlYkNvcmU6OkhpdFRlc3RBY3Rpb24pOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChO
b2RlSW5mbyYsIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24pOwor
CiBwcml2YXRlOgogICAgIHZvaWQgZHJhd01hcmtlcnNJZk5lZWRlZChjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBLQ2FudmFzUGF0aCopIGNvbnN0OwogfTsKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1
YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZp
Y2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHouaAkocmV2aXNpb24gMTI0MjQpCisrKyBr
Y2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMzkgKzI4LDM1IEBACiAjZGVmaW5lIEtSZW5k
ZXJpbmdEZXZpY2VRdWFydHpfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbXBvcnQgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2UuaCIK
IAotdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENHUmVjdDsKLXR5cGVkZWYgc3RydWN0IENHQ29udGV4
dCAqQ0dDb250ZXh0UmVmOwotCiAjaWYgX19PQkpDX18KIEBjbGFzcyBOU0dyYXBoaWNzQ29udGV4
dDsKICNlbHNlCiBjbGFzcyBOU0dyYXBoaWNzQ29udGV4dDsKLSNlbmRpZiAvLyBTVkdfU1VQUE9S
VAogI2VuZGlmCiAKIGNsYXNzIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6IDogcHVibGlj
IEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0CiB7CiBwdWJsaWM6Ci0gICAgS1JlbmRlcmluZ0Rldmlj
ZUNvbnRleHRRdWFydHooQ0dDb250ZXh0UmVmIGNvbnRleHQpOworICAgIEtSZW5kZXJpbmdEZXZp
Y2VDb250ZXh0UXVhcnR6KENHQ29udGV4dFJlZik7CiAgICAgdmlydHVhbCB+S1JlbmRlcmluZ0Rl
dmljZUNvbnRleHRRdWFydHooKTsKICAgICAKLSAgICB2aXJ0dWFsIEtDYW52YXNNYXRyaXggY29u
Y2F0Q1RNKGNvbnN0IEtDYW52YXNNYXRyaXggJndvcmxkTWF0cml4KTsKLSAgICB2aXJ0dWFsIEtD
YW52YXNNYXRyaXggY3RtKCkgY29uc3Q7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gY29u
Y2F0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtIGN0bSgpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgSW50UmVjdCBtYXBGcm9tVmlzdWFs
KGNvbnN0IEludFJlY3QgJnJlY3QpOwotICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChj
b25zdCBJbnRSZWN0ICZyZWN0KTsKKyAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChj
b25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCBJbnRSZWN0IG1hcFRvVmlzdWFsKGNvbnN0IElu
dFJlY3QmKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQYXRoKCk7CiAgICAgdmlydHVh
bCB2b2lkIGFkZFBhdGgoY29uc3QgS0NhbnZhc1BhdGgqKTsKICAgICAKICAgICBDR0NvbnRleHRS
ZWYgY2dDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jZ0NvbnRleHQ7IH07Ci0gICAgTlNHcmFw
aGljc0NvbnRleHQgKm5zR3JhcGhpY3NDb250ZXh0KCk7CisgICAgTlNHcmFwaGljc0NvbnRleHQq
IG5zR3JhcGhpY3NDb250ZXh0KCk7CiAgICAgCiBwcml2YXRlOgogICAgIENHQ29udGV4dFJlZiBt
X2NnQ29udGV4dDsKLSAgICBOU0dyYXBoaWNzQ29udGV4dCAqbV9uc0dyYXBoaWNzQ29udGV4dDsK
KyAgICBOU0dyYXBoaWNzQ29udGV4dCogbV9uc0dyYXBoaWNzQ29udGV4dDsKIH07CiAKIGNsYXNz
IEtSZW5kZXJpbmdEZXZpY2VRdWFydHogOiBwdWJsaWMgS1JlbmRlcmluZ0RldmljZQpAQCAtNzEs
MzEgKzY3LDMyIEBACiAKICAgICB2aXJ0dWFsIGJvb2wgaXNCdWZmZXJlZCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAq
cG9wQ29udGV4dCgpOwotICAgIHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2
aWNlQ29udGV4dCAqY29udGV4dCk7CisgICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4
dCogcG9wQ29udGV4dCgpOworICAgIHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dCopOwogCiAgICAgLy8gY29udGV4dCBtYW5hZ2VtZW50LgotICAgIEtSZW5k
ZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6ICpxdWFydHpDb250ZXh0KCkgY29uc3Q7CisgICAgS1Jl
bmRlcmluZ0RldmljZUNvbnRleHRRdWFydHoqIHF1YXJ0ekNvbnRleHQoKSBjb25zdDsKICAgICBD
R0NvbnRleHRSZWYgY3VycmVudENHQ29udGV4dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgS1JlbmRl
cmluZ0RldmljZUNvbnRleHQgKmNvbnRleHRGb3JJbWFnZShLQ2FudmFzSW1hZ2UgKikgY29uc3Q7
CisgICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCogY29udGV4dEZvckltYWdlKEtD
YW52YXNJbWFnZSopIGNvbnN0OwogCi0gICAgdmlydHVhbCBRU3RyaW5nIHN0cmluZ0ZvclBhdGgo
Y29uc3QgS0NhbnZhc1BhdGgqIHBhdGgpOworICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQ
YXRoKGNvbnN0IEtDYW52YXNQYXRoKik7CiAKICAgICAvLyBSZXNvdXJjZSBjcmVhdGlvbgotICAg
IHZpcnR1YWwgS0NhbnZhc1Jlc291cmNlICpjcmVhdGVSZXNvdXJjZShjb25zdCBLQ1Jlc291cmNl
VHlwZSAmdHlwZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKmNy
ZWF0ZVBhaW50U2VydmVyKGNvbnN0IEtDUGFpbnRTZXJ2ZXJUeXBlICZ0eXBlKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QgKmNyZWF0ZUZpbHRlckVmZmVjdChjb25zdCBL
Q0ZpbHRlckVmZmVjdFR5cGUgJnR5cGUpIGNvbnN0OworICAgIHZpcnR1YWwgS0NhbnZhc1Jlc291
cmNlKiBjcmVhdGVSZXNvdXJjZShLQ1Jlc291cmNlVHlwZSkgY29uc3Q7CisgICAgdmlydHVhbCBL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXIqIGNyZWF0ZVBhaW50U2VydmVyKEtDUGFpbnRTZXJ2ZXJUeXBl
KSBjb25zdDsKKyAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QqIGNyZWF0ZUZpbHRlckVm
ZmVjdChLQ0ZpbHRlckVmZmVjdFR5cGUpIGNvbnN0OwogICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgq
IGNyZWF0ZVBhdGgoKSBjb25zdDsKICAgICAKICAgICAvLyBpdGVtIGNyZWF0aW9uCi0gICAgdmly
dHVhbCBSZW5kZXJQYXRoICpjcmVhdGVJdGVtKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJl
bmRlclN0eWxlICpzdHlsZSwgS1NWRzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUsIEtDYW52
YXNQYXRoKiBwYXRoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEtDYW52YXNDb250YWluZXIgKmNyZWF0
ZUNvbnRhaW5lcihSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUs
IEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJl
bmRlclBhdGgqIGNyZWF0ZUl0ZW0oUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSosIFNWR1N0eWxl
ZEVsZW1lbnRJbXBsKiwgS0NhbnZhc1BhdGgqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEtDYW52YXND
b250YWluZXIqIGNyZWF0ZUNvbnRhaW5lcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKiwgU1ZH
U3R5bGVkRWxlbWVudEltcGwqKSBjb25zdDsKIAogICAgIC8vIGZpbHRlcnMgKG1vc3RseSBkZWJ1
Z2dpbmcpCiAgICAgc3RhdGljIGJvb2wgZmlsdGVyc0VuYWJsZWQoKTsKICAgICBzdGF0aWMgdm9p
ZCBzZXRGaWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyBib29sIEtSZW5k
ZXJpbmdEZXZpY2VRdWFydHo6OmhhcmR3YXJlUmVuZGVyaW5nRW5hYmxlZCgpOwotICAgIHN0YXRp
YyB2b2lkIEtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OnNldEhhcmR3YXJlUmVuZGVyaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpOworICAgIHN0YXRpYyBib29sIGhhcmR3YXJlUmVuZGVyaW5nRW5hYmxl
ZCgpOworICAgIHN0YXRpYyB2b2lkIHNldEhhcmR3YXJlUmVuZGVyaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpOwogfTsKIAorI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52
YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudFF1YXJ0ei5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ1BhaW50U2VydmVy
R3JhZGllbnRRdWFydHoubW0JKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvcXVh
cnR6L0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50UXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwyNSArMjgsMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9S
VAogI2ltcG9ydCAiS1JlbmRlcmluZ1BhaW50U2VydmVyUXVhcnR6LmgiCi0jaW1wb3J0ICJRdWFy
dHpTdXBwb3J0LmgiCiAKLSNpbXBvcnQgInJlbmRlcl9vYmplY3QuaCIKLQotI2ltcG9ydCAia2Nh
bnZhcy9LQ2FudmFzLmgiCisjaW1wb3J0ICJLQ2FudmFzSW1hZ2UuaCIKICNpbXBvcnQgIktDYW52
YXNSZW5kZXJpbmdTdHlsZS5oIgotI2ltcG9ydCAiS1JlbmRlcmluZ1BhaW50U2VydmVyLmgiCisj
aW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIgorI2ltcG9ydCAiS0NhbnZhc1Jlc291
cmNlc1F1YXJ0ei5oIgorI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgogI2ltcG9y
dCAiS1JlbmRlcmluZ0ZpbGxQYWludGVyLmgiCisjaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdTdHJva2VQYWludGVyLmgiCi0jaW1wb3J0ICJLQ2Fu
dmFzTWF0cml4LmgiCi0jaW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgiCi0KLSNpbXBv
cnQgIktDYW52YXNSZXNvdXJjZXNRdWFydHouaCIKLSNpbXBvcnQgIktDYW52YXNJbWFnZS5oIgot
Ci0KKyNpbXBvcnQgIlF1YXJ0elN1cHBvcnQuaCIKKyNpbXBvcnQgImtjYW52YXMvS0NhbnZhcy5o
IgorI2ltcG9ydCAicmVuZGVyX29iamVjdC5oIgogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9u
cy5oPgogCi0KIC8vIE1heWJlIHRoaXMgc2hvdWxkIGJlIGluIGEgYmFzZSBjbGFzcyBpbnN0ZWFk
Li4uCiBzdGF0aWMgS0NhbnZhc0ltYWdlKiBzZXR1cFNoYWRpbmdXaXRoU3R5bGUoY29uc3QgS1Jl
bmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQgKnNlcnZlciwgQ0dTaGFkaW5nUmVmIHNoYWRpbmcs
IGNvbnN0IGtodG1sOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgS0NQYWludFRhcmdldFR5
cGUgdHlwZSwgYm9vbCBwYWludGluZ1RleHQpCiB7CkBAIC02Nyw4ICs2Miw3IEBACiAgICAgfQog
ICAgIAogICAgIC8vIGFwcGx5IHRoZSBncmFkaWVudCdzIG93biB0cmFuc2Zvcm0KLSAgICBDR0Fm
ZmluZVRyYW5zZm9ybSBncmFkaWVudFRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtKHNlcnZl
ci0+Z3JhZGllbnRUcmFuc2Zvcm0oKS5xbWF0cml4KCkpOwotICAgIENHQ29udGV4dENvbmNhdENU
TShjb250ZXh0LCBncmFkaWVudFRyYW5zZm9ybSk7CisgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNv
bnRleHQsIHNlcnZlci0+Z3JhZGllbnRUcmFuc2Zvcm0oKSk7CiAgICAgCiAgICAgQ0dDb250ZXh0
U2V0QWxwaGEoY29udGV4dCwgcmVuZGVyU3R5bGUtPm9wYWNpdHkoKSk7CiAgICAgCkluZGV4OiBr
Y2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0ZpbHRlclF1YXJ0ei5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0ZpbHRlclF1YXJ0ei5tbQkocmV2aXNpb24g
MTI0MjQpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0ZpbHRlclF1YXJ0ei5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjcsMjUgKzI3LDI1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aWYgU1ZHX1NVUFBPUlQKICNpbXBvcnQgIktDYW52YXNGaWx0ZXJRdWFydHouaCIKKworI2ltcG9y
dCAiSW50UmVjdC5oIgogI2ltcG9ydCAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCi0jaW1wb3J0
ICJLQ2FudmFzTWF0cml4LmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgiCisj
aW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCisjaW1wb3J0ICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNp
bXBvcnQgIlF1YXJ0elN1cHBvcnQuaCIKLSNpbXBvcnQgIktXUUV4Y2VwdGlvbnMuaCIKKyNpbXBv
cnQgIldLQXJpdGhtZXRpY0ZpbHRlci5oIgogI2ltcG9ydCAiV0tEaWZmdXNlTGlnaHRpbmdGaWx0
ZXIuaCIKKyNpbXBvcnQgIldLRGlzdGFudExpZ2h0RmlsdGVyLmgiCisjaW1wb3J0ICJXS05vcm1h
bE1hcEZpbHRlci5oIgorI2ltcG9ydCAiV0tQb2ludExpZ2h0RmlsdGVyLmgiCiAjaW1wb3J0ICJX
S1NwZWN1bGFyTGlnaHRpbmdGaWx0ZXIuaCIKICNpbXBvcnQgIldLU3BvdExpZ2h0RmlsdGVyLmgi
Ci0jaW1wb3J0ICJXS1BvaW50TGlnaHRGaWx0ZXIuaCIKLSNpbXBvcnQgIldLRGlzdGFudExpZ2h0
RmlsdGVyLmgiCi0jaW1wb3J0ICJXS05vcm1hbE1hcEZpbHRlci5oIgotI2ltcG9ydCAiV0tBcml0
aG1ldGljRmlsdGVyLmgiCi0KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2lt
cG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogCi0jaW1wb3J0ICJJbnRSZWN0LmgiCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgot
CiBzdGF0aWMgUVN0cmluZyBLQ1ByZXZpb3VzRmlsdGVyT3V0cHV0TmFtZSA9ICJfX3ByZXZpb3Vz
T3V0cHV0X18iOwogCiBzdGF0aWMgaW5saW5lIENJQ29sb3IgKmNpQ29sb3IoY29uc3QgQ29sb3Ig
JmMpCkBAIC03OCw3ICs3OCw3IEBACiAKIHZvaWQgS0NhbnZhc0ZpbHRlclF1YXJ0ejo6cHJlcGFy
ZUZpbHRlcihjb25zdCBGbG9hdFJlY3QgJmJib3gpCiB7Ci0gICAgaWYgKCFiYm94LmlzVmFsaWQo
KSB8fCAhS1JlbmRlcmluZ0RldmljZVF1YXJ0ejo6ZmlsdGVyc0VuYWJsZWQoKSkKKyAgICBpZiAo
YmJveC5pc0VtcHR5KCkgfHwgIUtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2VmZmVjdHMuaXNFbXB0eSgpKQpAQCAt
OTQsMTcgKzk0LDE3IEBACiAgICAgICAgIGNvbnRleHRPcHRpb25zID0gW05TRGljdGlvbmFyeSBk
aWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNd
LCBrQ0lDb250ZXh0VXNlU29mdHdhcmVSZW5kZXJlciwgbmlsXTsKICAgICAKICAgICBtX2ZpbHRl
ckNJQ29udGV4dCA9IFtbQ0lDb250ZXh0IGNvbnRleHRXaXRoQ0dDb250ZXh0OmNnQ29udGV4dCBv
cHRpb25zOmNvbnRleHRPcHRpb25zXSByZXRhaW5dOwotICAgIG1fZmlsdGVyQ0dMYXllciA9IFtt
X2ZpbHRlckNJQ29udGV4dCBjcmVhdGVDR0xheWVyV2l0aFNpemU6Q0dSZWN0KGJib3gpLnNpemUg
aW5mbzpOVUxMXTsKKyAgICBtX2ZpbHRlckNHTGF5ZXIgPSBbbV9maWx0ZXJDSUNvbnRleHQgY3Jl
YXRlQ0dMYXllcldpdGhTaXplOmJib3guc2l6ZSgpIGluZm86TlVMTF07CiAgICAgCiAgICAgS1Jl
bmRlcmluZ0RldmljZUNvbnRleHQgKmZpbHRlckNvbnRleHQgPSBuZXcgS1JlbmRlcmluZ0Rldmlj
ZUNvbnRleHRRdWFydHooQ0dMYXllckdldENvbnRleHQobV9maWx0ZXJDR0xheWVyKSk7CiAgICAg
UVBhaW50ZXI6OnJlbmRlcmluZ0RldmljZSgpLT5wdXNoQ29udGV4dChmaWx0ZXJDb250ZXh0KTsK
ICAgICAKLSAgICBmaWx0ZXJDb250ZXh0LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5zbGF0ZSgt
MS4wZiAqIGJib3gueCgpLCAtMS4wZiAqIGJib3gueSgpKSk7CisgICAgZmlsdGVyQ29udGV4dC0+
Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KC1iYm94LnkoKSwgLWJib3gueCgpKSk7CiB9CiAK
IHZvaWQgS0NhbnZhc0ZpbHRlclF1YXJ0ejo6YXBwbHlGaWx0ZXIoY29uc3QgRmxvYXRSZWN0ICZi
Ym94KQogewotICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwgIUtSZW5kZXJpbmdEZXZpY2VRdWFy
dHo6OmZpbHRlcnNFbmFibGVkKCkgfHwgbV9lZmZlY3RzLmlzRW1wdHkoKSkKKyAgICBpZiAoYmJv
eC5pc0VtcHR5KCkgfHwgIUtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkg
fHwgbV9lZmZlY3RzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gcmVzdG9y
ZSB0aGUgcHJldmlvdXMgY29udGV4dCwgZGVsZXRlIHRoZSBmaWx0ZXIgY29udGV4dC4KQEAgLTU0
Miw3ICs1NDIsNyBAQAogICAgIFtmaWx0ZXIgc2V0VmFsdWU6aW5wdXRDb2xvciBmb3JLZXk6QCJp
bnB1dENvbG9yIl07CiAgICAgCiAgICAgQ0dSZWN0IGNyb3BSZWN0ID0gQ0dSZWN0TWFrZSgwLDAs
MTAwMCwxMDAwKTsgLy8gSEFDSwotICAgIGlmIChzdWJSZWdpb24oKS5pc1ZhbGlkKCkpCisgICAg
aWYgKCFzdWJSZWdpb24oKS5pc0VtcHR5KCkpCiAgICAgICAgIGNyb3BSZWN0ID0gQ0dSZWN0KHN1
YlJlZ2lvbigpKTsKICAgICBGRV9RVUFSVFpfQ1JPUF9UT19SRUNUKGNyb3BSZWN0KTsKICAgICAK
QEAgLTU2MSwxMiArNTYxLDEyIEBACiAgICAgW2ZpbHRlciBzZXREZWZhdWx0c107CiAgICAgW2Zp
bHRlciBzZXRWYWx1ZTpjaUltYWdlIGZvcktleTpAImlucHV0SW1hZ2UiXTsKICAgICAKLSAgICBD
R0FmZmluZVRyYW5zZm9ybSBjZ1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZSgxLDAs
MCwtMSwwLGltYWdlKCkucmVjdCgpLmJvdHRvbSgpKTsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSBj
Z1RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZSgxLCAwLCAwLCAtMSwgMCwgaW1hZ2Uo
KS5yZWN0KCkuYm90dG9tKCkpOwogICAgIE5TQWZmaW5lVHJhbnNmb3JtICpuc1RyYW5zZm9ybSA9
IFtOU0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1dOwogICAgIFtuc1RyYW5zZm9ybSBzZXRUcmFu
c2Zvcm1TdHJ1Y3Q6KigoTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QgKikmY2dUcmFuc2Zvcm0pXTsK
ICAgICBbZmlsdGVyIHNldFZhbHVlOm5zVHJhbnNmb3JtIGZvcktleTpAImlucHV0VHJhbnNmb3Jt
Il07CiAgICAgCi0gICAgaWYgKHN1YlJlZ2lvbigpLmlzVmFsaWQoKSkgeworICAgIGlmICghc3Vi
UmVnaW9uKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIENJRmlsdGVyICpzY2FsZUltYWdlID0gW0NJ
RmlsdGVyIGZpbHRlcldpdGhOYW1lOkAiQ0lBZmZpbmVUcmFuc2Zvcm0iXTsKICAgICAgICAgW3Nj
YWxlSW1hZ2Ugc2V0RGVmYXVsdHNdOwogICAgICAgICBbc2NhbGVJbWFnZSBzZXRWYWx1ZTpbZmls
dGVyIHZhbHVlRm9yS2V5OkAib3V0cHV0SW1hZ2UiXSBmb3JLZXk6QCJpbnB1dEltYWdlIl07Cklu
ZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgJ
KHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNvdXJj
ZXNRdWFydHouaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDEzICsy
MywxMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2ltcG9ydCAiQWZmaW5lVHJhbnNmb3Jt
LmgiCisjaW1wb3J0ICJGbG9hdFJlY3QuaCIKICNpbXBvcnQgIktDYW52YXNJbWFnZS5oIgotI2lt
cG9ydCAiS0NhbnZhc1Jlc291cmNlcy5oIgogI2ltcG9ydCAiS0NhbnZhc0NvbnRhaW5lci5oIgot
I2ltcG9ydCA8cW1hdHJpeC5oPgogCi10eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQgKkNHQ29udGV4
dFJlZjsKLXR5cGVkZWYgc3RydWN0IENHTGF5ZXIgKkNHTGF5ZXJSZWY7Cit0eXBlZGVmIHN0cnVj
dCBDR0xheWVyKiBDR0xheWVyUmVmOwogCiBjbGFzcyBLQ2FudmFzQ29udGFpbmVyUXVhcnR6IDog
cHVibGljIEtDYW52YXNDb250YWluZXIgewogcHVibGljOgpAQCAtNDIsOCArNDEsOCBAQAogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZv
ICZwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CiAgICAgCi0gICAgdmlydHVh
bCBJbnRSZWN0IGdldEFic29sdXRlUmVwYWludFJlY3QoKSB7IHJldHVybiBlbmNsb3NpbmdJbnRS
ZWN0KGFic29sdXRlVHJhbnNmb3JtKCkubWFwUmVjdChyZWxhdGl2ZUJCb3godHJ1ZSkpKTsgfQot
ICAgIHZpcnR1YWwgUU1hdHJpeCBhYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0OworICAgIHZpcnR1
YWwgSW50UmVjdCBnZXRBYnNvbHV0ZVJlcGFpbnRSZWN0KCkgeyByZXR1cm4gZW5jbG9zaW5nSW50
UmVjdChhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcChyZWxhdGl2ZUJCb3godHJ1ZSkpKTsgfQorICAg
IHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVh
bCBGbG9hdFJlY3Qgdmlld3BvcnQoKSBjb25zdDsKQEAgLTc1LDcgKzc0LDcgQEAKICAgICB2b2lk
IGluaXQoSW50U2l6ZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KICAgICAKICAgICBDR0xheWVy
UmVmIGNnTGF5ZXIoKTsKLSAgICB2b2lkIHNldENHTGF5ZXIoQ0dMYXllclJlZiBsYXllcik7Cisg
ICAgdm9pZCBzZXRDR0xheWVyKENHTGF5ZXJSZWYpOwogCiAgICAgSW50U2l6ZSBzaXplKCkgeyBy
ZXR1cm4gbV9zaXplOyB9CiAgICAgCkluZGV4OiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2
aWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmNw
cAkocmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAg
ICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAg
ICAyMDA2ICAgICAgIEFsZXhhbmRlciBLZWxsZXR0IDxseXBhbm92QGtkZS5vcmc+CisgICAgQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjUsMTkgKzI2LDYgQEAKICNpZiBTVkdfU1VQ
UE9SVAogI2luY2x1ZGUgIktSZW5kZXJpbmdEZXZpY2UuaCIKIAotS1JlbmRlcmluZ0RldmljZTo6
S1JlbmRlcmluZ0RldmljZSgpCi17Ci19Ci0KLUtSZW5kZXJpbmdEZXZpY2U6On5LUmVuZGVyaW5n
RGV2aWNlKCkKLXsKLX0KLQotS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKktSZW5kZXJpbmdEZXZp
Y2U6OmN1cnJlbnRDb250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0U3RhY2su
Y3VycmVudCgpOwotfQotCiBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqS1JlbmRlcmluZ0Rldmlj
ZTo6cG9wQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIG1fY29udGV4dFN0YWNrLnBvcCgpOwpAQCAt
NTAsNCArMzgsMyBAQAogCiAvLyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQK
LQpJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVy
bi5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50
U2VydmVyUGF0dGVybi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDEyICsyMiwxMyBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJLQ2FudmFzTWF0
cml4LmgiCi0jaW5jbHVkZSAiS0NhbnZhc0ltYWdlLmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ1Bh
aW50U2VydmVyUGF0dGVybi5oIgogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiS0NhbnZhc0ltYWdlLmgiCisjaW5jbHVkZSAi
S0NhbnZhc1RyZWVEZWJ1Zy5oIgogI2luY2x1ZGUgPHF0ZXh0c3RyZWFtLmg+Ci0jaW5jbHVkZSAi
S0NhbnZhc1RyZWVEZWJ1Zy5oIgogCiBjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJu
OjpQcml2YXRlCiB7CkBAIC00MSwxMyArNDIsMTMgQEAKICAgICB+UHJpdmF0ZSgpIHsgZGVsZXRl
IHRpbGU7IH0KIAogICAgIEtDYW52YXNJbWFnZSAqdGlsZTsKLSAgICBLQ2FudmFzTWF0cml4IHBh
dHRlcm5UcmFuc2Zvcm07CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm07CiAg
ICAgRmxvYXRSZWN0IGJib3g7CiAgICAgYm9vbCB1c2VCb3VuZGluZ0JveE1vZGU7CiAgICAgS0Nh
bnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVyOwogfTsKIAotS1JlbmRlcmluZ1BhaW50U2Vy
dmVyUGF0dGVybjo6S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybigpIDogS1JlbmRlcmluZ1Bh
aW50U2VydmVyKCksIGQobmV3IFByaXZhdGUoKSkKK0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm46OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4oKSA6IGQobmV3IFByaXZhdGUpCiB7CiB9
CiAKQEAgLTg2LDEyICs4NywxMiBAQAogICAgIGQtPnRpbGUgPSB0aWxlOwogfQogCi1LQ2FudmFz
TWF0cml4IEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnBhdHRlcm5UcmFuc2Zvcm0oKSBj
b25zdAorQWZmaW5lVHJhbnNmb3JtIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnBhdHRl
cm5UcmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBkLT5wYXR0ZXJuVHJhbnNmb3JtOwog
fQogCi12b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldFBhdHRlcm5UcmFuc2Zv
cm0oY29uc3QgS0NhbnZhc01hdHJpeCAmbWF0KQordm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQ
YXR0ZXJuOjpzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0KQog
ewogICAgIGQtPnBhdHRlcm5UcmFuc2Zvcm0gPSBtYXQ7CiB9CkBAIC0xMTcsOCArMTE4LDggQEAK
ICAgICAgICAgPDwgIiBbYmJveD0iIDw8IGJib3goKSA8PCAiXSI7CiAgICAgaWYgKCFib3VuZGlu
Z0JveE1vZGUoKSkKICAgICAgICAgdHMgPDwgIiBbYm91bmRpbmcgYm94IG1vZGU9IiA8PCBib3Vu
ZGluZ0JveE1vZGUoKSA8PCAiXSI7ICAgICAgICAKLSAgICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0o
KS5xbWF0cml4KCkuaXNJZGVudGl0eSgpKQotICAgICAgICB0cyA8PCAiIFtwYXR0ZXJuIHRyYW5z
Zm9ybT0iIDw8IHBhdHRlcm5UcmFuc2Zvcm0oKS5xbWF0cml4KCkgPDwgIl0iOworICAgIGlmICgh
cGF0dGVyblRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkKKyAgICAgICAgdHMgPDwgIiBbcGF0dGVy
biB0cmFuc2Zvcm09IiA8PCBwYXR0ZXJuVHJhbnNmb3JtKCkgPDwgIl0iOwogICAgIHJldHVybiB0
czsKIH0KIApJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaAkocmV2aXNpb24gMTI0MjQp
CisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAog
CkBAIC0yNCw2MiArMjUsNTkgQEAKICNkZWZpbmUgS1JlbmRlcmluZ0RldmljZV9ICiAjaWYgU1ZH
X1NVUFBPUlQKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8cW9iamVjdC5oPgorI2lu
Y2x1ZGUgIktDYW52YXNGaWx0ZXJzLmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVy
LmgiCiAjaW5jbHVkZSA8cTNwdHJzdGFjay5oPgorI2luY2x1ZGUgPHFvYmplY3QuaD4KIAotI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaD4KK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOyAvLyBt
b3ZlIHRoaXMgaGVhZGVyIGludG8gV2ViQ29yZSBuYW1lc3BhY2UgYW5kIHJlbW92ZSB0aGlzCiAK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9CisKIC8v
IGFrYSB3aGVyZSB0byBkcmF3Ci1jbGFzcyBLQ2FudmFzTWF0cml4OwogY2xhc3MgS1JlbmRlcmlu
Z0RldmljZUNvbnRleHQKIHsKIHB1YmxpYzoKLSAgICBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCgp
IHsgfQogICAgIHZpcnR1YWwgfktSZW5kZXJpbmdEZXZpY2VDb250ZXh0KCkgeyB9CiAKLSAgICB2
aXJ0dWFsIEtDYW52YXNNYXRyaXggY29uY2F0Q1RNKGNvbnN0IEtDYW52YXNNYXRyaXggJndvcmxk
TWF0cml4KSA9IDA7Ci0gICAgdmlydHVhbCBLQ2FudmFzTWF0cml4IGN0bSgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNm
b3JtJikgPSAwOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGN0bSgpIGNvbnN0ID0gMDsK
ICAgICAKLSAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChjb25zdCBJbnRSZWN0ICZy
ZWN0KSA9IDA7Ci0gICAgdmlydHVhbCBJbnRSZWN0IG1hcFRvVmlzdWFsKGNvbnN0IEludFJlY3Qg
JnJlY3QpID0gMDsKKyAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChjb25zdCBJbnRS
ZWN0JikgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChjb25zdCBJbnRSZWN0
JikgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBhdGgoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGFkZFBhdGgoY29uc3QgS0NhbnZhc1BhdGgqKSA9IDA7CiB9OwogCi0vLyBNdXN0
IGJlIGEgUU9iamVjdCB0byBiZSBhYmxlIHRvIGJlIGxvYWRlZCBieSBLTGliTG9hZGVyLi4uCi1j
bGFzcyBLQ2FudmFzSW1hZ2U7Ci1jbGFzcyBLQ2FudmFzRmlsdGVyRWZmZWN0OworLy8gTXVzdCBi
ZSBhIFFPYmplY3QgdG8gYmUgYWJsZSB0byBiZSBsb2FkZWQgYnkgS0xpYkxvYWRlci4KIGNsYXNz
IEtSZW5kZXJpbmdEZXZpY2UgOiBwdWJsaWMgUU9iamVjdAogewogUV9PQkpFQ1QKIHB1YmxpYzoK
LSAgICBLUmVuZGVyaW5nRGV2aWNlKCk7Ci0gICAgdmlydHVhbCB+S1JlbmRlcmluZ0RldmljZSgp
OwotCiAgICAgLy8gVGhlIHJlbmRlcmluZyBkZXZpY2Ugd2lsbCBiZSBkaXJlY3RseSBpbml0ZWQK
ICAgICAvLyBhZnRlciB0aGUgY2FudmFzIHRhcmdldCwgaXQgbWF5IGJlIG92ZXJ3cml0dGVuLgog
ICAgIHZpcnR1YWwgYm9vbCBpc0J1ZmZlcmVkKCkgY29uc3QgPSAwOwogCiAgICAgLy8gR2xvYmFs
IHJlbmRlcmluZyBkZXZpY2UgY29udGV4dAotICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpj
dXJyZW50Q29udGV4dCgpIGNvbnN0OworICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpjdXJy
ZW50Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dFN0YWNrLmN1cnJlbnQoKTsgfQog
Ci0gICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqcG9wQ29udGV4dCgpOwotICAg
IHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqY29udGV4
dCk7CisgICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCogcG9wQ29udGV4dCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCopOwog
ICAgIAotICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKmNvbnRleHRGb3JJbWFn
ZShLQ2FudmFzSW1hZ2UgKmltYWdlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dCAqY29udGV4dEZvckltYWdlKEtDYW52YXNJbWFnZSopIGNvbnN0ID0gMDsK
ICAgICAKLSAgICB2aXJ0dWFsIFFTdHJpbmcgc3RyaW5nRm9yUGF0aChjb25zdCBLQ2FudmFzUGF0
aCogcGF0aCkgPSAwOworICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQYXRoKGNvbnN0IEtD
YW52YXNQYXRoKikgPSAwOwogCiAgICAgLy8gQ3JlYXRpb24gdG9vbHMKLSAgICB2aXJ0dWFsIEtD
YW52YXNSZXNvdXJjZSAqY3JlYXRlUmVzb3VyY2UoY29uc3QgS0NSZXNvdXJjZVR5cGUgJnR5cGUp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QgKmNyZWF0ZUZpbHRl
ckVmZmVjdChjb25zdCBLQ0ZpbHRlckVmZmVjdFR5cGUgJnR5cGUpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIEtSZW5kZXJpbmdQYWludFNlcnZlciAqY3JlYXRlUGFpbnRTZXJ2ZXIoY29uc3QgS0NQ
YWludFNlcnZlclR5cGUgJnR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtDYW52YXNSZXNv
dXJjZSogY3JlYXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QqIGNyZWF0ZUZpbHRlckVmZmVjdChLQ0ZpbHRlckVmZmVj
dFR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtSZW5kZXJpbmdQYWludFNlcnZlciogY3Jl
YXRlUGFpbnRTZXJ2ZXIoS0NQYWludFNlcnZlclR5cGUpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1
YWwgUmVuZGVyUGF0aCAqY3JlYXRlSXRlbShSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5k
ZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlLCBLQ2FudmFz
UGF0aCogcGF0aCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgS0NhbnZhc0NvbnRhaW5lciAqY3Jl
YXRlQ29udGFpbmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0eWxlICpzdHls
ZSwgS1NWRzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFJlbmRlclBhdGgqIGNyZWF0ZUl0ZW0oUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSosIFNW
R1N0eWxlZEVsZW1lbnRJbXBsKiwgS0NhbnZhc1BhdGgqKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBLQ2FudmFzQ29udGFpbmVyKiBjcmVhdGVDb250YWluZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBS
ZW5kZXJTdHlsZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKikgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgS0NhbnZhc1BhdGgqIGNyZWF0ZVBhdGgoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CkluZGV4
OiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oCShyZXZp
c2lvbiAxMjQyNCkKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAg
ICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDEzICsyNSwxNyBAQAogI2RlZmluZSBLUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSA8
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oPgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNl
cnZlci5oIgogCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OyAvLyBwdXQgdGhpcyBoZWFkZXIgaW50byBXZWJDb3JlIG5hbWVzcGFjZSBhbmQgcmVtb3ZlIHRo
aXMKIAogY2xhc3MgS0NhbnZhc0ltYWdlOworY2xhc3MgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXI7
CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9CisK
IGNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4gOiBwdWJsaWMgS1JlbmRlcmluZ1Bh
aW50U2VydmVyCiB7CiBwdWJsaWM6CkBAIC00MCw3ICs0NSw3IEBACiAgICAgdmlydHVhbCBLQ1Bh
aW50U2VydmVyVHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICAvLyBQYXR0ZXJuIGJib3gKLSAgICB2
b2lkIHNldEJib3goY29uc3QgRmxvYXRSZWN0ICZyZWN0KTsKKyAgICB2b2lkIHNldEJib3goY29u
c3QgRmxvYXRSZWN0Jik7CiAgICAgRmxvYXRSZWN0IGJib3goKSBjb25zdDsKICAgICAKICAgICAv
LyBQYXR0ZXJuIHgseSBwaGFzZSBwb2ludHMgYXJlIHJlbGF0aXZlIHdoZW4gaW4gYm91bmRpbmdC
b3hNb2RlCkBAIC00OSwxOSArNTQsMTkgQEAKICAgICB2b2lkIHNldEJvdW5kaW5nQm94TW9kZShi
b29sIG1vZGUgPSB0cnVlKTsKICAgICAKICAgICAvLyAnUGF0dGVybicgaW50ZXJmYWNlCi0gICAg
S0NhbnZhc0ltYWdlICp0aWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRUaWxlKEtDYW52YXNJbWFn
ZSAqdGlsZSk7CisgICAgS0NhbnZhc0ltYWdlKiB0aWxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRU
aWxlKEtDYW52YXNJbWFnZSopOwogCi0gICAgS0NhbnZhc01hdHJpeCBwYXR0ZXJuVHJhbnNmb3Jt
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEtDYW52YXNNYXRy
aXggJm1hdCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdDsK
KyAgICB2b2lkIHNldFBhdHRlcm5UcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CiAK
LSAgICBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciAqbGlzdGVuZXIoKSBjb25zdDsKLSAgICB2b2lk
IHNldExpc3RlbmVyKEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcik7Ci0gICAgUVRl
eHRTdHJlYW0gJmV4dGVybmFsUmVwcmVzZW50YXRpb24oUVRleHRTdHJlYW0gJikgY29uc3Q7Cisg
ICAgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRMaXN0ZW5lcihLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciopOworICAgIFFUZXh0U3RyZWFtJiBl
eHRlcm5hbFJlcHJlc2VudGF0aW9uKFFUZXh0U3RyZWFtJikgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgY2xhc3MgUHJpdmF0ZTsKLSAgICBQcml2YXRlICpkOworICAgIFByaXZhdGUqIGQ7CiB9Owog
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQ
YWludFNlcnZlckdyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZh
cy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiwxMyArMjIsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKLQogI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNl
cnZlckdyYWRpZW50LmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgogCi0jaW5jbHVkZSA8
cXRleHRzdHJlYW0uaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJLQ2FudmFzVHJl
ZURlYnVnLmgiCisjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KIAogLy9LQ0dyYWRpZW50U3ByZWFk
TWV0aG9kCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIEtDR3JhZGll
bnRTcHJlYWRNZXRob2QgbSkKQEAgLTk5LDcgKzk5LDcgQEAKICAgICBLQ1NvcnRlZEdyYWRpZW50
U3RvcExpc3Qgc3RvcHM7CiAgICAgS0NHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2Q7
CiAgICAgYm9vbCBib3VuZGluZ0JveE1vZGU7Ci0gICAgS0NhbnZhc01hdHJpeCBncmFkaWVudFRy
YW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ3JhZGllbnRUcmFuc2Zvcm07CiAgICAgS0Nh
bnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVyOwogfTsKIApAQCAtMTQyLDEyICsxNDIsMTIg
QEAKICAgICBkLT5ib3VuZGluZ0JveE1vZGUgPSBtb2RlOwogfQogCi1LQ2FudmFzTWF0cml4IEtS
ZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50OjpncmFkaWVudFRyYW5zZm9ybSgpIGNvbnN0CitB
ZmZpbmVUcmFuc2Zvcm0gS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50VHJh
bnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+Z3JhZGllbnRUcmFuc2Zvcm07CiB9CiAK
LXZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3Jt
KGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdCkKK3ZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyR3Jh
ZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0KQog
ewogICAgIGQtPmdyYWRpZW50VHJhbnNmb3JtID0gbWF0OwogfQpAQCAtMTYwLDggKzE2MCw4IEBA
CiAgICAgICAgIHRzIDw8ICJbbWV0aG9kPSIgPDwgc3ByZWFkTWV0aG9kKCkgPDwgIl0iOyAgICAg
ICAgCiAgICAgaWYgKCFib3VuZGluZ0JveE1vZGUoKSkKICAgICAgICAgdHMgPDwgIiBbYm91bmRp
bmcgYm94IG1vZGU9IiA8PCBib3VuZGluZ0JveE1vZGUoKSA8PCAiXSI7Ci0gICAgaWYgKCFncmFk
aWVudFRyYW5zZm9ybSgpLnFtYXRyaXgoKS5pc0lkZW50aXR5KCkpCi0gICAgICAgIHRzIDw8ICIg
W3RyYW5zZm9ybT0iIDw8IGdyYWRpZW50VHJhbnNmb3JtKCkucW1hdHJpeCgpIDw8ICJdIjsKKyAg
ICBpZiAoIWdyYWRpZW50VHJhbnNmb3JtKCkuaXNJZGVudGl0eSgpKQorICAgICAgICB0cyA8PCAi
IFt0cmFuc2Zvcm09IiA8PCBncmFkaWVudFRyYW5zZm9ybSgpIDw8ICJdIjsKICAgICAKICAgICBy
ZXR1cm4gdHM7CiB9CkBAIC0xNzAsOSArMTcwLDYgQEAKIGNsYXNzIEtSZW5kZXJpbmdQYWludFNl
cnZlckxpbmVhckdyYWRpZW50OjpQcml2YXRlCiB7CiBwdWJsaWM6Ci0gICAgUHJpdmF0ZSgpIHsg
fQotICAgIH5Qcml2YXRlKCkgeyB9Ci0KICAgICBGbG9hdFBvaW50IHN0YXJ0LCBlbmQ7CiB9Owog
CkluZGV4OiBrY2FudmFzL0tDYW52YXNNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tD
YW52YXNNYXRyaXguaAkocmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL0tDYW52YXNNYXRyaXgu
aAkod29ya2luZyBjb3B5KQpAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQot
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLQ2FudmFzTWF0cml4X0gK
LSNkZWZpbmUgS0NhbnZhc01hdHJpeF9ICi0jaWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgPHFt
YXRyaXguaD4KLQotdHlwZWRlZiBlbnVtCi17Ci0gICAgT1BTX1BSRU1VTCA9IDEsIC8vIERlZmF1
bHQgbW9kZSAoc3ZnIGNvbXBhdGlibGUpCi0gICAgT1BTX1BPU1RNVUwgPSAyCi19IEtDTWF0cml4
T3BlcmF0aW9uTW9kZTsKLQotY2xhc3MgS0NhbnZhc1BhdGg7Ci1jbGFzcyBLQ2FudmFzTWF0cml4
Ci17Ci1wdWJsaWM6Ci0gICAgS0NhbnZhc01hdHJpeCgpOwotICAgIEtDYW52YXNNYXRyaXgoY29u
c3QgUU1hdHJpeCAmcW1hdHJpeCk7Ci0gICAgS0NhbnZhc01hdHJpeChjb25zdCBLQ2FudmFzTWF0
cml4ICZtYXRyaXgpOwotICAgIEtDYW52YXNNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3Vi
bGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUgZik7Ci0gICAgfktDYW52YXNNYXRyaXgo
KTsKLQotICAgIC8vIE9wZXJhdG9ycwotICAgIEtDYW52YXNNYXRyaXggJm9wZXJhdG9yPShjb25z
dCBRTWF0cml4ICZvdGhlcik7Ci0gICAgS0NhbnZhc01hdHJpeCAmb3BlcmF0b3I9KGNvbnN0IEtD
YW52YXNNYXRyaXggJm90aGVyKTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRTWF0cml4
ICZvdGhlcikgY29uc3Q7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFFNYXRyaXggJm90aGVy
KSBjb25zdDsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhl
cikgY29uc3Q7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVy
KSBjb25zdDsKLQotICAgIHZvaWQgc2V0T3BlcmF0aW9uTW9kZShLQ01hdHJpeE9wZXJhdGlvbk1v
ZGUgbW9kZSk7Ci0KLSAgICBkb3VibGUgYSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QShkb3VibGUg
YSk7Ci0KLSAgICBkb3VibGUgYigpIGNvbnN0OwotICAgIHZvaWQgc2V0Qihkb3VibGUgYik7Ci0K
LSAgICBkb3VibGUgYygpIGNvbnN0OwotICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7Ci0KLSAgICBk
b3VibGUgZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0RChkb3VibGUgZCk7Ci0KLSAgICBkb3VibGUg
ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0RShkb3VibGUgZSk7Ci0KLSAgICBkb3VibGUgZigpIGNv
bnN0OwotICAgIHZvaWQgc2V0Rihkb3VibGUgZik7Ci0KLSAgICAvLyBPUFNfUFJFTVVMIDogUHJl
LW11bHRpcGxpZWQgb3BlcmF0aW9ucyAobmVlZGVkIGZvciBzdmctbGlrZSBtYXRyaXggb3BlcmF0
aW9ucykKLSAgICAvLyBPUFNfUE9TVE1VTDogUG9zdC1tdWx0aXBsaWVkIG9wZXJhdGlvbnMKLSAg
ICBLQ2FudmFzTWF0cml4ICZ0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KTsKLSAgICBLQ2Fu
dmFzTWF0cml4ICZtdWx0aXBseShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcik7Ci0gICAgS0Nh
bnZhc01hdHJpeCAmc2NhbGUoZG91YmxlIHNjYWxlRmFjdG9yWCwgZG91YmxlIHNjYWxlRmFjdG9y
WSk7Ci0KLSAgICBLQ2FudmFzTWF0cml4ICZyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICBLQ2Fu
dmFzTWF0cml4ICZyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0KLSAgICBL
Q2FudmFzTWF0cml4ICZmbGlwWCgpOwotICAgIEtDYW52YXNNYXRyaXggJmZsaXBZKCk7Ci0KLSAg
ICBLQ2FudmFzTWF0cml4ICZza2V3WChkb3VibGUgYW5nbGUpOwotICAgIEtDYW52YXNNYXRyaXgg
JnNrZXdZKGRvdWJsZSBhbmdsZSk7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICAvLyBEZXRl
cm1pbmUgdGhlIHNjYWxpbmcgY29tcG9uZW50IG9mIHRoZSBtYXRyaXggYW5kIGZhY3RvciBpdCBv
dXQuCi0gICAgLy8gQWZ0ZXIgdGhpcyBvcGVyYXRpb24sIHRoZSBtYXRyaXggaGFzIHggYW5kIHkg
c2NhbGUgb2Ygb25lICgnMScpLgotICAgIHZvaWQgcmVtb3ZlU2NhbGUoZG91YmxlICp4U2NhbGUs
IGRvdWJsZSAqeVNjYWxlKTsKLQotICAgIFFNYXRyaXggcW1hdHJpeCgpIGNvbnN0OwotCi1wcml2
YXRlOgotICAgIFFNYXRyaXggbV9tYXRyaXg7Ci0gICAgS0NNYXRyaXhPcGVyYXRpb25Nb2RlIG1f
bW9kZTsKLX07Ci0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00
Om5vZXQKSW5kZXg6IGtjYW52YXMvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2NhbnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBr
Y2FudmFzL1JlbmRlckZvcmVpZ25PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyMiAr
MjQsMjEgQEAKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlJlbmRlckZvcmVpZ25PYmplY3Qu
aCIKIAotI2luY2x1ZGUgIktDYW52YXNNYXRyaXguaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2
aWNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZW5kZXJGb3JlaWduT2JqZWN0OjpSZW5kZXJGb3JlaWdu
T2JqZWN0KEtTVkc6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqbm9kZSkgCitSZW5kZXJG
b3JlaWduT2JqZWN0OjpSZW5kZXJGb3JlaWduT2JqZWN0KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
SW1wbCAqbm9kZSkgCiAgICAgOiBSZW5kZXJCbG9jayhub2RlKQogewogfQogCi1RTWF0cml4IFJl
bmRlckZvcmVpZ25PYmplY3Q6OnRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpCitBZmZpbmVUcmFu
c2Zvcm0gUmVuZGVyRm9yZWlnbk9iamVjdDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkKIHsK
LSAgICBLU1ZHOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwgKmZvcmVpZ24gPSBzdGF0aWNf
Y2FzdDxLU1ZHOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwgKj4oZWxlbWVudCgpKTsKLSAg
ICByZXR1cm4gUU1hdHJpeCgpLnRyYW5zbGF0ZShmb3JlaWduLT54KCktPmJhc2VWYWwoKS0+dmFs
dWUoKSwgZm9yZWlnbi0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOworICAgIFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50SW1wbCogZm9yZWlnbiA9IHN0YXRpY19jYXN0PFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50SW1wbCAqPihlbGVtZW50KCkpOworICAgIHJldHVybiB0cmFuc2xhdGlvbk1hdHJpeChm
b3JlaWduLT54KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgZm9yZWlnbi0+eSgpLT5iYXNlVmFsKCkt
PnZhbHVlKCkpOwogfQogCiB2b2lkIFJlbmRlckZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpCkBAIC01OCw3ICs1Nyw3IEBA
CiAgICAgfSBlbHNlCiAgICAgICAgIHBhaW50SW5mby5wLT5zYXZlKCk7CiAKLSAgICBjb250ZXh0
LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAg
Y29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsK
ICAgICBjb250ZXh0LT5jb25jYXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgY29udGV4dC0+
Y29uY2F0Q1RNKHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpKTsKICAgICAKQEAgLTcxLDEzICs3
MCwxNSBAQAogICAgICAgICBwYWludEluZm8ucC0+cmVzdG9yZSgpOwogfQogCi1ib29sIFJlbmRl
ckZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHks
IGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRl
ckZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHks
IGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBRTWF0cml4IHRv
dGFsVHJhbnNmb3JtID0gYWJzb2x1dGVUcmFuc2Zvcm0oKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
dG90YWxUcmFuc2Zvcm0gPSBhYnNvbHV0ZVRyYW5zZm9ybSgpOwogICAgIHRvdGFsVHJhbnNmb3Jt
ICo9IHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOwotICAgIGRvdWJsZSBsb2NhbFgsIGxvY2Fs
WTsKLSAgICB0b3RhbFRyYW5zZm9ybS5pbnZlcnQoKS5tYXAoeCwgeSwgJmxvY2FsWCwgJmxvY2Fs
WSk7Ci0gICAgcmV0dXJuIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChpbmZvLCAoaW50KWxvY2Fs
WCwgKGludClsb2NhbFksIHR4LCB0eSwgaGl0VGVzdEFjdGlvbik7CisgICAgdG90YWxUcmFuc2Zv
cm0uaW52ZXJ0KCk7CisgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gdG90YWxUcmFuc2Zvcm0u
bWFwKEludFBvaW50KHgsIHkpKTsKKyAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50
KGluZm8sIHN0YXRpY19jYXN0PGludD4obG9jYWxQb2ludC54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+
KGxvY2FsUG9pbnQueSgpKSwgdHgsIHR5LCBhY3Rpb24pOwogfQorCit9CisKICNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysg
a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjIgKzIy
LDE5IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUg
IkludFJlY3QuaCIKLSNpbmNsdWRlIDxrZGVidWcuaD4KKyNpbmNsdWRlICJLQ2FudmFzUmVzb3Vy
Y2VzLmgiCiAKLSNpbmNsdWRlICJrY2FudmFzL0tDYW52YXMuaCIKLSNpbmNsdWRlICJrY2FudmFz
L1JlbmRlclBhdGguaCIKLSNpbmNsdWRlICJrY2FudmFzL0tDYW52YXNJbWFnZS5oIgotI2luY2x1
ZGUgIktDYW52YXNNYXRyaXguaCIKKyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRl
ICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgotI2luY2x1ZGUgIktD
YW52YXNSZXNvdXJjZXMuaCIKKyNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgiCiAjaW5jbHVk
ZSAiS1JlbmRlcmluZ0RldmljZS5oIgotCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAj
aW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLQorI2luY2x1ZGUgImtjYW52YXMvS0Nh
bnZhcy5oIgorI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhc0ltYWdlLmgiCisjaW5jbHVkZSAia2Nh
bnZhcy9SZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KLSNpbmNsdWRlICJL
Q2FudmFzVHJlZURlYnVnLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAKIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgS0NhbnZhc1Jlc291cmNlICZy
KSAKIHsgCkBAIC00NSwxMCArNDIsNiBAQAogfQogCiAvLyBLQ2FudmFzUmVzb3VyY2UKLUtDYW52
YXNSZXNvdXJjZTo6S0NhbnZhc1Jlc291cmNlKCkKLXsKLX0KLQogS0NhbnZhc1Jlc291cmNlOjp+
S0NhbnZhc1Jlc291cmNlKCkKIHsKIH0KQEAgLTYxLDExICs1NCw2IEBACiAgICAgbV9jbGllbnRz
LmFwcGVuZChpdGVtKTsKIH0KIAotY29uc3QgS0NhbnZhc0l0ZW1MaXN0ICZLQ2FudmFzUmVzb3Vy
Y2U6OmNsaWVudHMoKSBjb25zdAotewotICAgIHJldHVybiBtX2NsaWVudHM7Ci19Ci0KIHZvaWQg
S0NhbnZhc1Jlc291cmNlOjppbnZhbGlkYXRlKCkKIHsKICAgICBLQ2FudmFzSXRlbUxpc3Q6OkNv
bnN0SXRlcmF0b3IgaXQgPSBtX2NsaWVudHMuYmVnaW4oKTsKQEAgLTkxLDE0ICs3OSw3IEBACiB9
CiAKIC8vIEtDYW52YXNDbGlwcGVyCi1LQ2FudmFzQ2xpcHBlcjo6S0NhbnZhc0NsaXBwZXIoKSA6
IEtDYW52YXNSZXNvdXJjZSgpCi17Ci19CiAKLUtDYW52YXNDbGlwcGVyOjp+S0NhbnZhc0NsaXBw
ZXIoKQotewotfQotCiB2b2lkIEtDYW52YXNDbGlwcGVyOjpyZXNldENsaXBEYXRhKCkKIHsKICAg
ICBtX2NsaXBEYXRhLmNsZWFyKCk7CkBAIC0yMjUsMjQgKzIwNiwyMiBAQAogewogICAgIGlmKG1f
bWFya2VyKQogICAgIHsKLSAgICAgICAgS0NhbnZhc01hdHJpeCB0cmFuc2xhdGlvbjsKLSAgICAg
ICAgdHJhbnNsYXRpb24udHJhbnNsYXRlKHgsIHkpOwotCi0gICAgICAgIEtDYW52YXNNYXRyaXgg
cm90YXRpb247Ci0gICAgICAgIHJvdGF0aW9uLnNldE9wZXJhdGlvbk1vZGUoT1BTX1BPU1RNVUwp
OwotICAgICAgICByb3RhdGlvbi50cmFuc2xhdGUoLW1fcmVmWCwgLW1fcmVmWSk7Ci0gICAgICAg
IHJvdGF0aW9uLnNjYWxlKG1fc2NhbGVYLCBtX3NjYWxlWSk7Ci0gICAgICAgIHJvdGF0aW9uLnJv
dGF0ZShtX2FuZ2xlID4gLTEgPyBtX2FuZ2xlIDogYW5nbGUpOworICAgICAgICBBZmZpbmVUcmFu
c2Zvcm0gbWF0cml4OworICAgICAgICBtYXRyaXgudHJhbnNsYXRlKC1tX3JlZlgsIC1tX3JlZlkp
OworICAgICAgICBtYXRyaXguc2NhbGUobV9zY2FsZVgsIG1fc2NhbGVZKTsKKyAgICAgICAgbWF0
cml4LnJvdGF0ZShtX2FuZ2xlID4gLTEgPyBtX2FuZ2xlIDogYW5nbGUpOwogICAgICAgICAKICAg
ICAgICAgLy8gc3Ryb2tlIHdpZHRoCi0gICAgICAgIGlmKG1fdXNlU3Ryb2tlV2lkdGgpCi0gICAg
ICAgICAgICByb3RhdGlvbi5zY2FsZShzdHJva2VXaWR0aCwgc3Ryb2tlV2lkdGgpOworICAgICAg
ICBpZiAobV91c2VTdHJva2VXaWR0aCkKKyAgICAgICAgICAgIG1hdHJpeC5zY2FsZShzdHJva2VX
aWR0aCwgc3Ryb2tlV2lkdGgpOwogCisgICAgICAgIG1hdHJpeC50cmFuc2xhdGUoeCwgeSk7CisK
ICAgICAgICAgLy8gRklYTUU6IFBhaW50SW5mbyBzaG91bGQgYmUgcGFzc2VkIGludG8gdGhpcyBt
ZXRob2QgaW5zdGVhZC4KICAgICAgICAgLy8gRklYTUU6IGJvdW5kaW5nIGJveCBmcmFjdGlvbnMg
bG9zdAogICAgICAgICBRUGFpbnRlciBwOwogICAgICAgICBraHRtbDo6UmVuZGVyT2JqZWN0OjpQ
YWludEluZm8gaW5mbygmcCwgZW5jbG9zaW5nSW50UmVjdChyZWN0KSwgV2ViQ29yZTo6UGFpbnRB
Y3Rpb25Gb3JlZ3JvdW5kLCAwKTsKLSAgICAgICAgbV9tYXJrZXItPnNldExvY2FsVHJhbnNmb3Jt
KHJvdGF0aW9uLm11bHRpcGx5KHRyYW5zbGF0aW9uKS5xbWF0cml4KCkpOworICAgICAgICBtX21h
cmtlci0+c2V0TG9jYWxUcmFuc2Zvcm0obWF0cml4KTsKICAgICAgICAgc3RhdGljX2Nhc3Q8S0Nh
bnZhc0NvbnRhaW5lciAqPihtX21hcmtlciktPnNldERyYXdzQ29udGVudHModHJ1ZSk7CiAgICAg
ICAgIG1fbWFya2VyLT5wYWludChpbmZvLCAwLCAwKTsKICAgICAgICAgc3RhdGljX2Nhc3Q8S0Nh
bnZhc0NvbnRhaW5lciAqPihtX21hcmtlciktPnNldERyYXdzQ29udGVudHMoZmFsc2UpOwpJbmRl
eDoga2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2Fu
dmFzVHJlZURlYnVnLmgJKHJldmlzaW9uIDEyNDI0KQorKysga2NhbnZhcy9LQ2FudmFzVHJlZURl
YnVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Myw4MCArMjMsNzAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpbmNsdWRlIDxxc3RyaW5n
Lmg+CiAjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KLSNpbmNsdWRlIDxxM3ZhbHVlbGlzdC5oPgor
I2luY2x1ZGUgPHF2YWx1ZWxpc3QuaD4KIAotY2xhc3MgUU1hdHJpeDsKK2NsYXNzIEtDYW52YXND
b250YWluZXI7CiBjbGFzcyBRU3RyaW5nTGlzdDsKLWNsYXNzIEtDQ2xpcERhdGE7Ci1jbGFzcyBL
Q1BhdGhEYXRhOwotCiBjbGFzcyBSZW5kZXJQYXRoOwotY2xhc3MgS0NhbnZhc0NvbnRhaW5lcjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICBj
bGFzcyBDb2xvcjsKICAgICBjbGFzcyBGbG9hdFNpemU7CiAgICAgY2xhc3MgRmxvYXRQb2ludDsK
ICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgSW50UG9pbnQ7CiAgICAgY2xhc3MgSW50
UmVjdDsKLX0KLQotbmFtZXNwYWNlIEtET00gewogICAgIGNsYXNzIE5vZGVJbXBsOwogfQogCiAv
LyBmdW5jdGlvbnMgdXNlZCBieSB0aGUgbWFpbiBLV1FSZW5kZXJUcmVlRGVidWcgY29kZQotdm9p
ZCB3cml0ZShRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IEtDYW52YXNDb250YWluZXIgJmNvbnRhaW5l
ciwgaW50IGluZGVudCA9IDApOwotdm9pZCB3cml0ZShRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFJl
bmRlclBhdGggJnBhdGgsIGludCBpbmRlbnQgPSAwKTsKLXZvaWQgd3JpdGVSZW5kZXJSZXNvdXJj
ZXMoUVRleHRTdHJlYW0gJnRzLCBLRE9NOjpOb2RlSW1wbCAqcGFyZW50KTsKK3ZvaWQgd3JpdGUo
UVRleHRTdHJlYW0mLCBjb25zdCBLQ2FudmFzQ29udGFpbmVyJiwgaW50IGluZGVudCA9IDApOwor
dm9pZCB3cml0ZShRVGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlclBhdGgmLCBpbnQgaW5kZW50ID0g
MCk7Cit2b2lkIHdyaXRlUmVuZGVyUmVzb3VyY2VzKFFUZXh0U3RyZWFtJiwgV2ViQ29yZTo6Tm9k
ZUltcGwqIHBhcmVudCk7CiAKIC8vIGhlbHBlciBvcGVyYXRvcnMgZGVmaW5lZCB1c2VkIGluIHZh
cmlvdXMgY2xhc3NlcyB0byBkdW1wIHRoZSByZW5kZXIgdHJlZS4gCi1RVGV4dFN0cmVhbSAmb3Bl
cmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFFNYXRyaXggJik7Ci1RVGV4dFN0cmVhbSAm
b3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QgJik7Ci1R
VGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkNv
bG9yICYpOwotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCAmKTsKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFt
ICZ0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplICYpOwotUVRleHRTdHJlYW0gJm9wZXJhdG9y
PDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QgJik7Ci1RVGV4dFN0
cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQgJik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybSAmKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3Ry
ZWFtJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8
KFFUZXh0U3RyZWFtJiwgY29uc3QgV2ViQ29yZTo6Q29sb3IgJik7CitRVGV4dFN0cmVhbSAmb3Bl
cmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50ICYpOworUVRleHRT
dHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUg
Jik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCAmKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtJiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmKTsKIAogLy8gaGVscGVyIG9wZXJhdG9ycyBzcGVjaWZp
YyB0byBkdW1waW5nIHRoZSByZW5kZXIgdHJlZS4gdGhlc2UgYXJlIHVzZWQgaW4gdmFyaW91cyBj
bGFzc2VzIHRvIGR1bXAgdGhlIHJlbmRlciB0cmVlCiAvLyB0aGVzZSBjb3VsZCBiZSBkZWZpbmVk
IGluIHNlcGFyYXRlIG5hbWVzcGFjZSB0byBhdm9pZCBtYXRjaGluZyB0aGVzZSBnZW5lcmljIHNp
Z25hdHVyZXMgdW5pbnRlbnRpb25hbGx5LgogICAgIAotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwo
UVRleHRTdHJlYW0gJnRzLCBjb25zdCBRU3RyaW5nTGlzdCAmbCk7CitRVGV4dFN0cmVhbSAmb3Bl
cmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFFTdHJpbmdMaXN0Jik7CiAgICAgCi10ZW1wbGF0
ZTx0eXBlbmFtZSBJdGVtPgotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRz
LCBjb25zdCBRM1ZhbHVlTGlzdDxJdGVtKj4gJmwpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBRVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChRVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFFWYWx1ZUxpc3Q8VCo+
JiBsKQogewogICAgIHRzIDw8ICJbIjsKLSAgICB0eXBlbmFtZSBRM1ZhbHVlTGlzdDxJdGVtKj46
OkNvbnN0SXRlcmF0b3IgaXQgPSBsLmJlZ2luKCk7Ci0gICAgdHlwZW5hbWUgUTNWYWx1ZUxpc3Q8
SXRlbSo+OjpDb25zdEl0ZXJhdG9yIGl0X2UgPSBsLmVuZCgpOwotICAgIHdoaWxlIChpdCAhPSBp
dF9lKQotICAgIHsKKyAgICB0eXBlbmFtZSBRVmFsdWVMaXN0PFQqPjo6Q29uc3RJdGVyYXRvciBp
dCA9IGwuYmVnaW4oKTsKKyAgICB0eXBlbmFtZSBRVmFsdWVMaXN0PFQqPjo6Q29uc3RJdGVyYXRv
ciBpdF9lID0gbC5lbmQoKTsKKyAgICB3aGlsZSAoaXQgIT0gaXRfZSkgewogICAgICAgICB0cyA8
PCAqKCppdCk7CiAgICAgICAgICsraXQ7Ci0gICAgICAgIGlmIChpdCAhPSBpdF9lKSB0cyA8PCAi
LCAiOworICAgICAgICBpZiAoaXQgIT0gaXRfZSkKKyAgICAgICAgICAgIHRzIDw8ICIsICI7CiAg
ICAgfQogICAgIHRzIDw8ICJdIjsKICAgICAKICAgICByZXR1cm4gdHM7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIEl0ZW0+Ci1RVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMs
IGNvbnN0IFEzVmFsdWVMaXN0PEl0ZW0+ICZsKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gUVRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoUVRleHRTdHJlYW0mIHRzLCBjb25zdCBRVmFsdWVMaXN0PFQ+JiBs
KQogewogICAgIHRzIDw8ICJbIjsKLSAgICB0eXBlbmFtZSBRM1ZhbHVlTGlzdDxJdGVtPjo6Q29u
c3RJdGVyYXRvciBpdCA9IGwuYmVnaW4oKTsKLSAgICB0eXBlbmFtZSBRM1ZhbHVlTGlzdDxJdGVt
Pjo6Q29uc3RJdGVyYXRvciBpdF9lID0gbC5lbmQoKTsKLSAgICB3aGlsZSAoaXQgIT0gaXRfZSkK
LSAgICB7CisgICAgdHlwZW5hbWUgUVZhbHVlTGlzdDxUPjo6Q29uc3RJdGVyYXRvciBpdCA9IGwu
YmVnaW4oKTsKKyAgICB0eXBlbmFtZSBRVmFsdWVMaXN0PFQ+OjpDb25zdEl0ZXJhdG9yIGl0X2Ug
PSBsLmVuZCgpOworICAgIHdoaWxlIChpdCAhPSBpdF9lKSB7CiAgICAgICAgIHRzIDw8ICppdDsK
ICAgICAgICAgKytpdDsKLSAgICAgICAgaWYgKGl0ICE9IGl0X2UpIHRzIDw8ICIsICI7CisgICAg
ICAgIGlmIChpdCAhPSBpdF9lKQorICAgICAgICAgICAgdHMgPDwgIiwgIjsKICAgICB9CiAgICAg
dHMgPDwgIl0iOwotICAgIAogICAgIHJldHVybiB0czsKIH0KSW5kZXg6IGtjYW52YXMvS0NhbnZh
c0ZpbHRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmgJKHJldmlz
aW9uIDEyNDI0KQorKysga2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUgIktDYW52YXNSZXNv
dXJjZXMuaCIKLSNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKSW5kZXg6IGtj
YW52YXMvUmVuZGVyRm9yZWlnbk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvUmVuZGVy
Rm9yZWlnbk9iamVjdC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIGtjYW52YXMvUmVuZGVyRm9yZWln
bk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwzMCArMjQsMzIgQEAKICNkZWZpbmUgUmVu
ZGVyRm9yZWlnbk9iamVjdF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAorI2luY2x1ZGUgIkFmZmluZVRy
YW5zZm9ybS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSA8cW1hdHJpeC5o
PgogCi1uYW1lc3BhY2UgS1NWRyB7Ci0gICAgY2xhc3MgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJ
bXBsOwotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJGb3JlaWduT2JqZWN0
IDogcHVibGljIGtodG1sOjpSZW5kZXJCbG9jaworY2xhc3MgU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnRJbXBsOworCitjbGFzcyBSZW5kZXJGb3JlaWduT2JqZWN0IDogcHVibGljIFJlbmRlckJsb2Nr
CiB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyRm9yZWlnbk9iamVjdChLU1ZHOjpTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudEltcGwgKm5vZGUpOworICAgIFJlbmRlckZvcmVpZ25PYmplY3QoU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnRJbXBsKik7CiAgICAgCi0gICAgY29uc3QgY2hhciAqcmVuZGVyTmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGb3JlaWduT2JqZWN0IjsgfQotICAgIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CisgICAgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGb3JlaWduT2JqZWN0
IjsgfQorICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZ
KTsKICAgICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShj
b25zdCBRTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KKyAg
ICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9
CiAgICAgCi0gICAgYm9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCB4LCBpbnQgeSwgaW50
IHR4LCBpbnQgdHksIFdlYkNvcmU6OkhpdFRlc3RBY3Rpb24pOworICAgIGJvb2wgbm9kZUF0UG9p
bnQoTm9kZUluZm8mLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9u
KTsKIAogIHByaXZhdGU6Ci0gICAgUU1hdHJpeCB0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKTsK
LSAgICBRTWF0cml4IG1fdHJhbnNmb3JtOworICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2xhdGlv
bkZvckF0dHJpYnV0ZXMoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV90cmFuc2Zvcm07CiB9Owog
Cit9CisKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrY2FudmFzL0tDYW52
YXNSZXNvdXJjZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaAko
cmV2aXNpb24gMTI0MjQpCisrKyBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5p
a29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0CiAKQEAgLTI0LDQyICsyNSwzNyBAQAogI2RlZmluZSBLQ2FudmFzUmVzb3VyY2VzX0gK
ICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSA8cXN0cmluZy5oPgotI2luY2x1ZGUgPHEzdmFs
dWVsaXN0Lmg+CisjaW5jbHVkZSAiS0NhbnZhc0l0ZW0uaCIKKyNpbmNsdWRlICJLQ2FudmFzUGF0
aC5oIgogCi0jaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzUGF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jlc291cmNlTGlzdGVu
ZXIuaD4KK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOyAvLyBtb3ZlIGNvbnRlbnRzIG9mIHRoaXMg
ZmlsZSBpbnRvIFdlYkNvcmUgYW5kIHJlbW92ZSB0aGlzCiAKIGNsYXNzIFFUZXh0U3RyZWFtOwog
CitjbGFzcyBLQ2FudmFzSW1hZ2U7CitjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXI7CisKIC8v
IEVudW1lcmF0aW9ucwotdHlwZWRlZiBlbnVtCi17CitlbnVtIEtDUmVzb3VyY2VUeXBlIHsKICAg
ICAvLyBQYWludGluZyBtb2RlCiAgICAgUlNfQ0xJUFBFUiA9IDAsCiAgICAgUlNfTUFSS0VSID0g
MSwKICAgICBSU19JTUFHRSA9IDIsCiAgICAgUlNfRklMVEVSID0gMywKICAgICBSU19NQVNLRVIg
PSA0Ci19IEtDUmVzb3VyY2VUeXBlOworfTsKIAotY2xhc3MgS0NhbnZhc01hdHJpeDsKLWNsYXNz
IEtSZW5kZXJpbmdQYWludFNlcnZlcjsKLQotY2xhc3MgS0NhbnZhc1Jlc291cmNlCi17CitjbGFz
cyBLQ2FudmFzUmVzb3VyY2UgewogcHVibGljOgotICAgIEtDYW52YXNSZXNvdXJjZSgpOwogICAg
IHZpcnR1YWwgfktDYW52YXNSZXNvdXJjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGUoKTsKICAgICB2b2lkIGFkZENsaWVudChjb25zdCBSZW5kZXJQYXRoICppdGVtKTsKIAotICAg
IGNvbnN0IEtDYW52YXNJdGVtTGlzdCAmY2xpZW50cygpIGNvbnN0OworICAgIGNvbnN0IEtDYW52
YXNJdGVtTGlzdCYgY2xpZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50czsgfQogICAgIAog
ICAgIFFTdHJpbmcgaWRJblJlZ2lzdHJ5KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJZEluUmVnaXN0
cnkoY29uc3QgUVN0cmluZyYgbmV3SWQpOworICAgIHZvaWQgc2V0SWRJblJlZ2lzdHJ5KGNvbnN0
IFFTdHJpbmcmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWludFNlcnZlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTczLDE2ICs2OSwxMiBAQAogICAgIFFTdHJpbmcgcmVnaXN0cnlJ
ZDsKIH07CiAKLWNsYXNzIEtDYW52YXNDbGlwcGVyIDogcHVibGljIEtDYW52YXNSZXNvdXJjZQot
eworY2xhc3MgS0NhbnZhc0NsaXBwZXIgOiBwdWJsaWMgS0NhbnZhc1Jlc291cmNlIHsKIHB1Ymxp
YzoKLSAgICBLQ2FudmFzQ2xpcHBlcigpOwotICAgIHZpcnR1YWwgfktDYW52YXNDbGlwcGVyKCk7
Ci0gICAgCiAgICAgdmlydHVhbCBib29sIGlzQ2xpcHBlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIHZvaWQgcmVzZXRDbGlwRGF0YSgpOwotICAgIHZvaWQgYWRkQ2xpcERhdGEoS0Nh
bnZhc1BhdGggKnBhdGgsIEtDV2luZFJ1bGUgcnVsZSwgYm9vbCBiYm94VW5pdHMpOworICAgIHZv
aWQgYWRkQ2xpcERhdGEoS0NhbnZhc1BhdGgqLCBLQ1dpbmRSdWxlLCBib29sIGJib3hVbml0cyk7
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGFwcGx5Q2xpcChjb25zdCBGbG9hdFJlY3QmIGJvdW5k
aW5nQm94KSBjb25zdCA9IDA7CiAKQEAgLTkzLDE3ICs4NSwxNCBAQAogICAgIEtDQ2xpcERhdGFM
aXN0IG1fY2xpcERhdGE7CiB9OwogCi1jbGFzcyBLQ2FudmFzSW1hZ2U7Ci0KLWNsYXNzIEtDYW52
YXNNYXNrZXIgOiBwdWJsaWMgS0NhbnZhc1Jlc291cmNlCi17CitjbGFzcyBLQ2FudmFzTWFza2Vy
IDogcHVibGljIEtDYW52YXNSZXNvdXJjZSB7CiBwdWJsaWM6CiAgICAgS0NhbnZhc01hc2tlcigp
OwogICAgIHZpcnR1YWwgfktDYW52YXNNYXNrZXIoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
aXNNYXNrZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBzZXRNYXNrKEtDYW52
YXNJbWFnZSAqbWFzayk7Ci0gICAgS0NhbnZhc0ltYWdlICptYXNrKCkgY29uc3QgeyByZXR1cm4g
bV9tYXNrOyB9CisgICAgdm9pZCBzZXRNYXNrKEtDYW52YXNJbWFnZSopOworICAgIEtDYW52YXNJ
bWFnZSogbWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fbWFzazsgfQogICAgIAogICAgIHZpcnR1YWwg
dm9pZCBhcHBseU1hc2soY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkgY29uc3QgPSAwOwog
CkBAIC0xMTUsMTIgKzEwNCwxMiBAQAogY2xhc3MgS0NhbnZhc01hcmtlciA6IHB1YmxpYyBLQ2Fu
dmFzUmVzb3VyY2UKIHsKIHB1YmxpYzoKLSAgICBLQ2FudmFzTWFya2VyKGtodG1sOjpSZW5kZXJP
YmplY3QgKm1hcmtlciA9IDApOworICAgIEtDYW52YXNNYXJrZXIoUmVuZGVyT2JqZWN0KiBtYXJr
ZXIgPSAwKTsKICAgICB2aXJ0dWFsIH5LQ2FudmFzTWFya2VyKCk7CiAgICAgCiAgICAgdmlydHVh
bCBib29sIGlzTWFya2VyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBzZXRN
YXJrZXIoa2h0bWw6OlJlbmRlck9iamVjdCAqbWFya2VyKTsKKyAgICB2b2lkIHNldE1hcmtlcihS
ZW5kZXJPYmplY3QgKm1hcmtlcik7CiAgICAgCiAgICAgdm9pZCBzZXRSZWYoZG91YmxlIHJlZlgs
IGRvdWJsZSByZWZZKTsKICAgICBkb3VibGUgcmVmWCgpIGNvbnN0OyAgICAKQEAgLTEzOCwyMyAr
MTI3LDIzIEBACiAgICAgZmxvYXQgc2NhbGVZKCkgY29uc3Q7CiAKICAgICAgLy8gRHJhdyBvbnRv
IHRoZSBjYW52YXMKLSAgICB2b2lkIGRyYXcoY29uc3QgRmxvYXRSZWN0ICZyZWN0LCBkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSBzdHJva2VXaWR0aCA9IDEuLCBkb3VibGUgYW5nbGUgPSAwLjAp
OworICAgIHZvaWQgZHJhdyhjb25zdCBGbG9hdFJlY3QmLCBkb3VibGUgeCwgZG91YmxlIHksIGRv
dWJsZSBzdHJva2VXaWR0aCA9IDEuLCBkb3VibGUgYW5nbGUgPSAwLjApOwogCi0gICAgUVRleHRT
dHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUVRleHRTdHJlYW0gJikgY29uc3Q7IAorICAg
IFFUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFFUZXh0U3RyZWFtJikgY29uc3Q7
IAogcHJpdmF0ZToKICAgICBkb3VibGUgbV9yZWZYLCBtX3JlZlk7CiAgICAgZmxvYXQgbV9hbmds
ZSwgbV9zY2FsZVgsIG1fc2NhbGVZOwotICAgIGtodG1sOjpSZW5kZXJPYmplY3QgKm1fbWFya2Vy
OworICAgIFJlbmRlck9iamVjdCogbV9tYXJrZXI7CiAgICAgYm9vbCBtX3VzZVN0cm9rZVdpZHRo
OwogfTsKIAotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBL
Q2FudmFzUmVzb3VyY2UgJnIpOworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0m
LCBjb25zdCBLQ2FudmFzUmVzb3VyY2UmKTsKIAotS0NhbnZhc1Jlc291cmNlICpnZXRSZXNvdXJj
ZUJ5SWQoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29uc3QgS0RPTTo6QXRvbWljU3Ry
aW5nICZpZCk7Ci1LQ2FudmFzTWFya2VyICpnZXRNYXJrZXJCeUlkKEtET006OkRvY3VtZW50SW1w
bCAqZG9jdW1lbnQsIGNvbnN0IEtET006OkF0b21pY1N0cmluZyAmaWQpOwotS0NhbnZhc0NsaXBw
ZXIgKmdldENsaXBwZXJCeUlkKEtET006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIGNvbnN0IEtE
T006OkF0b21pY1N0cmluZyAmaWQpOwotS0NhbnZhc01hc2tlciAqZ2V0TWFza2VyQnlJZChLRE9N
OjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcgJmlkKTsK
LUtSZW5kZXJpbmdQYWludFNlcnZlciAqZ2V0UGFpbnRTZXJ2ZXJCeUlkKEtET006OkRvY3VtZW50
SW1wbCAqZG9jdW1lbnQsIGNvbnN0IEtET006OkF0b21pY1N0cmluZyAmaWQpOworS0NhbnZhc1Jl
c291cmNlKiBnZXRSZXNvdXJjZUJ5SWQoRG9jdW1lbnRJbXBsKiwgY29uc3QgQXRvbWljU3RyaW5n
JiBpZCk7CitLQ2FudmFzTWFya2VyKiBnZXRNYXJrZXJCeUlkKERvY3VtZW50SW1wbCosIGNvbnN0
IEF0b21pY1N0cmluZyYgaWQpOworS0NhbnZhc0NsaXBwZXIqIGdldENsaXBwZXJCeUlkKERvY3Vt
ZW50SW1wbCosIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpOworS0NhbnZhc01hc2tlciogZ2V0TWFz
a2VyQnlJZChEb2N1bWVudEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKK0tSZW5kZXJp
bmdQYWludFNlcnZlciogZ2V0UGFpbnRTZXJ2ZXJCeUlkKERvY3VtZW50SW1wbCosIGNvbnN0IEF0
b21pY1N0cmluZyYgaWQpOwogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDog
a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52
YXNDb250YWluZXIuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtjYW52YXMvS0NhbnZhc0NvbnRh
aW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDExIEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIktDYW52YXNDb250YWluZXIuaCIK
KworI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJp
bmdTdHlsZS5oIgogI2luY2x1ZGUgIktSZW5kZXJpbmdEZXZpY2UuaCIKLSNpbmNsdWRlICJLQ2Fu
dmFzQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKIAogY2xh
c3MgS0NhbnZhc0NvbnRhaW5lcjo6UHJpdmF0ZQpAQCAtMzUsNyArMzcsNyBAQAogCiAgICAgYm9v
bCBkcmF3c0NvbnRlbnRzIDogMTsKICAgICBib29sIHNsaWNlIDogMTsKLSAgICBRTWF0cml4IG1h
dHJpeDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4OwogfTsKIAogS0NhbnZhc0NvbnRhaW5l
cjo6S0NhbnZhc0NvbnRhaW5lcihLU1ZHOjpTVkdTdHlsZWRFbGVtZW50SW1wbCAqbm9kZSkKQEAg
LTU5LDEyICs2MSwxMiBAQAogICAgIGQtPmRyYXdzQ29udGVudHMgPSBkcmF3c0NvbnRlbnRzOwog
fQogCi1RTWF0cml4IEtDYW52YXNDb250YWluZXI6OmxvY2FsVHJhbnNmb3JtKCkgY29uc3QKK0Fm
ZmluZVRyYW5zZm9ybSBLQ2FudmFzQ29udGFpbmVyOjpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGQtPm1hdHJpeDsKIH0KIAotdm9pZCBLQ2FudmFzQ29udGFpbmVyOjpzZXRM
b2NhbFRyYW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgpCit2b2lkIEtDYW52YXNDb250YWlu
ZXI6OnNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewog
ICAgIGQtPm1hdHJpeCA9IG1hdHJpeDsKIH0KQEAgLTEwMCw4ICsxMDIsOCBAQAogICAgIGtodG1s
OjpSZW5kZXJPYmplY3QgKmN1cnJlbnQgPSBmaXJzdENoaWxkKCk7CiAgICAgZm9yKDsgY3VycmVu
dCAhPSAwOyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGbG9h
dFJlY3QgY2hpbGRCQm94ID0gY3VycmVudC0+cmVsYXRpdmVCQm94KGluY2x1ZGVTdHJva2UpOwot
ICAgICAgICBGbG9hdFJlY3QgbWFwcGVkQkJveCA9IGN1cnJlbnQtPmxvY2FsVHJhbnNmb3JtKCku
bWFwUmVjdChjaGlsZEJCb3gpOwotICAgICAgICByZWN0ID0gcmVjdC51bml0ZShtYXBwZWRCQm94
KTsKKyAgICAgICAgRmxvYXRSZWN0IG1hcHBlZEJCb3ggPSBjdXJyZW50LT5sb2NhbFRyYW5zZm9y
bSgpLm1hcChjaGlsZEJCb3gpOworICAgICAgICByZWN0LnVuaXRlKG1hcHBlZEJCb3gpOwogICAg
IH0KIAogICAgIHJldHVybiByZWN0OwpAQCAtMTE3LDkgKzExOSw5IEBACiAgICAgcmV0dXJuIGQt
PnNsaWNlOwogfQogCi1LQ2FudmFzTWF0cml4IEtDYW52YXNDb250YWluZXI6OmdldEFzcGVjdFJh
dGlvKGNvbnN0IEZsb2F0UmVjdCBsb2dpY2FsLCBjb25zdCBGbG9hdFJlY3QgcGh5c2ljYWwpIGNv
bnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lcjo6Z2V0QXNwZWN0UmF0aW8oY29u
c3QgRmxvYXRSZWN0IGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3QKIHsK
LSAgICBLQ2FudmFzTWF0cml4IHRlbXA7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRlbXA7CiAKICAg
ICBmbG9hdCBsb2dpY1ggPSBsb2dpY2FsLngoKTsKICAgICBmbG9hdCBsb2dpY1kgPSBsb2dpY2Fs
LnkoKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQy
NCkKKysrIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiwyMiArMjIsMjEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KKyNpbmNsdWRlICJTVkdGRUJsZW5kRWxlbWVu
dEltcGwuaCIKIAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmlu
Z0ltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRl
ICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5o
PgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KICNpbmNsdWRlIDxrY2FudmFz
L2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBs
Lmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNs
dWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUg
IlNWR0ZFQmxlbmRFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRp
b25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBT
VkdGRUJsZW5kRWxlbWVudEltcGw6OlNWR0ZFQmxlbmRFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuY3BwCShyZXZpc2lv
biAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCiAKLSNpbmNsdWRlIDxrY2Fu
dmFzL1JlbmRlclBhdGguaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KLQor
I2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgi
CiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgot
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKLSNpbmNsdWRlICJTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxl
ci5oIgotI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0
ZW5zaW9ucy5oIgotCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdTdHJpbmdM
aXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5o
IgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1M
aXN0SW1wbC5oIgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0
aC5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5o
PgogCi0jaW5jbHVkZSA8Y21hdGg+Ci0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIApAQCAtMTUxLDE0ICsxNDgsMTEgQEAKICAgICAgICAgICAgICAgICAgICAg
bV9mcm9tUm90YXRlU3BlY2lhbENhc2UgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICBpZighbV9mcm9tVHJhbnNmb3JtKQotICAgICAgICAgICAgICAgICAgICBt
X2Zyb21UcmFuc2Zvcm0gPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAgICAgICAgICAgICAg
IGlmICghbV9mcm9tVHJhbnNmb3JtKQorICAgICAgICAgICAgICAgICAgICBtX2Zyb21UcmFuc2Zv
cm0gPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbDsKIAotICAgICAgICAgICAgICAgIFNWR01hdHJpeElt
cGwgKmJ5TWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCk7Ci0gICAgICAgICAgICAgICAg
U1ZHTWF0cml4SW1wbCAqZnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5zZm9ybS0+bWF0cml4KCk7Cisg
ICAgICAgICAgICAgICAgbV90b1RyYW5zZm9ybS0+c2V0TWF0cml4KG1fdG9UcmFuc2Zvcm0tPm1h
dHJpeCgpICogbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKSk7CiAKLSAgICAgICAgICAgICAgICBi
eU1hdHJpeC0+bXVsdGlwbHkoZnJvbU1hdHJpeCk7Ci0KICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgVkFMVUVTX0FOSU1BVElPTjoKQEAgLTE4
Miw3ICsxNzYsNyBAQAogICAgIGlmKHRpbWVQZXJjZW50YWdlID49IDEuMCkKICAgICAgICAgdGlt
ZVBlcmNlbnRhZ2UgPSAxLjA7CiAgICAgCi0gICAgUVdNYXRyaXggcVRvTWF0cml4LCBxRnJvbU1h
dHJpeDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcVRvTWF0cml4LCBxRnJvbU1hdHJpeDsKICAgICBk
b3VibGUgdXNlVGltZVBlcmNlbnRhZ2UgPSB0aW1lUGVyY2VudGFnZTsKIAogICAgIGlmKG1fdmFs
dWVzKQpAQCAtMjA0LDggKzE5OCw4IEBACiAgICAgICAgICAgICAgICAgYm9vbCBhcHBseSA9IGZh
bHNlOwogICAgICAgICAgICAgICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV9mcm9tVHJhbnNmb3Jt
KQogICAgICAgICAgICAgICAgIHsgICAgCi0gICAgICAgICAgICAgICAgICAgIHFUb01hdHJpeCA9
IG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpLT5xbWF0cml4KCk7Ci0gICAgICAgICAgICAgICAgICAg
IHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKS0+cW1hdHJpeCgpOworICAg
ICAgICAgICAgICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3JtLT5tYXRyaXgoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcUZyb21NYXRyaXggPSBtX2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgp
OwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgYXBwbHkgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9IDEuMDsKQEAgLTIyNywz
OCArMjIxLDMzIEBACiAgICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9IGNhbGN1bGF0ZVJl
bGF0aXZlVGltZVBlcmNlbnRhZ2UodGltZVBlcmNlbnRhZ2UsIG1fY3VycmVudEl0ZW0pOwogICAg
IH0KIAotICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV90b1RyYW5zZm9ybS0+bWF0cml4KCkgJiYg
cVRvTWF0cml4LmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcVRvTWF0cml4ID0gbV90b1RyYW5zZm9y
bS0+bWF0cml4KCktPnFtYXRyaXgoKTsKKyAgICBpZiAobV90b1RyYW5zZm9ybSAmJiBxVG9NYXRy
aXguaXNJZGVudGl0eSgpKQorICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3JtLT5tYXRy
aXgoKTsKIAotICAgIGlmKG1fZnJvbVRyYW5zZm9ybSAmJiBtX2Zyb21UcmFuc2Zvcm0tPm1hdHJp
eCgpICYmIHFGcm9tTWF0cml4LmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcUZyb21NYXRyaXggPSBt
X2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgpLT5xbWF0cml4KCk7CisgICAgaWYgKG1fZnJvbVRyYW5z
Zm9ybSAmJiBxRnJvbU1hdHJpeC5pc0lkZW50aXR5KCkpCisgICAgICAgIHFGcm9tTWF0cml4ID0g
bV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKTsKIAotICAgIGlmKCFtX3RyYW5zZm9ybU1hdHJpeCkK
LSAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBuZXcgU1ZHTWF0cml4SW1wbCgpOwotICAgIGVs
c2UKLSAgICB7Ci0gICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5yZXNldCgpOworICAgIG1fdHJh
bnNmb3JtTWF0cml4LnJlc2V0KCk7CiAKLSAgICAgICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJl
cGVhdGlvbnMoKSAhPSAwLjAgJiYgbV9sYXN0TWF0cml4KQotICAgICAgICAgICAgbV90cmFuc2Zv
cm1NYXRyaXgtPm11bHRpcGx5KG1fbGFzdE1hdHJpeC5nZXQoKSk7Ci0gICAgfQorICAgIGlmIChp
c0FjY3VtdWxhdGVkKCkgJiYgcmVwZXRpdGlvbnMoKSAhPSAwLjApCisgICAgICAgIG1fdHJhbnNm
b3JtTWF0cml4ICo9IG1fbGFzdE1hdHJpeDsKICAgICAKICAgICBzd2l0Y2gobV90eXBlKQogICAg
IHsKICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURToKICAgICAgICAgewotICAg
ICAgICAgICAgZG91YmxlIGR4ID0gKChxVG9NYXRyaXguZHgoKSAtIHFGcm9tTWF0cml4LmR4KCkp
ICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXguZHgoKTsKLSAgICAgICAgICAgIGRv
dWJsZSBkeSA9ICgocVRvTWF0cml4LmR5KCkgLSBxRnJvbU1hdHJpeC5keSgpKSAqIHVzZVRpbWVQ
ZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmR5KCk7CisgICAgICAgICAgICBkb3VibGUgZHggPSAo
KHFUb01hdHJpeC5lKCkgLSBxRnJvbU1hdHJpeC5lKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsg
cUZyb21NYXRyaXguZSgpOworICAgICAgICAgICAgZG91YmxlIGR5ID0gKChxVG9NYXRyaXguZigp
IC0gcUZyb21NYXRyaXguZigpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmYo
KTsKIAotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgtPnRyYW5zbGF0ZShkeCwgZHkpOwor
ICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgudHJhbnNsYXRlKGR4LCBkeSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0NBTEU6
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBzeCA9ICgocVRvTWF0cml4Lm0xMSgpIC0g
cUZyb21NYXRyaXgubTExKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXgubTEx
KCk7Ci0gICAgICAgICAgICBkb3VibGUgc3kgPSAoKHFUb01hdHJpeC5tMjIoKSAtIHFGcm9tTWF0
cml4Lm0yMigpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4Lm0yMigpOworICAg
ICAgICAgICAgZG91YmxlIHN4ID0gKChxVG9NYXRyaXguYSgpIC0gcUZyb21NYXRyaXguYSgpKSAq
IHVzZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmEoKTsKKyAgICAgICAgICAgIGRvdWJs
ZSBzeSA9ICgocVRvTWF0cml4LmQoKSAtIHFGcm9tTWF0cml4LmQoKSkgKiB1c2VUaW1lUGVyY2Vu
dGFnZSkgKyBxRnJvbU1hdHJpeC5kKCk7CiAKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4
LT5zY2FsZU5vblVuaWZvcm0oc3gsIHN5KTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4
LnNjYWxlKHN4LCBzeSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIFNWR19UUkFOU0ZPUk1fUk9UQVRFOgpAQCAtMjg1LDI1ICsyNzQsMjEgQEAKICAgICAgICAg
ICAgIGRvdWJsZSBjeCA9ICh0b0N4IC0gZnJvbUN4KSAqIHVzZVRpbWVQZXJjZW50YWdlICsgZnJv
bUN4OwogICAgICAgICAgICAgZG91YmxlIGN5ID0gKHRvQ3kgLSBmcm9tQ3kpICogdXNlVGltZVBl
cmNlbnRhZ2UgKyBmcm9tQ3k7CiAKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT50cmFu
c2xhdGUoY3gsIGN5KTsKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5yb3RhdGUoYW5n
bGUpOwotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgtPnRyYW5zbGF0ZSgtY3gsIC1jeSk7
CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC50cmFuc2xhdGUoY3gsIGN5KTsKKyAgICAg
ICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnJvdGF0ZShyYWRpYW5zKGFuZ2xlKSk7CisgICAgICAg
ICAgICBtX3RyYW5zZm9ybU1hdHJpeC50cmFuc2xhdGUoLWN4LCAtY3kpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdYOgogICAg
ICAgICB7Ci0gICAgICAgICAgICBkb3VibGUgc3ggPSAoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFu
KHFUb01hdHJpeC5tMjEoKSkgLSBhdGFuKHFGcm9tTWF0cml4Lm0yMSgpKSkgKgotICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZVRpbWVQZXJjZW50YWdlKSArIFNWR0FuZ2xlSW1wbDo6dG9kZWco
YXRhbihxRnJvbU1hdHJpeC5tMjEoKSkpOwotCi0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJp
eC0+c2tld1goc3gpOworICAgICAgICAgICAgZG91YmxlIHN4ID0gKGF0YW4ocVRvTWF0cml4LmMo
KSkgLSBhdGFuKHFGcm9tTWF0cml4LmMoKSkpICogdXNlVGltZVBlcmNlbnRhZ2UgKyBhdGFuKHFG
cm9tTWF0cml4LmMoKSk7CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC5za2V3WChzeCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZP
Uk1fU0tFV1k6CiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBzeSA9IChTVkdBbmdsZUlt
cGw6OnRvZGVnKGF0YW4ocVRvTWF0cml4Lm0xMigpKSAtIGF0YW4ocUZyb21NYXRyaXgubTEyKCkp
KSAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgdXNlVGltZVBlcmNlbnRhZ2UpICsgU1ZHQW5n
bGVJbXBsOjp0b2RlZyhhdGFuKHFGcm9tTWF0cml4Lm0xMigpKSk7Ci0KLSAgICAgICAgICAgIG1f
dHJhbnNmb3JtTWF0cml4LT5za2V3WShzeSk7CisgICAgICAgICAgICBkb3VibGUgc3kgPSAoYXRh
bihxVG9NYXRyaXguYigpKSAtIGF0YW4ocUZyb21NYXRyaXguYigpKSkgKiB1c2VUaW1lUGVyY2Vu
dGFnZSArIGF0YW4ocUZyb21NYXRyaXguYigpKTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0
cml4LnNrZXdZKHN5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHQ6CkBAIC0zMTMsMTQgKzI5OCwxMCBAQAogICAgIC8vIEVuZCBjb25kaXRpb24uCiAgICAg
aWYodGltZVBlcmNlbnRhZ2UgPT0gMS4wKQogICAgIHsKLSAgICAgICAgaWYoKG1fcmVwZWF0Q291
bnQgPiAwICYmIG1fcmVwZWF0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0luZGVmaW5p
dGUobV9yZXBlYXRDb3VudCkpCisgICAgICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3Jl
cGV0aXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENv
dW50KSkKICAgICAgICAgewotICAgICAgICAgICAgbV9sYXN0TWF0cml4ID0gbmV3IFNWR01hdHJp
eEltcGwoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYobV90cmFuc2Zvcm1NYXRyaXgp
Ci0gICAgICAgICAgICAgICAgbV9sYXN0TWF0cml4LT5jb3B5KG1fdHJhbnNmb3JtTWF0cml4Lmdl
dCgpKTsKLQotICAgICAgICAgICAgbV9yZXBlYXRpb25zKys7CisgICAgICAgICAgICBtX2xhc3RN
YXRyaXggPSBtX3RyYW5zZm9ybU1hdHJpeDsKKyAgICAgICAgICAgIG1fcmVwZXRpdGlvbnMrKzsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzUsMTQgKzMxNiw4IEBACiAg
ICAgICAgIG1fZnJvbVRyYW5zZm9ybSA9IDA7CiAgICAgICAgIG1faW5pdGlhbFRyYW5zZm9ybSA9
IDA7CiAKLSAgICAgICAgaWYoIWlzRnJvemVuKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFNW
R01hdHJpeEltcGwgKmluaXRpYWwgPSBpbml0aWFsTWF0cml4KCk7Ci0gICAgICAgICAgICBpZihp
bml0aWFsKQotICAgICAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4ID0gaW5pdGlhbDsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeCA9IG5ldyBT
VkdNYXRyaXhJbXBsKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0Zyb3plbigpKQorICAg
ICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBpbml0aWFsTWF0cml4KCk7CiAgICAgfQogfQog
CkBAIC00MDcsNyArMzgyLDcgQEAKICAgICAgICAgICAgICAgICBhbmdsZSA9IHBhcnNlLnRvRG91
YmxlKCk7CiAKICAgICAgICAgICAgIC8vIE9rIG5vdyBoZXJlJ3MgYSBoYWNrIHRvIG1ha2UgaXQg
cG9zc2libGUgdG8gY2FsY3VsYXRlIGN4L2N5IHZhbHVlcywgaWYgYW5nbGUgPSAwIAotICAgICAg
ICAgICAgLy8gb3IgYW5nbGU9MzYwIC0+IGZvciBhbmdsZT0wIG91ciBtYXRyaXggaXMgbTExOiAx
IG0xMjogMCBtMjE6IDAgbTIyOiAxIGR4OiAwIGR5OiAwCisgICAgICAgICAgICAvLyBvciBhbmds
ZT0zNjAgLT4gZm9yIGFuZ2xlPTAgb3VyIG1hdHJpeCBpcyBhOiAxIGI6IDAgYzogMCBkOiAxIGR4
OiAwIGR5OiAwCiAgICAgICAgICAgICAvLyBBcyB5b3UgY2FuIHNlZSB0aGVyZSBpcyBubyB3YXkg
dG8gcmV0cmlldmUgdGhlIGN4L2N5IHZhbHVlcyBmb3IgdGhlc2UgYW5nbGVzLgogICAgICAgICAg
ICAgLy8gLT4gc2V0ICdtX3JvdGF0ZVNwZWNpYWxDYXNlJyB0byB0cnVlLCBhbmQgc2F2ZSBhbmds
ZSA9IDEvMzU5IC0+IHRoaXMgd2F5IHdlIGNhbiBjYWxjdWxhdGUKICAgICAgICAgICAgIC8vICAg
IHRoZSBjeC9jeSB2YWx1ZXMsIHdoaWxlIGtlZXBpbmcgdGhpcyB1YmVyLW9wdGltaXplZCB3YXkg
b2YgaGFuZGxpbmcgPGFuaW1hdGVUcmFuc2Zvcm0+IQpAQCAtNDQ2LDEzICs0MjEsMTIgQEAKICAg
ICByZXR1cm4gcGFyc2VkVHJhbnNmb3JtOwogfQogCi12b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50SW1wbDo6Y2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFXTWF0cml4ICZt
YXRyaXgsIGRvdWJsZSAmYW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNvbnN0Cit2b2lk
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6Y2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0
cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4LCBkb3VibGUmIGFuZ2xlLCBkb3VibGUm
IGN4LCBkb3VibGUmIGN5KSBjb25zdAogewotICAgIGRvdWJsZSBjb3NhID0gbWF0cml4Lm0xMSgp
OwotICAgIGRvdWJsZSBzaW5hID0gLW1hdHJpeC5tMjEoKTsKKyAgICBkb3VibGUgY29zYSA9IG1h
dHJpeC5hKCk7CisgICAgZG91YmxlIHNpbmEgPSAtbWF0cml4LmMoKTsKIAotICAgIGlmKGNvc2Eg
IT0gMS4wKQotICAgIHsKKyAgICBpZiAoY29zYSAhPSAxLjApIHsKICAgICAgICAgLy8gQ2FsY3Vs
YXRlIHRoZSBhbmdsZSB2aWEgbWFnaWMgOykKICAgICAgICAgZG91YmxlIHRlbXAgPSBTVkdBbmds
ZUltcGw6OnRvZGVnKGFzaW4oc2luYSkpOwogICAgICAgICBhbmdsZSA9IFNWR0FuZ2xlSW1wbDo6
dG9kZWcoYWNvcyhjb3NhKSk7CkBAIC00NjEsOCArNDM1LDggQEAKICAgICAgICAgCiAgICAgICAg
IGRvdWJsZSByZXMgPSAoMSAtIGNvc2EpICsgKChzaW5hICogc2luYSkgLyAoMSAtIGNvc2EpKTsK
ICAgICAgICAgCi0gICAgICAgIGN4ID0gKG1hdHJpeC5keCgpIC0gKChzaW5hICogbWF0cml4LmR5
KCkpIC8gKDEgLSBjb3NhKSkpIC8gcmVzOwotICAgICAgICBjeSA9IChtYXRyaXguZHkoKSArICgo
c2luYSAqIG1hdHJpeC5keCgpKSAvICgxIC0gY29zYSkpKSAvIHJlczsKKyAgICAgICAgY3ggPSAo
bWF0cml4LmUoKSAtICgoc2luYSAqIG1hdHJpeC5mKCkpIC8gKDEgLSBjb3NhKSkpIC8gcmVzOwor
ICAgICAgICBjeSA9IChtYXRyaXguZigpICsgKChzaW5hICogbWF0cml4LmUoKSkgLyAoMSAtIGNv
c2EpKSkgLyByZXM7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MiwzMCArNDQ2LDIy
IEBACiAgICAgYW5nbGUgPSAwLjA7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50SW1wbDo6aW5pdGlhbE1hdHJpeCgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0g
U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsOjppbml0aWFsTWF0cml4KCkgY29uc3QKIHsK
ICAgICBpZiAoIXRhcmdldEVsZW1lbnQoKS0+aXNTdHlsZWRUcmFuc2Zvcm1hYmxlKCkpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAgICAgU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsICp0cmFuc2Zvcm0gPSBzdGF0aWNfY2FzdDxT
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwgKj4odGFyZ2V0RWxlbWVudCgpKTsKICAg
ICBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqdHJhbnNmb3JtTGlzdCA9ICh0cmFuc2Zvcm0gPyB0cmFu
c2Zvcm0tPnRyYW5zZm9ybSgpLT5iYXNlVmFsKCkgOiAwKTsKLSAgICBpZighdHJhbnNmb3JtTGlz
dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCF0cmFuc2Zvcm1MaXN0KQorICAgICAgICBy
ZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAgICAgCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUlt
cGw+IHJlc3VsdCA9IHRyYW5zZm9ybUxpc3QtPmNvbmNhdGVuYXRlKCk7Ci0gICAgaWYoIXJlc3Vs
dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBB
ZmZpbmVUcmFuc2Zvcm0oKTsKIAotICAgIFNWR01hdHJpeEltcGwgKnJldCA9IHJlc3VsdC0+bWF0
cml4KCk7Ci0gICAgcmV0LT5yZWYoKTsKLQotICAgIHJldHVybiByZXQ7CisgICAgcmV0dXJuIHJl
c3VsdC0+bWF0cml4KCk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50SW1wbDo6dHJhbnNmb3JtTWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFu
c2Zvcm1NYXRyaXguZ2V0KCk7Ci19Ci0KIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdf
U1VQUE9SVAogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwu
Y3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjUgKzIyLDI1IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50
RWxlbWVudEltcGwuaCIKKwogI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5j
bHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVy
LmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUlt
cGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEltcGwuaCIKIAogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtj
YW52YXMvS0NhbnZhc01hdHJpeC5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jlc291cmNl
cy5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KICNpbmNs
dWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oPgorI2lu
Y2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAt
MTExLDkgKzExMSw5IEBACiAgICAgZmxvYXQgX3gyID0geDIoKS0+YmFzZVZhbCgpLT52YWx1ZSgp
LCBfeTIgPSB5MigpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAKICAgICBLUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXJMaW5lYXJHcmFkaWVudCAqZ3JhZCA9IHN0YXRpY19jYXN0PEtSZW5kZXJpbmdQYWludFNl
cnZlckxpbmVhckdyYWRpZW50ICo+KF9ncmFkKTsKLSAgICBLQ2FudmFzTWF0cml4IG1hdDsKLSAg
ICBpZihncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9mSXRlbXMoKSA+IDAp
Ci0gICAgICAgIG1hdCA9IEtDYW52YXNNYXRyaXgoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZh
bCgpLT5jb25zb2xpZGF0ZSgpLT5tYXRyaXgoKS0+cW1hdHJpeCgpKTsKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gbWF0OworICAgIGlmIChncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJl
ck9mSXRlbXMoKSA+IDApCisgICAgICAgIG1hdCA9IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VW
YWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBRU3RyaW5nIHJlZiA9IEtET006
OkRPTVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQ
YWludFNlcnZlciAqcHNlcnZlciA9IGdldFBhaW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCBy
ZWYubWlkKDEpKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCShyZXZpc2lvbiAxMjQy
NCkKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBa
aW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
IApAQCAtMjYsMzQgKzI3LDIyIEBACiAKICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgiCiAK
LWNsYXNzIFFNYXRyaXg7Ci0KLW5hbWVzcGFjZSBLRE9NIHsKLSAgICBjbGFzcyBOb2RlSW1wbDsK
K25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBBdG9taWNTdHJpbmc7Ci0gICAgY2xhc3Mg
QXR0cmlidXRlSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgY2xhc3MgU1ZHTWF0
cml4SW1wbDsKICAgICBjbGFzcyBTVkdUcmFuc2Zvcm1MaXN0SW1wbDsKICAgICBjbGFzcyBTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOwotICAgIGNsYXNzIFNWR1RyYW5zZm9ybWFibGVJbXBs
IDogcHVibGljIFNWR0xvY2F0YWJsZUltcGwKLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBT
VkdUcmFuc2Zvcm1hYmxlSW1wbCgpOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1hYmxl
SW1wbCgpOwogCisgICAgY2xhc3MgU1ZHVHJhbnNmb3JtYWJsZUltcGwgOiBwdWJsaWMgU1ZHTG9j
YXRhYmxlSW1wbCB7CisgICAgcHVibGljOgogICAgICAgICAvLyAnU1ZHVHJhbnNmb3JtYWJsZScg
ZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCAq
dHJhbnNmb3JtKCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxv
Y2FsTWF0cml4KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEltcGwqIHRyYW5zZm9ybSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBBZmZp
bmVUcmFuc2Zvcm0gbG9jYWxNYXRyaXgoKSBjb25zdCA9IDA7CiAgICAgICAgIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxv
Y2FsVHJhbnNmb3JtcykgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9jYWxUcmFu
c2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwqKSA9IDA7CiAgICAgICAgIAotICAgICAgICBzdGF0
aWMgdm9pZCBwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqbGlz
dCwgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0cmFuc2Zvcm0pOworICAgICAgICBzdGF0aWMg
dm9pZCBwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0SW1wbCosIGNvbnN0
IEF0b21pY1N0cmluZyYgdHJhbnNmb3JtKTsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNW
R19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmNwcAkocmV2
aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBACiAKICNpbmNsdWRlICJrc3ZnLmgiCiAjaW5jbHVk
ZSAiS1NWR1NldHRpbmdzLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUg
IlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRl
ICJTVkdTVkdFbGVtZW50SW1wbC5oIgpJbmRleDoga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5j
cHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDI5ICsyNSwzMSBAQAogI2luY2x1ZGUgPGtkb20vY29y
ZS9BdHRySW1wbC5oPgogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogCisjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51
bWVyYXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkUmVjdEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCisjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdQYXR0ZXJuRWxlbWVudEltcGwuaCIKKyNpbmNs
dWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIK
KyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bWFibGVJbXBsLmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
cy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc01hdHJpeC5oPgogI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhc0NvbnRhaW5lci5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NyZWF0b3Iu
aD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNJbWFnZS5oPgogI2luY2x1ZGUgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmg+CiAKLSNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdNYXRy
aXhJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdU
cmFuc2Zvcm1hYmxlSW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCi0j
aW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCi0jaW5jbHVkZSAiU1ZHUGF0dGVybkVs
ZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRp
b25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKLSNpbmNs
dWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBL
U1ZHOwogCiBTVkdQYXR0ZXJuRWxlbWVudEltcGw6OlNWR1BhdHRlcm5FbGVtZW50SW1wbChjb25z
dCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykg
OiBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdVUklSZWZl
cmVuY2VJbXBsKCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR0ZpdFRvVmlld0JveEltcGwoKSwgS0NhbnZh
c1Jlc291cmNlTGlzdGVuZXIoKQpAQCAtMTY2LDcgKzE2OCw3IEBACiAgICAgbm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpmaWxsQXR0cmli
dXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50SW1wbCAqdGFy
Z2V0LCBLQ2FudmFzTWF0cml4ICZwYXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdAordm9pZCBT
VkdQYXR0ZXJuRWxlbWVudEltcGw6OmZpbGxBdHRyaWJ1dGVzRnJvbVJlZmVyZW5jZVBhdHRlcm4o
Y29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQsIEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3QKIHsKICAgICBRU3RyaW5nIHJlZiA9IEtET006OkRP
TVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQYWlu
dFNlcnZlciAqcmVmU2VydmVyID0gZ2V0UGFpbnRTZXJ2ZXJCeUlkKGdldERvY3VtZW50KCksIHJl
Zi5taWQoMSkpOwpAQCAtMTk4LDcgKzIwMCw3IEBACiAgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1N
YXRyaXggPSByZWZQYXR0ZXJuLT5wYXR0ZXJuVHJhbnNmb3JtKCk7CiB9CiAKLXZvaWQgU1ZHUGF0
dGVybkVsZW1lbnRJbXBsOjpkcmF3UGF0dGVybkNvbnRlbnRJbnRvVGlsZShjb25zdCBTVkdQYXR0
ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgY29uc3QgSW50U2l6ZSAmbmV3U2l6ZSwgS0NhbnZhc01h
dHJpeCBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdAordm9pZCBTVkdQYXR0ZXJuRWxlbWVu
dEltcGw6OmRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50
SW1wbCAqdGFyZ2V0LCBjb25zdCBJbnRTaXplICZuZXdTaXplLCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNvbnN0CiB7CiAgICAgS1JlbmRlcmluZ0Rldmlj
ZSAqZGV2aWNlID0gUVBhaW50ZXI6OnJlbmRlcmluZ0RldmljZSgpOwogICAgIApAQCAtMjU4LDE0
ICsyNjAsMTQgQEAKICAgICAgICAgewogICAgICAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwgKnN2
Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdTVkdFbGVtZW50SW1wbCAqPih2aWV3cG9ydEVsZW1l
bnQoKSk7CiAKLSAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBzdmdDVE0gPSBzdmdF
bGVtZW50LT5nZXRDVE0oKTsKLSAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBjdG0g
PSBnZXRDVE0oKTsKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBzdmdDVE0gPSBzdmdFbGVt
ZW50LT5nZXRDVE0oKTsKKyAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjdG0gPSBnZXRDVE0o
KTsKIAotICAgICAgICAgICAgS0NhbnZhc01hdHJpeCBuZXdNYXRyaXgoc3ZnQ1RNLT5xbWF0cml4
KCkpOworICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG5ld01hdHJpeChzdmdDVE0tPm1hdHJp
eCgpKTsKICAgICAgICAgICAgIG5ld01hdHJpeC5tdWx0aXBseShzYXZlZE1hdHJpeCk7CiAgICAg
ICAgICAgICBuZXdNYXRyaXguc2NhbGUoMS4wIC8gY3RtLT5hKCksIDEuMCAvIGN0bS0+ZCgpKTsK
IAotICAgICAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0obmV3TWF0cml4LnFtYXRyaXgo
KSk7CisgICAgICAgICAgICBpdGVtLT5zZXRMb2NhbFRyYW5zZm9ybShuZXdNYXRyaXgubWF0cml4
KCkpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMjc2LDcgKzI3OCw3IEBACiAgICAgICAgIGlm
KHNhdmVkQ29udGV4dCkKICAgICAgICAgICAgIGUtPnB1c2hBdHRyaWJ1dGVDb250ZXh0KHNhdmVk
Q29udGV4dCk7CiAKLSAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0oc2F2ZWRNYXRyaXgu
cW1hdHJpeCgpKTsKKyAgICAgICAgaXRlbS0+c2V0TG9jYWxUcmFuc2Zvcm0oc2F2ZWRNYXRyaXgu
bWF0cml4KCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0zMzksOSArMzQxLDkgQEAKICAgICB1bnNp
Z25lZCBzaG9ydCBzYXZlZFBhdHRlcm5Vbml0cyA9IHBhdHRlcm5Vbml0cygpLT5iYXNlVmFsKCk7
CiAgICAgdW5zaWduZWQgc2hvcnQgc2F2ZWRQYXR0ZXJuQ29udGVudFVuaXRzID0gcGF0dGVybkNv
bnRlbnRVbml0cygpLT5iYXNlVmFsKCk7CiAKLSAgICBLQ2FudmFzTWF0cml4IHBhdHRlcm5UcmFu
c2Zvcm1NYXRyaXg7Ci0gICAgaWYocGF0dGVyblRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJl
ck9mSXRlbXMoKSA+IDApCi0gICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXggPSBLQ2FudmFz
TWF0cml4KHBhdHRlcm5UcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgpLT5tYXRy
aXgoKS0+cW1hdHJpeCgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVyblRyYW5zZm9ybU1h
dHJpeDsKKyAgICBpZiAocGF0dGVyblRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9mSXRl
bXMoKSA+IDApCisgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXggPSBwYXR0ZXJuVHJhbnNm
b3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBmaWxsQXR0
cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKHRhcmdldCwgcGF0dGVyblRyYW5zZm9ybU1hdHJp
eCk7CiAgICAgCkBAIC0zNzIsMTggKzM3NCw5IEBACiAgICAgcmV0dXJuIG1fcGFpbnRTZXJ2ZXI7
CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1BhdHRlcm5FbGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29u
c3QKK0FmZmluZVRyYW5zZm9ybSBTVkdQYXR0ZXJuRWxlbWVudEltcGw6OmdldENUTSgpIGNvbnN0
CiB7Ci0gICAgU1ZHTWF0cml4SW1wbCAqbWF0ID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNW
R01hdHJpeCgpOwotICAgIGlmKG1hdCkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJ
bXBsPiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCkt
PnZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwotCi0gICAgICAgIG1hdC0+
bXVsdGlwbHkodmlld0JveC5nZXQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1hdDsKKyAgICBy
ZXR1cm4gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCks
IGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogfQogCiAvLyB2aW06dHM9NDpub2V0Cklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9z
dmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsOCBA
QAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHRGVmc0VsZW1lbnRJbXBsLmgiCiAKKyNp
bmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZH
OwogCiBTVkdEZWZzRWxlbWVudEltcGw6OlNWR0RlZnNFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVGVzdHNJbXBsKCks
IFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKQpJ
bmRleDoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIv
c3ZnL1NWR1RleHRFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE5ICsyMiwx
OSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxr
ZG9tL2tkb20uaD4KICNpbmNsdWRlICJTVkdUZXh0RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJT
VkdUU3BhbkVsZW1lbnRJbXBsLmgiCisKKyNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIK
KyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW5j
bHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW5jbHVkZSAiU1ZHVFNwYW5FbGVtZW50
SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKICNpbmNsdWRlICJyZW5kZXJf
c3R5bGUuaCIKLQogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NyZWF0b3IuaD4KICNpbmNsdWRl
IDxrY2FudmFzL1JlbmRlclNWR1RleHQuaD4KLQorI2luY2x1ZGUgPGtkb20va2RvbS5oPgogI2lu
Y2x1ZGUgPHF2ZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CkBAIC00NCwyMCArNDQs
MTEgQEAKIHsKIH0KIAotU1ZHVGV4dEVsZW1lbnRJbXBsOjp+U1ZHVGV4dEVsZW1lbnRJbXBsKCkK
LXsKLX0KLQogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCAqU1ZHVGV4dEVsZW1lbnRJbXBs
Ojp0cmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RJbXBsPihtX3RyYW5zZm9ybSwgdGhpcyk7CiB9CiAKLVNWR01hdHJpeElt
cGwgKlNWR1RleHRFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBjb25zdAotewotICAgIHJldHVy
biBsYXp5X2NyZWF0ZTxTVkdNYXRyaXhJbXBsPihtX2xvY2FsTWF0cml4KTsKLX0KLQogdm9pZCBT
VkdUZXh0RWxlbWVudEltcGw6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJp
YnV0ZUltcGwgKmF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dHJh
bnNmb3JtQXR0cikgewpAQCAtNzcsNyArNjgsNyBAQAogICAgIGlmKGxvY2FsVHJhbnNmb3JtKSB7
CiAgICAgICAgIG1fbG9jYWxNYXRyaXggPSBsb2NhbFRyYW5zZm9ybS0+bWF0cml4KCk7CiAgICAg
ICAgIGlmIChyZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRy
YW5zZm9ybShtX2xvY2FsTWF0cml4LT5xbWF0cml4KCkpOworICAgICAgICAgICAgcmVuZGVyZXIo
KS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiAgICAgICAgICAgICByZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCh0cnVlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTg3LDggKzc4
LDggQEAKIHsKICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6YXR0YWNoKCk7CiAKLSAgICBpZiAo
cmVuZGVyZXIoKSAmJiBtX2xvY2FsTWF0cml4KQotICAgICAgICByZW5kZXJlcigpLT5zZXRMb2Nh
bFRyYW5zZm9ybShtX2xvY2FsTWF0cml4LT5xbWF0cml4KCkpOworICAgIGlmIChyZW5kZXJlcigp
KQorICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0cml4KTsK
IH0KIAogU1ZHRWxlbWVudEltcGwgKlNWR1RleHRFbGVtZW50SW1wbDo6bmVhcmVzdFZpZXdwb3J0
RWxlbWVudCgpIGNvbnN0CkBAIC0xMDYsMTMgKzk3LDE4IEBACiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybWFibGVJbXBsOjpnZXRCQm94KHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdUZXh0
RWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4
dEVsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAogewogICAgIHJldHVybiBTVkdMb2Nh
dGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1Rl
eHRFbGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxl
bWVudEltcGw6OmxvY2FsTWF0cml4KCkgY29uc3QKIHsKKyAgICByZXR1cm4gbV9sb2NhbE1hdHJp
eDsKK30KKworQWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29u
c3QKK3sKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0U2NyZWVuQ1RNKHRoaXMpOwog
fQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR01hdHJpeEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9T
VkdNYXRyaXhJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjc3ICsyMiw4NiBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxtYXRoLmg+Ci0K
LSNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZH
QW5nbGVJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogCi11c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHTWF0cml4SW1wbDo6U1ZHTWF0cml4
SW1wbCgpIDogU2hhcmVkPFNWR01hdHJpeEltcGw+KCkKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRy
aXhJbXBsOjppbnZlcnNlKCkgY29uc3QKIHsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0g
bV9tYXRyaXg7CisgICAgcmVzdWx0LmludmVydCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LVNWR01hdHJpeEltcGw6OlNWR01hdHJpeEltcGwoUU1hdHJpeCBtYXQpIDogU2hhcmVkPFNWR01h
dHJpeEltcGw+KCkKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjptdWx0aXBseShjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHNlY29uZE1hdHJpeCkgY29uc3QKIHsKLSAgICBtX21hdCA9IG1h
dDsKKyAgICByZXR1cm4gbV9tYXRyaXggKiBzZWNvbmRNYXRyaXg7CiB9CiAKLVNWR01hdHJpeElt
cGw6OlNWR01hdHJpeEltcGwoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQs
IGRvdWJsZSBlLCBkb3VibGUgZikgOiBTaGFyZWQ8U1ZHTWF0cml4SW1wbD4oKQorQWZmaW5lVHJh
bnNmb3JtIFNWR01hdHJpeEltcGw6OnRyYW5zbGF0ZShkb3VibGUgeCwgZG91YmxlIHkpIGNvbnN0
CiB7Ci0gICAgbV9tYXQuc2V0TWF0cml4KGEsIGIsIGMsIGQsIGUsIGYpOworICAgIEFmZmluZVRy
YW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQudHJhbnNsYXRlKHgsIHkpOwor
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVNWR01hdHJpeEltcGw6On5TVkdNYXRyaXhJbXBsKCkK
K0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpzY2FsZShkb3VibGUgc2NhbGVGYWN0b3Ip
IGNvbnN0CiB7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJl
c3VsdC5zY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpOworICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0QShkb3VibGUgYSkKK0FmZmluZVRyYW5zZm9y
bSBTVkdNYXRyaXhJbXBsOjpzY2FsZU5vblVuaWZvcm0oZG91YmxlIHNjYWxlRmFjdG9yWCwgZG91
YmxlIHNjYWxlRmFjdG9yWSkgY29uc3QKIHsKLSAgICBtX21hdC5zZXRNYXRyaXgoYSwgbV9tYXQu
bTEyKCksIG1fbWF0Lm0yMSgpLCBtX21hdC5tMjIoKSwgbV9tYXQuZHgoKSwgbV9tYXQuZHkoKSk7
CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5zY2Fs
ZShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
ZG91YmxlIFNWR01hdHJpeEltcGw6OmEoKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJp
eEltcGw6OnJvdGF0ZShkb3VibGUgYW5nbGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWF0Lm0x
MSgpOworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQu
cm90YXRlKHJhZGlhbnMoYW5nbGUpKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFNW
R01hdHJpeEltcGw6OnNldEIoZG91YmxlIGIpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1w
bDo6cm90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpIGNvbnN0CiB7Ci0gICAgbV9t
YXQuc2V0TWF0cml4KG1fbWF0Lm0xMSgpLCBiLCBtX21hdC5tMjEoKSwgbV9tYXQubTIyKCksIG1f
bWF0LmR4KCksIG1fbWF0LmR5KCkpOworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21h
dHJpeDsKKyAgICByZXN1bHQucm90YXRlKGF0YW4yKHksIHgpKTsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1kb3VibGUgU1ZHTWF0cml4SW1wbDo6YigpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0g
U1ZHTWF0cml4SW1wbDo6ZmxpcFgoKSBjb25zdAogewotICAgIHJldHVybiBtX21hdC5tMTIoKTsK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnNjYWxl
KC0xLCAxKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFNWR01hdHJpeEltcGw6OnNl
dEMoZG91YmxlIGMpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6ZmxpcFkoKSBjb25z
dAogewotICAgIG1fbWF0LnNldE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQubTEyKCksIGMsIG1f
bWF0Lm0yMigpLCBtX21hdC5keCgpLCBtX21hdC5keSgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
cmVzdWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnNjYWxlKDEsIC0xKTsKKyAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1kb3VibGUgU1ZHTWF0cml4SW1wbDo6YygpIGNvbnN0CitBZmZpbmVUcmFu
c2Zvcm0gU1ZHTWF0cml4SW1wbDo6c2tld1goZG91YmxlIGFuZ2xlKSBjb25zdAogewotICAgIHJl
dHVybiBtX21hdC5tMjEoKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7
CisgICAgcmVzdWx0LnNrZXdYKHJhZGlhbnMoYW5nbGUpKTsKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCi12b2lkIFNWR01hdHJpeEltcGw6OnNldEQoZG91YmxlIGQpCitBZmZpbmVUcmFuc2Zvcm0g
U1ZHTWF0cml4SW1wbDo6c2tld1koZG91YmxlIGFuZ2xlKSBjb25zdAogewotICAgIG1fbWF0LnNl
dE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQubTEyKCksIG1fbWF0Lm0yMSgpLCBkLCBtX21hdC5k
eCgpLCBtX21hdC5keSgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7
CisgICAgcmVzdWx0LnNrZXdZKHJhZGlhbnMoYW5nbGUpKTsKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1kb3VibGUgU1ZHTWF0cml4SW1wbDo6ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0
Lm0yMigpOwogfQogCi12b2lkIFNWR01hdHJpeEltcGw6OnNldEUoZG91YmxlIGUpCi17Ci0gICAg
bV9tYXQuc2V0TWF0cml4KG1fbWF0Lm0xMSgpLCBtX21hdC5tMTIoKSwgbV9tYXQubTIxKCksIG1f
bWF0Lm0yMigpLCBlLCBtX21hdC5keSgpKTsKLX0KLQotZG91YmxlIFNWR01hdHJpeEltcGw6OmUo
KSBjb25zdAotewotICAgIHJldHVybiBtX21hdC5keCgpOwotfQotCi12b2lkIFNWR01hdHJpeElt
cGw6OnNldEYoZG91YmxlIGYpCi17Ci0gICAgbV9tYXQuc2V0TWF0cml4KG1fbWF0Lm0xMSgpLCBt
X21hdC5tMTIoKSwgbV9tYXQubTIxKCksIG1fbWF0Lm0yMigpLCBtX21hdC5keCgpLCBmKTsKLX0K
LQotZG91YmxlIFNWR01hdHJpeEltcGw6OmYoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdC5k
eSgpOwotfQotCi12b2lkIFNWR01hdHJpeEltcGw6OmNvcHkoY29uc3QgU1ZHTWF0cml4SW1wbCAq
b3RoZXIpCi17Ci0gICAgbV9tYXQuc2V0TWF0cml4KG90aGVyLT5tX21hdC5tMTEoKSwgb3RoZXIt
Pm1fbWF0Lm0xMigpLCBvdGhlci0+bV9tYXQubTIxKCksIG90aGVyLT5tX21hdC5tMjIoKSwgb3Ro
ZXItPm1fbWF0LmR4KCksIG90aGVyLT5tX21hdC5keSgpKTsKLX0KLQotU1ZHTWF0cml4SW1wbCAq
U1ZHTWF0cml4SW1wbDo6cG9zdE11bHRpcGx5KGNvbnN0IFNWR01hdHJpeEltcGwgKnNlY29uZE1h
dHJpeCkKLXsKLSAgICBRTWF0cml4IHRlbXAoc2Vjb25kTWF0cml4LT5hKCksIHNlY29uZE1hdHJp
eC0+YigpLCBzZWNvbmRNYXRyaXgtPmMoKSwgc2Vjb25kTWF0cml4LT5kKCksIHNlY29uZE1hdHJp
eC0+ZSgpLCBzZWNvbmRNYXRyaXgtPmYoKSk7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1
cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6aW52ZXJzZSgpCi17
Ci0gICAgbV9tYXQgPSBtX21hdC5pbnZlcnQoKTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZH
TWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFRyYW5zbGF0ZShkb3VibGUgeCwgIGRvdWJs
ZSB5KQotewotICAgIC8vIENvdWxkIG9wdGltaXNlIHRoZXNlLgotICAgIFFNYXRyaXggdGVtcDsK
LSAgICB0ZW1wLnRyYW5zbGF0ZSh4LCB5KTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVy
biB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0U2NhbGUoZG91
YmxlIHNjYWxlRmFjdG9yKQotewotICAgIFFNYXRyaXggdGVtcDsKLSAgICB0ZW1wLnNjYWxlKHNj
YWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4g
dGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFNjYWxlTm9uVW5p
Zm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKQotewotICAgIFFN
YXRyaXggdGVtcDsKLSAgICB0ZW1wLnNjYWxlKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsK
LSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBs
ICpTVkdNYXRyaXhJbXBsOjpwb3N0Um90YXRlKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBRTWF0cml4
IHRlbXA7Ci0gICAgdGVtcC5yb3RhdGUoYW5nbGUpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAg
cmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RSb3Rh
dGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICBRTWF0cml4IHRlbXA7Ci0g
ICAgdGVtcC5yb3RhdGUoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuMih5LCB4KSkpOwotICAgIG1f
bWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01h
dHJpeEltcGw6OnBvc3RGbGlwWCgpCi17Ci0gICAgUU1hdHJpeCB0ZW1wKC0xLjBGLCAwLjBGLCAw
LjBGLCAxLjBGLCAwLjBGLCAwLjBGKTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0
aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0RmxpcFkoKQotewot
ICAgIFFNYXRyaXggdGVtcCgxLjBGLCAwLjBGLCAwLjBGLCAtMS4wRiwgMC4wRiwgMC4wRik7Ci0g
ICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAq
U1ZHTWF0cml4SW1wbDo6cG9zdFNrZXdYKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBRTWF0cml4IHRl
bXA7Ci0gICAgdGVtcC5zaGVhcih0YW4oU1ZHQW5nbGVJbXBsOjp0b3JhZChhbmdsZSkpLCAwLjBG
KTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJ
bXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0U2tld1koZG91YmxlIGFuZ2xlKQotewotICAgIFFNYXRy
aXggdGVtcDsKLSAgICB0ZW1wLnNoZWFyKDAuMEYsIHRhbihTVkdBbmdsZUltcGw6OnRvcmFkKGFu
Z2xlKSkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01h
dHJpeEltcGwgKlNWR01hdHJpeEltcGw6Om11bHRpcGx5KGNvbnN0IFNWR01hdHJpeEltcGwgKnNl
Y29uZE1hdHJpeCkKLXsKLSAgICBRTWF0cml4IHRlbXAoc2Vjb25kTWF0cml4LT5hKCksIHNlY29u
ZE1hdHJpeC0+YigpLCBzZWNvbmRNYXRyaXgtPmMoKSwgc2Vjb25kTWF0cml4LT5kKCksIHNlY29u
ZE1hdHJpeC0+ZSgpLCBzZWNvbmRNYXRyaXgtPmYoKSk7Ci0gICAgdGVtcCAqPSBtX21hdDsKLSAg
ICBtX21hdCA9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNW
R01hdHJpeEltcGw6OnRyYW5zbGF0ZShkb3VibGUgeCwgIGRvdWJsZSB5KQotewotICAgIG1fbWF0
LnRyYW5zbGF0ZSh4LCB5KTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAq
U1ZHTWF0cml4SW1wbDo6c2NhbGUoZG91YmxlIHNjYWxlRmFjdG9yKQotewotICAgIG1fbWF0LnNj
YWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNW
R01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnNjYWxlTm9uVW5pZm9ybShkb3VibGUgc2NhbGVG
YWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKQotewotICAgIG1fbWF0LnNjYWxlKHNjYWxlRmFj
dG9yWCwgc2NhbGVGYWN0b3JZKTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1w
bCAqU1ZHTWF0cml4SW1wbDo6cm90YXRlKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBtX21hdC5yb3Rh
dGUoYW5nbGUpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRy
aXhJbXBsOjpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICBtX21h
dC5yb3RhdGUoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuMih5LCB4KSkpOwotICAgIHJldHVybiB0
aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpmbGlwWCgpCi17Ci0gICAg
bV9tYXQuc2NhbGUoLTEuMGYsIDEuMGYpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRy
aXhJbXBsICpTVkdNYXRyaXhJbXBsOjpmbGlwWSgpCi17Ci0gICAgbV9tYXQuc2NhbGUoMS4wZiwg
LTEuMGYpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJ
bXBsOjpza2V3WChkb3VibGUgYW5nbGUpCi17Ci0gICAgbV9tYXQuc2hlYXIodGFuKFNWR0FuZ2xl
SW1wbDo6dG9yYWQoYW5nbGUpKSwgMC4wRik7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01h
dHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnNrZXdZKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBtX21h
dC5zaGVhcigwLjBGLCB0YW4oU1ZHQW5nbGVJbXBsOjp0b3JhZChhbmdsZSkpKTsKLSAgICByZXR1
cm4gdGhpczsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRNYXRyaXgoUU1hdHJpeCBtYXQp
Ci17Ci0gICAgbV9tYXQgPSBtYXQ7Ci19Ci0KLVFNYXRyaXggJlNWR01hdHJpeEltcGw6OnFtYXRy
aXgoKQotewotICAgIHJldHVybiBtX21hdDsKLX0KLQotY29uc3QgUU1hdHJpeCAmU1ZHTWF0cml4
SW1wbDo6cW1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0OwotfQotCi12b2lkIFNW
R01hdHJpeEltcGw6OnJlc2V0KCkKLXsKLSAgICBtX21hdC5yZXNldCgpOwotfQotCi12b2lkIFNW
R01hdHJpeEltcGw6OnJlbW92ZVNjYWxlKGRvdWJsZSAqeFNjYWxlLCBkb3VibGUgKnlTY2FsZSkK
LXsKLSAgICBkb3VibGUgc3ggPSBzcXJ0KGEoKSAqIGEoKSArIGIoKSAqIGIoKSk7Ci0gICAgZG91
YmxlIHN5ID0gc3FydChjKCkgKiBjKCkgKyBkKCkgKiBkKCkpOwotCi0gICAgLy8gUmVtb3ZlIHRo
ZSBzY2FsaW5nIGZyb20gdGhlIG1hdHJpeC4KLSAgICBzZXRBKGEoKSAvIHN4KTsgc2V0QihiKCkg
LyBzeCk7Ci0gICAgc2V0QyhjKCkgLyBzeSk7IHNldEQoZCgpIC8gc3kpOwotCi0gICAgKnhTY2Fs
ZSA9IHN4OwotICAgICp5U2NhbGUgPSBzeTsKLX0KLQogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCi0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQy
NCkKKysrIGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw0OCArMjIsNDUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0j
aW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiU1ZHRG9jdW1lbnRJbXBsLmgiCiAKLSNpbmNs
dWRlIDxrdXJsLmg+Ci0jaW5jbHVkZSA8a2xvY2FsZS5oPgotCi0jaW5jbHVkZSA8a2RvbS9IZWxw
ZXIuaD4KLSNpbmNsdWRlICJTaGFyZWQuaCIKLSNpbmNsdWRlIDxrZG9tL05hbWVzcGFjZS5oPgot
I2luY2x1ZGUgPGtkb20vY29yZS9kb21hdHRycy5oPgotI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RP
TUxvYWRlci5oPgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgotI2luY2x1ZGUgPGtkb20vY2FjaGUv
S0RPTUNhY2hlZE9iamVjdC5oPgotI2luY2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKLSNpbmNs
dWRlICJjc3Nfc3R5bGVzaGVldGltcGwuaCIKLSNpbmNsdWRlIDxrZG9tL2V2ZW50cy9Nb3VzZUV2
ZW50SW1wbC5oPgotI2luY2x1ZGUgPGtkb20vZXZlbnRzL0tleWJvYXJkRXZlbnRJbXBsLmg+Ci0j
aW5jbHVkZSA8a2RvbS9jb3JlL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwuaD4KLQotI2luY2x1
ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgot
Ci0jaW5jbHVkZSAia3N2Zy5oIgotLy8jaW5jbHVkZSAiRWNtYS5oIgotI2luY2x1ZGUgPGtzdmcy
L0tTVkdWaWV3Lmg+Ci0jaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIKKyNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJT
VkdTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgog
I2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR1Njcmlw
dEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEZhY3RvcnkuaCIKKyNpbmNsdWRl
ICJTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZH
UmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUg
IlNWR1NjcmlwdEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50SW1wbC5o
IgogI2luY2x1ZGUgIlNWR1RpdGxlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdEb2N1bWVu
dEltcGwuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50
SW1wbC5oIgorI2luY2x1ZGUgIlNoYXJlZC5oIgorI2luY2x1ZGUgImNzc19zdHlsZXNoZWV0aW1w
bC5oIgorI2luY2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisj
aW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVk
ZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+CisjaW5jbHVkZSA8a2RvbS9IZWxwZXIuaD4KKyNpbmNs
dWRlIDxrZG9tL05hbWVzcGFjZS5oPgorI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUNhY2hlZE9i
amVjdC5oPgorI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUxvYWRlci5oPgorI2luY2x1ZGUgPGtk
b20vY29yZS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9jb3Jl
L2RvbWF0dHJzLmg+CisjaW5jbHVkZSA8a2RvbS9ldmVudHMvS2V5Ym9hcmRFdmVudEltcGwuaD4K
KyNpbmNsdWRlIDxrZG9tL2V2ZW50cy9Nb3VzZUV2ZW50SW1wbC5oPgorI2luY2x1ZGUgPGtsb2Nh
bGUuaD4KKyNpbmNsdWRlIDxrc3ZnMi9LU1ZHVmlldy5oPgorI2luY2x1ZGUgPGt1cmwuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIEtTVkc7CiB1c2luZyBuYW1lc3BhY2Uga2h0bWw7CiAKLVNWR0RvY3Vt
ZW50SW1wbDo6U1ZHRG9jdW1lbnRJbXBsKFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCAqaSwgS0RP
TTo6S0RPTVZpZXcgKnZpZXcpIDogS0RPTTo6RG9jdW1lbnRJbXBsKGksIHZpZXcpLCBLRE9NOjpD
YWNoZWRPYmplY3RDbGllbnQoKQorU1ZHRG9jdW1lbnRJbXBsOjpTVkdEb2N1bWVudEltcGwoU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsICppLCBGcmFtZVZpZXcgKnZpZXcpIDogS0RPTTo6RG9jdW1l
bnRJbXBsKGksIHZpZXcpLCBLRE9NOjpDYWNoZWRPYmplY3RDbGllbnQoKQogewogICAgIG1fc2Ny
aXB0c0l0ID0gMDsKICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CkluZGV4OiBrc3ZnMi9zdmcvU1ZH
TWFya2VyRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdNYXJrZXJF
bGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
ICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTIyLDI3ICsyMywyOSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL0RPTVN0
cmluZy5oPgotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotI2luY2x1ZGUgPGtkb20v
Y29yZS9OYW1lZEF0dHJNYXBJbXBsLmg+CisjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudEltcGwu
aCIKIAotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0Nh
bnZhc0NyZWF0b3IuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDb250YWluZXIuaD4KLSNp
bmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+Ci0KLSNpbmNsdWRlICJr
c3ZnLmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdBbmdsZUltcGwuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
RW51bWVyYXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UmVjdEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9JbXBs
LmgiCisjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgogI2luY2x1ZGUgIlNWR0hlbHBl
ci5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlSW1wbC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwu
aCIKICNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNp
bmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveElt
cGwuaCIKLSNpbmNsdWRlICJTVkdNYXJrZXJFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCi0j
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJrc3ZnLmgi
CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
Q29udGFpbmVyLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgorI2luY2x1
ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL0RP
TVN0cmluZy5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgPGtk
b20vY29yZS9OYW1lZEF0dHJNYXBJbXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkBA
IC0xNzAsOCArMTczLDggQEAKICAgICBtX21hcmtlci0+c2V0VXNlU3Ryb2tlV2lkdGgobWFya2Vy
VW5pdHMoKS0+YmFzZVZhbCgpID09IFNWR19NQVJLRVJVTklUU19TVFJPS0VXSURUSCk7CiAgICAg
ZG91YmxlIHcgPSBtYXJrZXJXaWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZG91Ymxl
IGggPSBtYXJrZXJIZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwotICAgIFJlZlB0cjxTVkdN
YXRyaXhJbXBsPiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsKLSAgICBt
X21hcmtlci0+c2V0U2NhbGUodmlld0JveC0+cW1hdHJpeCgpLm0xMSgpLCB2aWV3Qm94LT5xbWF0
cml4KCkubTIyKCkpOworICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94ID0gdmlld0JveFRvVmll
d1RyYW5zZm9ybSh3LCBoKTsKKyAgICBtX21hcmtlci0+c2V0U2NhbGUodmlld0JveC5hKCksIHZp
ZXdCb3guZCgpKTsKICAgICAKICAgICByZXR1cm4gbV9tYXJrZXI7CiB9CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHRml0VG9WaWV3Qm94SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGaXRU
b1ZpZXdCb3hJbXBsLmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0ZpdFRvVmll
d0JveEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgog
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAg
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDMxICsyNSwyNSBAQAogI2RlZmlu
ZSBLU1ZHX1NWR0ZpdFRvVmlld0JveEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLW5hbWVzcGFj
ZSBLRE9NCi17Ci0gICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLSAgICBjbGFzcyBET01TdHJpbmdJ
bXBsOwotfTsKKyNpbmNsdWRlIDxreG1sY29yZS9SZWZQdHIuaD4KIAotbmFtZXNwYWNlIEtTVkcK
LXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CisgICAg
Y2xhc3MgRE9NU3RyaW5nSW1wbDsKKyAgICBjbGFzcyBNYXBwZWRBdHRyaWJ1dGVJbXBsOwogICAg
IGNsYXNzIFNWR0FuaW1hdGVkUmVjdEltcGw7CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvSW1wbDsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwotICAgIGNsYXNzIFNW
R0ZpdFRvVmlld0JveEltcGwKLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdGaXRUb1Zp
ZXdCb3hJbXBsKCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR0ZpdFRvVmlld0JveEltcGwoKTsKIAor
ICAgIGNsYXNzIFNWR0ZpdFRvVmlld0JveEltcGwgeworICAgIHB1YmxpYzoKICAgICAgICAgLy8g
J1NWR0ZpdFRvVmlld0JveEltcGwnIGZ1bmN0aW9ucwotICAgICAgICBTVkdBbmltYXRlZFJlY3RJ
bXBsICp2aWV3Qm94KCkgY29uc3Q7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0ltcGwgKnByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0
ZWRSZWN0SW1wbCogdmlld0JveCgpIGNvbnN0OworICAgICAgICBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9JbXBsKiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3Q7CiAKLSAgICAgICAg
dm9pZCBwYXJzZVZpZXdCb3goS0RPTTo6RE9NU3RyaW5nSW1wbCAqc3RyKTsKLSAgICAgICAgU1ZH
TWF0cml4SW1wbCAqdmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0
IHZpZXdIZWlnaHQpIGNvbnN0OworICAgICAgICB2b2lkIHBhcnNlVmlld0JveChET01TdHJpbmdJ
bXBsKik7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKGZs
b2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7CiAKLSAgICAgICAgYm9vbCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAg
ICAgICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZFJlY3RJbXBs
PiBtX3ZpZXdCb3g7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaAko
cmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAg
ICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI2LDE5ICsyNywxNCBAQAogCiAjaW5jbHVkZSAiU2hh
cmVkLmgiCiAKLW5hbWVzcGFjZSBLRE9NCi17CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xh
c3MgQWZmaW5lVHJhbnNmb3JtOwogICAgIGNsYXNzIERPTVN0cmluZ0ltcGw7Ci19OwotCi1uYW1l
c3BhY2UgS1NWRwotewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3MgU1ZHU3R5
bGVkRWxlbWVudEltcGw7Ci0gICAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwgOiBw
dWJsaWMgU2hhcmVkPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsPgotICAgIHsgCisKKyAgICBj
bGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb0ltcGw+IHsgCiAgICAgcHVibGljOgotICAgICAgICBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvSW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqY29udGV4dCk7CisgICAg
ICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBs
Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsKCk7CiAKICAg
ICAgICAgdm9pZCBzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCk7CkBAIC00NywxOSArNDMsMTggQEAK
ICAgICAgICAgdm9pZCBzZXRNZWV0T3JTbGljZSh1bnNpZ25lZCBzaG9ydCk7CiAgICAgICAgIHVu
c2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkgY29uc3Q7CiAgICAgICAgIAotICAgICAgICBTVkdN
YXRyaXhJbXBsICpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbG9hdCBsb2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hlaWdodCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBoeXNYLCBmbG9hdCBwaHlzWSwg
ZmxvYXQgcGh5c1dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGh5
c0hlaWdodCk7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oZmxvYXQgbG9naWNYLCBm
bG9hdCBsb2dpY1ksCisgICAgICAgICAgICBmbG9hdCBsb2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hl
aWdodCwKKyAgICAgICAgICAgIGZsb2F0IHBoeXNYLCBmbG9hdCBwaHlzWSwgZmxvYXQgcGh5c1dp
ZHRoLAorICAgICAgICAgICAgZmxvYXQgcGh5c0hlaWdodCk7CiAKLSAgICAgICAgLy8gSGVscGVy
Ci0gICAgICAgIHZvaWQgcGFyc2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKEtET006OkRPTVN0cmluZ0lt
cGwgKnN0cmluZyk7CisgICAgICAgIHZvaWQgcGFyc2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKERPTVN0
cmluZ0ltcGwqKTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9h
bGlnbjsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9tZWV0T3JTbGljZTsKIAotICAgICAgICBj
b25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqbV9jb250ZXh0OworICAgICAgICBjb25zdCBTVkdT
dHlsZWRFbGVtZW50SW1wbCogbV9jb250ZXh0OwogICAgIH07CiB9OwogCkluZGV4OiBrc3ZnMi9z
dmcvU1ZHRml0VG9WaWV3Qm94SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0Zp
dFRvVmlld0JveEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdGaXRU
b1ZpZXdCb3hJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjkgKzIyLDIxIEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmdsaXN0
Lmg+CisjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9j
b3JlL0F0dHJJbXBsLmg+Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KLQor
I2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1w
bC5oIgogI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudElt
cGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRml0
VG9WaWV3Qm94SW1wbC5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgorI2luY2x1
ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJ
bXBsLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7
CiAKLVNWR0ZpdFRvVmlld0JveEltcGw6OlNWR0ZpdFRvVmlld0JveEltcGwoKQotewotfQotCi1T
VkdGaXRUb1ZpZXdCb3hJbXBsOjp+U1ZHRml0VG9WaWV3Qm94SW1wbCgpCi17Ci19Ci0KIFNWR0Fu
aW1hdGVkUmVjdEltcGwgKlNWR0ZpdFRvVmlld0JveEltcGw6OnZpZXdCb3goKSBjb25zdAogewog
ICAgIGlmKCFtX3ZpZXdCb3gpCkBAIC04MiwxMSArNzQsMTEgQEAKICAgICAgICAgZnByaW50Zihz
dGRlcnIsICJXQVJOSU5HOiBNYWxmb3JtZWQgdmlld2JveCBzdHJpbmc6ICVzIChsOiAlaSkiLCB2
aWV3Ym94LmFzY2lpKCksIHZpZXdib3gubGVuZ3RoKCkpOwogfQogCi1TVkdNYXRyaXhJbXBsICpT
VkdGaXRUb1ZpZXdCb3hJbXBsOjp2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKGZsb2F0IHZpZXdXaWR0
aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdGaXRUb1ZpZXdC
b3hJbXBsOjp2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmll
d0hlaWdodCkgY29uc3QKIHsKICAgICBTVkdSZWN0SW1wbCAqdmlld0JveFJlY3QgPSB2aWV3Qm94
KCktPmJhc2VWYWwoKTsKICAgICBpZih2aWV3Qm94UmVjdC0+d2lkdGgoKSA9PSAwIHx8IHZpZXdC
b3hSZWN0LT5oZWlnaHQoKSA9PSAwKQotICAgICAgICByZXR1cm4gU1ZHU1ZHRWxlbWVudEltcGw6
OmNyZWF0ZVNWR01hdHJpeCgpOworICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAK
ICAgICByZXR1cm4gcHJlc2VydmVBc3BlY3RSYXRpbygpLT5iYXNlVmFsKCktPmdldENUTSh2aWV3
Qm94UmVjdC0+eCgpLAogICAgICAgICAgICAgdmlld0JveFJlY3QtPnkoKSwgdmlld0JveFJlY3Qt
PndpZHRoKCksIHZpZXdCb3hSZWN0LT5oZWlnaHQoKSwKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlz
dEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNCArMjIsMjAgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgot
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1w
bC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCiAKKyNpbmNsdWRlICJTVkdT
VkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKwogdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKIFNWR1RyYW5zZm9ybUxpc3RJbXBsOjpTVkdUcmFuc2Zvcm1MaXN0
SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqY29udGV4dCkKLTogU1ZHTGlzdDxTVkdU
cmFuc2Zvcm1JbXBsPihjb250ZXh0KQorICAgIDogU1ZHTGlzdDxTVkdUcmFuc2Zvcm1JbXBsPihj
b250ZXh0KQogewogfQogCi1TVkdUcmFuc2Zvcm1MaXN0SW1wbDo6flNWR1RyYW5zZm9ybUxpc3RJ
bXBsKCkKK1NWR1RyYW5zZm9ybUltcGwgKlNWR1RyYW5zZm9ybUxpc3RJbXBsOjpjcmVhdGVTVkdU
cmFuc2Zvcm1Gcm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KSBjb25zdAog
ewotfQotCi1TVkdUcmFuc2Zvcm1JbXBsICpTVkdUcmFuc2Zvcm1MaXN0SW1wbDo6Y3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpIGNvbnN0Ci17CiAgICAg
cmV0dXJuIFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1h
dHJpeCk7CiB9CiAKQEAgLTY1LDEyICs2MSwxMSBAQAogICAgIGlmKCFsZW5ndGgpCiAgICAgICAg
IHJldHVybiAwOwogICAgICAgICAKLSAgICBTVkdUcmFuc2Zvcm1JbXBsICpvYmogPSBTVkdTVkdF
bGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7Ci0gICAgU1ZHTWF0cml4SW1wbCAqbWF0
cml4ID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR01hdHJpeCgpOwotCisgICAgQWZmaW5l
VHJhbnNmb3JtIG1hdHJpeDsKICAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspCi0gICAgICAgIG1hdHJpeC0+bXVsdGlwbHkoZ2V0SXRlbShpKS0+bWF0cml4KCkpOwor
ICAgICAgICBtYXRyaXggKj0gZ2V0SXRlbShpKS0+bWF0cml4KCk7CiAKKyAgICBTVkdUcmFuc2Zv
cm1JbXBsICpvYmogPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAg
ICAgb2JqLT5zZXRNYXRyaXgobWF0cml4KTsKICAgICByZXR1cm4gb2JqOwogfQpJbmRleDoga3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTG9j
YXRhYmxlSW1wbC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGVJ
bXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNSArMjUsMzMgQEAKICNkZWZpbmUgS1NW
R19TVkdMb2NhdGFibGVJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS1NWRwot
eworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICBj
bGFzcyBTVkdSZWN0SW1wbDsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNW
R0VsZW1lbnRJbXBsOwogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotICAgIGNsYXNz
IFNWR0xvY2F0YWJsZUltcGwKLSAgICB7CisKKyAgICBjbGFzcyBTVkdMb2NhdGFibGVJbXBsIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0xvY2F0YWJsZUltcGwoKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHTG9jYXRhYmxlSW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdMb2NhdGFibGUnIGZ1bmN0
aW9ucwotICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVt
ZW50KCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpmYXJ0aGVz
dFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50
SW1wbCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVh
bCBTVkdFbGVtZW50SW1wbCogZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdCA9IDA7CiAK
LSAgICAgICAgdmlydHVhbCBTVkdSZWN0SW1wbCAqZ2V0QkJveCgpIGNvbnN0ID0gMDsKLSAgICAg
ICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRDVE0oKSBjb25zdCA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3QgPSAwOwotICAgICAgICB2
aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1w
bCAqZWxlbWVudCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsKiBnZXRC
Qm94KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0o
KSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNU
TSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0VHJhbnNm
b3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBsKikgY29uc3QgPSAwOwogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudEltcGwgKm5lYXJlc3RWaWV3cG9ydEVsZW1lbnQo
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmVsZW1lbnQpOwotICAgICAgICBzdGF0aWMgU1ZH
RWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1l
bnRJbXBsICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR1JlY3RJbXBsICpnZXRCQm94KGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR01h
dHJpeEltcGwgKmdldENUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCk7Ci0gICAgICAg
IHN0YXRpYyBTVkdNYXRyaXhJbXBsICpnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwg
KmVsZW1lbnQpOworICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9y
dEVsZW1lbnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIFNW
R0VsZW1lbnRJbXBsKiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCopOworICAgICAgICBzdGF0aWMgU1ZHUmVjdEltcGwqIGdldEJCb3goY29uc3QgU1ZH
U3R5bGVkRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9ybSBnZXRD
VE0oY29uc3QgU1ZHRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9y
bSBnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwqKTsKICAgICB9OwotfTsKK30KIAog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJ
bXBsLmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsMjUgKzI1LDE4IEBACiAjZGVmaW5lIEtTVkdf
U1ZHUGF0dGVybkVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAiU1ZH
VGVzdHNJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgotI2luY2x1ZGUgIlNW
R1VSSVJlZmVyZW5jZUltcGwuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5o
IgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCiAjaW5jbHVk
ZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgorI2luY2x1ZGUgIlNWR0xhbmdTcGFjZUltcGwuaCIK
ICNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHVGVzdHNJbXBs
LmgiCisjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlSW1wbC5oIgorI2luY2x1ZGUgIktSZW5kZXJp
bmdQYWludFNlcnZlclBhdHRlcm4uaCIKIAotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jlc291
cmNlTGlzdGVuZXIuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXIuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQ
YXR0ZXJuLmg+Ci0KLWNsYXNzIEtDYW52YXNJbWFnZTsKLQotbmFtZXNwYWNlIEtTVkcKLXsKLSAg
ICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7Ci0gICAgY2xhc3MgU1ZHUGF0dGVybkVsZW1l
bnRJbXBsOworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51bWVy
YXRpb25JbXBsOwotICAgIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw7CisKICAg
ICBjbGFzcyBTVkdQYXR0ZXJuRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudEltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1VSSVJlZmVyZW5jZUltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIFNWR1Rlc3RzSW1wbCwKQEAgLTUyLDM1ICs0NiwzNSBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lcgogICAgIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR1BhdHRlcm5FbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7CisgICAgICAgIFNW
R1BhdHRlcm5FbGVtZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dEltcGwqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0dGVybkVsZW1lbnRJbXBsKCk7CiAgICAg
ICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rl
c3RzSW1wbDo6aXNWYWxpZCgpOyB9CiAKICAgICAgICAgLy8gJ1NWR1BhdHRlcm5FbGVtZW50JyBm
dW5jdGlvbnMKLSAgICAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwgKnBhdHRlcm5Vbml0
cygpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCAqcGF0dGVybkNv
bnRlbnRVbml0cygpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBs
ICpwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkRW51bWVyYXRp
b25JbXBsKiBwYXR0ZXJuVW5pdHMoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkltcGwqIHBhdHRlcm5Db250ZW50VW5pdHMoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0SW1wbCogcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0OwogCi0gICAgICAg
IFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqeCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZExl
bmd0aEltcGwgKnkoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiB4KCkg
Y29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogeSgpIGNvbnN0OwogCi0gICAg
ICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqd2lkdGgoKSBjb25zdDsKLSAgICAgICAgU1ZHQW5p
bWF0ZWRMZW5ndGhJbXBsICpoZWlnaHQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5n
dGhJbXBsKiB3aWR0aCgpIGNvbnN0OworICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwqIGhl
aWdodCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAotICAgICAgICBj
b25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZH
U3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQpOworICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCogcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwq
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VOb3RpZmljYXRpb24oKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0OwogCi0g
ICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAq
KSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAq
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0
eWxlKTsKLSAgICAgICAgdmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuICpjYW52
YXNSZXNvdXJjZSgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5k
ZXJTdHlsZSopIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICAgICAgdmly
dHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuKiBjYW52YXNSZXNvdXJjZSgpOwogCiAg
ICAgICAgIC8vICd2aXJ0dWFsIFNWR0xvY2F0YWJsZScgZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1
YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5l
VHJhbnNmb3JtIGdldENUTSgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aEltcGw+IG1feDsKQEAgLTkzLDE3ICs4NywxNyBA
QAogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw+
IG1fcGF0dGVyblRyYW5zZm9ybTsKIAotICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSAqbV90
aWxlOworICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSogbV90aWxlOwogICAgICAgICBtdXRh
YmxlIGJvb2wgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzOwotICAgICAgICBtdXRhYmxlIEtSZW5k
ZXJpbmdQYWludFNlcnZlclBhdHRlcm4gKm1fcGFpbnRTZXJ2ZXI7CisgICAgICAgIG11dGFibGUg
S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybiogbV9wYWludFNlcnZlcjsKICAgICAgICAgCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgLy8gbm90aWZ5QXR0cmlidXRlQ2hhbmdlIGhlbHBlcnM6Ci0g
ICAgICAgIHZvaWQgZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVybihjb25zdCBTVkdQ
YXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgS0NhbnZhc01hdHJpeCAmcGF0dGVyblRyYW5zZm9y
bU1hdHJpeCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgZHJhd1BhdHRlcm5Db250ZW50SW50b1RpbGUo
Y29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQsIGNvbnN0IEludFNpemUgJm5ld1Np
emUsIEtDYW52YXNNYXRyaXggcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CisgICAgICAg
IHZvaWQgZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVybihjb25zdCBTVkdQYXR0ZXJu
RWxlbWVudEltcGwqLCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNv
bnN0OworICAgICAgICB2b2lkIGRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKGNvbnN0IFNWR1Bh
dHRlcm5FbGVtZW50SW1wbCosIGNvbnN0IEludFNpemUmIG5ld1NpemUsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CiAgICAgICAgIHZvaWQgbm90
aWZ5Q2xpZW50c1RvUmVwYWludCgpIGNvbnN0OwogICAgIH07Ci19OworfQogCiAjZW5kaWYgLy8g
U1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR1BvaW50SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdQb2ludEltcGwuaAkocmV2aXNpb24gMTI0MjQpCisrKyBr
c3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAog
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNiwyMCArMjcs
MjEgQEAKIAogI2luY2x1ZGUgIlNoYXJlZC5oIgogCisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUg
YSAicGxhaW4gZGF0YSIgY2xhc3MsIGhhbmRsZWQgbW9yZSBsaWtlIFNWR01hdHJpeCwgd2hlcmUg
dGhlCisvLyBiaW5kaW5nIHNpbXBseSBtYXBzIG9uIHRvcCBvZiBhIGJhc2UgY2xhc3MgKGluIHRo
aXMgY2FzZSwgRmxvYXRQb2ludCkuCisvLyBBcyBmYXIgYXMgSSBjYW4gdGVsbCB0aGUgU1ZHIERP
TSBkb2VzICpub3QqIHJlcXVpcmUgYSBwb2ludCBvYmplY3QgdGhhdCB5b3UgY2FuIG1vZGlmeQor
Ly8gdGhhdCBkeW5hbWljYWxseSBjaGFuZ2VzIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQuCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEludFBvaW50OwotfQotCi1uYW1lc3BhY2UgS1NWRwot
ewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwor
ICAgIGNsYXNzIEludFBvaW50OwogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwogICAg
IGNsYXNzIFNWR1BvaW50SW1wbCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUG9pbnRJbXBsPgogICAgIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFNWR1BvaW50SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50
SW1wbCAqY29udGV4dCA9IDApOwogICAgICAgICBTVkdQb2ludEltcGwoZmxvYXQgeCwgZmxvYXQg
eSwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQgPSAwKTsKLSAgICAgICAgU1ZH
UG9pbnRJbXBsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50ICZwLCBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCAqY29udGV4dCA9IDApOworICAgICAgICBTVkdQb2ludEltcGwoY29uc3QgSW50UG9p
bnQgJnAsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0ID0gMCk7CiAgICAgICAg
IH5TVkdQb2ludEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHUG9pbnQnIGZ1bmN0aW9ucwpAQCAt
NDksNyArNTEsNyBAQAogICAgICAgICB2b2lkIHNldFkoZmxvYXQgeSk7CiAgICAgICAgIGZsb2F0
IHkoKSBjb25zdDsKIAotICAgICAgICBTVkdQb2ludEltcGwgKm1hdHJpeFRyYW5zZm9ybShTVkdN
YXRyaXhJbXBsICptYXRyaXgpOworICAgICAgICBTVkdQb2ludEltcGwqIG1hdHJpeFRyYW5zZm9y
bShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZsb2F0
IG1feDsKQEAgLTU3LDcgKzU5LDcgQEAKIAogICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50
SW1wbCAqbV9jb250ZXh0OwogICAgIH07Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQK
ICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysr
IGtzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcg
KzI0LDYgQEAKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKLSNp
bmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIK
ICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0SW1wbC5oIgogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9p
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAkocmV2
aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjQsNyArMjQsNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUG9pbnRJ
bXBsLmgiCiAKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVk
RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogCkBAIC04MSw3ICs4MCw3IEBA
CiAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKLVNWR1Bv
aW50SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zvcm0oU1ZHTWF0cml4SW1wbCAqIC8q
IG1hdHJpeCAqLykKK1NWR1BvaW50SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zvcm0o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiAvKiBtYXRyaXggKi8pCiB7CiAgICAgLy8gVE9ETzogaW1w
bGVtZW50IG1lIQogICAgIHJldHVybiAwOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE2ICsyMiwxNSBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisj
aW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVk
ZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KICNpbmNsdWRlIDxxc3RyaW5nLmg+CiAjaW5j
bHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBs
Lmg+Ci0KLSNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb0ltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9JbXBsOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGw+KCkK
QEAgLTEwOCwxMCArMTA3LDEwIEBACiAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRl
Q2hhbmdlKCk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBs
OjpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lkdGgsIGZs
b2F0IGxvZ2ljSGVpZ2h0LAorQWZmaW5lVHJhbnNmb3JtIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9J
bXBsOjpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lkdGgs
IGZsb2F0IGxvZ2ljSGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbG9hdCAvKnBoeXNYKi8sIGZsb2F0IC8qcGh5c1kqLywgZmxvYXQgcGh5
c1dpZHRoLCBmbG9hdCBwaHlzSGVpZ2h0KQogewotICAgIFNWR01hdHJpeEltcGwgKnRlbXAgPSBT
VkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7CisgICAgQWZmaW5lVHJhbnNmb3Jt
IHRlbXA7CiAKICAgICBpZihhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05P
V04pCiAgICAgICAgIHJldHVybiB0ZW1wOwpAQCAtMTE5LDMyICsxMTgsMzIgQEAKICAgICBmbG9h
dCB2cGFyID0gbG9naWNXaWR0aCAvIGxvZ2ljSGVpZ2h0OwogICAgIGZsb2F0IHN2Z2FyID0gcGh5
c1dpZHRoIC8gcGh5c0hlaWdodDsKIAotICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fTk9ORSkKKyAgICBpZiAoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19OT05FKQogICAgIHsKLSAgICAgICAgdGVtcC0+c2NhbGVOb25Vbmlmb3JtKHBoeXNXaWR0aCAv
IGxvZ2ljV2lkdGgsIHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7Ci0gICAgICAgIHRlbXAtPnRy
YW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKKyAgICAgICAgdGVtcC5zY2FsZShwaHlzV2lkdGgg
LyBsb2dpY1dpZHRoLCBwaHlzSGVpZ2h0IC8gbG9naWNIZWlnaHQpOworICAgICAgICB0ZW1wLnRy
YW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKICAgICB9CiAgICAgZWxzZSBpZih2cGFyIDwgc3Zn
YXIgJiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX01FRVQpIHx8IHZwYXIgPj0g
c3ZnYXIgJiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX1NMSUNFKSkKICAgICB7
Ci0gICAgICAgIHRlbXAtPnNjYWxlKHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7CisgICAgICAg
IHRlbXAuc2NhbGUocGh5c0hlaWdodCAvIGxvZ2ljSGVpZ2h0KTsKIAogICAgICAgICBpZihhbGln
bigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIHx8IGFsaWduKCkgPT0gU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQgfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVB
U1BFQ1RSQVRJT19YTUlOWU1BWCkKLSAgICAgICAgICAgIHRlbXAtPnRyYW5zbGF0ZSgtbG9naWNY
LCAtbG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAudHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kp
OwogICAgICAgICBlbHNlIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1J
RFlNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRCB8fCBh
bGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYKQotICAgICAgICAgICAg
dGVtcC0+dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2lj
SGVpZ2h0IC8gcGh5c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAudHJh
bnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVpZ2h0IC8g
cGh5c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVt
cC0+dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVp
Z2h0IC8gcGh5c0hlaWdodCksIC1sb2dpY1kpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUo
LWxvZ2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBwaHlzSGVp
Z2h0KSwgLWxvZ2ljWSk7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHRlbXAtPnNj
YWxlKHBoeXNXaWR0aCAvIGxvZ2ljV2lkdGgpOworICAgICAgICB0ZW1wLnNjYWxlKHBoeXNXaWR0
aCAvIGxvZ2ljV2lkdGgpOwogCiAgICAgICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fWE1JTllNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19Y
TUlEWU1JTiB8fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOKQot
ICAgICAgICAgICAgdGVtcC0+dHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kpOworICAgICAgICAg
ICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSk7CiAgICAgICAgIGVsc2UgaWYoYWxp
Z24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRCB8fCBhbGlnbigpID09IFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEIHx8IGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1BWFlNSUQpCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2lj
WCwgLWxvZ2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5
c1dpZHRoKSAvIDIpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2lj
WSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dpZHRoKSAv
IDIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2ljWCwg
LWxvZ2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dp
ZHRoKSk7CisgICAgICAgICAgICB0ZW1wLnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZIC0gKGxv
Z2ljSGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpKTsKICAgICB9
CiAKICAgICByZXR1cm4gdGVtcDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlv
bkltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBs
LmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uSW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjcsMjAgKzI4LDEwIEBACiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotbmFtZXNw
YWNlIEtET00KLXsKLSAgICBjbGFzcyBET01TdHJpbmc7Ci0gICAgY2xhc3MgRG9jdW1lbnRJbXBs
OwotICAgIGNsYXNzIERvY3VtZW50VHlwZUltcGw7Ci0gICAgY2xhc3MgQ1NTU3R5bGVTaGVldElt
cGw7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsKIAotICAg
IHR5cGVkZWYgRnJhbWVWaWV3IEtET01WaWV3OwotfQotCi1uYW1lc3BhY2UgS1NWRwotewotICAg
IGNsYXNzIFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCA6IHB1YmxpYyBET006OkRPTUltcGxlbWVu
dGF0aW9uSW1wbAotICAgIHsKKyAgICBjbGFzcyBTVkdET01JbXBsZW1lbnRhdGlvbkltcGwgOiBw
dWJsaWMgRE9NSW1wbGVtZW50YXRpb25JbXBsIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0RP
TUltcGxlbWVudGF0aW9uSW1wbCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdET01JbXBsZW1lbnRh
dGlvbkltcGwoKTsKQEAgLTQ4LDE0ICszOSwxNCBAQAogICAgICAgICBzdGF0aWMgU1ZHRE9NSW1w
bGVtZW50YXRpb25JbXBsICpzZWxmKCk7CiAKICAgICAgICAgLy8gJ1NWR0RPTUltcGxlbWVudGF0
aW9uSW1wbCcgZnVuY3Rpb25zCi0gICAgICAgIGJvb2wgaGFzRmVhdHVyZShLRE9NOjpET01TdHJp
bmdJbXBsICpmZWF0dXJlLCBLRE9NOjpET01TdHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdDsKLSAg
ICAgICAgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqY3JlYXRlRG9jdW1lbnRUeXBlKEtET006OkRP
TVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWUsIEtET006OkRPTVN0cmluZ0ltcGwgKnB1YmxpY0lk
LCBLRE9NOjpET01TdHJpbmdJbXBsICpzeXN0ZW1JZCwgaW50JiBleGNlcHRpb25jb2RlKSBjb25z
dDsKLSAgICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudChLRE9NOjpET01T
dHJpbmdJbXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5h
bWUsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGludCYgZXhjZXB0aW9uY29kZSkg
Y29uc3Q7Ci0gICAgICAgIEtET006OkRvY3VtZW50SW1wbCAqY3JlYXRlRG9jdW1lbnQoS0RPTTo6
RE9NU3RyaW5nSW1wbCAqbmFtZXNwYWNlVVJJLCBLRE9NOjpET01TdHJpbmdJbXBsICpxdWFsaWZp
ZWROYW1lLCBLRE9NOjpEb2N1bWVudFR5cGVJbXBsICpkb2N0eXBlLCBib29sIGNyZWF0ZURvY0Vs
ZW1lbnQsIEtET006OktET01WaWV3ICp2aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0Owor
ICAgICAgICBib29sIGhhc0ZlYXR1cmUoRE9NU3RyaW5nSW1wbCogZmVhdHVyZSwgRE9NU3RyaW5n
SW1wbCogdmVyc2lvbikgY29uc3Q7CisgICAgICAgIERvY3VtZW50VHlwZUltcGwqIGNyZWF0ZURv
Y3VtZW50VHlwZShET01TdHJpbmdJbXBsKiBxdWFsaWZpZWROYW1lLCBET01TdHJpbmdJbXBsKiBw
dWJsaWNJZCwgRE9NU3RyaW5nSW1wbCogc3lzdGVtSWQsIGludCYgZXhjZXB0aW9uY29kZSkgY29u
c3Q7CisgICAgICAgIERvY3VtZW50SW1wbCogY3JlYXRlRG9jdW1lbnQoRE9NU3RyaW5nSW1wbCog
bmFtZXNwYWNlVVJJLCBET01TdHJpbmdJbXBsKiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGVJ
bXBsKiBkb2N0eXBlLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0OworICAgICAgICBEb2N1bWVu
dEltcGwqIGNyZWF0ZURvY3VtZW50KERPTVN0cmluZ0ltcGwqIG5hbWVzcGFjZVVSSSwgRE9NU3Ry
aW5nSW1wbCogcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlSW1wbCogZG9jdHlwZSwgYm9vbCBj
cmVhdGVEb2NFbGVtZW50LCBGcmFtZVZpZXcqLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0Owog
Ci0gICAgICAgIHZpcnR1YWwgS0RPTTo6Q1NTU3R5bGVTaGVldEltcGwgKmNyZWF0ZUNTU1N0eWxl
U2hlZXQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdGl0bGUsIEtET006OkRPTVN0cmluZ0ltcGwgKm1l
ZGlhKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0SW1wbCogY3JlYXRlQ1NT
U3R5bGVTaGVldChET01TdHJpbmdJbXBsKiB0aXRsZSwgRE9NU3RyaW5nSW1wbCogbWVkaWEpIGNv
bnN0OwogCi0gICAgICAgIHZpcnR1YWwgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqZGVmYXVsdERv
Y3VtZW50VHlwZSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIERvY3VtZW50VHlwZUltcGwqIGRl
ZmF1bHREb2N1bWVudFR5cGUoKSBjb25zdDsKIAogICAgICAgICBib29sIGluQW5pbWF0aW9uQ29u
dGV4dCgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEFuaW1hdGlvbkNvbnRleHQoYm9vbCB2YWx1
ZSk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQor
Kysga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjIsMTYgKzIyLDE4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAot
I2luY2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+CisjaW5jbHVkZSAiU1ZHU3ltYm9sRWxlbWVudElt
cGwuaCIKIAorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRml0VG9WaWV3
Qm94SW1wbC5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1N5bWJvbEVs
ZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgorI2luY2x1ZGUg
PGtkb20vRE9NU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdTeW1ib2xF
bGVtZW50SW1wbDo6U1ZHU3ltYm9sRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCi06IFNWR1N0eWxlZEVsZW1lbnRJ
bXBsKHRhZ05hbWUsIGRvYyksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwoKSwgU1ZHRml0VG9WaWV3Qm94SW1wbCgpCis6IFNWR1N0eWxlZEVsZW1l
bnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBs
LmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAogCkBAIC0yNSwyNSArMjYsMTggQEAKICNpZiBTVkdfU1VQUE9SVAog
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdTdHlsYWJsZUltcGwu
aCIKIAotI2luY2x1ZGUgPHF3bWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUGF0
aC5oPgotI2luY2x1ZGUgInJlbmRlcl9zdHlsZS5oIgotCi1jbGFzcyBSZW5kZXJQYXRoOwotY2xh
c3MgS1JlbmRlcmluZ0RldmljZTsKK2NsYXNzIEtDYW52YXNQYXRoOwogY2xhc3MgS0NhbnZhc1Jl
c291cmNlOwogCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIEtDYW52YXNSZW5kZXJp
bmdTdHlsZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDU1NTdHlsZURlY2xhcmF0
aW9uSW1wbDsKICAgICBjbGFzcyBSZW5kZXJDYW52YXM7Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxl
bWVudEltcGwgOiBwdWJsaWMgU1ZHRWxlbWVudEltcGwKLSAgICB7CisgICAgY2xhc3MgU1ZHQW5p
bWF0ZWRTdHJpbmdJbXBsOworCisgICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudEltcGwgOiBwdWJs
aWMgU1ZHRWxlbWVudEltcGwgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0eWxlZEVsZW1l
bnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50
SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIHZpcnR1YWwgflNWR1N0eWxl
ZEVsZW1lbnRJbXBsKCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdHlsZWQo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC01MiwzNCArNDYsMzQgQEAKICAgICAgICAgdmly
dHVhbCBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKmNsYXNzTmFtZSgpIGNvbnN0OwogCiAgICAgICAg
IC8vIFRoZXNlIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgqIHRvUGF0aERhdGEoKSBj
b25zdCB7IHJldHVybiAwOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAq
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0
eWxlKTsKLSAgICAgICAgdmlydHVhbCBLQ2FudmFzUmVzb3VyY2UgKmNhbnZhc1Jlc291cmNlKCkg
eyByZXR1cm4gMDsgfQorICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworICAgICAgICB2aXJ0dWFsIEtDYW52YXNS
ZXNvdXJjZSogY2FudmFzUmVzb3VyY2UoKSB7IHJldHVybiAwOyB9CiAgICAgICAgIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRl
SW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAKLSAgICAgICAgUmVuZGVyQ2FudmFzICpjYW52YXMoKSBj
b25zdDsKKyAgICAgICAgUmVuZGVyQ2FudmFzKiBjYW52YXMoKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFs
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyLCBib29sIHBy
ZXNlcnZlRGVjbHMgPSBmYWxzZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKEF0dHJpYnV0ZUltcGwqLCBib29sIHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAKICAgICAg
ICAgLy8gSW1hZ2luZSB3ZSdyZSBhIDxyZWN0PiBpbnNpZGUgb2YgYSA8cGF0dGVybj4gc2VjdGlv
biB3aXRoIHBhdHRlcm5Db250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IgogICAgICAgICAv
LyBhbmQgb3VyICd3aWR0aCcgYXR0cmlidXRlIGlzIHNldCB0byA1MCUuIFdoZW4gdGhlIHBhdHRl
cm4gZ2V0cyByZWZlcmVuY2VkIGl0IGtub3dzIHRoZSAiYmJveCIKICAgICAgICAgLy8gb2YgaXQn
cyB1c2VyIGFuZCBoYXMgdG8gcHVzaCB0aGUgImFjdGl2ZSBjbGllbnQncyBiYm94IiBhcyBuZXcg
YXR0cmlidXRlIGNvbnRleHQgdG8gYWxsIGF0dHJpYnV0ZXMKICAgICAgICAgLy8gb2YgdGhlICdy
ZWN0Jy4gVGhpcyBmdW5jdGlvbiBhbHNvIHJldHVybnMgdGhlIG9sZCBhdHRyaWJ1dGUgY29udGV4
dCwgdG8gYmUgYWJsZSB0byByZXN0b3JlIGl0Li4uCi0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZH
U3R5bGVkRWxlbWVudEltcGwgKnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnRJbXBsICpjb250ZXh0KTsKKyAgICAgICAgdmlydHVhbCBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCogcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwq
KTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdm9pZCB1cGRhdGVDYW52YXNJdGVtKCk7IC8v
IEhhbmRsZXMgInBhdGggZGF0YSIgb2JqZWN0IGNoYW5nZXMuLi4gKG5vdCBmb3Igc3R5bGUvdHJh
bnNmb3JtISkKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgUmVmUHRyPEtET006OkNT
U1N0eWxlRGVjbGFyYXRpb25JbXBsPiBtX3BhOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxDU1NT
dHlsZURlY2xhcmF0aW9uSW1wbD4gbV9wYTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5p
bWF0ZWRTdHJpbmdJbXBsPiBtX2NsYXNzTmFtZTsKIAogICAgICAgICAvLyBPcHRpbWl6ZWQgdXBk
YXRpbmcgbG9naWMKICAgICAgICAgYm9vbCBtX3VwZGF0ZVZlY3RvcmlhbCA6IDE7CiAgICAgfTsK
LX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHVmlld0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVmlld0Vs
ZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHVmlld0VsZW1l
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDEzIEBACiAjaW5jbHVkZSAi
U1ZHVmlld0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgog
I2luY2x1ZGUgIlNWR1pvb21BbmRQYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0
SW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1ZpZXdFbGVtZW50SW1wbDo6U1ZHVmlld0Vs
ZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3Vt
ZW50SW1wbCAqZG9jKQotOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpLAotU1ZHRml0VG9WaWV3Qm94SW1wbCgpLCBT
Vkdab29tQW5kUGFuSW1wbCgpCis6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykK
IHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsLmNw
cAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJrc3Zn
LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNs
dWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR1N0b3BFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJ
bXBsLmgiCkBAIC0zOSw5ICszOCw5IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0SW1wbC5oIgogCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2Nh
bnZhcy9LQ2FudmFzTWF0cml4Lmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z0RldmljZS5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZl
ckdyYWRpZW50Lmg+CisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogCkBAIC0xMzEsOSArMTMwLDkgQEAKICAgICBmbG9hdCBfZnkgPSBmeVNldCA/
IGZ5KCktPmJhc2VWYWwoKS0+dmFsdWUoKSA6IF9jeTsKIAogICAgIEtSZW5kZXJpbmdQYWludFNl
cnZlclJhZGlhbEdyYWRpZW50ICpncmFkID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ1BhaW50U2Vy
dmVyUmFkaWFsR3JhZGllbnQgKj4oX2dyYWQpOwotICAgIEtDYW52YXNNYXRyaXggbWF0OworICAg
IEFmZmluZVRyYW5zZm9ybSBtYXQ7CiAgICAgaWYoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZh
bCgpLT5udW1iZXJPZkl0ZW1zKCkgPiAwKQotICAgICAgICBtYXQgPSBLQ2FudmFzTWF0cml4KGdy
YWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCktPnFt
YXRyaXgoKSk7CisgICAgICAgIG1hdCA9IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+
Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBRU3RyaW5nIHJlZiA9IEtET006OkRPTVN0
cmluZyhocmVmKCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQYWludFNl
cnZlciAqcHNlcnZlciA9IGdldFBhaW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCByZWYubWlk
KDEpKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmNw
cAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjIgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9rZG9tLmg+Ci0jaW5j
bHVkZSAiU1ZHUmVjdEltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50
SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNW
R1JlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlIDxr
Y2FudmFzL0tDYW52YXNJdGVtLmg+CisjaW5jbHVkZSA8a2RvbS9rZG9tLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogCiBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6U1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
S0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUs
IGRvYyksIFNWR0xvY2F0YWJsZUltcGwoKQorOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1l
LCBkb2MpCiB7CiB9CiAKLVNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjp+U1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudEltcGwoKQotewotfQotCiBTVkdFbGVtZW50SW1wbCAqU1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudEltcGw6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAogewog
ICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMp
OwpAQCAtNTcsMjAgKzUzLDIwIEBACiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldEJC
b3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJ
bXBsOjpnZXRDVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewogICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBs
OjpnZXRDVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAogewogICAgIHJldHVy
biBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeElt
cGwgKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQo
U1ZHRWxlbWVudEltcGwgKikgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2NhdGFi
bGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBsICopIGNv
bnN0CiB7CiAgICAgLy8gVE9ETyEKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gQWZmaW5lVHJh
bnNmb3JtKCk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdIZWxw
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCShyZXZpc2lvbiAx
MjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwx
OCArMjIsMTggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAi
U1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdTdHJpbmdMaXN0SW1wbC5oIgotI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1w
bC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50SW1wbC5oIgotCisjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1
ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgogCi0jaW5jbHVkZSA8Y21hdGg+Ci0KIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR1Rl
eHRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudElt
cGwuaAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCw0NCArMjUsNDMgQEAKICNkZWZpbmUgS1NWR19TVkdU
ZXh0RWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFu
c2Zvcm0uaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCiAKLW5hbWVzcGFjZSBLU1ZHCi17CituYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHVGV4dEVsZW1lbnRJbXBsIDogcHVibGljIFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR1RleHRFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7Ci0gICAgICAgIHZpcnR1YWwgflNWR1RleHRFbGVt
ZW50SW1wbCgpOworICAgICAgICBTVkdUZXh0RWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNl
TWFwcGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCop
OwogCiAgICAgICAgICAvLyAnU1ZHVGV4dEVsZW1lbnQnIGZ1bmN0aW9ucwotICAgICAgICB2aXJ0
dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9ydEVsZW1l
bnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogZmFydGhlc3RWaWV3
cG9ydEVsZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsICpnZXRC
Qm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29u
c3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNW
R0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgICAgIHZpcnR1
YWwgU1ZHUmVjdEltcGwqIGdldEJCb3goKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVU
cmFuc2Zvcm0gZ2V0Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3Jt
IGdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBn
ZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudEltcGwqKSBjb25zdCB7IHJldHVybiBBZmZp
bmVUcmFuc2Zvcm0oKTsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwg
a2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBr
aHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKTsKLSAgICAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoRE9NOjpOb2RlSW1wbCAqKSBjb25zdDsKKyAgICAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKE5vZGVJbXBsKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsK
IAotICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5zZm9y
bSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0cml4KCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCogdHJh
bnNmb3JtKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0
cml4KCkgY29uc3Q7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9jYWxU
cmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxvY2FsVHJhbnNmb3Jtcyk7CisgICAgICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVMb2NhbFRyYW5zZm9ybShTVkdUcmFuc2Zvcm1MaXN0SW1wbCop
OwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdNYXRy
aXhJbXBsPiBtX2xvY2FsTWF0cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2NhbE1h
dHJpeDsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1w
bD4gbV90cmFuc2Zvcm07CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAog
I2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0
KQorKysga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsMTUgKzIyLDE1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgIlNWR0NpcmNsZUVs
ZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJT
VkdDaXJjbGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5o
IgotCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2Fu
dmFzQ3JlYXRvci5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgS1NWRzsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHJldmlzaW9u
IDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJv
amVjdAogCkBAIC0yNSwyMyArMjYsMjMgQEAKICNpZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAi
U1ZHTGlzdC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKIAotbmFtZXNwYWNlIEtT
VkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cisg
ICAgY2xhc3MgU1ZHVHJhbnNmb3JtSW1wbDsKKwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3RJ
bXBsIDogcHVibGljIFNWR0xpc3Q8U1ZHVHJhbnNmb3JtSW1wbD4KICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1w
bCAqY29udGV4dCA9IDApOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1MaXN0SW1wbCgp
OworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1w
bCogPSAwKTsKIAotICAgICAgICBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zvcm1G
cm9tTWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCkgY29uc3Q7Ci0gICAgICAgIFNWR1RyYW5z
Zm9ybUltcGwgKmNvbnNvbGlkYXRlKCk7CisgICAgICAgIFNWR1RyYW5zZm9ybUltcGwqIGNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNmb3JtJikgY29uc3Q7Cisg
ICAgICAgIFNWR1RyYW5zZm9ybUltcGwqIGNvbnNvbGlkYXRlKCk7CiAKICAgICAgICAgLy8gSW50
ZXJuYWwgdXNlIG9ubHkKLSAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCAqY29uY2F0ZW5hdGUoKSBj
b25zdDsKKyAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCogY29uY2F0ZW5hdGUoKSBjb25zdDsKICAg
ICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdOdW1iZXJMaXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR051
bWJlckxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHTnVtYmVy
TGlzdEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw2IEBACiAjaWYgU1ZHX1NV
UFBPUlQKICNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1w
bC5oIgogI2luY2x1ZGUgIlNWR051bWJlckltcGwuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50
SW1wbC5oIgogI2luY2x1ZGUgIlNWR051bWJlckxpc3RJbXBsLmgiCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0
MjQpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIsMjMgKzIyLDIyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
SW1wbC5oIgorCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50
SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisj
aW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1J
bXBsLmgiCisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzSXRlbS5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9B
dHRySW1wbC5oPgogI2luY2x1ZGUgPHFyZWdleHAuaD4KICNpbmNsdWRlIDxxc3RyaW5nbGlzdC5o
PgogCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNJdGVtLmg+Ci0KLSNpbmNsdWRl
ICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
RG9jdW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RJbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudEltcGw6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbChjb25zdCBL
RE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykKQEAg
LTU1LDM5ICs1NCwyNCBAQAogICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RJbXBsPihtX3RyYW5zZm9ybSwgdGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBjb25zdAorQWZm
aW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0Q1RNKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHTWF0cml4SW1wbD4obV9sb2NhbE1h
dHJpeCk7CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldENUTSh0aGlzKSAqIG1fbG9j
YWxNYXRyaXg7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7Ci0gICAgU1ZHTWF0cml4
SW1wbCAqY3RtID0gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKHRoaXMpOwotCi0gICAgaWYobV9s
b2NhbE1hdHJpeCkKLSAgICAgICAgY3RtLT5tdWx0aXBseShtX2xvY2FsTWF0cml4LmdldCgpKTsK
LQotICAgIHJldHVybiBjdG07CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldFNjcmVl
bkNUTSh0aGlzKSAqIG1fbG9jYWxNYXRyaXg7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKLXsKLSAgICBT
VkdNYXRyaXhJbXBsICpjdG0gPSBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7
Ci0KLSAgICBpZihtX2xvY2FsTWF0cml4KQotICAgICAgICBjdG0tPm11bHRpcGx5KG1fbG9jYWxN
YXRyaXguZ2V0KCkpOwotCi0gICAgcmV0dXJuIGN0bTsKLX0KLQogdm9pZCBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudEltcGw6OnVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxp
c3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpCiB7CiAgICAgLy8gVXBkYXRlIGNhY2hlZCBsb2NhbCBt
YXRyaXgKICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gbG9jYWxUcmFuc2Zvcm0gPSBsb2Nh
bFRyYW5zZm9ybXMtPmNvbmNhdGVuYXRlKCk7Ci0gICAgaWYobG9jYWxUcmFuc2Zvcm0pIHsKKyAg
ICBpZiAobG9jYWxUcmFuc2Zvcm0pIHsKICAgICAgICAgbV9sb2NhbE1hdHJpeCA9IGxvY2FsVHJh
bnNmb3JtLT5tYXRyaXgoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAg
IHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgoKSk7
CisgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0cml4
KTsKICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTIwLDE3ICsxMDQsMjIgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNmb3Jt
YWJsZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJ
bXBsICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG1fbG9jYWxNYXRyaXg7CiB9CiAKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudEltcGw6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqKSBj
b25zdAoreworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKK30KKwogdm9pZCBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OmF0dGFjaCgpCiB7CiAgICAgU1ZHU3R5bGVkRWxl
bWVudEltcGw6OmF0dGFjaCgpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkgJiYgbV9sb2NhbE1hdHJp
eCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeC0+
cW1hdHJpeCgpKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2V0
TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiB9CiAKIApJbmRleDoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDkgKzIyLDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAot
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwog
CiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJ
bXBsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0KSA6IFNWR0FuaW1hdGVkVGVt
cGxhdGU8U1ZHVHJhbnNmb3JtTGlzdEltcGw+KGNvbnRleHQpCkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZFT2Zm
c2V0RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdGRU9m
ZnNldEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjMgKzIyLDIyIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmds
aXN0Lmg+CisjaW5jbHVkZSAiU1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8
a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdET01J
bXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJT
VkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmg+CiAjaW5j
bHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
c1Jlc291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2Uu
aD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVu
dC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgPHFzdHJpbmds
aXN0Lmg+CiAKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHls
ZS5oIgotI2luY2x1ZGUgIlNWR0ZFT2Zmc2V0RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdB
bmltYXRlZE51bWJlckltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNl
IEtTVkc7CiAKIFNWR0ZFT2Zmc2V0RWxlbWVudEltcGw6OlNWR0ZFT2Zmc2V0RWxlbWVudEltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpk
b2MpIDogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTMgKzIyLDEzIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29y
ZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBs
LmgiCiAKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZH
RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgotI2luY2x1ZGUgIlNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBs
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJhbnNm
b3JtSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmgJKHJl
dmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5p
a29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0CiAKQEAgLTI0LDI0ICsyNSwyMCBAQAogI2RlZmluZSBLU1ZHX1NWR1RyYW5zZm9ybUlt
cGxfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNp
bmNsdWRlICJTaGFyZWQuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdNYXRy
aXhJbXBsOworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUltcGwg
OiBwdWJsaWMgU2hhcmVkPFNWR1RyYW5zZm9ybUltcGw+CiAgICAgewogICAgIHB1YmxpYzoKICAg
ICAgICAgU1ZHVHJhbnNmb3JtSW1wbCgpOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1J
bXBsKCk7CiAKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpIGNvbnN0OworICAgICAgICB1
bnNpZ25lZCBzaG9ydCB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgICAgIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXg7IH0K
KyAgICAgICAgZG91YmxlIGFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZTsgfQogCi0gICAg
ICAgIFNWR01hdHJpeEltcGwgKm1hdHJpeCgpIGNvbnN0OwotICAgIAotICAgICAgICBkb3VibGUg
YW5nbGUoKSBjb25zdDsKLQotICAgICAgICB2b2lkIHNldE1hdHJpeChTVkdNYXRyaXhJbXBsICpt
YXRyaXgpOworICAgICAgICB2b2lkIHNldE1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsK
ICAgICAgICAgdm9pZCBzZXRUcmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpOwogICAgICAg
ICB2b2lkIHNldFNjYWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKICAgICAgICAgdm9pZCBzZXRS
b3RhdGUoZG91YmxlIGFuZ2xlLCBkb3VibGUgY3gsIGRvdWJsZSBjeSk7CkBAIC00OSwxMSArNDYs
MTEgQEAKICAgICAgICAgdm9pZCBzZXRTa2V3WShkb3VibGUgYW5nbGUpOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgZG91YmxlIG1fYW5nbGU7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fdHlw
ZTsKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbWF0cml4OworICAgICAgICBkb3Vi
bGUgbV9hbmdsZTsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbWF0cml4OwogICAgIH07Ci19
OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAog
CkBAIC0yNCwzMCArMjUsMjggQEAKICNkZWZpbmUgS1NWR19TVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNN
YXRyaXguaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0u
aCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgImtzdmcu
aCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBT
VkdUcmFuc2Zvcm1JbXBsOwotICAgIGNsYXNzIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1w
bCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50SW1wbAotICAgIHsKKworICAgIGNsYXNzIFNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50
SW1wbCB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudElt
cGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBs
ICpkb2MpOworICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIHZpcnR1YWwgflNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUlt
cGwqKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGltZXJFdmVudChkb3VibGUgdGlt
ZVBlcmNlbnRhZ2UpOwogCiAgICAgICAgIC8vIEhlbHBlcnMKLSAgICAgICAgUmVmUHRyPFNWR1Ry
YW5zZm9ybUltcGw+IHBhcnNlVHJhbnNmb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmZGF0YSkgY29u
c3Q7Ci0gICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFXTWF0
cml4ICZtYXRyaXgsIGRvdWJsZSAmYW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNvbnN0
OworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gcGFyc2VUcmFuc2Zvcm1WYWx1ZShj
b25zdCBRU3RyaW5nJikgY29uc3Q7CisgICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25Gcm9t
TWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGRvdWJsZSYgYW5nbGUsIGRvdWJsZSYgY3gs
IGRvdWJsZSYgY3kpIGNvbnN0OwogCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmluaXRpYWxNYXRy
aXgoKSBjb25zdDsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqdHJhbnNmb3JtTWF0cml4KCkgY29u
c3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBpbml0aWFsTWF0cml4KCkgY29uc3Q7CisgICAg
ICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtTWF0cml4KCkgY29uc3QgeyByZXR1
cm4gbV90cmFuc2Zvcm1NYXRyaXg7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIGludCBtX2N1
cnJlbnRJdGVtOwpAQCAtNTcsMTMgKzU2LDEzIEBACiAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zv
cm1JbXBsPiBtX2Zyb21UcmFuc2Zvcm07CiAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1JbXBs
PiBtX2luaXRpYWxUcmFuc2Zvcm07CiAKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1f
bGFzdE1hdHJpeDsKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fdHJhbnNmb3JtTWF0
cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sYXN0TWF0cml4OworICAgICAgICBBZmZp
bmVUcmFuc2Zvcm0gbV90cmFuc2Zvcm1NYXRyaXg7CiAKICAgICAgICAgbXV0YWJsZSBib29sIG1f
cm90YXRlU3BlY2lhbENhc2UgOiAxOwogICAgICAgICBib29sIG1fdG9Sb3RhdGVTcGVjaWFsQ2Fz
ZSA6IDEsIG1fZnJvbVJvdGF0ZVNwZWNpYWxDYXNlIDogMTsKICAgICB9OwotfTsKK30KIAogI2Vu
ZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
SW1wbC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsNTUgKzI1LDQ4IEBACiAjZGVmaW5lIEtT
VkdfU1ZHQW5pbWF0aW9uRWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRl
ICJTVkdUZXN0c0ltcGwuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUg
IlNWR1N0cmluZ0xpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwuaCIKKyNpbmNsdWRlICJTVkdUZXN0c0ltcGwuaCIKIAotbmFtZXNwYWNlIEtTVkcK
LXsKLSAgICBlbnVtIEVGaWxsTW9kZQotICAgIHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBj
bGFzcyBTVkdTdHJpbmdMaXN0SW1wbDsKKworICAgIGVudW0gRUZpbGxNb2RlIHsKICAgICAgICAg
RklMTF9SRU1PVkUgPSAwLAogICAgICAgICBGSUxMX0ZSRUVaRQogICAgIH07CiAKLSAgICBlbnVt
IEVBZGRpdGl2ZU1vZGUKLSAgICB7CisgICAgZW51bSBFQWRkaXRpdmVNb2RlIHsKICAgICAgICAg
QURESVRJVkVfUkVQTEFDRSA9IDAsCiAgICAgICAgIEFERElUSVZFX1NVTQogICAgIH07CiAKLSAg
ICBlbnVtIEVBY2N1bXVsYXRlTW9kZQotICAgIHsKKyAgICBlbnVtIEVBY2N1bXVsYXRlTW9kZSB7
CiAgICAgICAgIEFDQ1VNVUxBVEVfTk9ORSA9IDAsCiAgICAgICAgIEFDQ1VNVUxBVEVfU1VNCiAg
ICAgfTsKIAotICAgIGVudW0gRUNhbGNNb2RlCi0gICAgeworICAgIGVudW0gRUNhbGNNb2RlIHsK
ICAgICAgICAgQ0FMQ01PREVfRElTQ1JFVEUgPSAwLAogICAgICAgICBDQUxDTU9ERV9MSU5FQVIs
CiAgICAgICAgIENBTENNT0RFX1BBQ0VELAogICAgICAgICBDQUxDTU9ERV9TUExJTkUKICAgICB9
OwogCi0gICAgZW51bSBFUmVzdGFydAotICAgIHsKKyAgICBlbnVtIEVSZXN0YXJ0IHsKICAgICAg
ICAgUkVTVEFSVF9BTFdBWVMgPSAwLAogICAgICAgICBSRVNUQVJUX1dIRU5OT1RBQ1RJVkUsCiAg
ICAgICAgIFJFU1RBUlRfTkVWRVIKICAgICB9OwogCi0gICAgZW51bSBFQXR0cmlidXRlVHlwZQot
ICAgIHsKKyAgICBlbnVtIEVBdHRyaWJ1dGVUeXBlIHsKICAgICAgICAgQVRUUklCVVRFVFlQRV9D
U1MgPSAwLAogICAgICAgICBBVFRSSUJVVEVUWVBFX1hNTCwKICAgICAgICAgQVRUUklCVVRFVFlQ
RV9BVVRPCiAgICAgfTsKIAotICAgIGVudW0gRUFuaW1hdGlvbk1vZGUgLy8gaW50ZXJuYWwKLSAg
ICB7CisgICAgZW51bSBFQW5pbWF0aW9uTW9kZSB7IC8vIGludGVybmFsCiAgICAgICAgIE5PX0FO
SU1BVElPTiA9IDAsCiAgICAgICAgIFRPX0FOSU1BVElPTiwKICAgICAgICAgQllfQU5JTUFUSU9O
LApAQCAtMTMwLDcgKzEyNCw3IEBACiAgICAgICAgIGludCBjYWxjdWxhdGVDdXJyZW50VmFsdWVJ
dGVtKGRvdWJsZSB0aW1lUGVyY2VudGFnZSk7CiAgICAgICAgIGRvdWJsZSBjYWxjdWxhdGVSZWxh
dGl2ZVRpbWVQZXJjZW50YWdlKGRvdWJsZSB0aW1lUGVyY2VudGFnZSwgaW50IGN1cnJlbnRJdGVt
KTsKIAotICAgICAgICBkb3VibGUgcmVwZWF0aW9ucygpIGNvbnN0OworICAgICAgICBkb3VibGUg
cmVwZXRpdGlvbnMoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0luZGVmaW5pdGUoZG91YmxlIHZh
bHVlKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKQEAgLTE2MSw3ICsxNTUsOCBAQAogICAgICAg
ICBkb3VibGUgbV9lbmQ7CiAgICAgICAgIGRvdWJsZSBtX2JlZ2luOwogCi0gICAgICAgIGRvdWJs
ZSBtX3JlcGVhdGlvbnM7CisgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBuZWVkIHRvIGJlIGludGVn
ZXJzIHJhdGhlciB0aGFuIGZsb2F0aW5nIHBvaW50LgorICAgICAgICBkb3VibGUgbV9yZXBldGl0
aW9uczsKICAgICAgICAgZG91YmxlIG1fcmVwZWF0Q291bnQ7CiAKICAgICAgICAgUmVmUHRyPFNW
R1N0cmluZ0xpc3RJbXBsPiBtX3ZhbHVlczsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyOCArMjIsMjggQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8ZmxvYXQuaD4KKyNpbmNs
dWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9rZG9tLmg+
Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSAiRE9NSW1wbGVtZW50
YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiRE9NSW1w
bGVtZW50YXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiY3NzX3ZhbHVlaW1wbC5oIgotI2luY2x1ZGUg
PGtkb20vRE9NU3RyaW5nLmg+Ci0KKyNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgorI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudEV4
dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5o
IgorI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3RyaW5nTGlz
dEltcGwuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNW
R1VSSVJlZmVyZW5jZUltcGwuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgot
I2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgotI2luY2x1ZGUgIlNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKKyNpbmNsdWRl
ICJjc3NfdmFsdWVpbXBsLmgiCiAjaW5jbHVkZSAiY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUg
Imtzdmdjc3Nwcm9wZXJ0aWVzLmgiCi0KLSNpbmNsdWRlICJYTGlua05hbWVzLmgiCi0KICNpbmNs
dWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxmbG9hdC5oPgorI2luY2x1ZGUgPGtkb20vRE9NU3RyaW5n
Lmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9rZG9t
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTY0
LDcgKzY0LDcgQEAKICAgICBtX21heCA9IDAuMDsKICAgICBtX2JlZ2luID0gMC4wOwogCi0gICAg
bV9yZXBlYXRpb25zID0gMDsKKyAgICBtX3JlcGV0aXRpb25zID0gMDsKICAgICBtX3JlcGVhdENv
dW50ID0gMDsKIAogICAgIG1fZmlsbCA9IEZJTExfUkVNT1ZFOwpAQCAtNTkxLDkgKzU5MSw5IEBA
CiAgICAgICAgICAgICAoZW5kVGltZVBlcmNlbnRhZ2UgLSBiZWdpblRpbWVQZXJjZW50YWdlKSk7
CiB9CiAKLWRvdWJsZSBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6cmVwZWF0aW9ucygpIGNvbnN0
Citkb3VibGUgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnJlcGV0aXRpb25zKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9yZXBlYXRpb25zOworICAgIHJldHVybiBtX3JlcGV0aXRpb25zOwogfQog
CiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOjppc0luZGVmaW5pdGUoZG91YmxlIHZhbHVl
KSBjb25zdApJbmRleDoga3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3Zn
L1NWR0VsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2Rl
Lm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNyArMjUsMzAgQEAK
ICNkZWZpbmUgS1NWR19TVkdFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1
ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSA8a2RvbS9jb3JlL1hNTEVsZW1lbnRJbXBsLmg+Cisj
aW5jbHVkZSAiZG9tX2VsZW1lbnRpbXBsLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBj
bGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1NWR0VsZW1lbnRJbXBsOwotICAgIGNs
YXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotICAgIGNsYXNzIEVjbWE7Ci0gICAgY2xhc3MgRG9j
dW1lbnRQdHI7Ci0gICAgdHlwZWRlZiBTdHlsZWRFbGVtZW50SW1wbCBYTUxFbGVtZW50SW1wbDsK
IAotICAgIGNsYXNzIFNWR0VsZW1lbnRJbXBsIDogcHVibGljIEtET006OlhNTEVsZW1lbnRJbXBs
CisgICAgY2xhc3MgU1ZHRWxlbWVudEltcGwgOiBwdWJsaWMgU3R5bGVkRWxlbWVudEltcGwKICAg
ICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7Ci0gICAgICAgIHZp
cnR1YWwgflNWR0VsZW1lbnRJbXBsKCk7CisgICAgICAgIFNWR0VsZW1lbnRJbXBsKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNTVkdFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNTdXBwb3J0ZWQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqZmVhdHVyZSwgS0RPTTo6RE9N
U3RyaW5nSW1wbCAqdmVyc2lvbikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N1cHBv
cnRlZChET01TdHJpbmdJbXBsKiBmZWF0dXJlLCBET01TdHJpbmdJbXBsKiB2ZXJzaW9uKSBjb25z
dDsKIAotICAgICAgICBTVkdTVkdFbGVtZW50SW1wbCAqb3duZXJTVkdFbGVtZW50KCkgY29uc3Q7
Ci0gICAgICAgIFNWR0VsZW1lbnRJbXBsICp2aWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKKyAgICAg
ICAgU1ZHU1ZHRWxlbWVudEltcGwqIG93bmVyU1ZHRWxlbWVudCgpIGNvbnN0OworICAgICAgICBT
VkdFbGVtZW50SW1wbCogdmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICAgICAgLy8gSGVs
cGVyIG1ldGhvZHMgdGhhdCByZXR1cm5zIHRoZSBhdHRyIHZhbHVlIGlmIGF0dHIgaXMgc2V0LCBv
dGhlcndpc2UgdGhlIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgIC8vIEl0IHRocm93cyBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIgaWYgdGhlIGVsZW1lbnQgaXMgcmVhZC1vbmx5LgotICAgICAg
ICBLRE9NOjpBdG9taWNTdHJpbmcgdHJ5R2V0QXR0cmlidXRlKGNvbnN0IEtET006OkRPTVN0cmlu
ZyYgbmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9IEtET006OkF0b21pY1N0
cmluZygpKSBjb25zdDsKLSAgICAgICAgS0RPTTo6QXRvbWljU3RyaW5nIHRyeUdldEF0dHJpYnV0
ZU5TKGNvbnN0IEtET006OkRPTVN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBLRE9NOjpET01T
dHJpbmcmIGxvY2FsTmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9IEtET006
OkF0b21pY1N0cmluZygpKSBjb25zdDsKKyAgICAgICAgQXRvbWljU3RyaW5nIHRyeUdldEF0dHJp
YnV0ZShjb25zdCBET01TdHJpbmcmIG5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUgPSBB
dG9taWNTdHJpbmcoKSkgY29uc3Q7CisgICAgICAgIEF0b21pY1N0cmluZyB0cnlHZXRBdHRyaWJ1
dGVOUyhjb25zdCBET01TdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgRE9NU3RyaW5nJiBsb2Nh
bE5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUgPSBBdG9taWNTdHJpbmcoKSkgY29uc3Q7
CiAKICAgICAgICAgLy8gSW50ZXJuYWwKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCi0g
ICAgICAgIC8vIFRvIGJlIGltcGxlbWVudGVkIGJ5IGFueSBlbGVtZW50IHdoaWNoIGNhbiBlc3Rh
Ymxpc2ggbmV3IHZpZXdwb3J0cy4uLgorICAgICAgICAvLyBUbyBiZSBpbXBsZW1lbnRlZCBieSBh
bnkgZWxlbWVudCB3aGljaCBjYW4gZXN0YWJsaXNoIG5ldyB2aWV3cG9ydHMuCiAgICAgICAgIHZp
cnR1YWwgUVN0cmluZyBhZGp1c3RWaWV3cG9ydENsaXBwaW5nKCkgY29uc3QgeyByZXR1cm4gUVN0
cmluZzo6bnVsbDsgfQogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTY4LDggKzYyLDggQEAKICAgICAgICAgdmlydHVh
bCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpIHsgbV9jbG9zZWQgPSB0cnVlOyB9Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7
IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihET006Ok5vZGVJbXBsICopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGVJbXBsKikgY29uc3Q7CiAg
ICAgICAgIAogICAgICAgICAvLyBoZWxwZXI6CiAgICAgICAgIGJvb2wgaXNDbG9zZWQoKSBjb25z
dCB7IHJldHVybiBtX2Nsb3NlZDsgfQpAQCAtNzgsMTYgKzcyLDE0IEBACiAgICAgICAgIGJvb2wg
bV9jbG9zZWQ7CiAgICAgICAgIHZvaWQgYWRkU1ZHRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlSW1wbCogYXR0cik7CiAgICAgfTsKLX07
CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBzdGF0aWMgaW5saW5lIFNWR0VsZW1lbnRJbXBs
ICpzdmdfZHluYW1pY19jYXN0KEtET006Ok5vZGVJbXBsICpub2RlKSB7Ci0gICAgICAgIFNWR0Vs
ZW1lbnRJbXBsICpzdmdFbGVtZW50ID0gTlVMTDsKKyAgICBpbmxpbmUgU1ZHRWxlbWVudEltcGwq
IHN2Z19keW5hbWljX2Nhc3QoTm9kZUltcGwgKm5vZGUpIHsKKyAgICAgICAgU1ZHRWxlbWVudElt
cGwqIHN2Z0VsZW1lbnQgPSAwOwogICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc1NWR0VsZW1l
bnQoKSkKICAgICAgICAgICAgIHN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50SW1w
bCAqPihub2RlKTsKICAgICAgICAgcmV0dXJuIHN2Z0VsZW1lbnQ7CiAgICAgfQotfTsKK30KIAog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdNYXRyaXhJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hdHJpeEltcGwuaAkocmV2aXNpb24g
MTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApA
QCAtMjQsODEgKzI1LDQ1IEBACiAjZGVmaW5lIEtTVkdfU1ZHTWF0cml4SW1wbF9ICiAjaWYgU1ZH
X1NVUFBPUlQKIAotI2luY2x1ZGUgPHFtYXRyaXguaD4KLQorI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgogI2luY2x1ZGUgIlNoYXJlZC5oIgogCi1uYW1lc3BhY2UgS1NWRwoteworbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR01hdHJpeEltcGwgOiBwdWJsaWMgU2hhcmVkPFNW
R01hdHJpeEltcGw+CiAgICAgeyAKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR01hdHJpeEltcGwo
KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBk
b3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbChRTWF0
cml4IG1hdCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR01hdHJpeEltcGwoKTsKKyAgICAgICAgU1ZH
TWF0cml4SW1wbCgpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBsKGRvdWJsZSBhLCBkb3VibGUg
YiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpCisgICAgICAgICAgICA6
IG1fbWF0cml4KGEsIGIsIGMsIGQsIGUsIGYpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBsKGNv
bnN0IFNWR01hdHJpeEltcGwmIG90aGVyKSA6IFNoYXJlZDxTVkdNYXRyaXhJbXBsPigpLCBtX21h
dHJpeChvdGhlci5tX21hdHJpeCkgeyB9CisgICAgICAgIFNWR01hdHJpeEltcGwoY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBtYXRyaXgpIDogbV9tYXRyaXgobWF0cml4KSB7IH0KIAotICAgICAgICB2
b2lkIHNldEEoZG91YmxlIGEpOwotICAgICAgICBkb3VibGUgYSgpIGNvbnN0OworICAgICAgICBv
cGVyYXRvciBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXg7
IH0KIAotICAgICAgICB2b2lkIHNldEIoZG91YmxlIGIpOwotICAgICAgICBkb3VibGUgYigpIGNv
bnN0OworICAgICAgICBkb3VibGUgYSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmEoKTsgfQor
ICAgICAgICBkb3VibGUgYigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmIoKTsgfQorICAgICAg
ICBkb3VibGUgYygpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmMoKTsgfQorICAgICAgICBkb3Vi
bGUgZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmQoKTsgfQorICAgICAgICBkb3VibGUgZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmUoKTsgfQorICAgICAgICBkb3VibGUgZigpIGNvbnN0
IHsgcmV0dXJuIG1fbWF0cml4LmYoKTsgfQogCi0gICAgICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7
Ci0gICAgICAgIGRvdWJsZSBjKCkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBpbnZl
cnNlKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXREKGRvdWJsZSBkKTsKLSAgICAgICAgZG91
YmxlIGQoKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG11bHRpcGx5KGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRl
KGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBzY2Fs
ZShkb3VibGUgc2NhbGVGYWN0b3IpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gc2Nh
bGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpIGNv
bnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gcm90YXRlKGRvdWJsZSBhbmdsZSkgY29uc3Q7
CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSByb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3Vi
bGUgeSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBmbGlwWCgpIGNvbnN0OworICAg
ICAgICBBZmZpbmVUcmFuc2Zvcm0gZmxpcFkoKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIHNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBz
a2V3WShkb3VibGUgYW5nbGUpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0RShkb3VibGUgZSk7
Ci0gICAgICAgIGRvdWJsZSBlKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBzZXRGKGRvdWJsZSBm
KTsKLSAgICAgICAgZG91YmxlIGYoKSBjb25zdDsKLQotICAgICAgICB2b2lkIGNvcHkoY29uc3Qg
U1ZHTWF0cml4SW1wbCAqb3RoZXIpOwotCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmludmVyc2Uo
KTsKLQotICAgICAgICAvLyBQcmUtbXVsdGlwbGllZCBvcGVyYXRpb25zLCBhcyBwZXIgdGhlIHNw
ZWNzLgotICAgICAgICBTVkdNYXRyaXhJbXBsICptdWx0aXBseShjb25zdCBTVkdNYXRyaXhJbXBs
ICpzZWNvbmRNYXRyaXgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICp0cmFuc2xhdGUoZG91Ymxl
IHgsIGRvdWJsZSB5KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2NhbGUoZG91YmxlIHNjYWxl
RmFjdG9yKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBz
Y2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpOwotICAgICAgICBTVkdNYXRyaXhJbXBs
ICpyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcm90YXRlRnJv
bVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpmbGlw
WCgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpmbGlwWSgpOwotICAgICAgICBTVkdNYXRyaXhJ
bXBsICpza2V3WChkb3VibGUgYW5nbGUpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpza2V3WShk
b3VibGUgYW5nbGUpOwotCi0gICAgICAgIC8vIFBvc3QtbXVsdGlwbGllZCBvcGVyYXRpb25zCi0g
ICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RNdWx0aXBseShjb25zdCBTVkdNYXRyaXhJbXBsICpz
ZWNvbmRNYXRyaXgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0VHJhbnNsYXRlKGRvdWJs
ZSB4LCBkb3VibGUgeSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTY2FsZShkb3VibGUg
c2NhbGVGYWN0b3IpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0U2NhbGVOb25Vbmlmb3Jt
KGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpOwotICAgICAgICBTVkdN
YXRyaXhJbXBsICpwb3N0Um90YXRlKGRvdWJsZSBhbmdsZSk7Ci0gICAgICAgIFNWR01hdHJpeElt
cGwgKnBvc3RSb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0gICAgICAgIFNW
R01hdHJpeEltcGwgKnBvc3RGbGlwWCgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0Rmxp
cFkoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFNrZXdYKGRvdWJsZSBhbmdsZSk7Ci0g
ICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTa2V3WShkb3VibGUgYW5nbGUpOwotCi0gICAgICAg
IHZvaWQgcmVzZXQoKTsKLQotICAgICAgICAvLyBLU1ZHIGhlbHBlciBtZXRob2QKLSAgICAgICAg
UU1hdHJpeCAmcW1hdHJpeCgpOwotICAgICAgICBjb25zdCBRTWF0cml4ICZxbWF0cml4KCkgY29u
c3Q7Ci0KLSAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBzY2FsaW5nIGNvbXBvbmVudCBvZiB0aGUg
bWF0cml4IGFuZCBmYWN0b3IgaXQgb3V0LiBBZnRlcgotICAgICAgICAvLyB0aGlzIG9wZXJhdGlv
biwgdGhlIG1hdHJpeCBoYXMgeCBhbmQgeSBzY2FsZSBvZiBvbmUuCi0gICAgICAgIHZvaWQgcmVt
b3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAqeVNjYWxlKTsKLQogICAgIHByaXZhdGU6
Ci0gICAgICAgIHZvaWQgc2V0TWF0cml4KFFNYXRyaXggbWF0KTsKLSAgICAgICAgUU1hdHJpeCBt
X21hdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbWF0cml4OwogICAgIH07Ci19OworfQog
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVDb2xvckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMywx
MiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgog
I2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRl
bnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdEltcGwuaCIKICNpbmNsdWRlICJrZG9t
L0RPTVN0cmluZy5oIgotI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50RXh0ZW5zaW9ucy5oIgotCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwpAQCAtMjA0LDcgKzIwNSw3IEBACiAgICAgICAgIGIgPSBtX2luaXRpYWxDb2xv
ci5ibHVlKCk7CiAgICAgfQogCi0gICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdGlvbnMo
KSAhPSAwLjApCisgICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGV0aXRpb25zKCkgIT0gMC4w
KQogICAgIHsKICAgICAgICAgciArPSBtX2xhc3RDb2xvci5yZWQoKTsKICAgICAgICAgZyArPSBt
X2xhc3RDb2xvci5ncmVlbigpOwpAQCAtMjE3LDEwICsyMTgsMTAgQEAKICAgICAvLyBFbmQgY29u
ZGl0aW9uLgogICAgIGlmKHRpbWVQZXJjZW50YWdlID09IDEuMCkKICAgICB7Ci0gICAgICAgIGlm
KChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBtX3JlcGVhdENvdW50IC0gMSkg
fHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQorICAgICAgICBpZigobV9yZXBlYXRDb3Vu
dCA+IDAgJiYgbV9yZXBldGl0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0luZGVmaW5p
dGUobV9yZXBlYXRDb3VudCkpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fbGFzdENvbG9yID0g
bV9jdXJyZW50Q29sb3I7Ci0gICAgICAgICAgICBtX3JlcGVhdGlvbnMrKzsKKyAgICAgICAgICAg
IG1fcmVwZXRpdGlvbnMrKzsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9T
VkdFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0VsZW1l
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTQgKzQ2LDEwIEBACiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiAKLVNWR0VsZW1l
bnRJbXBsOjpTVkdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiBLRE9NOjpYTUxFbGVtZW50SW1wbCh0YWdOYW1l
LCBkb2MpLCBtX2Nsb3NlZChmYWxzZSkKK1NWR0VsZW1lbnRJbXBsOjpTVkdFbGVtZW50SW1wbChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudEltcGwgKmRvYykgOiBTdHlsZWRF
bGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBtX2Nsb3NlZChmYWxzZSkKIHsKIH0KIAotU1ZHRWxl
bWVudEltcGw6On5TVkdFbGVtZW50SW1wbCgpCi17Ci19Ci0KIGJvb2wgU1ZHRWxlbWVudEltcGw6
OmlzU3VwcG9ydGVkKEtET006OkRPTVN0cmluZ0ltcGwgKmZlYXR1cmUsIEtET006OkRPTVN0cmlu
Z0ltcGwgKnZlcnNpb24pIGNvbnN0CiB7CiAgICAgaWYoU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBs
OjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pKQpAQCAtMTMyLDcgKzEy
OCw3IEBACiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYmx1ckF0dHIpCiAgICAgICAg
IGFkZFNWR0V2ZW50TGlzdGVuZXIoRE9NRm9jdXNPdXRFdmVudCwgYXR0cik7CiAgICAgZWxzZQot
ICAgICAgICBLRE9NOjpTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0
cik7CisgICAgICAgIFN0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRy
KTsKIH0KIAogYm9vbCBTVkdFbGVtZW50SW1wbDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihE
T006Ok5vZGVJbXBsICpjaGlsZCkgY29uc3QKSW5kZXg6IGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50
SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjYgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBs
Lmg+Ci0jaW5jbHVkZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1ZGUgIlNWR0dyYWRpZW50
RWxlbWVudEltcGwuaCIKKwogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgotCi0jaW5jbHVkZSAi
a3N2Zy5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0j
aW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1M
aXN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR0dyYWRpZW50RWxlbWVudEltcGwuaCIKLSNpbmNsdWRl
ICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1l
cmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVySW1wbC5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZE51bWJlckltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNp
bmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNW
R1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHUmVuZGVyU3R5bGUuaCIKLQorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKyNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFi
bGVJbXBsLmgiCisjaW5jbHVkZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1ZGUgImtzdmcu
aCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KKyNpbmNsdWRlIDxrY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z1BhaW50U2VydmVyR3JhZGllbnQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVy
aW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQp
CisrKyBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIs
MjQgKzIyLDI0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAorI2lu
Y2x1ZGUgIlNWR0FFbGVtZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxw
ZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgImNzc2hlbHBlci5oIgorI2lu
Y2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXND
b250YWluZXIuaD4KKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CisjaW5jbHVk
ZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgorI2luY2x1ZGUgPGtkb20vSGVs
cGVyLmg+CiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAjaW5jbHVkZSA8a2RvbS9l
dmVudHMvTW91c2VFdmVudEltcGwuaD4KICNpbmNsdWRlIDxrZG9tL2V2ZW50cy9rZG9tZXZlbnRz
Lmg+Ci0jaW5jbHVkZSA8a2RvbS9IZWxwZXIuaD4KLSNpbmNsdWRlICJ4bWwvZG9tMl9ldmVudHNp
bXBsLmgiCi0jaW5jbHVkZSAiY3NzaGVscGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgi
Ci0KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+Ci0jaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzQ29udGFpbmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z0RldmljZS5oPgotCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIlNWR05hbWVz
LmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSA8a3N2ZzIvS1NWR1BhcnQuaD4K
LSNpbmNsdWRlICJTVkdBRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmlu
Z0ltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDI0KQorKysg
a3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHBy
b2plY3QKIApAQCAtMjQsNTIgKzI1LDQyIEBACiAjZGVmaW5lIEtTVkdfU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZmaW5l
VHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwuaCIK
ICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgogCi1jbGFzcyBRTWF0cml4OwotCi1u
YW1lc3BhY2UgS0RPTQotewotICAgIGNsYXNzIE5vZGVJbXBsOwotICAgIGNsYXNzIERPTVN0cmlu
Z0ltcGw7Ci0gICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZHCi17
Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBTVkdUcmFuc2Zvcm1MaXN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RJbXBsOwotICAgIGNsYXNzIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbCA6IHB1
YmxpYyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCwgcHVibGljIFNWR1RyYW5zZm9ybWFi
bGVJbXBsCi0gICAgeworCisgICAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJ
bXBsIDogcHVibGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLCBwdWJsaWMgU1ZHVHJh
bnNmb3JtYWJsZUltcGwgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006
OkRvY3VtZW50SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAg
ICAgICB2aXJ0dWFsIH5TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwoKTsKICAgICAg
ICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZFRyYW5zZm9ybWFibGUoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgLy8gJ1NWR1RyYW5zZm9ybWFibGUnIGZ1bmN0aW9u
cwotICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5zZm9y
bSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0cml4KCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCogdHJh
bnNmb3JtKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0
cml4KCkgY29uc3Q7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnU1ZHTG9jYXRhYmxlJwot
ICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAgICB2
aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFNjcmVlbkNUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTSgpIGNvbnN0OworICAg
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsKiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVu
dCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgU1ZHUmVjdEltcGwgKmdldEJCb3goKSBjb25z
dDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQo
U1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJ
bXBsKiBnZXRCQm94KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdl
dFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNvbnN0OwogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBs
ICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBl
ZEF0dHJpYnV0ZUltcGwqKTsKIAotICAgICAgICB2b2lkIHVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNW
R1RyYW5zZm9ybUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpOworICAgICAgICB2b2lkIHVwZGF0
ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJbXBsKik7CiAgICAgICAgIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIG11dGFi
bGUgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbG9jYWxNYXRyaXg7CisgICAgICAgIEFmZmluZVRy
YW5zZm9ybSBtX2xvY2FsTWF0cml4OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RJbXBsPiBtX3RyYW5zZm9ybTsKICAgICB9OwogfTsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjQyNCkKKysr
IGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xh
cyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKIApAQCAtMjcsMjkgKzI4LDIzIEBACiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgiCiAKLW5hbWVzcGFjZSBLU1ZHCi17Ci0g
ICAgY2xhc3MgU1ZHUmVjdEltcGw7Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKLSAgICBjbGFz
cyBTVkdFbGVtZW50SW1wbDsKLSAgICBjbGFzcyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1w
bCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1wbCwgcHVibGljIFNWR0xvY2F0YWJsZUltcGwK
LSAgICB7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudEltcGwsIHB1YmxpYyBTVkdMb2Nh
dGFibGVJbXBsIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50
SW1wbCAqZG9jKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudElt
cGwoKTsKKyAgICAgICAgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNTdHlsZWRMb2NhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICAgICAgLy8gJ1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQnIGZ1bmN0aW9ucwotICAgICAgICB2
aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogZmFydGhlc3RW
aWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsICpn
ZXRCQm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29u
c3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50
KFNWR0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdSZWN0
SW1wbCogZ2V0QkJveCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBn
ZXRDVE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2NyZWVu
Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFRyYW5zZm9y
bVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNvbnN0OwogICAgIH07Ci19OworfQogCiAjZW5k
aWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVs
ZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDExICsyMiwxMiBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgiCiAKKyNp
bmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIK
LSNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDxrZG9t
L2NvcmUvQXR0ckltcGwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBr
c3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMiwyNSArMjIsMjQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JU
Ci0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KKyNpbmNsdWRlICJTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KKyNpbmNsdWRl
ICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkSW50
ZWdlckltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwuaCIKKyNpbmNsdWRl
ICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNp
bmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVk
ZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhc1Jlc291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMu
aD4KKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaD4KICNpbmNsdWRlIDxrY2Fu
dmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0
ckltcGwuaD4KKyNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVkZSAia3N2Zy5oIgot
I2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW5j
bHVkZSAiU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZE51bWJlckltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgot
I2luY2x1ZGUgIlNWR0FuaW1hdGVkSW50ZWdlckltcGwuaCIKLSNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbkltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnRJbXBsOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9z
dmcvU1ZHVHJhbnNmb3JtYWJsZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzNCArMjIs
MjUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8
cXJlZ2V4cC5oPgotI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+Ci0jaW5jbHVkZSA8a3htbGNvcmUv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCiAKLSNpbmNs
dWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KLQotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5o
PgotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgotCi0jaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5j
bHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgi
CisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgi
CiAjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1
ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5o
PgorI2luY2x1ZGUgPGt4bWxjb3JlL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDxxcmVnZXhwLmg+
CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNW
R1RyYW5zZm9ybWFibGVJbXBsOjpTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpIDogU1ZHTG9jYXRhYmxl
SW1wbCgpCi17Ci19Ci0KLVNWR1RyYW5zZm9ybWFibGVJbXBsOjp+U1ZHVHJhbnNmb3JtYWJsZUlt
cGwoKQotewotfQotCiB2b2lkIFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9ybUF0
dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqbGlzdCwgY29uc3QgS0RPTTo6QXRvbWljU3Ry
aW5nJiB0cmFuc2Zvcm0pCiB7CiAgICAgLy8gU3BsaXQgc3RyaW5nIGZvciBoYW5kbGluZyAxIHRy
YW5zZm9ybSBzdGF0ZW1lbnQgYXQgYSB0aW1lCkBAIC0xMDYsMTUgKzk3LDEzIEBACiAgICAgICAg
ICAgICB0LT5zZXRTa2V3WChwYXJhbXNbMF0udG9Eb3VibGUoKSk7CiAgICAgICAgIGVsc2UgaWYg
KHN1YnRyYW5zZm9ybVswXSA9PSAic2tld3kiICYmIChwYXJhbXMuY291bnQoKSA9PSAxKSkKICAg
ICAgICAgICAgIHQtPnNldFNrZXdZKHBhcmFtc1swXS50b0RvdWJsZSgpKTsKLSAgICAgICAgZWxz
ZSBpZiAoc3VidHJhbnNmb3JtWzBdID09ICJtYXRyaXgiICYmIChwYXJhbXMuY291bnQoKSA9PSA2
KSkgewotICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqcmV0ID0gbmV3IFNWR01hdHJpeEltcGwo
cGFyYW1zWzBdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbXNbMV0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1syXS50b0RvdWJsZSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1z
WzNdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXJhbXNbNF0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKTsKLSAgICAg
ICAgICAgIHQtPnNldE1hdHJpeChyZXQpOwotICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN1
YnRyYW5zZm9ybVswXSA9PSAibWF0cml4IiAmJiAocGFyYW1zLmNvdW50KCkgPT0gNikpCisgICAg
ICAgICAgICB0LT5zZXRNYXRyaXgoQWZmaW5lVHJhbnNmb3JtKHBhcmFtc1swXS50b0RvdWJsZSgp
LAorICAgICAgICAgICAgICAgIHBhcmFtc1sxXS50b0RvdWJsZSgpLAorICAgICAgICAgICAgICAg
IHBhcmFtc1syXS50b0RvdWJsZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1szXS50b0RvdWJs
ZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1s0XS50b0RvdWJsZSgpLAorICAgICAgICAgICAg
ICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAodC0+dHlw
ZSgpID09IFNWR19UUkFOU0ZPUk1fVU5LTk9XTikKICAgICAgICAgICAgIGJyZWFrOyAvLyBmYWls
ZWQgdG8gcGFyc2UgYSB2YWxpZCB0cmFuc2Zvcm0sIGFib3J0LgpJbmRleDoga3N2ZzIvc3ZnL1NW
R01hcmtlckVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1l
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCw1MCArMjUsNDMgQEAKICNkZWZpbmUg
S1NWR19TVkdNYXJrZXJFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUg
IlNWR0xhbmdTcGFjZUltcGwuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCisjaW5j
bHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKICNpbmNsdWRlICJTVkdG
aXRUb1ZpZXdCb3hJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogI2luY2x1
ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwuaCIKIAotY2xhc3MgS0NhbnZhc01hcmtlcjsKLQotbmFtZXNwYWNlIEtE
T00KLXsKLSAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci19OwotCi1uYW1lc3BhY2UgS1NWRwotewor
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuZ2xlSW1wbDsKICAgICBjbGFzcyBT
VkdBbmltYXRlZEFuZ2xlSW1wbDsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7CiAg
ICAgY2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGw7CisKICAgICBjbGFzcyBTVkdNYXJr
ZXJFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1wbCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2VJbXBsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRJbXBsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRv
Vmlld0JveEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXJrZXJFbGVtZW50
SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudElt
cGwgKmRvYyk7CisgICAgICAgIFNWR01hcmtlckVsZW1lbnRJbXBsKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdNYXJrZXJF
bGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdNYXJrZXJFbGVtZW50JyBmdW5jdGlvbnMK
LSAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICpyZWZYKCkgY29uc3Q7Ci0gICAgICAgIFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbCAqcmVmWSgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uSW1wbCAqbWFya2VyVW5pdHMoKSBjb25zdDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsICptYXJrZXJXaWR0aCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZExlbmd0
aEltcGwgKm1hcmtlckhlaWdodCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0
aW9uSW1wbCAqb3JpZW50VHlwZSgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEFuZ2xlSW1w
bCAqb3JpZW50QW5nbGUoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiBy
ZWZYKCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogcmVmWSgpIGNvbnN0
OworICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCogbWFya2VyVW5pdHMoKSBjb25z
dDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiBtYXJrZXJXaWR0aCgpIGNvbnN0Owor
ICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwqIG1hcmtlckhlaWdodCgpIGNvbnN0OworICAg
ICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCogb3JpZW50VHlwZSgpIGNvbnN0OworICAg
ICAgICBTVkdBbmltYXRlZEFuZ2xlSW1wbCogb3JpZW50QW5nbGUoKSBjb25zdDsKIAogICAgICAg
ICB2b2lkIHNldE9yaWVudFRvQXV0bygpOwotICAgICAgICB2b2lkIHNldE9yaWVudFRvQW5nbGUo
U1ZHQW5nbGVJbXBsICphbmdsZSk7CisgICAgICAgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShTVkdB
bmdsZUltcGwqKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
S0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAgICAgCi0gICAgICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKTsK
LSAgICAgICAgdmlydHVhbCBLQ2FudmFzTWFya2VyICpjYW52YXNSZXNvdXJjZSgpOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICAgICAgdmlydHVhbCBLQ2FudmFzTWFya2VyKiBj
YW52YXNSZXNvdXJjZSgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8
U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsPiBtX3JlZlg7CkBAIC03OSw3ICs3Myw3IEBACiAgICAgICAg
IG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkQW5nbGVJbXBsPiBtX29yaWVudEFuZ2xlOwogICAg
ICAgICBLQ2FudmFzTWFya2VyICptX21hcmtlcjsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8v
IFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5jcHAJKHJldmlzaW9u
IDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xh
cyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAy
MDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKIApAQCAtMjIsNDQgKzIzLDIwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdf
U1VQUE9SVAotI2luY2x1ZGUgPGtkZWJ1Zy5oPgotCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5o
IgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKwogI2luY2x1ZGUgIlNWR1NWR0VsZW1l
bnRJbXBsLmgiCiAjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHVHJhbnNmb3JtSW1wbDo6U1ZHVHJhbnNmb3JtSW1wbCgp
IDogU2hhcmVkPFNWR1RyYW5zZm9ybUltcGw+KCkKK1NWR1RyYW5zZm9ybUltcGw6OlNWR1RyYW5z
Zm9ybUltcGwoKSA6IG1fdHlwZShTVkdfVFJBTlNGT1JNX1VOS05PV04pLCBtX2FuZ2xlKDApCiB7
Ci0gICAgbV9tYXRyaXggPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7Ci0K
LSAgICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1VOS05PV047Ci0gICAgbV9hbmdsZSA9IDA7CiB9
CiAKLVNWR1RyYW5zZm9ybUltcGw6On5TVkdUcmFuc2Zvcm1JbXBsKCkKK3ZvaWQgU1ZHVHJhbnNm
b3JtSW1wbDo6c2V0TWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewotfQot
Ci11bnNpZ25lZCBzaG9ydCBTVkdUcmFuc2Zvcm1JbXBsOjp0eXBlKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV90eXBlOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdUcmFuc2Zvcm1JbXBsOjptYXRy
aXgoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5nZXQoKTsKLX0KLQotZG91YmxlIFNW
R1RyYW5zZm9ybUltcGw6OmFuZ2xlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hbmdsZTsKLX0K
LQotdm9pZCBTVkdUcmFuc2Zvcm1JbXBsOjpzZXRNYXRyaXgoU1ZHTWF0cml4SW1wbCAqbWF0cml4
KQotewogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fTUFUUklYOwogICAgIG1fYW5nbGUgPSAw
OwogICAgIApAQCAtNzEsOCArNDgsNyBAQAogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fVFJB
TlNMQVRFOwogICAgIG1fYW5nbGUgPSAwOwogICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgpOwot
ICAgIG1fbWF0cml4LT50cmFuc2xhdGUodHgsIHR5KTsKKyAgICBtX21hdHJpeCA9IHRyYW5zbGF0
aW9uTWF0cml4KHR4LCB0eSk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2NhbGUo
ZG91YmxlIHN4LCBkb3VibGUgc3kpCkBAIC04MCw4ICs1Niw3IEBACiAgICAgbV90eXBlID0gU1ZH
X1RSQU5TRk9STV9TQ0FMRTsKICAgICBtX2FuZ2xlID0gMDsKICAgICAKLSAgICBtX21hdHJpeC0+
cmVzZXQoKTsKLSAgICBtX21hdHJpeC0+c2NhbGVOb25Vbmlmb3JtKHN4LCBzeSk7CisgICAgbV9t
YXRyaXggPSBzY2FsZU1hdHJpeChzeCwgc3kpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6
OnNldFJvdGF0ZShkb3VibGUgYW5nbGUsIGRvdWJsZSBjeCwgZG91YmxlIGN5KQpAQCAtOTAsMTAg
KzY1LDkgQEAKICAgICBtX2FuZ2xlID0gYW5nbGU7CiAgICAgCiAgICAgLy8gVE9ETzogdG9TdHJp
bmcoKSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggY2FuIHNob3cgY3gsIGN5IChuZWVkIHRvIGJlIHN0
b3JlZD8pCi0gICAgbV9tYXRyaXgtPnJlc2V0KCk7Ci0gICAgbV9tYXRyaXgtPnRyYW5zbGF0ZShj
eCwgY3kpOwotICAgIG1fbWF0cml4LT5yb3RhdGUoYW5nbGUpOwotICAgIG1fbWF0cml4LT50cmFu
c2xhdGUoLWN4LCAtY3kpOworICAgIG1fbWF0cml4ID0gdHJhbnNsYXRpb25NYXRyaXgoY3gsIGN5
KTsKKyAgICBtX21hdHJpeC5yb3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgIG1fbWF0cml4LnRy
YW5zbGF0ZSgtY3gsIC1jeSk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2tld1go
ZG91YmxlIGFuZ2xlKQpAQCAtMTAxLDggKzc1LDcgQEAKICAgICBtX3R5cGUgPSBTVkdfVFJBTlNG
T1JNX1NLRVdYOwogICAgIG1fYW5nbGUgPSBhbmdsZTsKICAgICAKLSAgICBtX21hdHJpeC0+cmVz
ZXQoKTsKLSAgICBtX21hdHJpeC0+c2tld1goYW5nbGUpOworICAgIG1fbWF0cml4ID0gc2tld1hN
YXRyaXgocmFkaWFucyhhbmdsZSkpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNldFNr
ZXdZKGRvdWJsZSBhbmdsZSkKQEAgLTExMCwxMCArODMsOCBAQAogICAgIG1fdHlwZSA9IFNWR19U
UkFOU0ZPUk1fU0tFV1k7CiAgICAgbV9hbmdsZSA9IGFuZ2xlOwogICAgIAotICAgIG1fbWF0cml4
LT5yZXNldCgpOwotICAgIG1fbWF0cml4LT5za2V3WShhbmdsZSk7CisgICAgbV9tYXRyaXggPSBz
a2V3WU1hdHJpeChyYWRpYW5zKGFuZ2xlKSk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRp
ZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0
MjQpCisrKyBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmlt
bWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAK
QEAgLTI1LDMwICsyNiwyMSBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgotCi0jaW5jbHVkZSAiU1ZHVGVzdHNJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1NwYWNl
SW1wbC5oIgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCiAj
aW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgotI2luY2x1ZGUgIlNWR1pvb21BbmRQYW5J
bXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogI2luY2x1ZGUgIlNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZEltcGwuaCIKKyNpbmNsdWRlICJTVkdUZXN0c0ltcGwuaCIKKyNpbmNsdWRlICJTVkda
b29tQW5kUGFuSW1wbC5oIgogCi1uYW1lc3BhY2UgS0RPTQotewotICAgIGNsYXNzIERvY3VtZW50
UHRyOwotfTsKLQogbmFtZXNwYWNlIEtTVkcKIHsKLSAgICBjbGFzcyBTVkdSZWN0SW1wbDsKICAg
ICBjbGFzcyBTVkdBbmdsZUltcGw7CiAgICAgY2xhc3MgU1ZHUG9pbnRJbXBsOwogICAgIGNsYXNz
IFNWR051bWJlckltcGw7CiAgICAgY2xhc3MgU1ZHTGVuZ3RoSW1wbDsKLSAgICBjbGFzcyBTVkdN
YXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUltcGw7Ci0gICAgY2xhc3MgU1ZHQW5p
bWF0ZWRMZW5ndGhJbXBsOwotICAgIGNsYXNzIFRpbWVTY2hlZHVsZXI7CisKICAgICBjbGFzcyBT
VkdTVkdFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUZXN0c0ltcGwsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlSW1wbCwKQEAgLTU3
LDI2ICs0OSwyNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pv
b21BbmRQYW5JbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU1ZHRWxlbWVudElt
cGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBs
ICpkb2MpOwotICAgICAgICB2aXJ0dWFsIH5TVkdTVkdFbGVtZW50SW1wbCgpOworICAgICAgICBT
VkdTVkdFbGVtZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudElt
cGwqKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkcoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIFNWR1Rlc3RzSW1wbDo6aXNWYWxpZCgpOyB9CiAKICAgICAgICAgLy8gJ1NWR1NWR0VsZW1l
bnQnIGZ1bmN0aW9ucwotICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwgKngoKSBjb25zdDsK
LSAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICp5KCkgY29uc3Q7Ci0gICAgICAgIFNWR0Fu
aW1hdGVkTGVuZ3RoSW1wbCAqd2lkdGgoKSBjb25zdDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRMZW5n
dGhJbXBsICpoZWlnaHQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiB4
KCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogeSgpIGNvbnN0OworICAg
ICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwqIHdpZHRoKCkgY29uc3Q7CisgICAgICAgIFNWR0Fu
aW1hdGVkTGVuZ3RoSW1wbCogaGVpZ2h0KCkgY29uc3Q7CiAKLSAgICAgICAgS0RPTTo6QXRvbWlj
U3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0Q29udGVu
dFNjcmlwdFR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKTsKKyAgICAgICAgQXRv
bWljU3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0Q29u
dGVudFNjcmlwdFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsKIAotICAgICAgICBLRE9N
OjpBdG9taWNTdHJpbmcgY29udGVudFN0eWxlVHlwZSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNl
dENvbnRlbnRTdHlsZVR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKTsKKyAgICAg
ICAgQXRvbWljU3RyaW5nIGNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdDsKKyAgICAgICAgdm9pZCBz
ZXRDb250ZW50U3R5bGVUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSk7CiAKLSAgICAgICAg
U1ZHUmVjdEltcGwgKnZpZXdwb3J0KCkgY29uc3Q7CisgICAgICAgIFNWR1JlY3RJbXBsKiB2aWV3
cG9ydCgpIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IHBpeGVsVW5pdFRvTWlsbGltZXRlclgoKSBj
b25zdDsKICAgICAgICAgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWSgpIGNvbnN0OwpAQCAt
ODYsNDcgKzc3LDQ3IEBACiAgICAgICAgIGJvb2wgdXNlQ3VycmVudFZpZXcoKSBjb25zdDsKICAg
ICAgICAgdm9pZCBzZXRVc2VDdXJyZW50Vmlldyhib29sIGN1cnJlbnRWaWV3KTsKIAotICAgICAg
ICAvLyBTVkdWaWV3U3BlY0ltcGwgKmN1cnJlbnRWaWV3KCkgY29uc3Q7CisgICAgICAgIC8vIFNW
R1ZpZXdTcGVjSW1wbCogY3VycmVudFZpZXcoKSBjb25zdDsKIAogICAgICAgICBmbG9hdCBjdXJy
ZW50U2NhbGUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRDdXJyZW50U2NhbGUoZmxvYXQgc2Nh
bGUpOwogCi0gICAgICAgIFNWR1BvaW50SW1wbCAqY3VycmVudFRyYW5zbGF0ZSgpIGNvbnN0Owor
ICAgICAgICBTVkdQb2ludEltcGwqIGN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdDsKIAogICAgICAg
ICB1bnNpZ25lZCBsb25nIHN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyBtYXhfd2FpdF9taWxs
aXNlY29uZHMpOwogICAgICAgICB2b2lkIHVuc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25nIHN1
c3BlbmRfaGFuZGxlX2lkKTsKICAgICAgICAgdm9pZCB1bnN1c3BlbmRSZWRyYXdBbGwoKTsKICAg
ICAgICAgdm9pZCBmb3JjZVJlZHJhdygpOwogCi0gICAgICAgIEtET006Ok5vZGVMaXN0SW1wbCAq
Z2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0SW1wbCAqcmVjdCwgU1ZHRWxlbWVudEltcGwgKnJl
ZmVyZW5jZUVsZW1lbnQpOwotICAgICAgICBLRE9NOjpOb2RlTGlzdEltcGwgKmdldEVuY2xvc3Vy
ZUxpc3QoU1ZHUmVjdEltcGwgKnJlY3QsIFNWR0VsZW1lbnRJbXBsICpyZWZlcmVuY2VFbGVtZW50
KTsKLSAgICAgICAgYm9vbCBjaGVja0ludGVyc2VjdGlvbihTVkdFbGVtZW50SW1wbCAqZWxlbWVu
dCwgU1ZHUmVjdEltcGwgKnJlY3QpOwotICAgICAgICBib29sIGNoZWNrRW5jbG9zdXJlKFNWR0Vs
ZW1lbnRJbXBsICplbGVtZW50LCBTVkdSZWN0SW1wbCAqcmVjdCk7CisgICAgICAgIE5vZGVMaXN0
SW1wbCogZ2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0SW1wbCosIFNWR0VsZW1lbnRJbXBsKiBy
ZWZlcmVuY2VFbGVtZW50KTsKKyAgICAgICAgTm9kZUxpc3RJbXBsKiBnZXRFbmNsb3N1cmVMaXN0
KFNWR1JlY3RJbXBsKiwgU1ZHRWxlbWVudEltcGwqIHJlZmVyZW5jZUVsZW1lbnQpOworICAgICAg
ICBib29sIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnRJbXBsKiwgU1ZHUmVjdEltcGwqKTsK
KyAgICAgICAgYm9vbCBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50SW1wbCosIFNWR1JlY3RJbXBs
Kik7CiAgICAgICAgIHZvaWQgZGVzZWxlY3RBbGwoKTsKIAotICAgICAgICBzdGF0aWMgU1ZHTnVt
YmVySW1wbCAqY3JlYXRlU1ZHTnVtYmVyKCk7Ci0gICAgICAgIHN0YXRpYyBTVkdMZW5ndGhJbXBs
ICpjcmVhdGVTVkdMZW5ndGgoKTsKLSAgICAgICAgc3RhdGljIFNWR0FuZ2xlSW1wbCAqY3JlYXRl
U1ZHQW5nbGUoKTsKLSAgICAgICAgc3RhdGljIFNWR1BvaW50SW1wbCAqY3JlYXRlU1ZHUG9pbnQo
Y29uc3QgSW50UG9pbnQgJnAgPSBJbnRQb2ludCgpKTsKLSAgICAgICAgc3RhdGljIFNWR01hdHJp
eEltcGwgKmNyZWF0ZVNWR01hdHJpeCgpOwotICAgICAgICBzdGF0aWMgU1ZHUmVjdEltcGwgKmNy
ZWF0ZVNWR1JlY3QoKTsKLSAgICAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUltcGwgKmNyZWF0ZVNW
R1RyYW5zZm9ybSgpOwotICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCAqY3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpOworICAgICAgICBzdGF0
aWMgU1ZHTnVtYmVySW1wbCogY3JlYXRlU1ZHTnVtYmVyKCk7CisgICAgICAgIHN0YXRpYyBTVkdM
ZW5ndGhJbXBsKiBjcmVhdGVTVkdMZW5ndGgoKTsKKyAgICAgICAgc3RhdGljIFNWR0FuZ2xlSW1w
bCogY3JlYXRlU1ZHQW5nbGUoKTsKKyAgICAgICAgc3RhdGljIFNWR1BvaW50SW1wbCogY3JlYXRl
U1ZHUG9pbnQoY29uc3QgSW50UG9pbnQmID0gSW50UG9pbnQoKSk7CisgICAgICAgIHN0YXRpYyBB
ZmZpbmVUcmFuc2Zvcm0gY3JlYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIHN0YXRpYyBTVkdSZWN0
SW1wbCogY3JlYXRlU1ZHUmVjdCgpOworICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCog
Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7CisgICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1JbXBsKiBj
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRy
aWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOwogCiAgICAgICAgIC8vICd2aXJ0dWFsIFNW
R0xvY2F0YWJsZScgZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0
Q1RNKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RN
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTSgpIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oKSBjb25zdDsK
IAotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVuZGVyU3R5
bGUgKikgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIGtodG1sOjpSZW5kZXJPYmpl
Y3QgKmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0eWxl
ICpzdHlsZSk7CisgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0
eWxlKikgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCiAgICAgICAgIC8vICd2
aXJ0dWFsIFNWR1pvb21BbmRQYW4gZnVuY3Rpb25zCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRa
b29tQW5kUGFuKHVuc2lnbmVkIHNob3J0IHpvb21BbmRQYW4pOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdm9pZCBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGNvbnN0IEF0dHJpYnV0ZUltcGwqIGF0dHIpOyAgIAorICAgICAgICB2b2lkIGFk
ZFNWR1dpbmRvd0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNv
bnN0IEF0dHJpYnV0ZUltcGwqIGF0dHIpOyAgIAogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbD4gbV94OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmlt
YXRlZExlbmd0aEltcGw+IG1feTsKQEAgLTEzNSw3ICsxMjYsNyBAQAogCiAgICAgICAgIGJvb2wg
bV91c2VDdXJyZW50VmlldzsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JU
CiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1w
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbC5oCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsMjQgKzI1LDIxIEBACiAj
ZGVmaW5lIEtTVkdfU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGxfSAogI2lmIFNWR19T
VVBQT1JUCiAKLW5hbWVzcGFjZSBLRE9NCi17Ci0gICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLX07
CisjaW5jbHVkZSA8a3htbGNvcmUvUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBLU1ZHCi17CituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgTWFwcGVkQXR0cmlidXRlSW1wbDsKICAgICBjbGFz
cyBTVkdBbmltYXRlZEJvb2xlYW5JbXBsOwotICAgIGNsYXNzIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRJbXBsCi0gICAgeworCisgICAgY2xhc3MgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcgZnVu
Y3Rpb25zCi0gICAgICAgIFNWR0FuaW1hdGVkQm9vbGVhbkltcGwgKmV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbCogZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCgpIGNvbnN0OwogCi0gICAgICAgIGJvb2wgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIGJvb2wg
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRCb29sZWFuSW1wbD4gbV9leHRl
cm5hbDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCShyZXZpc2lv
biAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMjIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lm
IFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCiAKLSNp
bmNsdWRlIDxrZG9tL2tkb20uaD4KLSNpbmNsdWRlIDxrZG9tL0hlbHBlci5oPgotI2luY2x1ZGUg
PGtkb20vRE9NU3RyaW5nLmg+Ci0jaW5jbHVkZSA8a2RvbS9OYW1lc3BhY2UuaD4KLSNpbmNsdWRl
IDxrZG9tL2NvcmUvRWxlbWVudEltcGwuaD4KICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKLSNp
bmNsdWRlIDxrZG9tL2NvcmUvRE9NRXhjZXB0aW9uSW1wbC5oPgogI2luY2x1ZGUgIkRvY3VtZW50
VHlwZUltcGwuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudEltcGwuaCIKICNpbmNsdWRlICJjc3Nfc3R5bGVzaGVldGltcGwuaCIKLQogI2luY2x1ZGUg
ImtzdmcuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9ET01TdHJpbmcuaD4KKyNp
bmNsdWRlIDxrZG9tL0hlbHBlci5oPgorI2luY2x1ZGUgPGtkb20vTmFtZXNwYWNlLmg+CisjaW5j
bHVkZSA8a2RvbS9jb3JlL0RPTUV4Y2VwdGlvbkltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUv
RWxlbWVudEltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEtTVkc7CiAKQEAgLTE1OSw3ICsxNTksNyBAQAogICAgIHJldHVybiBjcmVhdGVEb2N1bWVudChu
YW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWVJbXBsLCBkb2N0eXBlLCB0cnVlLCAwLCBleGNlcHRp
b25jb2RlKTsKIH0KIAotS0RPTTo6RG9jdW1lbnRJbXBsICpTVkdET01JbXBsZW1lbnRhdGlvbklt
cGw6OmNyZWF0ZURvY3VtZW50KEtET006OkRPTVN0cmluZ0ltcGwgKm5hbWVzcGFjZVVSSUltcGws
IEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWVJbXBsLCBLRE9NOjpEb2N1bWVudFR5
cGVJbXBsICpkb2N0eXBlLCBib29sIGNyZWF0ZURvY0VsZW1lbnQsIEtET006OktET01WaWV3ICp2
aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0CitLRE9NOjpEb2N1bWVudEltcGwgKlNWR0RP
TUltcGxlbWVudGF0aW9uSW1wbDo6Y3JlYXRlRG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAq
bmFtZXNwYWNlVVJJSW1wbCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGws
IEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwg
RnJhbWVWaWV3ICp2aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0CiB7CiAgICAgS0RPTTo6
RE9NU3RyaW5nIG5hbWVzcGFjZVVSSShuYW1lc3BhY2VVUklJbXBsKTsKICAgICBLRE9NOjpET01T
dHJpbmcgcXVhbGlmaWVkTmFtZShxdWFsaWZpZWROYW1lSW1wbCk7CkluZGV4OiBrc3ZnMi9zdmcv
U1ZHU1ZHRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTVkdFbGVt
ZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNDggKzIyLDQzIEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5o
PgotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+Ci0jaW5jbHVkZSA8a2RvbS9j
b3JlL05hbWVkQXR0ck1hcEltcGwuaD4KLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNs
dWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+
Ci0jaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2Fu
dmFzTWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgotI2luY2x1
ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNl
L0tSZW5kZXJpbmdEZXZpY2UuaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdO
YW1lcy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1
bGVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRJbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR051bWJlckltcGwu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIKKyNpbmNsdWRlICJT
VkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBsLmgi
CisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoSW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHTnVtYmVySW1wbC5oIgorI2luY2x1ZGUg
IlNWR1BvaW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgi
CisjaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgot
I2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNj
aGVkdWxlci5oIgogI2luY2x1ZGUgIlNWR1pvb21BbmRQYW5JbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
Rml0VG9WaWV3Qm94SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKLSNpbmNsdWRlICJLQ2FudmFzUmVuZGVy
aW5nU3R5bGUuaCIKLSNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIKLSNpbmNsdWRlICJT
VkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKLQorI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIK
ICNpbmNsdWRlICJjc3Nwcm9wZXJ0aWVzLmgiCi0KKyNpbmNsdWRlICJodG1sbmFtZXMuaCIKKyNp
bmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8
a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3Jl
YXRvci5oPgorI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtjYW52
YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0cklt
cGwuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NU3RyaW5nSW1wbC5oPgorI2luY2x1ZGUgPGtk
b20vY29yZS9OYW1lZEF0dHJNYXBJbXBsLmg+CiAjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KIAot
I2luY2x1ZGUgImh0bWxuYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtNzcsMTAgKzcy
LDYgQEAKICAgICBtX3VzZUN1cnJlbnRWaWV3ID0gZmFsc2U7CiB9CiAKLVNWR1NWR0VsZW1lbnRJ
bXBsOjp+U1ZHU1ZHRWxlbWVudEltcGwoKQotewotfQotCiBTVkdBbmltYXRlZExlbmd0aEltcGwg
KlNWR1NWR0VsZW1lbnRJbXBsOjp4KCkgY29uc3QKIHsKICAgICBjb25zdCBTVkdFbGVtZW50SW1w
bCAqdmlld3BvcnQgPSBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMg
PyB0aGlzIDogdmlld3BvcnRFbGVtZW50KCk7CkBAIC0xMzksMTggKzEzMCwxNiBAQAogCiBTVkdS
ZWN0SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OnZpZXdwb3J0KCkgY29uc3QKIHsKLSAgICBTVkdS
ZWN0SW1wbCAqcmV0ID0gY3JlYXRlU1ZHUmVjdCgpOwotICAgIGRvdWJsZSBfeCA9IHgoKS0+YmFz
ZVZhbCgpLT52YWx1ZSgpOwotICAgIGRvdWJsZSBfeSA9IHkoKS0+YmFzZVZhbCgpLT52YWx1ZSgp
OwogICAgIGRvdWJsZSB3ID0gd2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgIGRvdWJs
ZSBoID0gaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKLSAgICBSZWZQdHI8U1ZHTWF0cml4
SW1wbD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0odywgaCk7Ci0gICAgdmlld0Jv
eC0+cW1hdHJpeCgpLm1hcChfeCwgX3ksICZfeCwgJl95KTsKLSAgICB2aWV3Qm94LT5xbWF0cml4
KCkubWFwKHcsIGgsICZ3LCAmaCk7Ci0gICAgcmV0LT5zZXRYKF94KTsKLSAgICByZXQtPnNldFko
X3kpOwotICAgIHJldC0+c2V0V2lkdGgodyk7Ci0gICAgcmV0LT5zZXRIZWlnaHQoaCk7CisgICAg
QWZmaW5lVHJhbnNmb3JtIHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHcsIGgpOwor
ICAgIEZsb2F0UmVjdCByKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwoKS0+
dmFsdWUoKSwgdywgaCk7CisgICAgciA9IHZpZXdCb3gubWFwKHIpOworICAgIFNWR1JlY3RJbXBs
ICpyZXQgPSBjcmVhdGVTVkdSZWN0KCk7CisgICAgcmV0LT5zZXRYKHIueCgpKTsKKyAgICByZXQt
PnNldFkoci55KCkpOworICAgIHJldC0+c2V0V2lkdGgoci53aWR0aCgpKTsKKyAgICByZXQtPnNl
dEhlaWdodChyLmhlaWdodCgpKTsKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjYsNyArMjE1
LDcgQEAKICAgICAvL3JldHVybiBjcmVhdGVTVkdQb2ludChjYW52YXNWaWV3KCktPnBhbigpKTsK
IH0KIAotdm9pZCBTVkdTVkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGVJbXBsKiBhdHRyKQor
dm9pZCBTVkdTVkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlSW1wbCogYXR0cikKIHsKICAg
ICAvLyBGSVhNRTogTm9uZSBvZiB0aGVzZSBzaG91bGQgYmUgd2luZG93IGV2ZW50cyBsb25nIHRl
cm0uCiAgICAgLy8gT25jZSB3ZSBwcm9wZXJ0bHkgc3VwcG9ydCBTVkdMb2FkLCBldGMuCkBAIC0y
NDAsMTkgKzIyOSwxOSBAQAogICAgIGlmICghbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpKSB7CiAg
ICAgICAgIC8vIE9ubHkgaGFuZGxlIGV2ZW50cyBpZiB3ZSdyZSB0aGUgb3V0ZXJtb3N0IDxzdmc+
IGVsZW1lbnQKICAgICAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmxvYWRBdHRyKQotICAgICAg
ICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGxvYWRFdmVudCwgYXR0cik7CisgICAgICAg
ICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RlbmVyKGxvYWRFdmVudCwgYXR0cik7CiAgICAgICAg
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnVubG9hZEF0dHIpCi0gICAgICAgICAgICBhZGRT
VkdXaW5kb3dFdmVudExpc3RuZXIodW5sb2FkRXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRk
U1ZHV2luZG93RXZlbnRMaXN0ZW5lcih1bmxvYWRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBvbmFib3J0QXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRv
d0V2ZW50TGlzdG5lcihhYm9ydEV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dpbmRv
d0V2ZW50TGlzdGVuZXIoYWJvcnRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbmVycm9yQXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlz
dG5lcihlcnJvckV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlz
dGVuZXIoZXJyb3JFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBvbnJlc2l6ZUF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIocmVz
aXplRXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihy
ZXNpemVFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnNj
cm9sbEF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIoc2Nyb2xsRXZl
bnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihzY3JvbGxF
dmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
b256b29tQXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlzdG5lcih6b29tRXZl
bnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcih6b29tRXZl
bnQsIGF0dHIpOwogICAgIH0KICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp4QXR0
cikgewogICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBs
KCkpOwpAQCAtMzU0LDE1ICszNDMsMTIgQEAKIAogU1ZHUG9pbnRJbXBsICpTVkdTVkdFbGVtZW50
SW1wbDo6Y3JlYXRlU1ZHUG9pbnQoY29uc3QgSW50UG9pbnQgJnApCiB7Ci0gICAgaWYocC5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBTVkdQb2ludEltcGwoKTsKLSAgICBlbHNlCi0gICAg
ICAgIHJldHVybiBuZXcgU1ZHUG9pbnRJbXBsKHApOworICAgIHJldHVybiBuZXcgU1ZHUG9pbnRJ
bXBsKHApOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZH
TWF0cml4KCkKK0FmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0
cml4KCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR01hdHJpeEltcGwoKTsKKyAgICByZXR1cm4gQWZm
aW5lVHJhbnNmb3JtKCk7CiB9CiAKIFNWR1JlY3RJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Y3Jl
YXRlU1ZHUmVjdCgpCkBAIC0zNzUsNDQgKzM2MSwzMiBAQAogICAgIHJldHVybiBuZXcgU1ZHVHJh
bnNmb3JtSW1wbCgpOwogfQogCi1TVkdUcmFuc2Zvcm1JbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6
Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpCitTVkdU
cmFuc2Zvcm1JbXBsKiBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1h
dHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCkKIHsgICAgCi0gICAgU1ZHVHJhbnNm
b3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybSgpOwor
ICAgIFNWR1RyYW5zZm9ybUltcGwqIG9iaiA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdU
cmFuc2Zvcm0oKTsKICAgICBvYmotPnNldE1hdHJpeChtYXRyaXgpOwogICAgIHJldHVybiBvYmo7
CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1NWR0VsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAor
QWZmaW5lVHJhbnNmb3JtIFNWR1NWR0VsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewotICAg
IFNWR01hdHJpeEltcGwgKm1hdCA9IGNyZWF0ZVNWR01hdHJpeCgpOwotICAgIGlmKG1hdCkKLSAg
ICB7Ci0gICAgICAgIG1hdC0+dHJhbnNsYXRlKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCkt
PmJhc2VWYWwoKS0+dmFsdWUoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdCA9IHRyYW5zbGF0
aW9uTWF0cml4KHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwoKS0+dmFsdWUo
KSk7CiAKLSAgICAgICAgaWYoYXR0cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFtZXM6OnZp
ZXdCb3hBdHRyKSkKLSAgICAgICAgewotICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+
IHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFs
dWUoKSwgaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7Ci0gICAgICAgICAgICBtYXQtPm11
bHRpcGx5KHZpZXdCb3guZ2V0KCkpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChhdHRyaWJ1
dGVzKCktPmdldE5hbWVkSXRlbShTVkdOYW1lczo6dmlld0JveEF0dHIpKQorICAgICAgICBtYXQg
Kj0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIGhl
aWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogCiAgICAgcmV0dXJuIG1hdDsKIH0KIAotU1ZH
TWF0cml4SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CitBZmZp
bmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7Ci0g
ICAgU1ZHTWF0cml4SW1wbCAqbWF0ID0gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGw6Omdl
dFNjcmVlbkNUTSgpOwotICAgIGlmKG1hdCkKLSAgICB7Ci0gICAgICAgIG1hdC0+dHJhbnNsYXRl
KHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7CisgICAg
QWZmaW5lVHJhbnNmb3JtIG1hdCA9IFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRT
Y3JlZW5DVE0oKTsKIAotICAgICAgICBpZihhdHRyaWJ1dGVzKCktPmdldE5hbWVkSXRlbShTVkdO
YW1lczo6dmlld0JveEF0dHIpKQotICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQdHI8U1ZHTWF0
cml4SW1wbD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZh
bCgpLT52YWx1ZSgpLCBoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKLSAgICAgICAgICAg
IG1hdC0+bXVsdGlwbHkodmlld0JveC5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgbWF0
LnRyYW5zbGF0ZSh4KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgeSgpLT5iYXNlVmFsKCktPnZhbHVl
KCkpOwogCisgICAgaWYgKGF0dHJpYnV0ZXMoKS0+Z2V0TmFtZWRJdGVtKFNWR05hbWVzOjp2aWV3
Qm94QXR0cikpCisgICAgICAgIG1hdCAqPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHdpZHRoKCkt
PmJhc2VWYWwoKS0+dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7CisKICAg
ICByZXR1cm4gbWF0OwogfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50SW1w
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnRJbXBsLmgJKHJl
dmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudEltcGwuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAg
ICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0CiAKQEAgLTI0LDE3ICsyNSwxNyBAQAogI2RlZmluZSBLU1ZHX1NWR0dyYWRp
ZW50RWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJLQ2FudmFzUmVz
b3VyY2VzLmgiCisjaW5jbHVkZSAiS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oIgorI2luY2x1ZGUgIlNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2VJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVk
RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1w
bC5oIgogCi0jaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaCIKLQotbmFt
ZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdHcmFkaWVudEVsZW1lbnRJbXBsOworbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsOwogICAg
IGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw7CisKICAgICBjbGFzcyBTVkdHcmFk
aWVudEVsZW1lbnRJbXBsIDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnRJbXBsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlSW1wbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRJbXBsLApAQCAtNjYsNyArNjcsNyBAQAogICAgICAgICBtdXRhYmxlIFJlZlB0
cjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsPiBtX2dyYWRpZW50VHJhbnNmb3JtOwogICAg
ICAgICBtdXRhYmxlIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50ICptX3Jlc291cmNlOwog
ICAgIH07Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2
ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdDbGlwUGF0aEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIxICsy
MiwyMSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRl
IDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnRJbXBs
LmgiCiAKKyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJv
b2xlYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNp
bmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNW
R1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1ZGUg
ImtzdmcuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KICNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXNQYXRoLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0Rldmlj
ZS5oPgotI2luY2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKLSNpbmNsdWRlICJEb2N1bWVudElt
cGwuaCIKKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KIAotI2luY2x1ZGUgImtzdmcu
aCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5o
IgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogCiBTVkdDbGlwUGF0aEVsZW1lbnRJbXBsOjpTVkdDbGlwUGF0aEVsZW1lbnRJ
bXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50SW1w
bCAqZG9jKQpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQy
NCkKKysrIGtzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDIwICsyMiwxOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBP
UlQKLSNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgorI2luY2x1ZGUgIlNWR0ZFVGlsZUVsZW1lbnRJ
bXBsLmgiCiAKLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KLQorI2luY2x1ZGUgIlNW
R0FuaW1hdGVkU3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1w
bC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KICNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZp
Y2UvS1JlbmRlcmluZ0RldmljZS5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgor
I2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNs
dWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR0ZFVGlsZUVsZW1lbnRJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1w
bGVtZW50YXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdGRVRpbGVF
bGVtZW50SW1wbDo6U1ZHRkVUaWxlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpIDogCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVN
ZXJnZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHRkVN
ZXJnZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjMgKzIyLDIyIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmds
aXN0Lmg+CisjaW5jbHVkZSAiU1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmgiCiAKLSNpbmNsdWRlIDxr
ZG9tL2NvcmUvQXR0ckltcGwuaD4KLQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25J
bXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHRkVNZXJnZU5vZGVFbGVtZW50
SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisj
aW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCiAjaW5jbHVkZSA8
a2NhbnZhcy9LQ2FudmFzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgog
I2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxr
ZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVk
ZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN0
eWxlLmgiCi0jaW5jbHVkZSAiU1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
RkVNZXJnZU5vZGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRp
b25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBT
VkdGRU1lcmdlRWxlbWVudEltcGw6OlNWR0ZFTWVyZ2VFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdMb2NhdGFibGVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHTG9jYXRhYmxlSW1wbC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvc3ZnL1NWR0xv
Y2F0YWJsZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyMSArMjIsMTkgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9rZG9tLmg+
Ci0jaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0j
aW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5z
Zm9ybS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBs
LmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdSZWN0SW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRo
Lmg+CisjaW5jbHVkZSA8a2RvbS9rZG9tLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdMb2NhdGFibGVJbXBsOjpTVkdMb2NhdGFibGVJbXBsKCkKLXsKLX0KLQogU1ZHTG9jYXRhYmxl
SW1wbDo6flNWR0xvY2F0YWJsZUltcGwoKQogewogfQpAQCAtODQsNjMgKzgyLDQ0IEBACiAgICAg
ewogICAgICAgICBGbG9hdFJlY3QgYmJveFJlY3QgPSBlLT5yZW5kZXJlcigpLT5yZWxhdGl2ZUJC
b3goZmFsc2UpOwogICAgICAgICByZWN0ID0gbmV3IFNWR1JlY3RJbXBsKDApOwotICAgICAgICBy
ZWN0LT5zZXRYKGJib3hSZWN0LngoKSk7Ci0gICAgICAgIHJlY3QtPnNldFkoYmJveFJlY3QueSgp
KTsKLSAgICAgICAgcmVjdC0+c2V0V2lkdGgoYmJveFJlY3Qud2lkdGgoKSAtIDEpOwotICAgICAg
ICByZWN0LT5zZXRIZWlnaHQoYmJveFJlY3QuaGVpZ2h0KCkgLSAxKTsKKyAgICAgICAgcmVjdC0+
c2V0WChiYm94UmVjdC55KCkpOworICAgICAgICByZWN0LT5zZXRZKGJib3hSZWN0LngoKSk7Cisg
ICAgICAgIHJlY3QtPnNldFdpZHRoKGJib3hSZWN0LndpZHRoKCkgLSAxKTsgLy8gRklYTUU6IFdo
eSAtMT8KKyAgICAgICAgcmVjdC0+c2V0SGVpZ2h0KGJib3hSZWN0LmhlaWdodCgpIC0gMSk7IC8v
IEZJWE1FOiBXaHkgLTE/CiAgICAgfQogCiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLVNWR01hdHJp
eEltcGwgKlNWR0xvY2F0YWJsZUltcGw6OmdldENUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxl
bWVudCkKK0FmZmluZVRyYW5zZm9ybSBTVkdMb2NhdGFibGVJbXBsOjpnZXRDVE0oY29uc3QgU1ZH
RWxlbWVudEltcGwgKmVsZW1lbnQpCiB7Ci0gICAgaWYoIWVsZW1lbnQpCi0gICAgICAgIHJldHVy
biAwOworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgp
OwogCi0gICAgU1ZHTWF0cml4SW1wbCAqY3RtID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNW
R01hdHJpeCgpOwotCiAgICAgS0RPTTo6Tm9kZUltcGwgKnBhcmVudCA9IGVsZW1lbnQtPnBhcmVu
dE5vZGUoKTsKLSAgICBpZihwYXJlbnQgJiYgcGFyZW50LT5ub2RlVHlwZSgpID09IEtET006OkVM
RU1FTlRfTk9ERSkKLSAgICB7Ci0gICAgICAgIFNWR0VsZW1lbnRJbXBsICpwYXJlbnRFbGVtZW50
ID0gc3ZnX2R5bmFtaWNfY2FzdChwYXJlbnQpOwotICAgICAgICBpZihwYXJlbnRFbGVtZW50ICYm
IHBhcmVudEVsZW1lbnQtPmlzU3R5bGVkTG9jYXRhYmxlKCkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiBwYXJlbnRDVE0gPSBzdGF0aWNfY2FzdDxTVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50SW1wbCAqPihwYXJlbnRFbGVtZW50KS0+Z2V0Q1RNKCk7Ci0gICAg
ICAgICAgICBjdG0tPm11bHRpcGx5KHBhcmVudENUTS5nZXQoKSk7Ci0gICAgICAgIH0KKyAgICBp
ZiAocGFyZW50ICYmIHBhcmVudC0+bm9kZVR5cGUoKSA9PSBLRE9NOjpFTEVNRU5UX05PREUpIHsK
KyAgICAgICAgU1ZHRWxlbWVudEltcGwqIHBhcmVudEVsZW1lbnQgPSBzdmdfZHluYW1pY19jYXN0
KHBhcmVudCk7CisgICAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQtPmlz
U3R5bGVkTG9jYXRhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdldENUTSgpOwogICAg
IH0KIAotICAgIHJldHVybiBjdG07CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogfQog
Ci1TVkdNYXRyaXhJbXBsICpTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0oY29uc3QgU1ZH
RWxlbWVudEltcGwgKmVsZW1lbnQpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTG9jYXRhYmxlSW1wbDo6
Z2V0U2NyZWVuQ1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICplbGVtZW50KQogewotICAgIGlmKCFl
bGVtZW50KQotICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJl
dHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIAotICAgIFNWR01hdHJpeEltcGwgKmN0bSA9IFNWR1NW
R0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsKLQotICAgIEtET006Ok5vZGVJbXBsICpw
YXJlbnQgPSBlbGVtZW50LT5wYXJlbnROb2RlKCk7Ci0gICAgaWYocGFyZW50ICYmIHBhcmVudC0+
aXNFbGVtZW50Tm9kZSgpKQotICAgIHsKLSAgICAgICAgU1ZHRWxlbWVudEltcGwgKnBhcmVudEVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50SW1wbCAqPihwYXJlbnQpOwotICAgICAgICBp
ZihwYXJlbnRFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gcGFyZW50Q1RNID0gc3RhdGljX2Nhc3Q8U1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdldFNjcmVlbkNUTSgp
OwotICAgICAgICAgICAgY3RtLT5tdWx0aXBseShwYXJlbnRDVE0uZ2V0KCkpOwotICAgICAgICB9
CisgICAgS0RPTTo6Tm9kZUltcGwqIHBhcmVudCA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsKKyAg
ICBpZiAocGFyZW50ICYmIHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIFNWR0Vs
ZW1lbnRJbXBsKiBwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudEltcGwgKj4o
cGFyZW50KTsKKyAgICAgICAgaWYgKHBhcmVudEVsZW1lbnQtPmlzU3R5bGVkTG9jYXRhYmxlKCkp
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdldFNjcmVlbkNUTSgpOwogICAgIH0KIAotICAgIHJl
dHVybiBjdG07CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogfQotLyoKLVNWR01hdHJp
eEltcGwgKlNWR0xvY2F0YWJsZUltcGw6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50
SW1wbCAqKSBjb25zdAotewotICAgIC8vIFRPRE8hCi0gICAgcmV0dXJuIDA7Ci19Ci0qLworCiAv
LyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga3N2ZzIvc3Zn
L1NWR0N1cnNvckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQ3Vy
c29yRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL3N2Zy9TVkdDdXJz
b3JFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE2ICsyMiwxNyBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdDdXJzb3JFbGVtZW50SW1wbC5oIgorCisjaW5jbHVk
ZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiRG9j
TG9hZGVyLmgiCi0jaW5jbHVkZSA8a2RlYnVnLmg+Ci0KLSNpbmNsdWRlICJTVkdOYW1lcy5oIgot
I2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR0N1cnNvckVsZW1lbnRJbXBsLmgi
CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkTGVuZ3RoSW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSA8a2Rl
YnVnLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24g
MTI0MjQpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTkxLDcgKzE5MSw3IEBACiAgICAgewogICAgIH0KIAotICAgIGlmKGlzQWNjdW11
bGF0ZWQoKSAmJiByZXBlYXRpb25zKCkgIT0gMC4wKQorICAgIGlmKGlzQWNjdW11bGF0ZWQoKSAm
JiByZXBldGl0aW9ucygpICE9IDAuMCkKICAgICB7CiAgICAgfQogCkBAIC0yMDAsOSArMjAwLDkg
QEAKICAgICAvLyBFbmQgY29uZGl0aW9uLgogICAgIGlmKHRpbWVQZXJjZW50YWdlID09IDEuMCkK
ICAgICB7Ci0gICAgICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBt
X3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQorICAgICAg
ICBpZigobV9yZXBlYXRDb3VudCA+IDAgJiYgbV9yZXBldGl0aW9ucyA8IG1fcmVwZWF0Q291bnQg
LSAxKSB8fCBpc0luZGVmaW5pdGUobV9yZXBlYXRDb3VudCkpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIG1fcmVwZWF0aW9ucysrOworICAgICAgICAgICAgbV9yZXBldGl0aW9ucysrOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKSW5kZXg6IGtzdmcyL21pc2MvS0NhbnZhc1JlbmRl
cmluZ1N0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJpbmdT
dHlsZS5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVyaW5n
U3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHls
ZS5oIgogCiAjaW5jbHVkZSA8cmVuZGVyX29iamVjdC5oPgogCkBAIC00Myw3ICs0NCw2IEBACiAj
aW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwuaCIKICNpbmNsdWRlICJT
VkdTdHlsZWRFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5o
IgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5k
ZXg6IGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGtzdmcyL21p
c2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxOSArMjMsMjAg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2Nh
bnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKIAogI2luY2x1
ZGUgIkRvY3VtZW50SW1wbC5oIgotI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
U3R5bGVkRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCiAjaW5jbHVkZSAiU3lz
dGVtVGltZS5oIgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgPHF0aW1l
ci5oPgogCiBuYW1lc3BhY2UgS1NWRyB7CiAKQEAgLTg5LDEyICs5MCwxMiBAQAogICAgIHJldHVy
biBtX3NpbmdsZVNob3Q7CiB9CiAgICAgICAgIAotZG91YmxlIFNWR1RpbWVyOjpjYWxjdWxhdGVU
aW1lUGVyY2VudGFnZShkb3VibGUgZWxhcHNlZCwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBk
b3VibGUgZHVyYXRpb24sIGRvdWJsZSByZXBlYXRpb25zKQorZG91YmxlIFNWR1RpbWVyOjpjYWxj
dWxhdGVUaW1lUGVyY2VudGFnZShkb3VibGUgZWxhcHNlZCwgZG91YmxlIHN0YXJ0LCBkb3VibGUg
ZW5kLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSByZXBldGl0aW9ucykKIHsKICAgICBkb3VibGUg
cGVyY2VudGFnZSA9IDAuMDsKIAotICAgIC8vIFRha2UgaW50byBhY2NvdW50IHJlcGVhdGlvbnMu
Li4KLSAgICBkb3VibGUgdXNlRWxhcHNlZCA9IGVsYXBzZWQgLSAoZHVyYXRpb24gKiByZXBlYXRp
b25zKTsKKyAgICAvLyBUYWtlIGludG8gYWNjb3VudCByZXBldGl0aW9ucy4uLgorICAgIGRvdWJs
ZSB1c2VFbGFwc2VkID0gZWxhcHNlZCAtIChkdXJhdGlvbiAqIHJlcGV0aXRpb25zKTsKICAgICAK
ICAgICBpZihkdXJhdGlvbiA+IDAuMCAmJiBlbmQgPT0gMC4wKQogICAgICAgICBwZXJjZW50YWdl
ID0gMS4wIC0gKCgoc3RhcnQgKyBkdXJhdGlvbikgLSB1c2VFbGFwc2VkKSAvIGR1cmF0aW9uKTsK
QEAgLTEwOCw3ICsxMDksNyBAQAogICAgIGVsc2UgaWYoZHVyYXRpb24gPT0gMC4wICYmIGVuZCAh
PSAwLjApCiAgICAgICAgIHBlcmNlbnRhZ2UgPSAxLjAgLSAoKChzdGFydCArIGVuZCkgLSB1c2VF
bGFwc2VkKSAvIGVuZCk7CiAKLSAgICAvLyBrZERlYnVnKCkgPDwgIlJFVFVSTklORyBQRVJDRU5U
QUdFOiAiIDw8IHBlcmNlbnRhZ2UgPDwgIiAoZWxhcHNlZDogIiA8PCBlbGFwc2VkIDw8ICIgLT4g
IiA8PCB1c2VFbGFwc2VkIDw8ICIgc3RhcnQ6ICIgPDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5k
IDw8ICIgZHVyOiAiIDw8IGR1cmF0aW9uIDw8ICIgcmVwOiAiIDw8IHJlcGVhdGlvbnMgPDwgIiki
IDw8IGVuZGw7CisgICAgLy8ga2REZWJ1ZygpIDw8ICJSRVRVUk5JTkcgUEVSQ0VOVEFHRTogIiA8
PCBwZXJjZW50YWdlIDw8ICIgKGVsYXBzZWQ6ICIgPDwgZWxhcHNlZCA8PCAiIC0+ICIgPDwgdXNl
RWxhcHNlZCA8PCAiIHN0YXJ0OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCAiIGR1
cjogIiA8PCBkdXJhdGlvbiA8PCAiIHJlcDogIiA8PCByZXBldGl0aW9ucyA8PCAiKSIgPDwgZW5k
bDsKICAgICByZXR1cm4gcGVyY2VudGFnZTsKIH0KIApAQCAtMTg4LDcgKzE4OSw3IEBACiAgICAg
ICAgICAgICBkb3VibGUgZW5kID0gYW5pbWF0aW9uLT5nZXRFbmRUaW1lKCk7CiAgICAgICAgICAg
ICBkb3VibGUgc3RhcnQgPSBhbmltYXRpb24tPmdldFN0YXJ0VGltZSgpOwogICAgICAgICAgICAg
ZG91YmxlIGR1cmF0aW9uID0gYW5pbWF0aW9uLT5nZXRTaW1wbGVEdXJhdGlvbigpOwotICAgICAg
ICAgICAgZG91YmxlIHJlcGVhdGlvbnMgPSBhbmltYXRpb24tPnJlcGVhdGlvbnMoKTsKKyAgICAg
ICAgICAgIGRvdWJsZSByZXBldGl0aW9ucyA9IGFuaW1hdGlvbi0+cmVwZXRpdGlvbnMoKTsKIAog
ICAgICAgICAgICAgLy8gVmFsaWRhdGUgYW5pbWF0aW9uIHRpbWluZyBzZXR0aW5nczoKICAgICAg
ICAgICAgIC8vICMxIChkdXJhdGlvbiA+IDApIC0+IGZpbmUKQEAgLTE5OCw3ICsxOTksNyBAQAog
ICAgICAgICAgICAgICAgKGFuaW1hdGlvbi0+aXNJbmRlZmluaXRlKGR1cmF0aW9uKSAmJiBlbmQg
PD0gMC4wKSkgLy8gSWdub3JlIGR1cj0iMCIgb3IgZHVyPSItbmVnIi4uLgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBmbG9hdCBwZXJjZW50YWdl
ID0gY2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZWxhcHNlZCwgc3RhcnQsIGVuZCwgZHVyYXRpb24s
IHJlcGVhdGlvbnMpOworICAgICAgICAgICAgZmxvYXQgcGVyY2VudGFnZSA9IGNhbGN1bGF0ZVRp
bWVQZXJjZW50YWdlKGVsYXBzZWQsIHN0YXJ0LCBlbmQsIGR1cmF0aW9uLCByZXBldGl0aW9ucyk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBpZihwZXJjZW50YWdlIDw9IDEuMCB8fCBh
bmltYXRpb24tPmNvbm5lY3RlZCgpKQogICAgICAgICAgICAgICAgIGFuaW1hdGlvbi0+aGFuZGxl
VGltZXJFdmVudChwZXJjZW50YWdlKTsKQEAgLTIxMiwzNiArMjEzLDMxIEBACiAgICAgICAgICAg
ICAgICAgaWYoIWFuaW1UcmFuc2Zvcm0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IHRyYW5zZm9ybU1hdHJpeCA9
IGFuaW1UcmFuc2Zvcm0tPnRyYW5zZm9ybU1hdHJpeCgpOwotICAgICAgICAgICAgICAgIGlmKCF0
cmFuc2Zvcm1NYXRyaXgpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1NYXRyaXggPSBhbmltVHJhbnNmb3JtLT50
cmFuc2Zvcm1NYXRyaXgoKTsKIAotICAgICAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBs
PiBpbml0aWFsTWF0cml4ID0gYW5pbVRyYW5zZm9ybS0+aW5pdGlhbE1hdHJpeCgpOworICAgICAg
ICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBpbml0aWFsTWF0cml4ID0gYW5pbVRyYW5zZm9ybS0+
aW5pdGlhbE1hdHJpeCgpOwogICAgICAgICAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1JbXBs
PiBkYXRhID0gbmV3IFNWR1RyYW5zZm9ybUltcGwoKTsKIAogICAgICAgICAgICAgICAgIGlmKCF0
YXJnZXRUcmFuc2Zvcm1zKSAvLyBsYXp5IGNyZWF0aW9uLCBvbmx5IGlmIG5lZWRlZC4KICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHRhcmdldFRyYW5zZm9ybXMgPSBuZXcg
U1ZHVHJhbnNmb3JtTGlzdEltcGwoKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VHJhbnNm
b3JtcyA9IG5ldyBTVkdUcmFuc2Zvcm1MaXN0SW1wbDsKIAotICAgICAgICAgICAgICAgICAgICBp
ZihhbmltYXRpb24tPmlzQWRkaXRpdmUoKSAmJiBpbml0aWFsTWF0cml4KQotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4g
bWF0cml4ID0gbmV3IFNWR01hdHJpeEltcGwoaW5pdGlhbE1hdHJpeC0+cW1hdHJpeCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+c2V0
TWF0cml4KG1hdHJpeC5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbmltYXRpb24t
PmlzQWRkaXRpdmUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+c2V0TWF0cml4
KGluaXRpYWxNYXRyaXgpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VHJhbnNmb3Jt
cy0+YXBwZW5kSXRlbShkYXRhLmdldCgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YSA9IG5ldyBTVkdUcmFuc2Zvcm1JbXBsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRh
ID0gbmV3IFNWR1RyYW5zZm9ybUltcGw7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZih0YXJnZXRUcmFuc2Zvcm1zLT5udW1iZXJP
Zkl0ZW1zKCkgPD0gMSkKLSAgICAgICAgICAgICAgICAgICAgZGF0YS0+c2V0TWF0cml4KHRyYW5z
Zm9ybU1hdHJpeC5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeCh0
cmFuc2Zvcm1NYXRyaXgpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgIGlmKCFhbmltYXRpb24tPmlzQWRkaXRpdmUoKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhcmdldFRyYW5zZm9ybXMtPmNsZWFyKCk7ICAgIAogICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZGF0YS0+c2V0TWF0cml4KHRyYW5z
Zm9ybU1hdHJpeC5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeCh0
cmFuc2Zvcm1NYXRyaXgpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHRh
cmdldFRyYW5zZm9ybXMtPmFwcGVuZEl0ZW0oZGF0YS5nZXQoKSk7CkluZGV4OiBrc3ZnMi9taXNj
L1NWR0ltYWdlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9taXNjL1NWR0ltYWdlTG9h
ZGVyLmNwcAkocmV2aXNpb24gMTI0MjQpCisrKyBrc3ZnMi9taXNjL1NWR0ltYWdlTG9hZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlNWR0ltYWdlRWxl
bWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAj
aW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCiAKICNpbmNsdWRlICJyZW5kZXJfaW1h
Z2UuaCIKSW5kZXg6IGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVyaW5nU3R5bGUuaAkocmV2aXNpb24gMTI0MjQp
CisrKyBrc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJpbmdTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDYgICAgICAgQWxleGFu
ZGVyIEtlbGxldHQgPGx5cGFub3ZAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJv
amVjdAogCkBAIC0yNSwzOSArMjYsMzQgQEAKICNkZWZpbmUgS1NWR19LQ2FudmFzUmVuZGVyaW5n
U3R5bGVfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlICJjc3NfdmFsdWVpbXBsLmgiCi0j
aW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzTWF0cml4Lmg+Ci0jaW5jbHVkZSA8cXZhbHVlbGlzdC5o
PgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFFWYWx1ZUxpc3Q7CiAKIC8vIEZJWE1FOiB0
aGVzZSBzaG91bGQgYmUgcmVtb3ZlZCwgdXNlIEtTVkcgb25lcyBpbnN0ZWFkCi10eXBlZGVmIGVu
dW0KLXsKK2VudW0gS0NDYXBTdHlsZSB7CiAgICAgQ0FQX0JVVFQgPSAxLAogICAgIENBUF9ST1VO
RCA9IDIsCiAgICAgQ0FQX1NRVUFSRSA9IDMKLX0gS0NDYXBTdHlsZTsKK307CiAKLXR5cGVkZWYg
ZW51bQoteworZW51bSBLQ0pvaW5TdHlsZSB7CiAgICAgSk9JTl9NSVRFUiA9IDEsCiAgICAgSk9J
Tl9ST1VORCA9IDIsCiAgICAgSk9JTl9CRVZFTCA9IDMKLX0gS0NKb2luU3R5bGU7Cit9OwogCi0K
IC8vIFNwZWNpYWwgdHlwZXMKLXR5cGVkZWYgUTNWYWx1ZUxpc3Q8ZmxvYXQ+IEtDRGFzaEFycmF5
OwordHlwZWRlZiBRVmFsdWVMaXN0PGZsb2F0PiBLQ0Rhc2hBcnJheTsKIAogY2xhc3MgS1JlbmRl
cmluZ0ZpbGxQYWludGVyOwogY2xhc3MgS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXI7CiBjbGFzcyBL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXI7CiAKLW5hbWVzcGFjZSBXZWJDb3JlCi17CituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgY2xhc3MgQ1NTVmFsdWVJbXBsOwogICAgIGNsYXNzIFJlbmRlclN0eWxl
OwogICAgIGNsYXNzIFJlbmRlck9iamVjdDsKLSAgICBjbGFzcyBLU1ZHUGFpbnRlckZhY3RvcnkK
LSAgICB7CisKKyAgICBjbGFzcyBLU1ZHUGFpbnRlckZhY3RvcnkgewogICAgIHB1YmxpYzoKICAg
ICAgICAgc3RhdGljIEtSZW5kZXJpbmdGaWxsUGFpbnRlciBmaWxsUGFpbnRlcihjb25zdCBSZW5k
ZXJTdHlsZSosIGNvbnN0IFJlbmRlck9iamVjdCopOwogICAgICAgICBzdGF0aWMgS1JlbmRlcmlu
Z1N0cm9rZVBhaW50ZXIgc3Ryb2tlUGFpbnRlcihjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJl
bmRlck9iamVjdCopOwpAQCAtNzAsNyArNjYsNyBAQAogCiAgICAgICAgIHN0YXRpYyBkb3VibGUg
Y3NzUHJpbWl0aXZlVG9MZW5ndGgoY29uc3QgUmVuZGVyT2JqZWN0KiwgQ1NTVmFsdWVJbXBsKiwg
ZG91YmxlIGRlZmF1bHRWYWx1ZSA9IDAuMCk7CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBT
VkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5oCShyZXZpc2lvbiAx
MjQyNCkKKysrIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMg
WmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
CiAKQEAgLTI0LDM3ICsyNSwzMiBAQAogI2RlZmluZSBLU1ZHX1RpbWVTY2hlZHVsZXJfSAogI2lm
IFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxxdGltZXIuaD4KICNpbmNsdWRlIDxxb2JqZWN0Lmg+
CiAjaW5jbHVkZSA8cTN2YWx1ZWxpc3QuaD4KIAotI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1l
bnRJbXBsLmgiCitjbGFzcyBRVGltZXI7CiAKLW5hbWVzcGFjZSBLRE9NIHsKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci19CisgICAgY2xhc3MgU1ZHQW5pbWF0
aW9uRWxlbWVudEltcGw7CisgICAgY2xhc3MgVGltZVNjaGVkdWxlcjsKIAotbmFtZXNwYWNlIEtT
VkcKLXsKLSAgICB0eXBlZGVmIHN0cnVjdAotICAgIHsKLSAgICAgICAgYm9vbCBlbmFibGVkIDog
MTsKLSAgICAgICAgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwgKmFuaW1hdGlvbjsKLSAgICB9IFNW
R05vdGlmaWNhdGlvblN0cnVjdDsKKyAgICBzdHJ1Y3QgU1ZHTm90aWZpY2F0aW9uU3RydWN0IHsK
KyAgICAgICAgYm9vbCBlbmFibGVkOworICAgICAgICBTVkdBbmltYXRpb25FbGVtZW50SW1wbCog
YW5pbWF0aW9uOworICAgIH07CiAgICAgCiAgICAgdHlwZWRlZiBRM1ZhbHVlTGlzdDxTVkdOb3Rp
ZmljYXRpb25TdHJ1Y3Q+IFNWR05vdGlmeUxpc3Q7CiAKLSAgICBjbGFzcyBUaW1lU2NoZWR1bGVy
OwotICAgIGNsYXNzIFNWR1RpbWVyCi0gICAgeworICAgIGNsYXNzIFNWR1RpbWVyIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIFNWR1RpbWVyKFRpbWVTY2hlZHVsZXIgKnNjaGVkdWxlciwgdW5zaWdu
ZWQgaW50IG1zLCBib29sIHNpbmdsZVNob3QpOworICAgICAgICBTVkdUaW1lcihUaW1lU2NoZWR1
bGVyKiwgdW5zaWduZWQgaW50IG1zLCBib29sIHNpbmdsZVNob3QpOwogICAgICAgICB+U1ZHVGlt
ZXIoKTsKIAotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUVRpbWVyICp0aW1lcik7Ci0g
ICAgICAgIGNvbnN0IFFUaW1lciAqcXRpbWVyKCkgY29uc3Q7CisgICAgICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBRVGltZXIqKTsKKyAgICAgICAgY29uc3QgUVRpbWVyKiBxdGltZXIoKSBjb25z
dDsKIAotICAgICAgICB2b2lkIHN0YXJ0KFFPYmplY3QgKnJlY2VpdmVyLCBjb25zdCBjaGFyICpt
ZW1iZXIpOworICAgICAgICB2b2lkIHN0YXJ0KFFPYmplY3QqIHJlY2VpdmVyLCBjb25zdCBjaGFy
KiBtZW1iZXIpOwogICAgICAgICB2b2lkIHN0b3AoKTsKIAogICAgICAgICBib29sIGlzQWN0aXZl
KCkgY29uc3Q7CkBAIC02MywzNSArNTksMzQgQEAKICAgICAgICAgYm9vbCBzaW5nbGVTaG90KCkg
Y29uc3Q7CiAKICAgICAgICAgdm9pZCBub3RpZnlBbGwoKTsKLSAgICAgICAgdm9pZCBhZGROb3Rp
ZnkoU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwgKmVsZW1lbnQsIGJvb2wgZW5hYmxlZCA9IGZhbHNl
KTsKLSAgICAgICAgdm9pZCByZW1vdmVOb3RpZnkoU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwgKmVs
ZW1lbnQpOworICAgICAgICB2b2lkIGFkZE5vdGlmeShTVkdBbmltYXRpb25FbGVtZW50SW1wbCos
IGJvb2wgZW5hYmxlZCA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCByZW1vdmVOb3RpZnkoU1ZHQW5p
bWF0aW9uRWxlbWVudEltcGwqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGRvdWJsZSBjYWxj
dWxhdGVUaW1lUGVyY2VudGFnZShkb3VibGUgZWxhcHNlZCwgZG91YmxlIHN0YXJ0LCBkb3VibGUg
ZW5kLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSByZXBlYXRpb25zKTsKKyAgICAgICAgZG91Ymxl
IGNhbGN1bGF0ZVRpbWVQZXJjZW50YWdlKGRvdWJsZSBlbGFwc2VkLCBkb3VibGUgc3RhcnQsIGRv
dWJsZSBlbmQsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIHJlcGV0aXRpb25zKTsKIAotICAgICAg
ICB1bnNpZ25lZCBpbnQgbV9tczsKKyAgICAgICAgdW5zaWduZWQgbV9tczsKICAgICAgICAgYm9v
bCBtX2ludm9rZWQsIG1fc2luZ2xlU2hvdDsKIAotICAgICAgICBRVGltZXIgKm1fdGltZXI7Ci0g
ICAgICAgIFRpbWVTY2hlZHVsZXIgKm1fc2NoZWR1bGVyOworICAgICAgICBRVGltZXIqIG1fdGlt
ZXI7CisgICAgICAgIFRpbWVTY2hlZHVsZXIqIG1fc2NoZWR1bGVyOwogICAgICAgICBTVkdOb3Rp
ZnlMaXN0IG1fbm90aWZ5TGlzdDsKICAgICB9OwogCi0gICAgdHlwZWRlZiBRM1ZhbHVlTGlzdDxT
VkdUaW1lciAqPiBTVkdUaW1lckxpc3Q7CisgICAgdHlwZWRlZiBRM1ZhbHVlTGlzdDxTVkdUaW1l
cio+IFNWR1RpbWVyTGlzdDsKIAotICAgIGNsYXNzIFRpbWVTY2hlZHVsZXIgOiBwdWJsaWMgUU9i
amVjdAotICAgIHsKKyAgICBjbGFzcyBUaW1lU2NoZWR1bGVyIDogcHVibGljIFFPYmplY3Qgewog
ICAgIFFfT0JKRUNUCiAgICAgcHVibGljOgotICAgICAgICBUaW1lU2NoZWR1bGVyKEtET006OkRv
Y3VtZW50SW1wbCAqZG9jKTsKKyAgICAgICAgVGltZVNjaGVkdWxlcihEb2N1bWVudEltcGwqKTsK
ICAgICAgICAgflRpbWVTY2hlZHVsZXIoKTsKIAogICAgICAgICAvLyBBZGRzIHNpbmdsZVNob3Qg
VGltZXJzCi0gICAgICAgIHZvaWQgYWRkVGltZXIoU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwgKmVs
ZW1lbnQsIHVuc2lnbmVkIGludCBtcyk7CisgICAgICAgIHZvaWQgYWRkVGltZXIoU1ZHQW5pbWF0
aW9uRWxlbWVudEltcGwqLCB1bnNpZ25lZCBpbnQgbXMpOwogCiAgICAgICAgIC8vIChEaXMtKUNv
bm5lY3RzIHRvIGludGVydmFsIHRpbWVyIHdpdGggbXMgPSAnc3RhdGljVGltZXJJbnRlcnZhbCcK
LSAgICAgICAgdm9pZCBjb25uZWN0SW50ZXJ2YWxUaW1lcihTVkdBbmltYXRpb25FbGVtZW50SW1w
bCAqZWxlbWVudCk7Ci0gICAgICAgIHZvaWQgZGlzY29ubmVjdEludGVydmFsVGltZXIoU1ZHQW5p
bWF0aW9uRWxlbWVudEltcGwgKmVsZW1lbnQpOworICAgICAgICB2b2lkIGNvbm5lY3RJbnRlcnZh
bFRpbWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKik7CisgICAgICAgIHZvaWQgZGlzY29ubmVj
dEludGVydmFsVGltZXIoU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwqKTsKIAogICAgICAgICB2b2lk
IHN0YXJ0QW5pbWF0aW9ucygpOwogICAgICAgICB2b2lkIHRvZ2dsZUFuaW1hdGlvbnMoKTsKQEAg
LTEwNywxOCArMTAyLDE3IEBACiAKICAgICBwcml2YXRlOiAvLyBIZWxwZXIKICAgICAgICAgZnJp
ZW5kIGNsYXNzIFNWR1RpbWVyOwotICAgICAgICBLRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgICAgICBEb2N1bWVudEltcGwqIGRv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogCi0gICAgcHJpdmF0ZToKICAg
ICAgICAgZG91YmxlIG1fY3JlYXRpb25UaW1lOwogICAgICAgICBkb3VibGUgbV9zYXZlZFRpbWU7
CiAgICAgICAgIAogICAgICAgICBTVkdUaW1lckxpc3QgbV90aW1lckxpc3Q7CiAgICAgICAgIAot
ICAgICAgICBTVkdUaW1lciAqbV9pbnRlcnZhbFRpbWVyOwotICAgICAgICBLRE9NOjpEb2N1bWVu
dEltcGwgKm1fZG9jdW1lbnQ7CisgICAgICAgIFNWR1RpbWVyKiBtX2ludGVydmFsVGltZXI7Cisg
ICAgICAgIERvY3VtZW50SW1wbCogbV9kb2N1bWVudDsKICAgICB9OwotfTsKK30KIAogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGJyaWRnZS9tYWMvTWFjRnJhbWUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gYnJpZGdlL21hYy9NYWNGcmFtZS5tbQkocmV2aXNpb24gMTI0MjQpCisrKyBi
cmlkZ2UvbWFjL01hY0ZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQxLDcgKzMwNDEsNyBA
QAogCiAgICAgLy8gMS4gVGhlIGJhY2tncm91bmQgY29sb3IgdXNlZCB0byBkcmF3IGJlaGluZCBz
ZWxlY3RlZCBjb250ZW50IChhY3RpdmUgfCBpbmFjdGl2ZSBjb2xvcikKICAgICBpZiAoZC0+bV92
aWV3KQotICAgICAgICBkLT5tX3ZpZXctPnVwZGF0ZUNvbnRlbnRzKEludFJlY3QodmlzaWJsZVNl
bGVjdGlvblJlY3QoKSkpOworICAgICAgICBkLT5tX3ZpZXctPnVwZGF0ZUNvbnRlbnRzKGVuY2xv
c2luZ0ludFJlY3QodmlzaWJsZVNlbGVjdGlvblJlY3QoKSkpOwogCiAgICAgLy8gMi4gQ2FyZXQg
YmxpbmtpbmcgKGJsaW5rcyB8IGRvZXMgbm90IGJsaW5rKQogICAgIGlmIChmbGFnKQpAQCAtMzA2
NSwxMCArMzA2NSw5IEBACiAgICAgICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gZC0+bV92aWV3
ID8gZC0+bV92aWV3LT5nZXREb2N1bWVudFZpZXcoKSA6IDA7CiAgICAgICAgIGlmIChkb2N1bWVu
dFZpZXcgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgZG9jLT51cGRhdGVMYXlvdXQoKTsg
Ly8gRW5zdXJlIGxheW91dCBpcyB1cCB0byBkYXRlLgotICAgICAgICAgICAgSW50UmVjdCB2aXNp
YmxlUmVjdChbZG9jdW1lbnRWaWV3IHZpc2libGVSZWN0XSk7CiAgICAgICAgICAgICBRUGFpbnRl
ciBwOwogICAgICAgICAgICAgcC5zZXRVcGRhdGluZ0NvbnRyb2xUaW50cyh0cnVlKTsKLSAgICAg
ICAgICAgIHBhaW50KCZwLCB2aXNpYmxlUmVjdCk7CisgICAgICAgICAgICBwYWludCgmcCwgZW5j
bG9zaW5nSW50UmVjdChbZG9jdW1lbnRWaWV3IHZpc2libGVSZWN0XSkpOwogICAgICAgICB9CiAg
ICAgfQogfQpAQCAtMzQ5NywxNiArMzQ5Niw4IEBACiAgICAgICAgIGlmIChyZWdpb24udHlwZSA9
PSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6Tm9uZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgCi0gICAgICAgIE5TUmVjdCBjbGlwOwotICAgICAgICBjbGlwLm9yaWdpbi54ID0g
cmVnaW9uLmNsaXAueCgpOwotICAgICAgICBjbGlwLm9yaWdpbi55ID0gcmVnaW9uLmNsaXAueSgp
OwotICAgICAgICBjbGlwLnNpemUud2lkdGggPSByZWdpb24uY2xpcC53aWR0aCgpOwotICAgICAg
ICBjbGlwLnNpemUuaGVpZ2h0ID0gcmVnaW9uLmNsaXAuaGVpZ2h0KCk7Ci0gICAgICAgIE5TUmVj
dCByZWN0OwotICAgICAgICByZWN0Lm9yaWdpbi54ID0gcmVnaW9uLmJvdW5kcy54KCk7Ci0gICAg
ICAgIHJlY3Qub3JpZ2luLnkgPSByZWdpb24uYm91bmRzLnkoKTsKLSAgICAgICAgcmVjdC5zaXpl
LndpZHRoID0gcmVnaW9uLmJvdW5kcy53aWR0aCgpOwotICAgICAgICByZWN0LnNpemUuaGVpZ2h0
ID0gcmVnaW9uLmJvdW5kcy5oZWlnaHQoKTsKKyAgICAgICAgTlNSZWN0IGNsaXAgPSByZWdpb24u
Y2xpcDsKKyAgICAgICAgTlNSZWN0IHJlY3QgPSByZWdpb24uYm91bmRzOwogICAgICAgICBOU1N0
cmluZyAqbGFiZWwgPSByZWdpb24ubGFiZWwuZ2V0TlNTdHJpbmcoKTsKICAgICAgICAgV2ViRGFz
aGJvYXJkUmVnaW9uVHlwZSB0eXBlID0gV2ViRGFzaGJvYXJkUmVnaW9uVHlwZU5vbmU7CiAgICAg
ICAgIGlmIChyZWdpb24udHlwZSA9PSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6Q2lyY2xlKQpJbmRl
eDogYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnJpZGdl
L21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UubW0JKHJldmlzaW9uIDEyNDI0KQorKysgYnJpZGdlL21h
Yy9XZWJDb3JlRnJhbWVCcmlkZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTk3MSw3ICs5NzEsNyBA
QAogLSAodm9pZClkcmF3UmVjdDooTlNSZWN0KXJlY3Qgd2l0aFBhaW50ZXI6KFFQYWludGVyICop
cAogewogICAgIFtzZWxmIF9zZXR1cFJvb3RGb3JQcmludGluZzpZRVNdOwotICAgIG1fZnJhbWUt
PnBhaW50KHAsIEludFJlY3QocmVjdCkpOworICAgIG1fZnJhbWUtPnBhaW50KHAsIGVuY2xvc2lu
Z0ludFJlY3QocmVjdCkpOwogICAgIFtzZWxmIF9zZXR1cFJvb3RGb3JQcmludGluZzpOT107CiB9
CiAKQEAgLTE1MjksMTcgKzE1MjksMTMgQEAKIAogICAgIGlmIChzdGFydENhcmV0UmVjdC55KCkg
PT0gZW5kQ2FyZXRSZWN0LnkoKSkgewogICAgICAgICAvLyBzdGFydCBhbmQgZW5kIGFyZSBvbiB0
aGUgc2FtZSBsaW5lCi0gICAgICAgIHJldHVybiBJbnRSZWN0KE1JTihzdGFydENhcmV0UmVjdC54
KCksIGVuZENhcmV0UmVjdC54KCkpLCAKLSAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q2FyZXRS
ZWN0LnkoKSwgCi0gICAgICAgICAgICAgICAgICAgICBhYnMoZW5kQ2FyZXRSZWN0LngoKSAtIHN0
YXJ0Q2FyZXRSZWN0LngoKSksCi0gICAgICAgICAgICAgICAgICAgICBNQVgoc3RhcnRDYXJldFJl
Y3QuaGVpZ2h0KCksIGVuZENhcmV0UmVjdC5oZWlnaHQoKSkpOworICAgICAgICByZXR1cm4gSW50
UmVjdChrTWluKHN0YXJ0Q2FyZXRSZWN0LngoKSwgZW5kQ2FyZXRSZWN0LngoKSksIHN0YXJ0Q2Fy
ZXRSZWN0LnkoKSwgCisgICAgICAgICAgICBhYnMoZW5kQ2FyZXRSZWN0LngoKSAtIHN0YXJ0Q2Fy
ZXRSZWN0LngoKSksIGtNYXgoc3RhcnRDYXJldFJlY3QuaGVpZ2h0KCksIGVuZENhcmV0UmVjdC5o
ZWlnaHQoKSkpOwogICAgIH0KIAogICAgIC8vIHN0YXJ0IGFuZCBlbmQgYXJlbid0IG9uIHRoZSBz
YW1lIGxpbmUsIHNvIGdvIGZyb20gc3RhcnQgdG8gdGhlIGVuZCBvZiBpdHMgbGluZQotICAgIHJl
dHVybiBJbnRSZWN0KHN0YXJ0Q2FyZXRSZWN0LngoKSwgCi0gICAgICAgICAgICAgICAgIHN0YXJ0
Q2FyZXRSZWN0LnkoKSwKLSAgICAgICAgICAgICAgICAgc3RhcnRDYXJldFJlY3Qud2lkdGgoKSAr
IGV4dHJhV2lkdGhUb0VuZE9mTGluZSwKLSAgICAgICAgICAgICAgICAgc3RhcnRDYXJldFJlY3Qu
aGVpZ2h0KCkpOworICAgIHJldHVybiBJbnRSZWN0KHN0YXJ0Q2FyZXRSZWN0LngoKSwgc3RhcnRD
YXJldFJlY3QueSgpLAorICAgICAgICBzdGFydENhcmV0UmVjdC53aWR0aCgpICsgZXh0cmFXaWR0
aFRvRW5kT2ZMaW5lLCBzdGFydENhcmV0UmVjdC5oZWlnaHQoKSk7CiB9CiAKIC0gKE5TSW1hZ2Ug
KilzZWxlY3Rpb25JbWFnZQpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMvcW1hdHJpeC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEZvcndhcmRpbmdIZWFkZXJzL3FtYXRyaXguaAkocmV2aXNpb24gMTI0MjQpCisr
KyBGb3J3YXJkaW5nSGVhZGVycy9xbWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBA
QAotI2ltcG9ydCAiS1dRV01hdHJpeC5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMvcXdtYXRy
aXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBGb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCShyZXZpc2lv
biAxMjQyNCkKKysrIEZvcndhcmRpbmdIZWFkZXJzL3F3bWF0cml4LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIktXUVdNYXRyaXguaCIKSW5kZXg6IGt3cS9LV1FXTWF0
cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdNYXRyaXguaAkocmV2aXNpb24gMTI0MjQpCisr
KyBrd3EvS1dRV01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpZm5kZWYgUVdNQVRSSVhfSF8KLSNkZWZpbmUgUVdNQVRSSVhfSF8K
LQotI2lmIF9fQVBQTEVfXwotLy8gRklYTUU6IEp1c3QgY29tbWVudCBvdXQgdGhlIGVudGlyZSBm
aWxlLCBzaW5jZSBpdHMgaW1wbGVtZW50YXRpb24gaXMgY29tcGxldGVseSBDRy1zcGVjaWZpYy4K
LQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAgICBjbGFzcyBGbG9h
dFJlY3Q7Ci19Ci0KLWNsYXNzIFFNYXRyaXggewotcHVibGljOgotICAgIFFNYXRyaXgoKTsKLSAg
ICBRTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUg
dHgsIGRvdWJsZSB0eSk7Ci0gICAgUU1hdHJpeChDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0p
OwotCi0gICAgdm9pZCBzZXRNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91
YmxlIGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKLSAgICB2b2lkIG1hcChkb3VibGUgeCwgZG91
YmxlIHksIGRvdWJsZSAqeDIsIGRvdWJsZSAqeTIpIGNvbnN0OwotICAgIFdlYkNvcmU6OkludFJl
Y3QgUU1hdHJpeDo6bWFwUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0gICAg
V2ViQ29yZTo6RmxvYXRSZWN0IFFNYXRyaXg6Om1hcFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JikgY29uc3Q7Ci0gICAgCi0gICAgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Q7Ci0gICAgCi0g
ICAgZG91YmxlIG0xMSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmE7IH0KLSAgICBkb3Vi
bGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0uYjsgfQotICAgIGRvdWJsZSBtMjEo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5jOyB9Ci0gICAgZG91YmxlIG0yMigpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmQ7IH0KLSAgICBkb3VibGUgZHgoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybS50eDsgfQotICAgIGRvdWJsZSBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtLnR5OyB9Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0gICAgCi0gICAgUU1hdHJpeCAmc2Nh
bGUoZG91YmxlIHN4LCBkb3VibGUgc3kpOwotICAgIFFNYXRyaXggJnJvdGF0ZShkb3VibGUgZCk7
Ci0gICAgUU1hdHJpeCAmdHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKLSAgICBRTWF0
cml4ICZzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBzeSk7Ci0gICAgCi0gICAgZG91YmxlIGRldCgp
IGNvbnN0OwotICAgIGJvb2wgaXNJbnZlcnRpYmxlKCkgY29uc3Q7Ci0gICAgUU1hdHJpeCBpbnZl
cnQoKSBjb25zdDsKLQotICAgIG9wZXJhdG9yIENHQWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7Ci0K
LSAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IFFNYXRyaXggJikgY29uc3Q7Ci0gICAgUU1hdHJp
eCAmb3BlcmF0b3IqPSAoY29uc3QgUU1hdHJpeCAmKTsKLSAgICBRTWF0cml4IG9wZXJhdG9yKiAo
Y29uc3QgUU1hdHJpeCAmbTIpOwotICAgIAotcHJpdmF0ZToKLSAgICBDR0FmZmluZVRyYW5zZm9y
bSBtX3RyYW5zZm9ybTsKLX07Ci0KLSNkZWZpbmUgUVdNYXRyaXggUU1hdHJpeAotCi0jZW5kaWYg
Ly8gX19BUFBMRV9fCi0KLSNlbmRpZgpJbmRleDoga3dxL0tXUUZpbGVCdXR0b24ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3dxL0tXUUZpbGVCdXR0b24ubW0JKHJldmlzaW9uIDEyNDI0KQorKysga3dxL0tX
UUZpbGVCdXR0b24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiwxMCArMTA2LDggQEAKIHsKICAg
ICBOU1ZpZXcgPFdlYkNvcmVGaWxlQnV0dG9uPiAqYnV0dG9uID0gZ2V0VmlldygpOwogCi0gICAg
TlNSZWN0IGZyYW1lID0ge3swLDB9LHswLDB9fTsKICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsK
LSAgICBmcmFtZSA9IFtidXR0b24gdmlzdWFsRnJhbWVdOwotICAgIHJldHVybiBJbnRSZWN0KGZy
YW1lKTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbYnV0dG9uIHZpc3VhbEZyYW1lXSk7
CiAgICAgS1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQpJ
bmRleDoga3dxL0tXUUNvbWJvQm94Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FDb21ib0JveC5t
bQkocmV2aXNpb24gMTI0MjQpCisrKyBrd3EvS1dRQ29tYm9Cb3gubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIyMyw3ICsyMjMsNyBAQAogICAgICAgICByLmhlaWdodCgpIC0gKGRpbWVuc2lvbnMoKVt0
b3BNYXJnaW5dICsgZGltZW5zaW9ucygpW2JvdHRvbU1hcmdpbl0pKTsKIH0KIAotdm9pZCBRQ29t
Ym9Cb3g6OnNldEZyYW1lR2VvbWV0cnkoY29uc3QgSW50UmVjdCAmcikKK3ZvaWQgUUNvbWJvQm94
OjpzZXRGcmFtZUdlb21ldHJ5KGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgUVdpZGdldDo6c2V0
RnJhbWVHZW9tZXRyeShJbnRSZWN0KC1kaW1lbnNpb25zKClbbGVmdE1hcmdpbl0gKyByLngoKSwg
LWRpbWVuc2lvbnMoKVt0b3BNYXJnaW5dICsgci55KCksCiAgICAgICAgIGRpbWVuc2lvbnMoKVts
ZWZ0TWFyZ2luXSArIHIud2lkdGgoKSArIGRpbWVuc2lvbnMoKVtyaWdodE1hcmdpbl0sCkluZGV4
OiBrd3EvS1dRUGFpbnRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRUGFpbnRlci5tbQkocmV2
aXNpb24gMTI0MjQpCisrKyBrd3EvS1dRUGFpbnRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzg1
LDcgKzc4NSw3IEBACiAKIHZvaWQgUVBhaW50ZXI6OmZpbGxSZWN0KGNvbnN0IEludFJlY3QgJnJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkJydXNoICZicnVzaCkKIHsKLSAgICBmaWxsUmVjdChyZWN0Lmxl
ZnQoKSwgcmVjdC50b3AoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBicnVzaCk7Cisg
ICAgZmlsbFJlY3QocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCksIGJydXNoKTsKIH0KIAogdm9pZCBRUGFpbnRlcjo6YWRkQ2xpcChjb25zdCBJbnRSZWN0ICZy
ZWN0KQpAQCAtODIyLDEyICs4MjIsMTIgQEAKICAgICAvLyBub3JtYWwgdXNlIGNhc2VzIHRoZXNl
IGVsbGlwc2VzIHdvbid0IG92ZXJsYXAgb25lIGFub3RoZXIgKG9yIHdoZW4gdGhleSBkbyB0aGUg
Y3VydmF0dXJlIG9mIG9uZSB3aWxsCiAgICAgLy8gYmUgc3Vic3VtZWQgYnkgdGhlIG90aGVyKS4K
ICAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54
KCksIHJlY3QueSgpLCB0b3BMZWZ0LndpZHRoKCkgKiAyLCB0b3BMZWZ0LmhlaWdodCgpICogMikp
OwotICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0
LngoKSArIHJlY3Qud2lkdGgoKSAtIHRvcFJpZ2h0LndpZHRoKCkgKiAyLCByZWN0LnkoKSwKKyAg
ICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC5yaWdo
dCgpIC0gdG9wUmlnaHQud2lkdGgoKSAqIDIsIHJlY3QueSgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BSaWdodC53aWR0aCgpICogMiwgdG9w
UmlnaHQuaGVpZ2h0KCkgKiAyKSk7Ci0gICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250
ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSBib3R0
b21MZWZ0LmhlaWdodCgpICogMiwKKyAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRl
eHQsIENHUmVjdE1ha2UocmVjdC54KCksIHJlY3QuYm90dG9tKCkgLSBib3R0b21MZWZ0LmhlaWdo
dCgpICogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm90dG9tTGVmdC53aWR0aCgpICogMiwgYm90dG9tTGVmdC5oZWlnaHQoKSAqIDIpKTsKLSAg
ICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCkg
KyByZWN0LndpZHRoKCkgLSBib3R0b21SaWdodC53aWR0aCgpICogMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC55KCkgKyByZWN0LmhlaWdo
dCgpIC0gYm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyLAorICAgIENHQ29udGV4dEFkZEVsbGlwc2VJ
blJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LnJpZ2h0KCkgLSBib3R0b21SaWdodC53aWR0
aCgpICogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdC5ib3R0b20oKSAtIGJvdHRvbVJpZ2h0LmhlaWdodCgpICogMiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHQud2lkdGgo
KSAqIDIsIGJvdHRvbVJpZ2h0LmhlaWdodCgpICogMikpOwogICAgIAogICAgIC8vIE5vdyBhZGQg
Zml2ZSByZWN0cyAob25lIGZvciBlYWNoIGVkZ2UgcmVjdCBpbiBiZXR3ZWVuIHRoZSByb3VuZGVk
IGNvcm5lcnMgYW5kIG9uZSBmb3IgdGhlIGludGVyaW9yKS4KQEAgLTgzNSwxMiArODM1LDEyIEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qud2lkdGgoKSAt
IHRvcExlZnQud2lkdGgoKSAtIHRvcFJpZ2h0LndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtNYXgodG9wTGVmdC5oZWlnaHQoKSwgdG9wUmlnaHQuaGVp
Z2h0KCkpKSk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3Qu
eCgpICsgYm90dG9tTGVmdC53aWR0aCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC0ga01heChib3R0b21MZWZ0Lmhl
aWdodCgpLCBib3R0b21SaWdodC5oZWlnaHQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY3QuYm90dG9tKCkgLSBrTWF4KGJvdHRvbUxlZnQuaGVpZ2h0KCks
IGJvdHRvbVJpZ2h0LmhlaWdodCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjdC53aWR0aCgpIC0gYm90dG9tTGVmdC53aWR0aCgpIC0gYm90dG9tUmlnaHQu
d2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga01heChi
b3R0b21MZWZ0LmhlaWdodCgpLCBib3R0b21SaWdodC5oZWlnaHQoKSkpKTsKICAgICBDR0NvbnRl
eHRBZGRSZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCksIHJlY3QueSgpICsgdG9wTGVm
dC5oZWlnaHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga01h
eCh0b3BMZWZ0LndpZHRoKCksIGJvdHRvbUxlZnQud2lkdGgoKSksIHJlY3QuaGVpZ2h0KCkgLSB0
b3BMZWZ0LmhlaWdodCgpIC0gYm90dG9tTGVmdC5oZWlnaHQoKSkpOwotICAgIENHQ29udGV4dEFk
ZFJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSArIHJlY3Qud2lkdGgoKSAtIGtNYXgo
dG9wUmlnaHQud2lkdGgoKSwgYm90dG9tUmlnaHQud2lkdGgoKSksCisgICAgQ0dDb250ZXh0QWRk
UmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QucmlnaHQoKSAtIGtNYXgodG9wUmlnaHQud2lk
dGgoKSwgYm90dG9tUmlnaHQud2lkdGgoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3QueSgpICsgdG9wUmlnaHQuaGVpZ2h0KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXgodG9wUmlnaHQud2lkdGgoKSwgYm90dG9t
UmlnaHQud2lkdGgoKSksIHJlY3QuaGVpZ2h0KCkgLSB0b3BSaWdodC5oZWlnaHQoKSAtIGJvdHRv
bVJpZ2h0LmhlaWdodCgpKSk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RN
YWtlKHJlY3QueCgpICsga01heCh0b3BMZWZ0LndpZHRoKCksIGJvdHRvbUxlZnQud2lkdGgoKSks
CkluZGV4OiBrd3EvS1dRQXBwbGljYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUUFwcGxp
Y2F0aW9uLm1tCShyZXZpc2lvbiAxMjQyNCkKKysrIGt3cS9LV1FBcHBsaWNhdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQuIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDcwICsyMyw1MCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJLV1FBcHBsaWNhdGlvbi5oIgotI2ltcG9ydCAiS1dRU3R5bGUuaCIKIAorI2lt
cG9ydCAiSW50UmVjdC5oIgorI2ltcG9ydCAiS1dRV2lkZ2V0LmgiCisKIC8vIFRoZSBOU1NjcmVl
biBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgc2hvdWxkIG5ldmVyIHRocm93LCBzbwogLy8gdGhl
cmUncyBubyBuZWVkIHRvIGJsb2NrIGV4Y2VwdGlvbnMuCiAKLWludCBRRGVza3RvcFdpZGdldDo6
d2lkdGgoKQotewotICAgIHJldHVybiAoaW50KVtbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVd
LnNpemUud2lkdGg7Ci19Ci0gICAgCi1pbnQgUURlc2t0b3BXaWRnZXQ6OmhlaWdodCgpCi17Ci0g
ICAgcmV0dXJuIChpbnQpW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0uc2l6ZS5oZWlnaHQ7
Ci19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBtYXkgd2Fu
dCB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHdpZGdldCBpcyBpbiBhIHdpbmRvdyB0aGF0
J3Mgb24KIC8vIGEgZGlmZmVyZW50IHNjcmVlbiBmcm9tIHRoZSBrZXkgd2luZG93IGF0IHRoZSB0
aW1lIHRoZSBzY3JpcHQgaXMgcnVuLiBJZiBzbywga2VlcCBpbiBtaW5kCiAvLyB0aGF0IHRoZSBy
ZXN1bHQgb2Ygc2NyZWVuR2VvbWV0cnkgaXMgaW50ZXJzZWN0ZWQgd2l0aCB0aGUgcmVzdWx0IG9m
IEtXaW5Nb2R1bGU6OndvcmtBcmVhLgogCi1pbnQgUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJl
cihRV2lkZ2V0ICopCitpbnQgUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcihRV2lkZ2V0KikK
IHsKICAgICAvLyBBbHdheXMgcmV0dXJucyAwLCB3aGljaCBpcyBmaW5lIHNpbmNlIHRoaXMgaXMg
b25seSBwYXNzZWQgdG8gc2NyZWVuR2VvbWV0cnksCiAgICAgLy8gd2hpY2ggaWdub3JlcyB0aGUg
c2NyZWVuIG51bWJlciBwYXJhbWV0ZXIuCiAgICAgcmV0dXJuIDA7CiB9CiAKLUludFJlY3QgUURl
c2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KGludCBzY3JlZW5OdW1iZXIpCitJbnRSZWN0IFFE
ZXNrdG9wV2lkZ2V0OjpzY3JlZW5HZW9tZXRyeShpbnQpCiB7CiAgICAgLy8gSWdub3JlcyB0aGUg
c2NyZWVuIG51bWJlciwgYW5kIGFsd2F5cyByZXR1cm5zIHRoZSBnZW9tZXRyeSBvZiB0aGUgbWFp
biBzY3JlZW4sCiAgICAgLy8gd2hpY2ggaXMgdGhlIHNjcmVlbiB0aGF0IHRoZSBrZXkgd2luZG93
IGlzIG9uLgogICAgIE5TUmVjdCByZWN0ID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV07
CiAgICAgcmVjdC5vcmlnaW4ueSA9IE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RB
dEluZGV4OjBdIGZyYW1lXSkgLSBOU01heFkocmVjdCk7Ci0gICAgcmV0dXJuIEludFJlY3QocmVj
dCk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QocmVjdCk7CiB9CiAKLUludFJlY3QgUURl
c2t0b3BXaWRnZXQ6OmF2YWlsYWJsZUdlb21ldHJ5KFFXaWRnZXQgKndpZGdldCkKK0ludFJlY3Qg
UURlc2t0b3BXaWRnZXQ6OmF2YWlsYWJsZUdlb21ldHJ5KFFXaWRnZXQqIHdpZGdldCkKIHsKICAg
ICBOU1NjcmVlbiAqc2NyZWVuID0gd2lkZ2V0ID8gW1t3aWRnZXQtPmdldFZpZXcoKSB3aW5kb3dd
IHNjcmVlbl0gOiBuaWw7CiAgICAgaWYgKCFzY3JlZW4pCiAgICAgICAgIHNjcmVlbiA9IFtOU1Nj
cmVlbiBtYWluU2NyZWVuXTsKICAgICBOU1JlY3QgcmVjdCA9IFtzY3JlZW4gdmlzaWJsZUZyYW1l
XTsKICAgICByZWN0Lm9yaWdpbi55ID0gTlNNYXhZKFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVj
dEF0SW5kZXg6MF0gZnJhbWVdKSAtIE5TTWF4WShyZWN0KTsKLSAgICByZXR1cm4gSW50UmVjdChy
ZWN0KTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChyZWN0KTsKIH0KIAotaW50IFFEZXNr
dG9wV2lkZ2V0OjpzY3JlZW5EZXB0aCgpIGNvbnN0CitpbnQgUURlc2t0b3BXaWRnZXQ6OnNjcmVl
bkRlcHRoKGludCkKIHsKICAgICByZXR1cm4gQ0dEaXNwbGF5Qml0c1BlclBpeGVsKGtDR0RpcmVj
dE1haW5EaXNwbGF5KTsKIH0KIAotdm9pZCBRQXBwbGljYXRpb246OnNldE92ZXJyaWRlQ3Vyc29y
KGNvbnN0IFFDdXJzb3IgJmMpCi17Ci0gICAgLy8gRklYTUU6IFNob3VsZCBpbXBsZW1lbnQgdGhp
cyBzbyB0aGF0IGZyYW1lIGJvcmRlciBkcmFnZ2luZyBoYXMgdGhlIHByb3BlciBjdXJzb3IuCiB9
Ci0KLXZvaWQgUUFwcGxpY2F0aW9uOjpyZXN0b3JlT3ZlcnJpZGVDdXJzb3IoKQotewotICAgIC8v
IEZJWE1FOiBTaG91bGQgaW1wbGVtZW50IHRoaXMgc28gdGhhdCBmcmFtZSBib3JkZXIgZHJhZ2dp
bmcgaGFzIHRoZSBwcm9wZXIgY3Vyc29yLgotfQotCi1RU3R5bGUgJlFBcHBsaWNhdGlvbjo6c3R5
bGUoKQotewotICAgIHN0YXRpYyBRU3R5bGUgc3R5bGU7Ci0gICAgcmV0dXJuIHN0eWxlOwotfQpJ
bmRleDoga3dxL0tXUVdpbmRvd1dpZGdldC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRV2luZG93
V2lkZ2V0Lm1tCShyZXZpc2lvbiAxMjQyNCkKKysrIGt3cS9LV1FXaW5kb3dXaWRnZXQubW0JKHdv
cmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDYgQEAKIHZvaWQgS1dRV2luZG93V2lkZ2V0OjpzZXRG
cmFtZUdlb21ldHJ5KGNvbnN0IEludFJlY3QgJnIpCiB7CiAgICAgLy8gRklYTUU6IENvdWxkIGRv
IHNvbWV0aGluZyB0byBtYWtlIGl0IGVhc3kgZm9yIHRoZSBicm93c2VyIHRvIGF2b2lkIHNhdmlu
ZyB0aGlzIGNoYW5nZS4KLSAgICBbZC0+YnJpZGdlIHNldFdpbmRvd0ZyYW1lOk5TTWFrZVJlY3Qo
ci54KCksIE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1l
XSkgLSAoci55KCkgKyByLmhlaWdodCgpKSwKKyAgICBbZC0+YnJpZGdlIHNldFdpbmRvd0ZyYW1l
Ok5TTWFrZVJlY3Qoci54KCksIE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdElu
ZGV4OjBdIGZyYW1lXSkgLSByLmJvdHRvbSgpLAogICAgICAgICByLndpZHRoKCksIHIuaGVpZ2h0
KCkpXTsKIH0KSW5kZXg6IGt3cS9LV1FBY2NPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tX
UUFjY09iamVjdC5tbQkocmV2aXNpb24gMTI0MjQpCisrKyBrd3EvS1dRQWNjT2JqZWN0Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01NjYsNyArNTY2LDcgQEAKIAogc3RhdGljIEludFJlY3QgYm91bmRp
bmdCb3hSZWN0KFJlbmRlck9iamVjdCogb2JqKQogewotICAgIEludFJlY3QgcmVjdCgwLDAsMCww
KTsKKyAgICBJbnRSZWN0IHJlY3Q7CiAgICAgaWYgKG9iaikgewogICAgICAgICBpZiAob2JqLT5p
c0lubGluZUNvbnRpbnVhdGlvbigpKQogICAgICAgICAgICAgb2JqID0gb2JqLT5lbGVtZW50KCkt
PnJlbmRlcmVyKCk7CkBAIC01NzYsNyArNTc2LDcgQEAKICAgICAgICAgb2JqLT5hYnNvbHV0ZVJl
Y3RzKHJlY3RzLCB4LCB5KTsKICAgICAgICAgZm9yIChRVmFsdWVMaXN0PEludFJlY3Q+OjpDb25z
dEl0ZXJhdG9yIGl0ID0gcmVjdHMuYmVnaW4oKTsgaXQgIT0gcmVjdHMuZW5kKCk7ICsraXQpIHsK
ICAgICAgICAgICAgIEludFJlY3QgciA9ICppdDsKLSAgICAgICAgICAgIGlmIChyLmlzVmFsaWQo
KSkgeworICAgICAgICAgICAgaWYgKCFyLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlm
IChvYmotPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgICAgICAgICAgICAgdGhl
bWUoKS0+YWRqdXN0UmVwYWludFJlY3Qob2JqLCByKTsKICAgICAgICAgICAgICAgICBpZiAocmVj
dC5pc0VtcHR5KCkpCkBAIC01OTMsOCArNTkzLDggQEAKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBt
X2FyZWFFbGVtZW50ID8gbV9hcmVhRWxlbWVudC0+Z2V0UmVjdChtX3JlbmRlcmVyKSA6IGJvdW5k
aW5nQm94UmVjdChtX3JlbmRlcmVyKTsKICAgICAKLSAgICAvLyBUaGUgQ29jb2EgYWNjZXNzaWJp
bGl0eSBBUEkgd2FudHMgdGhlIGxvd2VyLWxlZnQgY29ybmVyLCBub3QgdGhlIHVwcGVyLWxlZnQs
IHNvIHdlIGFkZCBpbiBvdXIgaGVpZ2h0LgotICAgIE5TUG9pbnQgcG9pbnQgPSBOU01ha2VQb2lu
dChyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKKyAgICAvLyBUaGUgQ29jb2Eg
YWNjZXNzaWJpbGl0eSBBUEkgd2FudHMgdGhlIGxvd2VyLWxlZnQgY29ybmVyLgorICAgIE5TUG9p
bnQgcG9pbnQgPSBOU01ha2VQb2ludChyZWN0LngoKSwgcmVjdC5ib3R0b20oKSk7CiAgICAgaWYg
KG1fcmVuZGVyZXIgJiYgbV9yZW5kZXJlci0+Y2FudmFzKCkgJiYgbV9yZW5kZXJlci0+Y2FudmFz
KCktPnZpZXcoKSkgewogICAgICAgICBOU1ZpZXcqIHZpZXcgPSBtX3JlbmRlcmVyLT5jYW52YXMo
KS0+dmlldygpLT5nZXREb2N1bWVudFZpZXcoKTsKICAgICAgICAgcG9pbnQgPSBbW3ZpZXcgd2lu
ZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOiBbdmlldyBjb252ZXJ0UG9pbnQ6IHBvaW50IHRvVmll
dzpuaWxdXTsKQEAgLTExMzMsNyArMTEzMyw4IEBACiAgICAgLy8gdXNlIHRoZSBTZWxlY3Rpb25D
b250cm9sbGVyIGNsYXNzIHRvIGhlbHAgY2FsY3VsYXRlIHRoZSBjb3JyZXNwb25kaW5nIHJlY3Rh
bmdsZQogICAgIEludFJlY3QgcmVjdDEgPSBTZWxlY3Rpb25Db250cm9sbGVyKHN0YXJ0VmlzaWJs
ZVBvc2l0aW9uLCBzdGFydFZpc2libGVQb3NpdGlvbikuY2FyZXRSZWN0KCk7CiAgICAgSW50UmVj
dCByZWN0MiA9IFNlbGVjdGlvbkNvbnRyb2xsZXIoZW5kVmlzaWJsZVBvc2l0aW9uLCBlbmRWaXNp
YmxlUG9zaXRpb24pLmNhcmV0UmVjdCgpOwotICAgIEludFJlY3Qgb3VycmVjdCA9IHJlY3QxLnVu
aXRlKHJlY3QyKTsKKyAgICBJbnRSZWN0IG91cnJlY3QgPSByZWN0MTsKKyAgICBvdXJyZWN0LnVu
aXRlKHJlY3QyKTsKIAogICAgIC8vIHRyeSB0byB1c2UgdGhlIGRvY3VtZW50IHZpZXcgZnJvbSB0
aGUgc2VsZWN0aW9uLCBzbyB0aGF0IG5lc3RlZCBXZWJBcmVhcyB3b3JrLAogICAgIC8vIGJ1dCBm
YWxsIGJhY2sgdG8gdGhlIHRvcCBsZXZlbCBkb2MgaWYgd2UgZG8gbm90IGZpbmQgaXQgZWFzaWx5
CkBAIC0xMTUxLDEyICsxMTUyLDEyIEBACiAgICAgLy8gaWYgdGhlIHNlbGVjdGlvbiBzcGFucyBs
aW5lcywgdGhlIHJlY3RhbmdsZSBpcyB0byBleHRlbmQKICAgICAvLyBhY3Jvc3MgdGhlIHdpZHRo
IG9mIHRoZSB2aWV3CiAgICAgaWYgKHJlY3QxLmJvdHRvbSgpICE9IHJlY3QyLmJvdHRvbSgpKSB7
Ci0gICAgICAgIG91cnJlY3Quc2V0WCgoaW50KVt2aWV3IGZyYW1lXS5vcmlnaW4ueCk7Ci0gICAg
ICAgIG91cnJlY3Quc2V0V2lkdGgoKGludClbdmlldyBmcmFtZV0uc2l6ZS53aWR0aCk7CisgICAg
ICAgIG91cnJlY3Quc2V0WChzdGF0aWNfY2FzdDxpbnQ+KFt2aWV3IGZyYW1lXS5vcmlnaW4ueCkp
OworICAgICAgICBvdXJyZWN0LnNldFdpZHRoKHN0YXRpY19jYXN0PGludD4oW3ZpZXcgZnJhbWVd
LnNpemUud2lkdGgpKTsKICAgICB9CiAgCiAgICAgLy8gY29udmVydCBvdXIgcmVjdGFuZ2xlIHRv
IHNjcmVlbiBjb29yZGluYXRlcwotICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdChvdXJyZWN0
LmxlZnQoKSwgb3VycmVjdC50b3AoKSwgb3VycmVjdC53aWR0aCgpLCBvdXJyZWN0LmhlaWdodCgp
KTsKKyAgICBOU1JlY3QgcmVjdCA9IG91cnJlY3Q7CiAgICAgcmVjdCA9IE5TT2Zmc2V0UmVjdChy
ZWN0LCAtZG9jVmlldy0+Y29udGVudHNYKCksIC1kb2NWaWV3LT5jb250ZW50c1koKSk7CiAgICAg
cmVjdCA9IFt2aWV3IGNvbnZlcnRSZWN0OnJlY3QgdG9WaWV3Om5pbF07CiAgICAgcmVjdC5vcmln
aW4gPSBbW3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnJlY3Qub3JpZ2luXTsKSW5k
ZXg6IGt3cS9LV1FSZWdpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FSZWdpb24uY3BwCShy
ZXZpc2lvbiAxMjQyNCkKKysrIGt3cS9LV1FSZWdpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
OCw1ICs4OCw1IEBACiAKIEludFJlY3QgUVJlZ2lvbjo6Ym91bmRpbmdSZWN0KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gcGF0aCA/IEludFJlY3QoQ0dQYXRoR2V0Qm91bmRpbmdCb3gocGF0aCkpIDog
SW50UmVjdCgpOworICAgIHJldHVybiBwYXRoID8gZW5jbG9zaW5nSW50UmVjdChDR1BhdGhHZXRC
b3VuZGluZ0JveChwYXRoKSkgOiBJbnRSZWN0KCk7CiB9CkluZGV4OiBrd3EvS1dRS1dpbk1vZHVs
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRS1dpbk1vZHVsZS5tbQkocmV2aXNpb24gMTI0MjQp
CisrKyBrd3EvS1dRS1dpbk1vZHVsZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNSArMzIsNSBA
QAogICAgIC8vIE5vIG5lZWQgdG8gYmxvY2sgZXhjZXB0aW9ucyBiZWNhdXNlIHRoZXNlIHNpbXBs
ZSBOU1NjcmVlbiBjYWxscyBuZXZlciB0aHJvdy4KICAgICBOU1JlY3QgcmVjdCA9IFtbTlNTY3Jl
ZW4gbWFpblNjcmVlbl0gdmlzaWJsZUZyYW1lXTsKICAgICByZWN0Lm9yaWdpbi55ID0gTlNNYXhZ
KFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIE5TTWF4WShy
ZWN0KTsKLSAgICByZXR1cm4gSW50UmVjdChyZWN0KTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50
UmVjdChyZWN0KTsKIH0KSW5kZXg6IGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGt3
cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsMTEgKzMxNCwx
MSBAQAogICAgIHRzIDw8ICJsYXllciI7CiAgICAgdHMgPDwgIiAiIDw8IGxheWVyQm91bmRzOwog
Ci0gICAgaWYgKGxheWVyQm91bmRzICE9IGxheWVyQm91bmRzLmludGVyc2VjdChiYWNrZ3JvdW5k
Q2xpcFJlY3QpKQorICAgIGlmICghYmFja2dyb3VuZENsaXBSZWN0LmNvbnRhaW5zKGxheWVyQm91
bmRzKSkKICAgICAgICAgdHMgPDwgIiBiYWNrZ3JvdW5kQ2xpcCAiIDw8IGJhY2tncm91bmRDbGlw
UmVjdDsKLSAgICBpZiAobGF5ZXJCb3VuZHMgIT0gbGF5ZXJCb3VuZHMuaW50ZXJzZWN0KGNsaXBS
ZWN0KSkKKyAgICBpZiAoIWNsaXBSZWN0LmNvbnRhaW5zKGxheWVyQm91bmRzKSkKICAgICAgICAg
dHMgPDwgIiBjbGlwICIgPDwgY2xpcFJlY3Q7Ci0gICAgaWYgKGxheWVyQm91bmRzICE9IGxheWVy
Qm91bmRzLmludGVyc2VjdChvdXRsaW5lQ2xpcFJlY3QpKQorICAgIGlmICghb3V0bGluZUNsaXBS
ZWN0LmNvbnRhaW5zKGxheWVyQm91bmRzKSkKICAgICAgICAgdHMgPDwgIiBvdXRsaW5lQ2xpcCAi
IDw8IG91dGxpbmVDbGlwUmVjdDsKIAogICAgIGlmIChsLnJlbmRlcmVyKCktPmhhc092ZXJmbG93
Q2xpcCgpKSB7CkluZGV4OiBrd3EvS1dRQXBwbGljYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3Ev
S1dRQXBwbGljYXRpb24uaAkocmV2aXNpb24gMTI0MjQpCisrKyBrd3EvS1dRQXBwbGljYXRpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDMxICsyNiwyMCBAQAog
I2lmbmRlZiBRQVBQTElDQVRJT05fSF8KICNkZWZpbmUgUUFQUExJQ0FUSU9OX0hfCiAKLSNpbmNs
dWRlICJLV1FQYWxldHRlLmgiCi0jaW5jbHVkZSAiS1dRV2lkZ2V0LmgiCitjbGFzcyBRV2lkZ2V0
OwogCi1jbGFzcyBRRGVza3RvcFdpZGdldDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
UUFwcGxpY2F0aW9uIDogcHVibGljIFFPYmplY3QgewotcHVibGljOgotICAgIHN0YXRpYyBRRGVz
a3RvcFdpZGdldCAqZGVza3RvcCgpIHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgdm9pZCBzZXRP
dmVycmlkZUN1cnNvcihjb25zdCBRQ3Vyc29yICYpOwotICAgIHN0YXRpYyB2b2lkIHJlc3RvcmVP
dmVycmlkZUN1cnNvcigpOwotICAgIHN0YXRpYyBib29sIHNlbmRFdmVudChRT2JqZWN0ICpvLCBR
RXZlbnQgKmUpIHsgcmV0dXJuIG8tPmV2ZW50KGUpOyB9Ci0gICAgc3RhdGljIFFTdHlsZSAmc3R5
bGUoKTsKLSAgICBzdGF0aWMgUVBhbGV0dGUgcGFsZXR0ZSgpIHsgcmV0dXJuIFFQYWxldHRlKCk7
IH0KLX07CitjbGFzcyBJbnRSZWN0OwogCi1RQXBwbGljYXRpb24gKiBjb25zdCBxQXBwID0gMDsK
LQotY2xhc3MgUURlc2t0b3BXaWRnZXQgOiBwdWJsaWMgUVdpZGdldCB7CitjbGFzcyBRRGVza3Rv
cFdpZGdldCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGludCBzY3JlZW5OdW1iZXIoUVdpZGdldCAq
KTsKKyAgICBzdGF0aWMgaW50IHNjcmVlbk51bWJlcihRV2lkZ2V0Kik7CiAgICAgc3RhdGljIElu
dFJlY3Qgc2NyZWVuR2VvbWV0cnkoaW50IHNjcmVlbk51bWJlcik7Ci0gICAgaW50IHNjcmVlbkRl
cHRoKCkgY29uc3Q7IC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgYWx3YXlzIGFzc3VtZSBtYWluIGRp
c3BsYXkgaGVyZT8gVGhhdCdzIGhvdyBpdCB1c2VkIHRvIHdvcmsgaW4gUVBhaW50RGV2aWNlTWV0
cmljcy4KLSAgICBzdGF0aWMgSW50UmVjdCBhdmFpbGFibGVHZW9tZXRyeShRV2lkZ2V0ICopOwot
ICAgIHN0YXRpYyBpbnQgd2lkdGgoKTsKLSAgICBzdGF0aWMgaW50IGhlaWdodCgpOworICAgIHN0
YXRpYyBpbnQgc2NyZWVuRGVwdGgoaW50IHNjcmVlbk51bWJlcik7CisgICAgc3RhdGljIEludFJl
Y3QgYXZhaWxhYmxlR2VvbWV0cnkoUVdpZGdldCopOwogfTsKIAorfQorCiAjZW5kaWYKSW5kZXg6
IGt3cS9LV1FXaWRnZXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdpZGdldC5tbQkocmV2aXNp
b24gMTI0MjQpCisrKyBrd3EvS1dRV2lkZ2V0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsMjIg
KzEzOCwyMiBAQAogCiBpbnQgUVdpZGdldDo6eCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1l
R2VvbWV0cnkoKS50b3BMZWZ0KCkueCgpOworICAgIHJldHVybiBmcmFtZUdlb21ldHJ5KCkueCgp
OwogfQogCiBpbnQgUVdpZGdldDo6eSgpIGNvbnN0IAogewotICAgIHJldHVybiBmcmFtZUdlb21l
dHJ5KCkudG9wTGVmdCgpLnkoKTsKKyAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgpLnkoKTsKIH0K
IAogaW50IFFXaWRnZXQ6OndpZHRoKCkgY29uc3QgCiB7IAotICAgIHJldHVybiBmcmFtZUdlb21l
dHJ5KCkuc2l6ZSgpLndpZHRoKCk7CisgICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS53aWR0aCgp
OwogfQogCiBpbnQgUVdpZGdldDo6aGVpZ2h0KCkgY29uc3QgCiB7Ci0gICAgcmV0dXJuIGZyYW1l
R2VvbWV0cnkoKS5zaXplKCkuaGVpZ2h0KCk7CisgICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS5o
ZWlnaHQoKTsKIH0KIAogSW50U2l6ZSBRV2lkZ2V0OjpzaXplKCkgY29uc3QgCkBAIC0xNjgsNyAr
MTY4LDcgQEAKIAogSW50UG9pbnQgUVdpZGdldDo6cG9zKCkgY29uc3QgCiB7Ci0gICAgcmV0dXJu
IGZyYW1lR2VvbWV0cnkoKS50b3BMZWZ0KCk7CisgICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS5s
b2NhdGlvbigpOwogfQogCiB2b2lkIFFXaWRnZXQ6Om1vdmUoaW50IHgsIGludCB5KSAKQEAgLTE4
MywxMCArMTgzLDggQEAKIAogSW50UmVjdCBRV2lkZ2V0OjpmcmFtZUdlb21ldHJ5KCkgY29uc3QK
IHsKLSAgICBJbnRSZWN0IHJlY3Q7CiAgICAgS1dRX0JMT0NLX0VYQ0VQVElPTlM7Ci0gICAgcmVj
dCA9IEludFJlY3QoW2dldE91dGVyVmlldygpIGZyYW1lXSk7Ci0gICAgcmV0dXJuIHJlY3Q7Cisg
ICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW2dldE91dGVyVmlldygpIGZyYW1lXSk7CiAgICAg
S1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQpJbmRleDog
a3dxL0tXUUZvbnRNZXRyaWNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FGb250TWV0cmljcy5t
bQkocmV2aXNpb24gMTI0MjQpCisrKyBrd3EvS1dRRm9udE1ldHJpY3MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI1NCw3ICsyNTQsNyBAQAogICAgIGdlb21ldHJ5LnNlbGVjdGlvblkgPSB5OwogICAg
IGdlb21ldHJ5LnNlbGVjdGlvbkhlaWdodCA9IGg7CiAgICAgZ2VvbWV0cnkudXNlRm9udE1ldHJp
Y3NGb3JTZWxlY3Rpb25ZQW5kSGVpZ2h0ID0gZmFsc2U7Ci0gICAgcmV0dXJuIEludFJlY3QoW2Rh
dGEtPmdldFJlbmRlcmVyKCkgc2VsZWN0aW9uUmVjdEZvclJ1bjomcnVuIHN0eWxlOiZzdHlsZSBn
ZW9tZXRyeTomZ2VvbWV0cnldKTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbZGF0YS0+
Z2V0UmVuZGVyZXIoKSBzZWxlY3Rpb25SZWN0Rm9yUnVuOiZydW4gc3R5bGU6JnN0eWxlIGdlb21l
dHJ5OiZnZW9tZXRyeV0pOwogfQogCiBpbnQgUUZvbnRNZXRyaWNzOjpjaGVja1NlbGVjdGlvblBv
aW50KFFDaGFyICpzLCBpbnQgc2xlbiwgaW50IHBvcywgaW50IGxlbiwgaW50IHRvQWRkLCBpbnQg
dGFiV2lkdGgsIGludCB4cG9zLCBpbnQgbGV0dGVyU3BhY2luZywgaW50IHdvcmRTcGFjaW5nLCBi
b29sIHNtYWxsQ2FwcywgaW50IHgsIGJvb2wgcmV2ZXJzZWQsIGJvb2wgZGlyT3ZlcnJpZGUsIGJv
b2wgaW5jbHVkZVBhcnRpYWxHbHlwaHMpIGNvbnN0CkBAIC0yOTcsNyArMjk3LDcgQEAKIEludFJl
Y3QgUUZvbnRNZXRyaWNzOjpib3VuZGluZ1JlY3QoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIGludCBmbGFncywgY29uc3QgUVN0cmluZyAmc3RyLCBpbnQgdGFiV2lkdGgsIGlu
dCB4cG9zKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBuZWVkIHRvIHN1cHBvcnQgd29yZCB3cmFw
cGluZz8KLSAgICByZXR1cm4gSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KS5pbnRlcnNlY3Qo
Ym91bmRpbmdSZWN0KHN0ciwgdGFiV2lkdGgsIHhwb3MpKTsKKyAgICByZXR1cm4gaW50ZXJzZWN0
aW9uKEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCksIGJvdW5kaW5nUmVjdChzdHIsIHRhYldp
ZHRoLCB4cG9zKSk7CiB9CiAKIEludFNpemUgUUZvbnRNZXRyaWNzOjpzaXplKGludCwgY29uc3Qg
UVN0cmluZyAmcXN0cmluZywgaW50IHRhYldpZHRoLCBpbnQgeHBvcykgY29uc3QKSW5kZXg6IGt3
cS9LV1FQYWludGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVBhaW50ZXIuaAkocmV2aXNpb24g
MTI0MjQpCisrKyBrd3EvS1dRUGFpbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxOCArMjYs
MTUgQEAKICNpZm5kZWYgUVBBSU5URVJfSF8KICNkZWZpbmUgUVBBSU5URVJfSF8KIAotI2luY2x1
ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiUGVuLmgiCiAjaW5jbHVkZSAiQnJ1c2guaCIKLSNpbmNs
dWRlICJLV1FGb250TWV0cmljcy5oIgotI2luY2x1ZGUgIktXUU5hbWVzcGFjZS5oIgotI2luY2x1
ZGUgIkludFJlY3QuaCIKIAogI2lmIF9fQVBQTEVfXwogI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2Vy
dmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2VuZGlmCiAKIGNsYXNzIFFGb250OworY2xh
c3MgUUZvbnRNZXRyaWNzOwogY2xhc3MgUVN0cmluZzsKIGNsYXNzIFFXaWRnZXQ7CiAKQEAgLTQ5
LDYgKzQ2LDEwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlOworY2xhc3Mg
SW50UG9pbnQ7CitjbGFzcyBJbnRQb2ludEFycmF5OworY2xhc3MgSW50UmVjdDsKK2NsYXNzIElu
dFNpemU7CiBjbGFzcyBRUGFpbnRlclByaXZhdGU7CiAKIGNsYXNzIFFQYWludGVyIDogcHVibGlj
IFF0IHsKQEAgLTYwLDIxICs2MSwyMSBAQAogICAgIFFQYWludGVyKGJvb2wgZm9yUHJpbnRpbmcp
OwogICAgIH5RUGFpbnRlcigpOwogICAgCi0gICAgY29uc3QgUUZvbnQgJmZvbnQoKSBjb25zdDsK
LSAgICB2b2lkIHNldEZvbnQoY29uc3QgUUZvbnQgJik7CisgICAgY29uc3QgUUZvbnQmIGZvbnQo
KSBjb25zdDsKKyAgICB2b2lkIHNldEZvbnQoY29uc3QgUUZvbnQmKTsKICAgICBRRm9udE1ldHJp
Y3MgZm9udE1ldHJpY3MoKSBjb25zdDsKICAgICAKLSAgICBjb25zdCBQZW4gJnBlbigpIGNvbnN0
OwotICAgIHZvaWQgc2V0UGVuKGNvbnN0IFBlbiAmKTsKKyAgICBjb25zdCBQZW4mIHBlbigpIGNv
bnN0OworICAgIHZvaWQgc2V0UGVuKGNvbnN0IFBlbiYpOwogICAgIHZvaWQgc2V0UGVuKFBlbjo6
UGVuU3R5bGUpOwogICAgIHZvaWQgc2V0UGVuKFJHQkEzMik7CiAgICAgCi0gICAgY29uc3QgV2Vi
Q29yZTo6QnJ1c2ggJlFQYWludGVyOjpicnVzaCgpIGNvbnN0OwotICAgIHZvaWQgc2V0QnJ1c2go
Y29uc3QgV2ViQ29yZTo6QnJ1c2ggJik7Ci0gICAgdm9pZCBzZXRCcnVzaChXZWJDb3JlOjpCcnVz
aDo6QnJ1c2hTdHlsZSk7CisgICAgY29uc3QgQnJ1c2gmIGJydXNoKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRCcnVzaChjb25zdCBCcnVzaCYpOworICAgIHZvaWQgc2V0QnJ1c2goQnJ1c2g6OkJydXNo
U3R5bGUpOwogICAgIHZvaWQgc2V0QnJ1c2goUkdCQTMyKTsKIAotICAgIEludFJlY3QgeEZvcm0o
Y29uc3QgSW50UmVjdCAmKSBjb25zdDsKKyAgICBJbnRSZWN0IHhGb3JtKGNvbnN0IEludFJlY3Qm
KSBjb25zdDsKIAogICAgIHZvaWQgc2F2ZSgpOwogICAgIHZvaWQgcmVzdG9yZSgpOwpAQCAtODMs
NTAgKzg0LDUxIEBACiAgICAgdm9pZCBkcmF3TGluZShpbnQsIGludCwgaW50LCBpbnQpOwogICAg
IHZvaWQgZHJhd0VsbGlwc2UoaW50LCBpbnQsIGludCwgaW50KTsKICAgICB2b2lkIGRyYXdBcmMo
aW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCk7Ci0gICAgdm9pZCBkcmF3Q29udmV4UG9seWdv
bihjb25zdCBJbnRQb2ludEFycmF5ICYpOworICAgIHZvaWQgZHJhd0NvbnZleFBvbHlnb24oY29u
c3QgSW50UG9pbnRBcnJheSYpOwogCi0gICAgdm9pZCBmaWxsUmVjdChpbnQsIGludCwgaW50LCBp
bnQsIGNvbnN0IFdlYkNvcmU6OkJydXNoICYpOwotICAgIHZvaWQgZmlsbFJlY3QoY29uc3QgSW50
UmVjdCAmLCBjb25zdCBXZWJDb3JlOjpCcnVzaCAmKTsKKyAgICB2b2lkIGZpbGxSZWN0KGludCwg
aW50LCBpbnQsIGludCwgY29uc3QgQnJ1c2gmKTsKKyAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IElu
dFJlY3QmLCBjb25zdCBCcnVzaCYpOwogCi0gICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW50UG9p
bnQgJiwgY29uc3QgSW1hZ2UgJik7Ci0gICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW50UG9pbnQg
JiwgY29uc3QgSW1hZ2UgJiwgY29uc3QgSW50UmVjdCAmKTsKLSAgICB2b2lkIGRyYXdJbWFnZShj
b25zdCBJbnRQb2ludCAmLCBjb25zdCBJbWFnZSAmLCBjb25zdCBJbnRSZWN0ICYsIGNvbnN0IFFT
dHJpbmcgJik7CisgICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbWFn
ZSYpOworICAgIHZvaWQgZHJhd0ltYWdlKGNvbnN0IEludFBvaW50JiwgY29uc3QgSW1hZ2UmLCBj
b25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW50UG9pbnQmLCBjb25z
dCBJbWFnZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBRU3RyaW5nJik7CiAjaWYgX19BUFBMRV9f
Ci0gICAgdm9pZCBkcmF3SW1hZ2UoIGludCB4LCBpbnQgeSwgY29uc3QgSW1hZ2UgJiwKLSAgICAg
ICAgICAgICAgICAgICAgIGludCBzeD0wLCBpbnQgc3k9MCwgaW50IHN3PS0xLCBpbnQgc2g9LTEs
IGludCBjb21wb3NpdGVPcGVyYXRvcj0tMSwgQ0dDb250ZXh0UmVmIGNvbnRleHQ9MCk7Ci0gICAg
dm9pZCBkcmF3SW1hZ2UoIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLCBjb25zdCBJbWFnZSAm
LAotICAgICAgICAgICAgICAgICAgICAgIGludCBzeD0wLCBpbnQgc3k9MCwgaW50IHN3PS0xLCBp
bnQgc2g9LTEsIGludCBjb21wb3NpdGVPcGVyYXRvcj0tMSwgQ0dDb250ZXh0UmVmIGNvbnRleHQ9
MCk7Ci0gICAgdm9pZCBkcmF3RmxvYXRJbWFnZSggZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgdywg
ZmxvYXQgaCwgY29uc3QgSW1hZ2UgJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg
c3g9MCwgZmxvYXQgc3k9MCwgZmxvYXQgc3c9LTEsIGZsb2F0IHNoPS0xLCBpbnQgY29tcG9zaXRl
T3BlcmF0b3I9LTEsIENHQ29udGV4dFJlZiBjb250ZXh0PTApOwotICAgIHZvaWQgZHJhd1RpbGVk
SW1hZ2UoaW50LCBpbnQsIGludCwgaW50LCBjb25zdCBJbWFnZSAmLCBpbnQgc3g9MCwgaW50IHN5
PTAsIENHQ29udGV4dFJlZiBjb250ZXh0PTApOwotICAgIHZvaWQgZHJhd1NjYWxlZEFuZFRpbGVk
SW1hZ2UoaW50LCBpbnQsIGludCwgaW50LCBjb25zdCBJbWFnZSAmLCBpbnQsIGludCwgaW50LCBp
bnQsIFRpbGVSdWxlIGhSdWxlID0gU1RSRVRDSCwgVGlsZVJ1bGUgdlJ1bGUgPSBTVFJFVENILAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjb250ZXh0PTAp
OworICAgIHZvaWQgZHJhd0ltYWdlKGludCB4LCBpbnQgeSwgY29uc3QgSW1hZ2UmLAorICAgICAg
ICBpbnQgc3ggPSAwLCBpbnQgc3kgPSAwLCBpbnQgc3cgPSAtMSwgaW50IHNoID0gLTEsIGludCBj
b21wb3NpdGVPcGVyYXRvciA9IC0xLCBDR0NvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lkIGRyYXdJ
bWFnZShpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwgY29uc3QgSW1hZ2UmLAorICAgICAgICBp
bnQgc3ggPSAwLCBpbnQgc3kgPSAwLCBpbnQgc3cgPSAtMSwgaW50IHNoID0gLTEsIGludCBjb21w
b3NpdGVPcGVyYXRvciA9IC0xLCBDR0NvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lkIGRyYXdGbG9h
dEltYWdlKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHcsIGZsb2F0IGgsIGNvbnN0IEltYWdlJiwK
KyAgICAgICAgZmxvYXQgc3ggPSAwLCBmbG9hdCBzeSA9IDAsIGZsb2F0IHN3ID0gLTEsIGZsb2F0
IHNoID0gLTEsIGludCBjb21wb3NpdGVPcGVyYXRvciA9IC0xLCBDR0NvbnRleHRSZWYgPSAwKTsK
KyAgICB2b2lkIGRyYXdUaWxlZEltYWdlKGludCwgaW50LCBpbnQsIGludCwgY29uc3QgSW1hZ2Um
LCBpbnQgc3ggPSAwLCBpbnQgc3kgPSAwLCBDR0NvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lkIGRy
YXdTY2FsZWRBbmRUaWxlZEltYWdlKGludCwgaW50LCBpbnQsIGludCwgY29uc3QgSW1hZ2UmLCBp
bnQsIGludCwgaW50LCBpbnQsCisgICAgICAgIFRpbGVSdWxlIGhSdWxlID0gU1RSRVRDSCwgVGls
ZVJ1bGUgdlJ1bGUgPSBTVFJFVENILCBDR0NvbnRleHRSZWYgPSAwKTsKICNlbHNlCi0gICAgdm9p
ZCBkcmF3SW1hZ2UoIGludCB4LCBpbnQgeSwgY29uc3QgSW1hZ2UgJiwKLSAgICAgICAgICAgICAg
ICAgICAgIGludCBzeD0wLCBpbnQgc3k9MCwgaW50IHN3PS0xLCBpbnQgc2g9LTEsIGludCBjb21w
b3NpdGVPcGVyYXRvcj0tMSk7Ci0gICAgdm9pZCBkcmF3SW1hZ2UoIGludCB4LCBpbnQgeSwgaW50
IHcsIGludCBoLCBjb25zdCBJbWFnZSAmLAotICAgICAgICAgICAgICAgICAgICAgaW50IHN4PTAs
IGludCBzeT0wLCBpbnQgc3c9LTEsIGludCBzaD0tMSwgaW50IGNvbXBvc2l0ZU9wZXJhdG9yPS0x
KTsKLSAgICB2b2lkIGRyYXdGbG9hdEltYWdlKCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3LCBm
bG9hdCBoLCBjb25zdCBJbWFnZSAmLAotICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBz
eD0wLCBmbG9hdCBzeT0wLCBmbG9hdCBzdz0tMSwgZmxvYXQgc2g9LTEsIGludCBjb21wb3NpdGVP
cGVyYXRvcj0tMSk7Ci0gICAgdm9pZCBkcmF3VGlsZWRJbWFnZShpbnQsIGludCwgaW50LCBpbnQs
IGNvbnN0IEltYWdlICYsIGludCBzeD0wLCBpbnQgc3k9MCk7Ci0gICAgdm9pZCBkcmF3U2NhbGVk
QW5kVGlsZWRJbWFnZShpbnQsIGludCwgaW50LCBpbnQsIGNvbnN0IEltYWdlICYsIGludCwgaW50
LCBpbnQsIGludCwgVGlsZVJ1bGUgaFJ1bGUgPSBTVFJFVENILCBUaWxlUnVsZSB2UnVsZSA9IFNU
UkVUQ0gpOworICAgIHZvaWQgZHJhd0ltYWdlKGludCB4LCBpbnQgeSwgY29uc3QgSW1hZ2UmLAor
ICAgICAgICBpbnQgc3ggPSAwLCBpbnQgc3kgPSAwLCBpbnQgc3cgPSAtMSwgaW50IHNoID0gLTEs
IGludCBjb21wb3NpdGVPcGVyYXRvciA9IC0xKTsKKyAgICB2b2lkIGRyYXdJbWFnZShpbnQgeCwg
aW50IHksIGludCB3LCBpbnQgaCwgY29uc3QgSW1hZ2UmLAorICAgICAgICBpbnQgc3ggPSAwLCBp
bnQgc3kgPSAwLCBpbnQgc3cgPSAtMSwgaW50IHNoID0gLTEsIGludCBjb21wb3NpdGVPcGVyYXRv
ciA9IC0xKTsKKyAgICB2b2lkIGRyYXdGbG9hdEltYWdlKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHcsIGZsb2F0IGgsIGNvbnN0IEltYWdlJiwKKyAgICAgICAgZmxvYXQgc3ggPSAwLCBmbG9hdCBz
eSA9IDAsIGZsb2F0IHN3ID0gLTEsIGZsb2F0IHNoID0gLTEsIGludCBjb21wb3NpdGVPcGVyYXRv
ciA9IC0xKTsKKyAgICB2b2lkIGRyYXdUaWxlZEltYWdlKGludCwgaW50LCBpbnQsIGludCwgY29u
c3QgSW1hZ2UmLCBpbnQgc3ggPSAwLCBpbnQgc3kgPSAwKTsKKyAgICB2b2lkIGRyYXdTY2FsZWRB
bmRUaWxlZEltYWdlKGludCwgaW50LCBpbnQsIGludCwgY29uc3QgSW1hZ2UmLCBpbnQsIGludCwg
aW50LCBpbnQsCisgICAgICAgIFRpbGVSdWxlIGhSdWxlID0gU1RSRVRDSCwgVGlsZVJ1bGUgdlJ1
bGUgPSBTVFJFVENIKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDbGlwKGNvbnN0IEludFJlY3Qg
Jik7Ci0gICAgdm9pZCBhZGRSb3VuZGVkUmVjdENsaXAoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6
ZSYgYm90dG9tUmlnaHQpOworICAgIHZvaWQgYWRkQ2xpcChjb25zdCBJbnRSZWN0Jik7CisgICAg
dm9pZCBhZGRSb3VuZGVkUmVjdENsaXAoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmIHRv
cExlZnQsIGNvbnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0
LCBjb25zdCBJbnRTaXplJiBib3R0b21SaWdodCk7CiAKICAgICBSYXN0ZXJPcCByYXN0ZXJPcCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0UmFzdGVyT3AoUmFzdGVyT3ApOwogCi0gICAgdm9pZCBkcmF3
VGV4dChpbnQgeCwgaW50IHksIGludCB0YWJXaWR0aCwgaW50IHhwb3MsIGludCwgaW50LCBpbnQg
YWxpZ25tZW50RmxhZ3MsIGNvbnN0IFFTdHJpbmcgJik7CisgICAgdm9pZCBkcmF3VGV4dChpbnQg
eCwgaW50IHksIGludCB0YWJXaWR0aCwgaW50IHhwb3MsIGludCwgaW50LCBpbnQgYWxpZ25tZW50
RmxhZ3MsIGNvbnN0IFFTdHJpbmcmKTsKICAgICB2b2lkIGRyYXdIaWdobGlnaHRGb3JUZXh0KGlu
dCB4LCBpbnQgeSwgaW50IGgsIGludCB0YWJXaWR0aCwgaW50IHhwb3MsCi0gICAgICAgICAgICAg
ICAgICBjb25zdCBRQ2hhciAqLCBpbnQgbGVuZ3RoLCBpbnQgZnJvbSwgaW50IHRvLCBpbnQgdG9B
ZGQsCi0gICAgICAgICAgICAgICAgICBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yLCBRUGFp
bnRlcjo6VGV4dERpcmVjdGlvbiBkLCBib29sIHZpc3VhbGx5T3JkZXJlZCwKLSAgICAgICAgICAg
ICAgICAgIGludCBsZXR0ZXJTcGFjaW5nLCBpbnQgd29yZFNwYWNpbmcsIGJvb2wgc21hbGxDYXBz
KTsKLSAgICB2b2lkIGRyYXdUZXh0KGludCB4LCBpbnQgeSwgaW50IHRhYldpZHRoLCBpbnQgeHBv
cywgY29uc3QgUUNoYXIgKiwgaW50IGxlbmd0aCwgaW50IGZyb20sIGludCB0bywgaW50IHRvQWRk
LAotICAgICAgICAgICAgICAgICAgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvciwgUVBhaW50
ZXI6OlRleHREaXJlY3Rpb24gZCwgYm9vbCB2aXN1YWxseU9yZGVyZWQsCi0gICAgICAgICAgICAg
ICAgICBpbnQgbGV0dGVyU3BhY2luZywgaW50IHdvcmRTcGFjaW5nLCBib29sIHNtYWxsQ2Fwcyk7
CisgICAgICAgIGNvbnN0IFFDaGFyKiwgaW50IGxlbmd0aCwgaW50IGZyb20sIGludCB0bywgaW50
IHRvQWRkLAorICAgICAgICBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yLCBUZXh0RGlyZWN0
aW9uLCBib29sIHZpc3VhbGx5T3JkZXJlZCwKKyAgICAgICAgaW50IGxldHRlclNwYWNpbmcsIGlu
dCB3b3JkU3BhY2luZywgYm9vbCBzbWFsbENhcHMpOworICAgIHZvaWQgZHJhd1RleHQoaW50IHgs
IGludCB5LCBpbnQgdGFiV2lkdGgsIGludCB4cG9zLAorICAgICAgICBjb25zdCBRQ2hhciosIGlu
dCBsZW5ndGgsIGludCBmcm9tLCBpbnQgdG8sIGludCB0b0FkZCwKKyAgICAgICAgY29uc3QgQ29s
b3ImIGJhY2tncm91bmRDb2xvciwgVGV4dERpcmVjdGlvbiwgYm9vbCB2aXN1YWxseU9yZGVyZWQs
CisgICAgICAgIGludCBsZXR0ZXJTcGFjaW5nLCBpbnQgd29yZFNwYWNpbmcsIGJvb2wgc21hbGxD
YXBzKTsKICAgICB2b2lkIGRyYXdMaW5lRm9yVGV4dChpbnQgeCwgaW50IHksIGludCB5T2Zmc2V0
LCBpbnQgd2lkdGgpOwogICAgIHZvaWQgZHJhd0xpbmVGb3JNaXNzcGVsbGluZyhpbnQgeCwgaW50
IHksIGludCB3aWR0aCk7CiAgICAgaW50IG1pc3NwZWxsaW5nTGluZVRoaWNrbmVzcygpIGNvbnN0
OwpAQCAtMTQzLDQzICsxNDUsNDEgQEAKICAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
ZmxvYXQgb3BhY2l0eSk7CiAgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOwogCi0gICAg
dm9pZCBzZXRTaGFkb3coaW50IHgsIGludCB5LCBpbnQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9y
KTsKKyAgICB2b2lkIHNldFNoYWRvdyhpbnQgeCwgaW50IHksIGludCBibHVyLCBjb25zdCBDb2xv
ciYpOwogICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKIAogICAgIHZvaWQgaW5pdEZvY3VzUmluZyhp
bnQgd2lkdGgsIGludCBvZmZzZXQpOwotICAgIHZvaWQgaW5pdEZvY3VzUmluZyhpbnQgd2lkdGgs
IGludCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcik7CisgICAgdm9pZCBpbml0Rm9jdXNSaW5n
KGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKICAgICB2b2lkIGFkZEZvY3Vz
UmluZ1JlY3QoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogICAgIHZvaWQg
ZHJhd0ZvY3VzUmluZygpOwogICAgIHZvaWQgY2xlYXJGb2N1c1JpbmcoKTsKICAgICAKICNpZiBf
X0FQUExFX18KICAgICBDR0NvbnRleHRSZWYgY3VycmVudENvbnRleHQoKTsKKworICAgIHN0YXRp
YyBpbnQgY29tcG9zaXRlT3BlcmF0b3JGcm9tU3RyaW5nKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBz
dGF0aWMgaW50IGdldENvbXBvc2l0ZU9wZXJhdGlvbihDR0NvbnRleHRSZWYpOworICAgIHN0YXRp
YyB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbihDR0NvbnRleHRSZWYsIGNvbnN0IFFTdHJpbmcg
Jm9wZXJhdGlvbik7CisgICAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENHQ29u
dGV4dFJlZiwgaW50IG9wZXJhdGlvbik7CiAjZW5kaWYKIAogI2lmIFNWR19TVVBQT1JUCi0gICAg
S1JlbmRlcmluZ0RldmljZUNvbnRleHQgKmNyZWF0ZVJlbmRlcmluZ0RldmljZUNvbnRleHQoKTsK
LSAgICBzdGF0aWMgS1JlbmRlcmluZ0RldmljZSAqcmVuZGVyaW5nRGV2aWNlKCk7CisgICAgS1Jl
bmRlcmluZ0RldmljZUNvbnRleHQqIGNyZWF0ZVJlbmRlcmluZ0RldmljZUNvbnRleHQoKTsKKyAg
ICBzdGF0aWMgS1JlbmRlcmluZ0RldmljZSogcmVuZGVyaW5nRGV2aWNlKCk7CiAjZW5kaWYKICAg
ICAKLSNpZiBfX0FQUExFX18KLSAgICBzdGF0aWMgaW50IGNvbXBvc2l0ZU9wZXJhdG9yRnJvbVN0
cmluZyAoY29uc3QgUVN0cmluZyAmYVN0cmluZyk7Ci0gICAgc3RhdGljIGludCBnZXRDb21wb3Np
dGVPcGVyYXRpb24oQ0dDb250ZXh0UmVmIGNvbnRleHQpOwotICAgIHN0YXRpYyB2b2lkIHNldENv
bXBvc2l0ZU9wZXJhdGlvbiAoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFFTdHJpbmcgJm9w
ZXJhdGlvbik7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9uIChDR0NvbnRl
eHRSZWYgY29udGV4dCwgaW50IG9wZXJhdGlvbik7Ci0jZW5kaWYKLQogICAgIGJvb2wgcHJpbnRp
bmcoKSBjb25zdCB7IHJldHVybiBfaXNGb3JQcmludGluZzsgfQogCiBwcml2YXRlOgogICAgIC8v
IG5vIGNvcHlpbmcgb3IgYXNzaWdubWVudAotICAgIFFQYWludGVyKGNvbnN0IFFQYWludGVyICYp
OwotICAgIFFQYWludGVyICZvcGVyYXRvcj0oY29uc3QgUVBhaW50ZXIgJik7CisgICAgUVBhaW50
ZXIoY29uc3QgUVBhaW50ZXImKTsKKyAgICBRUGFpbnRlciYgb3BlcmF0b3I9KGNvbnN0IFFQYWlu
dGVyJik7CiAKICAgICB2b2lkIF9zZXRDb2xvckZyb21CcnVzaCgpOwogICAgIHZvaWQgX3NldENv
bG9yRnJvbVBlbigpOwogCi0gICAgdm9pZCBfZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgdywgZmxvYXQgaCwgY29uc3QgQ29sb3ImIGNvbG9yKTsKLSAgICAKKyAgICB2b2lkIF9maWxs
UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3LCBmbG9hdCBoLCBjb25zdCBDb2xvciYpOwor
CiAgICAgdm9pZCBfdXBkYXRlUmVuZGVyZXIoKTsKIAogICAgIFFQYWludGVyUHJpdmF0ZSAqZGF0
YTsKSW5kZXg6IGt3cS9LV1FXTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRV01hdHJp
eC5jcHAJKHJldmlzaW9uIDEyNDI0KQorKysga3dxL0tXUVdNYXRyaXguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiS1dRV01hdHJpeC5oIgotCi0jaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
Ci0KLXN0YXRpYyBjb25zdCBkb3VibGUgZGVnMnJhZCA9IDAuMDE3NDUzMjkyNTE5OTQzMjk1NzY5
OyAvLyBwaS8xODAKLQotUU1hdHJpeDo6UU1hdHJpeCgpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OwotfQotCi1RTWF0cml4OjpRTWF0cml4KGRvdWJsZSBh
LCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSkKLXsK
LSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZShhLGIsYyxkLHR4LHR5KTsK
LX0KLQotUU1hdHJpeDo6UU1hdHJpeChDR0FmZmluZVRyYW5zZm9ybSB0KSB7Ci0gICAgbV90cmFu
c2Zvcm0gPSB0OwotfQotCi12b2lkIFFNYXRyaXg6OnNldE1hdHJpeChkb3VibGUgYSwgZG91Ymxl
IGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUgdHkpCi17Ci0gICAgbV90
cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoYSxiLGMsZCx0eCx0eSk7Ci19Ci0KLXZv
aWQgUU1hdHJpeDo6bWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91YmxlICp5
MikgY29uc3QKLXsKLSAgICBDR1BvaW50IHJlc3VsdCA9IENHUG9pbnRBcHBseUFmZmluZVRyYW5z
Zm9ybShDR1BvaW50TWFrZSh4LHkpLG1fdHJhbnNmb3JtKTsKLSAgICAqeDIgPSByZXN1bHQueDsK
LSAgICAqeTIgPSByZXN1bHQueTsKLX0KLQotSW50UmVjdCBRTWF0cml4OjptYXBSZWN0KGNvbnN0
IEludFJlY3QgJnJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFJlY3QoQ0dSZWN0QXBwbHlB
ZmZpbmVUcmFuc2Zvcm0oQ0dSZWN0KHJlY3QpLCBtX3RyYW5zZm9ybSkpOwotfQotCi1GbG9hdFJl
Y3QgUU1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3QgJnJlY3QpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIEZsb2F0UmVjdChDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShDR1JlY3QocmVjdCks
IG1fdHJhbnNmb3JtKSk7Ci19Ci0KLWJvb2wgUU1hdHJpeDo6aXNJZGVudGl0eSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShtX3RyYW5zZm9ybSk7Ci19
Ci0KLXZvaWQgUU1hdHJpeDo6cmVzZXQoKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVU
cmFuc2Zvcm1JZGVudGl0eTsKLX0KLQotUU1hdHJpeCAmUU1hdHJpeDo6c2NhbGUoZG91YmxlIHN4
LCBkb3VibGUgc3kpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxl
KG1fdHJhbnNmb3JtLCBzeCwgc3kpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotUU1hdHJpeCAm
UU1hdHJpeDo6cm90YXRlKGRvdWJsZSBkKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVU
cmFuc2Zvcm1Sb3RhdGUobV90cmFuc2Zvcm0sIGQgKiBkZWcycmFkKTsKLSAgICByZXR1cm4gKnRo
aXM7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6OnRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0
eSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtVHJhbnNsYXRlKG1fdHJh
bnNmb3JtLCB0eCwgdHkpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotUU1hdHJpeCAmUU1hdHJp
eDo6c2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
c2hlYXIgPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgc3ksIHN4LCAxLCAwLCAwKTsKLSAgICBt
X3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KHNoZWFyLG1fdHJhbnNmb3JtKTsK
LSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLWRvdWJsZSBRTWF0cml4OjpkZXQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3RyYW5zZm9ybS5hICogbV90cmFuc2Zvcm0uZCAtIG1fdHJhbnNmb3JtLmIg
KiBtX3RyYW5zZm9ybS5jOwotfQotCi1ib29sIFFNYXRyaXg6OmlzSW52ZXJ0aWJsZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGRldCgpICE9IDAuMDsKLX0KLQotUU1hdHJpeCBRTWF0cml4OjppbnZl
cnQoKSBjb25zdAotewotICAgIGlmIChpc0ludmVydGlibGUoKSkKLSAgICAgICAgcmV0dXJuIFFN
YXRyaXgoQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQobV90cmFuc2Zvcm0pKTsKLSAgICByZXR1cm4g
UU1hdHJpeCgpOwotfQotCi1RTWF0cml4OjpvcGVyYXRvciBDR0FmZmluZVRyYW5zZm9ybSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtOwotfQotCi1ib29sIFFNYXRyaXg6Om9wZXJh
dG9yPT0gKGNvbnN0IFFNYXRyaXggJm0yKSBjb25zdAotewotICAgIHJldHVybiBDR0FmZmluZVRy
YW5zZm9ybUVxdWFsVG9UcmFuc2Zvcm0obV90cmFuc2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0y
KSk7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6Om9wZXJhdG9yKj0gKGNvbnN0IFFNYXRyaXggJm0y
KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQobV90cmFuc2Zv
cm0sIENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1RTWF0
cml4IFFNYXRyaXg6Om9wZXJhdG9yKiAoY29uc3QgUU1hdHJpeCAmbTIpCi17Ci0gICAgcmV0dXJu
IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG1fdHJhbnNmb3JtLCBDR0FmZmluZVRyYW5zZm9ybSht
MikpOwotfQpJbmRleDogbG9hZGVyL0NhY2hlZEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsb2Fk
ZXIvQ2FjaGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIGxvYWRlci9DYWNoZWRJbWFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDE1ICs2MiwxNSBAQAogICAgIGNsZWFyKCk7CiB9
CiAKLXZvaWQgQ2FjaGVkSW1hZ2U6OnJlZiggQ2FjaGVkT2JqZWN0Q2xpZW50ICpjICkKK3ZvaWQg
Q2FjaGVkSW1hZ2U6OnJlZihDYWNoZWRPYmplY3RDbGllbnQqIGMpCiB7CiAgICAgQ2FjaGVkT2Jq
ZWN0OjpyZWYoYyk7CiAKICAgICAvLyBmb3IgbW91c2VvdmVycywgZHluYW1pYyBjaGFuZ2VzCi0g
ICAgaWYgKCF2YWxpZF9yZWN0KCkuaXNOdWxsKCkpCi0gICAgICAgIGMtPnNldEltYWdlKCBpbWFn
ZSgpLCB2YWxpZF9yZWN0KCksIHRoaXMpOworICAgIGlmICghdmFsaWRfcmVjdCgpLmlzRW1wdHko
KSkKKyAgICAgICAgYy0+c2V0SW1hZ2UoaW1hZ2UoKSwgdmFsaWRfcmVjdCgpLCB0aGlzKTsKIAot
ICAgIGlmKCFtX2xvYWRpbmcpCisgICAgaWYgKCFtX2xvYWRpbmcpCiAgICAgICAgIGMtPm5vdGlm
eUZpbmlzaGVkKHRoaXMpOwogfQogCkluZGV4OiBwYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiAxMjQyNCkKKysrIHBhZ2UvRnJhbWVW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI0LDEwICs4MjQsMTAgQEAKICAgICBkLT5zY3Jv
bGxpbmdTZWxmID0gdHJ1ZTsgLy8gc28gc2Nyb2xsIGV2ZW50cyBnZXQgaWdub3JlZAogCiAgICAg
aW50IHgsIHksIHhlLCB5ZTsKLSAgICB4ID0gYm91bmRzLmxlZnQoKTsKLSAgICB5ID0gYm91bmRz
LnRvcCgpOwotICAgIHhlID0gYm91bmRzLnJpZ2h0KCk7Ci0gICAgeWUgPSBib3VuZHMuYm90dG9t
KCk7CisgICAgeCA9IGJvdW5kcy54KCk7CisgICAgeSA9IGJvdW5kcy55KCk7CisgICAgeGUgPSBi
b3VuZHMucmlnaHQoKSAtIDE7CisgICAgeWUgPSBib3VuZHMuYm90dG9tKCkgLSAxOwogICAgIAog
ICAgIGludCBkZWx0YXg7CiAgICAgaW50IGRlbHRheTsKQEAgLTgzNSwzOCArODM1LDM2IEBACiAg
ICAgaW50IGN1ckhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICBpbnQgY3VyV2lkdGggPSB2
aXNpYmxlV2lkdGgoKTsKIAotICAgIGlmICh5ZS15PmN1ckhlaWdodC1kLT5ib3JkZXJZKQotCXll
ICA9IHkgKyBjdXJIZWlnaHQgLSBkLT5ib3JkZXJZOworICAgIGlmICh5ZSAtIHk+Y3VySGVpZ2h0
LWQtPmJvcmRlclkpCisJeWUgPSB5ICsgY3VySGVpZ2h0IC0gZC0+Ym9yZGVyWTsKIAotICAgIGlm
ICh4ZS14PmN1cldpZHRoLWQtPmJvcmRlclgpCisgICAgaWYgKHhlIC0geD5jdXJXaWR0aC1kLT5i
b3JkZXJYKQogCXhlID0geCArIGN1cldpZHRoIC0gZC0+Ym9yZGVyWDsKIAogICAgIC8vIGlzIHhw
b3Mgb2YgdGFyZ2V0IGxlZnQgb2YgdGhlIHZpZXcncyBib3JkZXI/CiAgICAgaWYgKHggPCBjb250
ZW50c1goKSArIGQtPmJvcmRlclggKQotICAgICAgICAgICAgZGVsdGF4ID0geCAtIGNvbnRlbnRz
WCgpIC0gZC0+Ym9yZGVyWDsKKyAgICAgICAgZGVsdGF4ID0geCAtIGNvbnRlbnRzWCgpIC0gZC0+
Ym9yZGVyWDsKICAgICAvLyBpcyB4cG9zIG9mIHRhcmdldCByaWdodCBvZiB0aGUgdmlldydzIHJp
Z2h0IGJvcmRlcj8KICAgICBlbHNlIGlmICh4ZSArIGQtPmJvcmRlclggPiBjb250ZW50c1goKSAr
IGN1cldpZHRoKQotICAgICAgICAgICAgZGVsdGF4ID0geGUgKyBkLT5ib3JkZXJYIC0gKCBjb250
ZW50c1goKSArIGN1cldpZHRoICk7CisgICAgICAgIGRlbHRheCA9IHhlICsgZC0+Ym9yZGVyWCAt
ICggY29udGVudHNYKCkgKyBjdXJXaWR0aCApOwogICAgIGVsc2UKICAgICAgICAgZGVsdGF4ID0g
MDsKIAogICAgIC8vIGlzIHlwb3Mgb2YgdGFyZ2V0IGFib3ZlIHVwcGVyIGJvcmRlcj8KICAgICBp
ZiAoeSA8IGNvbnRlbnRzWSgpICsgZC0+Ym9yZGVyWSkKLSAgICAgICAgICAgIGRlbHRheSA9IHkg
LSBjb250ZW50c1koKSAtIGQtPmJvcmRlclk7CisgICAgICAgIGRlbHRheSA9IHkgLSBjb250ZW50
c1koKSAtIGQtPmJvcmRlclk7CiAgICAgLy8gaXMgeXBvcyBvZiB0YXJnZXQgYmVsb3cgbG93ZXIg
Ym9yZGVyPwogICAgIGVsc2UgaWYgKHllICsgZC0+Ym9yZGVyWSA+IGNvbnRlbnRzWSgpICsgY3Vy
SGVpZ2h0KQotICAgICAgICAgICAgZGVsdGF5ID0geWUgKyBkLT5ib3JkZXJZIC0gKCBjb250ZW50
c1koKSArIGN1ckhlaWdodCApOworICAgICAgICBkZWx0YXkgPSB5ZSArIGQtPmJvcmRlclkgLSAo
IGNvbnRlbnRzWSgpICsgY3VySGVpZ2h0ICk7CiAgICAgZWxzZQogICAgICAgICBkZWx0YXkgPSAw
OwogCi0gICAgaW50IG1heHggPSBjdXJXaWR0aC1kLT5ib3JkZXJYOwotICAgIGludCBtYXh5ID0g
Y3VySGVpZ2h0LWQtPmJvcmRlclk7CisgICAgaW50IG1heHggPSBjdXJXaWR0aCAtIGQtPmJvcmRl
clg7CisgICAgaW50IG1heHkgPSBjdXJIZWlnaHQgLSBkLT5ib3JkZXJZOwogCi0gICAgaW50IHNj
cm9sbFgsc2Nyb2xsWTsKKyAgICBpbnQgc2Nyb2xsWCA9IGRlbHRheCA+IDAgPyAoZGVsdGF4ID4g
bWF4eCA/IG1heHggOiBkZWx0YXgpIDogZGVsdGF4ID09IDAgPyAwIDogKGRlbHRheCA+IC1tYXh4
ID8gZGVsdGF4IDogLW1heHgpOworICAgIGludCBzY3JvbGxZID0gZGVsdGF5ID4gMCA/IChkZWx0
YXkgPiBtYXh5ID8gbWF4eSA6IGRlbHRheSkgOiBkZWx0YXkgPT0gMCA/IDAgOiAoZGVsdGF5ID4g
LW1heHkgPyBkZWx0YXkgOiAtbWF4eSk7CiAKLSAgICBzY3JvbGxYID0gZGVsdGF4ID4gMCA/IChk
ZWx0YXggPiBtYXh4ID8gbWF4eCA6IGRlbHRheCkgOiBkZWx0YXggPT0gMCA/IDAgOiAoZGVsdGF4
Pi1tYXh4ID8gZGVsdGF4IDogLW1heHgpOwotICAgIHNjcm9sbFkgPSBkZWx0YXkgPiAwID8gKGRl
bHRheSA+IG1heHkgPyBtYXh5IDogZGVsdGF5KSA6IGRlbHRheSA9PSAwID8gMCA6IChkZWx0YXk+
LW1heHkgPyBkZWx0YXkgOiAtbWF4eSk7Ci0KICAgICBpZiAoY29udGVudHNYKCkgKyBzY3JvbGxY
IDwgMCkKIAlzY3JvbGxYID0gLWNvbnRlbnRzWCgpOwogICAgIGVsc2UgaWYgKGNvbnRlbnRzV2lk
dGgoKSAtIHZpc2libGVXaWR0aCgpIC0gY29udGVudHNYKCkgPCBzY3JvbGxYKQpAQCAtODgwLDE3
ICs4NzgsMTQgQEAKICAgICBzY3JvbGxCeShzY3JvbGxYLCBzY3JvbGxZKTsKIAogICAgIC8vIGdl
bmVyYXRlIGFicyhzY3JvbGwuKQotICAgIGlmIChzY3JvbGxYPDApCi0gICAgICAgIHNjcm9sbFg9
LXNjcm9sbFg7Ci0gICAgaWYgKHNjcm9sbFk8MCkKLSAgICAgICAgc2Nyb2xsWT0tc2Nyb2xsWTsK
KyAgICBpZiAoc2Nyb2xsWCA8IDApCisgICAgICAgIHNjcm9sbFggPSAtc2Nyb2xsWDsKKyAgICBp
ZiAoc2Nyb2xsWSA8IDApCisgICAgICAgIHNjcm9sbFkgPSAtc2Nyb2xsWTsKIAogICAgIGQtPnNj
cm9sbGluZ1NlbGYgPSBmYWxzZTsKIAotICAgIGlmICggKHNjcm9sbFghPW1heHgpICYmIChzY3Jv
bGxZIT1tYXh5KSApCi0JcmV0dXJuIHRydWU7Ci0gICAgZWxzZSByZXR1cm4gZmFsc2U7Ci0KKyAg
ICByZXR1cm4gc2Nyb2xsWCAhPSBtYXh4ICYmIHNjcm9sbFkgIT0gbWF4eTsKIH0KIAogdm9pZCBG
cmFtZVZpZXc6OmZvY3VzTmV4dFByZXZOb2RlKGJvb2wgbmV4dCkKQEAgLTkxNiwxMyArOTExLDEw
IEBACiAgICAgICAgIGJvb2wgdmlzaWJsZSA9IGZhbHNlOwogICAgICAgICBOb2RlSW1wbCAqdG9G
b2N1cyA9IG5ld0ZvY3VzTm9kZTsKICAgICAgICAgd2hpbGUgKCF2aXNpYmxlICYmIHRvRm9jdXMp
IHsKLSAgICAgICAgICAgIEludFJlY3QgZm9jdXNOb2RlUmVjdCA9IHRvRm9jdXMtPmdldFJlY3Qo
KTsKLSAgICAgICAgICAgIGlmICgoZm9jdXNOb2RlUmVjdC5sZWZ0KCkgPiBjb250ZW50c1goKSkg
JiYgKGZvY3VzTm9kZVJlY3QucmlnaHQoKSA8IGNvbnRlbnRzWCgpICsgdmlzaWJsZVdpZHRoKCkp
ICYmCi0gICAgICAgICAgICAgICAgKGZvY3VzTm9kZVJlY3QudG9wKCkgPiBjb250ZW50c1koKSkg
JiYgKGZvY3VzTm9kZVJlY3QuYm90dG9tKCkgPCBjb250ZW50c1koKSArIHZpc2libGVIZWlnaHQo
KSkpIHsKKyAgICAgICAgICAgIGlmICh0b0ZvY3VzLT5nZXRSZWN0KCkuaW50ZXJzZWN0cyhJbnRS
ZWN0KGNvbnRlbnRzWCgpLCBjb250ZW50c1koKSwgdmlzaWJsZVdpZHRoKCksIHZpc2libGVIZWln
aHQoKSkpKSB7CiAgICAgICAgICAgICAgICAgLy8gdG9Gb2N1cyBpcyB2aXNpYmxlIGluIHRoZSBj
b250ZW50cyBhcmVhCiAgICAgICAgICAgICAgICAgdmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgLy8gdG9Gb2N1cyBpcyBfbm90XyB2aXNpYmxlIGluIHRoZSBjb250ZW50cyBhcmVhLCBw
aWNrIHRoZSBuZXh0IG5vZGUKICAgICAgICAgICAgICAgICBpZiAobmV4dCkKICAgICAgICAgICAg
ICAgICAgICAgdG9Gb2N1cyA9IGRvYy0+bmV4dEZvY3VzTm9kZSh0b0ZvY3VzKTsKSW5kZXg6IHBh
Z2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxMjQy
NCkKKysrIHBhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjUzLDcgKzMyNTMsNyBA
QAogICAgICAgICBmaWxsV2l0aFJlZCA9IHRydWU7CiAgICAgCiAgICAgaWYgKGZpbGxXaXRoUmVk
KQotICAgICAgICBwLT5maWxsUmVjdChyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSwgQ29sb3IoMHhGRiwgMCwgMCkpOworICAgICAgICBwLT5maWxsUmVjdChy
ZWN0LCBDb2xvcigweEZGLCAwLCAwKSk7CiAjZW5kaWYKICAgICAKICAgICBpZiAocmVuZGVyZXIo
KSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6080</attachid>
            <date>2006-01-29 11:46:25 -0800</date>
            <delta_ts>2009-01-16 10:44:50 -0800</delta_ts>
            <desc>newer patch, merged with TOT</desc>
            <filename>AffinePatch.txt</filename>
            <type>text/plain</type>
            <size>432028</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTI0NjMp
CisrKyBraHRtbC9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTksMTcgKzc1OSwxNSBAQAogCiBJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmNh
cmV0UmVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbmVlZHNMYXlvdXQpIHsKKyAgICBpZiAobV9u
ZWVkc0xheW91dCkKICAgICAgICAgY29uc3RfY2FzdDxTZWxlY3Rpb25Db250cm9sbGVyICo+KHRo
aXMpLT5sYXlvdXQoKTsKLSAgICB9CiAgICAgCiAgICAgSW50UmVjdCBjYXJldCA9IG1fY2FyZXRS
ZWN0OwotICAgIAorCiAgICAgaWYgKG1fc2VsLnN0YXJ0KCkubm9kZSgpICYmIG1fc2VsLnN0YXJ0
KCkubm9kZSgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIGludCB4LCB5OwogICAgICAgICBtX3Nl
bC5zdGFydCgpLm5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVQb3NpdGlvbih4LCB5KTsKLSAg
ICAgICAgSW50UG9pbnQgZGlmZiA9IEludFBvaW50KHgsIHkpIC0gbV9jYXJldFBvc2l0aW9uT25M
YXlvdXQ7Ci0gICAgICAgIGNhcmV0Lm1vdmVUb3BMZWZ0KGRpZmYpOworICAgICAgICBjYXJldC5t
b3ZlKEludFBvaW50KHgsIHkpIC0gbV9jYXJldFBvc2l0aW9uT25MYXlvdXQpOwogICAgIH0KIAog
ICAgIHJldHVybiBjYXJldDsKQEAgLTc4MSw3ICs3NzksNyBAQAogICAgIEludFJlY3QgciA9IGNh
cmV0UmVjdCgpOwogICAgIGlmIChyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEludFJlY3Qo
KTsKLSAgICByZXR1cm4gSW50UmVjdChyLmxlZnQoKSAtIDEsIHIudG9wKCkgLSAxLCByLndpZHRo
KCkgKyAyLCByLmhlaWdodCgpICsgMik7CisgICAgcmV0dXJuIEludFJlY3Qoci54KCkgLSAxLCBy
LnkoKSAtIDEsIHIud2lkdGgoKSArIDIsIHIuaGVpZ2h0KCkgKyAyKTsKIH0KIAogdm9pZCBTZWxl
Y3Rpb25Db250cm9sbGVyOjpuZWVkc0NhcmV0UmVwYWludCgpCkBAIC04MjUsMTAgKzgyMyw5IEBA
CiAgICAgaWYgKG1fbmVlZHNMYXlvdXQpCiAgICAgICAgIGxheW91dCgpOwogICAgICAgICAKLSAg
ICBJbnRSZWN0IGNhcmV0ID0gY2FyZXRSZWN0KCk7Ci0KLSAgICBpZiAoY2FyZXQuaXNWYWxpZCgp
KQotICAgICAgICBwLT5maWxsUmVjdChjYXJldCAmIHJlY3QsIEJydXNoKCkpOworICAgIEludFJl
Y3QgY2FyZXQgPSBpbnRlcnNlY3Rpb24oY2FyZXRSZWN0KCksIHJlY3QpOworICAgIGlmICghY2Fy
ZXQuaXNFbXB0eSgpKQorICAgICAgICBwLT5maWxsUmVjdChjYXJldCwgQnJ1c2goKSk7CiB9CiAK
IHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6ZGVidWdSZW5kZXJlcihSZW5kZXJPYmplY3QgKnIs
IGJvb2wgc2VsZWN0ZWQpIGNvbnN0CkluZGV4OiBraHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3BwCShyZXZpc2lv
biAxMjQ2MykKKysrIGtodG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzQsMTkgKzc0LDE3IEBACiAgICAgLy8gQmVmb3JlIGNhbGxpbmcgYWJzb2x1dGVSZWN0
cywgY2hlY2sgZm9yIHRoZSBjb21tb24gY2FzZSB3aGVyZSB0aGUgcmVuZGVyZXIKICAgICAvLyBv
ciBvbmUgb2YgdGhlIGNvbnRpbnVhdGlvbnMgaXMgbm9uLWVtcHR5LCBzaW5jZSB0aGlzIGlzIGEg
ZmFzdGVyIGNoZWNrIGFuZAogICAgIC8vIGFsbW9zdCBhbHdheXMgcmV0dXJucyB0cnVlLgotICAg
IGZvciAoUmVuZGVyT2JqZWN0ICpyID0gcmVuZGVyZXIoKTsgcjsgciA9IHItPmNvbnRpbnVhdGlv
bigpKSB7CisgICAgZm9yIChSZW5kZXJPYmplY3QgKnIgPSByZW5kZXJlcigpOyByOyByID0gci0+
Y29udGludWF0aW9uKCkpCiAgICAgICAgIGlmIChyLT53aWR0aCgpID4gMCAmJiByLT5oZWlnaHQo
KSA+IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAKICAgICBRVmFsdWVMaXN0
PEludFJlY3Q+IHJlY3RzOwogICAgIGludCB4ID0gMCwgeSA9IDA7CiAgICAgcmVuZGVyZXIoKS0+
YWJzb2x1dGVQb3NpdGlvbih4LCB5KTsKICAgICByZW5kZXJlcigpLT5hYnNvbHV0ZVJlY3RzKHJl
Y3RzLCB4LCB5KTsKLSAgICBmb3IgKFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3Ig
aXQgPSByZWN0cy5iZWdpbigpOyBpdCAhPSByZWN0cy5lbmQoKTsgKytpdCkgewotICAgICAgICBp
ZiAoKCppdCkuaXNWYWxpZCgpKQorICAgIGZvciAoUVZhbHVlTGlzdDxJbnRSZWN0Pjo6Q29uc3RJ
dGVyYXRvciBpdCA9IHJlY3RzLmJlZ2luKCk7IGl0ICE9IHJlY3RzLmVuZCgpOyArK2l0KQorICAg
ICAgICBpZiAoISgqaXQpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KIAogICAgIHJldHVybiBmYWxzZTsKIH0KSW5kZXg6IGtodG1sL2h0bWwvaHRtbF9vYmplY3Rp
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAJKHJl
dmlzaW9uIDEyNDYzKQorKysga2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiZG9tX3N0cmluZy5oIgogI2luY2x1
ZGUgImRvbV90ZXh0aW1wbC5oIgogI2luY2x1ZGUgImh0bWxfZG9jdW1lbnRpbXBsLmgiCisjaW5j
bHVkZSAiaHRtbF9pbWFnZWltcGwuaCIKICNpbmNsdWRlICJyZW5kZXJfYXBwbGV0LmgiCiAjaW5j
bHVkZSAicmVuZGVyX2ZyYW1lcy5oIgogI2luY2x1ZGUgInJlbmRlcl9pbWFnZS5oIgpJbmRleDog
a2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC9odG1sL2h0
bWxfb2JqZWN0aW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtodG1sL2h0bWwvaHRtbF9vYmpl
Y3RpbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAgKgogICogQ29weXJpZ2h0
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5
OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwxMSArMjEsMTEgQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICoKICAqLworCiAjaWZuZGVmIEhUTUxf
T0JKRUNUSU1QTF9ICiAjZGVmaW5lIEhUTUxfT0JKRUNUSU1QTF9ICiAKLSNpbmNsdWRlICJodG1s
X2ltYWdlaW1wbC5oIgotI2luY2x1ZGUgInhtbC9kb21fc3RyaW5naW1wbC5oIgorI2luY2x1ZGUg
IkhUTUxFbGVtZW50SW1wbC5oIgogCiAjaWYgX19BUFBMRV9fCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvcnVudGltZS5oPgpAQCAtMzMsMTYgKzMzLDE1IEBACiBuYW1lc3BhY2UgS0pTIHsgbmFt
ZXNwYWNlIEJpbmRpbmdzIHsgY2xhc3MgSW5zdGFuY2U7IH0gfQogI2VuZGlmCiAKLWNsYXNzIFFT
dHJpbmdMaXN0OwotCiBuYW1lc3BhY2UgRE9NIHsKIAogY2xhc3MgSFRNTEZvcm1FbGVtZW50SW1w
bDsKK2NsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIAogY2xhc3MgSFRNTEFwcGxldEVsZW1lbnRJbXBs
IDogcHVibGljIEhUTUxFbGVtZW50SW1wbAogewogcHVibGljOgotICAgIEhUTUxBcHBsZXRFbGVt
ZW50SW1wbChEb2N1bWVudEltcGwgKmRvYyk7CisgICAgSFRNTEFwcGxldEVsZW1lbnRJbXBsKERv
Y3VtZW50SW1wbCopOwogICAgIH5IVE1MQXBwbGV0RWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c1JlcXVpcmVkOyB9CkBAIC01MCw2MiArNDksNTkgQEAKICAgICB2aXJ0dWFsIGJvb2wgY2hl
Y2tEVEQoY29uc3QgTm9kZUltcGwqIG5ld0NoaWxkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBU
b0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRy
eSYgcmVzdWx0KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
TWFwcGVkQXR0cmlidXRlSW1wbCAqdG9rZW4pOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAgICAgCi0gICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwotICAgIHZpcnR1YWwga2h0
bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKiwga2h0bWw6OlJl
bmRlclN0eWxlICopOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0
eWxlKik7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKICAgICAKICAgICBET01TdHJpbmcgYWxpZ24oKSBj
b25zdDsKLSAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNl
dEFsaWduKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGFsdCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0QWx0KGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldEFsdChjb25z
dCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBhcmNoaXZlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRBcmNoaXZlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldEFyY2hpdmUoY29u
c3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgY29kZSgpIGNvbnN0OwotICAgIHZvaWQg
c2V0Q29kZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRDb2RlKGNvbnN0IERPTVN0
cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGNvZGVCYXNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRD
b2RlQmFzZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRDb2RlQmFzZShjb25zdCBE
T01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBoZWlnaHQoKSBjb25zdDsKLSAgICB2b2lkIHNl
dEhlaWdodChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRIZWlnaHQoY29uc3QgRE9N
U3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgaHNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRI
c3BhY2UoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0SHNwYWNlKGNvbnN0IERPTVN0
cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIG5hbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldE5hbWUo
Y29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0TmFtZShjb25zdCBET01TdHJpbmcmKTsK
IAogICAgIERPTVN0cmluZyBvYmplY3QoKSBjb25zdDsKLSAgICB2b2lkIHNldE9iamVjdChjb25z
dCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRPYmplY3QoY29uc3QgRE9NU3RyaW5nJik7CiAK
ICAgICBET01TdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWc3BhY2UoY29uc3Qg
RE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VnNwYWNlKGNvbnN0IERPTVN0cmluZyYpOwogCiAg
ICAgRE9NU3RyaW5nIHdpZHRoKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRXaWR0aChjb25zdCBET01T
dHJpbmcgJik7CisgICAgdm9pZCBzZXRXaWR0aChjb25zdCBET01TdHJpbmcmKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBhbGxQYXJhbXNBdmFpbGFibGUoKTsKICAgICB2b2lkIHNldHVwQXBwbGV0KCkg
Y29uc3Q7CiAKLSAgICBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAqZ2V0QXBwbGV0SW5zdGFuY2Uo
KSBjb25zdDsKKyAgICBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSogZ2V0QXBwbGV0SW5zdGFuY2Uo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CiAKLXByb3RlY3RlZDoKLSAgICBr
aHRtbDo6VkFsaWduIHZhbGlnbjsKLQogcHJpdmF0ZToKICAgICBET01TdHJpbmcgb2xkTmFtZUF0
dHI7CiAgICAgRE9NU3RyaW5nIG9sZElkQXR0cjsKIAotICAgIG11dGFibGUgS0pTOjpCaW5kaW5n
czo6SW5zdGFuY2UgKmFwcGxldEluc3RhbmNlOworICAgIG11dGFibGUgS0pTOjpCaW5kaW5nczo6
SW5zdGFuY2UqIGFwcGxldEluc3RhbmNlOwogCiAgICAgYm9vbCBtX2FsbFBhcmFtc0F2YWlsYWJs
ZTsKIH07CkBAIC0xMTUsNyArMTExLDcgQEAKIGNsYXNzIEhUTUxFbWJlZEVsZW1lbnRJbXBsIDog
cHVibGljIEhUTUxFbGVtZW50SW1wbAogewogcHVibGljOgotICAgIEhUTUxFbWJlZEVsZW1lbnRJ
bXBsKERvY3VtZW50SW1wbCAqZG9jKTsKKyAgICBIVE1MRW1iZWRFbGVtZW50SW1wbChEb2N1bWVu
dEltcGwqKTsKICAgICB+SFRNTEVtYmVkRWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1YWwgSFRN
TFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1Jl
cXVpcmVkOyB9CkBAIC0xMjMsMTggKzExOSwxOCBAQAogICAgIHZpcnR1YWwgYm9vbCBjaGVja0RU
RChjb25zdCBOb2RlSW1wbCogbmV3Q2hpbGQpOwogCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50
cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiBy
ZXN1bHQpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBw
ZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgp
OwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKik7Ci0gICAgdmlydHVhbCBraHRtbDo6UmVuZGVy
T2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqLCBraHRtbDo6UmVuZGVyU3R5bGUg
Kik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKKyAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAgCi0gICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZUltcGwgKmF0dHIpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsKikgY29uc3Q7CiAKLSAgICBLSlM6
OkJpbmRpbmdzOjpJbnN0YW5jZSAqZ2V0RW1iZWRJbnN0YW5jZSgpIGNvbnN0OworICAgIEtKUzo6
QmluZGluZ3M6Okluc3RhbmNlKiBnZXRFbWJlZEluc3RhbmNlKCkgY29uc3Q7CiAKICAgICBRU3Ry
aW5nIHVybDsKICAgICBRU3RyaW5nIHBsdWdpblBhZ2U7CkBAIC0xNDMsNyArMTM5LDcgQEAKIHBy
aXZhdGU6CiAgICAgRE9NU3RyaW5nIG9sZE5hbWVBdHRyOwogCi0gICAgbXV0YWJsZSBLSlM6OkJp
bmRpbmdzOjpJbnN0YW5jZSAqZW1iZWRJbnN0YW5jZTsKKyAgICBtdXRhYmxlIEtKUzo6QmluZGlu
Z3M6Okluc3RhbmNlKiBlbWJlZEluc3RhbmNlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtMTUxLDIxICsxNDcsMjEgQEAKIGNsYXNzIEhUTUxPYmplY3RFbGVtZW50SW1wbCA6IHB1Ymxp
YyBIVE1MRWxlbWVudEltcGwKIHsKIHB1YmxpYzoKLSAgICBIVE1MT2JqZWN0RWxlbWVudEltcGwo
RG9jdW1lbnRJbXBsICpkb2MpOworICAgIEhUTUxPYmplY3RFbGVtZW50SW1wbChEb2N1bWVudElt
cGwqKTsKICAgICB+SFRNTE9iamVjdEVsZW1lbnRJbXBsKCk7CiAKICAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1
aXJlZDsgfQogICAgIHZpcnR1YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gNzsg
fQogICAgIHZpcnR1YWwgYm9vbCBjaGVja0RURChjb25zdCBOb2RlSW1wbCogbmV3Q2hpbGQpOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50SW1wbCAqZm9ybSgpIGNvbnN0OworICAgIEhUTUxGb3JtRWxl
bWVudEltcGwqIGZvcm0oKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlSW1wbCAqdG9rZW4pOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0g
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwot
ICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEgKiwga2h0bWw6OlJlbmRlclN0eWxlICopOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKFJlbmRlclN0eWxlKik7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VSZW5kZXJlcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKICAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKQEAgLTE3Niw2OSArMTcyLDY5IEBACiAKICAgICBE
b2N1bWVudEltcGwqIGNvbnRlbnREb2N1bWVudCgpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsICphdHRyKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlSW1wbCopIGNvbnN0OwogCiAgICAgYm9v
bCBpc0ltYWdlVHlwZSgpOwogCiAgICAgdm9pZCByZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIAog
ICAgIERPTVN0cmluZyBjb2RlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb2RlKGNvbnN0IERPTVN0
cmluZyAmKTsKKyAgICB2b2lkIHNldENvZGUoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01T
dHJpbmcgYWxpZ24oKSBjb25zdDsKLSAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5n
IGFyY2hpdmUoKSBjb25zdDsKLSAgICB2b2lkIHNldEFyY2hpdmUoY29uc3QgRE9NU3RyaW5nICYp
OworICAgIHZvaWQgc2V0QXJjaGl2ZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmlu
ZyBib3JkZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldEJvcmRlcihjb25zdCBET01TdHJpbmcgJik7
CisgICAgdm9pZCBzZXRCb3JkZXIoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcg
Y29kZUJhc2UoKSBjb25zdDsKLSAgICB2b2lkIHNldENvZGVCYXNlKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldENvZGVCYXNlKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3Ry
aW5nIGNvZGVUeXBlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb2RlVHlwZShjb25zdCBET01TdHJp
bmcgJik7CisgICAgdm9pZCBzZXRDb2RlVHlwZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERP
TVN0cmluZyBkYXRhKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREYXRhKGNvbnN0IERPTVN0cmluZyAm
KTsKKyAgICB2b2lkIHNldERhdGEoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBib29sIGRlY2xh
cmUoKSBjb25zdDsKICAgICB2b2lkIHNldERlY2xhcmUoYm9vbCk7CiAKICAgICBET01TdHJpbmcg
aGVpZ2h0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRIZWlnaHQoY29uc3QgRE9NU3RyaW5nICYpOwor
ICAgIHZvaWQgc2V0SGVpZ2h0KGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIGhz
cGFjZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0SHNwYWNlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAg
ICB2b2lkIHNldEhzcGFjZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyBuYW1l
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXROYW1lKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lk
IHNldE5hbWUoY29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgc3RhbmRieSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0U3RhbmRieShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBz
ZXRTdGFuZGJ5KGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgaW50IHRhYkluZGV4KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRUYWJJbmRleChpbnQpOwogCiAgICAgRE9NU3RyaW5nIHR5cGUoKSBjb25z
dDsKLSAgICB2b2lkIHNldFR5cGUoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VHlw
ZShjb25zdCBET01TdHJpbmcmKTsKIAogICAgIERPTVN0cmluZyB1c2VNYXAoKSBjb25zdDsKLSAg
ICB2b2lkIHNldFVzZU1hcChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRVc2VNYXAo
Y29uc3QgRE9NU3RyaW5nJik7CiAKICAgICBET01TdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRWc3BhY2UoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VnNwYWNlKGNv
bnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHdpZHRoKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRXaWR0aChjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXRXaWR0aChjb25zdCBE
T01TdHJpbmcmKTsKIAogICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cGxldGU7IH0KICAgICB2b2lkIHNldENvbXBsZXRlKGJvb2wgY29tcGxldGUpOwogICAgIAogICAg
IGJvb2wgaXNEb2NOYW1lZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2RvY05hbWVkSXRlbTsgfQog
Ci0gICAgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UgKmdldE9iamVjdEluc3RhbmNlKCkgY29uc3Q7
CisgICAgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UqIGdldE9iamVjdEluc3RhbmNlKCkgY29uc3Q7
CiAKICAgICBRU3RyaW5nIHNlcnZpY2VUeXBlOwogICAgIFFTdHJpbmcgdXJsOwpAQCAtMjUyLDcg
KzI0OCw3IEBACiAgICAgRE9NU3RyaW5nIG9sZElkQXR0cjsKICAgICBET01TdHJpbmcgb2xkTmFt
ZUF0dHI7CiAKLSAgICBtdXRhYmxlIEtKUzo6QmluZGluZ3M6Okluc3RhbmNlICpvYmplY3RJbnN0
YW5jZTsKKyAgICBtdXRhYmxlIEtKUzo6QmluZGluZ3M6Okluc3RhbmNlKiBvYmplY3RJbnN0YW5j
ZTsKIAogICAgIGJvb2wgbV9jb21wbGV0ZTsKICAgICBib29sIG1fZG9jTmFtZWRJdGVtOwpAQCAt
MjY0LDI3ICsyNjAsMjcgQEAKIHsKICAgICBmcmllbmQgY2xhc3MgSFRNTEFwcGxldEVsZW1lbnRJ
bXBsOwogcHVibGljOgotICAgIEhUTUxQYXJhbUVsZW1lbnRJbXBsKERvY3VtZW50SW1wbCAqZG9j
KTsKKyAgICBIVE1MUGFyYW1FbGVtZW50SW1wbChEb2N1bWVudEltcGwqKTsKICAgICB+SFRNTFBh
cmFtRWxlbWVudEltcGwoKTsKIAogICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1
aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQogICAgIHZpcnR1
YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwgKnRva2VuKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCop
OwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZUltcGwgKmF0dHIp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsKikg
Y29uc3Q7CiAKICAgICBET01TdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQot
ICAgIHZvaWQgc2V0TmFtZShjb25zdCBET01TdHJpbmcgJik7CisgICAgdm9pZCBzZXROYW1lKGNv
bnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHR5cGUoKSBjb25zdDsKLSAgICB2b2lk
IHNldFR5cGUoY29uc3QgRE9NU3RyaW5nICYpOworICAgIHZvaWQgc2V0VHlwZShjb25zdCBET01T
dHJpbmcmKTsKIAogICAgIERPTVN0cmluZyB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNldFZh
bHVlKGNvbnN0IERPTVN0cmluZyYpOwogCiAgICAgRE9NU3RyaW5nIHZhbHVlVHlwZSgpIGNvbnN0
OwotICAgIHZvaWQgc2V0VmFsdWVUeXBlKGNvbnN0IERPTVN0cmluZyAmKTsKKyAgICB2b2lkIHNl
dFZhbHVlVHlwZShjb25zdCBET01TdHJpbmcmKTsKIAogIHByb3RlY3RlZDoKICAgICBBdG9taWNT
dHJpbmcgbV9uYW1lOwpJbmRleDoga2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtodG1s
L2VjbWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQAog
ewogICBLV2luTW9kdWxlIGluZm87CiAgIFFXaWRnZXQgKnRoaXNXaWRnZXQgPSBXaW5kb3c6OnJl
dHJpZXZlQWN0aXZlKGV4ZWMpLT5mcmFtZSgpLT52aWV3KCk7Ci0gIEludFJlY3Qgc2cgPSBRQXBw
bGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9w
KCktPnNjcmVlbk51bWJlcih0aGlzV2lkZ2V0KSk7CisgIEludFJlY3Qgc2cgPSBRRGVza3RvcFdp
ZGdldDo6c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcih0aGlzV2lk
Z2V0KSk7CiAKICAgc3dpdGNoKCB0b2tlbiApIHsKICAgY2FzZSBIZWlnaHQ6CkBAIC0xNjAsMjUg
KzE2MCwxNiBAQAogICBjYXNlIFdpZHRoOgogICAgIHJldHVybiBqc051bWJlcihzZy53aWR0aCgp
KTsKICAgY2FzZSBDb2xvckRlcHRoOgotICBjYXNlIFBpeGVsRGVwdGg6IHsKLSAgICByZXR1cm4g
anNOdW1iZXIoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkRlcHRoKCkpOwotICB9Ci0g
IGNhc2UgQXZhaWxMZWZ0OiB7Ci0gICAgSW50UmVjdCBjbGlwcGVkID0gaW5mby53b3JrQXJlYSgp
LmludGVyc2VjdChzZyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGNsaXBwZWQueCgpLXNnLngoKSk7
Ci0gIH0KLSAgY2FzZSBBdmFpbFRvcDogewotICAgIEludFJlY3QgY2xpcHBlZCA9IGluZm8ud29y
a0FyZWEoKS5pbnRlcnNlY3Qoc2cpOwotICAgIHJldHVybiBqc051bWJlcihjbGlwcGVkLnkoKS1z
Zy55KCkpOwotICB9Ci0gIGNhc2UgQXZhaWxIZWlnaHQ6IHsKLSAgICBJbnRSZWN0IGNsaXBwZWQg
PSBpbmZvLndvcmtBcmVhKCkuaW50ZXJzZWN0KHNnKTsKLSAgICByZXR1cm4ganNOdW1iZXIoY2xp
cHBlZC5oZWlnaHQoKSk7Ci0gIH0KLSAgY2FzZSBBdmFpbFdpZHRoOiB7Ci0gICAgSW50UmVjdCBj
bGlwcGVkID0gaW5mby53b3JrQXJlYSgpLmludGVyc2VjdChzZyk7Ci0gICAgcmV0dXJuIGpzTnVt
YmVyKGNsaXBwZWQud2lkdGgoKSk7Ci0gIH0KKyAgY2FzZSBQaXhlbERlcHRoOgorICAgIHJldHVy
biBqc051bWJlcihRRGVza3RvcFdpZGdldDo6c2NyZWVuRGVwdGgoUURlc2t0b3BXaWRnZXQ6OnNj
cmVlbk51bWJlcih0aGlzV2lkZ2V0KSkpOworICBjYXNlIEF2YWlsTGVmdDoKKyAgICByZXR1cm4g
anNOdW1iZXIoaW50ZXJzZWN0aW9uKGluZm8ud29ya0FyZWEoKSwgc2cpLngoKSAtIHNnLngoKSk7
CisgIGNhc2UgQXZhaWxUb3A6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlvbihpbmZv
LndvcmtBcmVhKCksIHNnKS55KCkgLSBzZy55KCkpOworICBjYXNlIEF2YWlsSGVpZ2h0OgorICAg
IHJldHVybiBqc051bWJlcihpbnRlcnNlY3Rpb24oaW5mby53b3JrQXJlYSgpLCBzZykuaGVpZ2h0
KCkpOworICBjYXNlIEF2YWlsV2lkdGg6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlv
bihpbmZvLndvcmtBcmVhKCksIHNnKS53aWR0aCgpKTsKICAgZGVmYXVsdDoKICAgICBrZFdhcm5p
bmcoKSA8PCAiU2NyZWVuOjpnZXRWYWx1ZVByb3BlcnR5IHVuaGFuZGxlZCB0b2tlbiAiIDw8IHRv
a2VuIDw8IGVuZGw7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02MTEsMTYgKzYwMiwx
NiBAQAogICAgIC8vIC0gaGVscDogYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJoZWxwIiwgdHJ1ZSks
IG1ha2VzIGhlbHAgaWNvbiBhcHBlYXIgaW4gZGlhbG9nICh3aGF0IGRvZXMgaXQgZG8gb24gV2lu
ZG93cz8pCiAgICAgLy8gLSB1bmFkb3JuZWQ6IHRydXN0ZWQgJiYgYm9vbEZlYXR1cmUoZmVhdHVy
ZXMsICJ1bmFkb3JuZWQiKTsKIAotICAgIEludFJlY3Qgc2NyZWVuUmVjdCA9IFFBcHBsaWNhdGlv
bjo6ZGVza3RvcCgpLT5hdmFpbGFibGVHZW9tZXRyeShvcGVuZXJXaW5kb3ctPmZyYW1lKCktPnZp
ZXcoKSk7CisgICAgSW50UmVjdCBzY3JlZW5SZWN0ID0gUURlc2t0b3BXaWRnZXQ6OmF2YWlsYWJs
ZUdlb21ldHJ5KG9wZW5lcldpbmRvdy0+ZnJhbWUoKS0+dmlldygpKTsKIAogICAgIHdhcmdzLndp
ZHRoID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ3dpZHRoIiwgMTAwLCBzY3JlZW5SZWN0
LndpZHRoKCksIDYyMCk7IC8vIGRlZmF1bHQgaGVyZSBjYW1lIGZyb20gZnJhbWUgc2l6ZSBvZiBk
aWFsb2cgaW4gTWFjSUUKICAgICB3YXJncy53aWR0aFNldCA9IHRydWU7CiAgICAgd2FyZ3MuaGVp
Z2h0ID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2hlaWdodCIsIDEwMCwgc2NyZWVuUmVj
dC5oZWlnaHQoKSwgNDUwKTsgLy8gZGVmYXVsdCBoZXJlIGNhbWUgZnJvbSBmcmFtZSBzaXplIG9m
IGRpYWxvZyBpbiBNYWNJRQogICAgIHdhcmdzLmhlaWdodFNldCA9IHRydWU7CiAKLSAgICB3YXJn
cy54ID0gaW50RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2xlZnQiLCBzY3JlZW5SZWN0LngoKSwg
c2NyZWVuUmVjdC54KCkgKyBzY3JlZW5SZWN0LndpZHRoKCkgLSB3YXJncy53aWR0aCwgLTEpOwor
ICAgIHdhcmdzLnggPSBpbnRGZWF0dXJlKGZlYXR1cmVzLCAiZGlhbG9nbGVmdCIsIHNjcmVlblJl
Y3QueCgpLCBzY3JlZW5SZWN0LnJpZ2h0KCkgLSB3YXJncy53aWR0aCwgLTEpOwogICAgIHdhcmdz
LnhTZXQgPSB3YXJncy54ID4gMDsKLSAgICB3YXJncy55ID0gaW50RmVhdHVyZShmZWF0dXJlcywg
ImRpYWxvZ3RvcCIsIHNjcmVlblJlY3QueSgpLCBzY3JlZW5SZWN0LnkoKSArIHNjcmVlblJlY3Qu
aGVpZ2h0KCkgLSB3YXJncy5oZWlnaHQsIC0xKTsKKyAgICB3YXJncy55ID0gaW50RmVhdHVyZShm
ZWF0dXJlcywgImRpYWxvZ3RvcCIsIHNjcmVlblJlY3QueSgpLCBzY3JlZW5SZWN0LmJvdHRvbSgp
IC0gd2FyZ3MuaGVpZ2h0LCAtMSk7CiAgICAgd2FyZ3MueVNldCA9IHdhcmdzLnkgPiAwOwogCiAg
ICAgaWYgKGJvb2xGZWF0dXJlKGZlYXR1cmVzLCAiY2VudGVyIiwgdHJ1ZSkpIHsKQEAgLTYzMyw3
ICs2MjQsNyBAQAogICAgICAgICAgICAgd2FyZ3MueVNldCA9IHRydWU7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgICAgIAorCiAgICAgd2FyZ3MuZGlhbG9nID0gdHJ1ZTsKICAgICB3YXJncy5yZXNp
emFibGUgPSBib29sRmVhdHVyZShmZWF0dXJlcywgInJlc2l6YWJsZSIpOwogICAgIHdhcmdzLnNj
cm9sbEJhcnNWaXNpYmxlID0gYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJzY3JvbGwiLCB0cnVlKTsK
QEAgLTc1MywyNCArNzQ0LDE5IEBACiAgICAgY2FzZSBQZXJzb25hbGJhcjoKICAgICAgIHJldHVy
biBwZXJzb25hbGJhcihleGVjKTsKICAgICBjYXNlIFNjcmVlbkxlZnQ6Ci0gICAgY2FzZSBTY3Jl
ZW5YOiB7Ci0gICAgICBpZiAobV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgIC8vIFdlIHdhbnQg
dG8gdXNlIGZyYW1lR2VvbWV0cnkgaGVyZSBpbnN0ZWFkIG9mIG1hcFRvR2xvYmFsIGJlY2F1c2Ug
aXQgZ29lcyB0aHJvdWdoCi0gICAgICAgIC8vIHRoZSB3aW5kb3dGcmFtZSBtZXRob2Qgb2YgdGhl
IFdlYktpdCdzIFVJIGRlbGVnYXRlLiBBbHNvIHdlIGRvbid0IHdhbnQgdG8gdHJ5Ci0gICAgICAg
IC8vIHRvIGRvIGFueXRoaW5nIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4gdGhlIHdpbmRvdyBpcyBv
biwgc28gdGhlIGNvZGUgYmVsb3cgaXMgbm8KLSAgICAgICAgLy8gZ29vZCBvZiB1cyBhbnl3YXku
Ci0gICAgICAgIHJldHVybiBqc051bWJlcihtX2ZyYW1lLT52aWV3KCktPnRvcExldmVsV2lkZ2V0
KCktPmZyYW1lR2VvbWV0cnkoKS54KCkpOwotICAgICAgfSBlbHNlCisgICAgY2FzZSBTY3JlZW5Y
OgorICAgICAgaWYgKCFtX2ZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIH0KKyAgICAgIC8vIFdlIHdhbnQgdG8gdXNlIGZyYW1lR2VvbWV0cnkgaGVyZSBp
bnN0ZWFkIG9mIG1hcFRvR2xvYmFsIGJlY2F1c2UgaXQgZ29lcyB0aHJvdWdoCisgICAgICAvLyB0
aGUgd2luZG93RnJhbWUgbWV0aG9kIG9mIHRoZSBXZWJLaXQncyBVSSBkZWxlZ2F0ZS4gQWxzbyB3
ZSBkb24ndCB3YW50IHRvIHRyeQorICAgICAgLy8gdG8gZG8gYW55dGhpbmcgcmVsYXRpdmUgdG8g
dGhlIHNjcmVlbiB0aGUgd2luZG93IGlzIG9uLgorICAgICAgcmV0dXJuIGpzTnVtYmVyKG1fZnJh
bWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9tZXRyeSgpLngoKSk7CiAgICAg
Y2FzZSBTY3JlZW5Ub3A6Ci0gICAgY2FzZSBTY3JlZW5ZOiB7Ci0gICAgICBpZiAobV9mcmFtZS0+
dmlldygpKSB7Ci0gICAgICAgIC8vIFNlZSBjb21tZW50IGFib3ZlIGluIFNjcmVlblguCi0gICAg
ICAgIHJldHVybiBqc051bWJlcihtX2ZyYW1lLT52aWV3KCktPnRvcExldmVsV2lkZ2V0KCktPmZy
YW1lR2VvbWV0cnkoKS55KCkpOwotICAgICAgfSBlbHNlIAorICAgIGNhc2UgU2NyZWVuWToKKyAg
ICAgIGlmICghbV9mcmFtZS0+dmlldygpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICB9CisgICAgICAvLyBTZWUgY29tbWVudCBhYm92ZSBpbiBTY3JlZW5YLgorICAgICAgcmV0
dXJuIGpzTnVtYmVyKG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9t
ZXRyeSgpLnkoKSk7CiAgICAgY2FzZSBTY3JvbGxYOgogICAgICAgaWYgKCFtX2ZyYW1lLT52aWV3
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTUyOSwyMiArMTUxNSwyMiBA
QAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgY29uc3RyYWluVG9WaXNpYmxlKGNvbnN0IEludFJl
Y3QgJnNjcmVlbiwgV2luZG93QXJncyYgd2luZG93QXJncykKK3N0YXRpYyB2b2lkIGNvbnN0cmFp
blRvVmlzaWJsZShjb25zdCBJbnRSZWN0JiBzY3JlZW4sIFdpbmRvd0FyZ3MmIHdpbmRvd0FyZ3Mp
CiB7CiAgICAgd2luZG93QXJncy54ICs9IHNjcmVlbi54KCk7Ci0gICAgaWYgKHdpbmRvd0FyZ3Mu
eCA8IHNjcmVlbi54KCkgfHwgd2luZG93QXJncy54ID4gc2NyZWVuLnJpZ2h0KCkpCi0gICAgICAg
IHdpbmRvd0FyZ3MueCA9IHNjcmVlbi54KCk7IC8vIG9ubHkgc2FmZSBjaG9pY2UgdW50aWwgc2l6
ZSBpcyBkZXRlcm1pbmVkCisgICAgaWYgKHdpbmRvd0FyZ3MueCA8IHNjcmVlbi54KCkgfHwgd2lu
ZG93QXJncy54ID49IHNjcmVlbi5yaWdodCgpKQorICAgICAgICB3aW5kb3dBcmdzLnggPSBzY3Jl
ZW4ueCgpOwogICAgIAogICAgIHdpbmRvd0FyZ3MueSArPSBzY3JlZW4ueSgpOwotICAgIGlmICh3
aW5kb3dBcmdzLnkgPCBzY3JlZW4ueSgpIHx8IHdpbmRvd0FyZ3MueSA+IHNjcmVlbi5ib3R0b20o
KSkKLSAgICAgICAgd2luZG93QXJncy55ID0gc2NyZWVuLnkoKTsgLy8gb25seSBzYWZlIGNob2lj
ZSB1bnRpbCBzaXplIGlzIGRldGVybWluZWQKKyAgICBpZiAod2luZG93QXJncy55IDwgc2NyZWVu
LnkoKSB8fCB3aW5kb3dBcmdzLnkgPj0gc2NyZWVuLmJvdHRvbSgpKQorICAgICAgICB3aW5kb3dB
cmdzLnkgPSBzY3JlZW4ueSgpOwogICAgIAotICAgIGlmICh3aW5kb3dBcmdzLmhlaWdodCA+IHNj
cmVlbi5oZWlnaHQoKSkgIC8vIHNob3VsZCBhY3R1YWxseSBjaGVjayB3b3Jrc3BhY2UKKyAgICBp
ZiAod2luZG93QXJncy5oZWlnaHQgPiBzY3JlZW4uaGVpZ2h0KCkpCiAgICAgICAgIHdpbmRvd0Fy
Z3MuaGVpZ2h0ID0gc2NyZWVuLmhlaWdodCgpOwogICAgIGlmICh3aW5kb3dBcmdzLmhlaWdodCA8
IDEwMCkKICAgICAgICAgd2luZG93QXJncy5oZWlnaHQgPSAxMDA7CiAgICAgCi0gICAgaWYgKHdp
bmRvd0FyZ3Mud2lkdGggPiBzY3JlZW4ud2lkdGgoKSkgICAgLy8gc2hvdWxkIGFjdHVhbGx5IGNo
ZWNrIHdvcmtzcGFjZQorICAgIGlmICh3aW5kb3dBcmdzLndpZHRoID4gc2NyZWVuLndpZHRoKCkp
CiAgICAgICAgIHdpbmRvd0FyZ3Mud2lkdGggPSBzY3JlZW4ud2lkdGgoKTsKICAgICBpZiAod2lu
ZG93QXJncy53aWR0aCA8IDEwMCkKICAgICAgICAgd2luZG93QXJncy53aWR0aCA9IDEwMDsKQEAg
LTE1OTcsOCArMTU4Myw4IEBACiAgICAgICBRU3RyaW5nIGZlYXR1cmVzID0gYXJnc1syXS0+aXNV
bmRlZmluZWRPck51bGwoKSA/IFFTdHJpbmcoKSA6IGFyZ3NbMl0tPnRvU3RyaW5nKGV4ZWMpLnFz
dHJpbmcoKTsKICAgICAgIHBhcnNlV2luZG93RmVhdHVyZXMoZmVhdHVyZXMsIHdpbmRvd0FyZ3Mp
OwogICAgICAgCi0gICAgICBpbnQgc2NyZWVuTnVtYmVyID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9w
KCktPnNjcmVlbk51bWJlcih3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCkpOwotICAgICAgY29uc3Ry
YWluVG9WaXNpYmxlKFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShzY3Jl
ZW5OdW1iZXIpLCB3aW5kb3dBcmdzKTsKKyAgICAgIGludCBzY3JlZW5OdW1iZXIgPSBRRGVza3Rv
cFdpZGdldDo6c2NyZWVuTnVtYmVyKHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKSk7CisgICAgICBj
b25zdHJhaW5Ub1Zpc2libGUoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KHNjcmVlbk51
bWJlciksIHdpbmRvd0FyZ3MpOwogICAgICAgCiAgICAgICAvLyBwcmVwYXJlIGFyZ3VtZW50cwog
ICAgICAgS1VSTCB1cmw7CkBAIC0xNjc1LDY4ICsxNjYxLDU4IEBACiAgIGNhc2UgV2luZG93OjpT
Y3JvbGw6CiAgIGNhc2UgV2luZG93OjpTY3JvbGxUbzoKICAgICB3aW5kb3ctPnVwZGF0ZUxheW91
dCgpOwotICAgIGlmKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KQorICAgIGlmIChhcmdzLnNp
emUoKSA+PSAyICYmIHdpZGdldCkKICAgICAgIHdpZGdldC0+c2V0Q29udGVudHNQb3MoYXJnc1sw
XS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpNb3ZlQnk6Ci0gICAgaWYoYXJncy5zaXplKCkg
Pj0gMiAmJiB3aWRnZXQpCi0gICAgewotICAgICAgUVdpZGdldCAqIHRsID0gd2lkZ2V0LT50b3BM
ZXZlbFdpZGdldCgpOwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0
b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJl
cih0bCkpOwotICAgICAgSW50UG9pbnQgZGVzdCA9IHRsLT5wb3MoKSArIEludFBvaW50KCBhcmdz
WzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICk7Ci0gICAgICAvLyBT
ZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRl
IHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICAgIGlmICggZGVzdC54KCkgPj0gc2cueCgp
ICYmIGRlc3QueSgpID49IHNnLngoKSAmJgotICAgICAgICAgICBkZXN0LngoKSt0bC0+d2lkdGgo
KSA8PSBzZy53aWR0aCgpK3NnLngoKSAmJgotICAgICAgICAgICBkZXN0LnkoKSt0bC0+aGVpZ2h0
KCkgPD0gc2cuaGVpZ2h0KCkrc2cueSgpICkKLSAgICAgICAgdGwtPm1vdmUoIGRlc3QgKTsKKyAg
ICBpZiAoYXJncy5zaXplKCkgPj0gMiAmJiB3aWRnZXQpIHsKKyAgICAgIFFXaWRnZXQqIHRsID0g
d2lkZ2V0LT50b3BMZXZlbFdpZGdldCgpOworICAgICAgSW50UmVjdCBzZyA9IFFEZXNrdG9wV2lk
Z2V0OjpzY3JlZW5HZW9tZXRyeShRRGVza3RvcFdpZGdldDo6c2NyZWVuTnVtYmVyKHRsKSk7Cisg
ICAgICBJbnRQb2ludCBkZXN0ID0gdGwtPnBvcygpICsgSW50UG9pbnQoYXJnc1swXS0+dG9JbnQz
MihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CisgICAgICAvLyBTZWN1cml0eSBjaGVj
ayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUg
dGhpcyBjaGVjaykKKyAgICAgIGlmIChzZy5jb250YWlucyhJbnRSZWN0KGRlc3QsIEludFNpemUo
dGwtPndpZHRoKCksIHRsLT5oZWlnaHQoKSkpKSkKKyAgICAgICAgdGwtPm1vdmUoZGVzdCk7CiAg
ICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICBjYXNlIFdpbmRvdzo6TW92ZVRvOgot
ICAgIGlmKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KQotICAgIHsKLSAgICAgIFFXaWRnZXQg
KiB0bCA9IHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKTsKLSAgICAgICAgICBJbnRSZWN0IHNnID0g
UUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkdlb21ldHJ5KFFBcHBsaWNhdGlvbjo6ZGVz
a3RvcCgpLT5zY3JlZW5OdW1iZXIodGwpKTsKLSAgICAgIEludFBvaW50IGRlc3QoIGFyZ3NbMF0t
PnRvSW50MzIoZXhlYykrc2cueCgpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpK3NnLnkoKSApOwot
ICAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJy
b3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgICBpZiAoIGRlc3QueCgp
ID49IHNnLngoKSAmJiBkZXN0LnkoKSA+PSBzZy55KCkgJiYKLSAgICAgICAgICAgZGVzdC54KCkr
dGwtPndpZHRoKCkgPD0gc2cud2lkdGgoKStzZy54KCkgJiYKLSAgICAgICAgICAgZGVzdC55KCkr
dGwtPmhlaWdodCgpIDw9IHNnLmhlaWdodCgpK3NnLnkoKSApCi0gICAgICAgIHRsLT5tb3ZlKCBk
ZXN0ICk7CisgICAgaWYgKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CisgICAgICBRV2lk
Z2V0KiB0bCA9IHdpZGdldC0+dG9wTGV2ZWxXaWRnZXQoKTsKKyAgICAgIEludFJlY3Qgc2cgPSBR
RGVza3RvcFdpZGdldDo6c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJl
cih0bCkpOworICAgICAgSW50UG9pbnQgZGVzdChhcmdzWzBdLT50b0ludDMyKGV4ZWMpICsgc2cu
eCgpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICsgc2cueSgpKTsKKyAgICAgIC8vIFNlY3VyaXR5
IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlz
YWJsZSB0aGlzIGNoZWNrKQorICAgICAgaWYgKHNnLmNvbnRhaW5zKEludFJlY3QoZGVzdCwgSW50
U2l6ZSh0bC0+d2lkdGgoKSwgdGwtPmhlaWdodCgpKSkpKQorICAgICAgICB0bC0+bW92ZShkZXN0
KTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpSZXNp
emVCeToKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkKLSAgICB7Ci0gICAgICBR
V2lkZ2V0ICogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7Ci0gICAgICBJbnRTaXplIGRl
c3QgPSB0bC0+c2l6ZSgpICsgSW50U2l6ZSggYXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sx
XS0+dG9JbnQzMihleGVjKSApOwotICAgICAgICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246
OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnkoUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVl
bk51bWJlcih0bCkpOworICAgIGlmIChhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkgeworICAg
ICAgUVdpZGdldCogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7CisgICAgICBJbnRTaXpl
IGRlc3QgPSB0bC0+c2l6ZSgpICsgSW50U2l6ZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdz
WzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgIEludFJlY3Qgc2cgPSBRRGVza3RvcFdpZGdldDo6
c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcih0bCkpOwogICAgICAg
Ly8gU2VjdXJpdHkgY2hlY2s6IHdpdGhpbiBkZXNrdG9wIGxpbWl0cyBhbmQgYmlnZ2VyIHRoYW4g
MTAweDEwMCAocGVyIHNwZWMpCi0gICAgICBpZiAoIHRsLT54KCkrZGVzdC53aWR0aCgpIDw9IHNn
LngoKStzZy53aWR0aCgpICYmCi0gICAgICAgICAgIHRsLT55KCkrZGVzdC5oZWlnaHQoKSA8PSBz
Zy55KCkrc2cuaGVpZ2h0KCkgJiYKLSAgICAgICAgICAgZGVzdC53aWR0aCgpID49IDEwMCAmJiBk
ZXN0LmhlaWdodCgpID49IDEwMCApCisgICAgICBpZiAodGwtPngoKSArIGRlc3Qud2lkdGgoKSA8
PSBzZy5yaWdodCgpICYmIHRsLT55KCkgKyBkZXN0LmhlaWdodCgpIDw9IHNnLmJvdHRvbSgpCisg
ICAgICAgICAgICYmIGRlc3Qud2lkdGgoKSA+PSAxMDAgJiYgZGVzdC5oZWlnaHQoKSA+PSAxMDAp
CiAgICAgICB7CiAgICAgICAgIC8vIFRha2UgaW50byBhY2NvdW50IHRoZSB3aW5kb3cgZnJhbWUK
ICAgICAgICAgaW50IGRlbHRhV2lkdGggPSB0bC0+ZnJhbWVHZW9tZXRyeSgpLndpZHRoKCkgLSB0
bC0+d2lkdGgoKTsKICAgICAgICAgaW50IGRlbHRhSGVpZ2h0ID0gdGwtPmZyYW1lR2VvbWV0cnko
KS5oZWlnaHQoKSAtIHRsLT5oZWlnaHQoKTsKLSAgICAgICAgdGwtPnJlc2l6ZSggZGVzdC53aWR0
aCgpIC0gZGVsdGFXaWR0aCwgZGVzdC5oZWlnaHQoKSAtIGRlbHRhSGVpZ2h0ICk7CisgICAgICAg
IHRsLT5yZXNpemUoZGVzdC53aWR0aCgpIC0gZGVsdGFXaWR0aCwgZGVzdC5oZWlnaHQoKSAtIGRl
bHRhSGVpZ2h0KTsKICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
IGNhc2UgV2luZG93OjpSZXNpemVUbzoKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdl
dCkKLSAgICB7CisgICAgaWYgKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CiAgICAgICBR
V2lkZ2V0ICogdGwgPSB3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7Ci0gICAgICBJbnRTaXplIGRl
c3QgPSBJbnRTaXplKCBhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4
ZWMpICk7Ci0gICAgICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5z
Y3JlZW5HZW9tZXRyeShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuTnVtYmVyKHRsKSk7
CisgICAgICBJbnRTaXplIGRlc3QgPSBJbnRTaXplKGFyZ3NbMF0tPnRvSW50MzIoZXhlYyksIGFy
Z3NbMV0tPnRvSW50MzIoZXhlYykpOworICAgICAgSW50UmVjdCBzZyA9IFFEZXNrdG9wV2lkZ2V0
OjpzY3JlZW5HZW9tZXRyeShRRGVza3RvcFdpZGdldDo6c2NyZWVuTnVtYmVyKHRsKSk7CiAgICAg
ICAvLyBTZWN1cml0eSBjaGVjazogd2l0aGluIGRlc2t0b3AgbGltaXRzIGFuZCBiaWdnZXIgdGhh
biAxMDB4MTAwIChwZXIgc3BlYykKLSAgICAgIGlmICggdGwtPngoKStkZXN0LndpZHRoKCkgPD0g
c2cueCgpK3NnLndpZHRoKCkgJiYKLSAgICAgICAgICAgdGwtPnkoKStkZXN0LmhlaWdodCgpIDw9
IHNnLnkoKStzZy5oZWlnaHQoKSAmJgotICAgICAgICAgICBkZXN0LndpZHRoKCkgPj0gMTAwICYm
IGRlc3QuaGVpZ2h0KCkgPj0gMTAwICkKKyAgICAgIGlmICh0bC0+eCgpICsgZGVzdC53aWR0aCgp
IDw9IHNnLnJpZ2h0KCkgJiYgdGwtPnkoKSArIGRlc3QuaGVpZ2h0KCkgPD0gc2cuYm90dG9tKCkg
JiYKKyAgICAgICAgICAgZGVzdC53aWR0aCgpID49IDEwMCAmJiBkZXN0LmhlaWdodCgpID49IDEw
MCkKICAgICAgIHsKICAgICAgICAgLy8gVGFrZSBpbnRvIGFjY291bnQgdGhlIHdpbmRvdyBmcmFt
ZQogICAgICAgICBpbnQgZGVsdGFXaWR0aCA9IHRsLT5mcmFtZUdlb21ldHJ5KCkud2lkdGgoKSAt
IHRsLT53aWR0aCgpOwogICAgICAgICBpbnQgZGVsdGFIZWlnaHQgPSB0bC0+ZnJhbWVHZW9tZXRy
eSgpLmhlaWdodCgpIC0gdGwtPmhlaWdodCgpOwotICAgICAgICB0bC0+cmVzaXplKCBkZXN0Lndp
ZHRoKCkgLSBkZWx0YVdpZHRoLCBkZXN0LmhlaWdodCgpIC0gZGVsdGFIZWlnaHQgKTsKKyAgICAg
ICAgdGwtPnJlc2l6ZShkZXN0LndpZHRoKCkgLSBkZWx0YVdpZHRoLCBkZXN0LmhlaWdodCgpIC0g
ZGVsdGFIZWlnaHQpOwogICAgICAgfQogICAgIH0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
SW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvZWNtYS9r
anNfZG9tLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBraHRtbC9lY21hL2tqc19kb20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSwzNiArMjEsMzQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJranNfZG9tLmgiCiAKLSNpbmNsdWRlIDxrZGVidWcuaD4KLSNpbmNsdWRlICJGcmFt
ZS5oIgotI2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKLSNpbmNsdWRlICJ4bWwvZG9t
Ml92aWV3c2ltcGwuaCIKLSNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50VHlwZUltcGwuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbklt
cGwuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50SW1wbC5oIgotI2luY2x1ZGUgInhtbC9k
b21fdGV4dGltcGwuaCIKLSNpbmNsdWRlICJ4bWwvRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgInht
bC9kb21feG1saW1wbC5oIgotI2luY2x1ZGUgImh0bWwvaHRtbF9kb2N1bWVudGltcGwuaCIKLSNp
bmNsdWRlICJjc3MvY3NzX3J1bGVpbXBsLmgiCi0jaW5jbHVkZSAiY3NzL2Nzc19zdHlsZXNoZWV0
aW1wbC5oIgotCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlSW1wbC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRG9jdW1l
bnRUeXBlLmgiCi0KLSNpbmNsdWRlICJranNfaHRtbC5oIgorI2luY2x1ZGUgImNzcy9jc3NfcnVs
ZWltcGwuaCIKKyNpbmNsdWRlICJjc3MvY3NzX3N0eWxlc2hlZXRpbXBsLmgiCisjaW5jbHVkZSAi
ZG9tL2RvbV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJodG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgi
CisjaW5jbHVkZSAiaHRtbF9vYmplY3RpbXBsLmgiCisjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCisj
aW5jbHVkZSAia2h0bWxfc2V0dGluZ3MuaCIKICNpbmNsdWRlICJranNfY3NzLmgiCisjaW5jbHVk
ZSAia2pzX2V2ZW50cy5oIgorI2luY2x1ZGUgImtqc19odG1sLmgiCiAjaW5jbHVkZSAia2pzX3Jh
bmdlLmgiCiAjaW5jbHVkZSAia2pzX3RyYXZlcnNhbC5oIgotI2luY2x1ZGUgImtqc19ldmVudHMu
aCIKICNpbmNsdWRlICJranNfdmlld3MuaCIKICNpbmNsdWRlICJranNfd2luZG93LmgiCi0jaW5j
bHVkZSAiZG9tL2RvbV9leGNlcHRpb24uaCIKKyNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVyX2Nh
bnZhcy5oIgorI2luY2x1ZGUgInhtbC9FdmVudE5hbWVzLmgiCisjaW5jbHVkZSAieG1sL2RvbTJf
ZXZlbnRzaW1wbC5oIgorI2luY2x1ZGUgInhtbC9kb20yX3ZpZXdzaW1wbC5oIgorI2luY2x1ZGUg
InhtbC9kb21fdGV4dGltcGwuaCIKKyNpbmNsdWRlICJ4bWwvZG9tX3htbGltcGwuaCIKKyNpbmNs
dWRlIDxrZGVidWcuaD4KIAotI2luY2x1ZGUgImh0bWxfb2JqZWN0aW1wbC5oIgotI2luY2x1ZGUg
Imh0bWxuYW1lcy5oIgotCiAjaWYgX19BUFBMRV9fCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
cnVudGltZV9vYmplY3QuaD4KICNlbmRpZgpJbmRleDoga2h0bWwvbWlzYy9raHRtbGxheW91dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtodG1sL21pc2Mva2h0bWxsYXlvdXQuaAkocmV2aXNpb24gMTI0NjMp
CisrKyBraHRtbC9taXNjL2todG1sbGF5b3V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKIAogICAgIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICAgIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MSwxMTQgKzIyLDEwNSBAQAogCiAgICAgVGhpcyB3aWRnZXQgaG9sZHMgc29tZSB1c2VmdWwgZGVm
aW5pdGlvbnMgbmVlZGVkIGZvciBsYXlvdXRpbmcgRWxlbWVudHMKICovCisKICNpZm5kZWYgSFRN
TF9MQVlPVVRfSAogI2RlZmluZSBIVE1MX0xBWU9VVF9ICiAKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qCi0gKiB0aGlzIG5hbWVzcGFjZSBjb250YWlucyBk
ZWZpbml0aW9ucyBmb3IgdmFyaW91cyB0eXBlcyBuZWVkZWQgZm9yCi0gKiBsYXlvdXRpbmcuCi0g
Ki8KLW5hbWVzcGFjZSBraHRtbAoteworbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY29uc3Qg
aW50IFVOREVGSU5FRCA9IC0xOwogCi0gICAgLy8gYWxpZ25tZW50Ci0gICAgZW51bSBWQWxpZ24g
eyBWTm9uZT0wLCBCb3R0b20sIFZDZW50ZXIsIFRvcCwgQmFzZWxpbmUgfTsKLSAgICBlbnVtIEhB
bGlnbiB7IEhEZWZhdWx0LCBMZWZ0LCBIQ2VudGVyLCBSaWdodCwgSE5vbmUgPSAwIH07Ci0KLSAg
ICAvKgotICAgICAqICVtdWx0aUxlbmd0aCBhbmQgJUxlbmd0aAotICAgICAqLwogICAgIGVudW0g
TGVuZ3RoVHlwZSB7IEF1dG8gPSAwLCBSZWxhdGl2ZSwgUGVyY2VudCwgRml4ZWQsIFN0YXRpYywg
SW50cmluc2ljLCBNaW5JbnRyaW5zaWMgfTsKICAgICBzdHJ1Y3QgTGVuZ3RoCiAgICAgewotCUxl
bmd0aCgpIHsgKigoUV9VSU5UMzIgKil0aGlzKSA9IDA7IH0KKyAgICAgICAgLy8gRklYTUU6IEEg
bW9yZSByZWxpYWJsZSBhbmQgc3RyYWlnaHRmb3J3YXJkIHdheSBvZiBkb2luZyB0aGlzIGlzIHRv
IGp1c3QgaGF2ZQorICAgICAgICAvLyBhbiB1bnNpZ25lZCBhbmQgZXh0cmFjdCB0aGUgYml0cyBh
cyBuZWVkZWQsIGluc3RlYWQgb2YgcmVseWluZyBvbiBiaXQgZmllbGRzIGxheW91dAorICAgICAg
ICAvLyBmaXR0aW5nIGluIGEgMzItYml0IGludGVnZXIuIFNob3VsZCBmaXggdGhpcy4KKworCUxl
bmd0aCgpIHsgKigodWludDMyX3QgKil0aGlzKSA9IDA7IH0KICAgICAgICAgTGVuZ3RoKExlbmd0
aFR5cGUgdCkgeyB0eXBlID0gdDsgdmFsdWUgPSAwOyBxdWlyayA9IGZhbHNlOyB9CiAgICAgICAg
IExlbmd0aChpbnQgdiwgTGVuZ3RoVHlwZSB0LCBib29sIHE9ZmFsc2UpIDogdmFsdWUodiksIHR5
cGUodCksIHF1aXJrKHEpIHt9CiAgICAgICAgIExlbmd0aChjb25zdCBMZW5ndGggJm8pCi0JICAg
IHsgKigoUV9VSU5UMzIgKil0aGlzKSA9ICooKFFfVUlOVDMyICopJm8pOyB9CisJICAgIHsgKigo
dWludDMyX3QgKil0aGlzKSA9ICooKHVpbnQzMl90ICopJm8pOyB9CiAKICAgICAgICAgTGVuZ3Ro
JiBvcGVyYXRvcj0oY29uc3QgTGVuZ3RoJiBvKQotICAgICAgICAgICAgeyAqKChRX1VJTlQzMiAq
KXRoaXMpID0gKigoUV9VSU5UMzIgKikmbyk7IHJldHVybiAqdGhpczsgfQorICAgICAgICAgICAg
eyAqKCh1aW50MzJfdCAqKXRoaXMpID0gKigodWludDMyX3QgKikmbyk7IHJldHVybiAqdGhpczsg
fQogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoJiBvKSBjb25zdAotICAgICAg
ICAgICAgeyByZXR1cm4gKigoUV9VSU5UMzIgKil0aGlzKSA9PSAqKChRX1VJTlQzMiAqKSZvKTsg
fQorICAgICAgICAgICAgeyByZXR1cm4gKigodWludDMyX3QgKil0aGlzKSA9PSAqKCh1aW50MzJf
dCAqKSZvKTsgfQogICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTGVuZ3RoJiBvKSBjb25z
dAotICAgICAgICAgICAgeyByZXR1cm4gKigoUV9VSU5UMzIgKil0aGlzKSAhPSAqKChRX1VJTlQz
MiAqKSZvKTsgfQorICAgICAgICAgICAgeyByZXR1cm4gKigodWludDMyX3QgKil0aGlzKSAhPSAq
KCh1aW50MzJfdCAqKSZvKTsgfQogCiAKIAlpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gdmFs
dWU7IH0KIAotCS8qCi0JICogd29ya3Mgb25seSBmb3IgRml4ZWQgYW5kIFBlcmNlbnQsIHJldHVy
bnMgLTEgb3RoZXJ3aXNlCi0JICovCi0JaW50IHdpZHRoKGludCBtYXhXaWR0aCkgY29uc3QKLQkg
ICAgewotCQlzd2l0Y2godHlwZSkKLQkJeworCS8vIG5vdGU6IHdvcmtzIG9ubHkgZm9yIGNlcnRh
aW4gdHlwZXMsIHJldHVybnMgLTEgb3RoZXJ3aXNlCisJaW50IHdpZHRoKGludCBtYXhXaWR0aCkg
Y29uc3QgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAJCWNhc2UgRml4ZWQ6CiAJCSAg
ICByZXR1cm4gdmFsdWU7CiAJCWNhc2UgUGVyY2VudDoKLQkJICAgIHJldHVybiBtYXhXaWR0aCp2
YWx1ZS8xMDA7CisJCSAgICByZXR1cm4gbWF4V2lkdGggKiB2YWx1ZSAvIDEwMDsKIAkJY2FzZSBB
dXRvOgogCQkgICAgcmV0dXJuIG1heFdpZHRoOwogCQlkZWZhdWx0OgogCQkgICAgcmV0dXJuIC0x
OwotCQl9Ci0JICAgIH0KLQkvKgotCSAqIHJldHVybnMgdGhlIG1pbmltdW0gd2lkdGggdmFsdWUg
d2hpY2ggY291bGQgd29yay4uLgotCSAqLwotCWludCBtaW5XaWR0aChpbnQgbWF4V2lkdGgpIGNv
bnN0Ci0JICAgIHsKLQkJc3dpdGNoKHR5cGUpCi0JCXsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisJaW50IG1pbldpZHRoKGludCBtYXhXaWR0aCkgY29uc3QgeworICAgICAgICAgICAgc3dp
dGNoICh0eXBlKSB7CiAJCWNhc2UgRml4ZWQ6CiAJCSAgICByZXR1cm4gdmFsdWU7CiAJCWNhc2Ug
UGVyY2VudDoKLQkJICAgIHJldHVybiBtYXhXaWR0aCp2YWx1ZS8xMDA7CisJCSAgICByZXR1cm4g
bWF4V2lkdGggKiB2YWx1ZSAvIDEwMDsKIAkJY2FzZSBBdXRvOgogCQlkZWZhdWx0OgogCQkgICAg
cmV0dXJuIDA7Ci0JCX0KLQkgICAgfQotICAgICAgICBib29sIGlzQXV0bygpIGNvbnN0IHsgcmV0
dXJuICh0eXBlID09IEF1dG8pOyB9Ci0gICAgICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNvbnN0IHsg
cmV0dXJuICh0eXBlID09IFJlbGF0aXZlKTsgfQotICAgICAgICBib29sIGlzUGVyY2VudCgpIGNv
bnN0IHsgcmV0dXJuICh0eXBlID09IFBlcmNlbnQpOyB9Ci0gICAgICAgIGJvb2wgaXNGaXhlZCgp
IGNvbnN0IHsgcmV0dXJuICh0eXBlID09IEZpeGVkKTsgfQotICAgICAgICBib29sIGlzU3RhdGlj
KCkgY29uc3QgeyByZXR1cm4gKHR5cGUgPT0gU3RhdGljKTsgfQotICAgICAgICBib29sIGlzSW50
cmluc2ljT3JBdXRvKCkgY29uc3QgeyByZXR1cm4gKHR5cGUgPT0gQXV0byB8fCB0eXBlID09IE1p
bkludHJpbnNpYyB8fCB0eXBlID09IEludHJpbnNpYyk7IH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogCisgICAgICAgIGJvb2wgaXNBdXRvKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9PSBBdXRv
OyB9CisgICAgICAgIGJvb2wgaXNSZWxhdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUgPT0gUmVs
YXRpdmU7IH0KKyAgICAgICAgYm9vbCBpc1BlcmNlbnQoKSBjb25zdCB7IHJldHVybiB0eXBlID09
IFBlcmNlbnQ7IH0KKyAgICAgICAgYm9vbCBpc0ZpeGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9
PSBGaXhlZDsgfQorICAgICAgICBib29sIGlzU3RhdGljKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9
PSBTdGF0aWM7IH0KKyAgICAgICAgYm9vbCBpc0ludHJpbnNpY09yQXV0bygpIGNvbnN0IHsgcmV0
dXJuIHR5cGUgPT0gQXV0byB8fCB0eXBlID09IE1pbkludHJpbnNpYyB8fCB0eXBlID09IEludHJp
bnNpYzsgfQorCiAgICAgICAgIGludCB2YWx1ZSA6IDI4OwogICAgICAgICBMZW5ndGhUeXBlIHR5
cGUgOiAzOwogICAgICAgICBib29sIHF1aXJrIDogMTsKICAgICB9OwogCiAgICAgc3RydWN0IEdh
cFJlY3RzIHsKLSAgICAgICAgSW50UmVjdCBtX2xlZnQ7Ci0gICAgICAgIEludFJlY3QgbV9jZW50
ZXI7Ci0gICAgICAgIEludFJlY3QgbV9yaWdodDsKKyAgICAgICAgY29uc3QgSW50UmVjdCYgbGVm
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQorICAgICAgICBjb25zdCBJbnRSZWN0JiBjZW50
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlcjsgfQorICAgICAgICBjb25zdCBJbnRSZWN0JiBy
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KICAgICAgICAgCi0gICAgICAgIEludFJl
Y3QgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQotICAgICAgICBJbnRSZWN0IGNlbnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyOyB9Ci0gICAgICAgIEludFJlY3QgcmlnaHQoKSBj
b25zdCB7IHJldHVybiBtX3JpZ2h0OyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHVuaXRlTGVm
dChjb25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdCA9IG1fbGVmdC51bml0ZShyKTsgfQotICAgICAg
ICB2b2lkIHVuaXRlQ2VudGVyKGNvbnN0IEludFJlY3QmIHIpIHsgbV9jZW50ZXIgPSBtX2NlbnRl
ci51bml0ZShyKTsgfQotICAgICAgICB2b2lkIHVuaXRlUmlnaHQoY29uc3QgSW50UmVjdCYgcikg
eyBtX3JpZ2h0ID0gbV9yaWdodC51bml0ZShyKTsgfQorICAgICAgICB2b2lkIHVuaXRlTGVmdChj
b25zdCBJbnRSZWN0JiByKSB7IG1fbGVmdC51bml0ZShyKTsgfQorICAgICAgICB2b2lkIHVuaXRl
Q2VudGVyKGNvbnN0IEludFJlY3QmIHIpIHsgbV9jZW50ZXIudW5pdGUocik7IH0KKyAgICAgICAg
dm9pZCB1bml0ZVJpZ2h0KGNvbnN0IEludFJlY3QmIHIpIHsgbV9yaWdodC51bml0ZShyKTsgfQog
ICAgICAgICB2b2lkIHVuaXRlKGNvbnN0IEdhcFJlY3RzJiBvKSB7IHVuaXRlTGVmdChvLmxlZnQo
KSk7IHVuaXRlQ2VudGVyKG8uY2VudGVyKCkpOyB1bml0ZVJpZ2h0KG8ucmlnaHQoKSk7IH0KIAog
ICAgICAgICBvcGVyYXRvciBJbnRSZWN0KCkgY29uc3QgewotICAgICAgICAgICAgSW50UmVjdCBy
ZXN1bHQgPSBtX2xlZnQudW5pdGUobV9jZW50ZXIpOwotICAgICAgICAgICAgcmVzdWx0ID0gcmVz
dWx0LnVuaXRlKG1fcmlnaHQpOworICAgICAgICAgICAgSW50UmVjdCByZXN1bHQgPSBtX2xlZnQ7
CisgICAgICAgICAgICByZXN1bHQudW5pdGUobV9jZW50ZXIpOworICAgICAgICAgICAgcmVzdWx0
LnVuaXRlKG1fcmlnaHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQog
ICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR2FwUmVjdHMmIG90aGVyKSB7CiAgICAgICAg
ICAgICByZXR1cm4gbV9sZWZ0ID09IG90aGVyLmxlZnQoKSAmJiBtX2NlbnRlciA9PSBvdGhlci5j
ZW50ZXIoKSAmJiBtX3JpZ2h0ID09IG90aGVyLnJpZ2h0KCk7CiAgICAgICAgIH0KICAgICAgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEdhcFJlY3RzJiBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9
PSBvdGhlcik7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEludFJlY3QgbV9sZWZ0OworICAg
ICAgICBJbnRSZWN0IG1fY2VudGVyOworICAgICAgICBJbnRSZWN0IG1fcmlnaHQ7CiAgICAgfTsK
LX07CiAKK30KKwogI2VuZGlmCkluZGV4OiBwbGF0Zm9ybS9GbG9hdFNpemUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHBsYXRmb3JtL0Zsb2F0U2l6ZS5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysgcGxhdGZv
cm0vRmxvYXRTaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNDUgKzI2LDEzIEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKwogI2luY2x1ZGUgIklu
dFNpemUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFNpemU6OkZsb2F0U2l6ZSgp
IDogdygtMS4wZiksIGgoLTEuMGYpCitGbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKSA6IG1fd2lkdGgoc2l6ZS53aWR0aCgpKSwgbV9oZWlnaHQoc2l6ZS5oZWlnaHQoKSkK
IHsKIH0KIAotRmxvYXRTaXplOjpGbG9hdFNpemUoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
OiB3KHdpZHRoKSwgaChoZWlnaHQpCi17CiB9Ci0KLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0
IEludFNpemUmIG8pIDogdyhvLndpZHRoKCkpLCBoKG8uaGVpZ2h0KCkpCi17Ci19Ci0KLWJvb2wg
RmxvYXRTaXplOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA+PSAwLjBmICYmIGgg
Pj0gMC4wZjsKLX0KLQotRmxvYXRTaXplIEZsb2F0U2l6ZTo6ZXhwYW5kZWRUbyhjb25zdCBGbG9h
dFNpemUmIG8pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSh3ID4gby53ID8gdyA6IG8u
dywgaCA+IG8uaCA/IGggOiBvLmgpOwotfQotCi1GbG9hdFNpemUgb3BlcmF0b3IrKGNvbnN0IEZs
b2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBGbG9hdFNpemUo
YS53ICsgYi53LCBhLmggKyBiLmgpOwotfQotCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRT
aXplJiBhLCBjb25zdCBGbG9hdFNpemUmIGIpCi17Ci0gICAgcmV0dXJuIGEudyA9PSBiLncgJiYg
YS5oID09IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29u
c3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBiLmg7
Ci19Ci0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBwbGF0Zm9ybS9JbnRS
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkocmV2aXNpb24gMTI0
NjMpCisrKyBwbGF0Zm9ybS9JbnRSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKKwogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAogdXNpbmcgc3RkOjptYXg7CkBA
IC0zMiwxNjAgKzMzLDYwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW50UmVjdDo6SW50
UmVjdCgpIDogeHAoMCksIHlwKDApLCB3KDApLCBoKDApCitib29sIEludFJlY3Q6OmludGVyc2Vj
dHMoY29uc3QgSW50UmVjdCYgb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gQ2hlY2tpbmcgZW1wdGlu
ZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwgYXMgemVyby4KKyAgICByZXR1cm4g
IWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgpCisgICAgICAgICYmIHgoKSA8IG90aGVyLnJp
Z2h0KCkgJiYgb3RoZXIueCgpIDwgcmlnaHQoKQorICAgICAgICAmJiB5KCkgPCBvdGhlci5ib3R0
b20oKSAmJiBvdGhlci55KCkgPCBib3R0b20oKTsKIH0KIAotSW50UmVjdDo6SW50UmVjdChpbnQg
eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgp
LCBoKGhlaWdodCkKK2Jvb2wgSW50UmVjdDo6Y29udGFpbnMoY29uc3QgSW50UmVjdCYgb3RoZXIp
IGNvbnN0CiB7CisgICAgcmV0dXJuIHgoKSA8PSBvdGhlci54KCkgJiYgcmlnaHQoKSA+PSBvdGhl
ci5yaWdodCgpCisgICAgICAgICYmIHkoKSA8PSBvdGhlci55KCkgJiYgYm90dG9tKCkgPj0gb3Ro
ZXIuYm90dG9tKCk7CiB9CiAKLUludFJlY3Q6OkludFJlY3QoSW50UG9pbnQgcCwgSW50U2l6ZSBz
KSA6IHhwKHAueCgpKSwgeXAocC55KCkpLCB3KHMud2lkdGgoKSksIGgocy5oZWlnaHQoKSkKK3Zv
aWQgSW50UmVjdDo6aW50ZXJzZWN0KGNvbnN0IEludFJlY3QmIG90aGVyKQogewotfQorICAgIGlu
dCBsID0gbWF4KHgoKSwgb3RoZXIueCgpKTsKKyAgICBpbnQgdCA9IG1heCh5KCksIG90aGVyLnko
KSk7CisgICAgaW50IHIgPSBtaW4ocmlnaHQoKSwgb3RoZXIucmlnaHQoKSk7CisgICAgaW50IGIg
PSBtaW4oYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsKIAotSW50UmVjdDo6SW50UmVjdChjb25z
dCBJbnRQb2ludCAmdG9wTGVmdCwgY29uc3QgSW50UG9pbnQgJmJvdHRvbVJpZ2h0KQotewotICAg
IHhwID0gdG9wTGVmdC54KCk7Ci0gICAgeXAgPSB0b3BMZWZ0LnkoKTsKLSAgICB3ID0gYm90dG9t
UmlnaHQueCgpIC0gdG9wTGVmdC54KCkgKyAxOwotICAgIGggPSBib3R0b21SaWdodC55KCkgLSB0
b3BMZWZ0LnkoKSArIDE7Ci19Ci0KLWJvb2wgSW50UmVjdDo6aXNOdWxsKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gdyA9PSAwICYmIGggPT0gMDsKLX0KLQotYm9vbCBJbnRSZWN0Ojppc1ZhbGlkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gdyA+IDAgJiYgaCA+IDA7Ci19Ci0KLWJvb2wgSW50UmVjdDo6
aXNFbXB0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPD0gMCB8fCBoIDw9IDA7Ci19Ci0KLWlu
dCBJbnRSZWN0OjpyaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHhwICsgdyAtIDE7Ci19Ci0K
LWludCBJbnRSZWN0Ojpib3R0b20oKSBjb25zdAotewotICAgIHJldHVybiB5cCArIGggLSAxOwot
fQotCi1JbnRQb2ludCBJbnRSZWN0Ojp0b3BMZWZ0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50
UG9pbnQoeHAseXApOwotfQotCi1JbnRQb2ludCBJbnRSZWN0Ojp0b3BSaWdodCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIEludFBvaW50KHJpZ2h0KCksdG9wKCkpOwotfQotCi1JbnRQb2ludCBJbnRS
ZWN0Ojpib3R0b21SaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFBvaW50KHJpZ2h0KCks
Ym90dG9tKCkpOwotfQotCi1JbnRQb2ludCBJbnRSZWN0Ojpib3R0b21MZWZ0KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gSW50UG9pbnQobGVmdCgpLGJvdHRvbSgpKTsKLX0KLQotSW50U2l6ZSBJbnRS
ZWN0OjpzaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50U2l6ZSh3LGgpOwotfQotCi1JbnRS
ZWN0IEludFJlY3Q6OnVuaXRlKGNvbnN0IEludFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgaWYgKHIu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgCi0gICAgaWYgKGlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIHI7Ci0KLSAgICBpbnQgbngsIG55LCBudywgbmg7Ci0KLSAgICBu
eCA9IG1pbih4cCwgci54cCk7Ci0gICAgbnkgPSBtaW4oeXAsIHIueXApOwotCi0gICAgaWYgKHhw
ICsgdyA+PSByLnhwICsgci53KSB7Ci0gICAgICAgIG53ID0geHAgKyB3IC0gbng7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgbncgPSByLnhwICsgci53IC0gbng7IAorICAgIC8vIFJldHVybiBhIGNs
ZWFuIGVtcHR5IHJlY3RhbmdsZSBmb3Igbm9uLWludGVyc2VjdGluZyBjYXNlcy4KKyAgICBpZiAo
bCA+PSByIHx8IHQgPj0gYikgeworICAgICAgICBsID0gMDsKKyAgICAgICAgdCA9IDA7CisgICAg
ICAgIHIgPSAwOworICAgICAgICBiID0gMDsKICAgICB9CiAKLSAgICBpZiAoeXAgKyBoID49IHIu
eXAgKyByLmgpIHsKLSAgICAgICAgbmggPSB5cCArIGggLSBueTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBuaCA9IHIueXAgKyByLmggLSBueTsgCi0gICAgfQotCi0gICAgcmV0dXJuIEludFJlY3Qo
bngsIG55LCBudywgbmgpOworICAgIG1fbG9jYXRpb24uc2V0WChsKTsKKyAgICBtX2xvY2F0aW9u
LnNldFkodCk7CisgICAgbV9zaXplLnNldFdpZHRoKHIgLSBsKTsKKyAgICBtX3NpemUuc2V0SGVp
Z2h0KGIgLSB0KTsKIH0KIAotSW50UmVjdCBJbnRSZWN0Ojpub3JtYWxpemUoKSBjb25zdAordm9p
ZCBJbnRSZWN0Ojp1bml0ZShjb25zdCBJbnRSZWN0JiBvdGhlcikKIHsKLSAgICBJbnRSZWN0IG5l
d1JlY3Q7Ci0gICAgCi0gICAgbmV3UmVjdC54cCAgPSAodyA8IDApID8gKHhwIC0gdykgOiB4cDsK
LSAgICBuZXdSZWN0LncgICA9ICh3IDwgMCkgPyAtdyA6IHc7Ci0gICAgCi0gICAgbmV3UmVjdC55
cCAgPSAoaCA8IDApID8gKHlwIC0gaCkgOiB5cDsKLSAgICBuZXdSZWN0LmggICA9IChoIDwgMCkg
PyAtaCA6IGg7Ci0gICAgCi0gICAgcmV0dXJuIG5ld1JlY3Q7Ci19Ci0KLWJvb2wgSW50UmVjdDo6
aW50ZXJzZWN0cyhjb25zdCBJbnRSZWN0ICZyKSBjb25zdAotewotICAgIHJldHVybiBpbnRlcnNl
Y3QocikuaXNWYWxpZCgpOwotfQotCi1JbnRSZWN0IEludFJlY3Q6OmludGVyc2VjdChjb25zdCBJ
bnRSZWN0ICZyKSBjb25zdAotewotICAgIGludCBueCwgbnksIG53LCBuaDsKLQotICAgIG54ID0g
bWF4KHhwLCByLnhwKTsKLSAgICBueSA9IG1heCh5cCwgci55cCk7Ci0KLSAgICBpZiAoeHAgKyB3
IDw9IHIueHAgKyByLncpIHsKLSAgICAgICAgbncgPSB4cCArIHcgLSBueDsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBudyA9IHIueHAgKyByLncgLSBueDsgCisgICAgLy8gSGFuZGxlIGVtcHR5IHNw
ZWNpYWwgY2FzZXMgZmlyc3QuCisgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICh5cCArIGggPD0gci55cCArIHIuaCkgewotICAg
ICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5oID0gci55cCAr
IHIuaCAtIG55OyAKLSAgICB9CisgICAgaW50IGwgPSBtaW4oeCgpLCBvdGhlci54KCkpOworICAg
IGludCB0ID0gbWluKHkoKSwgb3RoZXIueSgpKTsKKyAgICBpbnQgciA9IG1heChyaWdodCgpLCBv
dGhlci5yaWdodCgpKTsKKyAgICBpbnQgYiA9IG1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkp
OwogCi0gICAgcmV0dXJuIEludFJlY3QobngsIG55LCBudywgbmgpOworICAgIG1fbG9jYXRpb24u
c2V0WChsKTsKKyAgICBtX2xvY2F0aW9uLnNldFkodCk7CisgICAgbV9zaXplLnNldFdpZHRoKHIg
LSBsKTsKKyAgICBtX3NpemUuc2V0SGVpZ2h0KGIgLSB0KTsKIH0KIAotdm9pZCBJbnRSZWN0Ojpp
bmZsYXRlKGludCBzKQotewotICAgIHhwIC09IHM7Ci0gICAgeXAgLT0gczsKLSAgICB3ICs9IDIq
czsKLSAgICBoICs9IDIqczsKIH0KLQotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3QgJmEs
IGNvbnN0IEludFJlY3QgJmIpCi17Ci0gICAgcmV0dXJuIGEueHAgPT0gYi54cCAmJiBhLnlwID09
IGIueXAgJiYgYS53ID09IGIudyAmJiBhLmggPT0gYi5oOwotfQotCi1ib29sIG9wZXJhdG9yIT0o
Y29uc3QgSW50UmVjdCAmYSwgY29uc3QgSW50UmVjdCAmYikKLXsKLSAgICByZXR1cm4gIShhID09
IGIpOwotfQotCi19CkluZGV4OiBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5oCShyZXZpc2lvbiAxMjQ2MykKKysrIHBsYXRmb3Jt
L0ludFBvaW50QXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzcsNyArMzcsNiBAQAogcHVibGljOgogICAgIEludFBvaW50QXJyYXkoKSB7IH0KICAg
ICBJbnRQb2ludEFycmF5KGludCBzaXplKSA6IEFycmF5PEludFBvaW50PihzaXplKSB7IH0KLSAg
ICBJbnRQb2ludEFycmF5KGNvbnN0IEludFJlY3QgJnJlY3QpOwogICAgIEludFBvaW50QXJyYXko
aW50LCBjb25zdCBpbnQgKik7CiAgICAgCiAgICAgSW50UmVjdCBib3VuZGluZ1JlY3QoKSBjb25z
dDsKSW5kZXg6IHBsYXRmb3JtL0ludFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50
UG9pbnQuaAkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9JbnRQb2ludC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2MCArMjcsODcgQEAKICNk
ZWZpbmUgSU5UUE9JTlRfSF8KIAogI2lmIF9fQVBQTEVfXworCit0eXBlZGVmIHN0cnVjdCBDR1Bv
aW50IENHUG9pbnQ7CisKIC8vIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1
PgotI2lmICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8zMl9MSUtFXzY0CisjaWYgIV9fTFA2NF9f
ICYmICFOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9N
RVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBOU1BvaW50OwogI2Vsc2UKIHR5cGVk
ZWYgc3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7CiAjZW5kaWYKLXR5cGVkZWYgc3RydWN0IENHUG9p
bnQgQ0dQb2ludDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW50
UG9pbnQgewogcHVibGljOgotICAgIEludFBvaW50KCk7Ci0gICAgSW50UG9pbnQoaW50LCBpbnQp
OwotICAgIAorICAgIEludFBvaW50KCkgOiBtX3goMCksIG1feSgwKSB7IH0KKyAgICBJbnRQb2lu
dChpbnQgeCwgaW50IHkpIDogbV94KHgpLCBtX3koeSkgeyB9CisKKyAgICBpbnQgeCgpIGNvbnN0
IHsgcmV0dXJuIG1feDsgfQorICAgIGludCB5KCkgY29uc3QgeyByZXR1cm4gbV95OyB9CisKKyAg
ICB2b2lkIHNldFgoaW50IHgpIHsgbV94ID0geDsgfQorICAgIHZvaWQgc2V0WShpbnQgeSkgeyBt
X3kgPSB5OyB9CisKICNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBJbnRQb2ludChjb25zdCBOU1BvaW50
ICYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQotI2VuZGlm
Ci0gICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgQ0dQb2ludCAmKTsgLy8gZG9uJ3QgZG8gdGhp
cyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNlbmRpZgogCi0gICAgaW50IHgoKSBjb25z
dCB7IHJldHVybiB4Q29vcmQ7IH0KLSAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJuIHlDb29yZDsg
fQotICAgIAotICAgIHZvaWQgc2V0WChpbnQgeCkgeyB4Q29vcmQgPSB4OyB9Ci0gICAgdm9pZCBz
ZXRZKGludCB5KSB7IHlDb29yZCA9IHk7IH0KLSAgICAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIHhDb29yZCA9PSAwICYmIHlDb29yZCA9PSAwOyB9Ci0gICAgCi0gICAgSW50UG9p
bnQgJm9wZXJhdG9yIC09KGNvbnN0IEludFBvaW50ICZ0d28pIHsgeENvb3JkIC09IHR3by54Q29v
cmQ7IHlDb29yZCAtPSB0d28ueUNvb3JkOyByZXR1cm4gKnRoaXM7IH0KLSAgICBmcmllbmQgY29u
c3QgSW50UG9pbnQgb3BlcmF0b3IqKGNvbnN0IEludFBvaW50ICZwLCBkb3VibGUgcyk7Ci0gICAg
ZnJpZW5kIEludFBvaW50IG9wZXJhdG9yKyhjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJbnRQb2lu
dCAmKTsKLSAgICBmcmllbmQgSW50UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEludFBvaW50ICYsIGNv
bnN0IEludFBvaW50ICYpOworICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IENHUG9pbnQmKTsg
Ly8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBvcGVyYXRv
ciBDR1BvaW50KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExFX18gICAgCi0jaWZuZGVmIE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgTlNQ
b2ludCYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAg
IG9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHUG9pbnQo
KSBjb25zdDsKKwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgaW50IHhDb29yZDsKLSAgICBpbnQg
eUNvb3JkOworICAgIGludCBtX3gsIG1feTsKIH07CiAKK2lubGluZSBJbnRQb2ludCYgb3BlcmF0
b3IrPShJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7CisgICAgYS5zZXRYKGEueCgp
ICsgYi54KCkpOworICAgIGEuc2V0WShhLnkoKSArIGIueSgpKTsKKyAgICByZXR1cm4gYTsKIH0K
IAoraW5saW5lIEludFBvaW50JiBvcGVyYXRvci09KEludFBvaW50JiBhLCBjb25zdCBJbnRQb2lu
dCYgYikKK3sKKyAgICBhLnNldFgoYS54KCkgLSBiLngoKSk7CisgICAgYS5zZXRZKGEueSgpIC0g
Yi55KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxpbmUgSW50UG9pbnQgb3BlcmF0b3IrKGNv
bnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikKK3sKKyAgICByZXR1cm4gSW50UG9p
bnQoYS54KCkgKyBiLngoKSwgYS55KCkgKyBiLnkoKSk7Cit9CisKK2lubGluZSBJbnRQb2ludCBv
cGVyYXRvci0oY29uc3QgSW50UG9pbnQmIGEsIGNvbnN0IEludFBvaW50JiBiKQoreworICAgIHJl
dHVybiBJbnRQb2ludChhLngoKSAtIGIueCgpLCBhLnkoKSAtIGIueSgpKTsKK30KKworaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7
CisgICAgcmV0dXJuIGEueCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQorCitpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikK
K3sKKyAgICByZXR1cm4gYS54KCkgIT0gYi54KCkgfHwgYS55KCkgIT0gYi55KCk7Cit9CisKK30K
KwogLy8gRklYTUU6IFJlbW92ZSB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdlYkNvcmUgbmFt
ZXNwYWNlLgogdXNpbmcgV2ViQ29yZTo6SW50UG9pbnQ7CiAKSW5kZXg6IHBsYXRmb3JtL21hYy9J
bnRSZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9JbnRSZWN0Lm1tCShyZXZpc2lv
biAxMjQ2MykKKysrIHBsYXRmb3JtL21hYy9JbnRSZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAotIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwzNSArMjQsNDAgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW1wb3J0ICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogCi0j
aW1wb3J0IDxhbGdvcml0aG0+Ci0KLXVzaW5nIHN0ZDo6bWF4OwotdXNpbmcgc3RkOjptaW47Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUwotSW50UmVjdDo6SW50UmVjdChjb25zdCBOU1JlY3QgJnIpIDogeHAo
KGludClyLm9yaWdpbi54KSwgeXAoKGludClyLm9yaWdpbi55KSwgdygoaW50KXIuc2l6ZS53aWR0
aCksIGgoKGludClyLnNpemUuaGVpZ2h0KQorSW50UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkgY29u
c3QKIHsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZSh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkp
OwogfQotI2VuZGlmCiAKLUludFJlY3Q6OkludFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6IHhwKChp
bnQpci5vcmlnaW4ueCksIHlwKChpbnQpci5vcmlnaW4ueSksIHcoKGludClyLnNpemUud2lkdGgp
LCBoKChpbnQpci5zaXplLmhlaWdodCkKK0ludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBD
R1JlY3QmIHJlY3QpCiB7CisgICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0
Lm9yaWdpbi54KSk7CisgICAgaW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9y
aWdpbi55KSk7CisgICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKENHUmVjdEdldE1h
eFgocmVjdCkpKTsKKyAgICBpbnQgYiA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoQ0dSZWN0R2V0
TWF4WShyZWN0KSkpOworICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9
CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNp
ZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwogSW50UmVjdDo6
b3BlcmF0b3IgTlNSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gTlNNYWtlUmVjdCh4cCwgeXAs
IHcsIGgpOworICAgIHJldHVybiBOU01ha2VSZWN0KHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQo
KSk7CiB9Ci0jZW5kaWYKIAotSW50UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkgY29uc3QKK0ludFJl
Y3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIENH
UmVjdE1ha2UoeHAsIHlwLCB3LCBoKTsKKyAgICBpbnQgbCA9IHN0YXRpY19jYXN0PGludD4oZmxv
b3JmKHJlY3Qub3JpZ2luLngpKTsKKyAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3Jm
KHJlY3Qub3JpZ2luLnkpKTsKKyAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYoTlNN
YXhYKHJlY3QpKSk7CisgICAgaW50IGIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKE5TTWF4WShy
ZWN0KSkpOworICAgIHJldHVybiBJbnRSZWN0KGwsIHQsIHIgLSBsLCBiIC0gdCk7CiB9CiAKKyNl
bmRpZgorCiB9CkluZGV4OiBwbGF0Zm9ybS9tYWMvRmxvYXRQb2ludC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9tYWMvRmxvYXRQb2ludC5tbQkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9y
bS9tYWMvRmxvYXRQb2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksMjYgKzI5LDI2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUwotRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25zdCBOU1BvaW50JiBw
KSA6IHhDb29yZChwLngpLCB5Q29vcmQocC55KQorRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25z
dCBDR1BvaW50JiBwKSA6IG1feChwLngpLCBtX3kocC55KQogewogfQotI2VuZGlmCiAKLUZsb2F0
UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgQ0dQb2ludCYgcCkgOiB4Q29vcmQocC54KSwgeUNvb3Jk
KHAueSkKK0Zsb2F0UG9pbnQ6Om9wZXJhdG9yIENHUG9pbnQoKSBjb25zdAogeworICAgIHJldHVy
biBDR1BvaW50TWFrZShtX3gsIG1feSk7CiB9CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19T
QU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUZsb2F0UG9pbnQ6Om9wZXJhdG9yIE5TUG9pbnQoKSBj
b25zdAorI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCitG
bG9hdFBvaW50OjpGbG9hdFBvaW50KGNvbnN0IE5TUG9pbnQmIHApIDogbV94KHAueCksIG1feShw
LnkpCiB7Ci0gICAgcmV0dXJuIE5TTWFrZVBvaW50KHhDb29yZCwgeUNvb3JkKTsKIH0KLSNlbmRp
ZgogCi1GbG9hdFBvaW50OjpvcGVyYXRvciBDR1BvaW50KCkgY29uc3QKK0Zsb2F0UG9pbnQ6Om9w
ZXJhdG9yIE5TUG9pbnQoKSBjb25zdAogewotICAgIHJldHVybiBDR1BvaW50TWFrZSh4Q29vcmQs
IHlDb29yZCk7CisgICAgcmV0dXJuIE5TTWFrZVBvaW50KG1feCwgbV95KTsKIH0KIAorI2VuZGlm
CisKIH0KSW5kZXg6IHBsYXRmb3JtL21hYy9GbG9hdFNpemUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxh
dGZvcm0vbWFjL0Zsb2F0U2l6ZS5tbQkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9tYWMv
RmxvYXRTaXplLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyNiArMjksMjYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01F
VFJZX1RZUEVTCi1GbG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBOU1NpemUmIHMpIDogdyhzLndp
ZHRoKSwgaChzLmhlaWdodCkKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IENHU2l6ZSYgcykg
OiBtX3dpZHRoKHMud2lkdGgpLCBtX2hlaWdodChzLmhlaWdodCkKIHsKIH0KLSNlbmRpZgogCi1G
bG9hdFNpemU6OkZsb2F0U2l6ZShjb25zdCBDR1NpemUmIHMpIDogdyhzLndpZHRoKSwgaChzLmhl
aWdodCkKK0Zsb2F0U2l6ZTo6b3BlcmF0b3IgQ0dTaXplKCkgY29uc3QKIHsKKyAgICByZXR1cm4g
Q0dTaXplTWFrZShtX3dpZHRoLCBtX2hlaWdodCk7CiB9CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1F
X0FTX0NHR0VPTUVUUllfVFlQRVMKKworRmxvYXRTaXplOjpGbG9hdFNpemUoY29uc3QgTlNTaXpl
JiBzKSA6IG1fd2lkdGgocy53aWR0aCksIG1faGVpZ2h0KHMuaGVpZ2h0KQoreworfQorCiBGbG9h
dFNpemU6Om9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE5TTWFrZVNpemUo
dywgaCk7CisgICAgcmV0dXJuIE5TTWFrZVNpemUobV93aWR0aCwgbV9oZWlnaHQpOwogfQorCiAj
ZW5kaWYKIAotRmxvYXRTaXplOjpvcGVyYXRvciBDR1NpemUoKSBjb25zdAotewotICAgIHJldHVy
biBDR1NpemVNYWtlKHcsIGgpOwogfQotCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogcGxhdGZvcm0vbWFjL0ltYWdlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9J
bWFnZS5tbQkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9tYWMvSW1hZ2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTIzLDE0ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJJbWFnZS5oIgot
I2ltcG9ydCAiSW50U2l6ZS5oIgorCiAjaW1wb3J0ICJJbnRSZWN0LmgiCi0KICNpbXBvcnQgIktX
UUZvdW5kYXRpb25FeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVJbWFnZVJlbmRlcmVyLmgiCiAj
aW1wb3J0ICJXZWJDb3JlSW1hZ2VSZW5kZXJlckZhY3RvcnkuaCIKKyNpbXBvcnQgPHFzdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBwbGF0Zm9ybS9tYWMvRmxvYXRSZWN0
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9GbG9hdFJlY3QubW0JKHJldmlzaW9uIDEy
NDYzKQorKysgcGxhdGZvcm0vbWFjL0Zsb2F0UmVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjks
MjYgKzI5LDI2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZ
X1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29u
c3QgTlNSZWN0ICZyKSA6IHhwKHIub3JpZ2luLngpLCB5cChyLm9yaWdpbi55KSwgdyhyLnNpemUu
d2lkdGgpLCBoKHIuc2l6ZS5oZWlnaHQpCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBDR1Jl
Y3QmIHIpIDogbV9sb2NhdGlvbihyLm9yaWdpbiksIG1fc2l6ZShyLnNpemUpCiB7CiB9Ci0jZW5k
aWYKIAotRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29uc3QgQ0dSZWN0ICZyKSA6IHhwKHIub3JpZ2lu
LngpLCB5cChyLm9yaWdpbi55KSwgdyhyLnNpemUud2lkdGgpLCBoKHIuc2l6ZS5oZWlnaHQpCitG
bG9hdFJlY3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHUmVjdE1h
a2UoeCgpLCB5KCksIHdpZHRoKCksIGhlaWdodCgpKTsKIH0KIAotI2lmbmRlZiBOU0dFT01FVFJZ
X1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotRmxvYXRSZWN0OjpvcGVyYXRvciBOU1Jl
Y3QoKSBjb25zdAorI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UworCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBOU1JlY3QmIHIpIDogbV9sb2NhdGlvbihy
Lm9yaWdpbiksIG1fc2l6ZShyLnNpemUpCiB7Ci0gICAgcmV0dXJuIE5TTWFrZVJlY3QoeHAsIHlw
LCB3LCBoKTsKIH0KLSNlbmRpZgogCi1GbG9hdFJlY3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0
CitGbG9hdFJlY3Q6Om9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENHUmVj
dE1ha2UoeHAsIHlwLCB3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlUmVjdCh4KCksIHkoKSwgd2lk
dGgoKSwgaGVpZ2h0KCkpOwogfQogCisjZW5kaWYKKwogfQpJbmRleDogcGxhdGZvcm0vbWFjL0lu
dFBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9JbnRQb2ludC5tbQkocmV2aXNp
b24gMTI0NjMpCisrKyBwbGF0Zm9ybS9tYWMvSW50UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw1IEBACi0gCi0gLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMzEgKzI0LDMwIEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2ltcG9ydCAiSW50UG9pbnQuaCIKKyNpbmNsdWRlICJJ
bnRQb2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUludFBvaW50OjpJbnRQb2ludChjb25zdCBO
U1BvaW50ICZwKSA6IHhDb29yZCgoaW50KXAueCksIHlDb29yZCgoaW50KXAueSkKK0ludFBvaW50
OjpJbnRQb2ludChjb25zdCBDR1BvaW50JiBwKSA6IG1feChzdGF0aWNfY2FzdDxpbnQ+KHAueCkp
LCBtX3koc3RhdGljX2Nhc3Q8aW50PihwLnkpKQogewogfQotI2VuZGlmCiAKLUludFBvaW50OjpJ
bnRQb2ludChjb25zdCBDR1BvaW50ICZwKSA6IHhDb29yZCgoaW50KXAueCksIHlDb29yZCgoaW50
KXAueSkKK0ludFBvaW50OjpvcGVyYXRvciBDR1BvaW50KCkgY29uc3QKIHsKKyAgICByZXR1cm4g
Q0dQb2ludE1ha2UobV94LCBtX3kpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCi1JbnRQb2ludDo6b3BlcmF0b3IgTlNQb2ludCgpIGNvbnN0
CisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0ludFBv
aW50OjpJbnRQb2ludChjb25zdCBOU1BvaW50JiBwKSA6IG1feChzdGF0aWNfY2FzdDxpbnQ+KHAu
eCkpLCBtX3koc3RhdGljX2Nhc3Q8aW50PihwLnkpKQogewotICAgIHJldHVybiBOU01ha2VQb2lu
dCh4Q29vcmQsIHlDb29yZCk7CiB9Ci0jZW5kaWYKIAotSW50UG9pbnQ6Om9wZXJhdG9yIENHUG9p
bnQoKSBjb25zdAorSW50UG9pbnQ6Om9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdAogewotICAgIHJl
dHVybiBDR1BvaW50TWFrZSh4Q29vcmQsIHlDb29yZCk7CisgICAgcmV0dXJuIE5TTWFrZVBvaW50
KG1feCwgbV95KTsKIH0KIAorI2VuZGlmCiAKIH0KSW5kZXg6IHBsYXRmb3JtL21hYy9JbnRTaXpl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9JbnRTaXplLm1tCShyZXZpc2lvbiAxMjQ2
MykKKysrIHBsYXRmb3JtL21hYy9JbnRTaXplLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyNiArMjgsMjYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi1JbnRTaXplOjpJbnRTaXplKGNvbnN0IE5TU2l6ZSAmcykgOiB3KChpbnQpcy53aWR0aCks
IGgoKGludClzLmhlaWdodCkKK0ludFNpemU6OkludFNpemUoY29uc3QgQ0dTaXplJiBzKSA6IG1f
d2lkdGgoc3RhdGljX2Nhc3Q8aW50PihzLndpZHRoKSksIG1faGVpZ2h0KHN0YXRpY19jYXN0PGlu
dD4ocy5oZWlnaHQpKQogewogfQotI2VuZGlmCiAKLUludFNpemU6OkludFNpemUoY29uc3QgQ0dT
aXplICZzKSA6IHcoKGludClzLndpZHRoKSwgaCgoaW50KXMuaGVpZ2h0KQorSW50U2l6ZTo6b3Bl
cmF0b3IgQ0dTaXplKCkgY29uc3QKIHsKKyAgICByZXR1cm4gQ0dTaXplTWFrZShtX3dpZHRoLCBt
X2hlaWdodCk7CiB9CiAKLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVU
UllfVFlQRVMKKyNpZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMK
KworSW50U2l6ZTo6SW50U2l6ZShjb25zdCBOU1NpemUmIHMpIDogbV93aWR0aChzdGF0aWNfY2Fz
dDxpbnQ+KHMud2lkdGgpKSwgbV9oZWlnaHQoc3RhdGljX2Nhc3Q8aW50PihzLmhlaWdodCkpCit7
Cit9CisKIEludFNpemU6Om9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE5T
TWFrZVNpemUodywgaCk7CisgICAgcmV0dXJuIE5TTWFrZVNpemUobV93aWR0aCwgbV9oZWlnaHQp
OwogfQorCiAjZW5kaWYKIAotSW50U2l6ZTo6b3BlcmF0b3IgQ0dTaXplKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gQ0dTaXplTWFrZSh3LCBoKTsKIH0KLQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IHBsYXRmb3JtL0Zsb2F0UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9y
bS9GbG9hdFBvaW50LmgJKHJldmlzaW9uIDEyNDYzKQorKysgcGxhdGZvcm0vRmxvYXRQb2ludC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNyArMjgsMjAgQEAKICNkZWZpbmUgRkxPQVRQT0lOVF9I
XwogCiAjaWYgX19BUFBMRV9fCisKK3R5cGVkZWYgc3RydWN0IENHUG9pbnQgQ0dQb2ludDsKKwog
Ly8gd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQyOTQ2MjU+Ci0jaWYgISBfX0xQNjRf
XyAmJiAhIE5TX0JVSUxEXzMyX0xJS0VfNjQKKyNpZiAhX19MUDY0X18gJiYgIU5TX0JVSUxEXzMy
X0xJS0VfNjQKICN1bmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UwogI2VuZGlmCiAKLSNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9U
WVBFUworI2lmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBl
ZGVmIHN0cnVjdCBDR1BvaW50IE5TUG9pbnQ7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX05TUG9p
bnQgTlNQb2ludDsKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBDR1BvaW50OworCiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNDQgKzUwLDY4IEBACiAKIGNsYXNz
IEZsb2F0UG9pbnQgewogcHVibGljOgotICAgIEZsb2F0UG9pbnQoKTsKLSAgICBGbG9hdFBvaW50
KGZsb2F0LCBmbG9hdCk7CisgICAgRmxvYXRQb2ludCgpIDogbV94KDApLCBtX3koMCkgeyB9Cisg
ICAgRmxvYXRQb2ludChmbG9hdCB4LCBmbG9hdCB5KSA6IG1feCh4KSwgbV95KHkpIHsgfQogICAg
IEZsb2F0UG9pbnQoY29uc3QgSW50UG9pbnQmKTsKLSAgICAKLSNpZiBfX0FQUExFX18KLSNpZm5k
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNp
dCBGbG9hdFBvaW50KGNvbnN0IE5TUG9pbnQmKTsKLSNlbmRpZgotICAgIGV4cGxpY2l0IEZsb2F0
UG9pbnQoY29uc3QgQ0dQb2ludCYpOwotI2VuZGlmCiAKLSAgICBmbG9hdCB4KCkgY29uc3QgeyBy
ZXR1cm4geENvb3JkOyB9Ci0gICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHlDb29yZDsgfQor
ICAgIGZsb2F0IHgoKSBjb25zdCB7IHJldHVybiBtX3g7IH0KKyAgICBmbG9hdCB5KCkgY29uc3Qg
eyByZXR1cm4gbV95OyB9CiAKLSAgICB2b2lkIHNldFgoaW50IHgpIHsgeENvb3JkID0geDsgfQot
ICAgIHZvaWQgc2V0WShpbnQgeSkgeyB5Q29vcmQgPSB5OyB9CisgICAgdm9pZCBzZXRYKGZsb2F0
IHgpIHsgbV94ID0geDsgfQorICAgIHZvaWQgc2V0WShmbG9hdCB5KSB7IG1feSA9IHk7IH0KIAot
ICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4geENvb3JkID09IDAuMGYgJiYgeUNvb3Jk
ID09IDAuMGY7IH0KKyNpZiBfX0FQUExFX18KIAotICAgIEZsb2F0UG9pbnQmIG9wZXJhdG9yIC09
KGNvbnN0IEZsb2F0UG9pbnQmIHR3bykgeyB4Q29vcmQgLT0gdHdvLnhDb29yZDsgeUNvb3JkIC09
IHR3by55Q29vcmQ7IHJldHVybiAqdGhpczsgfQotICAgIGZyaWVuZCBjb25zdCBGbG9hdFBvaW50
IG9wZXJhdG9yKihjb25zdCBGbG9hdFBvaW50JiBwLCBkb3VibGUgcyk7Ci0gICAgZnJpZW5kIEZs
b2F0UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7
Ci0gICAgZnJpZW5kIEZsb2F0UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25z
dCBGbG9hdFBvaW50Jik7CisgICAgRmxvYXRQb2ludChjb25zdCBDR1BvaW50Jik7CisgICAgb3Bl
cmF0b3IgQ0dQb2ludCgpIGNvbnN0OwogCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgRmxvYXRQb2ludChjb25zdCBOU1BvaW50Jik7
CiAgICAgb3BlcmF0b3IgTlNQb2ludCgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dQ
b2ludCgpIGNvbnN0OworCiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBmbG9hdCB4Q29vcmQ7Ci0g
ICAgZmxvYXQgeUNvb3JkOworICAgIGZsb2F0IG1feCwgbV95OwogfTsKIAoraW5saW5lIEZsb2F0
UG9pbnQmIG9wZXJhdG9yKz0oRmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYikKK3sK
KyAgICBhLnNldFgoYS54KCkgKyBiLngoKSk7CisgICAgYS5zZXRZKGEueSgpICsgYi55KCkpOwor
ICAgIHJldHVybiBhOwogfQogCitpbmxpbmUgRmxvYXRQb2ludCYgb3BlcmF0b3ItPShGbG9hdFBv
aW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIGEuc2V0WChhLngoKSAtIGIueCgp
KTsKKyAgICBhLnNldFkoYS55KCkgLSBiLnkoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGlu
ZSBGbG9hdFBvaW50IG9wZXJhdG9yKyhjb25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBv
aW50JiBiKQoreworICAgIHJldHVybiBGbG9hdFBvaW50KGEueCgpICsgYi54KCksIGEueSgpICsg
Yi55KCkpOworfQorCitpbmxpbmUgRmxvYXRQb2ludCBvcGVyYXRvci0oY29uc3QgRmxvYXRQb2lu
dCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRQb2ludChhLngo
KSAtIGIueCgpLCBhLnkoKSAtIGIueSgpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJldHVybiBh
LngoKSA9PSBiLngoKSAmJiBhLnkoKSA9PSBiLnkoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJl
dHVybiBhLngoKSAhPSBiLngoKSB8fCBhLnkoKSAhPSBiLnkoKTsKK30KKworfQorCiAvLyBGSVhN
RTogUmVtb3ZlIHdoZW4gZXZlcnl0aGluZyBpcyBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiB1
c2luZyBXZWJDb3JlOjpGbG9hdFBvaW50OwogCkluZGV4OiBwbGF0Zm9ybS9JbnRTaXplLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRTaXplLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBw
bGF0Zm9ybS9JbnRTaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDAzLTYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnRTaXpl
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSW50U2l6ZTo6SW50U2l6ZSgpIDogdygtMSks
IGgoLTEpCi17Ci19Ci0KLUludFNpemU6OkludFNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSA6
IHcod2lkdGgpLCBoKGhlaWdodCkKLXsKLX0KLQotYm9vbCBJbnRTaXplOjppc1ZhbGlkKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdyA+PSAwICYmIGggPj0gMDsKLX0KLQotSW50U2l6ZSBJbnRTaXpl
OjpleHBhbmRlZFRvKGNvbnN0IEludFNpemUgJm8pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFNp
emUodyA+IG8udyA/IHcgOiBvLncsIGggPiBvLmggPyBoIDogby5oKTsKLX0KLQotSW50U2l6ZSBv
cGVyYXRvcisoY29uc3QgSW50U2l6ZSAmYSwgY29uc3QgSW50U2l6ZSAmYikKLXsKLSAgICByZXR1
cm4gSW50U2l6ZShhLncgKyBiLncsIGEuaCArIGIuaCk7Ci19Ci0KLWJvb2wgb3BlcmF0b3I9PShj
b25zdCBJbnRTaXplICZhLCBjb25zdCBJbnRTaXplICZiKQotewotICAgIHJldHVybiBhLncgPT0g
Yi53ICYmIGEuaCA9PSBiLmg7Ci19Ci0KLWJvb2wgb3BlcmF0b3IhPShjb25zdCBJbnRTaXplICZh
LCBjb25zdCBJbnRTaXplICZiKQotewotICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBi
Lmg7Ci19Ci0KLX0KSW5kZXg6IHBsYXRmb3JtL0Zsb2F0UmVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBs
YXRmb3JtL0Zsb2F0UmVjdC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIHBsYXRmb3JtL0Zsb2F0UmVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxOCArMjcsMTkgQEAKICNpZm5kZWYgRkxPQVRSRUNU
Rl9IXwogI2RlZmluZSBGTE9BVFJFQ1RGX0hfCiAKLSNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIkludFJl
Y3QuaCIKIAogI2lmIF9fQVBQTEVfXwotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19D
R0dFT01FVFJZX1RZUEVTCisKK3R5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CisKKyNpZiBO
U0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3Qg
Q0dSZWN0IE5TUmVjdDsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNSZWN0IE5TUmVjdDsKICNl
bmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENHUmVjdDsKKwogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ3LDg5ICs0OCw5MSBAQAogCiBjbGFzcyBGbG9hdFJlY3QgewogcHVi
bGljOgotICAgIEZsb2F0UmVjdCgpOwotICAgIEZsb2F0UmVjdChGbG9hdFBvaW50IHAsIEZsb2F0
U2l6ZSBzKTsKLSAgICBGbG9hdFJlY3QoZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwotICAg
IEZsb2F0UmVjdChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpOworICAgIEZs
b2F0UmVjdCgpIHsgfQorICAgIEZsb2F0UmVjdChjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwg
Y29uc3QgRmxvYXRTaXplJiBzaXplKQorICAgICAgICA6IG1fbG9jYXRpb24obG9jYXRpb24pLCBt
X3NpemUoc2l6ZSkgeyB9CisgICAgRmxvYXRSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpCisgICAgICAgIDogbV9sb2NhdGlvbihGbG9hdFBvaW50KHgsIHkp
KSwgbV9zaXplKEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSkgeyB9CiAgICAgRmxvYXRSZWN0KGNv
bnN0IEludFJlY3QmKTsKLSAgICAKLSNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBGbG9hdFJlY3QoY29u
c3QgTlNSZWN0Jik7Ci0jZW5kaWYKLSAgICBleHBsaWNpdCBGbG9hdFJlY3QoY29uc3QgQ0dSZWN0
Jik7Ci0jZW5kaWYKIAotICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBsb2Nh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYXRpb247IH0KKyAgICBGbG9hdFNpemUgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCi0gICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJu
IHhwOyB9Ci0gICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHlwOyB9Ci0gICAgZmxvYXQgbGVm
dCgpIGNvbnN0IHsgcmV0dXJuIHhwOyB9Ci0gICAgZmxvYXQgdG9wKCkgY29uc3QgeyByZXR1cm4g
eXA7IH0KLSAgICBmbG9hdCByaWdodCgpIGNvbnN0OwotICAgIGZsb2F0IGJvdHRvbSgpIGNvbnN0
OwotICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGZsb2F0IGhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIGg7IH0KKyAgICB2b2lkIHNldExvY2F0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIGxvY2F0aW9uKSB7IG1fbG9jYXRpb24gPSBsb2NhdGlvbjsgfQorICAgIHZvaWQgc2V0
U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9zaXplID0gc2l6ZTsgfQogCi0gICAgRmxv
YXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7Ci0gICAgRmxvYXRQb2ludCB0b3BSaWdodCgpIGNvbnN0
OwotICAgIEZsb2F0UG9pbnQgYm90dG9tUmlnaHQoKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGJv
dHRvbUxlZnQoKSBjb25zdDsKKyAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlv
bi54KCk7IH0KKyAgICBmbG9hdCB5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi55KCk7IH0K
KyAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS53aWR0aCgpOyB9CisgICAg
ZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmhlaWdodCgpOyB9CiAKLSAgICBG
bG9hdFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0WChmbG9hdCB4KSB7IHhwID0geDsg
fQotICAgIHZvaWQgc2V0WShmbG9hdCB5KSB7IHlwID0geTsgfQotICAgIHZvaWQgc2V0V2lkdGgo
ZmxvYXQgd2lkdGgpIHsgdyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVp
Z2h0KSB7IGggPSBoZWlnaHQ7IH0KLSAgICB2b2lkIHNldFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgeyB4cCA9IHg7IHlwID0geTsgdyA9IHdpZHRoOyBo
ID0gaGVpZ2h0OyB9Ci0gICAgRmxvYXRSZWN0IGludGVyc2VjdChjb25zdCBGbG9hdFJlY3QmKSBj
b25zdDsKKyAgICB2b2lkIHNldFgoZmxvYXQgeCkgeyBtX2xvY2F0aW9uLnNldFgoeCk7IH0KKyAg
ICB2b2lkIHNldFkoZmxvYXQgeSkgeyBtX2xvY2F0aW9uLnNldFkoeSk7IH0KKyAgICB2b2lkIHNl
dFdpZHRoKGZsb2F0IHdpZHRoKSB7IG1fc2l6ZS5zZXRXaWR0aCh3aWR0aCk7IH0KKyAgICB2b2lk
IHNldEhlaWdodChmbG9hdCBoZWlnaHQpIHsgbV9zaXplLnNldEhlaWdodChoZWlnaHQpOyB9CisK
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NpemUuaXNFbXB0eSgpOyB9CisK
KyAgICBmbG9hdCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIHgoKSArIHdpZHRoKCk7IH0KKyAgICBm
bG9hdCBib3R0b20oKSBjb25zdCB7IHJldHVybiB5KCkgKyBoZWlnaHQoKTsgfQorCisgICAgdm9p
ZCBtb3ZlKGNvbnN0IEZsb2F0UG9pbnQmIHApIHsgbV9sb2NhdGlvbiArPSBwOyB9IAorICAgIHZv
aWQgbW92ZShmbG9hdCBkeCwgZmxvYXQgZHkpIHsgbV9sb2NhdGlvbiArPSBGbG9hdFBvaW50KGR4
LCBkeSk7IH0gCisKICAgICBib29sIGludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7
Ci0gICAgRmxvYXRSZWN0IHVuaXRlKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgIEZsb2F0
UmVjdCBub3JtYWxpemUoKSBjb25zdDsKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IEZsb2F0UmVj
dCYpIGNvbnN0OwogCi0gICAgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCkg
Y29uc3QgeyByZXR1cm4gY29udGFpbnMocG9pbnQueCgpLCBwb2ludC55KCkpOyB9CisgICAgdm9p
ZCBpbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCB1bml0ZShjb25zdCBGbG9h
dFJlY3QmKTsKIAotICAgIGJvb2wgY29udGFpbnMoZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBwcm9w
ZXIgPSBmYWxzZSkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChwcm9wZXIpCi0gICAgICAgICAg
ICByZXR1cm4geCA+IHhwICYmICh4IDwgKHhwICsgdyAtIDEpKSAmJiB5ID4geXAgJiYgeSA8ICh5
cCArIGggLSAxKTsKLSAgICAgICAgcmV0dXJuIHggPj0geHAgJiYgeCA8ICh4cCArIHcpICYmIHkg
Pj0geXAgJiYgeSA8ICh5cCArIGgpOworICAgIHZvaWQgaW5mbGF0ZVgoZmxvYXQgZHgpIHsKKyAg
ICAgICAgbV9sb2NhdGlvbi5zZXRYKG1fbG9jYXRpb24ueCgpIC0gZHgpOworICAgICAgICBtX3Np
emUuc2V0V2lkdGgobV9zaXplLndpZHRoKCkgKyBkeCArIGR4KTsKICAgICB9CisgICAgdm9pZCBp
bmZsYXRlWShmbG9hdCBkeSkgeworICAgICAgICBtX2xvY2F0aW9uLnNldFkobV9sb2NhdGlvbi55
KCkgLSBkeSk7CisgICAgICAgIG1fc2l6ZS5zZXRIZWlnaHQobV9zaXplLmhlaWdodCgpICsgZHkg
KyBkeSk7CisgICAgfQorICAgIHZvaWQgaW5mbGF0ZShmbG9hdCBkKSB7IGluZmxhdGVYKGQpOyBp
bmZsYXRlWShkKTsgfQogCi0gICAgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
IGNvbnN0IHsgcmV0dXJuIGludGVyc2VjdChyZWN0KSA9PSByZWN0OyB9CisjaWYgX19BUFBMRV9f
CiAKLSAgICB2b2lkIGluZmxhdGUoZmxvYXQgcyk7CisgICAgRmxvYXRSZWN0KGNvbnN0IENHUmVj
dCYpOworICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OwogCi0gICAgaW5saW5lIEZsb2F0UmVj
dCBvcGVyYXRvciYoY29uc3QgRmxvYXRSZWN0JiByKSBjb25zdCB7IHJldHVybiBpbnRlcnNlY3Qo
cik7IH0KLQotI2lmIF9fQVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUworI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUworICAgIEZsb2F0UmVjdChjb25zdCBOU1JlY3QmKTsKICAgICBvcGVyYXRvciBOU1Jl
Y3QoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OworCiAjZW5k
aWYKIAogcHJpdmF0ZToKLSAgICBmbG9hdCB4cDsKLSAgICBmbG9hdCB5cDsKLSAgICBmbG9hdCB3
OwotICAgIGZsb2F0IGg7Ci0KLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jik7CisgICAgRmxvYXRQb2ludCBtX2xvY2F0
aW9uOworICAgIEZsb2F0U2l6ZSBtX3NpemU7CiB9OwogCi1pbmxpbmUgSW50UmVjdCBlbmNsb3Np
bmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZnIpCitpbmxpbmUgRmxvYXRSZWN0IGludGVyc2Vj
dGlvbihjb25zdCBGbG9hdFJlY3QmIGEsIGNvbnN0IEZsb2F0UmVjdCYgYikKIHsKLSAgICBpbnQg
eCA9IGludChmbG9vcihmci54KCkpKTsKLSAgICBpbnQgeSA9IGludChmbG9vcihmci55KCkpKTsK
LSAgICByZXR1cm4gSW50UmVjdCh4LCB5LCBpbnQoY2VpbChmci54KCkgKyBmci53aWR0aCgpKSkg
LSB4LCBpbnQoY2VpbChmci55KCkgKyBmci5oZWlnaHQoKSkpIC0geSk7CisgICAgRmxvYXRSZWN0
IGMgPSBhOworICAgIGMuaW50ZXJzZWN0KGIpOworICAgIHJldHVybiBjOwogfQogCitpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UmVjdCYgYSwgY29uc3QgRmxvYXRSZWN0JiBiKQor
eworICAgIHJldHVybiBhLmxvY2F0aW9uKCkgPT0gYi5sb2NhdGlvbigpICYmIGEuc2l6ZSgpID09
IGIuc2l6ZSgpOwogfQogCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdCYg
YSwgY29uc3QgRmxvYXRSZWN0JiBiKQoreworICAgIHJldHVybiBhLmxvY2F0aW9uKCkgIT0gYi5s
b2NhdGlvbigpIHx8IGEuc2l6ZSgpICE9IGIuc2l6ZSgpOworfQorCitJbnRSZWN0IGVuY2xvc2lu
Z0ludFJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisKK30KKwogLy8gRklYTUU6IFJlbW92ZSB3aGVu
IGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdlYkNvcmUgbmFtZXNwYWNlLgogdXNpbmcgV2ViQ29yZTo6
RmxvYXRSZWN0OwogCkluZGV4OiBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0
Zm9ybS9JbnRQb2ludEFycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDYgQEAK
ICAgICBzZXRQb2ludHMoblBvaW50cywgcG9pbnRzKTsKIH0KIAotSW50UG9pbnRBcnJheTo6SW50
UG9pbnRBcnJheShjb25zdCBJbnRSZWN0ICZyZWN0KQotewotICAgIHNldFBvaW50cyg0LCByZWN0
LnRvcExlZnQoKS54KCksIHJlY3QudG9wTGVmdCgpLnkoKSwKLSAgICAgICAgICAgICAgcmVjdC50
b3BSaWdodCgpLngoKSwgcmVjdC50b3BSaWdodCgpLnkoKSwKLSAgICAgICAgICAgICAgcmVjdC5i
b3R0b21SaWdodCgpLngoKSwgcmVjdC5ib3R0b21SaWdodCgpLnkoKSwKLSAgICAgICAgICAgICAg
cmVjdC5ib3R0b21MZWZ0KCkueCgpLCByZWN0LmJvdHRvbUxlZnQoKS55KCkpOwotfQotCiBJbnRQ
b2ludEFycmF5IEludFBvaW50QXJyYXk6OmNvcHkoKSBjb25zdAogewogICAgIEludFBvaW50QXJy
YXkgY29weTsKQEAgLTUxLDcgKzQzLDcgQEAKIHsKICAgICBpbnQgblBvaW50cyA9IGNvdW50KCk7
CiAgICAgCi0gICAgaWYgKG5Qb2ludHMgPCAxKSByZXR1cm4gSW50UmVjdCgwLDAsMCwwKTsKKyAg
ICBpZiAoblBvaW50cyA8IDEpIHJldHVybiBJbnRSZWN0KCk7CiAgICAgCiAgICAgaW50IG1pblgg
PSBJTlRfTUFYLCBtYXhYID0gMDsKICAgICBpbnQgbWluWSA9IElOVF9NQVgsIG1heFkgPSAwOwpJ
bmRleDogcGxhdGZvcm0vSW50UG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ludFBv
aW50LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9JbnRQb2ludC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFw
cGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1JbnRQb2ludDo6SW50UG9pbnQoKSA6IHhDb29yZCgwKSwgeUNvb3JkKDApCi17Ci19Ci0K
LUludFBvaW50OjpJbnRQb2ludChpbnQgeEluLCBpbnQgeUluKSA6IHhDb29yZCh4SW4pLCB5Q29v
cmQoeUluKQotewotfQotCi1JbnRQb2ludCBvcGVyYXRvcisoY29uc3QgSW50UG9pbnQgJmEsIGNv
bnN0IEludFBvaW50ICZiKQotewotICAgIHJldHVybiBJbnRQb2ludChhLnhDb29yZCArIGIueENv
b3JkLCBhLnlDb29yZCArIGIueUNvb3JkKTsKLX0KLQotSW50UG9pbnQgb3BlcmF0b3ItKGNvbnN0
IEludFBvaW50ICZhLCBjb25zdCBJbnRQb2ludCAmYikKLXsKLSAgICByZXR1cm4gSW50UG9pbnQo
YS54Q29vcmQgLSBiLnhDb29yZCwgYS55Q29vcmQgLSBiLnlDb29yZCk7Ci19Ci0KLWNvbnN0IElu
dFBvaW50IG9wZXJhdG9yKihjb25zdCBJbnRQb2ludCAmcCwgZG91YmxlIHMpCi17Ci0gICAgcmV0
dXJuIEludFBvaW50KChpbnQpKHAueENvb3JkICogcyksIChpbnQpKHAueUNvb3JkICogcykpOwot
fQotCi19CkluZGV4OiBwbGF0Zm9ybS9GbG9hdFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9y
bS9GbG9hdFNpemUuaAkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9GbG9hdFNpemUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNjAgKzMwLDk4IEBACiAjaW5jbHVkZSAiS1dRRGVmLmgiCiAK
ICNpZiBfX0FQUExFX18KKwordHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKKwogLy8gd29y
a2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQyOTQ2MjU+Ci0jaWYgISBfX0xQNjRfXyAmJiAh
IE5TX0JVSUxEXzMyX0xJS0VfNjQKKyNpZiAhX19MUDY0X18gJiYgIU5TX0JVSUxEXzMyX0xJS0Vf
NjQKICN1bmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogI2Vu
ZGlmCiAKLSNpZmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwor
I2lmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0
cnVjdCBDR1NpemUgTlNTaXplOwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IF9OU1NpemUgTlNTaXpl
OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOworCiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotICAgIAorCiBjbGFzcyBJbnRTaXplOwotICAgIAorCiBjbGFzcyBG
bG9hdFNpemUgewogcHVibGljOgotICAgIEZsb2F0U2l6ZSgpOwotICAgIEZsb2F0U2l6ZShmbG9h
dCwgZmxvYXQpOwotICAgIEZsb2F0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAg
RmxvYXRTaXplKCkgOiBtX3dpZHRoKDApLCBtX2hlaWdodCgwKSB7IH0KKyAgICBGbG9hdFNpemUo
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgOiBtX3dpZHRoKHdpZHRoKSwgbV9oZWlnaHQoaGVp
Z2h0KSB7IH0KKyAgICBGbG9hdFNpemUoY29uc3QgSW50U2l6ZSYpOworICAgIAorICAgIGZsb2F0
IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAgIGZsb2F0IGhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CisKKyAgICB2b2lkIHNldFdpZHRoKGZsb2F0IHdpZHRo
KSB7IG1fd2lkdGggPSB3aWR0aDsgfQorICAgIHZvaWQgc2V0SGVpZ2h0KGZsb2F0IGhlaWdodCkg
eyBtX2hlaWdodCA9IGhlaWdodDsgfQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0IDw9IDA7IH0KKworICAgIEZsb2F0U2l6ZSBleHBh
bmRlZFRvKGNvbnN0IEZsb2F0U2l6ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gRmxvYXRTaXplKG1fd2lkdGggPiBvdGhlci5tX3dpZHRoID8gbV93aWR0aCA6IG90aGVyLm1f
d2lkdGgsCisgICAgICAgICAgICBtX2hlaWdodCA+IG90aGVyLm1faGVpZ2h0ID8gbV9oZWlnaHQg
OiBvdGhlci5tX2hlaWdodCk7CisgICAgfQorCiAjaWYgX19BUFBMRV9fCi0jaWZuZGVmIE5TR0VP
TUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAgZXhwbGljaXQgRmxvYXRT
aXplKGNvbnN0IE5TU2l6ZSYpOwotI2VuZGlmCi0gICAgZXhwbGljaXQgRmxvYXRTaXplKGNvbnN0
IENHU2l6ZSYpOwotI2VuZGlmCiAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBmbG9h
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHc7IH0KLSAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7
IHJldHVybiBoOyB9Ci0gICAgdm9pZCBzZXRXaWR0aChmbG9hdCB3aWR0aCkgeyB3ID0gd2lkdGg7
IH0KLSAgICB2b2lkIHNldEhlaWdodChmbG9hdCBoZWlnaHQpIHsgaCA9IGhlaWdodDsgfQotICAg
IEZsb2F0U2l6ZSBleHBhbmRlZFRvKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0OworICAgIGV4cGxp
Y2l0IEZsb2F0U2l6ZShjb25zdCBDR1NpemUmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5
IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsKIAotI2lmIF9f
QVBQTEVfXwogI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UworICAgIGV4cGxpY2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUgJik7IC8vIGRvbid0IGRvIHRo
aXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgTlNTaXplKCkgY29u
c3Q7CiAjZW5kaWYKLSAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsKKwogI2VuZGlmCiAKLSAg
ICBmcmllbmQgRmxvYXRTaXplIG9wZXJhdG9yKyhjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9h
dFNpemUmKTsKLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEZsb2F0U2l6ZSYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgRmxvYXRT
aXplJiwgY29uc3QgRmxvYXRTaXplJik7Ci0KIHByaXZhdGU6Ci0gICAgZmxvYXQgdzsKLSAgICBm
bG9hdCBoOworICAgIGZsb2F0IG1fd2lkdGgsIG1faGVpZ2h0OwogfTsKIAoraW5saW5lIEZsb2F0
U2l6ZSYgb3BlcmF0b3IrPShGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAg
ICBhLnNldFdpZHRoKGEud2lkdGgoKSArIGIud2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5o
ZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOwogfQogCitpbmxpbmUgRmxvYXRT
aXplJiBvcGVyYXRvci09KEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQoreworICAg
IGEuc2V0V2lkdGgoYS53aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdodChhLmhl
aWdodCgpIC0gYi5oZWlnaHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBGbG9hdFNp
emUgb3BlcmF0b3IrKGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQorewor
ICAgIHJldHVybiBGbG9hdFNpemUoYS53aWR0aCgpICsgYi53aWR0aCgpLCBhLmhlaWdodCgpICsg
Yi5oZWlnaHQoKSk7Cit9CisKK2lubGluZSBGbG9hdFNpemUgb3BlcmF0b3ItKGNvbnN0IEZsb2F0
U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQoreworICAgIHJldHVybiBGbG9hdFNpemUoYS53
aWR0aCgpIC0gYi53aWR0aCgpLCBhLmhlaWdodCgpIC0gYi5oZWlnaHQoKSk7Cit9CisKK2lubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRTaXplJiBhLCBjb25zdCBGbG9hdFNpemUmIGIp
Cit7CisgICAgcmV0dXJuIGEud2lkdGgoKSA9PSBiLndpZHRoKCkgJiYgYS5oZWlnaHQoKSA9PSBi
LmhlaWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0U2l6ZSYg
YSwgY29uc3QgRmxvYXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgIT0gYi53aWR0
aCgpIHx8IGEuaGVpZ2h0KCkgIT0gYi5oZWlnaHQoKTsKK30KKworfQorCiAvLyBGSVhNRTogUmVt
b3ZlIHdoZW4gdGhlIGVuZ2luZSBmaWxlcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIGJlIGluIHRo
ZSBXZWJDb3JlIG5hbWVzcGFjZS4KIHVzaW5nIFdlYkNvcmU6OkZsb2F0U2l6ZTsKIApJbmRleDog
cGxhdGZvcm0vSW50UmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0ludFJlY3QuaAkocmV2
aXNpb24gMTI0NjMpCisrKyBwbGF0Zm9ybS9JbnRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiw5OSArMjYsMTI0IEBACiAjaWZuZGVmIElOVFJFQ1RfSF8KICNk
ZWZpbmUgSU5UUkVDVF9IXwogCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCi0jaW5jbHVkZSAiSW50UG9pbnRBcnJheS5oIgogCiAjaWYgX19BUFBMRV9fCi0jaWZk
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKwordHlwZWRlZiBz
dHJ1Y3QgQ0dSZWN0IENHUmVjdDsKKworI2lmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dF
T01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNSZWN0OwogI2Vsc2UKIHR5cGVk
ZWYgc3RydWN0IF9OU1JlY3QgTlNSZWN0OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBDR1JlY3Qg
Q0dSZWN0OworCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRSZWN0
IHsKIHB1YmxpYzoKLSAgICBJbnRSZWN0KCk7Ci0gICAgSW50UmVjdChJbnRQb2ludCBwLCBJbnRT
aXplIHMpOwotICAgIEludFJlY3QoaW50LCBpbnQsIGludCwgaW50KTsKLSAgICBJbnRSZWN0KGNv
bnN0IEludFBvaW50ICYsIGNvbnN0IEludFBvaW50ICYpOwotICAgIAotI2lmIF9fQVBQTEVfXwot
I2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotICAgIGV4
cGxpY2l0IEludFJlY3QoY29uc3QgTlNSZWN0ICYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0
bHkgc2luY2UgaXQncyBsb3NzeQotI2VuZGlmCi0gICAgZXhwbGljaXQgSW50UmVjdChjb25zdCBD
R1JlY3QgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5Ci0j
ZW5kaWYKKyAgICBJbnRSZWN0KCkgeyB9CisgICAgSW50UmVjdChjb25zdCBJbnRQb2ludCYgbG9j
YXRpb24sIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAgIDogbV9sb2NhdGlvbihsb2NhdGlv
biksIG1fc2l6ZShzaXplKSB7IH0KKyAgICBJbnRSZWN0KGludCB4LCBpbnQgeSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQorICAgICAgICA6IG1fbG9jYXRpb24oSW50UG9pbnQoeCwgeSkpLCBtX3Np
emUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSkgeyB9CiAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0
OwotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0Owor
ICAgIEludFBvaW50IGxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAg
IEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogCi0gICAgaW50IHgoKSBj
b25zdCB7IHJldHVybiB4cDsgfQotICAgIGludCB5KCkgY29uc3QgeyByZXR1cm4geXA7IH0KLSAg
ICBpbnQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIHhwOyB9Ci0gICAgaW50IHRvcCgpIGNvbnN0IHsg
cmV0dXJuIHlwOyB9Ci0gICAgaW50IHJpZ2h0KCkgY29uc3Q7Ci0gICAgaW50IGJvdHRvbSgpIGNv
bnN0OwotICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHc7IH0KLSAgICBpbnQgaGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gaDsgfQorICAgIHZvaWQgc2V0TG9jYXRpb24oY29uc3QgSW50UG9p
bnQmIGxvY2F0aW9uKSB7IG1fbG9jYXRpb24gPSBsb2NhdGlvbjsgfQorICAgIHZvaWQgc2V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIEludFBvaW50
IHRvcExlZnQoKSBjb25zdDsKLSAgICBJbnRQb2ludCB0b3BSaWdodCgpIGNvbnN0OwotICAgIElu
dFBvaW50IGJvdHRvbVJpZ2h0KCkgY29uc3Q7Ci0gICAgSW50UG9pbnQgYm90dG9tTGVmdCgpIGNv
bnN0OwotICAgIAotICAgIHZvaWQgbW92ZVRvcExlZnQoY29uc3QgSW50UG9pbnQgJnApIHsgeHAg
Kz0gcC54KCk7IHlwICs9IHAueSgpOyB9IAorICAgIGludCB4KCkgY29uc3QgeyByZXR1cm4gbV9s
b2NhdGlvbi54KCk7IH0KKyAgICBpbnQgeSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYXRpb24ueSgp
OyB9CisgICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9zaXplLndpZHRoKCk7IH0KKyAg
ICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmhlaWdodCgpOyB9CiAKLSAgICBJ
bnRTaXplIHNpemUoKSBjb25zdDsKLSAgICB2b2lkIHNldFgoaW50IHgpIHsgeHAgPSB4OyB9Ci0g
ICAgdm9pZCBzZXRZKGludCB5KSB7IHlwID0geTsgfQotICAgIHZvaWQgc2V0V2lkdGgoaW50IHdp
ZHRoKSB7IHcgPSB3aWR0aDsgfQotICAgIHZvaWQgc2V0SGVpZ2h0KGludCBoZWlnaHQpIHsgaCA9
IGhlaWdodDsgfQotICAgIHZvaWQgc2V0UmVjdChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50
IGhlaWdodCkgeyB4cCA9IHg7IHlwID0geTsgdyA9IHdpZHRoOyBoID0gaGVpZ2h0OyB9Ci0gICAg
SW50UmVjdCBpbnRlcnNlY3QoY29uc3QgSW50UmVjdCAmKSBjb25zdDsKLSAgICBib29sIGludGVy
c2VjdHMoY29uc3QgSW50UmVjdCAmKSBjb25zdDsKLSAgICBJbnRSZWN0IHVuaXRlKGNvbnN0IElu
dFJlY3QgJikgY29uc3Q7Ci0gICAgSW50UmVjdCBub3JtYWxpemUoKSBjb25zdDsKKyAgICB2b2lk
IHNldFgoaW50IHgpIHsgbV9sb2NhdGlvbi5zZXRYKHgpOyB9CisgICAgdm9pZCBzZXRZKGludCB5
KSB7IG1fbG9jYXRpb24uc2V0WSh5KTsgfQorICAgIHZvaWQgc2V0V2lkdGgoaW50IHdpZHRoKSB7
IG1fc2l6ZS5zZXRXaWR0aCh3aWR0aCk7IH0KKyAgICB2b2lkIHNldEhlaWdodChpbnQgaGVpZ2h0
KSB7IG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsgfQogCi0gICAgYm9vbCBjb250YWlucyhjb25z
dCBJbnRQb2ludCAmcG9pbnQpIGNvbnN0IHsgcmV0dXJuIGNvbnRhaW5zKHBvaW50LngoKSwgcG9p
bnQueSgpKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS5pc0Vt
cHR5KCk7IH0KIAotICAgIGJvb2wgY29udGFpbnMoaW50IHgsIGludCB5LCBib29sIHByb3BlciA9
IGZhbHNlKSBjb25zdCB7Ci0gICAgICAgIGlmIChwcm9wZXIpCi0gICAgICAgICAgICByZXR1cm4g
eCA+IHhwICYmICh4IDwgKHhwICsgdyAtIDEpKSAmJiB5ID4geXAgJiYgeSA8ICh5cCArIGggLSAx
KTsKLSAgICAgICAgcmV0dXJuIHggPj0geHAgJiYgeCA8ICh4cCArIHcpICYmIHkgPj0geXAgJiYg
eSA8ICh5cCArIGgpOworICAgIGludCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIHgoKSArIHdpZHRo
KCk7IH0KKyAgICBpbnQgYm90dG9tKCkgY29uc3QgeyByZXR1cm4geSgpICsgaGVpZ2h0KCk7IH0K
KworICAgIHZvaWQgbW92ZShjb25zdCBJbnRQb2ludCYgcCkgeyBtX2xvY2F0aW9uICs9IHA7IH0g
CisgICAgdm9pZCBtb3ZlKGludCBkeCwgaW50IGR5KSB7IG1fbG9jYXRpb24gKz0gSW50UG9pbnQo
ZHgsIGR5KTsgfSAKKworICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBJbnRSZWN0JikgY29uc3Q7
CisgICAgYm9vbCBjb250YWlucyhjb25zdCBJbnRSZWN0JikgY29uc3Q7CisKKyAgICAvLyBUaGlz
IGNoZWNrcyB0byBzZWUgaWYgdGhlIHJlY3QgY29udGFpbnMgeCx5IGluIHRoZSB0cmFkaXRpb25h
bCBzZW5zZS4KKyAgICAvLyBFcXVpdmFsZW50IHRvIGNoZWNraW5nIGlmIHRoZSByZWN0IGNvbnRh
aW5zIGEgMXgxIHJlY3QgYmVsb3cgYW5kIHRvIHRoZSByaWdodCBvZiAocHgscHkpLgorICAgIGJv
b2wgY29udGFpbnMoaW50IHB4LCBpbnQgcHkpIGNvbnN0CisgICAgICAgIHsgcmV0dXJuIHB4ID49
IHgoKSAmJiBweCA8IHJpZ2h0KCkgJiYgcHkgPj0geSgpICYmIHB5IDwgYm90dG9tKCk7IH0KKwor
ICAgIHZvaWQgaW50ZXJzZWN0KGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIHVuaXRlKGNvbnN0
IEludFJlY3QmKTsKKworICAgIHZvaWQgaW5mbGF0ZVgoaW50IGR4KSB7CisgICAgICAgIG1fbG9j
YXRpb24uc2V0WChtX2xvY2F0aW9uLngoKSAtIGR4KTsKKyAgICAgICAgbV9zaXplLnNldFdpZHRo
KG1fc2l6ZS53aWR0aCgpICsgZHggKyBkeCk7CiAgICAgfQorICAgIHZvaWQgaW5mbGF0ZVkoaW50
IGR5KSB7CisgICAgICAgIG1fbG9jYXRpb24uc2V0WShtX2xvY2F0aW9uLnkoKSAtIGR5KTsKKyAg
ICAgICAgbV9zaXplLnNldEhlaWdodChtX3NpemUuaGVpZ2h0KCkgKyBkeSArIGR5KTsKKyAgICB9
CisgICAgdm9pZCBpbmZsYXRlKGludCBkKSB7IGluZmxhdGVYKGQpOyBpbmZsYXRlWShkKTsgfQog
Ci0gICAgYm9vbCBjb250YWlucyhjb25zdCBJbnRSZWN0ICZyZWN0KSBjb25zdCB7IHJldHVybiBp
bnRlcnNlY3QocmVjdCkgPT0gcmVjdDsgfQotICAgIAotICAgIHZvaWQgaW5mbGF0ZShpbnQgcyk7
CisjaWYgX19BUFBMRV9fCiAKLSAgICBpbmxpbmUgSW50UmVjdCBvcGVyYXRvciYoY29uc3QgSW50
UmVjdCAmcikgY29uc3QgeyByZXR1cm4gaW50ZXJzZWN0KHIpOyB9CisgICAgb3BlcmF0b3IgQ0dS
ZWN0KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19T
QU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiEgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgotICAg
IG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OworCiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBpbnQg
eHA7Ci0gICAgaW50IHlwOwotICAgIGludCB3OwotICAgIGludCBoOwotCi0gICAgZnJpZW5kIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBJbnRSZWN0ICYsIGNvbnN0IEludFJlY3QgJik7Ci0gICAgZnJp
ZW5kIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJbnRSZWN0ICYsIGNvbnN0IEludFJlY3QgJik7Cisg
ICAgSW50UG9pbnQgbV9sb2NhdGlvbjsKKyAgICBJbnRTaXplIG1fc2l6ZTsKIH07CiAKK2lubGlu
ZSBJbnRSZWN0IGludGVyc2VjdGlvbihjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBi
KQoreworICAgIEludFJlY3QgYyA9IGE7CisgICAgYy5pbnRlcnNlY3QoYik7CisgICAgcmV0dXJu
IGM7CiB9CiAKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgSW50UmVjdCYgYSwgY29uc3Qg
SW50UmVjdCYgYikKK3sKKyAgICByZXR1cm4gYS5sb2NhdGlvbigpID09IGIubG9jYXRpb24oKSAm
JiBhLnNpemUoKSA9PSBiLnNpemUoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAgIHJldHVybiBhLmxvY2F0aW9u
KCkgIT0gYi5sb2NhdGlvbigpIHx8IGEuc2l6ZSgpICE9IGIuc2l6ZSgpOworfQorCisjaWYgX19B
UFBMRV9fCisKK0ludFJlY3QgZW5jbG9zaW5nSW50UmVjdChjb25zdCBDR1JlY3QmKTsKKworI2lm
ICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCitJbnRSZWN0IGVu
Y2xvc2luZ0ludFJlY3QoY29uc3QgTlNSZWN0Jik7CisKKyNlbmRpZgorCisjZW5kaWYKKworfQor
CiAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gZXZlcnl0aGluZyBpcyBpbiB0aGUgV2ViQ29yZSBuYW1l
c3BhY2UuCiB1c2luZyBXZWJDb3JlOjpJbnRSZWN0OwordXNpbmcgV2ViQ29yZTo6ZW5jbG9zaW5n
SW50UmVjdDsKIAogI2VuZGlmCkluZGV4OiBwbGF0Zm9ybS9GbG9hdFBvaW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBwbGF0Zm9ybS9GbG9hdFBvaW50LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBwbGF0
Zm9ybS9GbG9hdFBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMzUgKzI2LDEzIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgorCiAjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0UG9pbnQ6OkZsb2F0
UG9pbnQoKSA6IHhDb29yZCgwKSwgeUNvb3JkKDApCitGbG9hdFBvaW50OjpGbG9hdFBvaW50KGNv
bnN0IEludFBvaW50JiBwKSA6IG1feChwLngoKSksIG1feShwLnkoKSkKIHsKIH0KIAotRmxvYXRQ
b2ludDo6RmxvYXRQb2ludChmbG9hdCB4SW4sIGZsb2F0IHlJbikgOiB4Q29vcmQoeEluKSwgeUNv
b3JkKHlJbikKLXsKIH0KLQotRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25zdCBJbnRQb2ludCYg
cCkgOnhDb29yZChwLngoKSksIHlDb29yZChwLnkoKSkKLXsKLX0KLQotRmxvYXRQb2ludCBvcGVy
YXRvcisoY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYikKLXsKLSAgICBy
ZXR1cm4gRmxvYXRQb2ludChhLnhDb29yZCArIGIueENvb3JkLCBhLnlDb29yZCArIGIueUNvb3Jk
KTsKLX0KLQotRmxvYXRQb2ludCBvcGVyYXRvci0oY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3Qg
RmxvYXRQb2ludCYgYikKLXsKLSAgICByZXR1cm4gRmxvYXRQb2ludChhLnhDb29yZCAtIGIueENv
b3JkLCBhLnlDb29yZCAtIGIueUNvb3JkKTsKLX0KLQotY29uc3QgRmxvYXRQb2ludCBvcGVyYXRv
ciooY29uc3QgRmxvYXRQb2ludCYgcCwgZG91YmxlIHMpCi17Ci0gICAgcmV0dXJuIEZsb2F0UG9p
bnQocC54Q29vcmQgKiBzLCBwLnlDb29yZCAqIHMpOwotfQotCi19CkluZGV4OiBwbGF0Zm9ybS9G
bG9hdFJlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0Zsb2F0UmVjdC5jcHAJKHJldmlz
aW9uIDEyNDYzKQorKysgcGxhdGZvcm0vRmxvYXRSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsOCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiB1c2lu
ZyBzdGQ6Om1heDsKQEAgLTMzLDE1OCArMzUsNzMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1GbG9hdFJlY3Q6OkZsb2F0UmVjdCgpIDogeHAoMC4wZiksIHlwKDAuMGYpLCB3KDAuMGYpLCBo
KDAuMGYpCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBJbnRSZWN0JiByKSA6IG1fbG9jYXRp
b24oci5sb2NhdGlvbigpKSwgbV9zaXplKHIuc2l6ZSgpKQogewogfQogCi1GbG9hdFJlY3Q6OkZs
b2F0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSA6IHhw
KHgpLCB5cCh5KSwgdyh3aWR0aCksIGgoaGVpZ2h0KQorYm9vbCBGbG9hdFJlY3Q6OmludGVyc2Vj
dHMoY29uc3QgRmxvYXRSZWN0JiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBDaGVja2luZyBlbXB0
aW5lc3MgaGFuZGxlcyBuZWdhdGl2ZSB3aWR0aHMgYXMgd2VsbCBhcyB6ZXJvLgorICAgIHJldHVy
biAhaXNFbXB0eSgpICYmICFvdGhlci5pc0VtcHR5KCkKKyAgICAgICAgJiYgeCgpIDwgb3RoZXIu
cmlnaHQoKSAmJiBvdGhlci54KCkgPCByaWdodCgpCisgICAgICAgICYmIHkoKSA8IG90aGVyLmJv
dHRvbSgpICYmIG90aGVyLnkoKSA8IGJvdHRvbSgpOwogfQogCi1GbG9hdFJlY3Q6OkZsb2F0UmVj
dChGbG9hdFBvaW50IHAsIEZsb2F0U2l6ZSBzKSA6IHhwKHAueCgpKSwgeXAocC55KCkpLCB3KHMu
d2lkdGgoKSksIGgocy5oZWlnaHQoKSkKK2Jvb2wgRmxvYXRSZWN0Ojpjb250YWlucyhjb25zdCBG
bG9hdFJlY3QmIG90aGVyKSBjb25zdAogeworICAgIHJldHVybiB4KCkgPD0gb3RoZXIueCgpICYm
IHJpZ2h0KCkgPj0gb3RoZXIucmlnaHQoKQorICAgICAgICAmJiB5KCkgPD0gb3RoZXIueSgpICYm
IGJvdHRvbSgpID49IG90aGVyLmJvdHRvbSgpOwogfQogCi1GbG9hdFJlY3Q6OkZsb2F0UmVjdChj
b25zdCBGbG9hdFBvaW50ICZ0b3BMZWZ0LCBjb25zdCBGbG9hdFBvaW50ICZib3R0b21SaWdodCkK
LSAgOiB4cCh0b3BMZWZ0LngoKSksIHlwKHRvcExlZnQueSgpKSwKLSAgdyhib3R0b21SaWdodC54
KCkgLSB0b3BMZWZ0LngoKSArIDEuMGYpLCBoKGJvdHRvbVJpZ2h0LnkoKSAtIHRvcExlZnQueSgp
ICsgMS4wZikKK3ZvaWQgRmxvYXRSZWN0OjppbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0JiBvdGhl
cikKIHsKLX0KKyAgICBmbG9hdCBsID0gbWF4KHgoKSwgb3RoZXIueCgpKTsKKyAgICBmbG9hdCB0
ID0gbWF4KHkoKSwgb3RoZXIueSgpKTsKKyAgICBmbG9hdCByID0gbWluKHJpZ2h0KCksIG90aGVy
LnJpZ2h0KCkpOworICAgIGZsb2F0IGIgPSBtaW4oYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsK
IAotRmxvYXRSZWN0OjpGbG9hdFJlY3QoY29uc3QgSW50UmVjdCYgcikgOiB4cChyLngoKSksIHlw
KHIueSgpKSwgdyhyLndpZHRoKCkpLCBoKHIuaGVpZ2h0KCkpCi17Ci19CisgICAgLy8gUmV0dXJu
IGEgY2xlYW4gZW1wdHkgcmVjdGFuZ2xlIGZvciBub24taW50ZXJzZWN0aW5nIGNhc2VzLgorICAg
IGlmIChsID49IHIgfHwgdCA+PSBiKSB7CisgICAgICAgIGwgPSAwOworICAgICAgICB0ID0gMDsK
KyAgICAgICAgciA9IDA7CisgICAgICAgIGIgPSAwOworICAgIH0KIAotYm9vbCBGbG9hdFJlY3Q6
OmlzTnVsbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPT0gMC4wZiAmJiBoID09IDAuMGY7Cisg
ICAgbV9sb2NhdGlvbi5zZXRYKGwpOworICAgIG1fbG9jYXRpb24uc2V0WSh0KTsKKyAgICBtX3Np
emUuc2V0V2lkdGgociAtIGwpOworICAgIG1fc2l6ZS5zZXRIZWlnaHQoYiAtIHQpOwogfQogCi1i
b29sIEZsb2F0UmVjdDo6aXNWYWxpZCgpIGNvbnN0Cit2b2lkIEZsb2F0UmVjdDo6dW5pdGUoY29u
c3QgRmxvYXRSZWN0JiBvdGhlcikKIHsKLSAgICByZXR1cm4gdyA+IDAuMGYgJiYgaCA+IDAuMGY7
Ci19CisgICAgLy8gSGFuZGxlIGVtcHR5IHNwZWNpYWwgY2FzZXMgZmlyc3QuCisgICAgaWYgKG90
aGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAg
ICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotYm9vbCBGbG9h
dFJlY3Q6OmlzRW1wdHkoKSBjb25zdAotewotICAgIHJldHVybiB3IDw9IDAuMGYgfHwgaCA8PSAw
LjBmOwotfQorICAgIGZsb2F0IGwgPSBtaW4oeCgpLCBvdGhlci54KCkpOworICAgIGZsb2F0IHQg
PSBtaW4oeSgpLCBvdGhlci55KCkpOworICAgIGZsb2F0IHIgPSBtYXgocmlnaHQoKSwgb3RoZXIu
cmlnaHQoKSk7CisgICAgZmxvYXQgYiA9IG1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOwog
Ci1mbG9hdCBGbG9hdFJlY3Q6OnJpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4geHAgKyB3IC0g
MS4wZjsKKyAgICBtX2xvY2F0aW9uLnNldFgobCk7CisgICAgbV9sb2NhdGlvbi5zZXRZKHQpOwor
ICAgIG1fc2l6ZS5zZXRXaWR0aChyIC0gbCk7CisgICAgbV9zaXplLnNldEhlaWdodChiIC0gdCk7
CiB9CiAKLWZsb2F0IEZsb2F0UmVjdDo6Ym90dG9tKCkgY29uc3QKK0ludFJlY3QgZW5jbG9zaW5n
SW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHlwICsgaCAtIDEu
MGY7CisgICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0LngoKSkpOworICAg
IGludCB0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC55KCkpKTsKKyAgICBpbnQgciA9
IHN0YXRpY19jYXN0PGludD4oY2VpbGYocmVjdC5yaWdodCgpKSk7CisgICAgaW50IGIgPSBzdGF0
aWNfY2FzdDxpbnQ+KGNlaWxmKHJlY3QuYm90dG9tKCkpKTsKKyAgICByZXR1cm4gSW50UmVjdChs
LCB0LCByIC0gbCwgYiAtIHQpOwogfQogCi1GbG9hdFBvaW50IEZsb2F0UmVjdDo6dG9wTGVmdCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoeHAseXApOwogfQotCi1GbG9hdFBvaW50
IEZsb2F0UmVjdDo6dG9wUmlnaHQoKSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFBvaW50KHJp
Z2h0KCksdG9wKCkpOwotfQotCi1GbG9hdFBvaW50IEZsb2F0UmVjdDo6Ym90dG9tUmlnaHQoKSBj
b25zdAotewotICAgIHJldHVybiBGbG9hdFBvaW50KHJpZ2h0KCksYm90dG9tKCkpOwotfQotCi1G
bG9hdFBvaW50IEZsb2F0UmVjdDo6Ym90dG9tTGVmdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZs
b2F0UG9pbnQobGVmdCgpLGJvdHRvbSgpKTsKLX0KLQotRmxvYXRTaXplIEZsb2F0UmVjdDo6c2l6
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSh3LGgpOwotfQotCi1GbG9hdFJlY3Qg
RmxvYXRSZWN0Ojp1bml0ZShjb25zdCBGbG9hdFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgaWYgKHIu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICBpZiAoaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gcjsKLQotICAgIGZsb2F0IG54LCBueSwgbncsIG5oOwotCi0gICAgbngg
PSBtaW4oeHAsIHIueHApOwotICAgIG55ID0gbWluKHlwLCByLnlwKTsKLQotICAgIGlmICh4cCAr
IHcgPj0gci54cCArIHIudykKLSAgICAgICAgbncgPSB4cCArIHcgLSBueDsKLSAgICBlbHNlCi0g
ICAgICAgIG53ID0gci54cCArIHIudyAtIG54OwotCi0gICAgaWYgKHlwICsgaCA+PSByLnlwICsg
ci5oKQotICAgICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIGVsc2UKLSAgICAgICAgbmggPSBy
LnlwICsgci5oIC0gbnk7Ci0KLSAgICByZXR1cm4gRmxvYXRSZWN0KG54LCBueSwgbncsIG5oKTsK
LX0KLQotRmxvYXRSZWN0IEZsb2F0UmVjdDo6bm9ybWFsaXplKCkgY29uc3QKLXsKLSAgICBGbG9h
dFJlY3QgbmV3UmVjdDsKLQotICAgIG5ld1JlY3QueHAgID0gKHcgPCAwLjBmKSA/ICh4cCAtIHcp
IDogeHA7Ci0gICAgbmV3UmVjdC53ICAgPSAodyA8IDAuMGYpID8gLXcgOiB3OwotCi0gICAgbmV3
UmVjdC55cCAgPSAoaCA8IDAuMGYpID8gKHlwIC0gaCkgOiB5cDsKLSAgICBuZXdSZWN0LmggICA9
IChoIDwgMC4wZikgPyAtaCA6IGg7Ci0KLSAgICByZXR1cm4gbmV3UmVjdDsKLX0KLQotYm9vbCBG
bG9hdFJlY3Q6OmludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0ICZyKSBjb25zdAotewotICAgIHJl
dHVybiBpbnRlcnNlY3QocikuaXNWYWxpZCgpOwotfQotCi1GbG9hdFJlY3QgRmxvYXRSZWN0Ojpp
bnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0ICZyKSBjb25zdAotewotICAgIGZsb2F0IG54LCBueSwg
bncsIG5oOwotCi0gICAgbnggPSBtYXgoeHAsIHIueHApOwotICAgIG55ID0gbWF4KHlwLCByLnlw
KTsKLQotICAgIGlmICh4cCArIHcgPD0gci54cCArIHIudykKLSAgICAgICAgbncgPSB4cCArIHcg
LSBueDsKLSAgICBlbHNlCi0gICAgICAgIG53ID0gci54cCArIHIudyAtIG54OwotCi0gICAgaWYg
KHlwICsgaCA8PSByLnlwICsgci5oKQotICAgICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIGVs
c2UKLSAgICAgICAgbmggPSByLnlwICsgci5oIC0gbnk7Ci0KLSAgICByZXR1cm4gRmxvYXRSZWN0
KG54LCBueSwgbncsIG5oKTsKLX0KLQotdm9pZCBGbG9hdFJlY3Q6OmluZmxhdGUoZmxvYXQgcykK
LXsKLSAgICB4cCAtPSBzOwotICAgIHlwIC09IHM7Ci0gICAgdyArPSAyLjBmICogczsKLSAgICBo
ICs9IDIuMGYgKiBzOwotfQotCi1ib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRSZWN0JiBhLCBj
b25zdCBGbG9hdFJlY3QgJmIpCi17Ci0gICAgcmV0dXJuIGEueHAgPT0gYi54cCAmJiBhLnlwID09
IGIueXAgJiYgYS53ID09IGIudyAmJiBhLmggPT0gYi5oOwotfQotCi1ib29sIG9wZXJhdG9yIT0o
Y29uc3QgRmxvYXRSZWN0ICZhLCBjb25zdCBGbG9hdFJlY3QgJmIpCi17Ci0gICAgcmV0dXJuICEo
YSA9PSBiKTsKLX0KLQotfQpJbmRleDogcGxhdGZvcm0vSW1hZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
bGF0Zm9ybS9JbWFnZS5oCShyZXZpc2lvbiAxMjQ2MykKKysrIHBsYXRmb3JtL0ltYWdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxMCBAQAogI2lmbmRlZiBJTUFHRV9IXwogI2RlZmlu
ZSBJTUFHRV9IXwogCi0jaW5jbHVkZSAiS1dRTmFtZXNwYWNlLmgiCi0jaW5jbHVkZSAiS1dRU3Ry
aW5nLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKLQogI2lm
IF9fQVBQTEVfXwotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2
aWNlcy5oPgogCit0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOworCiAjaWZkZWYg
X19PQkpDX18KIEBwcm90b2NvbCBXZWJDb3JlSW1hZ2VSZW5kZXJlcjsKIHR5cGVkZWYgaWQgPFdl
YkNvcmVJbWFnZVJlbmRlcmVyPiBXZWJDb3JlSW1hZ2VSZW5kZXJlclB0cjsKQEAgLTQ2LDEyICs0
MiwxNyBAQAogCiAjZW5kaWYgLy8gX19BUFBMRV9fCiAKLWNsYXNzIFFXTWF0cml4OworY2xhc3Mg
UVN0cmluZzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbnRSZWN0OworY2xhc3Mg
SW50U2l6ZTsKIGNsYXNzIFFQYWludGVyOwogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg
QXJyYXk7Cit0eXBlZGVmIEFycmF5PGNoYXI+IEJ5dGVBcnJheTsKKwogY2xhc3MgSW1hZ2Ugewog
cHVibGljOgogICAgIEltYWdlKCk7CkBAIC01OSw5ICs2MCw2IEBACiAgICAgSW1hZ2UoY29uc3Qg
SW50U2l6ZSYpOwogICAgIEltYWdlKGNvbnN0IEJ5dGVBcnJheSYsIGNvbnN0IFFTdHJpbmcmIHR5
cGUpOwogICAgIEltYWdlKGludCwgaW50KTsKLSNpZiBfX0FQUExFX18KLSAgICBJbWFnZShXZWJD
b3JlSW1hZ2VSZW5kZXJlclB0cik7Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1FOiBFbGltaW5hdGUg
dGhlc2Ugc29vbiBhbmQgbWFrZSB0aGVtIHByaXZhdGUgc28gdGhhdCBJbWFnZXMgY2FuJ3QgYmUg
Y29waWVkIG9yIGFzc2lnbmVkLgogICAgIC8vIFdlIHdpbGwgYmUgc3dpdGNoaW5nIHRvIFJlZlB0
cjxJbWFnZT4gaW4gV2ViQ29yZSBzbyB0aGF0IEltYWdlIGRvZXNuJ3QgaGF2ZSB0byBkbyBpdHMg
b3duCkBAIC04MywxMSArODEsNiBAQAogCiAgICAgYm9vbCBkZWNvZGUoY29uc3QgQnl0ZUFycmF5
ICZieXRlcywgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOwogCi0jaWYgX19BUFBMRV9fCi0gICAgV2Vi
Q29yZUltYWdlUmVuZGVyZXJQdHIgaW1hZ2VSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW1h
Z2VSZW5kZXJlcjsgfQotICAgIENHSW1hZ2VSZWYgaW1hZ2VSZWYoKSBjb25zdDsKLSNlbmRpZgot
CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgcmVzZXRBbmltYXRp
b24oKSBjb25zdDsKICAgICB2b2lkIHNldEFuaW1hdGlvblJlY3QoY29uc3QgSW50UmVjdCYpIGNv
bnN0OwpAQCAtMTEyLDYgKzEwNSwxMiBAQAogCiAgICAgc3RhdGljIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wZXJhdG9yRnJvbVN0cmluZyhjb25zdCBRU3RyaW5nJiBjb21wb3NpdGVPcGVy
YXRvcik7CiAKKyNpZiBfX0FQUExFX18KKyAgICBJbWFnZShXZWJDb3JlSW1hZ2VSZW5kZXJlclB0
cik7CisgICAgV2ViQ29yZUltYWdlUmVuZGVyZXJQdHIgaW1hZ2VSZW5kZXJlcigpIGNvbnN0IHsg
cmV0dXJuIG1faW1hZ2VSZW5kZXJlcjsgfQorICAgIENHSW1hZ2VSZWYgaW1hZ2VSZWYoKSBjb25z
dDsKKyNlbmRpZgorCiBwcml2YXRlOgogI2lmIF9fQVBQTEVfXwogICAgIFdlYkNvcmVJbWFnZVJl
bmRlcmVyUHRyIG1faW1hZ2VSZW5kZXJlcjsKSW5kZXg6IHBsYXRmb3JtL0ludFNpemUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRTaXplLmgJKHJldmlzaW9uIDEyNDYzKQorKysgcGxhdGZv
cm0vSW50U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw1OCArMjcsOTUgQEAKICNkZWZpbmUgSU5UU0laRV9IXwogCiAjaWYgX19BUFBM
RV9fCisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CisKIC8vIHdvcmthcm91bmQgZm9y
IDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgotI2lmICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8z
Ml9MSUtFXzY0CisjaWYgIV9fTFA2NF9fICYmICFOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYg
TlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZk
ZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXpl
IE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNTaXplIE5TU2l6ZTsKICNlbmRpZgot
dHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSW50U2l6ZSB7CiBwdWJsaWM6Ci0gICAgSW50U2l6ZSgpOwotICAgIElu
dFNpemUoaW50LGludCk7CisgICAgSW50U2l6ZSgpIDogbV93aWR0aCgwKSwgbV9oZWlnaHQoMCkg
eyB9CisgICAgSW50U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIDogbV93aWR0aCh3aWR0aCks
IG1faGVpZ2h0KGhlaWdodCkgeyB9CiAgICAgCisgICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aDsgfQorICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsg
fQorCisgICAgdm9pZCBzZXRXaWR0aChpbnQgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9Cisg
ICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQorCisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aCA8PSAwIHx8IG1faGVpZ2h0
IDw9IDA7IH0KKworICAgIEludFNpemUgZXhwYW5kZWRUbyhjb25zdCBJbnRTaXplJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBJbnRTaXplKG1fd2lkdGggPiBvdGhlci5tX3dp
ZHRoID8gbV93aWR0aCA6IG90aGVyLm1fd2lkdGgsCisgICAgICAgICAgICBtX2hlaWdodCA+IG90
aGVyLm1faGVpZ2h0ID8gbV9oZWlnaHQgOiBvdGhlci5tX2hlaWdodCk7CisgICAgfQorCiAjaWYg
X19BUFBMRV9fCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi0gICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7Ci0jZW5kaWYKLSAgICBl
eHBsaWNpdCBJbnRTaXplKGNvbnN0IENHU2l6ZSAmKTsKLSNlbmRpZgogCi0gICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7Ci0gICAgaW50IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdzsgfQotICAgIGlu
dCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBoOyB9Ci0gICAgdm9pZCBzZXRXaWR0aChpbnQgd2lk
dGgpIHsgdyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBoID0g
aGVpZ2h0OyB9Ci0gICAgSW50U2l6ZSBleHBhbmRlZFRvKGNvbnN0IEludFNpemUgJikgY29uc3Q7
CisgICAgZXhwbGljaXQgSW50U2l6ZShjb25zdCBDR1NpemUmKTsgLy8gZG9uJ3QgZG8gdGhpcyBp
bXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBvcGVyYXRvciBDR1NpemUoKSBjb25zdDsK
IAotI2lmIF9fQVBQTEVfXyAgICAKICNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBJbnRTaXplKGNvbnN0IE5TU2l6ZSAmKTsgLy8g
ZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKICAgICBvcGVyYXRvciBO
U1NpemUoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0OworCiAj
ZW5kaWYKIAotICAgIGZyaWVuZCBJbnRTaXplIG9wZXJhdG9yKyhjb25zdCBJbnRTaXplICYsIGNv
bnN0IEludFNpemUgJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRTaXpl
ICYsIGNvbnN0IEludFNpemUgJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJ
bnRTaXplICYsIGNvbnN0IEludFNpemUgJik7Ci0KIHByaXZhdGU6Ci0gICAgaW50IHc7Ci0gICAg
aW50IGg7CisgICAgaW50IG1fd2lkdGgsIG1faGVpZ2h0OwogfTsKIAoraW5saW5lIEludFNpemUm
IG9wZXJhdG9yKz0oSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICBhLnNldFdp
ZHRoKGEud2lkdGgoKSArIGIud2lkdGgoKSk7CisgICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAr
IGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOwogfQogCitpbmxpbmUgSW50U2l6ZSYgb3BlcmF0
b3ItPShJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIGEuc2V0V2lkdGgoYS53
aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdodChhLmhlaWdodCgpIC0gYi5oZWln
aHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBJbnRTaXplIG9wZXJhdG9yKyhjb25z
dCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBJbnRTaXplKGEu
d2lkdGgoKSArIGIud2lkdGgoKSwgYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworfQorCitpbmxp
bmUgSW50U2l6ZSBvcGVyYXRvci0oY29uc3QgSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6ZSYgYikK
K3sKKyAgICByZXR1cm4gSW50U2l6ZShhLndpZHRoKCkgLSBiLndpZHRoKCksIGEuaGVpZ2h0KCkg
LSBiLmhlaWdodCgpKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRTaXpl
JiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0
aCgpICYmIGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVybiBh
LndpZHRoKCkgIT0gYi53aWR0aCgpIHx8IGEuaGVpZ2h0KCkgIT0gYi5oZWlnaHQoKTsKK30KKwor
fQorCiAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gdGhlIGVuZ2luZSBmaWxlcyBoYXZlIGJlZW4gY29u
dmVydGVkIHRvIGJlIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4KIHVzaW5nIFdlYkNvcmU6Oklu
dFNpemU7CiAKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfbGluZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
cmVuZGVyaW5nL3JlbmRlcl9saW5lLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyByZW5kZXJpbmcv
cmVuZGVyX2xpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsMTEgKzc0OCw5IEBACiAKIHZv
aWQgSW5saW5lRmxvd0JveDo6cGFpbnQoUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGludCB0
eCwgaW50IHR5KQogewotICAgIGJvb2wgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSB0cnVlOwogICAg
IGludCB4UG9zID0gdHggKyBtX3ggLSBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVTaXplKGkucGhh
c2UpOwogICAgIGludCB3ID0gd2lkdGgoKSArIDIgKiBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVT
aXplKGkucGhhc2UpOwotICAgIGlmICgoeFBvcyA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkpIHx8
ICh4UG9zICsgdyA8PSBpLnIueCgpKSkKLSAgICAgICAgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSBm
YWxzZTsKKyAgICBib29sIGludGVyc2VjdHNEYW1hZ2VSZWN0ID0geFBvcyA8IGkuci5yaWdodCgp
ICYmIHhQb3MgKyB3ID4gaS5yLngoKTsKICAgICAKICAgICBpZiAoaW50ZXJzZWN0c0RhbWFnZVJl
Y3QpIHsKICAgICAgICAgaWYgKGkucGhhc2UgPT0gUGFpbnRBY3Rpb25PdXRsaW5lKSB7CkBAIC04
NDIsNyArODQwLDcgQEAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7CiAgICAgaW50
IG1oOwogICAgIGlmIChfdHkgPCBpLnIueSgpKQotICAgICAgICBtaD0ga01heCgwLCBoIC0gKGku
ci55KCkgLSBfdHkpKTsKKyAgICAgICAgbWggPSBrTWF4KDAsIGggLSAoaS5yLnkoKSAtIF90eSkp
OwogICAgIGVsc2UKICAgICAgICAgbWggPSBrTWluKGkuci5oZWlnaHQoKSwgaCk7CiAKQEAgLTEw
ODgsMjMgKzEwODYsMjYgQEAKICAgICB9CiB9CiAKLWJvb2wgRWxsaXBzaXNCb3g6Om5vZGVBdFBv
aW50KFJlbmRlck9iamVjdDo6Tm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4
LCBpbnQgX3R5KQorYm9vbCBFbGxpcHNpc0JveDo6bm9kZUF0UG9pbnQoUmVuZGVyT2JqZWN0OjpO
b2RlSW5mbyYgaW5mbywgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSkKIHsKKyAgICB0eCAr
PSBtX3g7CisgICAgdHkgKz0gbV95OworCiAgICAgLy8gSGl0IHRlc3QgdGhlIG1hcmt1cCBib3gu
CiAgICAgaWYgKG1fbWFya3VwQm94KSB7Ci0gICAgICAgIF90eCArPSBtX3ggKyBtX3dpZHRoIC0g
bV9tYXJrdXBCb3gtPnhQb3MoKTsKLSAgICAgICAgX3R5ICs9IG1feSArIG1fYmFzZWxpbmUgLSAo
bV9tYXJrdXBCb3gtPnlQb3MoKSArIG1fbWFya3VwQm94LT5iYXNlbGluZSgpKTsKLSAgICAgICAg
aWYgKG1fbWFya3VwQm94LT5ub2RlQXRQb2ludChpbmZvLCBfeCwgX3ksIF90eCwgX3R5KSkgewor
ICAgICAgICBpbnQgbXR4ID0gdHggKyBtX3dpZHRoIC0gbV9tYXJrdXBCb3gtPnhQb3MoKTsKKyAg
ICAgICAgaW50IG10eSA9IHR5ICsgbV9iYXNlbGluZSAtIChtX21hcmt1cEJveC0+eVBvcygpICsg
bV9tYXJrdXBCb3gtPmJhc2VsaW5lKCkpOworICAgICAgICBpZiAobV9tYXJrdXBCb3gtPm5vZGVB
dFBvaW50KGluZm8sIHgsIHksIG10eCwgbXR5KSkgewogICAgICAgICAgICAgb2JqZWN0KCktPnNl
dElubmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgSW50UmVjdCByZWN0KF90eCArIG1feCwgX3R5ICsgbV95LCBtX3dpZHRoLCBt
X2hlaWdodCk7Ci0gICAgaWYgKG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklT
SUJMRSAmJiByZWN0LmNvbnRhaW5zKF94LCBfeSkpIHsKKyAgICBpZiAob2JqZWN0KCktPnN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFICYmIEludFJlY3QodHgsIHR5LCBtX3dpZHRoLCBt
X2hlaWdodCkuY29udGFpbnMoeCwgeSkpIHsKICAgICAgICAgb2JqZWN0KCktPnNldElubmVyTm9k
ZShpbmZvKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyByZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI4LDE1ICs1Mjgs
MTQgQEAKIAogICAgIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLi4u
CiAgICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSk7Ci0gICAgaWYgKChf
dHkgPj0gaS5yLnkoKSArIGkuci5oZWlnaHQoKSArIG9zKSB8fCAoX3R5ICsgX3RvcEV4dHJhICsg
bV9oZWlnaHQgKyBfYm90dG9tRXh0cmEgPD0gaS5yLnkoKSAtIG9zKSkKKyAgICBpZiAoX3R5ID49
IGkuci5ib3R0b20oKSArIG9zIHx8IF90eSArIF90b3BFeHRyYSArIG1faGVpZ2h0ICsgX2JvdHRv
bUV4dHJhIDw9IGkuci55KCkgLSBvcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGkucGhh
c2UgPT0gUGFpbnRBY3Rpb25Db2xsYXBzZWRUYWJsZUJvcmRlcnMgJiYgc3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IFZJU0lCTEUpIHsKICAgICAgICAgaW50IHcgPSB3aWR0aCgpOwogICAgICAgICBp
bnQgaCA9IGhlaWdodCgpICsgYm9yZGVyVG9wRXh0cmEoKSArIGJvcmRlckJvdHRvbUV4dHJhKCk7
CiAgICAgICAgIHBhaW50Q29sbGFwc2VkQm9yZGVyKGkucCwgX3R4LCBfdHksIHcsIGgpOwotICAg
IH0KLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAgICAgIFJlbmRlckJsb2NrOjpwYWludE9iamVj
dChpLCBfdHgsIF90eSArIF90b3BFeHRyYSk7CiAKICNpZmRlZiBCT1hfREVCVUcKQEAgLTc0Myw3
ICs3NDIsNyBAQAogICAgIH0KIAogICAgIGludCBteSA9IGtNYXgoX3R5LCBpLnIueSgpKTsKLSAg
ICBpbnQgZW5kID0ga01pbihpLnIueSgpICsgaS5yLmhlaWdodCgpLCBfdHkgKyBoKTsKKyAgICBp
bnQgZW5kID0ga01pbihpLnIuYm90dG9tKCksIF90eSArIGgpOwogICAgIGludCBtaCA9IGVuZCAt
IG15OwogCiAgICAgaWYgKGJnTGF5ZXItPmhhc0ltYWdlKCkgfHwgYy5pc1ZhbGlkKCkpIHsKSW5k
ZXg6IHJlbmRlcmluZy9yZW5kZXJfbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9y
ZW5kZXJfbGF5ZXIuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIHJlbmRlcmluZy9yZW5kZXJfbGF5
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDcsNyArNjQ3LDcgQEAKICAgICAKICAgICAvLyBG
aW5kIHRoZSBhcHByb3ByaWF0ZSBYIGNvb3JkaW5hdGUgdG8gc2Nyb2xsIHRvLgogICAgIFNjcm9s
bEJlaGF2aW9yIHNjcm9sbFggPSBnZXRIaWRkZW5CZWhhdmlvcihhbGlnblgpOwotICAgIGludCBp
bnRlcnNlY3RXaWR0aCA9IHZpc2libGVSZWN0LmludGVyc2VjdChleHBvc2VSZWN0KS53aWR0aCgp
OworICAgIGludCBpbnRlcnNlY3RXaWR0aCA9IGludGVyc2VjdGlvbih2aXNpYmxlUmVjdCwgZXhw
b3NlUmVjdCkud2lkdGgoKTsKICAgICAvLyBJZiB0aGUgcmVjdGFuZ2xlIGlzIGZ1bGx5IHZpc2li
bGUsIHVzZSB0aGUgc3BlY2lmaWVkIHZpc2libGUgYmVoYXZpb3IuCiAgICAgLy8gSWYgdGhlIHJl
Y3RhbmdsZSBpcyBwYXJ0aWFsbHkgdmlzaWJsZSwgYnV0IG92ZXIgYSBjZXJ0YWluIHRocmVzaG9s
ZCwgdGhlbiB0cmVhdCBpdCBhcyBmdWxseSB2aXNpYmxlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGhv
cml6b250YWwgc2Nyb2xsaW5nCiAgICAgaWYgKGludGVyc2VjdFdpZHRoID09IHcgfHwgaW50ZXJz
ZWN0V2lkdGggPj0gTUlOX0lOVEVSU0VDVF9GT1JfUkVWRUFMKQpAQCAtNjY3LDcgKzY2Nyw3IEBA
CiAgICAgICAgIHggPSB2aXNpYmxlUmVjdC54KCk7CiAgICAgLy8gSWYgd2UncmUgdHJ5aW5nIHRv
IGFsaWduIHRvIHRoZSBjbG9zZXN0IGVkZ2UsIGFuZCB0aGUgZXhwb3NlUmVjdCBpcyBmdXJ0aGVy
IHJpZ2h0IHRoYW4gdGhlIHZpc2libGVSZWN0LCBhbmQgbm90IGJpZ2dlciB0aGFuIHRoZSB2aXNp
YmxlIGFyZWEsIHRoZW4gYWxpZ25SaWdodC4KICAgICBlbHNlIGlmICgoc2Nyb2xsWCA9PSBhbGln
blJpZ2h0KSB8fCAoKHNjcm9sbFggPT0gYWxpZ25Ub0Nsb3Nlc3RFZGdlKSAmJiBleHBvc2VSZWN0
LnJpZ2h0KCkgPiB2aXNpYmxlUmVjdC5yaWdodCgpICYmIHcgPCB2aXNpYmxlUmVjdC53aWR0aCgp
KSkKLSAgICAgICAgeCA9IGV4cG9zZVJlY3QucmlnaHQoKSAtIHZpc2libGVSZWN0LndpZHRoKCk7
CisgICAgICAgIHggPSAoZXhwb3NlUmVjdC5yaWdodCgpIC0gMSkgLSB2aXNpYmxlUmVjdC53aWR0
aCgpOwogICAgIGVsc2UgaWYgKHNjcm9sbFggPT0gYWxpZ25DZW50ZXIpCiAgICAgICAgIHggLT0g
KHZpc2libGVSZWN0LndpZHRoKCkgLSB3KSAvIDI7CiAgICAgLy8gQnkgZGVmYXVsdCwgeCBpcyBz
ZXQgdG8gdGhlIGxlZnQgb2YgdGhlIGV4cG9zZVJlY3QsIHNvIGZvciB0aGUgYWxpZ25MZWZ0IGNh
c2UsIApAQCAtNjc2LDcgKzY3Niw3IEBACiAgICAgCiAgICAgLy8gRmluZCB0aGUgYXBwcm9wcmlh
dGUgWSBjb29yZGluYXRlIHRvIHNjcm9sbCB0by4KICAgICBTY3JvbGxCZWhhdmlvciBzY3JvbGxZ
ID0gZ2V0SGlkZGVuQmVoYXZpb3IoYWxpZ25ZKTsKLSAgICBpbnQgaW50ZXJzZWN0SGVpZ2h0ID0g
dmlzaWJsZVJlY3QuaW50ZXJzZWN0KGV4cG9zZVJlY3QpLmhlaWdodCgpOworICAgIGludCBpbnRl
cnNlY3RIZWlnaHQgPSBpbnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJlY3QpLmhlaWdo
dCgpOwogICAgIC8vIElmIHRoZSByZWN0YW5nbGUgaXMgZnVsbHkgdmlzaWJsZSwgdXNlIHRoZSBz
cGVjaWZpZWQgdmlzaWJsZSBiZWhhdmlvci4KICAgICBpZiAoaW50ZXJzZWN0SGVpZ2h0ID09IGgp
CiAgICAgICAgIHNjcm9sbFkgPSBnZXRWaXNpYmxlQmVoYXZpb3IoYWxpZ25ZKTsKQEAgLTY5NSw3
ICs2OTUsNyBAQAogICAgICAgICB5ID0gdmlzaWJsZVJlY3QueSgpOwogICAgIC8vIElmIHdlJ3Jl
IHRyeWluZyB0byBhbGlnbiB0byB0aGUgY2xvc2VzdCBlZGdlLCBhbmQgdGhlIGV4cG9zZVJlY3Qg
aXMgZnVydGhlciBkb3duIHRoYW4gdGhlIHZpc2libGVSZWN0LCBhbmQgbm90IGJpZ2dlciB0aGFu
IHRoZSB2aXNpYmxlIGFyZWEsIHRoZW4gYWxpZ25Cb3R0b20uCiAgICAgZWxzZSBpZiAoKHNjcm9s
bFkgPT0gYWxpZ25Cb3R0b20pIHx8ICgoc2Nyb2xsWSA9PSBhbGlnblRvQ2xvc2VzdEVkZ2UpICYm
IGV4cG9zZVJlY3QuYm90dG9tKCkgPiB2aXNpYmxlUmVjdC5ib3R0b20oKSAmJiBoIDwgdmlzaWJs
ZVJlY3QuaGVpZ2h0KCkpKQotICAgICAgICB5ID0gZXhwb3NlUmVjdC5ib3R0b20oKSAtIHZpc2li
bGVSZWN0LmhlaWdodCgpOworICAgICAgICB5ID0gKGV4cG9zZVJlY3QuYm90dG9tKCkgLSAxKSAt
IHZpc2libGVSZWN0LmhlaWdodCgpOwogICAgIGVsc2UgaWYgKHNjcm9sbFkgPT0gYWxpZ25DZW50
ZXIpCiAgICAgICAgIHkgLT0gKHZpc2libGVSZWN0LmhlaWdodCgpIC0gaCkgLyAyOwogICAgIC8v
IEJ5IGRlZmF1bHQsIHkgaXMgc2V0IHRvIHRoZSB0b3Agb2YgdGhlIGV4cG9zZVJlY3QsIHNvIGZv
ciB0aGUgYWxpZ25Ub3AgY2FzZSwgCkBAIC04MDIsMTkgKzgwMiwxNyBAQAogUmVuZGVyTGF5ZXI6
OnBvc2l0aW9uU2Nyb2xsYmFycyhjb25zdCBJbnRSZWN0JiBhYnNCb3VuZHMpCiB7CiAgICAgaWYg
KG1fdkJhcikgewotICAgICAgICBtX3ZCYXItPm1vdmUoYWJzQm91bmRzLngoKSthYnNCb3VuZHMu
d2lkdGgoKS1tX29iamVjdC0+Ym9yZGVyUmlnaHQoKS1tX3ZCYXItPndpZHRoKCksCi0gICAgICAg
ICAgICAgICAgICAgICBhYnNCb3VuZHMueSgpK21fb2JqZWN0LT5ib3JkZXJUb3AoKSk7Ci0gICAg
ICAgIG1fdkJhci0+cmVzaXplKG1fdkJhci0+d2lkdGgoKSwgYWJzQm91bmRzLmhlaWdodCgpIC0K
LSAgICAgICAgICAgICAgICAgICAgICAgKG1fb2JqZWN0LT5ib3JkZXJUb3AoKSttX29iamVjdC0+
Ym9yZGVyQm90dG9tKCkpIC0KLSAgICAgICAgICAgICAgICAgICAgICAgKG1faEJhciA/IG1faEJh
ci0+aGVpZ2h0KCktMSA6IDApKTsKKyAgICAgICAgbV92QmFyLT5tb3ZlKGFic0JvdW5kcy5yaWdo
dCgpIC0gbV9vYmplY3QtPmJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCksCisgICAgICAg
ICAgICBhYnNCb3VuZHMueSgpICsgbV9vYmplY3QtPmJvcmRlclRvcCgpKTsKKyAgICAgICAgbV92
QmFyLT5yZXNpemUobV92QmFyLT53aWR0aCgpLAorICAgICAgICAgICAgYWJzQm91bmRzLmhlaWdo
dCgpIC0gKG1fb2JqZWN0LT5ib3JkZXJUb3AoKSArIG1fb2JqZWN0LT5ib3JkZXJCb3R0b20oKSkg
LSAobV9oQmFyID8gbV9oQmFyLT5oZWlnaHQoKSAtIDEgOiAwKSk7CiAgICAgfQogCiAgICAgaWYg
KG1faEJhcikgewotICAgICAgICBtX2hCYXItPm1vdmUoYWJzQm91bmRzLngoKSttX29iamVjdC0+
Ym9yZGVyTGVmdCgpLAotICAgICAgICAgICAgICAgICAgICAgYWJzQm91bmRzLnkoKSthYnNCb3Vu
ZHMuaGVpZ2h0KCktbV9vYmplY3QtPmJvcmRlckJvdHRvbSgpLW1faEJhci0+aGVpZ2h0KCkpOwot
ICAgICAgICBtX2hCYXItPnJlc2l6ZShhYnNCb3VuZHMud2lkdGgoKSAtIChtX29iamVjdC0+Ym9y
ZGVyTGVmdCgpK21fb2JqZWN0LT5ib3JkZXJSaWdodCgpKSAtCi0gICAgICAgICAgICAgICAgICAg
ICAgIChtX3ZCYXIgPyBtX3ZCYXItPndpZHRoKCktMSA6IDApLAotICAgICAgICAgICAgICAgICAg
ICAgICBtX2hCYXItPmhlaWdodCgpKTsKKyAgICAgICAgbV9oQmFyLT5tb3ZlKGFic0JvdW5kcy54
KCkgKyBtX29iamVjdC0+Ym9yZGVyTGVmdCgpLAorICAgICAgICAgICAgYWJzQm91bmRzLmJvdHRv
bSgpIC0gbV9vYmplY3QtPmJvcmRlckJvdHRvbSgpIC0gbV9oQmFyLT5oZWlnaHQoKSk7CisgICAg
ICAgIG1faEJhci0+cmVzaXplKGFic0JvdW5kcy53aWR0aCgpIC0gKG1fb2JqZWN0LT5ib3JkZXJM
ZWZ0KCkgKyBtX29iamVjdC0+Ym9yZGVyUmlnaHQoKSkgLSAobV92QmFyID8gbV92QmFyLT53aWR0
aCgpIC0gMSA6IDApLAorICAgICAgICAgICAgbV9oQmFyLT5oZWlnaHQoKSk7CiAgICAgfQogfQog
CkBAIC0xMjU4LDE1ICsxMjU2LDE1IEBACiAgICAgICAgIAogICAgICAgICBpZiAobV9vYmplY3Qt
Pmhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAgICAgICBJbnRSZWN0IG5ld092ZXJmbG93Q2xp
cCA9IG1fb2JqZWN0LT5nZXRPdmVyZmxvd0NsaXBSZWN0KHgseSk7Ci0gICAgICAgICAgICBvdmVy
Zmxvd0NsaXBSZWN0ICA9IG5ld092ZXJmbG93Q2xpcC5pbnRlcnNlY3Qob3ZlcmZsb3dDbGlwUmVj
dCk7CisgICAgICAgICAgICBvdmVyZmxvd0NsaXBSZWN0LmludGVyc2VjdChuZXdPdmVyZmxvd0Ns
aXApOwogICAgICAgICAgICAgaWYgKG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSB8fCBtX29iamVj
dC0+aXNSZWxQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgcG9zQ2xpcFJlY3QgPSBuZXdP
dmVyZmxvd0NsaXAuaW50ZXJzZWN0KHBvc0NsaXBSZWN0KTsKKyAgICAgICAgICAgICAgICBwb3ND
bGlwUmVjdC5pbnRlcnNlY3QobmV3T3ZlcmZsb3dDbGlwKTsKICAgICAgICAgfQogICAgICAgICBp
ZiAobV9vYmplY3QtPmhhc0NsaXAoKSkgewogICAgICAgICAgICAgSW50UmVjdCBuZXdQb3NDbGlw
ID0gbV9vYmplY3QtPmdldENsaXBSZWN0KHgseSk7Ci0gICAgICAgICAgICBwb3NDbGlwUmVjdCA9
IHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKLSAgICAgICAgICAgIG92ZXJmbG93
Q2xpcFJlY3QgPSBvdmVyZmxvd0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKLSAgICAg
ICAgICAgIGZpeGVkQ2xpcFJlY3QgPSBmaXhlZENsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlw
KTsKKyAgICAgICAgICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAg
ICAgICAgIG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOworICAgICAgICAg
ICAgZml4ZWRDbGlwUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC0xMjg5LDcgKzEyODcsNyBAQAogICAgICAgICBiYWNrZ3JvdW5kUmVjdCA9IG1f
b2JqZWN0LT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZJWEVEID8gcGFyZW50KCktPmNsaXBSZWN0
cygpLT5maXhlZENsaXBSZWN0KCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgIChtX29iamVj
dC0+aXNQb3NpdGlvbmVkKCkgPyBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPnBvc0NsaXBSZWN0KCkg
OiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCkpOwotICAgICAgICBiYWNr
Z3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludERpcnR5UmVjdCk7Cisg
ICAgICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludERpcnR5UmVjdCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGJhY2tncm91bmRSZWN0ID0gcGFpbnREaXJ0eVJlY3Q7CiAgICAgZm9yZWdy
b3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKQEAgLTEzMDQsMTggKzEzMDIsMTggQEAKICAgICBp
ZiAobV9vYmplY3QtPmhhc092ZXJmbG93Q2xpcCgpIHx8IG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsK
ICAgICAgICAgLy8gVGhpcyBsYXllciBlc3RhYmxpc2hlcyBhIGNsaXAgb2Ygc29tZSBraW5kLgog
ICAgICAgICBpZiAobV9vYmplY3QtPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgZm9y
ZWdyb3VuZFJlY3QgPSBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3QobV9vYmplY3QtPmdldE92ZXJm
bG93Q2xpcFJlY3QoeCx5KSk7CisgICAgICAgICAgICBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3Qo
bV9vYmplY3QtPmdldE92ZXJmbG93Q2xpcFJlY3QoeCx5KSk7CiAgICAgICAgIGlmIChtX29iamVj
dC0+aGFzQ2xpcCgpKSB7CiAgICAgICAgICAgICAvLyBDbGlwIGFwcGxpZXMgdG8gKnVzKiBhcyB3
ZWxsLCBzbyBnbyBhaGVhZCBhbmQgdXBkYXRlIHRoZSBkYW1hZ2VSZWN0LgogICAgICAgICAgICAg
SW50UmVjdCBuZXdQb3NDbGlwID0gbV9vYmplY3QtPmdldENsaXBSZWN0KHgseSk7Ci0gICAgICAg
ICAgICBiYWNrZ3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChuZXdQb3NDbGlw
KTsKLSAgICAgICAgICAgIGZvcmVncm91bmRSZWN0ID0gZm9yZWdyb3VuZFJlY3QuaW50ZXJzZWN0
KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAgb3V0bGluZVJlY3QgPSBvdXRsaW5lUmVjdC5pbnRl
cnNlY3QobmV3UG9zQ2xpcCk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3Qo
bmV3UG9zQ2xpcCk7CisgICAgICAgICAgICBmb3JlZ3JvdW5kUmVjdC5pbnRlcnNlY3QobmV3UG9z
Q2xpcCk7CisgICAgICAgICAgICBvdXRsaW5lUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBJZiB3ZSBlc3RhYmxpc2ggYSBjbGlwIGF0IGFsbCwgdGhl
biBnbyBhaGVhZCBhbmQgbWFrZSBzdXJlIG91ciBiYWNrZ3JvdW5kCiAgICAgICAgIC8vIHJlY3Qg
aXMgaW50ZXJzZWN0ZWQgd2l0aCBvdXIgbGF5ZXIncyBib3VuZHMuCi0gICAgICAgIGJhY2tncm91
bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KGxheWVyQm91bmRzKTsKKyAgICAgICAg
YmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KGxheWVyQm91bmRzKTsKICAgICB9CiB9CiAKSW5kZXg6
IHJlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVu
ZGVyX2ZyYW1lcy5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysgcmVuZGVyaW5nL3JlbmRlcl9mcmFt
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsMjQgKzU2NiwyNCBAQAogICAgICAgICBpbnQg
c3cgPSBlbGVtZW50KCktPmJvcmRlcigpOwogICAgICAgICBpbnQgcCA9IG1fcmVzaXppbmcgPyAo
bV92U3BsaXQgPiAtMSA/IF94IDogX3kpIDogLTE7CiAgICAgICAgIGlmIChtX3ZTcGxpdCA+IC0x
KSB7Ci0gICAgICAgICAgICBpZiAoIG1fb2xkcG9zID49IDAgKQotICAgICAgICAgICAgICAgIHYt
PnVwZGF0ZUNvbnRlbnRzKCBtX29sZHBvcyArIHN3LzIgLSByQm9yZCAsIHIueSgpLCAyKnJCb3Jk
LCByLmhlaWdodCgpLCB0cnVlICk7Ci0gICAgICAgICAgICBpZiAoIHAgPj0gMCApeworICAgICAg
ICAgICAgaWYgKG1fb2xkcG9zID49IDApCisgICAgICAgICAgICAgICAgdi0+dXBkYXRlQ29udGVu
dHMobV9vbGRwb3MgKyBzdy8yIC0gckJvcmQsIHIueSgpLCAyICogckJvcmQsIHIuaGVpZ2h0KCks
IHRydWUgKTsKKyAgICAgICAgICAgIGlmIChwID49IDApIHsKICAgICAgICAgICAgICAgICBwYWlu
dC5zZXRQZW4oUGVuOjpOb1Blbik7Ci0gICAgICAgICAgICAgICAgcGFpbnQuc2V0QnJ1c2goIENv
bG9yOjpncmF5ICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0FscGhhKChmbG9hdCkw
LjI1KTsKLSAgICAgICAgICAgICAgICBwYWludC5kcmF3UmVjdCggcCAgKyBzdy8yIC0gckJvcmQs
IHIueSgpLCAyKnJCb3JkLCByLmhlaWdodCgpICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJh
d2luZ0FscGhhKChmbG9hdCkxLjApOworICAgICAgICAgICAgICAgIHBhaW50LnNldEJydXNoKENv
bG9yOjpncmF5KTsKKyAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoMC4yNSk7Cisg
ICAgICAgICAgICAgICAgcGFpbnQuZHJhd1JlY3QocCArIHN3LzIgLSByQm9yZCwgci55KCksIDIq
ckJvcmQsIHIuaGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgx
LjApOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCBt
X29sZHBvcyA+PSAwICkKLSAgICAgICAgICAgICAgICB2LT51cGRhdGVDb250ZW50cyggci54KCks
IG1fb2xkcG9zICsgc3cvMiAtIHJCb3JkLCByLndpZHRoKCksIDIqckJvcmQsIHRydWUgKTsKLSAg
ICAgICAgICAgIGlmICggcCA+PSAwICl7CisgICAgICAgICAgICBpZiAobV9vbGRwb3MgPj0gMCkK
KyAgICAgICAgICAgICAgICB2LT51cGRhdGVDb250ZW50cyhyLngoKSwgbV9vbGRwb3MgKyBzdy8y
IC0gckJvcmQsIHIud2lkdGgoKSwgMipyQm9yZCwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAocCA+
PSAwKSB7CiAgICAgICAgICAgICAgICAgcGFpbnQuc2V0UGVuKFBlbjo6Tm9QZW4pOwotICAgICAg
ICAgICAgICAgIHBhaW50LnNldEJydXNoKCBDb2xvcjo6Z3JheSApOwotICAgICAgICAgICAgICAg
IHYtPnNldERyYXdpbmdBbHBoYSgoZmxvYXQpMC4yNSk7Ci0gICAgICAgICAgICAgICAgcGFpbnQu
ZHJhd1JlY3QoIHIueCgpLCBwICsgc3cvMiAtIHJCb3JkLCByLndpZHRoKCksIDIqckJvcmQgKTsK
LSAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoKGZsb2F0KTEuMCk7CisgICAgICAg
ICAgICAgICAgcGFpbnQuc2V0QnJ1c2goQ29sb3I6OmdyYXkpOworICAgICAgICAgICAgICAgIHYt
PnNldERyYXdpbmdBbHBoYSgwLjI1KTsKKyAgICAgICAgICAgICAgICBwYWludC5kcmF3UmVjdChy
LngoKSwgcCArIHN3LzIgLSByQm9yZCwgci53aWR0aCgpLCAyICogckJvcmQpOworICAgICAgICAg
ICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgxLjApOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIG1fb2xkcG9zID0gcDsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAkocmV2aXNpb24gMTI0NjMp
CisrKyByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsOSAr
MzcyLDkgQEAKICAgICBQYWludEFjdGlvbiBwYWludEFjdGlvbiA9IGkucGhhc2U7CiAgICAgCiAg
ICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNpemUocGFpbnRBY3Rpb24pOwotICAgIGlmICgo
X3R5ID49IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkgKyBvcykgfHwgKF90eSArIGhlaWdodCgpIDw9
IGkuci55KCkgLSBvcykpCisgICAgaWYgKF90eSA+PSBpLnIuYm90dG9tKCkgKyBvcyB8fCBfdHkg
KyBoZWlnaHQoKSA8PSBpLnIueSgpIC0gb3MpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoKF90
eCA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkgKyBvcykgfHwgKF90eCArIHdpZHRoKCkgPD0gaS5y
LngoKSAtIG9zKSkKKyAgICBpZiAoX3R4ID49IGkuci5yaWdodCgpICsgb3MgfHwgX3R4ICsgd2lk
dGgoKSA8PSBpLnIueCgpIC0gb3MpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICgocGFpbnRB
Y3Rpb24gPT0gUGFpbnRBY3Rpb25CbG9ja0JhY2tncm91bmQgfHwgcGFpbnRBY3Rpb24gPT0gUGFp
bnRBY3Rpb25DaGlsZEJsb2NrQmFja2dyb3VuZCkKSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfYm94
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX2JveC5jcHAJKHJldmlzaW9uIDEy
NDYzKQorKysgcmVuZGVyaW5nL3JlbmRlcl9ib3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQs
MzEgKzIzNCwzMCBAQAogfQogCiAvLyBIaXQgVGVzdGluZwotYm9vbCBSZW5kZXJCb3g6Om5vZGVB
dFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50IF90eSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24p
Citib29sIFJlbmRlckJveDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCB4LCBpbnQg
eSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQogeworICAgIHR4ICs9IG1f
eDsKKyAgICB0eSArPSBtX3k7CisKICAgICAvLyBDaGVjayBraWRzIGZpcnN0LgotICAgIF90eCAr
PSBtX3g7Ci0gICAgX3R5ICs9IG1feTsKICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBs
YXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNraXAgb3ZlciBpbmxpbmUgZmxvd3MsIHNpbmNl
IHRoZXkgY2FuIHNob3cgdXAgaW5zaWRlIHRhYmxlIHJvd3MgYXQgdGhlIG1vbWVudCAoYSBkZW1v
dGVkIGlubGluZSA8Zm9ybT4gZm9yIGV4YW1wbGUpLiAgSWYgd2UgZXZlciBpbXBsZW1lbnQgYQot
ICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBoaXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3Vs
ZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbnl3YXkpLCB0aGVuIHdlIGNhbiByZW1vdmUg
dGhpcyBjaGVjay4KLSAgICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5s
aW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2ludChpbmZvLCBfeCwgX3ksIF90eCwgX3R5LCBo
aXRUZXN0QWN0aW9uKSkgeworICAgICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBza2lwIG92ZXIg
aW5saW5lIGZsb3dzLCBzaW5jZSB0aGV5IGNhbiBzaG93IHVwIGluc2lkZSB0YWJsZSByb3dzCisg
ICAgICAgIC8vIGF0IHRoZSBtb21lbnQgKGEgZGVtb3RlZCBpbmxpbmUgPGZvcm0+IGZvciBleGFt
cGxlKS4gSWYgd2UgZXZlciBpbXBsZW1lbnQgYQorICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBo
aXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3VsZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29u
cyBhbnl3YXkpLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiByZW1vdmUgdGhpcyBjaGVjay4KKyAg
ICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5saW5lRmxvdygpICYmIGNo
aWxkLT5ub2RlQXRQb2ludChpbmZvLCB4LCB5LCB0eCwgdHksIGFjdGlvbikpIHsKICAgICAgICAg
ICAgIHNldElubmVyTm9kZShpbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQogICAgIAotICAgIC8vIENoZWNrIG91ciBib3VuZHMgbmV4dC4gIEZvciB0aGlz
IHB1cnBvc2UgYWx3YXlzIGFzc3VtZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKKyAg
ICAvLyBDaGVjayBvdXIgYm91bmRzIG5leHQuIEZvciB0aGlzIHB1cnBvc2UgYWx3YXlzIGFzc3Vt
ZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKICAgICAvLyBmb3JlZ3JvdW5kIHBoYXNl
ICh3aGljaCBpcyB0cnVlIGZvciByZXBsYWNlZCBlbGVtZW50cyBsaWtlIGltYWdlcykuCi0gICAg
aWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZvcmVncm91bmQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBJbnRSZWN0IGJvdW5kc1JlY3QoX3R4LCBfdHksIG1fd2lkdGgsIG1f
aGVpZ2h0KTsKLSAgICBpZiAoYm91bmRzUmVjdC5jb250YWlucyhfeCwgX3kpKSB7CisgICAgaWYg
KGFjdGlvbiA9PSBIaXRUZXN0Rm9yZWdyb3VuZCAmJiBJbnRSZWN0KHR4LCB0eSwgbV93aWR0aCwg
bV9oZWlnaHQpLmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIHNldElubmVyTm9kZShpbmZvKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBA
IC0zMzYsNyArMzM1LDcgQEAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7CiAgICAg
aW50IG1oOwogICAgIGlmIChfdHkgPCBpLnIueSgpKQotICAgICAgICBtaD0ga01heCgwLCBoIC0g
KGkuci55KCkgLSBfdHkpKTsKKyAgICAgICAgbWggPSBrTWF4KDAsIGggLSAoaS5yLnkoKSAtIF90
eSkpOwogICAgIGVsc2UKICAgICAgICAgbWggPSBrTWluKGkuci5oZWlnaHQoKSwgaCk7CiAKQEAg
LTUwMiw3ICs1MDEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY3ggKz0geFBvc2l0aW9u
OwogICAgICAgICAgICAgICAgICAgICAgICAgY3cgLT0geFBvc2l0aW9uOwogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc3ggPSAgcGl4dyAtICh4
UG9zaXRpb24gJSBwaXh3ICk7CisgICAgICAgICAgICAgICAgICAgICAgICBzeCA9IHBpeHcgLSAo
eFBvc2l0aW9uICUgcGl4dyApOwogICAgICAgICAgICAgICAgICAgICAgICAgc3ggLT0gbGVmdCAl
IHBpeHc7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC01NTAs
MzIgKzU0OSwzMSBAQAogICAgICAgICAgICAgRUJhY2tncm91bmRSZXBlYXQgYmdyID0gYmdMYXll
ci0+YmFja2dyb3VuZFJlcGVhdCgpOwogICAgICAgICAgICAgaWYoIChiZ3IgPT0gTk9fUkVQRUFU
IHx8IGJnciA9PSBSRVBFQVRfWSkgJiYgcHcgPiBwaXh3ICkgewogICAgICAgICAgICAgICAgIGN3
ID0gcGl4dzsKLSAgICAgICAgICAgICAgICBjeCA9IHZyLngoKSArIGJnTGF5ZXItPmJhY2tncm91
bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdy1waXh3KTsKKyAgICAgICAgICAgICAgICBjeCA9IHZy
LngoKSArIGJnTGF5ZXItPmJhY2tncm91bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdyAtIHBpeHcp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjdyA9IHB3OwogICAgICAg
ICAgICAgICAgIGN4ID0gdnIueCgpOwotICAgICAgICAgICAgICAgIGlmIChwaXh3ID4gMCkgewot
ICAgICAgICAgICAgICAgICAgICBzeCA9ICBwaXh3IC0gKChiZ0xheWVyLT5iYWNrZ3JvdW5kWFBv
c2l0aW9uKCkubWluV2lkdGgocHctcGl4dykpICUgcGl4dyApOwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAocGl4dyA+IDApCisgICAgICAgICAgICAgICAgICAgIHN4ID0g
cGl4dyAtIGJnTGF5ZXItPmJhY2tncm91bmRYUG9zaXRpb24oKS5taW5XaWR0aChwdyAtIHBpeHcp
ICUgcGl4dzsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYoIChiZ3IgPT0gTk9fUkVQ
RUFUIHx8IGJnciA9PSBSRVBFQVRfWCkgJiYgcGggPiBwaXhoICkgewogICAgICAgICAgICAgICAg
IGNoID0gcGl4aDsKLSAgICAgICAgICAgICAgICBjeSA9IHZyLnkoKSArIGJnTGF5ZXItPmJhY2tn
cm91bmRZUG9zaXRpb24oKS5taW5XaWR0aChwaC1waXhoKTsKKyAgICAgICAgICAgICAgICBjeSA9
IHZyLnkoKSArIGJnTGF5ZXItPmJhY2tncm91bmRZUG9zaXRpb24oKS5taW5XaWR0aChwaCAtIHBp
eGgpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjaCA9IHBoOwogICAg
ICAgICAgICAgICAgIGN5ID0gdnIueSgpOwotICAgICAgICAgICAgICAgIGlmIChwaXhoID4gMCkg
ewotICAgICAgICAgICAgICAgICAgICBzeSA9IHBpeGggLSAoKGJnTGF5ZXItPmJhY2tncm91bmRZ
UG9zaXRpb24oKS5taW5XaWR0aChwaC1waXhoKSkgJSBwaXhoICk7Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChwaXhoID4gMCkKKyAgICAgICAgICAgICAgICAgICAgc3kg
PSBwaXhoIC0gYmdMYXllci0+YmFja2dyb3VuZFlQb3NpdGlvbigpLm1pbldpZHRoKHBoIC0gcGl4
aCkgJSBwaXhoOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBJbnRSZWN0IGZpeChjeCxj
eSxjdyxjaCk7Ci0gICAgICAgICAgICBJbnRSZWN0IGVsZShfdHgsX3R5LHcsaCk7Ci0gICAgICAg
ICAgICBJbnRSZWN0IGIgPSBmaXguaW50ZXJzZWN0KGVsZSk7Ci0gICAgICAgICAgICBzeCs9Yi54
KCktY3g7Ci0gICAgICAgICAgICBzeSs9Yi55KCktY3k7Ci0gICAgICAgICAgICBjeD1iLngoKTtj
eT1iLnkoKTtjdz1iLndpZHRoKCk7Y2g9Yi5oZWlnaHQoKTsKKyAgICAgICAgICAgIEludFJlY3Qg
YiA9IGludGVyc2VjdGlvbihJbnRSZWN0KGN4LCBjeSwgY3csIGNoKSwgSW50UmVjdChfdHgsIF90
eSwgdywgaCkpOworICAgICAgICAgICAgc3ggKz0gYi54KCkgLSBjeDsKKyAgICAgICAgICAgIHN5
ICs9IGIueSgpIC0gY3k7CisgICAgICAgICAgICBjeCA9IGIueCgpOworICAgICAgICAgICAgY3kg
PSBiLnkoKTsKKyAgICAgICAgICAgIGN3ID0gYi53aWR0aCgpOworICAgICAgICAgICAgY2ggPSBi
LmhlaWdodCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGN3PjAgJiYgY2g+MCkKQEAgLTc4
NywxMSArNzg1LDEwIEBACiAgICAgICAgICAgICBJbnRSZWN0IGJveFJlY3QoMCwgMCwgby0+bGF5
ZXIoKS0+d2lkdGgoKSwgby0+bGF5ZXIoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgby0+bGF5
ZXIoKS0+c3VidHJhY3RTY3JvbGxPZmZzZXQoeCx5KTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Ny
b2xsL2hpZGRlbi4KICAgICAgICAgICAgIEludFJlY3QgcmVwYWludFJlY3QoeCwgeSwgci53aWR0
aCgpLCByLmhlaWdodCgpKTsKLSAgICAgICAgICAgIHIgPSByZXBhaW50UmVjdC5pbnRlcnNlY3Qo
Ym94UmVjdCk7CisgICAgICAgICAgICByID0gaW50ZXJzZWN0aW9uKHJlcGFpbnRSZWN0LCBib3hS
ZWN0KTsKICAgICAgICAgICAgIGlmIChyLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICByLnNldFgoeCk7CiAgICAgICAgICAgICByLnNldFkoeSk7CiAgICAgICAgIH0KSW5kZXg6
IHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRl
cl9mbG93LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyByZW5kZXJpbmcvcmVuZGVyX2Zsb3cuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsNyArMzcwLDcgQEAKICAgICBpbnQgeVBvcyA9IGZpcnN0
TGluZUJveCgpLT5yb290KCktPnNlbGVjdGlvblRvcCgpIC0gbWF4aW1hbE91dGxpbmVTaXplKGku
cGhhc2UpOwogICAgIGludCBoID0gbWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpICsgbGFzdExp
bmVCb3goKS0+cm9vdCgpLT5zZWxlY3Rpb25Ub3AoKSArIGxhc3RMaW5lQm94KCktPnJvb3QoKS0+
c2VsZWN0aW9uSGVpZ2h0KCkgLSB5UG9zOwogICAgIHlQb3MgKz0gX3R5OwotICAgIGlmICgoeVBv
cyA+PSBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoeVBvcyArIGggPD0gaS5yLnkoKSkpCisg
ICAgaWYgKHlQb3MgPj0gaS5yLmJvdHRvbSgpIHx8IHlQb3MgKyBoIDw9IGkuci55KCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFNlZSBpZiBvdXIgcm9vdCBsaW5lcyBpbnRlcnNlY3Qgd2l0
aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdlIHBhaW50CkBAIC0zODYsNyArMzg2LDcg
QEAKICAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCBzcGxpdHRpbmcgYSBsaW5lIHZlcnRpY2Fs
bHksIGJ1dCBvbmx5IGlmIGl0J3MgbGVzcyB0aGFuIHRoZSBoZWlnaHQKICAgICAgICAgICAgIC8v
IG9mIHRoZSBlbnRpcmUgcGFnZS4KICAgICAgICAgICAgIGlmIChjdXJyLT5yb290KCktPmJvdHRv
bU92ZXJmbG93KCkgLSBjdXJyLT5yb290KCktPnRvcE92ZXJmbG93KCkgPD0gYy0+cHJpbnRSZWN0
KCkuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoX3R5ICsgY3Vyci0+cm9vdCgpLT5i
b3R0b21PdmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkueSgpICsgYy0+cHJpbnRSZWN0KCkuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoX3R5ICsgY3Vyci0+cm9vdCgpLT5ib3R0b21P
dmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkuYm90dG9tKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+dG9wT3ZlcmZsb3coKSA8IGMtPnRydW5jYXRlZEF0
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjLT5zZXRCZXN0VHJ1bmNhdGVkQXQoX3R5ICsg
Y3Vyci0+cm9vdCgpLT50b3BPdmVyZmxvdygpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAg
Ly8gSWYgd2Ugd2VyZSBhYmxlIHRvIHRydW5jYXRlLCBkb24ndCBwYWludC4KQEAgLTQwMCw3ICs0
MDAsNyBAQAogICAgICAgICBpbnQgYm90dG9tID0ga01heChjdXJyLT5yb290KCktPnNlbGVjdGlv
blRvcCgpICsgY3Vyci0+cm9vdCgpLT5zZWxlY3Rpb25IZWlnaHQoKSwgY3Vyci0+cm9vdCgpLT5i
b3R0b21PdmVyZmxvdygpKSArIG1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKTsKICAgICAgICAg
aCA9IGJvdHRvbSAtIHRvcDsKICAgICAgICAgeVBvcyA9IF90eSArIHRvcDsKLSAgICAgICAgaWYg
KCh5UG9zIDwgaS5yLnkoKSArIGkuci5oZWlnaHQoKSkgJiYgKHlQb3MgKyBoID4gaS5yLnkoKSkp
CisgICAgICAgIGlmICh5UG9zIDwgaS5yLmJvdHRvbSgpICYmIHlQb3MgKyBoID4gaS5yLnkoKSkK
ICAgICAgICAgICAgIGN1cnItPnBhaW50KGksIF90eCwgX3R5KTsKICAgICB9CiAKQEAgLTQ4Mywx
MiArNDgzLDEyIEBACiAgICAgICAgICAgICAvLyBjYi0+aGVpZ2h0KCkgaXMgaW5hY2N1cmF0ZSBp
ZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9mIHxjYnwsIHNvIHVzZSB0aGUKICAg
ICAgICAgICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBz
aXplIGlzIHdyb25nLCB0aGUgbGF5ZXIgaXRzZWxmIHdpbGwgcmVwYWludAogICAgICAgICAgICAg
Ly8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAgICAgICAgICAgaW50IHggPSBy
LmxlZnQoKTsKLSAgICAgICAgICAgIGludCB5ID0gci50b3AoKTsKKyAgICAgICAgICAgIGludCB4
ID0gci54KCk7CisgICAgICAgICAgICBpbnQgeSA9IHIueSgpOwogICAgICAgICAgICAgSW50UmVj
dCBib3hSZWN0KDAsIDAsIGNiLT5sYXllcigpLT53aWR0aCgpLCBjYi0+bGF5ZXIoKS0+aGVpZ2h0
KCkpOwotICAgICAgICAgICAgY2ItPmxheWVyKCktPnN1YnRyYWN0U2Nyb2xsT2Zmc2V0KHgseSk7
IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisgICAgICAgICAgICBjYi0+bGF5
ZXIoKS0+c3VidHJhY3RTY3JvbGxPZmZzZXQoeCwgeSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Nj
cm9sbC9oaWRkZW4uCiAgICAgICAgICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0KHgsIHksIHIud2lk
dGgoKSwgci5oZWlnaHQoKSk7Ci0gICAgICAgICAgICByID0gcmVwYWludFJlY3QuaW50ZXJzZWN0
KGJveFJlY3QpOworICAgICAgICAgICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94
UmVjdCk7CiAgICAgICAgIH0KICAgICAgICAgY2ItPmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0
KHIpOwogICAgICAgICAKQEAgLTQ5NiwxMyArNDk2LDEzIEBACiAgICAgICAgICAgICBmb3IgKFJl
bmRlck9iamVjdCogY3VyciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBh
aW50UmVjdFdpdGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICAgICAgciA9IHIudW5pdGUo
Y2hpbGRSZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgci51bml0ZShjaGlsZFJlY3QpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKGNvbnRpbnVhdGlvbigpICYmICFjb250aW51YXRpb24oKS0+aXNJbmxpbmUoKSkgewogICAg
ICAgICAgICAgICAgIEludFJlY3QgY29udFJlY3QgPSBjb250aW51YXRpb24oKS0+Z2V0QWJzb2x1
dGVSZXBhaW50UmVjdFdpdGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0
ZShjb250UmVjdCk7CisgICAgICAgICAgICAgICAgci51bml0ZShjb250UmVjdCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkBAIC02OTYsMTEgKzY5NiwxMSBAQAogICAgIFFQ
dHJMaXN0IDxJbnRSZWN0PiByZWN0czsKICAgICByZWN0cy5zZXRBdXRvRGVsZXRlKHRydWUpOwog
ICAgIAotICAgIHJlY3RzLmFwcGVuZChuZXcgSW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMu
YXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICBmb3IgKElubGluZVJ1bkJveCogY3VyciA9IGZpcnN0
TGluZUJveCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkgewogICAgICAgICBy
ZWN0cy5hcHBlbmQobmV3IEludFJlY3QoY3Vyci0+eFBvcygpLCBjdXJyLT55UG9zKCksIGN1cnIt
PndpZHRoKCksIGN1cnItPmhlaWdodCgpKSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChuZXcg
SW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IHJlY3RzLmNvdW50KCkgLSAxOyBpKysp
CiAgICAgICAgIHBhaW50T3V0bGluZUZvckxpbmUocCwgX3R4LCBfdHksICpyZWN0cy5hdChpLTEp
LCAqcmVjdHMuYXQoaSksICpyZWN0cy5hdChpKzEpKTsKQEAgLTcxNiw3NyArNzE2LDc3IEBACiAg
ICAgCiAgICAgaW50IG9mZnNldCA9IHN0eWxlKCktPm91dGxpbmVPZmZzZXQoKTsKICAgICAKLSAg
ICBpbnQgdCA9IHR5ICsgdGhpc2xpbmUudG9wKCkgLSBvZmZzZXQ7Ci0gICAgaW50IGwgPSB0eCAr
IHRoaXNsaW5lLmxlZnQoKSAtIG9mZnNldDsKLSAgICBpbnQgYiA9IHR5ICsgdGhpc2xpbmUuYm90
dG9tKCkgKyBvZmZzZXQgKyAxOwotICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdodCgpICsg
b2Zmc2V0ICsgMTsKKyAgICBpbnQgdCA9IHR5ICsgdGhpc2xpbmUueSgpIC0gb2Zmc2V0OworICAg
IGludCBsID0gdHggKyB0aGlzbGluZS54KCkgLSBvZmZzZXQ7CisgICAgaW50IGIgPSB0eSArIHRo
aXNsaW5lLmJvdHRvbSgpICsgb2Zmc2V0OworICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdo
dCgpICsgb2Zmc2V0OwogICAgIAogICAgIC8vIGxlZnQgZWRnZQogICAgIGRyYXdCb3JkZXIocCwK
ICAgICAgICAgICAgICAgIGwgLSBvdywKLSAgICAgICAgICAgICAgIHQgLSAobGFzdGxpbmUuaXNF
bXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSB8fCBsYXN0bGluZS5y
aWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogMCksCisgICAgICAgICAgICAgICB0IC0g
KGxhc3RsaW5lLmlzRW1wdHkoKSB8fCB0aGlzbGluZS54KCkgPCBsYXN0bGluZS54KCkgfHwgKGxh
c3RsaW5lLnJpZ2h0KCkgLSAxKSA8PSB0aGlzbGluZS54KCkgPyBvdyA6IDApLAogICAgICAgICAg
ICAgICAgbCwKLSAgICAgICAgICAgICAgIGIgKyAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNs
aW5lLmxlZnQoKSA8PSBuZXh0bGluZS5sZWZ0KCkgfHwgbmV4dGxpbmUucmlnaHQoKSA8PSB0aGlz
bGluZS5sZWZ0KCkgPyBvdyA6IDApLAorICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0Vt
cHR5KCkgfHwgdGhpc2xpbmUueCgpIDw9IG5leHRsaW5lLngoKSB8fCAobmV4dGxpbmUucmlnaHQo
KSAtIDEpIDw9IHRoaXNsaW5lLngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICBCU0xlZnQs
CiAgICAgICAgICAgICAgICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAg
ICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQo
KSB8fCBsYXN0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKLSAg
ICAgICAgICAgICAgIChuZXh0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUubGVmdCgpIDw9IG5l
eHRsaW5lLmxlZnQoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93
IDogLW93KSwKKyAgICAgICAgICAgICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUu
eCgpIDwgbGFzdGxpbmUueCgpIHx8IChsYXN0bGluZS5yaWdodCgpIC0gMSkgPD0gdGhpc2xpbmUu
eCgpID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCB0
aGlzbGluZS54KCkgPD0gbmV4dGxpbmUueCgpIHx8IChuZXh0bGluZS5yaWdodCgpIC0gMSkgPD0g
dGhpc2xpbmUueCgpID8gb3cgOiAtb3cpLAogICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAg
ICAgLy8gcmlnaHQgZWRnZQogICAgIGRyYXdCb3JkZXIocCwKICAgICAgICAgICAgICAgIHIsCi0g
ICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBsYXN0bGluZS5yaWdodCgp
IDwgdGhpc2xpbmUucmlnaHQoKSB8fCB0aGlzbGluZS5yaWdodCgpIDw9IGxhc3RsaW5lLmxlZnQo
KSA/IG93IDogMCksCisgICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBs
YXN0bGluZS5yaWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSB8fCAodGhpc2xpbmUucmlnaHQoKSAt
IDEpIDw9IGxhc3RsaW5lLngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICByICsgb3csCi0g
ICAgICAgICAgICAgICBiICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgp
IDw9IHRoaXNsaW5lLnJpZ2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0
KCkgPyBvdyA6IDApLAorICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0VtcHR5KCkgfHwg
bmV4dGxpbmUucmlnaHQoKSA8PSB0aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgp
IC0gMSkgPD0gbmV4dGxpbmUueCgpID8gb3cgOiAwKSwKICAgICAgICAgICAgICAgIEJTUmlnaHQs
CiAgICAgICAgICAgICAgICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAg
ICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdo
dCgpIHx8IHRoaXNsaW5lLnJpZ2h0KCkgPD0gbGFzdGxpbmUubGVmdCgpID8gb3cgOiAtb3cpLAot
ICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9
IHRoaXNsaW5lLnJpZ2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0KCkg
PyBvdyA6IC1vdyksCisgICAgICAgICAgICAgICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3Rs
aW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgpIC0gMSkg
PD0gbGFzdGxpbmUueCgpID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlz
RW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLnJpZ2h0KCkgfHwgKHRoaXNs
aW5lLnJpZ2h0KCkgLSAxKSA8PSBuZXh0bGluZS54KCkgPyBvdyA6IC1vdyksCiAgICAgICAgICAg
ICAgICB0cnVlKTsKICAgICAvLyB1cHBlciBlZGdlCi0gICAgaWYgKCB0aGlzbGluZS5sZWZ0KCkg
PCBsYXN0bGluZS5sZWZ0KCkpCisgICAgaWYgKHRoaXNsaW5lLngoKSA8IGxhc3RsaW5lLngoKSkK
ICAgICAgICAgZHJhd0JvcmRlcihwLAogICAgICAgICAgICAgICAgICAgIGwgLSBvdywKICAgICAg
ICAgICAgICAgICAgICB0IC0gb3csCi0gICAgICAgICAgICAgICAgICAga01pbihyK293LCAobGFz
dGxpbmUuaXNWYWxpZCgpPyB0eCtsYXN0bGluZS5sZWZ0KCkgOiAxMDAwMDAwKSksCisgICAgICAg
ICAgICAgICAgICAga01pbihyK293LCAobGFzdGxpbmUuaXNFbXB0eSgpID8gMTAwMDAwMCA6IHR4
ICsgbGFzdGxpbmUueCgpKSksCiAgICAgICAgICAgICAgICAgICAgdCAsCiAgICAgICAgICAgICAg
ICAgICAgQlNUb3AsIG9jLCBzdHlsZSgpLT5jb2xvcigpLCBvcywKICAgICAgICAgICAgICAgICAg
ICBvdywKLSAgICAgICAgICAgICAgICAgICAobGFzdGxpbmUuaXNWYWxpZCgpICYmIHR4K2xhc3Rs
aW5lLmxlZnQoKSsxPHIrb3cgPyAtb3cgOiBvdyksCisgICAgICAgICAgICAgICAgICAgKCFsYXN0
bGluZS5pc0VtcHR5KCkgJiYgdHggKyBsYXN0bGluZS54KCkgKyAxIDwgciArIG93KSA/IC1vdyA6
IG93LAogICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgIAogICAgIGlmIChsYXN0bGluZS5y
aWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSkKICAgICAgICAgZHJhd0JvcmRlcihwLAotICAgICAg
ICAgICAgICAgICAgIGtNYXgobGFzdGxpbmUuaXNWYWxpZCgpP3R4ICsgbGFzdGxpbmUucmlnaHQo
KSArIDE6LTEwMDAwMDAsIGwgLSBvdyksCisgICAgICAgICAgICAgICAgICAga01heChsYXN0bGlu
ZS5pc0VtcHR5KCkgPyAtMTAwMDAwMCA6IHR4ICsgbGFzdGxpbmUucmlnaHQoKSwgbCAtIG93KSwK
ICAgICAgICAgICAgICAgICAgICB0IC0gb3csCiAgICAgICAgICAgICAgICAgICAgciArIG93LAog
ICAgICAgICAgICAgICAgICAgIHQgLAogICAgICAgICAgICAgICAgICAgIEJTVG9wLCBvYywgc3R5
bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAgICAgKGxhc3RsaW5lLmlzVmFsaWQo
KSAmJiBsLW93IDwgdHgrbGFzdGxpbmUucmlnaHQoKSsxID8gLW93IDogb3cpLAorICAgICAgICAg
ICAgICAgICAgICghbGFzdGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgbGFzdGxpbmUu
cmlnaHQoKSkgPyAtb3cgOiBvdywKICAgICAgICAgICAgICAgICAgICBvdywKICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKICAgICAKICAgICAvLyBsb3dlciBlZGdlCi0gICAgaWYgKCB0aGlzbGlu
ZS5sZWZ0KCkgPCBuZXh0bGluZS5sZWZ0KCkpCisgICAgaWYgKHRoaXNsaW5lLngoKSA8IG5leHRs
aW5lLngoKSkKICAgICAgICAgZHJhd0JvcmRlcihwLAogICAgICAgICAgICAgICAgICAgIGwgLSBv
dywKICAgICAgICAgICAgICAgICAgICBiLAotICAgICAgICAgICAgICAgICAgIGtNaW4ocitvdywg
bmV4dGxpbmUuaXNWYWxpZCgpPyB0eCtuZXh0bGluZS5sZWZ0KCkrMSA6IDEwMDAwMDApLAorICAg
ICAgICAgICAgICAgICAgIGtNaW4ociArIG93LCAhbmV4dGxpbmUuaXNFbXB0eSgpID8gdHggKyBu
ZXh0bGluZS54KCkgKyAxIDogMTAwMDAwMCksCiAgICAgICAgICAgICAgICAgICAgYiArIG93LAog
ICAgICAgICAgICAgICAgICAgIEJTQm90dG9tLCBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCiAg
ICAgICAgICAgICAgICAgICAgb3csCi0gICAgICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzVmFs
aWQoKSAmJiB0eCtuZXh0bGluZS5sZWZ0KCkrMTxyK293PyAtb3cgOiBvdyksCisgICAgICAgICAg
ICAgICAgICAgKCFuZXh0bGluZS5pc0VtcHR5KCkgJiYgdHggKyBuZXh0bGluZS54KCkgKyAxIDwg
ciArIG93KSA/IC1vdyA6IG93LAogICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgIAogICAg
IGlmIChuZXh0bGluZS5yaWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSkKICAgICAgICAgZHJhd0Jv
cmRlcihwLAotICAgICAgICAgICAgICAgICAgIGtNYXgobmV4dGxpbmUuaXNWYWxpZCgpP3R4K25l
eHRsaW5lLnJpZ2h0KCkrMTotMTAwMDAwMCAsIGwtb3cpLAorICAgICAgICAgICAgICAgICAgIGtN
YXgoIW5leHRsaW5lLmlzRW1wdHkoKSA/IHR4ICsgbmV4dGxpbmUucmlnaHQoKSA6IC0xMDAwMDAw
LCBsIC0gb3cpLAogICAgICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgICAgciAr
IG93LAogICAgICAgICAgICAgICAgICAgIGIgKyBvdywKICAgICAgICAgICAgICAgICAgICBCU0Jv
dHRvbSwgb2MsIHN0eWxlKCktPmNvbG9yKCksIG9zLAotICAgICAgICAgICAgICAgICAgIChuZXh0
bGluZS5pc1ZhbGlkKCkgJiYgbC1vdyA8IHR4K25leHRsaW5lLnJpZ2h0KCkrMT8gLW93IDogb3cp
LAorICAgICAgICAgICAgICAgICAgICghbmV4dGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4
ICsgbmV4dGxpbmUucmlnaHQoKSkgPyAtb3cgOiBvdywKICAgICAgICAgICAgICAgICAgICBvdywK
ICAgICAgICAgICAgICAgICAgICB0cnVlKTsKIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfdGhl
bWVfbWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCShy
ZXZpc2lvbiAxMjQ2MykKKysrIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01MDgsNyArNTA4LDcgQEAKICAgICBpZiAoW2J1dHRvbiBiZXplbFN0eWxlXSA9
PSBOU1JvdW5kZWRCZXplbFN0eWxlKSB7CiAgICAgICAgIC8vIENlbnRlciB0aGUgYnV0dG9uIHdp
dGhpbiB0aGUgYXZhaWxhYmxlIHNwYWNlLgogICAgICAgICBpZiAoaW5mbGF0ZWRSZWN0LmhlaWdo
dCgpID4gc2l6ZS5oZWlnaHQoKSkgewotICAgICAgICAgICAgaW5mbGF0ZWRSZWN0LnNldFgoaW5m
bGF0ZWRSZWN0LngoKSArIChpbmZsYXRlZFJlY3QuaGVpZ2h0KCkgLSBzaXplLmhlaWdodCgpKS8y
KTsKKyAgICAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRZKGluZmxhdGVkUmVjdC55KCkgKyAoaW5m
bGF0ZWRSZWN0LmhlaWdodCgpIC0gc2l6ZS5oZWlnaHQoKSkgLyAyKTsKICAgICAgICAgICAgIGlu
ZmxhdGVkUmVjdC5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmlu
Zy9yZW5kZXJfbGlzdC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysgcmVuZGVyaW5nL3JlbmRlcl9s
aXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgX3R4ICs9IG1f
eDsKICAgICBfdHkgKz0gbV95OwogCi0gICAgaWYgKChfdHkgPiBpLnIueSgpICsgaS5yLmhlaWdo
dCgpKSB8fCAoX3R5ICsgbV9oZWlnaHQgPCBpLnIueSgpKSkKKyAgICBpZiAoX3R5ID4gaS5yLmJv
dHRvbSgpIHx8IF90eSArIG1faGVpZ2h0IDwgaS5yLnkoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKHNob3VsZFBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCkpIApAQCAtNDE4LDcgKzQxOCw3
IEBACiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBSZW5kZXJDYW52YXMq
IGMgPSBjYW52YXMoKTsKLSAgICAgICAgaWYgKF90eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRv
bSgpICsgYm9yZGVyQm90dG9tKCkgPj0gYy0+cHJpbnRSZWN0KCkueSgpICsgYy0+cHJpbnRSZWN0
KCkuaGVpZ2h0KCkpIHsKKyAgICAgICAgaWYgKF90eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRv
bSgpICsgYm9yZGVyQm90dG9tKCkgPj0gYy0+cHJpbnRSZWN0KCkuYm90dG9tKCkpIHsKICAgICAg
ICAgICAgIGlmIChfdHkgPCBjLT50cnVuY2F0ZWRBdCgpKQogICAgICAgICAgICAgICAgIGMtPnNl
dEJlc3RUcnVuY2F0ZWRBdChfdHksIHRoaXMpOwogICAgICAgICAgICAgLy8gTGV0J3MgcHJpbnQg
dGhpcyBvbiB0aGUgbmV4dCBwYWdlLgpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCShyZXZpc2lvbiAxMjQ2MykK
KysrIHJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE3ICsy
NywxNCBAQAogI2RlZmluZSByZW5kZXJfb2JqZWN0X2gKIAogI2luY2x1ZGUgIkNhY2hlZE9iamVj
dENsaWVudC5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIktXUVNjcm9sbEJh
ci5oIgogI2luY2x1ZGUgIk5vZGVJbXBsLmgiCiAjaW5jbHVkZSAicmVuZGVyX3N0eWxlLmgiCiAj
aW5jbHVkZSAidGV4dF9hZmZpbml0eS5oIgotI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUg
PGt4bWxjb3JlL0hhc2hTZXQuaD4KIAogY2xhc3MgQ1NTU3R5bGU7CiBjbGFzcyBGcmFtZVZpZXc7
Ci1jbGFzcyBRTWF0cml4OwogY2xhc3MgUVRleHRTdHJlYW07CiBjbGFzcyBSZW5kZXJBcmVuYTsK
IApAQCAtNjMsMTIgKzYwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQWZm
aW5lVHJhbnNmb3JtOwogY2xhc3MgQ29sb3I7CiBjbGFzcyBDb2xsYXBzZWRCb3JkZXJWYWx1ZTsK
IGNsYXNzIERPTVN0cmluZzsKIGNsYXNzIERvY3VtZW50SW1wbDsKIGNsYXNzIEVsZW1lbnRJbXBs
OwogY2xhc3MgRXZlbnRJbXBsOworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgSFRNTEFyZWFFbGVt
ZW50SW1wbDsKIGNsYXNzIElubGluZUJveDsKIGNsYXNzIElubGluZUZsb3dCb3g7CkBAIC03OSw3
ICs3OCw2IEBACiBjbGFzcyBSZW5kZXJGbG93OwogY2xhc3MgUmVuZGVyRnJhbWVTZXQ7CiBjbGFz
cyBSZW5kZXJMYXllcjsKLWNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVGFibGU7CiBj
bGFzcyBSZW5kZXJUZXh0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwpAQCAtMjc4LDExICsyNzYs
MTEgQEAKICNpZiBTVkdfU1VQUE9SVAogICAgIHZpcnR1YWwgYm9vbCBpc0tDYW52YXNDb250YWlu
ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBh
dGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlbGF0
aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdCB7IHJldHVybiBGbG9hdFJl
Y3QoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZlQkJveChib29sIGluY2x1ZGVT
dHJva2UgPSB0cnVlKSBjb25zdDsKICAgICAvLyBXZSBtYXkgZXZlbnR1YWxseSB3YW50IHRvIG1h
a2UgdGhlc2Ugbm9uLXZpcnR1YWwKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0o
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJp
eCYpIHsgYXNzZXJ0KGZhbHNlKTsgfQotICAgIHZpcnR1YWwgUU1hdHJpeCBhYnNvbHV0ZVRyYW5z
Zm9ybSgpIGNvbnN0OworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3Jt
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYpOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNm
b3JtKCkgY29uc3Q7CiAjZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0YWJsZSgp
IGNvbnN0OwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAJKHJldmlzaW9uIDEyNDYzKQor
KysgcmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3
OSwxMSArMTc5LDggQEAKICAgICAgICAgICAgIFFQYWludGVyOjpzZXRDb21wb3NpdGVPcGVyYXRp
b24gKHAtPmN1cnJlbnRDb250ZXh0KCksIG9sZE9wZXJhdGlvbik7CiAgICAgfQogCi0gICAgaWYg
KGRyYXdTZWxlY3Rpb25UaW50KSB7Ci0gICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNvbG9y
KHApKTsKLSAgICAgICAgSW50UmVjdCBzZWxSZWN0KHNlbGVjdGlvblJlY3QoKSk7Ci0gICAgICAg
IHAtPmZpbGxSZWN0KHNlbFJlY3QueCgpLCBzZWxSZWN0LnkoKSwgc2VsUmVjdC53aWR0aCgpLCBz
ZWxSZWN0LmhlaWdodCgpLCBicnVzaCk7Ci0gICAgfQorICAgIGlmIChkcmF3U2VsZWN0aW9uVGlu
dCkKKyAgICAgICAgcC0+ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rpb25Db2xvcihw
KSk7CiB9CiAKIHZvaWQgUmVuZGVyQ2FudmFzSW1hZ2U6OmxheW91dCgpCkluZGV4OiByZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CShyZXZpc2lvbiAxMjQ2MykKKysrIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA0MiwxOCArMTA0MiwxMSBAQAogCiAgICAgaW50IGFic3gsIGFic3k7CiAgICAg
Y2ItPmFic29sdXRlUG9zaXRpb24oYWJzeCwgYWJzeSk7Ci0gICAgUmVuZGVyTGF5ZXIgKmxheWVy
ID0gY2ItPmxheWVyKCk7CisgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gY2ItPmxheWVyKCk7CiAg
ICAgaWYgKGxheWVyKQogICAgICAgIGxheWVyLT5zdWJ0cmFjdFNjcm9sbE9mZnNldChhYnN4LCBh
YnN5KTsgCi0gICAgZm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94
OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkpIHsKLSAgICAgICAgSW50UmVjdCByID0gYm94LT5z
ZWxlY3Rpb25SZWN0KGFic3gsIGFic3ksIHN0YXJ0UG9zLCBlbmRQb3MpOwotICAgICAgICBpZiAo
IXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgcmVjdCA9IHI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVj
dCA9IHJlY3QudW5pdGUocik7Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChJbmxpbmVUZXh0
Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkp
CisgICAgICAgIHJlY3QudW5pdGUoYm94LT5zZWxlY3Rpb25SZWN0KGFic3gsIGFic3ksIHN0YXJ0
UG9zLCBlbmRQb3MpKTsKIAogICAgIHJldHVybiByZWN0OwogfQpJbmRleDogcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAkocmV2aXNpb24gMTI0NjMpCisrKyByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyOCwxMCArMTI4LDEwIEBACiAgICAgY29uc3QgRm9udCAqZiA9IHRleHRP
YmotPmh0bWxGb250KG1fZmlyc3RMaW5lKTsKIAogICAgIEludFJlY3QgciA9IGYtPnNlbGVjdGlv
blJlY3RGb3JUZXh0KHR4ICsgbV94LCB0eSArIHNlbFRvcCwgc2VsSGVpZ2h0LCB0ZXh0T2JqLT50
YWJXaWR0aCgpLCB0ZXh0UG9zKCksIHRleHRPYmotPnN0ci0+cywgdGV4dE9iai0+c3RyLT5sLCBt
X3N0YXJ0LCBtX2xlbiwgbV90b0FkZCwgbV9yZXZlcnNlZCwgbV9kaXJPdmVycmlkZSwgc1Bvcywg
ZVBvcyk7Ci0gICAgaWYgKHIubGVmdCgpID4gdHggKyBtX3ggKyBtX3dpZHRoKQorICAgIGlmIChy
LngoKSA+IHR4ICsgbV94ICsgbV93aWR0aCkKICAgICAgICAgci5zZXRXaWR0aCgwKTsKLSAgICBl
bHNlIGlmIChyLnJpZ2h0KCkgPiB0eCArIG1feCArIG1fd2lkdGgpCi0gICAgICAgIHIuc2V0V2lk
dGgodHggKyBtX3ggKyBtX3dpZHRoIC0gci5sZWZ0KCkpOworICAgIGVsc2UgaWYgKHIucmlnaHQo
KSAtIDEgPiB0eCArIG1feCArIG1fd2lkdGgpCisgICAgICAgIHIuc2V0V2lkdGgodHggKyBtX3gg
KyBtX3dpZHRoIC0gci54KCkpOwogICAgIHJldHVybiByOwogfQogCkBAIC0yMzYsOCArMjM2LDcg
QEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCByZWN0KHR4ICsgbV94LCB0
eSArIG1feSwgbV93aWR0aCwgbV9oZWlnaHQpOwotICAgIGlmIChtX3RydW5jYXRpb24gIT0gY0Z1
bGxUcnVuY2F0aW9uICYmIAotICAgICAgICBvYmplY3QoKS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgp
ID09IFZJU0lCTEUgJiYgcmVjdC5jb250YWlucyh4LCB5KSkgeworICAgIGlmIChtX3RydW5jYXRp
b24gIT0gY0Z1bGxUcnVuY2F0aW9uICYmIG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkg
PT0gVklTSUJMRSAmJiByZWN0LmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIG9iamVjdCgpLT5z
ZXRJbm5lck5vZGUoaSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI1Miw3ICsy
NTEsNyBAQAogCiAgICAgaW50IHhQb3MgPSB0eCArIG1feDsKICAgICBpbnQgdyA9IHdpZHRoKCk7
Ci0gICAgaWYgKCh4UG9zID49IGkuci54KCkgKyBpLnIud2lkdGgoKSkgfHwgKHhQb3MgKyB3IDw9
IGkuci54KCkpKQorICAgIGlmICh4UG9zID49IGkuci5yaWdodCgpIHx8IHhQb3MgKyB3IDw9IGku
ci54KCkpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgYm9vbCBpc1ByaW50aW5nID0g
aS5wLT5wcmludGluZygpOwpAQCAtNjU5LDcgKzY1OCw5IEBACiAgICAgUmVuZGVyVGV4dCogdGV4
dCA9IHN0YXRpY19jYXN0PFJlbmRlclRleHQqPihtX29iamVjdCk7CiAgICAgUmVuZGVyU3R5bGUg
KnN0eWxlID0gdGV4dC0+c3R5bGUobV9maXJzdExpbmUpOwogICAgIGNvbnN0IEZvbnQqIGYgPSAm
c3R5bGUtPmh0bWxGb250KCk7Ci0gICAgcmV0dXJuIGYtPmNoZWNrU2VsZWN0aW9uUG9pbnQodGV4
dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLCBtX3RvQWRkLCB0ZXh0LT50
YWJXaWR0aCgpLCB0ZXh0UG9zKCksIF94IC0gbV94LCBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJU
TCA6IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJl
ZCgpLCBpbmNsdWRlUGFydGlhbEdseXBocyk7CisgICAgcmV0dXJuIGYtPmNoZWNrU2VsZWN0aW9u
UG9pbnQodGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLAorICAgICAg
ICBtX3RvQWRkLCB0ZXh0LT50YWJXaWR0aCgpLCB0ZXh0UG9zKCksIF94IC0gbV94LAorICAgICAg
ICBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJp
ZGUgfHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCgpLCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiB9
CiAKIGludCBJbmxpbmVUZXh0Qm94Ojpwb3NpdGlvbkZvck9mZnNldChpbnQgb2Zmc2V0KSBjb25z
dApAQCAtNjY5LDcgKzY3MCw4IEBACiAgICAgaW50IGZyb20gPSBtX3JldmVyc2VkID8gb2Zmc2V0
IC0gbV9zdGFydCA6IDA7CiAgICAgaW50IHRvID0gbV9yZXZlcnNlZCA/IG1fbGVuIDogb2Zmc2V0
IC0gbV9zdGFydDsKICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBhZGQgcmlnaHRCZWFyaW5n
IGhlcmU/Ci0gICAgcmV0dXJuIGYtPnNlbGVjdGlvblJlY3RGb3JUZXh0KG1feCwgMCwgMCwgdGV4
dC0+dGFiV2lkdGgoKSwgdGV4dFBvcygpLCB0ZXh0LT5zdHItPnMsIHRleHQtPnN0ci0+bCwgbV9z
dGFydCwgbV9sZW4sIG1fdG9BZGQsIG1fcmV2ZXJzZWQsIG1fZGlyT3ZlcnJpZGUsIGZyb20sIHRv
KS5yaWdodCgpOworICAgIHJldHVybiBmLT5zZWxlY3Rpb25SZWN0Rm9yVGV4dChtX3gsIDAsIDAs
IHRleHQtPnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmws
IG1fc3RhcnQsIG1fbGVuLAorICAgICAgICBtX3RvQWRkLCBtX3JldmVyc2VkLCBtX2Rpck92ZXJy
aWRlLCBmcm9tLCB0bykucmlnaHQoKSAtIDE7CiB9CiAKIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5k
ZXJfZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAkocmV2
aXNpb24gMTI0NjMpCisrKyByZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NDEsNyArNDQxLDcgQEAKICAgICBfdHkgKz0geU9mZiAtIGJvcmRlclRvcEV4dHJhKCk7
CiAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7Ci0gICAgaW50IGVuZCA9IGtNaW4o
aS5yLnkoKSArIGkuci5oZWlnaHQoKSwgIF90eSArIGgpOworICAgIGludCBlbmQgPSBrTWluKGku
ci5ib3R0b20oKSwgIF90eSArIGgpOwogICAgIGludCBtaCA9IGVuZCAtIG15OwogCiAgICAgcGFp
bnRCYWNrZ3JvdW5kKGkucCwgc3R5bGUoKS0+YmFja2dyb3VuZENvbG9yKCksIHN0eWxlKCktPmJh
Y2tncm91bmRMYXllcnMoKSwgbXksIG1oLCBfdHgsIF90eSwgdywgaCk7CkluZGV4OiByZW5kZXJp
bmcvcmVuZGVyX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9vYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIHJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiS1dRQWNjT2JqZWN0Q2FjaGUuaCIgCkBAIC01Niw3ICs1Nyw3IEBA
CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KICNpbmNsdWRlICJQZW4uaCIKICNpbmNsdWRlIDxxdGV4
dGNvZGVjLmg+Ci0jaW5jbHVkZSA8cXdtYXRyaXguaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjk5LDMzICsxMzAwLDI5IEBACiAg
ICAgYWJzb2x1dGVSZWN0cyhyZWN0cywgeCwgeSk7CiAKICAgICBpZiAocmVjdHMuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gSW50UmVjdCgwLCAwLCAwLCAwKTsKKyAgICAgICAgcmV0dXJuIElu
dFJlY3QoKTsKIAogICAgIFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3IgaXQgPSBy
ZWN0cy5iZWdpbigpOwogICAgIEludFJlY3QgcmVzdWx0ID0gKml0OwotICAgIHdoaWxlICgrK2l0
ICE9IHJlY3RzLmVuZCgpKSB7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC51bml0ZSgqaXQpOwot
ICAgIH0KKyAgICB3aGlsZSAoKytpdCAhPSByZWN0cy5lbmQoKSkKKyAgICAgICAgcmVzdWx0LnVu
aXRlKCppdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6OmFk
ZEFic29sdXRlUmVjdEZvckxheWVyKEludFJlY3QmIHJlc3VsdCkKIHsKLSAgICBpZiAobGF5ZXIo
KSkgewotICAgICAgICByZXN1bHQgPSByZXN1bHQudW5pdGUoYWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoKSk7Ci0gICAgfQotICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gZmlyc3RDaGls
ZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkgeworICAgIGlm
IChsYXllcigpKQorICAgICAgICByZXN1bHQudW5pdGUoYWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
KSk7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1cnJl
bnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAgICAgICBjdXJyZW50LT5h
ZGRBYnNvbHV0ZVJlY3RGb3JMYXllcihyZXN1bHQpOwotICAgIH0KIH0KIAogSW50UmVjdCBSZW5k
ZXJPYmplY3Q6OnBhaW50aW5nUm9vdFJlY3QoSW50UmVjdCYgdG9wTGV2ZWxSZWN0KQogewogICAg
IEludFJlY3QgcmVzdWx0ID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKICAgICB0b3BMZXZl
bFJlY3QgPSByZXN1bHQ7Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENo
aWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKSB7CisgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAgICAgICBjdXJyZW50LT5hZGRBYnNvbHV0
ZVJlY3RGb3JMYXllcihyZXN1bHQpOwotICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBA
IC0xNDM4LDMxICsxNDM1LDI5IEBACiAgICAgaWYgKG5ld0JvdW5kcyA9PSBvbGRCb3VuZHMgJiYg
IXNlbGZOZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGZ1
bGxSZXBhaW50ID0gc2VsZk5lZWRzTGF5b3V0KCkgfHwgbmV3Qm91bmRzLngoKSAhPSBvbGRCb3Vu
ZHMueCgpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgIG5ld0JvdW5kcy55KCkgIT0gb2xkQm91
bmRzLnkoKSB8fCAKLSAgICAgICAgICAgICAgICAgICAgICAgbXVzdFJlcGFpbnRCYWNrZ3JvdW5k
T3JCb3JkZXIoKTsKKyAgICBib29sIGZ1bGxSZXBhaW50ID0gc2VsZk5lZWRzTGF5b3V0KCkgfHwg
bmV3Qm91bmRzLmxvY2F0aW9uKCkgIT0gb2xkQm91bmRzLmxvY2F0aW9uKCkgfHwgbXVzdFJlcGFp
bnRCYWNrZ3JvdW5kT3JCb3JkZXIoKTsKICAgICBpZiAoZnVsbFJlcGFpbnQpIHsKICAgICAgICAg
Yy0+cmVwYWludFZpZXdSZWN0YW5nbGUob2xkRnVsbEJvdW5kcyk7CiAgICAgICAgIGlmIChuZXdC
b3VuZHMgIT0gb2xkQm91bmRzKQogICAgICAgICAgICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUo
bmV3RnVsbEJvdW5kcyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gV2UgZGlkbid0IG1vdmUs
IGJ1dCB3ZSBkaWQgY2hhbmdlIHNpemUuICBJbnZhbGlkYXRlIHRoZSBkZWx0YSwgd2hpY2ggd2ls
bCBjb25zaXN0IG9mIHBvc3NpYmx5IAotICAgICAgICAvLyB0d28gcmVjdGFuZ2xlcyAoYnV0IHR5
cGljYWxseSBvbmx5IG9uZSkuCi0gICAgICAgIGludCB3aWR0aCA9IGFicyhuZXdCb3VuZHMud2lk
dGgoKSAtIG9sZEJvdW5kcy53aWR0aCgpKTsKLSAgICAgICAgaWYgKHdpZHRoKQotICAgICAgICAg
ICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUoSW50UmVjdChrTWluKG5ld0JvdW5kcy54KCkgKyBu
ZXdCb3VuZHMud2lkdGgoKSwgb2xkQm91bmRzLngoKSArIG9sZEJvdW5kcy53aWR0aCgpKSAtIGJv
cmRlclJpZ2h0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdCb3Vu
ZHMueSgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoICsgYm9y
ZGVyUmlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXgobmV3
Qm91bmRzLmhlaWdodCgpLCBvbGRCb3VuZHMuaGVpZ2h0KCkpKSk7Ci0gICAgICAgIGludCBoZWln
aHQgPSBhYnMobmV3Qm91bmRzLmhlaWdodCgpIC0gb2xkQm91bmRzLmhlaWdodCgpKTsKLSAgICAg
ICAgaWYgKGhlaWdodCkKLSAgICAgICAgICAgIGMtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKEludFJl
Y3QobmV3Qm91bmRzLngoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtNaW4obmV3Qm91bmRzLnkoKSArIG5ld0JvdW5kcy5oZWlnaHQoKSwgb2xkQm91bmRzLnko
KSArIG9sZEJvdW5kcy5oZWlnaHQoKSkgLSBib3JkZXJCb3R0b20oKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNYXgobmV3Qm91bmRzLndpZHRoKCksIG9sZEJv
dW5kcy53aWR0aCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodCArIGJvcmRlckJvdHRvbSgpKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiB0cnVlOworCisgICAgLy8gV2UgZGlk
bid0IG1vdmUsIGJ1dCB3ZSBkaWQgY2hhbmdlIHNpemUuICBJbnZhbGlkYXRlIHRoZSBkZWx0YSwg
d2hpY2ggd2lsbCBjb25zaXN0IG9mIHBvc3NpYmx5IAorICAgIC8vIHR3byByZWN0YW5nbGVzIChi
dXQgdHlwaWNhbGx5IG9ubHkgb25lKS4KKyAgICBpbnQgd2lkdGggPSBhYnMobmV3Qm91bmRzLndp
ZHRoKCkgLSBvbGRCb3VuZHMud2lkdGgoKSk7CisgICAgaWYgKHdpZHRoKQorICAgICAgICBjLT5y
ZXBhaW50Vmlld1JlY3RhbmdsZShJbnRSZWN0KGtNaW4obmV3Qm91bmRzLngoKSArIG5ld0JvdW5k
cy53aWR0aCgpLCBvbGRCb3VuZHMueCgpICsgb2xkQm91bmRzLndpZHRoKCkpIC0gYm9yZGVyUmln
aHQoKSwKKyAgICAgICAgICAgIG5ld0JvdW5kcy55KCksCisgICAgICAgICAgICB3aWR0aCArIGJv
cmRlclJpZ2h0KCksCisgICAgICAgICAgICBrTWF4KG5ld0JvdW5kcy5oZWlnaHQoKSwgb2xkQm91
bmRzLmhlaWdodCgpKSkpOworICAgIGludCBoZWlnaHQgPSBhYnMobmV3Qm91bmRzLmhlaWdodCgp
IC0gb2xkQm91bmRzLmhlaWdodCgpKTsKKyAgICBpZiAoaGVpZ2h0KQorICAgICAgICBjLT5yZXBh
aW50Vmlld1JlY3RhbmdsZShJbnRSZWN0KG5ld0JvdW5kcy54KCksCisgICAgICAgICAgICBrTWlu
KG5ld0JvdW5kcy5ib3R0b20oKSwgb2xkQm91bmRzLmJvdHRvbSgpKSAtIGJvcmRlckJvdHRvbSgp
LAorICAgICAgICAgICAga01heChuZXdCb3VuZHMud2lkdGgoKSwgb2xkQm91bmRzLndpZHRoKCkp
LAorICAgICAgICAgICAgaGVpZ2h0ICsgYm9yZGVyQm90dG9tKCkpKTsKKyAgICByZXR1cm4gZmFs
c2U7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZChp
bnQgeCwgaW50IHkpCkBAIC0xNDk5LDE5ICsxNDk0LDE1IEBACiBJbnRSZWN0IFJlbmRlck9iamVj
dDo6Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdpdGhPdXRsaW5lKGludCBvdykKIHsKICAgICBJbnRS
ZWN0IHIoZ2V0QWJzb2x1dGVSZXBhaW50UmVjdCgpKTsKLSAgICByLnNldFJlY3Qoci54KCktb3cs
IHIueSgpLW93LCByLndpZHRoKCkrb3cqMiwgci5oZWlnaHQoKStvdyoyKTsKKyAgICByLmluZmxh
dGUob3cpOwogCiAgICAgaWYgKGNvbnRpbnVhdGlvbigpICYmICFpc0lubGluZSgpKQotICAgICAg
ICByLnNldFJlY3Qoci54KCksIHIueSgpLWNvbGxhcHNlZE1hcmdpblRvcCgpLCByLndpZHRoKCks
IHIuaGVpZ2h0KCkrY29sbGFwc2VkTWFyZ2luVG9wKCkrY29sbGFwc2VkTWFyZ2luQm90dG9tKCkp
OworICAgICAgICByLmluZmxhdGVZKGNvbGxhcHNlZE1hcmdpblRvcCgpKTsKICAgICAKLSAgICBp
ZiAoaXNJbmxpbmVGbG93KCkpIHsKLSAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBm
aXJzdENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgSW50UmVjdCBjaGls
ZFJlY3QgPSBjdXJyLT5nZXRBYnNvbHV0ZVJlcGFpbnRSZWN0V2l0aE91dGxpbmUob3cpOwotICAg
ICAgICAgICAgICAgIHIgPSByLnVuaXRlKGNoaWxkUmVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9CisgICAgaWYgKGlzSW5saW5lRmxvdygpKQorICAgICAgICBmb3IgKFJlbmRl
ck9iamVjdCogY3VyciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJs
aW5nKCkpCisgICAgICAgICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKQorICAgICAgICAgICAgICAg
IHIudW5pdGUoY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdpdGhPdXRsaW5lKG93KSk7CiAK
ICAgICByZXR1cm4gcjsKIH0KQEAgLTI0ODgsMTEgKzI0NzksMTEgQEAKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgaW50IHgsIHk7Ci0gICAgICAgICAgICBhYnNvbHV0ZVBvc2l0aW9uICh4
LCB5KTsKLSAgICAgICAgICAgIHJlZ2lvbi5ib3VuZHMuc2V0WCAoeCArIHN0eWxlUmVnaW9uLm9m
ZnNldC5sZWZ0LnZhbHVlKTsKLSAgICAgICAgICAgIHJlZ2lvbi5ib3VuZHMuc2V0WSAoeSArIHN0
eWxlUmVnaW9uLm9mZnNldC50b3AudmFsdWUpOworICAgICAgICAgICAgYWJzb2x1dGVQb3NpdGlv
bih4LCB5KTsKKyAgICAgICAgICAgIHJlZ2lvbi5ib3VuZHMuc2V0WCh4ICsgc3R5bGVSZWdpb24u
b2Zmc2V0LmxlZnQudmFsdWUpOworICAgICAgICAgICAgcmVnaW9uLmJvdW5kcy5zZXRZKHkgKyBz
dHlsZVJlZ2lvbi5vZmZzZXQudG9wLnZhbHVlKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVnaW9ucy5hcHBlbmQgKHJlZ2lvbik7CisgICAgICAgICAgICByZWdpb25zLmFwcGVuZChyZWdp
b24pOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMjYwNiwxMyArMjU5NywyMyBAQAogCiAjaWYg
U1ZHX1NVUFBPUlQKIAotUU1hdHJpeCBSZW5kZXJPYmplY3Q6OmxvY2FsVHJhbnNmb3JtKCkgY29u
c3QKK0Zsb2F0UmVjdCBSZW5kZXJPYmplY3Q6OnJlbGF0aXZlQkJveChib29sKSBjb25zdAogewot
ICAgIHJldHVybiBRTWF0cml4KDEsIDAsIDAsIDEsIHhQb3MoKSwgeVBvcygpKTsKKyAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CiB9CisKK0FmZmluZVRyYW5zZm9ybSBSZW5kZXJPYmplY3Q6OmxvY2Fs
VHJhbnNmb3JtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJhbnNsYXRpb25NYXRyaXgoeFBvcygp
LCB5UG9zKCkpOworfQogIAotUU1hdHJpeCBSZW5kZXJPYmplY3Q6OmFic29sdXRlVHJhbnNmb3Jt
KCkgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mKQogeworICAgIGFzc2VydChmYWxzZSk7Cit9CisKK0FmZmluZVRyYW5zZm9y
bSBSZW5kZXJPYmplY3Q6OmFic29sdXRlVHJhbnNmb3JtKCkgY29uc3QKK3sKICAgICBpZiAocGFy
ZW50KCkpCiAgICAgICAgIHJldHVybiBsb2NhbFRyYW5zZm9ybSgpICogcGFyZW50KCktPmFic29s
dXRlVHJhbnNmb3JtKCk7CiAgICAgcmV0dXJuIGxvY2FsVHJhbnNmb3JtKCk7CkluZGV4OiByZW5k
ZXJpbmcvcmVuZGVyX2NhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9j
YW52YXMuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIHJlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDggKzI1MCw3IEBACiAgICAgaWYgKGVsdCB8fCB2aWV3
KCktPmlzVHJhbnNwYXJlbnQoKSkKICAgICAgICAgdmlldygpLT51c2VTbG93UmVwYWludHMoKTsg
Ly8gVGhlIHBhcmVudCBtdXN0IHNob3cgYmVoaW5kIHRoZSBjaGlsZC4KICAgICBlbHNlCi0gICAg
ICAgIGkucC0+ZmlsbFJlY3QoaS5yLngoKSwgaS5yLnkoKSwgaS5yLndpZHRoKCksIGkuci5oZWln
aHQoKSwgCi0gICAgICAgICAgICAgICAgICAgIHZpZXcoKS0+cGFsZXR0ZSgpLmFjdGl2ZSgpLmNv
bG9yKFFDb2xvckdyb3VwOjpCYXNlKSk7CisgICAgICAgIGkucC0+ZmlsbFJlY3QoaS5yLCB2aWV3
KCktPnBhbGV0dGUoKS5hY3RpdmUoKS5jb2xvcihRQ29sb3JHcm91cDo6QmFzZSkpOwogfQogCiB2
b2lkIFJlbmRlckNhbnZhczo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXIs
IGJvb2wgaW1tZWRpYXRlKQpAQCAtMjYyLDIxICsyNjEsMjAgQEAKICAgICBpZiAobV92aWV3ICYm
IHVyLmludGVyc2VjdHModnIpKSB7CiAgICAgICAgIC8vIFdlIGFsd2F5cyBqdXN0IGludmFsaWRh
dGUgdGhlIHJvb3Qgdmlldywgc2luY2Ugd2UgY291bGQgYmUgYW4gaWZyYW1lIHRoYXQgaXMgY2xp
cHBlZCBvdXQKICAgICAgICAgLy8gb3IgZXZlbiBpbnZpc2libGUuCi0gICAgICAgIEludFJlY3Qg
ciA9IHVyLmludGVyc2VjdCh2cik7CisgICAgICAgIEludFJlY3QgciA9IGludGVyc2VjdGlvbih1
ciwgdnIpOwogICAgICAgICBET006OkVsZW1lbnRJbXBsKiBlbHQgPSBlbGVtZW50KCktPmdldERv
Y3VtZW50KCktPm93bmVyRWxlbWVudCgpOwogICAgICAgICBpZiAoIWVsdCkKICAgICAgICAgICAg
IG1fdmlldy0+cmVwYWludFJlY3RhbmdsZShyLCBpbW1lZGlhdGUpOwogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIC8vIFN1YnRyYWN0IG91dCB0aGUgY29udGVudHNYIGFuZCBjb250ZW50c1kg
b2Zmc2V0cyB0byBnZXQgb3VyIGNvb3JkcyB3aXRoaW4gdGhlIHZpZXdpbmcKICAgICAgICAgICAg
IC8vIHJlY3RhbmdsZS4KLSAgICAgICAgICAgIHIuc2V0WChyLngoKSAtIG1fdmlldy0+Y29udGVu
dHNYKCkpOwotICAgICAgICAgICAgci5zZXRZKHIueSgpIC0gbV92aWV3LT5jb250ZW50c1koKSk7
CisgICAgICAgICAgICByLm1vdmUoLW1fdmlldy0+Y29udGVudHNYKCksIC1tX3ZpZXctPmNvbnRl
bnRzWSgpKTsKIAogICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBvYmogPSBlbHQtPnJlbmRlcmVy
KCk7CiAgICAgICAgICAgICBpbnQgeUZyYW1lT2Zmc2V0ID0gKG1fdmlldy0+ZnJhbWVTdHlsZSgp
ICE9IFFGcmFtZTo6Tm9GcmFtZSkgPyAyIDogMDsKICAgICAgICAgICAgIGludCB4RnJhbWVPZmZz
ZXQgPSAobV92aWV3LT5mcmFtZVN0eWxlKCkgIT0gUUZyYW1lOjpOb0ZyYW1lKSA/IDEgOiAwOwot
ICAgICAgICAgICAgci5zZXRYKHIueCgpICsgb2JqLT5ib3JkZXJMZWZ0KCkrb2JqLT5wYWRkaW5n
TGVmdCgpICsgeEZyYW1lT2Zmc2V0KTsKLSAgICAgICAgICAgIHIuc2V0WShyLnkoKSArIG9iai0+
Ym9yZGVyVG9wKCkrb2JqLT5wYWRkaW5nVG9wKCkgKyB5RnJhbWVPZmZzZXQpOworICAgICAgICAg
ICAgci5tb3ZlKG9iai0+Ym9yZGVyTGVmdCgpICsgb2JqLT5wYWRkaW5nTGVmdCgpICsgeEZyYW1l
T2Zmc2V0LAorICAgICAgICAgICAgICAgIG9iai0+Ym9yZGVyVG9wKCkgKyBvYmotPnBhZGRpbmdU
b3AoKSArIHlGcmFtZU9mZnNldCk7CiAgICAgICAgICAgICBvYmotPnJlcGFpbnRSZWN0YW5nbGUo
ciwgaW1tZWRpYXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI5MywxMiArMjkxLDExIEBACiAK
IHZvaWQgUmVuZGVyQ2FudmFzOjpjb21wdXRlQWJzb2x1dGVSZXBhaW50UmVjdChJbnRSZWN0JiBy
LCBib29sIGYpCiB7Ci0gICAgaWYgKG1fcHJpbnRpbmdNb2RlKSByZXR1cm47CisgICAgaWYgKG1f
cHJpbnRpbmdNb2RlKQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoZiAmJiBtX3ZpZXcpIHsK
LSAgICAgICAgci5zZXRYKHIueCgpICsgbV92aWV3LT5jb250ZW50c1goKSk7Ci0gICAgICAgIHIu
c2V0WShyLnkoKSArIG1fdmlldy0+Y29udGVudHNZKCkpOwotICAgIH0KKyAgICBpZiAoZiAmJiBt
X3ZpZXcpCisgICAgICAgIHIubW92ZShtX3ZpZXctPmNvbnRlbnRzWCgpLCBtX3ZpZXctPmNvbnRl
bnRzWSgpKTsKIH0KIAogdm9pZCBSZW5kZXJDYW52YXM6OmFic29sdXRlUmVjdHMoUVZhbHVlTGlz
dDxJbnRSZWN0PiYgcmVjdHMsIGludCBfdHgsIGludCBfdHkpCkBAIC0zNDgsNyArMzQ1LDcgQEAK
ICAgICBTZWxlY3Rpb25NYXA6Oml0ZXJhdG9yIGVuZCA9IHNlbGVjdGVkT2JqZWN0cy5lbmQoKTsK
ICAgICBmb3IgKFNlbGVjdGlvbk1hcDo6aXRlcmF0b3IgaSA9IHNlbGVjdGVkT2JqZWN0cy5iZWdp
bigpOyBpICE9IGVuZDsgKytpKSB7CiAgICAgICAgIFNlbGVjdGlvbkluZm8qIGluZm8gPSBpLT5z
ZWNvbmQ7Ci0gICAgICAgIHNlbFJlY3QgPSBzZWxSZWN0LnVuaXRlKGluZm8tPnJlY3QoKSk7Cisg
ICAgICAgIHNlbFJlY3QudW5pdGUoaW5mby0+cmVjdCgpKTsKICAgICAgICAgZGVsZXRlIGluZm87
CiAgICAgfQogICAgIHJldHVybiBzZWxSZWN0OwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9yZXBs
YWNlZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJKHJl
dmlzaW9uIDEyNDYzKQorKysgcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTgxLDkgKzgxLDkgQEAKICAgICB9CiAgICAgCiAgICAgaW50IG9zID0gMiptYXhp
bWFsT3V0bGluZVNpemUoaS5waGFzZSk7Ci0gICAgaWYgKCh0eCA+PSBpLnIueCgpICsgaS5yLndp
ZHRoKCkgKyBvcykgfHwgKHR4ICsgbV93aWR0aCA8PSBpLnIueCgpIC0gb3MpKQorICAgIGlmICh0
eCA+PSBpLnIucmlnaHQoKSArIG9zIHx8IHR4ICsgbV93aWR0aCA8PSBpLnIueCgpIC0gb3MpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoKHRvcCA+PSBpLnIueSgpICsgaS5yLmhlaWdo
dCgpICsgb3MpIHx8IChib3R0b20gPD0gaS5yLnkoKSAtIG9zKSkKKyAgICBpZiAodG9wID49IGku
ci5ib3R0b20oKSArIG9zIHx8IGJvdHRvbSA8PSBpLnIueSgpIC0gb3MpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDA5LDExICs0MDksOCBAQAogICAgIG1f
d2lkZ2V0LT5wYWludChpLnAsIGkucik7CiAgICAgCiAgICAgLy8gUGFpbnQgYSBwYXJ0aWFsbHkg
dHJhbnNwYXJlbnQgd2FzaCBvdmVyIHNlbGVjdGVkIHdpZGdldHMuCi0gICAgaWYgKGlzU2VsZWN0
ZWQoKSAmJiAhaS5wLT5wcmludGluZygpKSB7Ci0gICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlv
bkNvbG9yKGkucCkpOwotICAgICAgICBJbnRSZWN0IHNlbFJlY3Qoc2VsZWN0aW9uUmVjdCgpKTsK
LSAgICAgICAgaS5wLT5maWxsUmVjdChzZWxSZWN0LngoKSwgc2VsUmVjdC55KCksIHNlbFJlY3Qu
d2lkdGgoKSwgc2VsUmVjdC5oZWlnaHQoKSwgYnJ1c2gpOwotICAgIH0KKyAgICBpZiAoaXNTZWxl
Y3RlZCgpICYmICFpLnAtPnByaW50aW5nKCkpCisgICAgICAgIGkucC0+ZmlsbFJlY3Qoc2VsZWN0
aW9uUmVjdCgpLCBzZWxlY3Rpb25Db2xvcihpLnApKTsKIH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6
OmhhbmRsZUZvY3VzT3V0KCkKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc2LDcgKzExNzYs
NyBAQAogICAgICAgICAgICAgaWYgKCFyLT5ub1BhaW50ICYmICFyLT5ub2RlLT5sYXllcigpKSB7
CiAgICAgICAgICAgICAgICAgSW50UmVjdCBjaGlsZFJlY3QsIGNoaWxkRnVsbFJlY3Q7CiAgICAg
ICAgICAgICAgICAgci0+bm9kZS0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdEluY2x1ZGluZ0Zsb2F0
cyhjaGlsZFJlY3QsIGNoaWxkRnVsbFJlY3QpOwotICAgICAgICAgICAgICAgIGZ1bGxCb3VuZHMg
PSBmdWxsQm91bmRzLnVuaXRlKGNoaWxkRnVsbFJlY3QpOworICAgICAgICAgICAgICAgIGZ1bGxC
b3VuZHMudW5pdGUoY2hpbGRGdWxsUmVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xMjIzLDggKzEyMjMsNyBAQAogICAgIGlmICghaXNJbmxpbmVGbG93KCkgJiYgIWlz
Um9vdCgpKSB7CiAgICAgICAgIEludFJlY3Qgb3ZlcmZsb3dCb3ggPSBvdmVyZmxvd1JlY3QoZmFs
c2UpOwogICAgICAgICBvdmVyZmxvd0JveC5pbmZsYXRlKG1heGltYWxPdXRsaW5lU2l6ZShpLnBo
YXNlKSk7Ci0gICAgICAgIG92ZXJmbG93Qm94LnNldFgob3ZlcmZsb3dCb3gueCgpICsgX3R4KTsK
LSAgICAgICAgb3ZlcmZsb3dCb3guc2V0WShvdmVyZmxvd0JveC55KCkgKyBfdHkpOworICAgICAg
ICBvdmVyZmxvd0JveC5tb3ZlKF90eCwgX3R5KTsKICAgICAgICAgYm9vbCBpbnRlcnNlY3RzT3Zl
cmZsb3dCb3ggPSBvdmVyZmxvd0JveC5pbnRlcnNlY3RzKGkucik7CiAgICAgICAgIGlmICghaW50
ZXJzZWN0c092ZXJmbG93Qm94KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmbG9hdHMgbmV4dC4K
QEAgLTEyMzIsOCArMTIzMSw3IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgSW50UmVjdCBmbG9hdEJveCA9IGZsb2F0UmVjdCgpOwogICAgICAgICAgICAgZmxvYXRCb3gu
aW5mbGF0ZShtYXhpbWFsT3V0bGluZVNpemUoaS5waGFzZSkpOwotICAgICAgICAgICAgZmxvYXRC
b3guc2V0WChmbG9hdEJveC54KCkgKyBfdHgpOwotICAgICAgICAgICAgZmxvYXRCb3guc2V0WShm
bG9hdEJveC55KCkgKyBfdHkpOworICAgICAgICAgICAgZmxvYXRCb3gubW92ZShfdHgsIF90eSk7
CiAgICAgICAgICAgICBpZiAoIWZsb2F0Qm94LmludGVyc2VjdHMoaS5yKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyNTMsNyArMTI1MSw3IEBACiAgICAgICAgIC8v
IENoZWNrIGZvciBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQsIGJy
ZWFrIGFuZCBiYWlsLgogICAgICAgICBpZiAoaXNQcmludGluZyAmJiAhY2hpbGRyZW5JbmxpbmUo
KSAmJiBjaGlsZC0+c3R5bGUoKS0+cGFnZUJyZWFrQmVmb3JlKCkgPT0gUEJBTFdBWVMgJiYKICAg
ICAgICAgICAgIGluUm9vdEJsb2NrQ29udGV4dCgpICYmIChfdHkgKyBjaGlsZC0+eVBvcygpKSA+
IGkuci55KCkgJiYgCi0gICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBpLnIueSgp
ICsgaS5yLmhlaWdodCgpKSB7CisgICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBp
LnIuYm90dG9tKCkpIHsKICAgICAgICAgICAgIGNhbnZhcygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQo
X3R5ICsgY2hpbGQtPnlQb3MoKSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTEyNjQsNyArMTI2Miw3IEBACiAgICAgICAgIC8vIENoZWNrIGZvciBwYWdl
LWJyZWFrLWFmdGVyOiBhbHdheXMsIGFuZCBpZiBpdCdzIHNldCwgYnJlYWsgYW5kIGJhaWwuCiAg
ICAgICAgIGlmIChpc1ByaW50aW5nICYmICFjaGlsZHJlbklubGluZSgpICYmIGNoaWxkLT5zdHls
ZSgpLT5wYWdlQnJlYWtBZnRlcigpID09IFBCQUxXQVlTICYmIAogICAgICAgICAgICAgaW5Sb290
QmxvY2tDb250ZXh0KCkgJiYgKF90eSArIGNoaWxkLT55UG9zKCkgKyBjaGlsZC0+aGVpZ2h0KCkp
ID4gaS5yLnkoKSAmJiAKLSAgICAgICAgICAgIChfdHkgKyBjaGlsZC0+eVBvcygpICsgY2hpbGQt
PmhlaWdodCgpKSA8IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIChfdHkg
KyBjaGlsZC0+eVBvcygpICsgY2hpbGQtPmhlaWdodCgpKSA8IGkuci5ib3R0b20oKSkgewogICAg
ICAgICAgICAgY2FudmFzKCktPnNldEJlc3RUcnVuY2F0ZWRBdChfdHkgKyBjaGlsZC0+eVBvcygp
ICsgY2hpbGQtPmhlaWdodCgpICsgY2hpbGQtPmNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpLCB0aGlz
LCB0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTM4Nyw3ICsxMzg1
LDcgQEAKICAgICAgICAgLy8gaW50ZXJzZWN0LgogICAgICAgICBpbnQgeVBvcyA9IF90eSArIGZp
cnN0TGluZUJveCgpLT55UG9zKCk7OwogICAgICAgICBpbnQgaCA9IGxhc3RMaW5lQm94KCktPnlQ
b3MoKSArIGxhc3RMaW5lQm94KCktPmhlaWdodCgpIC0gZmlyc3RMaW5lQm94KCktPnlQb3MoKTsK
LSAgICAgICAgaWYoICh5UG9zID49IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkpIHx8ICh5UG9zICsg
aCA8PSBpLnIueSgpKSkKKyAgICAgICAgaWYgKHlQb3MgPj0gaS5yLmJvdHRvbSgpIHx8IHlQb3Mg
KyBoIDw9IGkuci55KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gU2VlIGlm
IG91ciBib3hlcyBpbnRlcnNlY3Qgd2l0aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdl
IHBhaW50CkBAIC0xMzk2LDcgKzEzOTQsNyBAQAogICAgICAgICBmb3IgKFJvb3RJbmxpbmVCb3gq
IGN1cnIgPSBmaXJzdFJvb3RCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRSb290Qm94KCkp
IHsKICAgICAgICAgICAgIHlQb3MgPSBfdHkgKyBjdXJyLT55UG9zKCk7CiAgICAgICAgICAgICBo
ID0gY3Vyci0+aGVpZ2h0KCk7Ci0gICAgICAgICAgICBpZiAoY3Vyci0+ZWxsaXBzaXNCb3goKSAm
JiAoeVBvcyA8IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkpICYmICh5UG9zICsgaCA+IGkuci55KCkp
KQorICAgICAgICAgICAgaWYgKGN1cnItPmVsbGlwc2lzQm94KCkgJiYgeVBvcyA8IGkuci5ib3R0
b20oKSAmJiB5UG9zICsgaCA+IGkuci55KCkpCiAgICAgICAgICAgICAgICAgY3Vyci0+cGFpbnRF
bGxpcHNpc0JveChpLCBfdHgsIF90eSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTEzLDcgKzE1
MTEsNyBAQAogICAgICAgICAgICAgcmVzdWx0LnVuaXRlQ2VudGVyKGZpbGxWZXJ0aWNhbFNlbGVj
dGlvbkdhcChsYXN0VG9wLCBsYXN0TGVmdCwgbGFzdFJpZ2h0LCB0eSArIHNlbFRvcCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdEJs
b2NrLCBibG9ja1gsIGJsb2NrWSwgaSkpOwogCi0gICAgICAgIGlmICghaSB8fCAodHkgKyBzZWxU
b3AgPCBpLT5yLnkoKSArIGktPnIuaGVpZ2h0KCkpICYmICh0eSArIHNlbFRvcCArIHNlbEhlaWdo
dCA+IGktPnIueSgpKSkKKyAgICAgICAgaWYgKCFpIHx8IHR5ICsgc2VsVG9wIDwgaS0+ci5ib3R0
b20oKSAmJiB0eSArIHNlbFRvcCArIHNlbEhlaWdodCA+IGktPnIueSgpKQogICAgICAgICAgICAg
cmVzdWx0LnVuaXRlKGN1cnItPmZpbGxMaW5lU2VsZWN0aW9uR2FwKHNlbFRvcCwgc2VsSGVpZ2h0
LCByb290QmxvY2ssIGJsb2NrWCwgYmxvY2tZLCB0eCwgdHksIGkpKTsKIAogICAgICAgICBsYXN0
U2VsZWN0ZWRMaW5lID0gY3VycjsKQEAgLTIwNTYsMjYgKzIwNTQsMjAgQEAKICAgICBmb3IgKDsg
KHIgPSBpdC5jdXJyZW50KCkpOyArK2l0KSB7CiAgICAgICAgIGlmICghci0+bm9QYWludCAmJiAh
ci0+bm9kZS0+bGF5ZXIoKSkgewogICAgICAgICAgICAgLy8gQ2hlY2sgdGhpcyBmbG9hdC4KLSAg
ICAgICAgICAgIGludCBib3R0b21EZWx0YSA9IGtNYXgoMCwgci0+c3RhcnRZICsgci0+bm9kZS0+
bWFyZ2luVG9wKCkgKyByLT5ub2RlLT5vdmVyZmxvd0hlaWdodChmYWxzZSkgLQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0LnkoKSArIHJlc3VsdC5oZWlnaHQo
KSkpOworICAgICAgICAgICAgaW50IGJvdHRvbURlbHRhID0ga01heCgwLCByLT5zdGFydFkgKyBy
LT5ub2RlLT5tYXJnaW5Ub3AoKSArIHItPm5vZGUtPm92ZXJmbG93SGVpZ2h0KGZhbHNlKSAtIHJl
c3VsdC5ib3R0b20oKSk7CiAgICAgICAgICAgICBpZiAoYm90dG9tRGVsdGEpCiAgICAgICAgICAg
ICAgICAgcmVzdWx0LnNldEhlaWdodChyZXN1bHQuaGVpZ2h0KCkgKyBib3R0b21EZWx0YSk7Ci0g
ICAgICAgICAgICBpbnQgcmlnaHREZWx0YSA9IGtNYXgoMCwgci0+bGVmdCArIHItPm5vZGUtPm1h
cmdpbkxlZnQoKSArIHItPm5vZGUtPm92ZXJmbG93V2lkdGgoZmFsc2UpIC0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0LngoKSArIHJlc3VsdC53aWR0aCgpKSk7
CisgICAgICAgICAgICBpbnQgcmlnaHREZWx0YSA9IGtNYXgoMCwgci0+bGVmdCArIHItPm5vZGUt
Pm1hcmdpbkxlZnQoKSArIHItPm5vZGUtPm92ZXJmbG93V2lkdGgoZmFsc2UpIC0gcmVzdWx0LnJp
Z2h0KCkpOwogICAgICAgICAgICAgaWYgKHJpZ2h0RGVsdGEpCiAgICAgICAgICAgICAgICAgcmVz
dWx0LnNldFdpZHRoKHJlc3VsdC53aWR0aCgpICsgcmlnaHREZWx0YSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIC8vIE5vdyBjaGVjayBsZWZ0IGFuZCB0b3AKICAgICAgICAgICAgIGludCB0
b3BEZWx0YSA9IGtNaW4oMCwgci0+c3RhcnRZICsgci0+bm9kZS0+bWFyZ2luVG9wKCkgLSByZXN1
bHQueSgpKTsKLSAgICAgICAgICAgIGlmICh0b3BEZWx0YSA8IDApIHsKLSAgICAgICAgICAgICAg
ICByZXN1bHQuc2V0WShyZXN1bHQueSgpICsgdG9wRGVsdGEpOwotICAgICAgICAgICAgICAgIHJl
c3VsdC5zZXRIZWlnaHQocmVzdWx0LmhlaWdodCgpIC0gMip0b3BEZWx0YSk7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAodG9wRGVsdGEgPCAwKQorICAgICAgICAgICAgICAgIHJlc3Vs
dC5pbmZsYXRlWSgtdG9wRGVsdGEpOwogICAgICAgICAgICAgaW50IGxlZnREZWx0YSA9IGtNaW4o
MCwgci0+bGVmdCArIHItPm5vZGUtPm1hcmdpbkxlZnQoKSAtIHJlc3VsdC54KCkpOwotICAgICAg
ICAgICAgaWYgKHRvcERlbHRhIDwgMCkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRYKHJl
c3VsdC54KCkgKyBsZWZ0RGVsdGEpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRIZWlnaHQo
cmVzdWx0LndpZHRoKCkgLSAyKmxlZnREZWx0YSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAobGVmdERlbHRhIDwgMCkKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5mbGF0ZVgoLWxl
ZnREZWx0YSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI0NTQsOCArMjQ0Niw3IEBACiAgICAg
cmV0dXJuIGZhbHNlOyAgICAKIH0KIAotYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoTm9k
ZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4LCBpbnQgX3R5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQorYm9vbCBS
ZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBp
bnQgX3R4LCBpbnQgX3R5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCiB7CiAgICAgYm9v
bCBpbmxpbmVGbG93ID0gaXNJbmxpbmVGbG93KCk7CiAKQEAgLTI0NjUsMTYgKzI0NTYsMTQgQEAK
ICAgICBpZiAoIWlubGluZUZsb3cgJiYgIWlzUm9vdCgpKSB7CiAgICAgICAgIC8vIENoZWNrIGlm
IHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgogICAgICAgICBJbnRSZWN0IG92ZXJmbG93
Qm94ID0gb3ZlcmZsb3dSZWN0KGZhbHNlKTsKLSAgICAgICAgb3ZlcmZsb3dCb3guc2V0WChvdmVy
Zmxvd0JveC54KCkgKyB0eCk7Ci0gICAgICAgIG92ZXJmbG93Qm94LnNldFkob3ZlcmZsb3dCb3gu
eSgpICsgdHkpOworICAgICAgICBvdmVyZmxvd0JveC5tb3ZlKHR4LCB0eSk7CiAgICAgICAgIGJv
b2wgaW5zaWRlT3ZlcmZsb3dCb3ggPSBvdmVyZmxvd0JveC5jb250YWlucyhfeCwgX3kpOwogICAg
ICAgICBpZiAoIWluc2lkZU92ZXJmbG93Qm94KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmbG9h
dHMgbmV4dC4KICAgICAgICAgICAgIGlmIChoaXRUZXN0QWN0aW9uICE9IEhpdFRlc3RGbG9hdCkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBJbnRSZWN0IGZsb2F0
Qm94ID0gZmxvYXRSZWN0KCk7Ci0gICAgICAgICAgICBmbG9hdEJveC5zZXRYKGZsb2F0Qm94Lngo
KSArIHR4KTsKLSAgICAgICAgICAgIGZsb2F0Qm94LnNldFkoZmxvYXRCb3gueSgpICsgdHkpOwor
ICAgICAgICAgICAgZmxvYXRCb3gubW92ZSh0eCwgdHkpOwogICAgICAgICAgICAgaWYgKCFmbG9h
dEJveC5jb250YWlucyhfeCwgX3kpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQpJbmRleDogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTI0NjMp
CisrKyBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTkzLDYgKzkzLDkgQEAKIAkJNjVGRUE4NjkwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGRUE4NjgwOTgz
M0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovOyB9OwogCQk3RTZGRUVEODA4OTg1ODIzMDBDNDRD
M0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNj
cmlwdERlYnVnZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0U2RkVFRDkwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZF
RUQ3MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gKi87IH07CisJ
CTkzNTRGOUZFMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NEY5RkMwOTg4ODU5RTAw
MkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi87IH07CisJCTkzNTRGOUZGMDk4ODg1OUUw
MDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTRGOUZEMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFu
c2Zvcm0uaCAqLzsgfTsKKwkJOTM1NEZBMEEwOTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5z
Zm9ybS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzU0RkEwOTA5ODg4NzI3MDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJ
OTM3QTM2QTcwOTdFMkUzMjAwRTRFRTJGIC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzN0EzNkE2MDk3RTJF
MzIwMEU0RUUyRiAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0cy5jcHAgKi87IH07CiAJCTkzOTg4NUMz
MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVu
dE5hbWVzLmNwcCAqLzsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFt
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4
NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IH07CkBAIC01MzksOCArNTQy
LDYgQEAKIAkJQTg4QUQzQzAwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJbWFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODEwODk3MDFG
ODAwQkE1MTE0IC8qIEtDYW52YXNJbWFnZS5oICovOyB9OwogCQlBODhBRDNDMTA5NTI0ODZFMDAx
REQxOTYgLyogS0NhbnZhc0l0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThDMEZCODIwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmNw
cCAqLzsgfTsKIAkJQTg4QUQzQzIwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJdGVtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI4MzA4OTcw
MUY4MDBCQTUxMTQgLyogS0NhbnZhc0l0ZW0uaCAqLzsgfTsKLQkJQTg4QUQzQzMwOTUyNDg2RTAw
MUREMTk2IC8qIEtDYW52YXNNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODQwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRy
aXguY3BwICovOyB9OwotCQlBODhBRDNDNDA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc01hdHJp
eC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZC
ODUwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRyaXguaCAqLzsgfTsKIAkJQTg4QUQzQzUw
OTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI4NjA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZh
c1BhdGguaCAqLzsgfTsKIAkJQTg4QUQzQzYwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNQYXRo
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ3NThD
NDQzMDhDNUYyMTcwMDlCQUYwNSAvKiBLQ2FudmFzUGF0aC5jcHAgKi87IH07CiAJCUE4OEFEM0M3
MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODkwODk3MDFGODAwQkE1
MTE0IC8qIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyLmggKi87IH07CkBAIC04NDMsOCArODQ0LDYg
QEAKIAkJQThERjVGNEEwOTg0NDhDODAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REY1NDVD
MDk4M0E3NTEwMDUyOTgxQiAvKiBKU1NWR0xhenlFdmVudExpc3RlbmVyLmggKi87IH07CiAJCUE4
REY1RkEzMDk4NDYwQUEwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REY1RkExMDk4NDYwQUEw
MDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJQThERjVGQTQwOTg0
NjBBQTAwNTI5ODFCIC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOERGNUZBMjA5ODQ2MEFBMDA1Mjk4MUIg
LyogU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcCAqLzsgfTsKLQkJQThGRDhCODYwODdDQjQ0QzAw
REMzNzA3IC8qIEtXUVdNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTg1RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguY3Bw
ICovOyB9OwotCQlBOEZEOEI4NzA4N0NCNDU3MDBEQzM3MDcgLyogS1dRV01hdHJpeC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEQwODc5RUM2
NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguaCAqLzsgfTsKIAkJQThGRUZCMEEwOTc5RjQ3MjAwNTgz
OUZEIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjA4MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3Jl
aWduT2JqZWN0LmggKi87IH07CiAJCUE4RkVGQjBCMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJG
b3JlaWduT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4RkVGQjA5MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNw
cCAqLzsgfTsKIAkJQThGRUZCMzEwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEZFRkIyRjA5NzlGNEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJ
bXBsLmNwcCAqLzsgfTsKQEAgLTEyMTEsNiArMTIxMCw5IEBACiAJCTkzMkI5ODM0MDcwMjk3REMw
MDMyODA0RiAvKiB0ZXh0X2dyYW51bGFyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHRleHRfZ3JhbnVsYXJpdHkuaDsgcGF0aCA9IGVkaXRp
bmcvdGV4dF9ncmFudWxhcml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTMzODZCOTAwMzcwNDVCMzAwODYzNUNFIC8qIEtXUVJl
c291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS1dRUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzMzg2QjkxMDM3MDQ1QjMwMDg2MzVDRSAv
KiBLV1FSZXNvdXJjZUxvYWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gS1dRUmVzb3VyY2VMb2FkZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk5MzU0RjlGQzA5
ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEFmZmluZVRyYW5zZm9ybS5jcHA7IHBhdGggPSBwbGF0Zm9ybS9B
ZmZpbmVUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0RjlG
RDA5ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEFmZmluZVRyYW5zZm9ybS5oOyBwYXRoID0gcGxhdGZvcm0vQWZmaW5l
VHJhbnNmb3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNTRGQTA5MDk4ODg3
MjcwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQWZmaW5lVHJhbnNmb3JtLmNwcDsgcGF0aCA9IHBsYXRmb3JtL21hYy9B
ZmZpbmVUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Mzc4RDlG
OTA3NjQwQTQ2MDA0Qjk3QkYgLyogbWFya3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gbWFya3VwLmNwcDsgcGF0aCA9IGVkaXRpbmcv
bWFya3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCTkzNzhEOUZBMDc2NDBBNDYwMDRCOTdCRiAvKiBtYXJrdXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBtYXJrdXAuaDsgcGF0
aCA9IGVkaXRpbmcvbWFya3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzdBMzZBNjA5N0UyRTMyMDBFNEVFMkYgLyogVXNlckFn
ZW50U3R5bGVTaGVldHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VXNlckFnZW50U3R5bGVTaGVldHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQyNCw4ICsxNDI2LDYgQEAKIAkJQTgzQzgxOUYwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9j
ZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYU0xUUHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlBODNDODFBMDA5MTE4OUI5MDA5QkY0QTcgLyogWFNMVFByb2Nl
c3Nvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFhTTFRQcm9jZXNzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1
YXJ0ekNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBRdWFydHpDb3JlLmZyYW1ld29y
azsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQlBODVEN0E4QzA4NzlFQzY0MDA2QTkx
NzIgLyogS1dRV01hdHJpeC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBLV1FXTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4NUQ3QThEMDg3OUVDNjQwMDZB
OTE3MiAvKiBLV1FXTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtXUVdNYXRyaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4ODQyODM4MDkzMDhDMUMwMEI2RDQ2MSAv
KiBTVkdOYW1lc1dyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdOYW1lc1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg4NDI4MzkwOTMwOEMx
QzAwQjZENDYxIC8qIFNWR0VsZW1lbnRGYWN0b3J5V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0VsZW1lbnRGYWN0b3J5
V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlBODg0MjgzQTA5MzA4QzFDMDBCNkQ0NjEgLyoga2RvbWV2ZW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtkb21ldmVu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CkBAIC0xNzMxLDggKzE3MzEsNiBAQAogCQlBOEMwRkI4MTA4OTcwMUY4MDBCQTUxMTQgLyog
S0NhbnZhc0ltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS0NhbnZhc0ltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRkI4MjA4OTcwMUY4MDBCQTUxMTQgLyogS0Nh
bnZhc0l0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBLQ2FudmFzSXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRkI4MzA4OTcwMUY4MDBCQTUxMTQgLyog
S0NhbnZhc0l0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBLQ2FudmFzSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEZCODQwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52
YXNNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBLQ2FudmFzTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGQjg1MDg5NzAxRjgwMEJBNTExNCAv
KiBLQ2FudmFzTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gS0NhbnZhc01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEZCODYwODk3MDFGODAwQkE1MTE0IC8q
IEtDYW52YXNQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS0NhbnZhc1BhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGQjg5MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2Fu
dmFzUmVzb3VyY2VMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRkI4QTA4OTcw
MUY4MDBCQTUxMTQgLyogS0NhbnZhc1Jlc291cmNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtDYW52YXNSZXNvdXJjZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAg
LTI5MjUsOCArMjkyMyw2IEBACiAJCQkJQThDMEZCODEwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52
YXNJbWFnZS5oICovLAogCQkJCUE4QzBGQjgyMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzSXRl
bS5jcHAgKi8sCiAJCQkJQThDMEZCODMwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmgg
Ki8sCi0JCQkJQThDMEZCODQwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRyaXguY3BwICov
LAotCQkJCUE4QzBGQjg1MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzTWF0cml4LmggKi8sCiAJ
CQkJQThDMEZCODYwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNQYXRoLmggKi8sCiAJCQkJNDc1
OEM0NDMwOEM1RjIxNzAwOUJBRjA1IC8qIEtDYW52YXNQYXRoLmNwcCAqLywKIAkJCQlBOEMwRkI4
OTA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCAqLywKQEAgLTMx
MjYsNiArMzEyMiw5IEBACiAJCUJDRjFBNUJBMDk3ODMyMDkwMDYxQTEyMyAvKiBwbGF0Zm9ybSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTM1NEZBMDkw
OTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJOTM1NEY5RkMw
OTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJOTM1NEY5RkQw
OTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5oICovLAogCQkJCUJDRDc1QUJEMDk4
OUE0NUMwMDNFMjhERiAvKiBJbWFnZS5tbSAqLywKIAkJCQlCQ0Q3NUFCQjA5ODlBNDQ2MDAzRTI4
REYgLyogSW1hZ2UuaCAqLywKIAkJCQlCQzA3NTk4NTA5ODg2MUE0MDA0MDdCNDggLyogQnJ1c2gu
aCAqLywKQEAgLTM4MzgsOCArMzgzNyw2IEBACiAJCQkJRjU4Nzg1M0YwMkRFMzc1OTAxRUE0MTIy
IC8qIEtXUVZlY3RvckltcGwuY3BwICovLAogCQkJCUY1ODc4NkM1MDJERTNCODYwMUVBNDEyMiAv
KiBLV1FXaWRnZXQuaCAqLywKIAkJCQlGNTg3ODU0MjAyREUzNzU5MDFFQTQxMjIgLyogS1dRV2lk
Z2V0Lm1tICovLAotCQkJCUE4NUQ3QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4Lmgg
Ki8sCi0JCQkJQTg1RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguY3BwICovLAog
CQkJKTsKIAkJCW5hbWUgPSBxdDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MDU0
LDcgKzQwNTEsNiBAQAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBkb21fcW5hbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU1MEEwQkNFMDg1RjYwNEQwMDczNTNENiAvKiBodG1sbmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUYzNDM1MDg3QjU2M0UwMEJCRjgzMyAvKiBodG1s
ZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThGRDhCODcwODdDQjQ1NzAwREMzNzA3IC8q
IEtXUVdNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNkZFRUQ4MDg5ODU4MjMwMEM0NEMz
RiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTg4NUM0
MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUM5
N0FGMzA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKQEAgLTQwODYs
NyArNDA4Miw2IEBACiAJCQkJQTg4QUQzQkUwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNGaWx0
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDNDMDA5NTI0ODZFMDAxREQxOTYgLyogS0Nh
bnZhc0ltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDNDMjA5NTI0ODZFMDAxREQxOTYg
LyogS0NhbnZhc0l0ZW0uaCBpbiBIZWFkZXJzICovLAotCQkJCUE4OEFEM0M0MDk1MjQ4NkUwMDFE
RDE5NiAvKiBLQ2FudmFzTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDNDNTA5NTI0
ODZFMDAxREQxOTYgLyogS0NhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFEM0M3
MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTg4QUQzQzkwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNSZXNvdXJjZXMuaCBp
biBIZWFkZXJzICovLApAQCAtNDM3MSw2ICs0MzY2LDcgQEAKIAkJCQlCQ0M4Q0ZDQzA5ODZDRDI0
MDAxNDBCRjIgLyogQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzhEMTc0MDk4ODMwMTIw
MDE0MEJGMiAvKiBQZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDc1OTg2MDk4ODYxQTQwMDQw
N0I0OCAvKiBCcnVzaC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1NEY5RkYwOTg4ODU5RTAwMkNG
QTg4IC8qIEFmZmluZVRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNENzVBQkMwOTg5
QTQ0NjAwM0UyOERGIC8qIEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTUxOTIsNyArNTE4OCw2IEBACiAJ
CQkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIGRvbV9xbmFtZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1NTBBMEJDRDA4NUY2MDREMDA3MzUzRDYgLyogaHRtbG5hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRUYzNDM0MDg3QjU2M0UwMEJCRjgzMyAvKiBodG1sZmFjdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBOEZEOEI4NjA4N0NCNDRDMDBEQzM3MDcgLyogS1dRV01hdHJp
eC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTZGRUVEOTA4OTg1ODIzMDBDNDRDM0YgLyogV2Vi
Q29yZVNjcmlwdERlYnVnZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODg1QzMwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTc3Mzgw
OEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5tbSBpbiBTb3VyY2VzICovLApA
QCAtNTIyMyw3ICs1MjE4LDYgQEAKIAkJCQlBODhBRDNCRDA5NTI0ODZFMDAxREQxOTYgLyogS0Nh
bnZhc0ZpbHRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQzQkYwOTUyNDg2RTAwMURE
MTk2IC8qIEtDYW52YXNJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDNDMTA5NTI0
ODZFMDAxREQxOTYgLyogS0NhbnZhc0l0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQz
QzMwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTg4QUQzQzYwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNQYXRoLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4OEFEM0M4MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzUmVzb3VyY2VzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFEM0NDMDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFz
VHJlZURlYnVnLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTQ5Myw2ICs1NDg3LDggQEAKIAkJCQlC
Q0M4Q0ZFNTA5ODZDRUE0MDAxNDBCRjIgLyogQ29sb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
Q0M4RDE3MzA5ODgzMDEyMDAxNDBCRjIgLyogUGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
REI1Njk5MDk4ODI3QUQwMDMyRUVFMiAvKiBKU0V2ZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5MzU0RjlGRTA5ODg4NTlFMDAyQ0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTkzNTRGQTBBMDk4ODg3MjcwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNENzVBQkUwOTg5QTQ1QzAwM0UyOERGIC8qIEltYWdl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzN0Y2M0EwOTg4RUUzMzAwRDA1RTkwIC8qIEpTQ29y
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CkluZGV4OiBrY2FudmFzL0tDYW52YXNDb250YWlu
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNDb250YWluZXIuaAkocmV2aXNpb24g
MTI0NjMpCisrKyBrY2FudmFzL0tDYW52YXNDb250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmlt
bWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAK
QEAgLTI0LDExICsyNSwxOSBAQAogI2RlZmluZSBLQ2FudmFzQ29udGFpbmVyX0gKICNpZiBTVkdf
U1VQUE9SVAogCi0jaW5jbHVkZSAia2NhbnZhcy9SZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQ29udGFpbmVyLmgiCiAKLXR5cGVkZWYgZW51bQoteworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKKyAgICBjbGFzcyBGbG9hdFBvaW50OworICAgIGNs
YXNzIEZsb2F0UmVjdDsKKyAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKK30KK3VzaW5n
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTsKK3VzaW5nIFdlYkNvcmU6OkZsb2F0UG9pbnQ7Cit1
c2luZyBXZWJDb3JlOjpGbG9hdFJlY3Q7CisKK2VudW0gS0NBbGlnbiB7CiAgICAgQUxJR05fTk9O
RSA9IDAsCiAgICAgQUxJR05fWE1JTllNSU4gPSAxLAogICAgIEFMSUdOX1hNSURZTUlOID0gMiwK
QEAgLTM5LDEyICs0OCw4IEBACiAgICAgQUxJR05fWE1JTllNQVggPSA3LAogICAgIEFMSUdOX1hN
SURZTUFYID0gOCwKICAgICBBTElHTl9YTUFYWU1BWCA9IDkKLX0gS0NBbGlnbjsKK307CiAKLW5h
bWVzcGFjZSBLU1ZHIHsKLSAgICBjbGFzcyBLQ2FudmFzUmVuZGVyaW5nU3R5bGU7Ci19Ci0KIGNs
YXNzIEtDYW52YXNDb250YWluZXIgOiBwdWJsaWMga2h0bWw6OlJlbmRlckNvbnRhaW5lcgogewog
cHVibGljOgpAQCAtNjQsOCArNjksOCBAQAogICAgIHZpcnR1YWwgYm9vbCBzdHJva2VDb250YWlu
cyhjb25zdCBGbG9hdFBvaW50ICZwKSBjb25zdDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZWxh
dGl2ZUJCb3goYm9vbCBpbmNsdWRlU3Ryb2tlID0gdHJ1ZSkgY29uc3Q7CiAgICAgCi0gICAgdmly
dHVhbCBRTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dExvY2FsVHJhbnNmb3JtKGNvbnN0IFFNYXRyaXggJm1hdHJpeCk7CisgICAgdmlydHVhbCBBZmZp
bmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TG9jYWxUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnQpID0gMDsKICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCB2aWV3cG9ydCgpIGNvbnN0ID0gMDsKQEAgLTgwLDcgKzg1LDcgQEAK
ICAgICBib29sIHNsaWNlKCkgY29uc3Q7CiAgICAgCiBwcm90ZWN0ZWQ6Ci0gICAgS0NhbnZhc01h
dHJpeCBnZXRBc3BlY3RSYXRpbyhjb25zdCBGbG9hdFJlY3QgbG9naWNhbCwgY29uc3QgRmxvYXRS
ZWN0IHBoeXNpY2FsKSBjb25zdDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ2V0QXNwZWN0UmF0aW8o
Y29uc3QgRmxvYXRSZWN0IGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3Q7
CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgUHJpdmF0ZTsKSW5kZXg6IGtjYW52YXMvUmVuZGVyU1ZH
SW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCShyZXZp
c2lvbiAxMjQ2MykKKysrIGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MSwxNCArNDEsMTAgQEAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBSZW5kZXJTVkdJ
bWFnZTo6UmVuZGVyU1ZHSW1hZ2UoU1ZHSW1hZ2VFbGVtZW50SW1wbCAqaW1wbCkKLTogUmVuZGVy
SW1hZ2UoaW1wbCkKKyAgICA6IFJlbmRlckltYWdlKGltcGwpCiB7CiB9CiAKLVJlbmRlclNWR0lt
YWdlOjp+UmVuZGVyU1ZHSW1hZ2UoKQotewotfQotCiB2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWlu
dChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKQogewogICAg
IGlmIChwYWludEluZm8ucC0+cGFpbnRpbmdEaXNhYmxlZCgpIHx8IChwYWludEluZm8ucGhhc2Ug
IT0gUGFpbnRBY3Rpb25Gb3JlZ3JvdW5kKSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0ga2h0
bWw6OkhJRERFTikKQEAgLTY1LDcgKzYxLDcgQEAKICAgICB9IGVsc2UKICAgICAgICAgcGFpbnRJ
bmZvLnAtPnNhdmUoKTsKIAotICAgIGNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCkudHJhbnNs
YXRlKHBhcmVudFgsIHBhcmVudFkpKTsKKyAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRp
b25NYXRyaXgocGFyZW50WCwgcGFyZW50WSkpOwogICAgIGNvbnRleHQtPmNvbmNhdENUTShsb2Nh
bFRyYW5zZm9ybSgpKTsKICAgICB0cmFuc2xhdGVGb3JBdHRyaWJ1dGVzKCk7CiAgICAgCkBAIC0x
MDksMTIgKzEwNSwxMiBAQAogCiBJbnRSZWN0IFJlbmRlclNWR0ltYWdlOjpnZXRBYnNvbHV0ZVJl
cGFpbnRSZWN0KCkKIHsKLSAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBhYnNvbHV0ZVRyYW5z
Zm9ybSgpLm1hcFJlY3QocmVsYXRpdmVCQm94KHRydWUpKTsKKyAgICBGbG9hdFJlY3QgcmVwYWlu
dFJlY3QgPSBhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcChyZWxhdGl2ZUJCb3godHJ1ZSkpOwogCiAg
ICAgLy8gRmlsdGVycyBjYW4gZXhwYW5kIHRoZSBib3VuZGluZyBib3gKICAgICBLQ2FudmFzRmls
dGVyICpmaWx0ZXIgPSBnZXRGaWx0ZXJCeUlkKGRvY3VtZW50KCksIHN0eWxlKCktPnN2Z1N0eWxl
KCktPmZpbHRlcigpLm1pZCgxKSk7CiAgICAgaWYgKGZpbHRlcikKLSAgICAgICAgcmVwYWludFJl
Y3QgPSByZXBhaW50UmVjdC51bml0ZShmaWx0ZXItPmZpbHRlckJCb3hGb3JJdGVtQkJveChyZXBh
aW50UmVjdCkpOworICAgICAgICByZXBhaW50UmVjdC51bml0ZShmaWx0ZXItPmZpbHRlckJCb3hG
b3JJdGVtQkJveChyZXBhaW50UmVjdCkpOwogCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3Qo
cmVwYWludFJlY3QpOwogfQpAQCAtMTI1LDcgKzEyMSw3IEBACiAgICAgU1ZHSW1hZ2VFbGVtZW50
SW1wbCAqaW1hZ2UgPSBzdGF0aWNfY2FzdDxTVkdJbWFnZUVsZW1lbnRJbXBsICo+KG5vZGUoKSk7
CiAgICAgZmxvYXQgeE9mZnNldCA9IGltYWdlLT54KCktPmJhc2VWYWwoKSA/IGltYWdlLT54KCkt
PmJhc2VWYWwoKS0+dmFsdWUoKSA6IDA7CiAgICAgZmxvYXQgeU9mZnNldCA9IGltYWdlLT55KCkt
PmJhc2VWYWwoKSA/IGltYWdlLT55KCktPmJhc2VWYWwoKS0+dmFsdWUoKSA6IDA7Ci0gICAgY29u
dGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUoeE9mZnNldCwgeU9mZnNldCkpOwor
ICAgIGNvbnRleHQtPmNvbmNhdENUTSh0cmFuc2xhdGlvbk1hdHJpeCh4T2Zmc2V0LCB5T2Zmc2V0
KSk7CiB9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVApJbmRleDoga2NhbnZhcy9SZW5kZXJTVkdU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL1JlbmRlclNWR1RleHQuY3BwCShyZXZpc2lv
biAxMjQ2MykKKysrIGtjYW52YXMvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDI4ICsyOSwyOCBAQAogI2luY2x1ZGUgIlNWR1RleHRFbGVtZW50SW1wbC5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEltcGwuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2
aWNlLmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5k
ZXJpbmdTdHlsZS5oIgogCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIFJlbmRlclNWR1RleHQ6OlJl
bmRlclNWR1RleHQoS1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBsICpub2RlKSAKICAgICA6IFJlbmRl
ckJsb2NrKG5vZGUpCiB7CiB9CiAKLVFNYXRyaXggUmVuZGVyU1ZHVGV4dDo6dHJhbnNsYXRpb25U
b3BUb0Jhc2VsaW5lKCkKK0FmZmluZVRyYW5zZm9ybSBSZW5kZXJTVkdUZXh0Ojp0cmFuc2xhdGlv
blRvcFRvQmFzZWxpbmUoKQogewotICAgIGludCBvZmZzZXQgPSBiYXNlbGluZVBvc2l0aW9uKHRy
dWUsIHRydWUpOwotICAgIHJldHVybiBRTWF0cml4KCkudHJhbnNsYXRlKDAsIC1vZmZzZXQpOwor
ICAgIHJldHVybiB0cmFuc2xhdGlvbk1hdHJpeCgwLCAtYmFzZWxpbmVQb3NpdGlvbih0cnVlLCB0
cnVlKSk7CiB9CiAKLVFNYXRyaXggUmVuZGVyU1ZHVGV4dDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1
dGVzKCkKK0FmZmluZVRyYW5zZm9ybSBSZW5kZXJTVkdUZXh0Ojp0cmFuc2xhdGlvbkZvckF0dHJp
YnV0ZXMoKQogewogICAgIEtTVkc6OlNWR1RleHRFbGVtZW50SW1wbCAqdGV4dCA9IHN0YXRpY19j
YXN0PEtTVkc6OlNWR1RleHRFbGVtZW50SW1wbCAqPihlbGVtZW50KCkpOwogCiAgICAgZmxvYXQg
eE9mZnNldCA9IHRleHQtPngoKS0+YmFzZVZhbCgpLT5nZXRGaXJzdCgpID8gdGV4dC0+eCgpLT5i
YXNlVmFsKCktPmdldEZpcnN0KCktPnZhbHVlKCkgOiAwOwogICAgIGZsb2F0IHlPZmZzZXQgPSB0
ZXh0LT55KCktPmJhc2VWYWwoKS0+Z2V0Rmlyc3QoKSA/IHRleHQtPnkoKS0+YmFzZVZhbCgpLT5n
ZXRGaXJzdCgpLT52YWx1ZSgpIDogMDsKIAotICAgIHJldHVybiBRTWF0cml4KCkudHJhbnNsYXRl
KHhPZmZzZXQsIHlPZmZzZXQpOworICAgIHJldHVybiB0cmFuc2xhdGlvbk1hdHJpeCh4T2Zmc2V0
LCB5T2Zmc2V0KTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUZXh0OjpwYWludChQYWludEluZm8mIHBh
aW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKQpAQCAtNzAsNyArNzAsNyBAQAogICAg
ICAgICBwYWludEluZm8ucC0+c2F2ZSgpOwogICAgIAogICAgIGNvbnRleHQtPmNvbmNhdENUTShs
b2NhbFRyYW5zZm9ybSgpKTsKLSAgICBjb250ZXh0LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5z
bGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgY29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0
aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsKICAgICBjb250ZXh0LT5jb25jYXRDVE0odHJh
bnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkpOwogICAgIGNvbnRleHQtPmNvbmNhdENUTSh0cmFuc2xh
dGlvblRvcFRvQmFzZWxpbmUoKSk7CiAgICAgCkBAIC0xMjAsMTQgKzEyMCwxNiBAQAogICAgICAg
ICBwYWludEluZm8ucC0+cmVzdG9yZSgpOwogfQogCi1ib29sIFJlbmRlclNWR1RleHQ6Om5vZGVB
dFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50IF90eSwg
V2ViQ29yZTo6SGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQorYm9vbCBSZW5kZXJTVkdUZXh0
Ojpub2RlQXRQb2ludChOb2RlSW5mbyYgaW5mbywgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0
eSwgSGl0VGVzdEFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgUU1hdHJpeCB0b3RhbFRyYW5zZm9ybSA9
IHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOworICAgIEFmZmluZVRyYW5zZm9ybSB0b3RhbFRy
YW5zZm9ybSA9IHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOwogICAgIHRvdGFsVHJhbnNmb3Jt
ICo9IHRyYW5zbGF0aW9uVG9wVG9CYXNlbGluZSgpOwogICAgIHRvdGFsVHJhbnNmb3JtICo9IGFi
c29sdXRlVHJhbnNmb3JtKCk7Ci0gICAgZG91YmxlIGxvY2FsWCwgbG9jYWxZOwotICAgIHRvdGFs
VHJhbnNmb3JtLmludmVydCgpLm1hcChfeCwgX3ksICZsb2NhbFgsICZsb2NhbFkpOwotICAgIHJl
dHVybiBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoaW5mbywgKGludClsb2NhbFgsIChpbnQpbG9j
YWxZLCBfdHgsIF90eSwgaGl0VGVzdEFjdGlvbik7CisgICAgdG90YWxUcmFuc2Zvcm0uaW52ZXJ0
KCk7CisgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gdG90YWxUcmFuc2Zvcm0ubWFwKEludFBv
aW50KHgsIHkpKTsKKyAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGluZm8sIHN0
YXRpY19jYXN0PGludD4obG9jYWxQb2ludC54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGxvY2FsUG9p
bnQueSgpKSwgdHgsIHR5LCBhY3Rpb24pOwogfQorCit9CisKICNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNJdGVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFz
L0tDYW52YXNJdGVtLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL0tDYW52YXNJdGVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMjAgKzIzLDE3IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlIDxr
ZGVidWcuaD4KLSNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSAiS0Nh
bnZhc0l0ZW0uaCIKIAotI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhcy5oIgotI2luY2x1ZGUgImtj
YW52YXMvUmVuZGVyUGF0aC5oIgotI2luY2x1ZGUgIktDYW52YXNNYXRyaXguaCIKLSNpbmNsdWRl
ICJLUmVuZGVyaW5nRGV2aWNlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIktD
YW52YXNDb250YWluZXIuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKKyNp
bmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ0ZpbGxQYWlu
dGVyLmgiCiAjaW5jbHVkZSAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKLQotI2luY2x1ZGUg
IktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgog
I2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8a3htbGNvcmUvQXNzZXJ0aW9u
cy5oPgogCiBjbGFzcyBSZW5kZXJQYXRoOjpQcml2YXRlCiB7CkBAIC00NCw3ICs0MSw3IEBACiAg
ICAgUmVmUHRyPEtDYW52YXNQYXRoPiBwYXRoOwogCiAgICAgRmxvYXRSZWN0IGZpbGxCQm94LCBz
dHJva2VCYm94OwotICAgIFFNYXRyaXggbWF0cml4OworICAgIEFmZmluZVRyYW5zZm9ybSBtYXRy
aXg7CiB9OyAgICAgICAgCiAKIC8vIFJlbmRlclBhdGgKQEAgLTU4LDEyICs1NSwxMiBAQAogICAg
IGRlbGV0ZSBkOwogfQogCi1RTWF0cml4IFJlbmRlclBhdGg6OmxvY2FsVHJhbnNmb3JtKCkgY29u
c3QKK0FmZmluZVRyYW5zZm9ybSBSZW5kZXJQYXRoOjpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGQtPm1hdHJpeDsKIH0KIAotdm9pZCBSZW5kZXJQYXRoOjpzZXRMb2NhbFRy
YW5zZm9ybShjb25zdCBRTWF0cml4ICZtYXRyaXgpCit2b2lkIFJlbmRlclBhdGg6OnNldExvY2Fs
VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewogICAgIGQtPm1hdHJp
eCA9IG1hdHJpeDsKIH0KQEAgLTkyLDExICs4OSwxMSBAQAogICAgICAgICByZXR1cm4gcmVzdWx0
OwogCiAgICAgaWYgKGluY2x1ZGVTdHJva2UpIHsKLSAgICAgICAgaWYoIWQtPnN0cm9rZUJib3gu
aXNWYWxpZCgpKQorICAgICAgICBpZiAoZC0+c3Ryb2tlQmJveC5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICBkLT5zdHJva2VCYm94ID0gYmJveEZvclBhdGgodHJ1ZSk7CiAgICAgICAgIHJlc3VsdCA9
IGQtPnN0cm9rZUJib3g7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYoIWQtPmZpbGxCQm94Lmlz
VmFsaWQoKSkKKyAgICAgICAgaWYgKGQtPmZpbGxCQm94LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IGQtPmZpbGxCQm94ID0gYmJveEZvclBhdGgoZmFsc2UpOwogICAgICAgICByZXN1bHQgPSBkLT5m
aWxsQkJveDsKICAgICB9CkluZGV4OiBrY2FudmFzL1JlbmRlclNWR0ltYWdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2NhbnZhcy9SZW5kZXJTVkdJbWFnZS5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52
YXMvUmVuZGVyU1ZHSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjggKzI1LDI3IEBACiAj
aWYgU1ZHX1NVUFBPUlQKIAogI2luY2x1ZGUgInJlbmRlcl9pbWFnZS5oIgotI2luY2x1ZGUgPHFt
YXRyaXguaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKIAotbmFtZXNwYWNlIEtTVkcK
LXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTVkdJbWFnZUVsZW1lbnRJbXBsOwot
ICAgIGNsYXNzIFJlbmRlclNWR0ltYWdlIDogcHVibGljIGtodG1sOjpSZW5kZXJJbWFnZSB7CisK
KyAgICBjbGFzcyBSZW5kZXJTVkdJbWFnZSA6IHB1YmxpYyBSZW5kZXJJbWFnZSB7CiAgICAgcHVi
bGljOgotICAgICAgICBSZW5kZXJTVkdJbWFnZShTVkdJbWFnZUVsZW1lbnRJbXBsICppbXBsKTsK
LSAgICAgICAgdmlydHVhbCB+UmVuZGVyU1ZHSW1hZ2UoKTsKKyAgICAgICAgUmVuZGVyU1ZHSW1h
Z2UoU1ZHSW1hZ2VFbGVtZW50SW1wbCopOwogICAgICAgICAKLSAgICAgICAgdmlydHVhbCBRTWF0
cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IFFNYXRyaXgmIHRyYW5zZm9y
bSkgeyBtX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQorICAgICAgICB2aXJ0dWFsIEFmZmluZVRy
YW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkgeyBtX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQogICAgICAgICAKICAg
ICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVsYXRpdmVCQm94KGJvb2wgaW5jbHVkZVN0cm9rZSA9
IHRydWUpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3QgZ2V0QWJzb2x1dGVSZXBhaW50
UmVjdCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNo
ZWRJbWFnZSosIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCBwYXJlbnRYLCBpbnQg
cGFyZW50WSk7CiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0cmFuc2xhdGVGb3JBdHRyaWJ1
dGVzKCk7Ci0gICAgICAgIFFNYXRyaXggbV90cmFuc2Zvcm07CisgICAgICAgIEFmZmluZVRyYW5z
Zm9ybSBtX3RyYW5zZm9ybTsKICAgICB9OwogfQogCkluZGV4OiBrY2FudmFzL1JlbmRlclNWR1Rl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTI0
NjMpCisrKyBrY2FudmFzL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMzEg
KzI0LDMzIEBACiAjZGVmaW5lIFJlbmRlclNWR1RleHRfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNp
bmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2lu
Y2x1ZGUgPHFtYXRyaXguaD4KIAotbmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNzIFNWR1RleHRF
bGVtZW50SW1wbDsKLX0KK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVuZGVyU1ZHVGV4
dCA6IHB1YmxpYyBraHRtbDo6UmVuZGVyQmxvY2sKK2NsYXNzIFNWR1RleHRFbGVtZW50SW1wbDsK
KworY2xhc3MgUmVuZGVyU1ZHVGV4dCA6IHB1YmxpYyBSZW5kZXJCbG9jawogewogcHVibGljOgot
ICAgIFJlbmRlclNWR1RleHQoS1NWRzo6U1ZHVGV4dEVsZW1lbnRJbXBsICpub2RlKTsKKyAgICBS
ZW5kZXJTVkdUZXh0KFNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSk7CiAKLSAgICBjb25zdCBjaGFy
ICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1RleHQiOyB9CisgICAgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUZXh0IjsgfQog
ICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKICAg
ICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBt
X3RyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBR
TWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KKyAgICB2aXJ0
dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtOyB9CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CiAgICAg
Ci0gICAgYm9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCBfeCwgaW50IF95LCBpbnQgX3R4
LCBpbnQgX3R5LCBXZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICBib29sIG5vZGVBdFBvaW50
KE5vZGVJbmZvJiwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIEhpdFRlc3RBY3Rp
b24pOwogCiAgcHJpdmF0ZToKLSAgICBRTWF0cml4IHRyYW5zbGF0aW9uVG9wVG9CYXNlbGluZSgp
OwotICAgIFFNYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJpeCBt
X3RyYW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25Ub3BUb0Jhc2VsaW5l
KCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOworICAg
IEFmZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKK30KKwogI2VuZGlmIC8vIFNWR19T
VVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0l0ZW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrY2FudmFzL0tDYW52YXNJdGVtLmgJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZhcy9LQ2Fu
dmFzSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWMuc2VpZGVsQGtkZW1haWwubmV0PgorICAg
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI1LDU5ICsyNiw1MiBAQAogI2RlZmlu
ZSBLQ2FudmFzSXRlbV9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlICJJbnRQb2ludC5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlIDxx
M3ZhbHVlbGlzdC5oPgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotCiAjaW5jbHVkZSAicmVuZGVy
X29iamVjdC5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsgLy8gbW92ZSBLQ2FudmFzSXRl
bSBpbnRvIFdlYkNvcmUgYW5kIHJlbW92ZSB0aGlzCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBGbG9hdFBvaW50OworICAgIGNsYXNzIEZsb2F0UmVjdDsKKyAgICBjbGFzcyBTVkdT
dHlsZWRFbGVtZW50SW1wbDsKIH0KIAotbmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNzIFNWR1N0
eWxlZEVsZW1lbnRJbXBsOwotfTsKLQogY2xhc3MgS0NhbnZhc1BhdGg7CiBjbGFzcyBLQ2FudmFz
Q29udGFpbmVyOwotY2xhc3MgS0NhbnZhc01hdHJpeDsKLWNsYXNzIFJlbmRlclBhdGggOiBwdWJs
aWMga2h0bWw6OlJlbmRlck9iamVjdAorY2xhc3MgUmVuZGVyUGF0aCA6IHB1YmxpYyBSZW5kZXJP
YmplY3QKIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJQYXRoKGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5
bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlKTsKKyAgICBSZW5kZXJQYXRoKFJl
bmRlclN0eWxlKiwgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQ
YXRoKCk7CiAKICAgICAvLyBIaXQtZGV0ZWN0aW9uIHNlcGVyYXRlZCBmb3IgdGhlIGZpbGwgYW5k
IHRoZSBzdHJva2UKLSAgICB2aXJ0dWFsIGJvb2wgZmlsbENvbnRhaW5zKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQgJnApIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzdHJva2VDb250YWlucyhj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50ICZwKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZmls
bENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc3Ry
b2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJucyBh
biB1bnNjYWxlZCBib3VuZGluZyBib3ggKG5vdCBldmVuIGluY2x1ZGluZyBsb2NhbFRyYW5zZm9y
bSgpKSBmb3IgdGhpcyB2ZWN0b3IgcGF0aAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZl
QkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdDsKIAotICAgIHZvaWQgY2hhbmdl
UGF0aChLQ2FudmFzUGF0aCogbmV3UGF0aCk7CisgICAgdm9pZCBjaGFuZ2VQYXRoKEtDYW52YXNQ
YXRoKik7CiAgICAgS0NhbnZhc1BhdGgqIHBhdGgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25z
dCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIktDYW52YXNJdGVtIjsgfQorICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJLQ2FudmFz
SXRlbSI7IH0KICAgICAKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCAmbWF0
cml4KTsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mKTsKICAgICAKIHByb3RlY3RlZDoKICAgICAvLyByZXN0cmljdGVkIHNldCBvZiBhcmdzIGZv
ciBwYXNzaW5nIHRvIHBhaW50IHNlcnZlcnMsIGV0Yy4KLSAgICB2aXJ0dWFsIGJvb2wgaGl0c1Bh
dGgoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmaGl0UG9pbnQsIGJvb2wgZmlsbCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBoaXRzUGF0aChjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBm
aWxsKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgYmJveEZvclBhdGgoYm9vbCBp
bmNsdWRlU3Ryb2tlKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgUHJpdmF0ZTsK
LSAgICBQcml2YXRlICpkOworICAgIFByaXZhdGUqIGQ7CiB9OwogCiAvLyBIZWxwZXIgZGF0YSBz
dHJ1Y3R1cmUKLXR5cGVkZWYgUTNWYWx1ZUxpc3Q8Y29uc3QgUmVuZGVyUGF0aCAqPiBLQ2FudmFz
SXRlbUxpc3Q7Cit0eXBlZGVmIFEzVmFsdWVMaXN0PGNvbnN0IFJlbmRlclBhdGgqPiBLQ2FudmFz
SXRlbUxpc3Q7CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrY2FudmFz
L0tDYW52YXNNYXRyaXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0NhbnZhc01hdHJpeC5j
cHAJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZhcy9LQ2FudmFzTWF0cml4LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyOTEgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPHF3bWF0cml4Lmg+Ci0KLSNpbmNsdWRl
ICJLQ2FudmFzUGF0aC5oIgotI2luY2x1ZGUgIktDYW52YXNNYXRyaXguaCIKLQotc3RhdGljIGNv
bnN0IGRvdWJsZSBkZWcycmFkID0gMC4wMTc0NTMyOTI1MTk5NDMyOTU3Njk7IC8vIHBpLzE4MAot
Ci0vLyBLQ2FudmFzTWF0cml4Ci1LQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4KCkKLXsKLSAg
ICBtX21vZGUgPSBPUFNfUFJFTVVMOwotfQotCi1LQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4
KGNvbnN0IFFNYXRyaXggJnFtYXRyaXgpCi17Ci0gICAgbV9tb2RlID0gT1BTX1BSRU1VTDsKLSAg
ICAoKnRoaXMpID0gcW1hdHJpeDsKLX0KLQotS0NhbnZhc01hdHJpeDo6S0NhbnZhc01hdHJpeChj
b25zdCBLQ2FudmFzTWF0cml4ICZtYXRyaXgpCi17Ci0gICAgbV9tb2RlID0gT1BTX1BSRU1VTDsK
LSAgICAoKnRoaXMpID0gbWF0cml4OwotfQotCi1LQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0cml4
KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91Ymxl
IGYpCi17Ci0gICAgbV9tb2RlID0gT1BTX1BSRU1VTDsKLSAgICBtX21hdHJpeC5zZXRNYXRyaXgo
YSwgYiwgYywgZCwgZSwgZik7Ci19Ci0KLUtDYW52YXNNYXRyaXg6On5LQ2FudmFzTWF0cml4KCkK
LXsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6b3BlcmF0b3I9KGNvbnN0IFFN
YXRyaXggJm90aGVyKQotewotICAgIG1fbWF0cml4ID0gb3RoZXI7Ci0gICAgcmV0dXJuICp0aGlz
OwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj0oY29uc3QgS0Nh
bnZhc01hdHJpeCAmb3RoZXIpCi17Ci0gICAgbV9tYXRyaXggPSBvdGhlci5tX21hdHJpeDsKLSAg
ICByZXR1cm4gKnRoaXM7Ci19Ci0KLWJvb2wgS0NhbnZhc01hdHJpeDo6b3BlcmF0b3I9PShjb25z
dCBRTWF0cml4ICZvdGhlcikgY29uc3QKLXsKLSAgICByZXR1cm4gKG1fbWF0cml4ID09IG90aGVy
KTsKLX0KLQotYm9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvciE9KGNvbnN0IFFNYXRyaXggJm90
aGVyKSBjb25zdAotewotICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Ci19Ci0KLWJvb2wg
S0NhbnZhc01hdHJpeDo6b3BlcmF0b3I9PShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcikgY29u
c3QKLXsKLSAgICByZXR1cm4gKG1fbWF0cml4ID09IG90aGVyLm1fbWF0cml4KTsKLX0KLQotYm9v
bCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvciE9KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVyKSBj
b25zdAotewotICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Ci19Ci0KLXZvaWQgS0NhbnZh
c01hdHJpeDo6c2V0T3BlcmF0aW9uTW9kZShLQ01hdHJpeE9wZXJhdGlvbk1vZGUgbW9kZSkKLXsK
LSAgICBtX21vZGUgPSBtb2RlOwotfSAgICAKLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXRBKGRv
dWJsZSBhKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeChhLCBtX21hdHJpeC5tMTIoKSwgbV9t
YXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigpLCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgp
KTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmEoKSBjb25zdAotewotICAgIHJldHVybiBt
X21hdHJpeC5tMTEoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXRCKGRvdWJsZSBiKQot
ewotICAgIG1fbWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwgYiwgbV9tYXRyaXgubTIx
KCksIG1fbWF0cml4Lm0yMigpLCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgpKTsKLX0KLQot
ZG91YmxlIEtDYW52YXNNYXRyaXg6OmIoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5t
MTIoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXRDKGRvdWJsZSBjKQotewotICAgIG1f
bWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIGMsIG1fbWF0
cml4Lm0yMigpLCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91YmxlIEtD
YW52YXNNYXRyaXg6OmMoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5tMjEoKTsKLX0K
LQotdm9pZCBLQ2FudmFzTWF0cml4OjpzZXREKGRvdWJsZSBkKQotewotICAgIG1fbWF0cml4LnNl
dE1hdHJpeChtX21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIG1fbWF0cml4Lm0yMSgpLCBk
LCBtX21hdHJpeC5keCgpLCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRy
aXg6OmQoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5tMjIoKTsKLX0KLQotdm9pZCBL
Q2FudmFzTWF0cml4OjpzZXRFKGRvdWJsZSBlKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeCht
X21hdHJpeC5tMTEoKSwgbV9tYXRyaXgubTEyKCksIG1fbWF0cml4Lm0yMSgpLCBtX21hdHJpeC5t
MjIoKSwgZSwgbV9tYXRyaXguZHkoKSk7Ci19Ci0KLWRvdWJsZSBLQ2FudmFzTWF0cml4OjplKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9tYXRyaXguZHgoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0
cml4OjpzZXRGKGRvdWJsZSBmKQotewotICAgIG1fbWF0cml4LnNldE1hdHJpeChtX21hdHJpeC5t
MTEoKSwgbV9tYXRyaXgubTEyKCksIG1fbWF0cml4Lm0yMSgpLCBtX21hdHJpeC5tMjIoKSwgbV9t
YXRyaXguZHgoKSwgZik7Ci19Ci0KLWRvdWJsZSBLQ2FudmFzTWF0cml4OjpmKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9tYXRyaXguZHkoKTsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01h
dHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICBpZihtX21vZGUgPT0g
T1BTX1BSRU1VTCkKLSAgICAgICAgbV9tYXRyaXgudHJhbnNsYXRlKHgsIHkpOwotICAgIGVsc2UK
LSAgICB7Ci0gICAgICAgIFFNYXRyaXggdGVtcDsKLSAgICAgICAgdGVtcC50cmFuc2xhdGUoeCwg
eSk7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRlbXA7Ci0gICAgfQotCi0gICAgcmV0dXJuICp0aGlz
OwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjptdWx0aXBseShjb25zdCBLQ2Fu
dmFzTWF0cml4ICZvdGhlcikKLXsKLSAgICBRTWF0cml4IHRlbXAob3RoZXIuYSgpLCBvdGhlci5i
KCksIG90aGVyLmMoKSwgb3RoZXIuZCgpLCBvdGhlci5lKCksIG90aGVyLmYoKSk7Ci0KLSAgICBp
ZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICB7Ci0gICAgICAgIHRlbXAgKj0gbV9tYXRyaXg7
Ci0gICAgICAgIG1fbWF0cml4ID0gdGVtcDsKLSAgICB9Ci0gICAgZWxzZQotICAgICAgICBtX21h
dHJpeCAqPSB0ZW1wOwotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZL
Q2FudmFzTWF0cml4OjpzY2FsZShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0
b3JZKQotewotICAgIGlmKG1fbW9kZSA9PSBPUFNfUFJFTVVMKQotICAgICAgICBtX21hdHJpeC5z
Y2FsZShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAg
ICAgUU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnNjYWxlKHNjYWxlRmFjdG9yWCwgc2NhbGVG
YWN0b3JZKTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4g
KnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6OnJvdGF0ZShkb3VibGUg
YW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0gICAgICAgIG1fbWF0cml4
LnJvdGF0ZShhbmdsZSk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwot
ICAgICAgICB0ZW1wLnJvdGF0ZShhbmdsZSk7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRlbXA7Ci0g
ICAgfQotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0
cml4Ojpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICBpZihtX21v
ZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAgICAgbV9tYXRyaXgucm90YXRlKGF0YW4yKHksIHgpIC8g
ZGVnMnJhZCk7Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAg
ICB0ZW1wLnJvdGF0ZShhdGFuMih5LCB4KSAvIGRlZzJyYWQpOwotICAgICAgICBtX21hdHJpeCAq
PSB0ZW1wOwotICAgIH0KLQotICAgIHJldHVybiAqdGhpczsKLX0KLQotS0NhbnZhc01hdHJpeCAm
S0NhbnZhc01hdHJpeDo6ZmxpcFgoKQotewotICAgIHJldHVybiBzY2FsZSgtMS4wZiwgMS4wZik7
Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6OmZsaXBZKCkKLXsKLSAgICByZXR1
cm4gc2NhbGUoMS4wZiwgLTEuMGYpOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4
Ojpza2V3WChkb3VibGUgYW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0g
ICAgICAgIG1fbWF0cml4LnNoZWFyKHRhbihhbmdsZSAqIGRlZzJyYWQpLCAwLjBmKTsKLSAgICBl
bHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAgIHRlbXAuc2hlYXIodGFu
KGFuZ2xlICogZGVnMnJhZCksIDAuMGYpOwotICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwotICAg
IH0KLQotICAgIHJldHVybiAqdGhpczsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJp
eDo6c2tld1koZG91YmxlIGFuZ2xlKQotewotICAgIGlmKG1fbW9kZSA9PSBPUFNfUFJFTVVMKQot
ICAgICAgICBtX21hdHJpeC5zaGVhcigwLjBmLCB0YW4oYW5nbGUgKiBkZWcycmFkKSk7Ci0gICAg
ZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnNoZWFyKDAu
MGYsIHRhbihhbmdsZSAqIGRlZzJyYWQpKTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLXZvaWQgS0NhbnZhc01hdHJpeDo6cmVzZXQo
KQotewotICAgIG1fbWF0cml4LnJlc2V0KCk7Ci19Ci0KLXZvaWQgS0NhbnZhc01hdHJpeDo6cmVt
b3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAqeVNjYWxlKQotewotICAgIGRvdWJsZSBz
eCA9IHNxcnQoYSgpICogYSgpICsgYigpICpiKCkpOwotICAgIGRvdWJsZSBzeSA9IHNxcnQoYygp
ICogYygpICsgZCgpICpkKCkpOwotCi0gICAgLy8gUmVtb3ZlIHRoZSBzY2FsaW5nIGZyb20gdGhl
IG1hdHJpeC4KLSAgICBzZXRBKGEoKSAvIHN4KTsgc2V0QihiKCkgLyBzeCk7Ci0gICAgc2V0Qyhj
KCkgLyBzeSk7IHNldEQoZCgpIC8gc3kpOwotCi0gICAgKnhTY2FsZSA9IHN4OyAqeVNjYWxlID0g
c3k7Ci19Ci0KLVFNYXRyaXggS0NhbnZhc01hdHJpeDo6cW1hdHJpeCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbWF0cml4OwotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0jZW5kaWYgLy8gU1ZHX1NV
UFBPUlQKLQpJbmRleDoga2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52
YXMvS0NhbnZhc1RyZWVEZWJ1Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDM0ICsyOSwyNiBA
QAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiS0NhbnZhc1RyZWVEZWJ1Zy5oIgogCi0jaW5j
bHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtj
YW52YXMvS0NhbnZhc01hdHJpeC5oPgotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgot
I2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgorI2luY2x1ZGUgIkZsb2F0U2l6
ZS5oIgorI2luY2x1ZGUgIktDYW52YXNDb250YWluZXIuaCIKKyNpbmNsdWRlICJLQ2FudmFzRmls
dGVycy5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgotI2luY2x1ZGUgPGtj
YW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tS
ZW5kZXJpbmdGaWxsUGFpbnRlci5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJp
bmdQYWludFNlcnZlclNvbGlkLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmlu
Z1BhaW50U2VydmVyUGF0dGVybi5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJp
bmdQYWludFNlcnZlckdyYWRpZW50Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3Vy
Y2VzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgotCisjaW5jbHVkZSAi
S0NhbnZhc1Jlc291cmNlcy5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdEZXZpY2UuaCIKKyNpbmNs
dWRlICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nUGFpbnRT
ZXJ2ZXJHcmFkaWVudC5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4u
aCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJTb2xpZC5oIgorI2luY2x1ZGUgIktS
ZW5kZXJpbmdTdHJva2VQYWludGVyLmgiCiAjaW5jbHVkZSAiS1dRUmVuZGVyVHJlZURlYnVnLmgi
Ci0KLSNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+Ci0KKyNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgPGtzdmcy
L3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5oPgotCi0jaW5jbHVkZSA8a2RvbS9ET01TdHJpbmcu
aD4KKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgImRvbV9hdG9t
aWNzdHJpbmcuaCIKICNpbmNsdWRlICJodG1sbmFtZXMuaCIKLQorI2luY2x1ZGUgPGt4bWxjb3Jl
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8cXRleHRzdHJlYW0u
aD4KLSNpbmNsdWRlICJGbG9hdFNpemUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKQEAg
LTk2LDcgKzg4LDcgQEAKICAgICByZXR1cm4gdHMgPDwgImF0ICgiIDw8IHIueCgpIDw8ICIsIiA8
PCByLnkoKSA8PCAiKSBzaXplICIgPDwgci53aWR0aCgpIDw8ICJ4IiA8PCByLmhlaWdodCgpOwog
fQogCi1ib29sIGhhc0ZyYWN0aW9ucyhkb3VibGUgdmFsKQorYm9vbCBoYXNGcmFjdGlvbmFsUGFy
dChkb3VibGUgdmFsKQogewogICAgIGRvdWJsZSBlcHNpbG9uID0gMC4wMDAxOwogICAgIGludCBp
dmFsID0gaW50KHZhbCk7CkBAIC0xMDQsNzAgKzk2LDUyIEBACiAgICAgcmV0dXJuIChmYWJzKHZh
bC1kdmFsKSA+IGVwc2lsb24pOwogfQogCitRVGV4dFN0cmVhbSYgZHVtcChRVGV4dFN0cmVhbSYg
dHMsIGZsb2F0IGYpCit7CisgICAgaWYgKCFoYXNGcmFjdGlvbmFsUGFydChmKSkgCisgICAgICAg
IHJldHVybiB0cyA8PCBzdGF0aWNfY2FzdDxpbnQ+KGYpOworICAgIHJldHVybiB0cyA8PCBmOwor
fQorCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IEZsb2F0
UmVjdCAmcikKIHsKICAgICB0cyA8PCAiYXQgKCI7IAotICAgIGlmIChoYXNGcmFjdGlvbnMoci54
KCkpKSAKLSAgICAgICAgdHMgPDwgci54KCk7Ci0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50
KHIueCgpKTsKKyAgICBkdW1wKHRzLCByLngoKSk7CiAgICAgdHMgPDwgIiwiOwotICAgIGlmICho
YXNGcmFjdGlvbnMoci55KCkpKSAKLSAgICAgICAgdHMgPDwgci55KCk7Ci0gICAgZWxzZSAKLSAg
ICAgICAgdHMgPDwgaW50KHIueSgpKTsKKyAgICBkdW1wKHRzLCByLnkoKSk7CiAgICAgdHMgPDwg
Iikgc2l6ZSAiOwotICAgIGlmIChoYXNGcmFjdGlvbnMoci53aWR0aCgpKSkgCi0gICAgICAgIHRz
IDw8IHIud2lkdGgoKTsgCi0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHIud2lkdGgoKSk7
IAorICAgIGR1bXAodHMsIHIud2lkdGgoKSk7CiAgICAgdHMgPDwgIngiOwotICAgIGlmIChoYXNG
cmFjdGlvbnMoci5oZWlnaHQoKSkpIAotICAgICAgICB0cyA8PCByLmhlaWdodCgpOwotICAgIGVs
c2UgCi0gICAgICAgIHRzIDw8IGludChyLmhlaWdodCgpKTsKKyAgICBkdW1wKHRzLCByLmhlaWdo
dCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0
U3RyZWFtICZ0cywgY29uc3QgRmxvYXRQb2ludCAmcCkKIHsKICAgICB0cyA8PCAiKCI7ICAgIAot
ICAgIGlmIChoYXNGcmFjdGlvbnMocC54KCkpKQotICAgICAgICB0cyA8PCBwLngoKTsKLSAgICBl
bHNlIAotICAgICAgICB0cyA8PCBpbnQocC54KCkpOyAgICAKKyAgICBkdW1wKHRzLCBwLngoKSk7
CiAgICAgdHMgPDwgIiwiOwotICAgIGlmIChoYXNGcmFjdGlvbnMocC55KCkpKSAKLSAgICAgICAg
dHMgPDwgcC55KCk7Ci0gICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHAueSgpKTsgICAgCisg
ICAgZHVtcCh0cywgcC55KCkpOwogICAgIHJldHVybiB0cyA8PCAiKSI7CiB9CiAKIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgRmxvYXRTaXplICZzKQogeyAg
IAogICAgIHRzIDw8ICJ3aWR0aD0iOwotICAgIGlmIChoYXNGcmFjdGlvbnMocy53aWR0aCgpKSkK
LSAgICAgICAgdHMgPDwgcy53aWR0aCgpOwotICAgIGVsc2UKLSAgICAgICAgdHMgPDwgaW50KHMu
d2lkdGgoKSk7CisgICAgZHVtcCh0cywgcy53aWR0aCgpKTsKICAgICB0cyA8PCAiIGhlaWdodD0i
OwotICAgIGlmIChoYXNGcmFjdGlvbnMocy5oZWlnaHQoKSkpIAotICAgICAgICB0cyA8PCBzLmhl
aWdodCgpOwotICAgIGVsc2UKLSAgICAgICAgdHMgPDwgaW50KHMuaGVpZ2h0KCkpOwotICAgICBy
ZXR1cm4gdHM7CisgICAgZHVtcCh0cywgcy5oZWlnaHQoKSk7CisgICAgcmV0dXJuIHRzOwogfQog
Ci0KLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUU1hdHJp
eCAmbSkKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgQWZm
aW5lVHJhbnNmb3JtICZtKQogewogICAgIGlmIChtLmlzSWRlbnRpdHkoKSkKICAgICAgICAgdHMg
PDwgImlkZW50aXR5IjsKICAgICBlbHNlIAogICAgIHsKLSAgICAgICAgdHMgPDwgInttPSgoIiA8
PCBtLm0xMSgpIDw8ICIsIiA8PCBtLm0xMigpIDw8ICIpKCIgPDwgbS5tMjEoKSA8PCAiLCIgPDwg
bS5tMjIoKSA8PCAiKSkiOwotICAgICAgICB0cyA8PCAiIHQ9KCIgPDwgbS5keCgpIDw8ICIsIiA8
PCBtLmR5KCkgPDwgIil9IjsKKyAgICAgICAgdHMgPDwgInttPSgoIiA8PCBtLmEoKSA8PCAiLCIg
PDwgbS5iKCkgPDwgIikoIiA8PCBtLmMoKSA8PCAiLCIgPDwgbS5kKCkgPDwgIikpIjsKKyAgICAg
ICAgdHMgPDwgIiB0PSgiIDw8IG0uZSgpIDw8ICIsIiA8PCBtLmYoKSA8PCAiKX0iOwogICAgIH0K
ICAgICByZXR1cm4gdHM7CiB9CkBAIC0zMDQsNyArMjc4LDcgQEAKIAogc3RhdGljIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUmVuZGVyUGF0aCAmbykKIHsK
LSAgICB0cyA8PCAiICIgPDwgby5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoby5yZWxhdGl2
ZUJCb3goKSk7CisgICAgdHMgPDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAoby5y
ZWxhdGl2ZUJCb3goKSk7CiAgICAgCiAgICAgd3JpdGVTdHlsZSh0cywgbyk7CiAgICAgCkBAIC0z
MTUsNyArMjg5LDcgQEAKIAogc3RhdGljIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3Ry
ZWFtICZ0cywgY29uc3QgS0NhbnZhc0NvbnRhaW5lciAmbykKIHsKLSAgICB0cyA8PCAiICIgPDwg
by5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoby5yZWxhdGl2ZUJCb3goKSk7CisgICAgdHMg
PDwgIiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAoby5yZWxhdGl2ZUJCb3goKSk7CiAg
ICAgCiAgICAgd3JpdGVTdHlsZSh0cywgbyk7CiAgICAgCkluZGV4OiBrY2FudmFzL2RldmljZS9L
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmgJKHJldmlzaW9uIDEyNDYzKQorKysg
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5p
a29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0CiAKQEAgLTI1LDIyICsyNiwyNiBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRl
ICJDb2xvci5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlci5oIgogI2luY2x1ZGUg
PHEzcHRybGlzdC5oPgogCi0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50
U2VydmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oPgor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7IC8vIG1vdmUgY29udGVudHMgb2YgdGhpcyBmaWxlIGlu
dG8gV2ViQ29yZSBuYW1lc3BhY2UgYW5kIHJlbW92ZSB0aGlzCiAKLXR5cGVkZWYgZW51bQotewor
Y2xhc3MgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9CisKK2VudW0gS0NHcmFkaWVudFNwcmVhZE1ldGhv
ZCB7CiAgICAgU1BSRUFETUVUSE9EX1BBRCA9IDEsCiAgICAgU1BSRUFETUVUSE9EX1JFUEVBVCA9
IDIsCiAgICAgU1BSRUFETUVUSE9EX1JFRkxFQ1QgPSA0Ci19IEtDR3JhZGllbnRTcHJlYWRNZXRo
b2Q7Cit9OwogCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIEtDR3Jh
ZGllbnRTcHJlYWRNZXRob2QgbSk7CiAKLXN0cnVjdCBLQ0dyYWRpZW50T2Zmc2V0UGFpcgotewor
c3RydWN0IEtDR3JhZGllbnRPZmZzZXRQYWlyIHsKICAgICBmbG9hdCBvZmZzZXQ7CiAgICAgQ29s
b3IgY29sb3I7CiB9OwpAQCAtNDksNyArNTQsNyBAQAogewogcHVibGljOgogICAgIEtDU29ydGVk
R3JhZGllbnRTdG9wTGlzdCgpOwotICAgIHZvaWQgYWRkU3RvcChmbG9hdCBvZmZzZXQsIGNvbnN0
IENvbG9yICZjb2xvcik7CisgICAgdm9pZCBhZGRTdG9wKGZsb2F0IG9mZnNldCwgY29uc3QgQ29s
b3ImKTsKIAogICAgIHR5cGVkZWYgUTNQdHJMaXN0SXRlcmF0b3I8S0NHcmFkaWVudE9mZnNldFBh
aXI+IEl0ZXJhdG9yOwogCkBAIC02MSw3ICs2Niw2IEBACiAKIFFUZXh0U3RyZWFtICZvcGVyYXRv
cjw8KFFUZXh0U3RyZWFtICYsIGNvbnN0IEtDU29ydGVkR3JhZGllbnRTdG9wTGlzdCAmKTsKIAot
Y2xhc3MgS0NhbnZhc01hdHJpeDsKIGNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50
IDogcHVibGljIEtSZW5kZXJpbmdQYWludFNlcnZlcgogewogcHVibGljOgpAQCAtODIsOCArODYs
OCBAQAogICAgIGJvb2wgYm91bmRpbmdCb3hNb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRCb3Vu
ZGluZ0JveE1vZGUoYm9vbCBtb2RlID0gdHJ1ZSk7CiAKLSAgICBLQ2FudmFzTWF0cml4IGdyYWRp
ZW50VHJhbnNmb3JtKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRHcmFkaWVudFRyYW5zZm9ybShjb25z
dCBLQ2FudmFzTWF0cml4ICZtYXQpOworICAgIEFmZmluZVRyYW5zZm9ybSBncmFkaWVudFRyYW5z
Zm9ybSgpIGNvbnN0OworICAgIHZvaWQgc2V0R3JhZGllbnRUcmFuc2Zvcm0oY29uc3QgQWZmaW5l
VHJhbnNmb3JtJik7CiAgICAgCiAgICAgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVy
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMaXN0ZW5lcihLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciAq
bGlzdGVuZXIpOwpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzSXRlbVF1YXJ0
ei5tbQkocmV2aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0
ZW1RdWFydHoubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgIktD
YW52YXNSZW5kZXJpbmdTdHlsZS5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ0ZpbGxQYWludGVyLmgi
CiAjaW1wb3J0ICJLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oIgotI2ltcG9ydCAiS0NhbnZhc01h
dHJpeC5oIgogCiAjaW1wb3J0ICJLQ2FudmFzUGF0aFF1YXJ0ei5oIgogI2ltcG9ydCAiS1JlbmRl
cmluZ0RldmljZVF1YXJ0ei5oIgpAQCAtNDcsOCArNDYsOCBAQAogI2ltcG9ydCAiU1ZHUmVuZGVy
U3R5bGUuaCIKICNpbXBvcnQgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCiAjaW1wb3J0ICJLQ2Fu
dmFzUmVuZGVyaW5nU3R5bGUuaCIKKyNpbXBvcnQgIkludFJlY3QuaCIKIAotCiBLQ2FudmFzSXRl
bVF1YXJ0ejo6S0NhbnZhc0l0ZW1RdWFydHooa2h0bWw6OlJlbmRlclN0eWxlICpzdHlsZSwgS1NW
Rzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUpIDogUmVuZGVyUGF0aChzdHlsZSwgbm9kZSkK
IHsKIH0KQEAgLTE5OSwxNSArMTk4LDE1IEBACiAKIEludFJlY3QgS0NhbnZhc0l0ZW1RdWFydHo6
OmdldEFic29sdXRlUmVwYWludFJlY3QoKQogewotICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9
IGFic29sdXRlVHJhbnNmb3JtKCkubWFwUmVjdChyZWxhdGl2ZUJCb3godHJ1ZSkpOworICAgIEZs
b2F0UmVjdCByZXBhaW50UmVjdCA9IGFic29sdXRlVHJhbnNmb3JtKCkubWFwKHJlbGF0aXZlQkJv
eCh0cnVlKSk7CiAgICAgCiAgICAgLy8gRmlsdGVycyBjYW4gZXhwYW5kIHRoZSBib3VuZGluZyBi
b3gKLSAgICBLQ2FudmFzRmlsdGVyICpmaWx0ZXIgPSBnZXRGaWx0ZXJCeUlkKGRvY3VtZW50KCks
IHN0eWxlKCktPnN2Z1N0eWxlKCktPmZpbHRlcigpLm1pZCgxKSk7Ci0gICAgaWYgKGZpbHRlcikK
LSAgICAgICAgcmVwYWludFJlY3QgPSByZXBhaW50UmVjdC51bml0ZShmaWx0ZXItPmZpbHRlckJC
b3hGb3JJdGVtQkJveChyZXBhaW50UmVjdCkpOworICAgIGlmIChLQ2FudmFzRmlsdGVyKiBmaWx0
ZXIgPSBnZXRGaWx0ZXJCeUlkKGRvY3VtZW50KCksIHN0eWxlKCktPnN2Z1N0eWxlKCktPmZpbHRl
cigpLm1pZCgxKSkpCisgICAgICAgIHJlcGFpbnRSZWN0LnVuaXRlKGZpbHRlci0+ZmlsdGVyQkJv
eEZvckl0ZW1CQm94KHJlcGFpbnRSZWN0KSk7CiAgICAgCiAgICAgaWYgKCFyZXBhaW50UmVjdC5p
c0VtcHR5KCkpCiAgICAgICAgIHJlcGFpbnRSZWN0LmluZmxhdGUoMSk7IC8vIGluZmxhdGUgMSBw
aXhlbCBmb3IgYW50aWFsaWFzaW5nCisKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChyZXBh
aW50UmVjdCk7CiB9CiAKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2
aWNlUXVhcnR6Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVy
aW5nRGV2aWNlUXVhcnR6Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvZGV2aWNlL3F1
YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw2IEBACiAjaW1wb3J0ICJRdWFydHpTdXBwb3J0LmgiCiAKICNpbXBvcnQgImtjYW52YXMvS0Nh
bnZhcy5oIgotI2ltcG9ydCAiS0NhbnZhc01hdHJpeC5oIgogI2ltcG9ydCAiS0NhbnZhc0l0ZW1R
dWFydHouaCIKICNpbXBvcnQgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgogI2ltcG9ydCAiS1Jl
bmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKQEAgLTU0LDE5ICs1MywxNyBAQAogICAgIFttX25zR3Jh
cGhpY3NDb250ZXh0IHJlbGVhc2VdOwogfQogCi1LQ2FudmFzTWF0cml4IEtSZW5kZXJpbmdEZXZp
Y2VDb250ZXh0UXVhcnR6Ojpjb25jYXRDVE0oY29uc3QgS0NhbnZhc01hdHJpeCAmd29ybGRNYXRy
aXgpCitBZmZpbmVUcmFuc2Zvcm0gS1JlbmRlcmluZ0RldmljZUNvbnRleHRRdWFydHo6OmNvbmNh
dENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHdvcmxkTWF0cml4KQogewotICAgIEtDYW52YXNN
YXRyaXggcmV0ID0gY3RtKCk7Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gd01hdHJpeCA9IENHQWZm
aW5lVHJhbnNmb3JtTWFrZSh3b3JsZE1hdHJpeC5hKCksIHdvcmxkTWF0cml4LmIoKSwgd29ybGRN
YXRyaXguYygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3b3JsZE1hdHJpeC5kKCksIHdvcmxkTWF0cml4LmUoKSwgd29ybGRNYXRyaXguZigp
KTsKLSAgICBDR0NvbnRleHRDb25jYXRDVE0obV9jZ0NvbnRleHQsIHdNYXRyaXgpOworICAgIEFm
ZmluZVRyYW5zZm9ybSByZXQgPSBjdG0oKTsKKyAgICBDR0NvbnRleHRDb25jYXRDVE0obV9jZ0Nv
bnRleHQsIHdvcmxkTWF0cml4KTsKICAgICByZXR1cm4gcmV0OwogfQogCi1LQ2FudmFzTWF0cml4
IEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6OjpjdG0oKSBjb25zdAorQWZmaW5lVHJhbnNm
b3JtIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6OjpjdG0oKSBjb25zdAogewogICAgIENH
QWZmaW5lVHJhbnNmb3JtIGNvbnRleHRDVE0gPSBDR0NvbnRleHRHZXRDVE0obV9jZ0NvbnRleHQp
OwotICAgIHJldHVybiBLQ2FudmFzTWF0cml4KGNvbnRleHRDVE0uYSwgY29udGV4dENUTS5iLCBj
b250ZXh0Q1RNLmMsIGNvbnRleHRDVE0uZCwgY29udGV4dENUTS50eCwgY29udGV4dENUTS50eSk7
CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybShjb250ZXh0Q1RNLmEsIGNvbnRleHRDVE0uYiwg
Y29udGV4dENUTS5jLCBjb250ZXh0Q1RNLmQsIGNvbnRleHRDVE0udHgsIGNvbnRleHRDVE0udHkp
OwogfQogCiBJbnRSZWN0IEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6OjptYXBGcm9tVmlz
dWFsKGNvbnN0IEludFJlY3QgJnJlY3QpCkBAIC0xOTAsNyArMTg3LDcgQEAKICNwcmFnbWEgbWFy
ayAtCiAjcHJhZ21hIG1hcmsgUmVzb3VyY2UgQ3JlYXRpb24KIAotS1JlbmRlcmluZ1BhaW50U2Vy
dmVyICpLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpjcmVhdGVQYWludFNlcnZlcihjb25zdCBLQ1Bh
aW50U2VydmVyVHlwZSAmdHlwZSkgY29uc3QKK0tSZW5kZXJpbmdQYWludFNlcnZlciAqS1JlbmRl
cmluZ0RldmljZVF1YXJ0ejo6Y3JlYXRlUGFpbnRTZXJ2ZXIoS0NQYWludFNlcnZlclR5cGUgdHlw
ZSkgY29uc3QKIHsKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKm5ld1NlcnZlciA9IE5VTEw7
CiAgICAgc3dpdGNoKHR5cGUpIHsKQEAgLTIyMiw3ICsyMTksNyBAQAogICAgIHJldHVybiBpdGVt
OwogfQogCi1LQ2FudmFzUmVzb3VyY2UgKktSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmNyZWF0ZVJl
c291cmNlKGNvbnN0IEtDUmVzb3VyY2VUeXBlICZ0eXBlKSBjb25zdAorS0NhbnZhc1Jlc291cmNl
KiBLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpjcmVhdGVSZXNvdXJjZShLQ1Jlc291cmNlVHlwZSB0
eXBlKSBjb25zdAogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgUlNfQ0xJUFBFUjoK
QEAgLTI0MCw3ICsyMzcsNyBAQAogICAgIHJldHVybiAwOwogfQogCi1LQ2FudmFzRmlsdGVyRWZm
ZWN0ICpLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpjcmVhdGVGaWx0ZXJFZmZlY3QoY29uc3QgS0NG
aWx0ZXJFZmZlY3RUeXBlICZ0eXBlKSBjb25zdAorS0NhbnZhc0ZpbHRlckVmZmVjdCAqS1JlbmRl
cmluZ0RldmljZVF1YXJ0ejo6Y3JlYXRlRmlsdGVyRWZmZWN0KEtDRmlsdGVyRWZmZWN0VHlwZSB0
eXBlKSBjb25zdAogewogICAgIHN3aXRjaCh0eXBlKQogICAgIHsKSW5kZXg6IGtjYW52YXMvZGV2
aWNlL3F1YXJ0ei9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHoubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ei5tbQkocmV2
aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ1BhaW50U2Vy
dmVyUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyMiArMjQsMjAgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKLQotI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiY29uZmlnLmgi
CiAjaWYgU1ZHX1NVUFBPUlQKICNpbXBvcnQgIktSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ei5o
IgotI2ltcG9ydCAiUXVhcnR6U3VwcG9ydC5oIgotI2ltcG9ydCAiS0NhbnZhc1Jlc291cmNlc1F1
YXJ0ei5oIgotI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgogCiAjaW1wb3J0ICJL
Q2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKLSNpbXBvcnQgIktSZW5kZXJpbmdQYWludFNlcnZlci5o
IgorI2ltcG9ydCAiS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCIKKyNpbXBvcnQgIktDYW52YXNS
ZXNvdXJjZXNRdWFydHouaCIKKyNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2UuaCIKKyNpbXBvcnQg
IktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKICNpbXBvcnQgIktSZW5kZXJpbmdGaWxsUGFpbnRl
ci5oIgorI2ltcG9ydCAiS1JlbmRlcmluZ1BhaW50U2VydmVyLmgiCiAjaW1wb3J0ICJLUmVuZGVy
aW5nU3Ryb2tlUGFpbnRlci5oIgotI2ltcG9ydCAiS0NhbnZhc01hdHJpeC5oIgotI2ltcG9ydCAi
S1JlbmRlcmluZ0RldmljZS5oIgotCiAjaW1wb3J0ICJLV1FMb2dnaW5nLmgiCisjaW1wb3J0ICJR
dWFydHpTdXBwb3J0LmgiCiAKIHZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyUXVhcnR6SGVscGVy
OjpzdHJva2VQYXRoKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBSZW5kZXJQYXRoICpyZW5k
ZXJQYXRoKQogewpAQCAtMTY0LDkgKzE2Miw5IEBACiAgICAgICAgICAgICAKICAgICAvLyBQYXR0
ZXJucyBkb24ndCBzZWVtIHRvIHJlc2VwZWN0IHRoZSBDVE0gdW5sZXNzIHdlIG1ha2UgdGhlbS4u
LgogICAgIENHQWZmaW5lVHJhbnNmb3JtIGN0bSA9IENHQ29udGV4dEdldENUTShjb250ZXh0KTsK
LSAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybShwYXR0
ZXJuVHJhbnNmb3JtKCkucW1hdHJpeCgpKTsKLSAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5z
Zm9ybUNvbmNhdCh0cmFuc2Zvcm0sIGN0bSk7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNm
b3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQocGF0dGVyblRyYW5zZm9ybSgpLCBjdG0pOwog
CisgICAgLy8gRklYTUU6IEkgYmVsaWV2ZSB0aGlzIHdpbGxuZWVkIHRvIHVzZSBXS1NldFBhdHRl
cm5QaGFzZUluVXNlclNwYWNlLgogICAgIENHU2l6ZSBwaGFzZSA9IENHU2l6ZU1ha2UoYmJveCgp
LngoKSwgYmJveCgpLnkoKSk7CiAgICAgQ0dDb250ZXh0U2V0UGF0dGVyblBoYXNlKGNvbnRleHQs
IHBoYXNlKTsKIApAQCAtMjMwLDQgKzIyOCwzIEBACiAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0
ZShjb250ZXh0KTsKIH0KICNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBrY2FudmFzL2Rl
dmljZS9xdWFydHovUXVhcnR6U3VwcG9ydC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2Rldmlj
ZS9xdWFydHovUXVhcnR6U3VwcG9ydC5tbQkocmV2aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL2Rl
dmljZS9xdWFydHovUXVhcnR6U3VwcG9ydC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
NiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW1wb3J0ICJRdWFydHpTdXBwb3J0LmgiCiAKLSNpbXBv
cnQgIktDYW52YXNNYXRyaXguaCIKICNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXNRdWFydHouaCIK
ICNpbXBvcnQgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0
cm9rZVBhaW50ZXIuaCIKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3Vy
Y2VzUXVhcnR6Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFz
UmVzb3VyY2VzUXVhcnR6Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvZGV2aWNlL3F1
YXJ0ei9LQ2FudmFzUmVzb3VyY2VzUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw2IEBACiAKICNpbXBvcnQgImtjYW52YXMvS0NhbnZhcy5oIgogI2ltcG9ydCAiU1ZHUmVuZGVy
U3R5bGUuaCIKLSNpbXBvcnQgIktDYW52YXNNYXRyaXguaCIKIAogI2ltcG9ydCAiS0NhbnZhc1Bh
dGhRdWFydHouaCIKICNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKQEAgLTQxLDYg
KzQwLDggQEAKIAogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwogYm9vbCBLQ2FudmFzQ29udGFpbmVyUXVhcnR6OjpjYW5IYXZlQ2hp
bGRyZW4oKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpAQCAtMTIyLDEyICsxMjMsMTIgQEAK
ICAgICAKICAgICBpZiAocGFyZW50WCAhPSAwIHx8IHBhcmVudFkgIT0gMCkgewogICAgICAgICAv
LyBUcmFuc2xhdGUgZnJvbSBwYXJlbnQgb2Zmc2V0cyAoa2h0bWwpIHRvIGEgcmVsYXRpdmUgdHJh
bnNmb3JtIChrc3ZnMi9rY2FudmFzKQotICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0o
UU1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgICAgIGRldmljZUNv
bnRleHQtPmNvbmNhdENUTSh0cmFuc2xhdGlvbk1hdHJpeChwYXJlbnRYLCBwYXJlbnRZKSk7CiAg
ICAgICAgIHBhcmVudFggPSBwYXJlbnRZID0gMDsKICAgICB9CiAgICAgCi0gICAgaWYgKHZpZXdw
b3J0KCkuaXNWYWxpZCgpKQotICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0oUU1hdHJp
eCgpLnRyYW5zbGF0ZSh2aWV3cG9ydCgpLngoKSwgdmlld3BvcnQoKS55KCkpKTsKKyAgICBpZiAo
IXZpZXdwb3J0KCkuaXNFbXB0eSgpKQorICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRDVE0o
dHJhbnNsYXRpb25NYXRyaXgodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpKSk7CiAgICAg
CiAgICAgaWYgKCFsb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkKICAgICAgICAgZGV2aWNl
Q29udGV4dC0+Y29uY2F0Q1RNKGxvY2FsVHJhbnNmb3JtKCkpOwpAQCAtMTQ1LDggKzE0Niw3IEBA
CiAgICAgaWYgKGZpbHRlcikKICAgICAgICAgZmlsdGVyLT5wcmVwYXJlRmlsdGVyKHJlbGF0aXZl
QkJveCh0cnVlKSk7CiAgICAgCi0gICAgaWYgKCF2aWV3Qm94KCkuaXNOdWxsKCkpCi0gICAgICAg
IGRldmljZUNvbnRleHQtPmNvbmNhdENUTSh2aWV3cG9ydFRyYW5zZm9ybSgpKTsKKyAgICBkZXZp
Y2VDb250ZXh0LT5jb25jYXRDVE0odmlld3BvcnRUcmFuc2Zvcm0oKSk7CiAgICAgCiAgICAgUmVu
ZGVyQ29udGFpbmVyOjpwYWludChwYWludEluZm8sIDAsIDApOwogICAgIApAQCAtMTk0LDE1ICsx
OTQsMTUgQEAKICAgICByZXR1cm4gbV9hbGlnbjsKIH0KIAotUU1hdHJpeCBLQ2FudmFzQ29udGFp
bmVyUXVhcnR6Ojp2aWV3cG9ydFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS0Nh
bnZhc0NvbnRhaW5lclF1YXJ0ejo6dmlld3BvcnRUcmFuc2Zvcm0oKSBjb25zdAogewotICAgIGlm
ICghdmlld0JveCgpLmlzTnVsbCgpKSB7CisgICAgaWYgKCF2aWV3Qm94KCkuaXNFbXB0eSgpKSB7
CiAgICAgICAgIEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QgPSB2aWV3cG9ydCgpOwogICAgICAgICBp
ZiAoIXBhcmVudCgpLT5pc0tDYW52YXNDb250YWluZXIoKSkKICAgICAgICAgICAgIHZpZXdwb3J0
UmVjdCA9IEZsb2F0UmVjdCh2aWV3cG9ydCgpLngoKSwgdmlld3BvcnQoKS55KCksIHdpZHRoKCks
IGhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGdldEFzcGVjdFJhdGlvKHZpZXdCb3goKSwgdmll
d3BvcnRSZWN0KS5xbWF0cml4KCk7CisgICAgICAgIHJldHVybiBnZXRBc3BlY3RSYXRpbyh2aWV3
Qm94KCksIHZpZXdwb3J0UmVjdCk7CiAgICAgfQotICAgIHJldHVybiBRTWF0cml4KCk7CisgICAg
cmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogfQogCiBJbnRSZWN0IEtDYW52YXNDb250YWluZXJR
dWFydHo6OmdldEFic29sdXRlUmVwYWludFJlY3QoKQpAQCAtMjEwLDE3ICsyMTAsMTcgQEAKICAg
ICBJbnRSZWN0IHJlcGFpbnRSZWN0OwogICAgIAogICAgIGZvciAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0ICpjdXJyZW50ID0gZmlyc3RDaGlsZCgpOyBjdXJyZW50ICE9IDA7IGN1cnJlbnQgPSBjdXJy
ZW50LT5uZXh0U2libGluZygpKQotICAgICAgICByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0LnVu
aXRlKGN1cnJlbnQtPmdldEFic29sdXRlUmVwYWludFJlY3QoKSk7CisgICAgICAgIHJlcGFpbnRS
ZWN0LnVuaXRlKGN1cnJlbnQtPmdldEFic29sdXRlUmVwYWludFJlY3QoKSk7CiAgICAgCiAgICAg
Ly8gRmlsdGVycyBjYW4gZXhwYW5kIHRoZSBib3VuZGluZyBib3gKICAgICBLQ2FudmFzRmlsdGVy
ICpmaWx0ZXIgPSBnZXRGaWx0ZXJCeUlkKGRvY3VtZW50KCksIHN0eWxlKCktPnN2Z1N0eWxlKCkt
PmZpbHRlcigpLm1pZCgxKSk7CiAgICAgaWYgKGZpbHRlcikKLSAgICAgICAgcmVwYWludFJlY3Qg
PSByZXBhaW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRSZWN0KGZpbHRlci0+ZmlsdGVyQkJveEZv
ckl0ZW1CQm94KHJlcGFpbnRSZWN0KSkpOworICAgICAgICByZXBhaW50UmVjdC51bml0ZShlbmNs
b3NpbmdJbnRSZWN0KGZpbHRlci0+ZmlsdGVyQkJveEZvckl0ZW1CQm94KHJlcGFpbnRSZWN0KSkp
OwogCiAgICAgcmV0dXJuIHJlcGFpbnRSZWN0OwogfQogCi1RTWF0cml4IEtDYW52YXNDb250YWlu
ZXJRdWFydHo6OmFic29sdXRlVHJhbnNmb3JtKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBLQ2Fu
dmFzQ29udGFpbmVyUXVhcnR6OjphYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIHZpZXdwb3J0VHJhbnNmb3JtKCkgKiBLQ2FudmFzQ29udGFpbmVyOjphYnNvbHV0ZVRyYW5z
Zm9ybSgpOwogfQpAQCAtMjgyLDEwICsyODIsOSBAQAogCiB2b2lkIEtDYW52YXNJbWFnZVF1YXJ0
ejo6c2V0Q0dMYXllcihDR0xheWVyUmVmIGxheWVyKQogewotICAgIGlmIChtX2NnTGF5ZXIgIT0g
bGF5ZXIpIHsKLSAgICAgICAgQ0dMYXllclJlbGVhc2UobV9jZ0xheWVyKTsKLSAgICAgICAgbV9j
Z0xheWVyID0gQ0dMYXllclJldGFpbihsYXllcik7Ci0gICAgfQorICAgIENHTGF5ZXJSZXRhaW4o
bGF5ZXIpOworICAgIENHTGF5ZXJSZWxlYXNlKG1fY2dMYXllcik7CisgICAgbV9jZ0xheWVyID0g
bGF5ZXI7CiB9Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIAorI2VuZGlmIC8vIFNWR19TVVBQT1JU
CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAkocmV2aXNp
b24gMTI0NjMpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHouaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE0ICsyMywxMSBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAotI2ltcG9ydCAia2NhbnZhcy9SZW5kZXJQYXRoLmgiCisjaW1w
b3J0ICJLQ2FudmFzSXRlbS5oIgogCi0jaW5jbHVkZSA8cW1hdHJpeC5oPgotCiBjbGFzcyBLQ2Fu
dmFzSXRlbVF1YXJ0eiA6IHB1YmxpYyBSZW5kZXJQYXRoIHsKIHB1YmxpYzoKLSAgICBLQ2FudmFz
SXRlbVF1YXJ0eihXZWJDb3JlOjpSZW5kZXJTdHlsZSosIFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1l
bnRJbXBsKik7Ci0gICAgdmlydHVhbCB+S0NhbnZhc0l0ZW1RdWFydHooKSB7IH0KKyAgICBLQ2Fu
dmFzSXRlbVF1YXJ0eihSZW5kZXJTdHlsZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKik7CiAgICAg
CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgYmJveEZvclBhdGgoYm9vbCBpbmNsdWRlU3Ryb2tlKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGl0c1BhdGgoY29uc3QgRmxvYXRQb2ludCYsIGJvb2wg
ZmlsbCAvKiBmYWxzZSBtZWFucyBzdHJva2UgKi8pIGNvbnN0OwpAQCAtNDMsNyArNDAsOCBAQAog
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKLSAgICB2aXJ0dWFsIGJvb2wg
bm9kZUF0UG9pbnQoTm9kZUluZm8mLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBXZWJD
b3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoTm9kZUlu
Zm8mLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uKTsKKwogcHJp
dmF0ZToKICAgICB2b2lkIGRyYXdNYXJrZXJzSWZOZWVkZWQoY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgS0NhbnZhc1BhdGgqKSBjb25zdDsKIH07CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHov
S1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1
YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZh
cy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHouaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDM5ICsyOCwzNSBAQAogI2RlZmluZSBLUmVuZGVyaW5n
RGV2aWNlUXVhcnR6X0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW1wb3J0IDxrY2FudmFzL2Rldmlj
ZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAKLXR5
cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7Ci10eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQgKkNH
Q29udGV4dFJlZjsKLQogI2lmIF9fT0JKQ19fCiBAY2xhc3MgTlNHcmFwaGljc0NvbnRleHQ7CiAj
ZWxzZQogY2xhc3MgTlNHcmFwaGljc0NvbnRleHQ7Ci0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNl
bmRpZgogCiBjbGFzcyBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0eiA6IHB1YmxpYyBLUmVu
ZGVyaW5nRGV2aWNlQ29udGV4dAogewogcHVibGljOgotICAgIEtSZW5kZXJpbmdEZXZpY2VDb250
ZXh0UXVhcnR6KENHQ29udGV4dFJlZiBjb250ZXh0KTsKKyAgICBLUmVuZGVyaW5nRGV2aWNlQ29u
dGV4dFF1YXJ0eihDR0NvbnRleHRSZWYpOwogICAgIHZpcnR1YWwgfktSZW5kZXJpbmdEZXZpY2VD
b250ZXh0UXVhcnR6KCk7CiAgICAgCi0gICAgdmlydHVhbCBLQ2FudmFzTWF0cml4IGNvbmNhdENU
TShjb25zdCBLQ2FudmFzTWF0cml4ICZ3b3JsZE1hdHJpeCk7Ci0gICAgdmlydHVhbCBLQ2FudmFz
TWF0cml4IGN0bSgpIGNvbnN0OworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGNvbmNhdENU
TShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBj
dG0oKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChjb25z
dCBJbnRSZWN0ICZyZWN0KTsKLSAgICB2aXJ0dWFsIEludFJlY3QgbWFwVG9WaXN1YWwoY29uc3Qg
SW50UmVjdCAmcmVjdCk7CisgICAgdmlydHVhbCBJbnRSZWN0IG1hcEZyb21WaXN1YWwoY29uc3Qg
SW50UmVjdCYpOworICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChjb25zdCBJbnRSZWN0
Jik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGF0aCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGRQYXRoKGNvbnN0IEtDYW52YXNQYXRoKik7CiAgICAgCiAgICAgQ0dDb250ZXh0UmVmIGNn
Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2dDb250ZXh0OyB9OwotICAgIE5TR3JhcGhpY3ND
b250ZXh0ICpuc0dyYXBoaWNzQ29udGV4dCgpOworICAgIE5TR3JhcGhpY3NDb250ZXh0KiBuc0dy
YXBoaWNzQ29udGV4dCgpOwogICAgIAogcHJpdmF0ZToKICAgICBDR0NvbnRleHRSZWYgbV9jZ0Nv
bnRleHQ7Ci0gICAgTlNHcmFwaGljc0NvbnRleHQgKm1fbnNHcmFwaGljc0NvbnRleHQ7CisgICAg
TlNHcmFwaGljc0NvbnRleHQqIG1fbnNHcmFwaGljc0NvbnRleHQ7CiB9OwogCiBjbGFzcyBLUmVu
ZGVyaW5nRGV2aWNlUXVhcnR6IDogcHVibGljIEtSZW5kZXJpbmdEZXZpY2UKQEAgLTcxLDMxICs2
NywzMiBAQAogCiAgICAgdmlydHVhbCBib29sIGlzQnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIAotICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKnBvcENv
bnRleHQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHVzaENvbnRleHQoS1JlbmRlcmluZ0RldmljZUNv
bnRleHQgKmNvbnRleHQpOworICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQqIHBv
cENvbnRleHQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaENvbnRleHQoS1JlbmRlcmluZ0Rldmlj
ZUNvbnRleHQqKTsKIAogICAgIC8vIGNvbnRleHQgbWFuYWdlbWVudC4KLSAgICBLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dFF1YXJ0eiAqcXVhcnR6Q29udGV4dCgpIGNvbnN0OworICAgIEtSZW5kZXJp
bmdEZXZpY2VDb250ZXh0UXVhcnR6KiBxdWFydHpDb250ZXh0KCkgY29uc3Q7CiAgICAgQ0dDb250
ZXh0UmVmIGN1cnJlbnRDR0NvbnRleHQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEtSZW5kZXJpbmdE
ZXZpY2VDb250ZXh0ICpjb250ZXh0Rm9ySW1hZ2UoS0NhbnZhc0ltYWdlICopIGNvbnN0OworICAg
IHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQqIGNvbnRleHRGb3JJbWFnZShLQ2FudmFz
SW1hZ2UqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQYXRoKGNvbnN0
IEtDYW52YXNQYXRoKiBwYXRoKTsKKyAgICB2aXJ0dWFsIFFTdHJpbmcgc3RyaW5nRm9yUGF0aChj
b25zdCBLQ2FudmFzUGF0aCopOwogCiAgICAgLy8gUmVzb3VyY2UgY3JlYXRpb24KLSAgICB2aXJ0
dWFsIEtDYW52YXNSZXNvdXJjZSAqY3JlYXRlUmVzb3VyY2UoY29uc3QgS0NSZXNvdXJjZVR5cGUg
JnR5cGUpIGNvbnN0OwotICAgIHZpcnR1YWwgS1JlbmRlcmluZ1BhaW50U2VydmVyICpjcmVhdGVQ
YWludFNlcnZlcihjb25zdCBLQ1BhaW50U2VydmVyVHlwZSAmdHlwZSkgY29uc3Q7Ci0gICAgdmly
dHVhbCBLQ2FudmFzRmlsdGVyRWZmZWN0ICpjcmVhdGVGaWx0ZXJFZmZlY3QoY29uc3QgS0NGaWx0
ZXJFZmZlY3RUeXBlICZ0eXBlKSBjb25zdDsKKyAgICB2aXJ0dWFsIEtDYW52YXNSZXNvdXJjZSog
Y3JlYXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUpIGNvbnN0OworICAgIHZpcnR1YWwgS1JlbmRl
cmluZ1BhaW50U2VydmVyKiBjcmVhdGVQYWludFNlcnZlcihLQ1BhaW50U2VydmVyVHlwZSkgY29u
c3Q7CisgICAgdmlydHVhbCBLQ2FudmFzRmlsdGVyRWZmZWN0KiBjcmVhdGVGaWx0ZXJFZmZlY3Qo
S0NGaWx0ZXJFZmZlY3RUeXBlKSBjb25zdDsKICAgICB2aXJ0dWFsIEtDYW52YXNQYXRoKiBjcmVh
dGVQYXRoKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gaXRlbSBjcmVhdGlvbgotICAgIHZpcnR1YWwg
UmVuZGVyUGF0aCAqY3JlYXRlSXRlbShSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJT
dHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlLCBLQ2FudmFzUGF0
aCogcGF0aCkgY29uc3Q7Ci0gICAgdmlydHVhbCBLQ2FudmFzQ29udGFpbmVyICpjcmVhdGVDb250
YWluZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlLCBLU1ZH
OjpTVkdTdHlsZWRFbGVtZW50SW1wbCAqbm9kZSkgY29uc3Q7CisgICAgdmlydHVhbCBSZW5kZXJQ
YXRoKiBjcmVhdGVJdGVtKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqLCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCosIEtDYW52YXNQYXRoKikgY29uc3Q7CisgICAgdmlydHVhbCBLQ2FudmFzQ29udGFp
bmVyKiBjcmVhdGVDb250YWluZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSosIFNWR1N0eWxl
ZEVsZW1lbnRJbXBsKikgY29uc3Q7CiAKICAgICAvLyBmaWx0ZXJzIChtb3N0bHkgZGVidWdnaW5n
KQogICAgIHN0YXRpYyBib29sIGZpbHRlcnNFbmFibGVkKCk7CiAgICAgc3RhdGljIHZvaWQgc2V0
RmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgYm9vbCBLUmVuZGVyaW5n
RGV2aWNlUXVhcnR6OjpoYXJkd2FyZVJlbmRlcmluZ0VuYWJsZWQoKTsKLSAgICBzdGF0aWMgdm9p
ZCBLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpzZXRIYXJkd2FyZVJlbmRlcmluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKTsKKyAgICBzdGF0aWMgYm9vbCBoYXJkd2FyZVJlbmRlcmluZ0VuYWJsZWQoKTsK
KyAgICBzdGF0aWMgdm9pZCBzZXRIYXJkd2FyZVJlbmRlcmluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KTsKIH07CiAKKyNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrY2FudmFzL2Rl
dmljZS9xdWFydHovS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnRRdWFydHoubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRp
ZW50UXVhcnR6Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9L
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudFF1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjgsMjUgKzI4LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKICNp
bXBvcnQgIktSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ei5oIgotI2ltcG9ydCAiUXVhcnR6U3Vw
cG9ydC5oIgogCi0jaW1wb3J0ICJyZW5kZXJfb2JqZWN0LmgiCi0KLSNpbXBvcnQgImtjYW52YXMv
S0NhbnZhcy5oIgorI2ltcG9ydCAiS0NhbnZhc0ltYWdlLmgiCiAjaW1wb3J0ICJLQ2FudmFzUmVu
ZGVyaW5nU3R5bGUuaCIKLSNpbXBvcnQgIktSZW5kZXJpbmdQYWludFNlcnZlci5oIgorI2ltcG9y
dCAiS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCIKKyNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXNR
dWFydHouaCIKKyNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKICNpbXBvcnQgIktS
ZW5kZXJpbmdGaWxsUGFpbnRlci5oIgorI2ltcG9ydCAiS1JlbmRlcmluZ1BhaW50U2VydmVyLmgi
CiAjaW1wb3J0ICJLUmVuZGVyaW5nU3Ryb2tlUGFpbnRlci5oIgotI2ltcG9ydCAiS0NhbnZhc01h
dHJpeC5oIgotI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgotCi0jaW1wb3J0ICJL
Q2FudmFzUmVzb3VyY2VzUXVhcnR6LmgiCi0jaW1wb3J0ICJLQ2FudmFzSW1hZ2UuaCIKLQotCisj
aW1wb3J0ICJRdWFydHpTdXBwb3J0LmgiCisjaW1wb3J0ICJrY2FudmFzL0tDYW52YXMuaCIKKyNp
bXBvcnQgInJlbmRlcl9vYmplY3QuaCIKICNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4K
IAotCiAvLyBNYXliZSB0aGlzIHNob3VsZCBiZSBpbiBhIGJhc2UgY2xhc3MgaW5zdGVhZC4uLgog
c3RhdGljIEtDYW52YXNJbWFnZSogc2V0dXBTaGFkaW5nV2l0aFN0eWxlKGNvbnN0IEtSZW5kZXJp
bmdQYWludFNlcnZlckdyYWRpZW50ICpzZXJ2ZXIsIENHU2hhZGluZ1JlZiBzaGFkaW5nLCBjb25z
dCBraHRtbDo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIEtDUGFpbnRUYXJnZXRUeXBlIHR5
cGUsIGJvb2wgcGFpbnRpbmdUZXh0KQogewpAQCAtNjcsOCArNjIsNyBAQAogICAgIH0KICAgICAK
ICAgICAvLyBhcHBseSB0aGUgZ3JhZGllbnQncyBvd24gdHJhbnNmb3JtCi0gICAgQ0dBZmZpbmVU
cmFuc2Zvcm0gZ3JhZGllbnRUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybShzZXJ2ZXItPmdy
YWRpZW50VHJhbnNmb3JtKCkucW1hdHJpeCgpKTsKLSAgICBDR0NvbnRleHRDb25jYXRDVE0oY29u
dGV4dCwgZ3JhZGllbnRUcmFuc2Zvcm0pOworICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0
LCBzZXJ2ZXItPmdyYWRpZW50VHJhbnNmb3JtKCkpOwogICAgIAogICAgIENHQ29udGV4dFNldEFs
cGhhKGNvbnRleHQsIHJlbmRlclN0eWxlLT5vcGFjaXR5KCkpOwogICAgIApJbmRleDoga2NhbnZh
cy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2Nh
bnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0JKHJldmlzaW9uIDEyNDYz
KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJRdWFydHoubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI3LDI1ICsyNywyNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNW
R19TVVBQT1JUCiAjaW1wb3J0ICJLQ2FudmFzRmlsdGVyUXVhcnR6LmgiCisKKyNpbXBvcnQgIklu
dFJlY3QuaCIKICNpbXBvcnQgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgotI2ltcG9ydCAiS0Nh
bnZhc01hdHJpeC5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgorI2ltcG9y
dCAiS1dRRXhjZXB0aW9ucy5oIgorI2ltcG9ydCAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW1wb3J0
ICJRdWFydHpTdXBwb3J0LmgiCi0jaW1wb3J0ICJLV1FFeGNlcHRpb25zLmgiCisjaW1wb3J0ICJX
S0FyaXRobWV0aWNGaWx0ZXIuaCIKICNpbXBvcnQgIldLRGlmZnVzZUxpZ2h0aW5nRmlsdGVyLmgi
CisjaW1wb3J0ICJXS0Rpc3RhbnRMaWdodEZpbHRlci5oIgorI2ltcG9ydCAiV0tOb3JtYWxNYXBG
aWx0ZXIuaCIKKyNpbXBvcnQgIldLUG9pbnRMaWdodEZpbHRlci5oIgogI2ltcG9ydCAiV0tTcGVj
dWxhckxpZ2h0aW5nRmlsdGVyLmgiCiAjaW1wb3J0ICJXS1Nwb3RMaWdodEZpbHRlci5oIgotI2lt
cG9ydCAiV0tQb2ludExpZ2h0RmlsdGVyLmgiCi0jaW1wb3J0ICJXS0Rpc3RhbnRMaWdodEZpbHRl
ci5oIgotI2ltcG9ydCAiV0tOb3JtYWxNYXBGaWx0ZXIuaCIKLSNpbXBvcnQgIldLQXJpdGhtZXRp
Y0ZpbHRlci5oIgotCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQg
PGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAotI2ltcG9ydCAiSW50UmVjdC5oIgordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLSNpbXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KLQogc3Rh
dGljIFFTdHJpbmcgS0NQcmV2aW91c0ZpbHRlck91dHB1dE5hbWUgPSAiX19wcmV2aW91c091dHB1
dF9fIjsKIAogc3RhdGljIGlubGluZSBDSUNvbG9yICpjaUNvbG9yKGNvbnN0IENvbG9yICZjKQpA
QCAtNzgsNyArNzgsNyBAQAogCiB2b2lkIEtDYW52YXNGaWx0ZXJRdWFydHo6OnByZXBhcmVGaWx0
ZXIoY29uc3QgRmxvYXRSZWN0ICZiYm94KQogewotICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwg
IUtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkpCisgICAgaWYgKGJib3gu
aXNFbXB0eSgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9lZmZlY3RzLmlzRW1wdHkoKSkKQEAgLTk0LDE3
ICs5NCwxNyBAQAogICAgICAgICBjb250ZXh0T3B0aW9ucyA9IFtOU0RpY3Rpb25hcnkgZGljdGlv
bmFyeVdpdGhPYmplY3RzQW5kS2V5czpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwga0NJ
Q29udGV4dFVzZVNvZnR3YXJlUmVuZGVyZXIsIG5pbF07CiAgICAgCiAgICAgbV9maWx0ZXJDSUNv
bnRleHQgPSBbW0NJQ29udGV4dCBjb250ZXh0V2l0aENHQ29udGV4dDpjZ0NvbnRleHQgb3B0aW9u
czpjb250ZXh0T3B0aW9uc10gcmV0YWluXTsKLSAgICBtX2ZpbHRlckNHTGF5ZXIgPSBbbV9maWx0
ZXJDSUNvbnRleHQgY3JlYXRlQ0dMYXllcldpdGhTaXplOkNHUmVjdChiYm94KS5zaXplIGluZm86
TlVMTF07CisgICAgbV9maWx0ZXJDR0xheWVyID0gW21fZmlsdGVyQ0lDb250ZXh0IGNyZWF0ZUNH
TGF5ZXJXaXRoU2l6ZTpiYm94LnNpemUoKSBpbmZvOk5VTExdOwogICAgIAogICAgIEtSZW5kZXJp
bmdEZXZpY2VDb250ZXh0ICpmaWx0ZXJDb250ZXh0ID0gbmV3IEtSZW5kZXJpbmdEZXZpY2VDb250
ZXh0UXVhcnR6KENHTGF5ZXJHZXRDb250ZXh0KG1fZmlsdGVyQ0dMYXllcikpOwogICAgIFFQYWlu
dGVyOjpyZW5kZXJpbmdEZXZpY2UoKS0+cHVzaENvbnRleHQoZmlsdGVyQ29udGV4dCk7CiAgICAg
Ci0gICAgZmlsdGVyQ29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUoLTEuMGYg
KiBiYm94LngoKSwgLTEuMGYgKiBiYm94LnkoKSkpOworICAgIGZpbHRlckNvbnRleHQtPmNvbmNh
dENUTSh0cmFuc2xhdGlvbk1hdHJpeCgtYmJveC55KCksIC1iYm94LngoKSkpOwogfQogCiB2b2lk
IEtDYW52YXNGaWx0ZXJRdWFydHo6OmFwcGx5RmlsdGVyKGNvbnN0IEZsb2F0UmVjdCAmYmJveCkK
IHsKLSAgICBpZiAoIWJib3guaXNWYWxpZCgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6Ojpm
aWx0ZXJzRW5hYmxlZCgpIHx8IG1fZWZmZWN0cy5pc0VtcHR5KCkpCisgICAgaWYgKGJib3guaXNF
bXB0eSgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxlZCgpIHx8IG1f
ZWZmZWN0cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIHJlc3RvcmUgdGhl
IHByZXZpb3VzIGNvbnRleHQsIGRlbGV0ZSB0aGUgZmlsdGVyIGNvbnRleHQuCkBAIC01MzEsNyAr
NTMxLDcgQEAKICAgICBbZmlsdGVyIHNldFZhbHVlOmlucHV0Q29sb3IgZm9yS2V5OkAiaW5wdXRD
b2xvciJdOwogICAgIAogICAgIENHUmVjdCBjcm9wUmVjdCA9IENHUmVjdE1ha2UoLTEwMCwtMTAw
LDEwMDAsMTAwMCk7IC8vIEhBQ0sKLSAgICBpZiAoc3ViUmVnaW9uKCkuaXNWYWxpZCgpKQorICAg
IGlmICghc3ViUmVnaW9uKCkuaXNFbXB0eSgpKQogICAgICAgICBjcm9wUmVjdCA9IENHUmVjdChz
dWJSZWdpb24oKSk7CiAgICAgRkVfUVVBUlRaX0NST1BfVE9fUkVDVChjcm9wUmVjdCk7CiAgICAg
CkBAIC01NTAsMTIgKzU1MCwxMiBAQAogICAgIFtmaWx0ZXIgc2V0RGVmYXVsdHNdOwogICAgIFtm
aWx0ZXIgc2V0VmFsdWU6Y2lJbWFnZSBmb3JLZXk6QCJpbnB1dEltYWdlIl07CiAgICAgCi0gICAg
Q0dBZmZpbmVUcmFuc2Zvcm0gY2dUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSww
LDAsLTEsMCxpbWFnZSgpLnJlY3QoKS5ib3R0b20oKSk7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
Y2dUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgMCwgMCwgLTEsIDAsIGltYWdl
KCkucmVjdCgpLmJvdHRvbSgpKTsKICAgICBOU0FmZmluZVRyYW5zZm9ybSAqbnNUcmFuc2Zvcm0g
PSBbTlNBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtXTsKICAgICBbbnNUcmFuc2Zvcm0gc2V0VHJh
bnNmb3JtU3RydWN0OiooKE5TQWZmaW5lVHJhbnNmb3JtU3RydWN0ICopJmNnVHJhbnNmb3JtKV07
CiAgICAgW2ZpbHRlciBzZXRWYWx1ZTpuc1RyYW5zZm9ybSBmb3JLZXk6QCJpbnB1dFRyYW5zZm9y
bSJdOwogICAgIAotICAgIGlmIChzdWJSZWdpb24oKS5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIXN1
YlJlZ2lvbigpLmlzRW1wdHkoKSkgewogICAgICAgICBDSUZpbHRlciAqc2NhbGVJbWFnZSA9IFtD
SUZpbHRlciBmaWx0ZXJXaXRoTmFtZTpAIkNJQWZmaW5lVHJhbnNmb3JtIl07CiAgICAgICAgIFtz
Y2FsZUltYWdlIHNldERlZmF1bHRzXTsKICAgICAgICAgW3NjYWxlSW1hZ2Ugc2V0VmFsdWU6W2Zp
bHRlciB2YWx1ZUZvcktleTpAIm91dHB1dEltYWdlIl0gZm9yS2V5OkAiaW5wdXRJbWFnZSJdOwpJ
bmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNvdXJjZXNRdWFydHouaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5o
CShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3Vy
Y2VzUXVhcnR6LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxMyAr
MjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbXBvcnQgIkFmZmluZVRyYW5zZm9y
bS5oIgorI2ltcG9ydCAiRmxvYXRSZWN0LmgiCiAjaW1wb3J0ICJLQ2FudmFzSW1hZ2UuaCIKLSNp
bXBvcnQgIktDYW52YXNSZXNvdXJjZXMuaCIKICNpbXBvcnQgIktDYW52YXNDb250YWluZXIuaCIK
LSNpbXBvcnQgPHFtYXRyaXguaD4KIAotdHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0NvbnRl
eHRSZWY7Ci10eXBlZGVmIHN0cnVjdCBDR0xheWVyICpDR0xheWVyUmVmOwordHlwZWRlZiBzdHJ1
Y3QgQ0dMYXllciogQ0dMYXllclJlZjsKIAogY2xhc3MgS0NhbnZhc0NvbnRhaW5lclF1YXJ0eiA6
IHB1YmxpYyBLQ2FudmFzQ29udGFpbmVyIHsKIHB1YmxpYzoKQEAgLTQ2LDcgKzQ1LDcgQEAKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvICZwYWludEluZm8sIGludCBwYXJlbnRYLCBp
bnQgcGFyZW50WSk7CiAgICAgCiAgICAgdmlydHVhbCBJbnRSZWN0IGdldEFic29sdXRlUmVwYWlu
dFJlY3QoKTsKLSAgICB2aXJ0dWFsIFFNYXRyaXggYWJzb2x1dGVUcmFuc2Zvcm0oKSBjb25zdDsK
KyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0Owog
CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHZpZXdwb3J0KCkgY29uc3Q7CkBAIC01OCw3ICs1Nyw3IEBACiAgICAg
dmlydHVhbCBLQ0FsaWduIGFsaWduKCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFFNYXRy
aXggdmlld3BvcnRUcmFuc2Zvcm0oKSBjb25zdDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdmlld3Bv
cnRUcmFuc2Zvcm0oKSBjb25zdDsKIAogICAgIEZsb2F0UmVjdCBtX3ZpZXdwb3J0OwogICAgIEZs
b2F0UmVjdCBtX3ZpZXdCb3g7CkBAIC04MCw3ICs3OSw3IEBACiAgICAgdm9pZCBpbml0KEludFNp
emUgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CiAgICAgCiAgICAgQ0dMYXllclJlZiBjZ0xheWVy
KCk7Ci0gICAgdm9pZCBzZXRDR0xheWVyKENHTGF5ZXJSZWYgbGF5ZXIpOworICAgIHZvaWQgc2V0
Q0dMYXllcihDR0xheWVyUmVmKTsKIAogICAgIEludFNpemUgc2l6ZSgpIHsgcmV0dXJuIG1fc2l6
ZTsgfQogICAgIApJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5jcHAJKHJldmlzaW9u
IDEyNDYzKQorKysga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIsNiArMiw3IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNiAgICAg
ICBBbGV4YW5kZXIgS2VsbGV0dCA8bHlwYW5vdkBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0CiAKQEAgLTI1LDE0ICsyNiw2IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNpbmNs
dWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAKLUtSZW5kZXJpbmdEZXZpY2U6OktSZW5kZXJpbmdE
ZXZpY2UoKQotewotfQotCi1LUmVuZGVyaW5nRGV2aWNlOjp+S1JlbmRlcmluZ0RldmljZSgpCi17
Ci19Ci0KIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpLUmVuZGVyaW5nRGV2aWNlOjpjdXJyZW50
Q29udGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fY29udGV4dFN0YWNrLmlzRW1wdHkoKSkKQEAg
LTU0LDQgKzQ3LDMgQEAKIAogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JU
Ci0KSW5kZXg6IGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRl
cm4uY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWlu
dFNlcnZlclBhdHRlcm4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMiArMjIsMTMgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiS0NhbnZhc01h
dHJpeC5oIgotI2luY2x1ZGUgIktDYW52YXNJbWFnZS5oIgogI2luY2x1ZGUgIktSZW5kZXJpbmdQ
YWludFNlcnZlclBhdHRlcm4uaCIKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIktDYW52YXNJbWFnZS5oIgorI2luY2x1ZGUg
IktDYW52YXNUcmVlRGVidWcuaCIKICNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgotI2luY2x1ZGUg
IktDYW52YXNUcmVlRGVidWcuaCIKIAogY2xhc3MgS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVy
bjo6UHJpdmF0ZQogewpAQCAtNDEsMTMgKzQyLDEzIEBACiAgICAgflByaXZhdGUoKSB7IGRlbGV0
ZSB0aWxlOyB9CiAKICAgICBLQ2FudmFzSW1hZ2UgKnRpbGU7Ci0gICAgS0NhbnZhc01hdHJpeCBw
YXR0ZXJuVHJhbnNmb3JtOworICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtOwog
ICAgIEZsb2F0UmVjdCBiYm94OwogICAgIGJvb2wgdXNlQm91bmRpbmdCb3hNb2RlOwogICAgIEtD
YW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcjsKIH07CiAKLUtSZW5kZXJpbmdQYWludFNl
cnZlclBhdHRlcm46OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4oKSA6IEtSZW5kZXJpbmdQ
YWludFNlcnZlcigpLCBkKG5ldyBQcml2YXRlKCkpCitLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0
ZXJuOjpLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuKCkgOiBkKG5ldyBQcml2YXRlKQogewog
fQogCkBAIC04NiwxMiArODcsMTIgQEAKICAgICBkLT50aWxlID0gdGlsZTsKIH0KIAotS0NhbnZh
c01hdHJpeCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpwYXR0ZXJuVHJhbnNmb3JtKCkg
Y29uc3QKK0FmZmluZVRyYW5zZm9ybSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpwYXR0
ZXJuVHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+cGF0dGVyblRyYW5zZm9ybTsK
IH0KIAotdm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpzZXRQYXR0ZXJuVHJhbnNm
b3JtKGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdCkKK3ZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVy
UGF0dGVybjo6c2V0UGF0dGVyblRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdCkK
IHsKICAgICBkLT5wYXR0ZXJuVHJhbnNmb3JtID0gbWF0OwogfQpAQCAtMTE3LDggKzExOCw4IEBA
CiAgICAgICAgIDw8ICIgW2Jib3g9IiA8PCBiYm94KCkgPDwgIl0iOwogICAgIGlmICghYm91bmRp
bmdCb3hNb2RlKCkpCiAgICAgICAgIHRzIDw8ICIgW2JvdW5kaW5nIGJveCBtb2RlPSIgPDwgYm91
bmRpbmdCb3hNb2RlKCkgPDwgIl0iOyAgICAgICAgCi0gICAgaWYgKCFwYXR0ZXJuVHJhbnNmb3Jt
KCkucW1hdHJpeCgpLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgdHMgPDwgIiBbcGF0dGVybiB0cmFu
c2Zvcm09IiA8PCBwYXR0ZXJuVHJhbnNmb3JtKCkucW1hdHJpeCgpIDw8ICJdIjsKKyAgICBpZiAo
IXBhdHRlcm5UcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCisgICAgICAgIHRzIDw8ICIgW3BhdHRl
cm4gdHJhbnNmb3JtPSIgPDwgcGF0dGVyblRyYW5zZm9ybSgpIDw8ICJdIjsKICAgICByZXR1cm4g
dHM7CiB9CiAKSW5kZXg6IGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmgJKHJldmlzaW9uIDEyNDYz
KQorKysga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBa
aW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
IApAQCAtMjQsNDEgKzI1LDM4IEBACiAjZGVmaW5lIEtSZW5kZXJpbmdEZXZpY2VfSAogI2lmIFNW
R19TVVBQT1JUCiAKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgPHFvYmplY3QuaD4KKyNp
bmNsdWRlICJLQ2FudmFzRmlsdGVycy5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZl
ci5oIgogI2luY2x1ZGUgPGt4bWxjb3JlL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHFvYmplY3QuaD4K
IAotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KLSNpbmNsdWRlIDxrY2FudmFz
L2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaD4KK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OyAvLyBtb3ZlIHRoaXMgaGVhZGVyIGludG8gV2ViQ29yZSBuYW1lc3BhY2UgYW5kIHJlbW92ZSB0
aGlzCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9
CisKIC8vIGFrYSB3aGVyZSB0byBkcmF3Ci1jbGFzcyBLQ2FudmFzTWF0cml4OwogY2xhc3MgS1Jl
bmRlcmluZ0RldmljZUNvbnRleHQKIHsKIHB1YmxpYzoKLSAgICBLUmVuZGVyaW5nRGV2aWNlQ29u
dGV4dCgpIHsgfQogICAgIHZpcnR1YWwgfktSZW5kZXJpbmdEZXZpY2VDb250ZXh0KCkgeyB9CiAK
LSAgICB2aXJ0dWFsIEtDYW52YXNNYXRyaXggY29uY2F0Q1RNKGNvbnN0IEtDYW52YXNNYXRyaXgg
JndvcmxkTWF0cml4KSA9IDA7Ci0gICAgdmlydHVhbCBLQ2FudmFzTWF0cml4IGN0bSgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBjb25jYXRDVE0oY29uc3QgQWZmaW5l
VHJhbnNmb3JtJikgPSAwOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGN0bSgpIGNvbnN0
ID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChjb25zdCBJbnRS
ZWN0ICZyZWN0KSA9IDA7Ci0gICAgdmlydHVhbCBJbnRSZWN0IG1hcFRvVmlzdWFsKGNvbnN0IElu
dFJlY3QgJnJlY3QpID0gMDsKKyAgICB2aXJ0dWFsIEludFJlY3QgbWFwRnJvbVZpc3VhbChjb25z
dCBJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCBtYXBUb1Zpc3VhbChjb25zdCBJ
bnRSZWN0JikgPSAwOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBhdGgoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGFkZFBhdGgoY29uc3QgS0NhbnZhc1BhdGgqKSA9IDA7CiB9OwogCi0v
LyBNdXN0IGJlIGEgUU9iamVjdCB0byBiZSBhYmxlIHRvIGJlIGxvYWRlZCBieSBLTGliTG9hZGVy
Li4uCi1jbGFzcyBLQ2FudmFzSW1hZ2U7Ci1jbGFzcyBLQ2FudmFzRmlsdGVyRWZmZWN0OworLy8g
TXVzdCBiZSBhIFFPYmplY3QgdG8gYmUgYWJsZSB0byBiZSBsb2FkZWQgYnkgS0xpYkxvYWRlci4K
IGNsYXNzIEtSZW5kZXJpbmdEZXZpY2UgOiBwdWJsaWMgUU9iamVjdAogewogUV9PQkpFQ1QKIHB1
YmxpYzoKLSAgICBLUmVuZGVyaW5nRGV2aWNlKCk7Ci0gICAgdmlydHVhbCB+S1JlbmRlcmluZ0Rl
dmljZSgpOwotCiAgICAgLy8gVGhlIHJlbmRlcmluZyBkZXZpY2Ugd2lsbCBiZSBkaXJlY3RseSBp
bml0ZWQKICAgICAvLyBhZnRlciB0aGUgY2FudmFzIHRhcmdldCwgaXQgbWF5IGJlIG92ZXJ3cml0
dGVuLgogICAgIHZpcnR1YWwgYm9vbCBpc0J1ZmZlcmVkKCkgY29uc3QgPSAwOwpAQCAtNjYsMjAg
KzY0LDIwIEBACiAgICAgLy8gR2xvYmFsIHJlbmRlcmluZyBkZXZpY2UgY29udGV4dAogICAgIEtS
ZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpjdXJyZW50Q29udGV4dCgpIGNvbnN0OwogCi0gICAgdmly
dHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqcG9wQ29udGV4dCgpOwotICAgIHZpcnR1YWwg
dm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqY29udGV4dCk7CisgICAg
dmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCogcG9wQ29udGV4dCgpOworICAgIHZpcnR1
YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCopOwogICAgIAotICAg
IHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKmNvbnRleHRGb3JJbWFnZShLQ2FudmFz
SW1hZ2UgKmltYWdlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBLUmVuZGVyaW5nRGV2aWNlQ29u
dGV4dCAqY29udGV4dEZvckltYWdlKEtDYW52YXNJbWFnZSopIGNvbnN0ID0gMDsKICAgICAKLSAg
ICB2aXJ0dWFsIFFTdHJpbmcgc3RyaW5nRm9yUGF0aChjb25zdCBLQ2FudmFzUGF0aCogcGF0aCkg
PSAwOworICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQYXRoKGNvbnN0IEtDYW52YXNQYXRo
KikgPSAwOwogCiAgICAgLy8gQ3JlYXRpb24gdG9vbHMKLSAgICB2aXJ0dWFsIEtDYW52YXNSZXNv
dXJjZSAqY3JlYXRlUmVzb3VyY2UoY29uc3QgS0NSZXNvdXJjZVR5cGUgJnR5cGUpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QgKmNyZWF0ZUZpbHRlckVmZmVjdChj
b25zdCBLQ0ZpbHRlckVmZmVjdFR5cGUgJnR5cGUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEtS
ZW5kZXJpbmdQYWludFNlcnZlciAqY3JlYXRlUGFpbnRTZXJ2ZXIoY29uc3QgS0NQYWludFNlcnZl
clR5cGUgJnR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtDYW52YXNSZXNvdXJjZSogY3Jl
YXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtDYW52
YXNGaWx0ZXJFZmZlY3QqIGNyZWF0ZUZpbHRlckVmZmVjdChLQ0ZpbHRlckVmZmVjdFR5cGUpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtSZW5kZXJpbmdQYWludFNlcnZlciogY3JlYXRlUGFpbnRT
ZXJ2ZXIoS0NQYWludFNlcnZlclR5cGUpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUmVuZGVy
UGF0aCAqY3JlYXRlSXRlbShSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHlsZSAq
c3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlLCBLQ2FudmFzUGF0aCogcGF0
aCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgS0NhbnZhc0NvbnRhaW5lciAqY3JlYXRlQ29udGFp
bmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0eWxlICpzdHlsZSwgS1NWRzo6
U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlbmRl
clBhdGgqIGNyZWF0ZUl0ZW0oUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSosIFNWR1N0eWxlZEVs
ZW1lbnRJbXBsKiwgS0NhbnZhc1BhdGgqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBLQ2FudmFz
Q29udGFpbmVyKiBjcmVhdGVDb250YWluZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBSZW5kZXJTdHls
ZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgS0NhbnZh
c1BhdGgqIGNyZWF0ZVBhdGgoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6CkluZGV4OiBrY2FudmFz
L2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2Nh
bnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5oCShyZXZpc2lvbiAxMjQ2
MykKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAg
ICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0CiAKQEAgLTI0LDEzICsyNSwxNyBAQAogI2RlZmluZSBLUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJQYXR0ZXJuX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSA8a2NhbnZhcy9k
ZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
UmVzb3VyY2VMaXN0ZW5lci5oPgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlci5oIgog
Ci0jaW5jbHVkZSAiSW50UG9pbnQuaCIKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOyAvLyBwdXQg
dGhpcyBoZWFkZXIgaW50byBXZWJDb3JlIG5hbWVzcGFjZSBhbmQgcmVtb3ZlIHRoaXMKIAogY2xh
c3MgS0NhbnZhc0ltYWdlOworY2xhc3MgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXI7CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cit9CisKIGNsYXNzIEtS
ZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4gOiBwdWJsaWMgS1JlbmRlcmluZ1BhaW50U2VydmVy
CiB7CiBwdWJsaWM6CkBAIC00MCw3ICs0NSw3IEBACiAgICAgdmlydHVhbCBLQ1BhaW50U2VydmVy
VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICAvLyBQYXR0ZXJuIGJib3gKLSAgICB2b2lkIHNldEJi
b3goY29uc3QgRmxvYXRSZWN0ICZyZWN0KTsKKyAgICB2b2lkIHNldEJib3goY29uc3QgRmxvYXRS
ZWN0Jik7CiAgICAgRmxvYXRSZWN0IGJib3goKSBjb25zdDsKICAgICAKICAgICAvLyBQYXR0ZXJu
IHgseSBwaGFzZSBwb2ludHMgYXJlIHJlbGF0aXZlIHdoZW4gaW4gYm91bmRpbmdCb3hNb2RlCkBA
IC00OSwxOSArNTQsMTkgQEAKICAgICB2b2lkIHNldEJvdW5kaW5nQm94TW9kZShib29sIG1vZGUg
PSB0cnVlKTsKICAgICAKICAgICAvLyAnUGF0dGVybicgaW50ZXJmYWNlCi0gICAgS0NhbnZhc0lt
YWdlICp0aWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRUaWxlKEtDYW52YXNJbWFnZSAqdGlsZSk7
CisgICAgS0NhbnZhc0ltYWdlKiB0aWxlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUaWxlKEtDYW52
YXNJbWFnZSopOwogCi0gICAgS0NhbnZhc01hdHJpeCBwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdCk7
CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdDsKKyAgICB2b2lk
IHNldFBhdHRlcm5UcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CiAKLSAgICBLQ2Fu
dmFzUmVzb3VyY2VMaXN0ZW5lciAqbGlzdGVuZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldExpc3Rl
bmVyKEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcik7Ci0gICAgUVRleHRTdHJlYW0g
JmV4dGVybmFsUmVwcmVzZW50YXRpb24oUVRleHRTdHJlYW0gJikgY29uc3Q7CisgICAgS0NhbnZh
c1Jlc291cmNlTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRMaXN0ZW5l
cihLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciopOworICAgIFFUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFFUZXh0U3RyZWFtJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgY2xhc3Mg
UHJpdmF0ZTsKLSAgICBQcml2YXRlICpkOworICAgIFByaXZhdGUqIGQ7CiB9OwogCiAjZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKSW5kZXg6IGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZl
ckdyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJHcmFkaWVudC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwx
MyArMjIsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSAiSW50UG9pbnQuaCIKLQogI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRp
ZW50LmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgogCi0jaW5jbHVkZSA8cXRleHRzdHJl
YW0uaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50
LmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgi
CisjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KIAogLy9LQ0dyYWRpZW50U3ByZWFkTWV0aG9kCiBR
VGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIEtDR3JhZGllbnRTcHJlYWRN
ZXRob2QgbSkKQEAgLTk5LDcgKzk5LDcgQEAKICAgICBLQ1NvcnRlZEdyYWRpZW50U3RvcExpc3Qg
c3RvcHM7CiAgICAgS0NHcmFkaWVudFNwcmVhZE1ldGhvZCBzcHJlYWRNZXRob2Q7CiAgICAgYm9v
bCBib3VuZGluZ0JveE1vZGU7Ci0gICAgS0NhbnZhc01hdHJpeCBncmFkaWVudFRyYW5zZm9ybTsK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gZ3JhZGllbnRUcmFuc2Zvcm07CiAgICAgS0NhbnZhc1Jlc291
cmNlTGlzdGVuZXIgKmxpc3RlbmVyOwogfTsKIApAQCAtMTQyLDEyICsxNDIsMTIgQEAKICAgICBk
LT5ib3VuZGluZ0JveE1vZGUgPSBtb2RlOwogfQogCi1LQ2FudmFzTWF0cml4IEtSZW5kZXJpbmdQ
YWludFNlcnZlckdyYWRpZW50OjpncmFkaWVudFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFu
c2Zvcm0gS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50VHJhbnNmb3JtKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gZC0+Z3JhZGllbnRUcmFuc2Zvcm07CiB9CiAKLXZvaWQgS1Jl
bmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OnNldEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEtD
YW52YXNNYXRyaXggJm1hdCkKK3ZvaWQgS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OnNl
dEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0KQogewogICAgIGQt
PmdyYWRpZW50VHJhbnNmb3JtID0gbWF0OwogfQpAQCAtMTYwLDggKzE2MCw4IEBACiAgICAgICAg
IHRzIDw8ICJbbWV0aG9kPSIgPDwgc3ByZWFkTWV0aG9kKCkgPDwgIl0iOyAgICAgICAgCiAgICAg
aWYgKCFib3VuZGluZ0JveE1vZGUoKSkKICAgICAgICAgdHMgPDwgIiBbYm91bmRpbmcgYm94IG1v
ZGU9IiA8PCBib3VuZGluZ0JveE1vZGUoKSA8PCAiXSI7Ci0gICAgaWYgKCFncmFkaWVudFRyYW5z
Zm9ybSgpLnFtYXRyaXgoKS5pc0lkZW50aXR5KCkpCi0gICAgICAgIHRzIDw8ICIgW3RyYW5zZm9y
bT0iIDw8IGdyYWRpZW50VHJhbnNmb3JtKCkucW1hdHJpeCgpIDw8ICJdIjsKKyAgICBpZiAoIWdy
YWRpZW50VHJhbnNmb3JtKCkuaXNJZGVudGl0eSgpKQorICAgICAgICB0cyA8PCAiIFt0cmFuc2Zv
cm09IiA8PCBncmFkaWVudFRyYW5zZm9ybSgpIDw8ICJdIjsKICAgICAKICAgICByZXR1cm4gdHM7
CiB9CkBAIC0xNzAsOSArMTcwLDYgQEAKIGNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZlckxpbmVh
ckdyYWRpZW50OjpQcml2YXRlCiB7CiBwdWJsaWM6Ci0gICAgUHJpdmF0ZSgpIHsgfQotICAgIH5Q
cml2YXRlKCkgeyB9Ci0KICAgICBGbG9hdFBvaW50IHN0YXJ0LCBlbmQ7CiB9OwogCkluZGV4OiBr
Y2FudmFzL0tDYW52YXNNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNNYXRy
aXguaAkocmV2aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL0tDYW52YXNNYXRyaXguaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLQ2FudmFzTWF0cml4X0gKLSNkZWZpbmUg
S0NhbnZhc01hdHJpeF9ICi0jaWYgU1ZHX1NVUFBPUlQKLQotI2luY2x1ZGUgPHFtYXRyaXguaD4K
LQotdHlwZWRlZiBlbnVtCi17Ci0gICAgT1BTX1BSRU1VTCA9IDEsIC8vIERlZmF1bHQgbW9kZSAo
c3ZnIGNvbXBhdGlibGUpCi0gICAgT1BTX1BPU1RNVUwgPSAyCi19IEtDTWF0cml4T3BlcmF0aW9u
TW9kZTsKLQotY2xhc3MgS0NhbnZhc1BhdGg7Ci1jbGFzcyBLQ2FudmFzTWF0cml4Ci17Ci1wdWJs
aWM6Ci0gICAgS0NhbnZhc01hdHJpeCgpOwotICAgIEtDYW52YXNNYXRyaXgoY29uc3QgUU1hdHJp
eCAmcW1hdHJpeCk7Ci0gICAgS0NhbnZhc01hdHJpeChjb25zdCBLQ2FudmFzTWF0cml4ICZtYXRy
aXgpOwotICAgIEtDYW52YXNNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91
YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUgZik7Ci0gICAgfktDYW52YXNNYXRyaXgoKTsKLQotICAg
IC8vIE9wZXJhdG9ycwotICAgIEtDYW52YXNNYXRyaXggJm9wZXJhdG9yPShjb25zdCBRTWF0cml4
ICZvdGhlcik7Ci0gICAgS0NhbnZhc01hdHJpeCAmb3BlcmF0b3I9KGNvbnN0IEtDYW52YXNNYXRy
aXggJm90aGVyKTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRTWF0cml4ICZvdGhlcikg
Y29uc3Q7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFFNYXRyaXggJm90aGVyKSBjb25zdDsK
LQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcikgY29uc3Q7
Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVyKSBjb25zdDsK
LQotICAgIHZvaWQgc2V0T3BlcmF0aW9uTW9kZShLQ01hdHJpeE9wZXJhdGlvbk1vZGUgbW9kZSk7
Ci0KLSAgICBkb3VibGUgYSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QShkb3VibGUgYSk7Ci0KLSAg
ICBkb3VibGUgYigpIGNvbnN0OwotICAgIHZvaWQgc2V0Qihkb3VibGUgYik7Ci0KLSAgICBkb3Vi
bGUgYygpIGNvbnN0OwotICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7Ci0KLSAgICBkb3VibGUgZCgp
IGNvbnN0OwotICAgIHZvaWQgc2V0RChkb3VibGUgZCk7Ci0KLSAgICBkb3VibGUgZSgpIGNvbnN0
OwotICAgIHZvaWQgc2V0RShkb3VibGUgZSk7Ci0KLSAgICBkb3VibGUgZigpIGNvbnN0OwotICAg
IHZvaWQgc2V0Rihkb3VibGUgZik7Ci0KLSAgICAvLyBPUFNfUFJFTVVMIDogUHJlLW11bHRpcGxp
ZWQgb3BlcmF0aW9ucyAobmVlZGVkIGZvciBzdmctbGlrZSBtYXRyaXggb3BlcmF0aW9ucykKLSAg
ICAvLyBPUFNfUE9TVE1VTDogUG9zdC1tdWx0aXBsaWVkIG9wZXJhdGlvbnMKLSAgICBLQ2FudmFz
TWF0cml4ICZ0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KTsKLSAgICBLQ2FudmFzTWF0cml4
ICZtdWx0aXBseShjb25zdCBLQ2FudmFzTWF0cml4ICZvdGhlcik7Ci0gICAgS0NhbnZhc01hdHJp
eCAmc2NhbGUoZG91YmxlIHNjYWxlRmFjdG9yWCwgZG91YmxlIHNjYWxlRmFjdG9yWSk7Ci0KLSAg
ICBLQ2FudmFzTWF0cml4ICZyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICBLQ2FudmFzTWF0cml4
ICZyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0KLSAgICBLQ2FudmFzTWF0
cml4ICZmbGlwWCgpOwotICAgIEtDYW52YXNNYXRyaXggJmZsaXBZKCk7Ci0KLSAgICBLQ2FudmFz
TWF0cml4ICZza2V3WChkb3VibGUgYW5nbGUpOwotICAgIEtDYW52YXNNYXRyaXggJnNrZXdZKGRv
dWJsZSBhbmdsZSk7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICAvLyBEZXRlcm1pbmUgdGhl
IHNjYWxpbmcgY29tcG9uZW50IG9mIHRoZSBtYXRyaXggYW5kIGZhY3RvciBpdCBvdXQuCi0gICAg
Ly8gQWZ0ZXIgdGhpcyBvcGVyYXRpb24sIHRoZSBtYXRyaXggaGFzIHggYW5kIHkgc2NhbGUgb2Yg
b25lICgnMScpLgotICAgIHZvaWQgcmVtb3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAq
eVNjYWxlKTsKLQotICAgIFFNYXRyaXggcW1hdHJpeCgpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IFFNYXRyaXggbV9tYXRyaXg7Ci0gICAgS0NNYXRyaXhPcGVyYXRpb25Nb2RlIG1fbW9kZTsKLX07
Ci0KLSNlbmRpZiAvLyBTVkdfU1VQUE9SVAotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IGtjYW52YXMvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZh
cy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrY2FudmFzL1Jl
bmRlckZvcmVpZ25PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyMiArMjQsMjEgQEAK
ICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlJlbmRlckZvcmVpZ25PYmplY3QuaCIKIAotI2lu
Y2x1ZGUgIktDYW52YXNNYXRyaXguaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnRJbXBsLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZW5kZXJGb3JlaWduT2JqZWN0OjpSZW5kZXJGb3JlaWduT2JqZWN0KEtT
Vkc6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqbm9kZSkgCitSZW5kZXJGb3JlaWduT2Jq
ZWN0OjpSZW5kZXJGb3JlaWduT2JqZWN0KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqbm9k
ZSkgCiAgICAgOiBSZW5kZXJCbG9jayhub2RlKQogewogfQogCi1RTWF0cml4IFJlbmRlckZvcmVp
Z25PYmplY3Q6OnRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpCitBZmZpbmVUcmFuc2Zvcm0gUmVu
ZGVyRm9yZWlnbk9iamVjdDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkKIHsKLSAgICBLU1ZH
OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwgKmZvcmVpZ24gPSBzdGF0aWNfY2FzdDxLU1ZH
OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwgKj4oZWxlbWVudCgpKTsKLSAgICByZXR1cm4g
UU1hdHJpeCgpLnRyYW5zbGF0ZShmb3JlaWduLT54KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgZm9y
ZWlnbi0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOworICAgIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50SW1wbCogZm9yZWlnbiA9IHN0YXRpY19jYXN0PFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1w
bCAqPihlbGVtZW50KCkpOworICAgIHJldHVybiB0cmFuc2xhdGlvbk1hdHJpeChmb3JlaWduLT54
KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgZm9yZWlnbi0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkp
OwogfQogCiB2b2lkIFJlbmRlckZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpCkBAIC01OCw3ICs1Nyw3IEBACiAgICAgfSBl
bHNlCiAgICAgICAgIHBhaW50SW5mby5wLT5zYXZlKCk7CiAKLSAgICBjb250ZXh0LT5jb25jYXRD
VE0oUU1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgY29udGV4dC0+
Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsKICAgICBjb250
ZXh0LT5jb25jYXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgY29udGV4dC0+Y29uY2F0Q1RN
KHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpKTsKICAgICAKQEAgLTcxLDEzICs3MCwxNSBAQAog
ICAgICAgICBwYWludEluZm8ucC0+cmVzdG9yZSgpOwogfQogCi1ib29sIFJlbmRlckZvcmVpZ25P
YmplY3Q6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHksIGludCB0eCwg
aW50IHR5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlckZvcmVpZ25P
YmplY3Q6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgeCwgaW50IHksIGludCB0eCwg
aW50IHR5LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBRTWF0cml4IHRvdGFsVHJhbnNm
b3JtID0gYWJzb2x1dGVUcmFuc2Zvcm0oKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdG90YWxUcmFu
c2Zvcm0gPSBhYnNvbHV0ZVRyYW5zZm9ybSgpOwogICAgIHRvdGFsVHJhbnNmb3JtICo9IHRyYW5z
bGF0aW9uRm9yQXR0cmlidXRlcygpOwotICAgIGRvdWJsZSBsb2NhbFgsIGxvY2FsWTsKLSAgICB0
b3RhbFRyYW5zZm9ybS5pbnZlcnQoKS5tYXAoeCwgeSwgJmxvY2FsWCwgJmxvY2FsWSk7Ci0gICAg
cmV0dXJuIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChpbmZvLCAoaW50KWxvY2FsWCwgKGludCls
b2NhbFksIHR4LCB0eSwgaGl0VGVzdEFjdGlvbik7CisgICAgdG90YWxUcmFuc2Zvcm0uaW52ZXJ0
KCk7CisgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gdG90YWxUcmFuc2Zvcm0ubWFwKEludFBv
aW50KHgsIHkpKTsKKyAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGluZm8sIHN0
YXRpY19jYXN0PGludD4obG9jYWxQb2ludC54KCkpLCBzdGF0aWNfY2FzdDxpbnQ+KGxvY2FsUG9p
bnQueSgpKSwgdHgsIHR5LCBhY3Rpb24pOwogfQorCit9CisKICNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtj
YW52YXMvS0NhbnZhc1Jlc291cmNlcy5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZhcy9L
Q2FudmFzUmVzb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjIgKzIyLDE5IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIkludFJlY3Qu
aCIKLSNpbmNsdWRlIDxrZGVidWcuaD4KKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCiAK
LSNpbmNsdWRlICJrY2FudmFzL0tDYW52YXMuaCIKLSNpbmNsdWRlICJrY2FudmFzL1JlbmRlclBh
dGguaCIKLSNpbmNsdWRlICJrY2FudmFzL0tDYW52YXNJbWFnZS5oIgotI2luY2x1ZGUgIktDYW52
YXNNYXRyaXguaCIKKyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgotI2luY2x1ZGUgIktDYW52YXNSZXNv
dXJjZXMuaCIKKyNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgiCiAjaW5jbHVkZSAiS1JlbmRl
cmluZ0RldmljZS5oIgotCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
U1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLQorI2luY2x1ZGUgImtjYW52YXMvS0NhbnZhcy5oIgor
I2luY2x1ZGUgImtjYW52YXMvS0NhbnZhc0ltYWdlLmgiCisjaW5jbHVkZSAia2NhbnZhcy9SZW5k
ZXJQYXRoLmgiCiAjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4KLSNpbmNsdWRlICJLQ2FudmFzVHJl
ZURlYnVnLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAKIFFUZXh0U3RyZWFtICZvcGVy
YXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgS0NhbnZhc1Jlc291cmNlICZyKSAKIHsgCkBA
IC00NSwxMCArNDIsNiBAQAogfQogCiAvLyBLQ2FudmFzUmVzb3VyY2UKLUtDYW52YXNSZXNvdXJj
ZTo6S0NhbnZhc1Jlc291cmNlKCkKLXsKLX0KLQogS0NhbnZhc1Jlc291cmNlOjp+S0NhbnZhc1Jl
c291cmNlKCkKIHsKIH0KQEAgLTYxLDExICs1NCw2IEBACiAgICAgbV9jbGllbnRzLmFwcGVuZChp
dGVtKTsKIH0KIAotY29uc3QgS0NhbnZhc0l0ZW1MaXN0ICZLQ2FudmFzUmVzb3VyY2U6OmNsaWVu
dHMoKSBjb25zdAotewotICAgIHJldHVybiBtX2NsaWVudHM7Ci19Ci0KIHZvaWQgS0NhbnZhc1Jl
c291cmNlOjppbnZhbGlkYXRlKCkKIHsKICAgICBLQ2FudmFzSXRlbUxpc3Q6OkNvbnN0SXRlcmF0
b3IgaXQgPSBtX2NsaWVudHMuYmVnaW4oKTsKQEAgLTkxLDE0ICs3OSw3IEBACiB9CiAKIC8vIEtD
YW52YXNDbGlwcGVyCi1LQ2FudmFzQ2xpcHBlcjo6S0NhbnZhc0NsaXBwZXIoKSA6IEtDYW52YXNS
ZXNvdXJjZSgpCi17Ci19CiAKLUtDYW52YXNDbGlwcGVyOjp+S0NhbnZhc0NsaXBwZXIoKQotewot
fQotCiB2b2lkIEtDYW52YXNDbGlwcGVyOjpyZXNldENsaXBEYXRhKCkKIHsKICAgICBtX2NsaXBE
YXRhLmNsZWFyKCk7CkBAIC0yMjUsMjQgKzIwNiwyMCBAQAogewogICAgIGlmKG1fbWFya2VyKQog
ICAgIHsKLSAgICAgICAgS0NhbnZhc01hdHJpeCB0cmFuc2xhdGlvbjsKLSAgICAgICAgdHJhbnNs
YXRpb24udHJhbnNsYXRlKHgsIHkpOwotCi0gICAgICAgIEtDYW52YXNNYXRyaXggcm90YXRpb247
Ci0gICAgICAgIHJvdGF0aW9uLnNldE9wZXJhdGlvbk1vZGUoT1BTX1BPU1RNVUwpOwotICAgICAg
ICByb3RhdGlvbi50cmFuc2xhdGUoLW1fcmVmWCwgLW1fcmVmWSk7Ci0gICAgICAgIHJvdGF0aW9u
LnNjYWxlKG1fc2NhbGVYLCBtX3NjYWxlWSk7Ci0gICAgICAgIHJvdGF0aW9uLnJvdGF0ZShtX2Fu
Z2xlID4gLTEgPyBtX2FuZ2xlIDogYW5nbGUpOworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0
cml4OworICAgICAgICBpZiAobV91c2VTdHJva2VXaWR0aCkKKyAgICAgICAgICAgIG1hdHJpeC5z
Y2FsZShzdHJva2VXaWR0aCwgc3Ryb2tlV2lkdGgpOworICAgICAgICBtYXRyaXgucm90YXRlKG1f
YW5nbGUgPiAtMSA/IG1fYW5nbGUgOiBhbmdsZSk7CisgICAgICAgIG1hdHJpeC5zY2FsZShtX3Nj
YWxlWCwgbV9zY2FsZVkpOworICAgICAgICBtYXRyaXgudHJhbnNsYXRlKHggLSBtX3JlZlgsIHgg
LSBtX3JlZlkpOwogICAgICAgICAKICAgICAgICAgLy8gc3Ryb2tlIHdpZHRoCi0gICAgICAgIGlm
KG1fdXNlU3Ryb2tlV2lkdGgpCi0gICAgICAgICAgICByb3RhdGlvbi5zY2FsZShzdHJva2VXaWR0
aCwgc3Ryb2tlV2lkdGgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBQYWludEluZm8gc2hvdWxkIGJl
IHBhc3NlZCBpbnRvIHRoaXMgbWV0aG9kIGluc3RlYWQuCiAgICAgICAgIC8vIEZJWE1FOiBib3Vu
ZGluZyBib3ggZnJhY3Rpb25zIGxvc3QKICAgICAgICAgUVBhaW50ZXIgcDsKICAgICAgICAga2h0
bWw6OlJlbmRlck9iamVjdDo6UGFpbnRJbmZvIGluZm8oJnAsIGVuY2xvc2luZ0ludFJlY3QocmVj
dCksIFdlYkNvcmU6OlBhaW50QWN0aW9uRm9yZWdyb3VuZCwgMCk7Ci0gICAgICAgIG1fbWFya2Vy
LT5zZXRMb2NhbFRyYW5zZm9ybShyb3RhdGlvbi5tdWx0aXBseSh0cmFuc2xhdGlvbikucW1hdHJp
eCgpKTsKKyAgICAgICAgbV9tYXJrZXItPnNldExvY2FsVHJhbnNmb3JtKG1hdHJpeCk7CiAgICAg
ICAgIHN0YXRpY19jYXN0PEtDYW52YXNDb250YWluZXIgKj4obV9tYXJrZXIpLT5zZXREcmF3c0Nv
bnRlbnRzKHRydWUpOwogICAgICAgICBtX21hcmtlci0+cGFpbnQoaW5mbywgMCwgMCk7CiAgICAg
ICAgIHN0YXRpY19jYXN0PEtDYW52YXNDb250YWluZXIgKj4obV9tYXJrZXIpLT5zZXREcmF3c0Nv
bnRlbnRzKGZhbHNlKTsKSW5kZXg6IGtjYW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtjYW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtj
YW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsODAgKzIzLDcwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci0jaW5jbHVkZSA8cXN0cmluZy5oPgogI2luY2x1ZGUgPHF0ZXh0c3RyZWFtLmg+Ci0jaW5jbHVk
ZSA8cTN2YWx1ZWxpc3QuaD4KKyNpbmNsdWRlIDxxdmFsdWVsaXN0Lmg+CiAKLWNsYXNzIFFNYXRy
aXg7CitjbGFzcyBLQ2FudmFzQ29udGFpbmVyOwogY2xhc3MgUVN0cmluZ0xpc3Q7Ci1jbGFzcyBL
Q0NsaXBEYXRhOwotY2xhc3MgS0NQYXRoRGF0YTsKLQogY2xhc3MgUmVuZGVyUGF0aDsKLWNsYXNz
IEtDYW52YXNDb250YWluZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZp
bmVUcmFuc2Zvcm07CiAgICAgY2xhc3MgQ29sb3I7CiAgICAgY2xhc3MgRmxvYXRTaXplOwogICAg
IGNsYXNzIEZsb2F0UG9pbnQ7CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEludFBv
aW50OwogICAgIGNsYXNzIEludFJlY3Q7Ci19Ci0KLW5hbWVzcGFjZSBLRE9NIHsKICAgICBjbGFz
cyBOb2RlSW1wbDsKIH0KIAogLy8gZnVuY3Rpb25zIHVzZWQgYnkgdGhlIG1haW4gS1dRUmVuZGVy
VHJlZURlYnVnIGNvZGUKLXZvaWQgd3JpdGUoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBLQ2FudmFz
Q29udGFpbmVyICZjb250YWluZXIsIGludCBpbmRlbnQgPSAwKTsKLXZvaWQgd3JpdGUoUVRleHRT
dHJlYW0gJnRzLCBjb25zdCBSZW5kZXJQYXRoICZwYXRoLCBpbnQgaW5kZW50ID0gMCk7Ci12b2lk
IHdyaXRlUmVuZGVyUmVzb3VyY2VzKFFUZXh0U3RyZWFtICZ0cywgS0RPTTo6Tm9kZUltcGwgKnBh
cmVudCk7Cit2b2lkIHdyaXRlKFFUZXh0U3RyZWFtJiwgY29uc3QgS0NhbnZhc0NvbnRhaW5lciYs
IGludCBpbmRlbnQgPSAwKTsKK3ZvaWQgd3JpdGUoUVRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJQ
YXRoJiwgaW50IGluZGVudCA9IDApOwordm9pZCB3cml0ZVJlbmRlclJlc291cmNlcyhRVGV4dFN0
cmVhbSYsIFdlYkNvcmU6Ok5vZGVJbXBsKiBwYXJlbnQpOwogCiAvLyBoZWxwZXIgb3BlcmF0b3Jz
IGRlZmluZWQgdXNlZCBpbiB2YXJpb3VzIGNsYXNzZXMgdG8gZHVtcCB0aGUgcmVuZGVyIHRyZWUu
IAotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBRTWF0cml4
ICYpOwotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0ICYpOwotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRz
LCBjb25zdCBXZWJDb3JlOjpDb2xvciAmKTsKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0
U3RyZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgJik7Ci1RVGV4dFN0cmVhbSAmb3Bl
cmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSAmKTsKLVFU
ZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0ICYpOwotUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50ICYpOworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRT
dHJlYW0mLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gJik7CitRVGV4dFN0cmVhbSAm
b3BlcmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QgJik7CitRVGV4
dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yICYp
OworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCAmKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplICYpOworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJl
YW0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QgJik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8
PChRVGV4dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQgJik7CiAKIC8vIGhlbHBl
ciBvcGVyYXRvcnMgc3BlY2lmaWMgdG8gZHVtcGluZyB0aGUgcmVuZGVyIHRyZWUuIHRoZXNlIGFy
ZSB1c2VkIGluIHZhcmlvdXMgY2xhc3NlcyB0byBkdW1wIHRoZSByZW5kZXIgdHJlZQogLy8gdGhl
c2UgY291bGQgYmUgZGVmaW5lZCBpbiBzZXBhcmF0ZSBuYW1lc3BhY2UgdG8gYXZvaWQgbWF0Y2hp
bmcgdGhlc2UgZ2VuZXJpYyBzaWduYXR1cmVzIHVuaW50ZW50aW9uYWxseS4KICAgICAKLVFUZXh0
U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUVN0cmluZ0xpc3QgJmwp
OworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBRU3RyaW5nTGlz
dCYpOwogICAgIAotdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLVFUZXh0U3RyZWFtICZvcGVyYXRv
cjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUTNWYWx1ZUxpc3Q8SXRlbSo+ICZsKQordGVtcGxh
dGU8dHlwZW5hbWUgVD4gUVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoUVRleHRTdHJlYW0mIHRzLCBj
b25zdCBRVmFsdWVMaXN0PFQqPiYgbCkKIHsKICAgICB0cyA8PCAiWyI7Ci0gICAgdHlwZW5hbWUg
UTNWYWx1ZUxpc3Q8SXRlbSo+OjpDb25zdEl0ZXJhdG9yIGl0ID0gbC5iZWdpbigpOwotICAgIHR5
cGVuYW1lIFEzVmFsdWVMaXN0PEl0ZW0qPjo6Q29uc3RJdGVyYXRvciBpdF9lID0gbC5lbmQoKTsK
LSAgICB3aGlsZSAoaXQgIT0gaXRfZSkKLSAgICB7CisgICAgdHlwZW5hbWUgUVZhbHVlTGlzdDxU
Kj46OkNvbnN0SXRlcmF0b3IgaXQgPSBsLmJlZ2luKCk7CisgICAgdHlwZW5hbWUgUVZhbHVlTGlz
dDxUKj46OkNvbnN0SXRlcmF0b3IgaXRfZSA9IGwuZW5kKCk7CisgICAgd2hpbGUgKGl0ICE9IGl0
X2UpIHsKICAgICAgICAgdHMgPDwgKigqaXQpOwogICAgICAgICArK2l0OwotICAgICAgICBpZiAo
aXQgIT0gaXRfZSkgdHMgPDwgIiwgIjsKKyAgICAgICAgaWYgKGl0ICE9IGl0X2UpCisgICAgICAg
ICAgICB0cyA8PCAiLCAiOwogICAgIH0KICAgICB0cyA8PCAiXSI7CiAgICAgCiAgICAgcmV0dXJu
IHRzOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotUVRleHRTdHJlYW0gJm9wZXJhdG9y
PDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBRM1ZhbHVlTGlzdDxJdGVtPiAmbCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IFFUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFFUZXh0U3RyZWFtJiB0cywgY29u
c3QgUVZhbHVlTGlzdDxUPiYgbCkKIHsKICAgICB0cyA8PCAiWyI7Ci0gICAgdHlwZW5hbWUgUTNW
YWx1ZUxpc3Q8SXRlbT46OkNvbnN0SXRlcmF0b3IgaXQgPSBsLmJlZ2luKCk7Ci0gICAgdHlwZW5h
bWUgUTNWYWx1ZUxpc3Q8SXRlbT46OkNvbnN0SXRlcmF0b3IgaXRfZSA9IGwuZW5kKCk7Ci0gICAg
d2hpbGUgKGl0ICE9IGl0X2UpCi0gICAgeworICAgIHR5cGVuYW1lIFFWYWx1ZUxpc3Q8VD46OkNv
bnN0SXRlcmF0b3IgaXQgPSBsLmJlZ2luKCk7CisgICAgdHlwZW5hbWUgUVZhbHVlTGlzdDxUPjo6
Q29uc3RJdGVyYXRvciBpdF9lID0gbC5lbmQoKTsKKyAgICB3aGlsZSAoaXQgIT0gaXRfZSkgewog
ICAgICAgICB0cyA8PCAqaXQ7CiAgICAgICAgICsraXQ7Ci0gICAgICAgIGlmIChpdCAhPSBpdF9l
KSB0cyA8PCAiLCAiOworICAgICAgICBpZiAoaXQgIT0gaXRfZSkKKyAgICAgICAgICAgIHRzIDw8
ICIsICI7CiAgICAgfQogICAgIHRzIDw8ICJdIjsKLSAgICAKICAgICByZXR1cm4gdHM7CiB9Cklu
ZGV4OiBrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2Fu
dmFzRmlsdGVycy5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNp
bmNsdWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlIDxxc3RyaW5n
bGlzdC5oPgogCkluZGV4OiBrY2FudmFzL1JlbmRlckZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrY2FudmFzL1JlbmRlckZvcmVpZ25PYmplY3QuaAkocmV2aXNpb24gMTI0NjMpCisrKyBr
Y2FudmFzL1JlbmRlckZvcmVpZ25PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMzAgKzI0
LDMyIEBACiAjZGVmaW5lIFJlbmRlckZvcmVpZ25PYmplY3RfSAogI2lmIFNWR19TVVBQT1JUCiAK
KyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgot
I2luY2x1ZGUgPHFtYXRyaXguaD4KIAotbmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNzIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50SW1wbDsKLX0KK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
UmVuZGVyRm9yZWlnbk9iamVjdCA6IHB1YmxpYyBraHRtbDo6UmVuZGVyQmxvY2sKK2NsYXNzIFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbDsKKworY2xhc3MgUmVuZGVyRm9yZWlnbk9iamVjdCA6
IHB1YmxpYyBSZW5kZXJCbG9jawogewogcHVibGljOgotICAgIFJlbmRlckZvcmVpZ25PYmplY3Qo
S1NWRzo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsICpub2RlKTsKKyAgICBSZW5kZXJGb3Jl
aWduT2JqZWN0KFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCopOwogICAgIAotICAgIGNvbnN0
IGNoYXIgKnJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRm9yZWlnbk9iamVjdCI7
IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgcGFyZW50WCwgaW50
IHBhcmVudFkpOworICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAi
UmVuZGVyRm9yZWlnbk9iamVjdCI7IH0KKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCBw
YXJlbnRYLCBpbnQgcGFyZW50WSk7CiAgICAgCi0gICAgdmlydHVhbCBRTWF0cml4IGxvY2FsVHJh
bnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3Jt
ID0gdHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zv
cm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRM
b2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkgeyBtX3RyYW5z
Zm9ybSA9IHRyYW5zZm9ybTsgfQogICAgIAotICAgIGJvb2wgbm9kZUF0UG9pbnQoTm9kZUluZm8m
LCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBXZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsK
KyAgICBib29sIG5vZGVBdFBvaW50KE5vZGVJbmZvJiwgaW50IHgsIGludCB5LCBpbnQgdHgsIGlu
dCB0eSwgSGl0VGVzdEFjdGlvbik7CiAKICBwcml2YXRlOgotICAgIFFNYXRyaXggdHJhbnNsYXRp
b25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJpeCBtX3RyYW5zZm9ybTsKKyAgICBBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7CisgICAgQWZmaW5lVHJhbnNmb3Jt
IG1fdHJhbnNmb3JtOwogfTsKIAorfQorCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJ
bmRleDoga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9L
Q2FudmFzUmVzb3VyY2VzLmgJKHJldmlzaW9uIDEyNDYzKQorKysga2NhbnZhcy9LQ2FudmFzUmVz
b3VyY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCw0MiArMjUsMzcgQEAKICNkZWZpbmUg
S0NhbnZhc1Jlc291cmNlc19ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgPHFzdHJpbmcu
aD4KLSNpbmNsdWRlIDxxM3ZhbHVlbGlzdC5oPgorI2luY2x1ZGUgIktDYW52YXNJdGVtLmgiCisj
aW5jbHVkZSAiS0NhbnZhc1BhdGguaCIKIAotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5o
PgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1BhdGguaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tD
YW52YXNSZXNvdXJjZUxpc3RlbmVyLmg+Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsgLy8gbW92
ZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgaW50byBXZWJDb3JlIGFuZCByZW1vdmUgdGhpcwogCiBj
bGFzcyBRVGV4dFN0cmVhbTsKIAorY2xhc3MgS0NhbnZhc0ltYWdlOworY2xhc3MgS1JlbmRlcmlu
Z1BhaW50U2VydmVyOworCiAvLyBFbnVtZXJhdGlvbnMKLXR5cGVkZWYgZW51bQoteworZW51bSBL
Q1Jlc291cmNlVHlwZSB7CiAgICAgLy8gUGFpbnRpbmcgbW9kZQogICAgIFJTX0NMSVBQRVIgPSAw
LAogICAgIFJTX01BUktFUiA9IDEsCiAgICAgUlNfSU1BR0UgPSAyLAogICAgIFJTX0ZJTFRFUiA9
IDMsCiAgICAgUlNfTUFTS0VSID0gNAotfSBLQ1Jlc291cmNlVHlwZTsKK307CiAKLWNsYXNzIEtD
YW52YXNNYXRyaXg7Ci1jbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXI7Ci0KLWNsYXNzIEtDYW52
YXNSZXNvdXJjZQoteworY2xhc3MgS0NhbnZhc1Jlc291cmNlIHsKIHB1YmxpYzoKLSAgICBLQ2Fu
dmFzUmVzb3VyY2UoKTsKICAgICB2aXJ0dWFsIH5LQ2FudmFzUmVzb3VyY2UoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCBhZGRDbGllbnQoY29uc3QgUmVuZGVy
UGF0aCAqaXRlbSk7CiAKLSAgICBjb25zdCBLQ2FudmFzSXRlbUxpc3QgJmNsaWVudHMoKSBjb25z
dDsKKyAgICBjb25zdCBLQ2FudmFzSXRlbUxpc3QmIGNsaWVudHMoKSBjb25zdCB7IHJldHVybiBt
X2NsaWVudHM7IH0KICAgICAKICAgICBRU3RyaW5nIGlkSW5SZWdpc3RyeSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0SWRJblJlZ2lzdHJ5KGNvbnN0IFFTdHJpbmcmIG5ld0lkKTsKKyAgICB2b2lkIHNl
dElkSW5SZWdpc3RyeShjb25zdCBRU3RyaW5nJik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlz
UGFpbnRTZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC03MywxNiArNjksMTIgQEAKICAg
ICBRU3RyaW5nIHJlZ2lzdHJ5SWQ7CiB9OwogCi1jbGFzcyBLQ2FudmFzQ2xpcHBlciA6IHB1Ymxp
YyBLQ2FudmFzUmVzb3VyY2UKLXsKK2NsYXNzIEtDYW52YXNDbGlwcGVyIDogcHVibGljIEtDYW52
YXNSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgS0NhbnZhc0NsaXBwZXIoKTsKLSAgICB2aXJ0dWFs
IH5LQ2FudmFzQ2xpcHBlcigpOwotICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0NsaXBwZXIoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIHJlc2V0Q2xpcERhdGEoKTsKLSAgICB2
b2lkIGFkZENsaXBEYXRhKEtDYW52YXNQYXRoICpwYXRoLCBLQ1dpbmRSdWxlIHJ1bGUsIGJvb2wg
YmJveFVuaXRzKTsKKyAgICB2b2lkIGFkZENsaXBEYXRhKEtDYW52YXNQYXRoKiwgS0NXaW5kUnVs
ZSwgYm9vbCBiYm94VW5pdHMpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBhcHBseUNsaXAoY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkgY29uc3QgPSAwOwogCkBAIC05MywxNyArODUsMTQg
QEAKICAgICBLQ0NsaXBEYXRhTGlzdCBtX2NsaXBEYXRhOwogfTsKIAotY2xhc3MgS0NhbnZhc0lt
YWdlOwotCi1jbGFzcyBLQ2FudmFzTWFza2VyIDogcHVibGljIEtDYW52YXNSZXNvdXJjZQotewor
Y2xhc3MgS0NhbnZhc01hc2tlciA6IHB1YmxpYyBLQ2FudmFzUmVzb3VyY2UgewogcHVibGljOgog
ICAgIEtDYW52YXNNYXNrZXIoKTsKICAgICB2aXJ0dWFsIH5LQ2FudmFzTWFza2VyKCk7CiAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzTWFza2VyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IHZvaWQgc2V0TWFzayhLQ2FudmFzSW1hZ2UgKm1hc2spOwotICAgIEtDYW52YXNJbWFnZSAqbWFz
aygpIGNvbnN0IHsgcmV0dXJuIG1fbWFzazsgfQorICAgIHZvaWQgc2V0TWFzayhLQ2FudmFzSW1h
Z2UqKTsKKyAgICBLQ2FudmFzSW1hZ2UqIG1hc2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0K
ICAgICAKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlNYXNrKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gpIGNvbnN0ID0gMDsKIApAQCAtMTE1LDEyICsxMDQsMTIgQEAKIGNsYXNzIEtDYW52YXNN
YXJrZXIgOiBwdWJsaWMgS0NhbnZhc1Jlc291cmNlCiB7CiBwdWJsaWM6Ci0gICAgS0NhbnZhc01h
cmtlcihraHRtbDo6UmVuZGVyT2JqZWN0ICptYXJrZXIgPSAwKTsKKyAgICBLQ2FudmFzTWFya2Vy
KFJlbmRlck9iamVjdCogbWFya2VyID0gMCk7CiAgICAgdmlydHVhbCB+S0NhbnZhc01hcmtlcigp
OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZvaWQgc2V0TWFya2VyKGtodG1sOjpSZW5kZXJPYmplY3QgKm1hcmtlcik7Cisg
ICAgdm9pZCBzZXRNYXJrZXIoUmVuZGVyT2JqZWN0ICptYXJrZXIpOwogICAgIAogICAgIHZvaWQg
c2V0UmVmKGRvdWJsZSByZWZYLCBkb3VibGUgcmVmWSk7CiAgICAgZG91YmxlIHJlZlgoKSBjb25z
dDsgICAgCkBAIC0xMzgsMjMgKzEyNywyMyBAQAogICAgIGZsb2F0IHNjYWxlWSgpIGNvbnN0Owog
CiAgICAgIC8vIERyYXcgb250byB0aGUgY2FudmFzCi0gICAgdm9pZCBkcmF3KGNvbnN0IEZsb2F0
UmVjdCAmcmVjdCwgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgc3Ryb2tlV2lkdGggPSAxLiwg
ZG91YmxlIGFuZ2xlID0gMC4wKTsKKyAgICB2b2lkIGRyYXcoY29uc3QgRmxvYXRSZWN0JiwgZG91
YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgc3Ryb2tlV2lkdGggPSAxLiwgZG91YmxlIGFuZ2xlID0g
MC4wKTsKIAotICAgIFFUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFFUZXh0U3Ry
ZWFtICYpIGNvbnN0OyAKKyAgICBRVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihR
VGV4dFN0cmVhbSYpIGNvbnN0OyAKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fcmVmWCwgbV9yZWZZ
OwogICAgIGZsb2F0IG1fYW5nbGUsIG1fc2NhbGVYLCBtX3NjYWxlWTsKLSAgICBraHRtbDo6UmVu
ZGVyT2JqZWN0ICptX21hcmtlcjsKKyAgICBSZW5kZXJPYmplY3QqIG1fbWFya2VyOwogICAgIGJv
b2wgbV91c2VTdHJva2VXaWR0aDsKIH07CiAKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0
U3RyZWFtICZ0cywgY29uc3QgS0NhbnZhc1Jlc291cmNlICZyKTsKK1FUZXh0U3RyZWFtICZvcGVy
YXRvcjw8KFFUZXh0U3RyZWFtJiwgY29uc3QgS0NhbnZhc1Jlc291cmNlJik7CiAKLUtDYW52YXNS
ZXNvdXJjZSAqZ2V0UmVzb3VyY2VCeUlkKEtET006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIGNv
bnN0IEtET006OkF0b21pY1N0cmluZyAmaWQpOwotS0NhbnZhc01hcmtlciAqZ2V0TWFya2VyQnlJ
ZChLRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcg
JmlkKTsKLUtDYW52YXNDbGlwcGVyICpnZXRDbGlwcGVyQnlJZChLRE9NOjpEb2N1bWVudEltcGwg
KmRvY3VtZW50LCBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcgJmlkKTsKLUtDYW52YXNNYXNrZXIg
KmdldE1hc2tlckJ5SWQoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29uc3QgS0RPTTo6
QXRvbWljU3RyaW5nICZpZCk7Ci1LUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKmdldFBhaW50U2VydmVy
QnlJZChLRE9NOjpEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBLRE9NOjpBdG9taWNTdHJp
bmcgJmlkKTsKK0tDYW52YXNSZXNvdXJjZSogZ2V0UmVzb3VyY2VCeUlkKERvY3VtZW50SW1wbCos
IGNvbnN0IEF0b21pY1N0cmluZyYgaWQpOworS0NhbnZhc01hcmtlciogZ2V0TWFya2VyQnlJZChE
b2N1bWVudEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKK0tDYW52YXNDbGlwcGVyKiBn
ZXRDbGlwcGVyQnlJZChEb2N1bWVudEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKK0tD
YW52YXNNYXNrZXIqIGdldE1hc2tlckJ5SWQoRG9jdW1lbnRJbXBsKiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBpZCk7CitLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIqIGdldFBhaW50U2VydmVyQnlJZChEb2N1
bWVudEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKIAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBr
Y2FudmFzL0tDYW52YXNDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiwx
MSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJL
Q2FudmFzQ29udGFpbmVyLmgiCisKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNs
dWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNl
LmgiCi0jaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVs
ZW1lbnRJbXBsLmgiCiAKIGNsYXNzIEtDYW52YXNDb250YWluZXI6OlByaXZhdGUKQEAgLTM1LDcg
KzM3LDcgQEAKIAogICAgIGJvb2wgZHJhd3NDb250ZW50cyA6IDE7CiAgICAgYm9vbCBzbGljZSA6
IDE7Ci0gICAgUU1hdHJpeCBtYXRyaXg7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKIH07
CiAKIEtDYW52YXNDb250YWluZXI6OktDYW52YXNDb250YWluZXIoS1NWRzo6U1ZHU3R5bGVkRWxl
bWVudEltcGwgKm5vZGUpCkBAIC01OSwxMiArNjEsMTIgQEAKICAgICBkLT5kcmF3c0NvbnRlbnRz
ID0gZHJhd3NDb250ZW50czsKIH0KIAotUU1hdHJpeCBLQ2FudmFzQ29udGFpbmVyOjpsb2NhbFRy
YW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lcjo6bG9jYWxU
cmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBkLT5tYXRyaXg7CiB9CiAKLXZvaWQgS0Nh
bnZhc0NvbnRhaW5lcjo6c2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCAmbWF0cml4KQor
dm9pZCBLQ2FudmFzQ29udGFpbmVyOjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIG1hdHJpeCkKIHsKICAgICBkLT5tYXRyaXggPSBtYXRyaXg7CiB9CkBAIC0xMDAsOCAr
MTAyLDggQEAKICAgICBraHRtbDo6UmVuZGVyT2JqZWN0ICpjdXJyZW50ID0gZmlyc3RDaGlsZCgp
OwogICAgIGZvcig7IGN1cnJlbnQgIT0gMDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHRTaWJsaW5n
KCkpIHsKICAgICAgICAgRmxvYXRSZWN0IGNoaWxkQkJveCA9IGN1cnJlbnQtPnJlbGF0aXZlQkJv
eChpbmNsdWRlU3Ryb2tlKTsKLSAgICAgICAgRmxvYXRSZWN0IG1hcHBlZEJCb3ggPSBjdXJyZW50
LT5sb2NhbFRyYW5zZm9ybSgpLm1hcFJlY3QoY2hpbGRCQm94KTsKLSAgICAgICAgcmVjdCA9IHJl
Y3QudW5pdGUobWFwcGVkQkJveCk7CisgICAgICAgIEZsb2F0UmVjdCBtYXBwZWRCQm94ID0gY3Vy
cmVudC0+bG9jYWxUcmFuc2Zvcm0oKS5tYXAoY2hpbGRCQm94KTsKKyAgICAgICAgcmVjdC51bml0
ZShtYXBwZWRCQm94KTsKICAgICB9CiAKICAgICByZXR1cm4gcmVjdDsKQEAgLTExNyw5ICsxMTks
OSBAQAogICAgIHJldHVybiBkLT5zbGljZTsKIH0KIAotS0NhbnZhc01hdHJpeCBLQ2FudmFzQ29u
dGFpbmVyOjpnZXRBc3BlY3RSYXRpbyhjb25zdCBGbG9hdFJlY3QgbG9naWNhbCwgY29uc3QgRmxv
YXRSZWN0IHBoeXNpY2FsKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIEtDYW52YXNDb250YWluZXI6
OmdldEFzcGVjdFJhdGlvKGNvbnN0IEZsb2F0UmVjdCBsb2dpY2FsLCBjb25zdCBGbG9hdFJlY3Qg
cGh5c2ljYWwpIGNvbnN0CiB7Ci0gICAgS0NhbnZhc01hdHJpeCB0ZW1wOworICAgIEFmZmluZVRy
YW5zZm9ybSB0ZW1wOwogCiAgICAgZmxvYXQgbG9naWNYID0gbG9naWNhbC54KCk7CiAgICAgZmxv
YXQgbG9naWNZID0gbG9naWNhbC55KCk7CkluZGV4OiBicmlkZ2UvbWFjL01hY0ZyYW1lLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvTWFjRnJhbWUubW0JKHJldmlzaW9uIDEyNDYzKQorKysg
YnJpZGdlL21hYy9NYWNGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzA0Myw3ICszMDQzLDcg
QEAKIAogICAgIC8vIDEuIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHVzZWQgdG8gZHJhdyBiZWhpbmQg
c2VsZWN0ZWQgY29udGVudCAoYWN0aXZlIHwgaW5hY3RpdmUgY29sb3IpCiAgICAgaWYgKGQtPm1f
dmlldykKLSAgICAgICAgZC0+bV92aWV3LT51cGRhdGVDb250ZW50cyhJbnRSZWN0KHZpc2libGVT
ZWxlY3Rpb25SZWN0KCkpKTsKKyAgICAgICAgZC0+bV92aWV3LT51cGRhdGVDb250ZW50cyhlbmNs
b3NpbmdJbnRSZWN0KHZpc2libGVTZWxlY3Rpb25SZWN0KCkpKTsKIAogICAgIC8vIDIuIENhcmV0
IGJsaW5raW5nIChibGlua3MgfCBkb2VzIG5vdCBibGluaykKICAgICBpZiAoZmxhZykKQEAgLTMw
NjcsMTAgKzMwNjcsOSBAQAogICAgICAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IGQtPm1fdmll
dyA/IGQtPm1fdmlldy0+Z2V0RG9jdW1lbnRWaWV3KCkgOiAwOwogICAgICAgICBpZiAoZG9jdW1l
bnRWaWV3ICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGRvYy0+dXBkYXRlTGF5b3V0KCk7
IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8gZGF0ZS4KLSAgICAgICAgICAgIEludFJlY3Qgdmlz
aWJsZVJlY3QoW2RvY3VtZW50VmlldyB2aXNpYmxlUmVjdF0pOwogICAgICAgICAgICAgUVBhaW50
ZXIgcDsKICAgICAgICAgICAgIHAuc2V0VXBkYXRpbmdDb250cm9sVGludHModHJ1ZSk7Ci0gICAg
ICAgICAgICBwYWludCgmcCwgdmlzaWJsZVJlY3QpOworICAgICAgICAgICAgcGFpbnQoJnAsIGVu
Y2xvc2luZ0ludFJlY3QoW2RvY3VtZW50VmlldyB2aXNpYmxlUmVjdF0pKTsKICAgICAgICAgfQog
ICAgIH0KIH0KQEAgLTM0OTksMTYgKzM0OTgsOCBAQAogICAgICAgICBpZiAocmVnaW9uLnR5cGUg
PT0gU3R5bGVEYXNoYm9hcmRSZWdpb246Ok5vbmUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICBOU1JlY3QgY2xpcDsKLSAgICAgICAgY2xpcC5vcmlnaW4ueCA9
IHJlZ2lvbi5jbGlwLngoKTsKLSAgICAgICAgY2xpcC5vcmlnaW4ueSA9IHJlZ2lvbi5jbGlwLnko
KTsKLSAgICAgICAgY2xpcC5zaXplLndpZHRoID0gcmVnaW9uLmNsaXAud2lkdGgoKTsKLSAgICAg
ICAgY2xpcC5zaXplLmhlaWdodCA9IHJlZ2lvbi5jbGlwLmhlaWdodCgpOwotICAgICAgICBOU1Jl
Y3QgcmVjdDsKLSAgICAgICAgcmVjdC5vcmlnaW4ueCA9IHJlZ2lvbi5ib3VuZHMueCgpOwotICAg
ICAgICByZWN0Lm9yaWdpbi55ID0gcmVnaW9uLmJvdW5kcy55KCk7Ci0gICAgICAgIHJlY3Quc2l6
ZS53aWR0aCA9IHJlZ2lvbi5ib3VuZHMud2lkdGgoKTsKLSAgICAgICAgcmVjdC5zaXplLmhlaWdo
dCA9IHJlZ2lvbi5ib3VuZHMuaGVpZ2h0KCk7CisgICAgICAgIE5TUmVjdCBjbGlwID0gcmVnaW9u
LmNsaXA7CisgICAgICAgIE5TUmVjdCByZWN0ID0gcmVnaW9uLmJvdW5kczsKICAgICAgICAgTlNT
dHJpbmcgKmxhYmVsID0gcmVnaW9uLmxhYmVsLmdldE5TU3RyaW5nKCk7CiAgICAgICAgIFdlYkRh
c2hib2FyZFJlZ2lvblR5cGUgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lOwogICAg
ICAgICBpZiAocmVnaW9uLnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdpb246OkNpcmNsZSkKSW5k
ZXg6IGJyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJyaWRn
ZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGJyaWRnZS9t
YWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NzEsNyArOTcxLDcg
QEAKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0IHdpdGhQYWludGVyOihRUGFpbnRlciAq
KXAKIHsKICAgICBbc2VsZiBfc2V0dXBSb290Rm9yUHJpbnRpbmc6WUVTXTsKLSAgICBtX2ZyYW1l
LT5wYWludChwLCBJbnRSZWN0KHJlY3QpKTsKKyAgICBtX2ZyYW1lLT5wYWludChwLCBlbmNsb3Np
bmdJbnRSZWN0KHJlY3QpKTsKICAgICBbc2VsZiBfc2V0dXBSb290Rm9yUHJpbnRpbmc6Tk9dOwog
fQogCkBAIC0xNTI5LDE3ICsxNTI5LDEzIEBACiAKICAgICBpZiAoc3RhcnRDYXJldFJlY3QueSgp
ID09IGVuZENhcmV0UmVjdC55KCkpIHsKICAgICAgICAgLy8gc3RhcnQgYW5kIGVuZCBhcmUgb24g
dGhlIHNhbWUgbGluZQotICAgICAgICByZXR1cm4gSW50UmVjdChNSU4oc3RhcnRDYXJldFJlY3Qu
eCgpLCBlbmRDYXJldFJlY3QueCgpKSwgCi0gICAgICAgICAgICAgICAgICAgICBzdGFydENhcmV0
UmVjdC55KCksIAotICAgICAgICAgICAgICAgICAgICAgYWJzKGVuZENhcmV0UmVjdC54KCkgLSBz
dGFydENhcmV0UmVjdC54KCkpLAotICAgICAgICAgICAgICAgICAgICAgTUFYKHN0YXJ0Q2FyZXRS
ZWN0LmhlaWdodCgpLCBlbmRDYXJldFJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgcmV0dXJuIElu
dFJlY3Qoa01pbihzdGFydENhcmV0UmVjdC54KCksIGVuZENhcmV0UmVjdC54KCkpLCBzdGFydENh
cmV0UmVjdC55KCksIAorICAgICAgICAgICAgYWJzKGVuZENhcmV0UmVjdC54KCkgLSBzdGFydENh
cmV0UmVjdC54KCkpLCBrTWF4KHN0YXJ0Q2FyZXRSZWN0LmhlaWdodCgpLCBlbmRDYXJldFJlY3Qu
aGVpZ2h0KCkpKTsKICAgICB9CiAKICAgICAvLyBzdGFydCBhbmQgZW5kIGFyZW4ndCBvbiB0aGUg
c2FtZSBsaW5lLCBzbyBnbyBmcm9tIHN0YXJ0IHRvIHRoZSBlbmQgb2YgaXRzIGxpbmUKLSAgICBy
ZXR1cm4gSW50UmVjdChzdGFydENhcmV0UmVjdC54KCksIAotICAgICAgICAgICAgICAgICBzdGFy
dENhcmV0UmVjdC55KCksCi0gICAgICAgICAgICAgICAgIHN0YXJ0Q2FyZXRSZWN0LndpZHRoKCkg
KyBleHRyYVdpZHRoVG9FbmRPZkxpbmUsCi0gICAgICAgICAgICAgICAgIHN0YXJ0Q2FyZXRSZWN0
LmhlaWdodCgpKTsKKyAgICByZXR1cm4gSW50UmVjdChzdGFydENhcmV0UmVjdC54KCksIHN0YXJ0
Q2FyZXRSZWN0LnkoKSwKKyAgICAgICAgc3RhcnRDYXJldFJlY3Qud2lkdGgoKSArIGV4dHJhV2lk
dGhUb0VuZE9mTGluZSwgc3RhcnRDYXJldFJlY3QuaGVpZ2h0KCkpOwogfQogCiAtIChOU0ltYWdl
ICopc2VsZWN0aW9uSW1hZ2UKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCShy
ZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMjEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KKyNpbmNsdWRlICJTVkdG
RUJsZW5kRWxlbWVudEltcGwuaCIKIAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgot
CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdB
bmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwu
aCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KICNpbmNs
dWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9j
b3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgImtz
dmcuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5o
IgotI2luY2x1ZGUgIlNWR0ZFQmxlbmRFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1h
dGVkRW51bWVyYXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFj
ZSBLU1ZHOwogCiBTVkdGRUJsZW5kRWxlbWVudEltcGw6OlNWR0ZFQmxlbmRFbGVtZW50SW1wbChj
b25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRv
YykgOiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwu
Y3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjMgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJ
bXBsLmg+CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCiAKLSNp
bmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNN
YXRyaXguaD4KLQorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIktTVkdUaW1l
U2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0
cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKLSNpbmNsdWRlICJTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1M
aXN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZH
VGltZVNjaGVkdWxlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRl
ICJTVkdTdHJpbmdMaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKyNpbmNsdWRlICJT
VkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGtjYW52
YXMvUmVuZGVyUGF0aC5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgPGtkb20vY29y
ZS9BdHRySW1wbC5oPgogCi0jaW5jbHVkZSA8Y21hdGg+Ci0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZH
OwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtMTUxLDE0ICsxNDgsMTEgQEAKICAgICAgICAg
ICAgICAgICAgICAgbV9mcm9tUm90YXRlU3BlY2lhbENhc2UgPSBmYWxzZTsKICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZighbV9mcm9tVHJhbnNmb3JtKQotICAgICAgICAg
ICAgICAgICAgICBtX2Zyb21UcmFuc2Zvcm0gPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAg
ICAgICAgICAgICAgIGlmICghbV9mcm9tVHJhbnNmb3JtKQorICAgICAgICAgICAgICAgICAgICBt
X2Zyb21UcmFuc2Zvcm0gPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbDsKIAotICAgICAgICAgICAgICAg
IFNWR01hdHJpeEltcGwgKmJ5TWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCk7Ci0gICAg
ICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqZnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5zZm9ybS0+
bWF0cml4KCk7CisgICAgICAgICAgICAgICAgbV90b1RyYW5zZm9ybS0+c2V0TWF0cml4KG1fZnJv
bVRyYW5zZm9ybS0+bWF0cml4KCkgKiBtX3RvVHJhbnNmb3JtLT5tYXRyaXgoKSk7CiAKLSAgICAg
ICAgICAgICAgICBieU1hdHJpeC0+bXVsdGlwbHkoZnJvbU1hdHJpeCk7Ci0KICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgVkFMVUVTX0FOSU1B
VElPTjoKQEAgLTE4Miw3ICsxNzYsNyBAQAogICAgIGlmKHRpbWVQZXJjZW50YWdlID49IDEuMCkK
ICAgICAgICAgdGltZVBlcmNlbnRhZ2UgPSAxLjA7CiAgICAgCi0gICAgUVdNYXRyaXggcVRvTWF0
cml4LCBxRnJvbU1hdHJpeDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcVRvTWF0cml4LCBxRnJvbU1h
dHJpeDsKICAgICBkb3VibGUgdXNlVGltZVBlcmNlbnRhZ2UgPSB0aW1lUGVyY2VudGFnZTsKIAog
ICAgIGlmKG1fdmFsdWVzKQpAQCAtMjA0LDggKzE5OCw4IEBACiAgICAgICAgICAgICAgICAgYm9v
bCBhcHBseSA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV9m
cm9tVHJhbnNmb3JtKQogICAgICAgICAgICAgICAgIHsgICAgCi0gICAgICAgICAgICAgICAgICAg
IHFUb01hdHJpeCA9IG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpLT5xbWF0cml4KCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKS0+cW1h
dHJpeCgpOworICAgICAgICAgICAgICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3JtLT5t
YXRyaXgoKTsKKyAgICAgICAgICAgICAgICAgICAgcUZyb21NYXRyaXggPSBtX2Zyb21UcmFuc2Zv
cm0tPm1hdHJpeCgpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
YXBwbHkgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9IDEu
MDsKQEAgLTIyNywzOCArMjIxLDMzIEBACiAgICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSA9
IGNhbGN1bGF0ZVJlbGF0aXZlVGltZVBlcmNlbnRhZ2UodGltZVBlcmNlbnRhZ2UsIG1fY3VycmVu
dEl0ZW0pOwogICAgIH0KIAotICAgIGlmKG1fdG9UcmFuc2Zvcm0gJiYgbV90b1RyYW5zZm9ybS0+
bWF0cml4KCkgJiYgcVRvTWF0cml4LmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcVRvTWF0cml4ID0g
bV90b1RyYW5zZm9ybS0+bWF0cml4KCktPnFtYXRyaXgoKTsKKyAgICBpZiAobV90b1RyYW5zZm9y
bSAmJiBxVG9NYXRyaXguaXNJZGVudGl0eSgpKQorICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJh
bnNmb3JtLT5tYXRyaXgoKTsKIAotICAgIGlmKG1fZnJvbVRyYW5zZm9ybSAmJiBtX2Zyb21UcmFu
c2Zvcm0tPm1hdHJpeCgpICYmIHFGcm9tTWF0cml4LmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcUZy
b21NYXRyaXggPSBtX2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgpLT5xbWF0cml4KCk7CisgICAgaWYg
KG1fZnJvbVRyYW5zZm9ybSAmJiBxRnJvbU1hdHJpeC5pc0lkZW50aXR5KCkpCisgICAgICAgIHFG
cm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKTsKIAotICAgIGlmKCFtX3RyYW5z
Zm9ybU1hdHJpeCkKLSAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBuZXcgU1ZHTWF0cml4SW1w
bCgpOwotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5yZXNldCgp
OworICAgIG1fdHJhbnNmb3JtTWF0cml4LnJlc2V0KCk7CiAKLSAgICAgICAgaWYoaXNBY2N1bXVs
YXRlZCgpICYmIHJlcGVhdGlvbnMoKSAhPSAwLjAgJiYgbV9sYXN0TWF0cml4KQotICAgICAgICAg
ICAgbV90cmFuc2Zvcm1NYXRyaXgtPm11bHRpcGx5KG1fbGFzdE1hdHJpeC5nZXQoKSk7Ci0gICAg
fQorICAgIGlmIChpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZXRpdGlvbnMoKSAhPSAwLjApCisgICAg
ICAgIG1fdHJhbnNmb3JtTWF0cml4ID0gbV9sYXN0TWF0cml4ICogbV90cmFuc2Zvcm1NYXRyaXg7
CiAgICAgCiAgICAgc3dpdGNoKG1fdHlwZSkKICAgICB7CiAgICAgICAgIGNhc2UgU1ZHX1RSQU5T
Rk9STV9UUkFOU0xBVEU6CiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBkeCA9ICgocVRv
TWF0cml4LmR4KCkgLSBxRnJvbU1hdHJpeC5keCgpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFG
cm9tTWF0cml4LmR4KCk7Ci0gICAgICAgICAgICBkb3VibGUgZHkgPSAoKHFUb01hdHJpeC5keSgp
IC0gcUZyb21NYXRyaXguZHkoKSkgKiB1c2VUaW1lUGVyY2VudGFnZSkgKyBxRnJvbU1hdHJpeC5k
eSgpOworICAgICAgICAgICAgZG91YmxlIGR4ID0gKChxVG9NYXRyaXguZSgpIC0gcUZyb21NYXRy
aXguZSgpKSAqIHVzZVRpbWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmUoKTsKKyAgICAgICAg
ICAgIGRvdWJsZSBkeSA9ICgocVRvTWF0cml4LmYoKSAtIHFGcm9tTWF0cml4LmYoKSkgKiB1c2VU
aW1lUGVyY2VudGFnZSkgKyBxRnJvbU1hdHJpeC5mKCk7CiAKLSAgICAgICAgICAgIG1fdHJhbnNm
b3JtTWF0cml4LT50cmFuc2xhdGUoZHgsIGR5KTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0
cml4LnRyYW5zbGF0ZShkeCwgZHkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NDQUxFOgogICAgICAgICB7Ci0gICAgICAgICAgICBk
b3VibGUgc3ggPSAoKHFUb01hdHJpeC5tMTEoKSAtIHFGcm9tTWF0cml4Lm0xMSgpKSAqIHVzZVRp
bWVQZXJjZW50YWdlKSArIHFGcm9tTWF0cml4Lm0xMSgpOwotICAgICAgICAgICAgZG91YmxlIHN5
ID0gKChxVG9NYXRyaXgubTIyKCkgLSBxRnJvbU1hdHJpeC5tMjIoKSkgKiB1c2VUaW1lUGVyY2Vu
dGFnZSkgKyBxRnJvbU1hdHJpeC5tMjIoKTsKKyAgICAgICAgICAgIGRvdWJsZSBzeCA9ICgocVRv
TWF0cml4LmEoKSAtIHFGcm9tTWF0cml4LmEoKSkgKiB1c2VUaW1lUGVyY2VudGFnZSkgKyBxRnJv
bU1hdHJpeC5hKCk7CisgICAgICAgICAgICBkb3VibGUgc3kgPSAoKHFUb01hdHJpeC5kKCkgLSBx
RnJvbU1hdHJpeC5kKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXguZCgpOwog
Ci0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+c2NhbGVOb25Vbmlmb3JtKHN4LCBzeSk7
CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC5zY2FsZShzeCwgc3kpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JPVEFURToK
QEAgLTI4NSwyNSArMjc0LDIxIEBACiAgICAgICAgICAgICBkb3VibGUgY3ggPSAodG9DeCAtIGZy
b21DeCkgKiB1c2VUaW1lUGVyY2VudGFnZSArIGZyb21DeDsKICAgICAgICAgICAgIGRvdWJsZSBj
eSA9ICh0b0N5IC0gZnJvbUN5KSAqIHVzZVRpbWVQZXJjZW50YWdlICsgZnJvbUN5OwogCi0gICAg
ICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+dHJhbnNsYXRlKGN4LCBjeSk7Ci0gICAgICAgICAg
ICBtX3RyYW5zZm9ybU1hdHJpeC0+cm90YXRlKGFuZ2xlKTsKLSAgICAgICAgICAgIG1fdHJhbnNm
b3JtTWF0cml4LT50cmFuc2xhdGUoLWN4LCAtY3kpOworICAgICAgICAgICAgbV90cmFuc2Zvcm1N
YXRyaXgudHJhbnNsYXRlKGN4LCBjeSk7CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC5y
b3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgudHJh
bnNsYXRlKC1jeCwgLWN5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWDoKICAgICAgICAgewotICAgICAgICAgICAgZG91Ymxl
IHN4ID0gKFNWR0FuZ2xlSW1wbDo6dG9kZWcoYXRhbihxVG9NYXRyaXgubTIxKCkpIC0gYXRhbihx
RnJvbU1hdHJpeC5tMjEoKSkpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICB1c2VUaW1lUGVy
Y2VudGFnZSkgKyBTVkdBbmdsZUltcGw6OnRvZGVnKGF0YW4ocUZyb21NYXRyaXgubTIxKCkpKTsK
LQotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgtPnNrZXdYKHN4KTsKKyAgICAgICAgICAg
IGRvdWJsZSBzeCA9IChhdGFuKHFUb01hdHJpeC5jKCkpIC0gYXRhbihxRnJvbU1hdHJpeC5jKCkp
KSAqIHVzZVRpbWVQZXJjZW50YWdlICsgYXRhbihxRnJvbU1hdHJpeC5jKCkpOworICAgICAgICAg
ICAgbV90cmFuc2Zvcm1NYXRyaXguc2tld1goc3gpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NLRVdZOgogICAgICAgICB7Ci0gICAg
ICAgICAgICBkb3VibGUgc3kgPSAoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuKHFUb01hdHJpeC5t
MTIoKSkgLSBhdGFuKHFGcm9tTWF0cml4Lm0xMigpKSkgKgotICAgICAgICAgICAgICAgICAgICAg
ICAgIHVzZVRpbWVQZXJjZW50YWdlKSArIFNWR0FuZ2xlSW1wbDo6dG9kZWcoYXRhbihxRnJvbU1h
dHJpeC5tMTIoKSkpOwotCi0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+c2tld1koc3kp
OworICAgICAgICAgICAgZG91YmxlIHN5ID0gKGF0YW4ocVRvTWF0cml4LmIoKSkgLSBhdGFuKHFG
cm9tTWF0cml4LmIoKSkpICogdXNlVGltZVBlcmNlbnRhZ2UgKyBhdGFuKHFGcm9tTWF0cml4LmIo
KSk7CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC5za2V3WShzeSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtMzEzLDE0ICsyOTgsMTAg
QEAKICAgICAvLyBFbmQgY29uZGl0aW9uLgogICAgIGlmKHRpbWVQZXJjZW50YWdlID09IDEuMCkK
ICAgICB7Ci0gICAgICAgIGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBt
X3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQorICAgICAg
ICBpZigobV9yZXBlYXRDb3VudCA+IDAgJiYgbV9yZXBldGl0aW9ucyA8IG1fcmVwZWF0Q291bnQg
LSAxKSB8fCBpc0luZGVmaW5pdGUobV9yZXBlYXRDb3VudCkpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIG1fbGFzdE1hdHJpeCA9IG5ldyBTVkdNYXRyaXhJbXBsKCk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmKG1fdHJhbnNmb3JtTWF0cml4KQotICAgICAgICAgICAgICAgIG1fbGFzdE1h
dHJpeC0+Y29weShtX3RyYW5zZm9ybU1hdHJpeC5nZXQoKSk7Ci0KLSAgICAgICAgICAgIG1fcmVw
ZWF0aW9ucysrOworICAgICAgICAgICAgbV9sYXN0TWF0cml4ID0gbV90cmFuc2Zvcm1NYXRyaXg7
CisgICAgICAgICAgICBtX3JlcGV0aXRpb25zKys7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtMzM1LDE0ICszMTYsOCBAQAogICAgICAgICBtX2Zyb21UcmFuc2Zvcm0gPSAw
OwogICAgICAgICBtX2luaXRpYWxUcmFuc2Zvcm0gPSAwOwogCi0gICAgICAgIGlmKCFpc0Zyb3pl
bigpKQotICAgICAgICB7Ci0gICAgICAgICAgICBTVkdNYXRyaXhJbXBsICppbml0aWFsID0gaW5p
dGlhbE1hdHJpeCgpOwotICAgICAgICAgICAgaWYoaW5pdGlhbCkKLSAgICAgICAgICAgICAgICBt
X3RyYW5zZm9ybU1hdHJpeCA9IGluaXRpYWw7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBuZXcgU1ZHTWF0cml4SW1wbCgpOwotICAgICAgICB9
CisgICAgICAgIGlmICghaXNGcm96ZW4oKSkKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4
ID0gaW5pdGlhbE1hdHJpeCgpOwogICAgIH0KIH0KIApAQCAtNDA3LDcgKzM4Miw3IEBACiAgICAg
ICAgICAgICAgICAgYW5nbGUgPSBwYXJzZS50b0RvdWJsZSgpOwogCiAgICAgICAgICAgICAvLyBP
ayBub3cgaGVyZSdzIGEgaGFjayB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGNhbGN1bGF0ZSBjeC9j
eSB2YWx1ZXMsIGlmIGFuZ2xlID0gMCAKLSAgICAgICAgICAgIC8vIG9yIGFuZ2xlPTM2MCAtPiBm
b3IgYW5nbGU9MCBvdXIgbWF0cml4IGlzIG0xMTogMSBtMTI6IDAgbTIxOiAwIG0yMjogMSBkeDog
MCBkeTogMAorICAgICAgICAgICAgLy8gb3IgYW5nbGU9MzYwIC0+IGZvciBhbmdsZT0wIG91ciBt
YXRyaXggaXMgYTogMSBiOiAwIGM6IDAgZDogMSBkeDogMCBkeTogMAogICAgICAgICAgICAgLy8g
QXMgeW91IGNhbiBzZWUgdGhlcmUgaXMgbm8gd2F5IHRvIHJldHJpZXZlIHRoZSBjeC9jeSB2YWx1
ZXMgZm9yIHRoZXNlIGFuZ2xlcy4KICAgICAgICAgICAgIC8vIC0+IHNldCAnbV9yb3RhdGVTcGVj
aWFsQ2FzZScgdG8gdHJ1ZSwgYW5kIHNhdmUgYW5nbGUgPSAxLzM1OSAtPiB0aGlzIHdheSB3ZSBj
YW4gY2FsY3VsYXRlCiAgICAgICAgICAgICAvLyAgICB0aGUgY3gvY3kgdmFsdWVzLCB3aGlsZSBr
ZWVwaW5nIHRoaXMgdWJlci1vcHRpbWl6ZWQgd2F5IG9mIGhhbmRsaW5nIDxhbmltYXRlVHJhbnNm
b3JtPiEKQEAgLTQ0NiwxMyArNDIxLDEyIEBACiAgICAgcmV0dXJuIHBhcnNlZFRyYW5zZm9ybTsK
IH0KIAotdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGw6OmNhbGN1bGF0ZVJvdGF0
aW9uRnJvbU1hdHJpeChjb25zdCBRV01hdHJpeCAmbWF0cml4LCBkb3VibGUgJmFuZ2xlLCBkb3Vi
bGUgJmN4LCBkb3VibGUgJmN5KSBjb25zdAordm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dEltcGw6OmNhbGN1bGF0ZVJvdGF0aW9uRnJvbU1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IG1hdHJpeCwgZG91YmxlJiBhbmdsZSwgZG91YmxlJiBjeCwgZG91YmxlJiBjeSkgY29uc3QKIHsK
LSAgICBkb3VibGUgY29zYSA9IG1hdHJpeC5tMTEoKTsKLSAgICBkb3VibGUgc2luYSA9IC1tYXRy
aXgubTIxKCk7CisgICAgZG91YmxlIGNvc2EgPSBtYXRyaXguYSgpOworICAgIGRvdWJsZSBzaW5h
ID0gLW1hdHJpeC5jKCk7CiAKLSAgICBpZihjb3NhICE9IDEuMCkKLSAgICB7CisgICAgaWYgKGNv
c2EgIT0gMS4wKSB7CiAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgYW5nbGUgdmlhIG1hZ2ljIDsp
CiAgICAgICAgIGRvdWJsZSB0ZW1wID0gU1ZHQW5nbGVJbXBsOjp0b2RlZyhhc2luKHNpbmEpKTsK
ICAgICAgICAgYW5nbGUgPSBTVkdBbmdsZUltcGw6OnRvZGVnKGFjb3MoY29zYSkpOwpAQCAtNDYx
LDggKzQzNSw4IEBACiAgICAgICAgIAogICAgICAgICBkb3VibGUgcmVzID0gKDEgLSBjb3NhKSAr
ICgoc2luYSAqIHNpbmEpIC8gKDEgLSBjb3NhKSk7CiAgICAgICAgIAotICAgICAgICBjeCA9ICht
YXRyaXguZHgoKSAtICgoc2luYSAqIG1hdHJpeC5keSgpKSAvICgxIC0gY29zYSkpKSAvIHJlczsK
LSAgICAgICAgY3kgPSAobWF0cml4LmR5KCkgKyAoKHNpbmEgKiBtYXRyaXguZHgoKSkgLyAoMSAt
IGNvc2EpKSkgLyByZXM7CisgICAgICAgIGN4ID0gKG1hdHJpeC5lKCkgLSAoKHNpbmEgKiBtYXRy
aXguZigpKSAvICgxIC0gY29zYSkpKSAvIHJlczsKKyAgICAgICAgY3kgPSAobWF0cml4LmYoKSAr
ICgoc2luYSAqIG1hdHJpeC5lKCkpIC8gKDEgLSBjb3NhKSkpIC8gcmVzOwogCiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC00NzIsMzAgKzQ0NiwyMiBAQAogICAgIGFuZ2xlID0gMC4wOwogfQog
Ci1TVkdNYXRyaXhJbXBsICpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGw6OmluaXRpYWxN
YXRyaXgoKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
SW1wbDo6aW5pdGlhbE1hdHJpeCgpIGNvbnN0CiB7CiAgICAgaWYgKCF0YXJnZXRFbGVtZW50KCkt
PmlzU3R5bGVkVHJhbnNmb3JtYWJsZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogICAgIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
SW1wbCAqdHJhbnNmb3JtID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsICo+KHRhcmdldEVsZW1lbnQoKSk7CiAgICAgU1ZHVHJhbnNmb3JtTGlzdEltcGwgKnRy
YW5zZm9ybUxpc3QgPSAodHJhbnNmb3JtID8gdHJhbnNmb3JtLT50cmFuc2Zvcm0oKS0+YmFzZVZh
bCgpIDogMCk7Ci0gICAgaWYoIXRyYW5zZm9ybUxpc3QpCi0gICAgICAgIHJldHVybiAwOworICAg
IGlmICghdHJhbnNmb3JtTGlzdCkKKyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwog
ICAgIAogICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1JbXBsPiByZXN1bHQgPSB0cmFuc2Zvcm1MaXN0
LT5jb25jYXRlbmF0ZSgpOwotICAgIGlmKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiAwOworICAg
IGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAKLSAgICBT
VkdNYXRyaXhJbXBsICpyZXQgPSByZXN1bHQtPm1hdHJpeCgpOwotICAgIHJldC0+cmVmKCk7Ci0K
LSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiByZXN1bHQtPm1hdHJpeCgpOwogfQogCi1TVkdN
YXRyaXhJbXBsICpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGw6OnRyYW5zZm9ybU1hdHJp
eCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtTWF0cml4LmdldCgpOwotfQotCiAv
LyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBr
c3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDI1ICsyMiwyNSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBP
UlQKKyNpbmNsdWRlICJTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsLmgiCisKICNpbmNsdWRl
IDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR01hdHJpeElt
cGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNm
b3JtTGlzdEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1l
cmF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCiAKICNpbmNsdWRlIDxr
Y2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KICNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaD4KICNpbmNsdWRlIDxrY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKQEAgLTExMSw5ICsxMTEsOSBAQAogICAgIGZsb2F0
IF94MiA9IHgyKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgX3kyID0geTIoKS0+YmFzZVZhbCgpLT52
YWx1ZSgpOwogCiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQgKmdyYWQg
PSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudCAqPihfZ3Jh
ZCk7Ci0gICAgS0NhbnZhc01hdHJpeCBtYXQ7Ci0gICAgaWYoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+
YmFzZVZhbCgpLT5udW1iZXJPZkl0ZW1zKCkgPiAwKQotICAgICAgICBtYXQgPSBLQ2FudmFzTWF0
cml4KGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4
KCktPnFtYXRyaXgoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdDsKKyAgICBpZiAoZ3JhZGll
bnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5udW1iZXJPZkl0ZW1zKCkgPiAwKQorICAgICAgICBt
YXQgPSBncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCktPmNvbnNvbGlkYXRlKCktPm1hdHJp
eCgpOwogCiAgICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFs
KCkpLnFzdHJpbmcoKTsKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKnBzZXJ2ZXIgPSBnZXRQ
YWludFNlcnZlckJ5SWQoZ2V0RG9jdW1lbnQoKSwgcmVmLm1pZCgxKSk7CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHVHJhbnNmb3JtYWJsZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJh
bnNmb3JtYWJsZUltcGwuaAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHVHJhbnNm
b3JtYWJsZUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
ICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI2LDM0ICsyNywyMiBAQAogCiAj
aW5jbHVkZSAiU1ZHTG9jYXRhYmxlSW1wbC5oIgogCi1jbGFzcyBRTWF0cml4OwotCi1uYW1lc3Bh
Y2UgS0RPTSB7Ci0gICAgY2xhc3MgTm9kZUltcGw7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgQXRvbWljU3RyaW5nOwotICAgIGNsYXNzIEF0dHJpYnV0ZUltcGw7Ci19OwotCi1uYW1l
c3BhY2UgS1NWRwotewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3MgU1ZHVHJh
bnNmb3JtTGlzdEltcGw7CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbDsK
LSAgICBjbGFzcyBTVkdUcmFuc2Zvcm1hYmxlSW1wbCA6IHB1YmxpYyBTVkdMb2NhdGFibGVJbXBs
Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKTsKLSAg
ICAgICAgdmlydHVhbCB+U1ZHVHJhbnNmb3JtYWJsZUltcGwoKTsKIAorICAgIGNsYXNzIFNWR1Ry
YW5zZm9ybWFibGVJbXBsIDogcHVibGljIFNWR0xvY2F0YWJsZUltcGwgeworICAgIHB1YmxpYzoK
ICAgICAgICAgLy8gJ1NWR1RyYW5zZm9ybWFibGUnIGZ1bmN0aW9ucwotICAgICAgICB2aXJ0dWFs
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5zZm9ybSgpIGNvbnN0ID0gMDsKLSAg
ICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpsb2NhbE1hdHJpeCgpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsKiB0cmFuc2Zvcm0oKSBj
b25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4KCkg
Y29uc3QgPSAwOwogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvY2FsVHJh
bnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJbXBs
KikgPSAwOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VUcmFuc2Zvcm1BdHRy
aWJ1dGUoU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxpc3QsIGNvbnN0IEtET006OkF0b21pY1N0cmlu
ZyYgdHJhbnNmb3JtKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VUcmFuc2Zvcm1BdHRyaWJ1
dGUoU1ZHVHJhbnNmb3JtTGlzdEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYW5zZm9ybSk7
CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3Zn
L1NWR1N0eWxlZEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBA
QAogCiAjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIktTVkdTZXR0aW5ncy5oIgotI2luY2x1
ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtz
dmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwy
OSArMjUsMzEgQEAKICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KICNpbmNsdWRlICJE
b2N1bWVudEltcGwuaCIKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUg
IktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbklt
cGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUg
IlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgor
I2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAi
U1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIK
KyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlz
dEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgorI2luY2x1ZGUgImtz
dmcuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tD
YW52YXNNYXRyaXguaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDb250YWluZXIuaD4KICNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2Fu
dmFzSW1hZ2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+
CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybi5o
PgogCi0jaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAi
U1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NW
R0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIKLSNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgotI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdT
dHlsZS5oIgotI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkU3RyaW5nSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0SW1wbC5oIgotCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogU1ZHUGF0dGVybkVsZW1lbnRJ
bXBsOjpTVkdQYXR0ZXJuRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpIDogU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpLCBTVkdUZXN0c0ltcGwo
KSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgp
LCBTVkdGaXRUb1ZpZXdCb3hJbXBsKCksIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyKCkKQEAgLTE2
Niw3ICsxNjgsNyBAQAogICAgIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCi12b2lkIFNW
R1BhdHRlcm5FbGVtZW50SW1wbDo6ZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVybihj
b25zdCBTVkdQYXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgS0NhbnZhc01hdHJpeCAmcGF0dGVy
blRyYW5zZm9ybU1hdHJpeCkgY29uc3QKK3ZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpmaWxs
QXR0cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50SW1w
bCAqdGFyZ2V0LCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNvbnN0
CiB7CiAgICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkp
LnFzdHJpbmcoKTsKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKnJlZlNlcnZlciA9IGdldFBh
aW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCByZWYubWlkKDEpKTsKQEAgLTE5OCw3ICsyMDAs
NyBAQAogICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4ID0gcmVmUGF0dGVybi0+cGF0dGVy
blRyYW5zZm9ybSgpOwogfQogCi12b2lkIFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6ZHJhd1BhdHRl
cm5Db250ZW50SW50b1RpbGUoY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQsIGNv
bnN0IEludFNpemUgJm5ld1NpemUsIEtDYW52YXNNYXRyaXggcGF0dGVyblRyYW5zZm9ybU1hdHJp
eCkgY29uc3QKK3ZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpkcmF3UGF0dGVybkNvbnRlbnRJ
bnRvVGlsZShjb25zdCBTVkdQYXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgY29uc3QgSW50U2l6
ZSAmbmV3U2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4
KSBjb25zdAogewogICAgIEtSZW5kZXJpbmdEZXZpY2UgKmRldmljZSA9IFFQYWludGVyOjpyZW5k
ZXJpbmdEZXZpY2UoKTsKICAgICAKQEAgLTI3Niw3ICsyNzgsNyBAQAogICAgICAgICBpZihzYXZl
ZENvbnRleHQpCiAgICAgICAgICAgICBlLT5wdXNoQXR0cmlidXRlQ29udGV4dChzYXZlZENvbnRl
eHQpOwogCi0gICAgICAgIGl0ZW0tPnNldExvY2FsVHJhbnNmb3JtKHNhdmVkTWF0cml4LnFtYXRy
aXgoKSk7CisgICAgICAgIGl0ZW0tPnNldExvY2FsVHJhbnNmb3JtKHNhdmVkTWF0cml4Lm1hdHJp
eCgpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMzM5LDkgKzM0MSw5IEBACiAgICAgdW5zaWduZWQg
c2hvcnQgc2F2ZWRQYXR0ZXJuVW5pdHMgPSBwYXR0ZXJuVW5pdHMoKS0+YmFzZVZhbCgpOwogICAg
IHVuc2lnbmVkIHNob3J0IHNhdmVkUGF0dGVybkNvbnRlbnRVbml0cyA9IHBhdHRlcm5Db250ZW50
VW5pdHMoKS0+YmFzZVZhbCgpOwogCi0gICAgS0NhbnZhc01hdHJpeCBwYXR0ZXJuVHJhbnNmb3Jt
TWF0cml4OwotICAgIGlmKHBhdHRlcm5UcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5udW1iZXJPZkl0
ZW1zKCkgPiAwKQotICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4ID0gS0NhbnZhc01hdHJp
eChwYXR0ZXJuVHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCkt
PnFtYXRyaXgoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXg7
CisgICAgaWYgKHBhdHRlcm5UcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5udW1iZXJPZkl0ZW1zKCkg
PiAwKQorICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4ID0gcGF0dGVyblRyYW5zZm9ybSgp
LT5iYXNlVmFsKCktPmNvbnNvbGlkYXRlKCktPm1hdHJpeCgpOwogCiAgICAgZmlsbEF0dHJpYnV0
ZXNGcm9tUmVmZXJlbmNlUGF0dGVybih0YXJnZXQsIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpOwog
ICAgIApAQCAtMzcyLDE4ICszNzQsOSBAQAogICAgIHJldHVybiBtX3BhaW50U2VydmVyOwogfQog
Ci1TVkdNYXRyaXhJbXBsICpTVkdQYXR0ZXJuRWxlbWVudEltcGw6OmdldENUTSgpIGNvbnN0CitB
ZmZpbmVUcmFuc2Zvcm0gU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewot
ICAgIFNWR01hdHJpeEltcGwgKm1hdCA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdNYXRy
aXgoKTsKLSAgICBpZihtYXQpCi0gICAgewotICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4g
dmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1
ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKLQotICAgICAgICBtYXQtPm11bHRp
cGx5KHZpZXdCb3guZ2V0KCkpOwotICAgIH0KLQotICAgIHJldHVybiBtYXQ7CisgICAgcmV0dXJu
IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBoZWln
aHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKIH0KIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDog
a3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR0RlZnNFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NW
R0RlZnNFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDggQEAKICNp
ZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlNWR0RlZnNFbGVtZW50SW1wbC5oIgogCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAog
U1ZHRGVmc0VsZW1lbnRJbXBsOjpTVkdEZWZzRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpIDogU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzSW1wbCgpLCBTVkdM
YW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCkKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdUZXh0RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9T
VkdUZXh0RWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxOSArMjIsMTkgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9r
ZG9tLmg+CiAjaW5jbHVkZSAiU1ZHVGV4dEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVFNw
YW5FbGVtZW50SW1wbC5oIgorCisjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUg
IktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlNWR1RTcGFuRWxlbWVudEltcGwu
aCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCiAjaW5jbHVkZSAicmVuZGVyX3N0eWxl
LmgiCi0KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CiAjaW5jbHVkZSA8a2Nh
bnZhcy9SZW5kZXJTVkdUZXh0Lmg+Ci0KKyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KICNpbmNsdWRl
IDxxdmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwpAQCAtNDQsMjAgKzQ0LDExIEBA
CiB7CiB9CiAKLVNWR1RleHRFbGVtZW50SW1wbDo6flNWR1RleHRFbGVtZW50SW1wbCgpCi17Ci19
Ci0KIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKlNWR1RleHRFbGVtZW50SW1wbDo6dHJh
bnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbD4obV90cmFuc2Zvcm0sIHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpT
VkdUZXh0RWxlbWVudEltcGw6OmxvY2FsTWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbGF6
eV9jcmVhdGU8U1ZHTWF0cml4SW1wbD4obV9sb2NhbE1hdHJpeCk7Ci19Ci0KIHZvaWQgU1ZHVGV4
dEVsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJ
bXBsICphdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnRyYW5zZm9y
bUF0dHIpIHsKQEAgLTc3LDcgKzY4LDcgQEAKICAgICBpZihsb2NhbFRyYW5zZm9ybSkgewogICAg
ICAgICBtX2xvY2FsTWF0cml4ID0gbG9jYWxUcmFuc2Zvcm0tPm1hdHJpeCgpOwogICAgICAgICBp
ZiAocmVuZGVyZXIoKSkgewotICAgICAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zv
cm0obV9sb2NhbE1hdHJpeC0+cW1hdHJpeCgpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyKCktPnNl
dExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgpOwogICAgICAgICAgICAgcmVuZGVyZXIoKS0+
c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC04Nyw4ICs3OCw4IEBA
CiB7CiAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OmF0dGFjaCgpOwogCi0gICAgaWYgKHJlbmRl
cmVyKCkgJiYgbV9sb2NhbE1hdHJpeCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFu
c2Zvcm0obV9sb2NhbE1hdHJpeC0+cW1hdHJpeCgpKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAg
ICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiB9CiAK
IFNWR0VsZW1lbnRJbXBsICpTVkdUZXh0RWxlbWVudEltcGw6Om5lYXJlc3RWaWV3cG9ydEVsZW1l
bnQoKSBjb25zdApAQCAtMTA2LDEzICs5NywxOCBAQAogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1h
YmxlSW1wbDo6Z2V0QkJveCh0aGlzKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHVGV4dEVsZW1l
bnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVt
ZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxl
SW1wbDo6Z2V0U2NyZWVuQ1RNKHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdUZXh0RWxl
bWVudEltcGw6OmdldENUTSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnRJ
bXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIG1fbG9jYWxNYXRyaXg7Cit9
CisKK0FmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVudEltcGw6OmdldENUTSgpIGNvbnN0Cit7
CiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6OmdldFNjcmVlbkNUTSh0aGlzKTsKIH0KIApJ
bmRleDoga3N2ZzIvc3ZnL1NWR01hdHJpeEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdNYXRyaXhJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHTWF0
cml4SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDI3NyArMjIsODYgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8bWF0aC5oPgotCi0jaW5j
bHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR0FuZ2xl
SW1wbC5oIgogI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKIAotdXNpbmcgbmFtZXNwYWNlIEtT
Vkc7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR01hdHJpeEltcGw6OlNWR01hdHJpeEltcGwo
KSA6IFNoYXJlZDxTVkdNYXRyaXhJbXBsPigpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1w
bDo6aW52ZXJzZSgpIGNvbnN0CiB7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0
cml4OworICAgIHJlc3VsdC5pbnZlcnQoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1TVkdN
YXRyaXhJbXBsOjpTVkdNYXRyaXhJbXBsKFFNYXRyaXggbWF0KSA6IFNoYXJlZDxTVkdNYXRyaXhJ
bXBsPigpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6bXVsdGlwbHkoY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBzZWNvbmRNYXRyaXgpIGNvbnN0CiB7Ci0gICAgbV9tYXQgPSBtYXQ7Cisg
ICAgcmV0dXJuIG1fbWF0cml4ICogc2Vjb25kTWF0cml4OwogfQogCi1TVkdNYXRyaXhJbXBsOjpT
VkdNYXRyaXhJbXBsKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3Vi
bGUgZSwgZG91YmxlIGYpIDogU2hhcmVkPFNWR01hdHJpeEltcGw+KCkKK0FmZmluZVRyYW5zZm9y
bSBTVkdNYXRyaXhJbXBsOjp0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAogewot
ICAgIG1fbWF0LnNldE1hdHJpeChhLCBiLCBjLCBkLCBlLCBmKTsKKyAgICBBZmZpbmVUcmFuc2Zv
cm0gcmVzdWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnRyYW5zbGF0ZSh4LCB5KTsKKyAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1TVkdNYXRyaXhJbXBsOjp+U1ZHTWF0cml4SW1wbCgpCitBZmZp
bmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6c2NhbGUoZG91YmxlIHNjYWxlRmFjdG9yKSBjb25z
dAogeworICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQu
c2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci12b2lkIFNWR01hdHJpeEltcGw6OnNldEEoZG91YmxlIGEpCitBZmZpbmVUcmFuc2Zvcm0gU1ZH
TWF0cml4SW1wbDo6c2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBz
Y2FsZUZhY3RvclkpIGNvbnN0CiB7Ci0gICAgbV9tYXQuc2V0TWF0cml4KGEsIG1fbWF0Lm0xMigp
LCBtX21hdC5tMjEoKSwgbV9tYXQubTIyKCksIG1fbWF0LmR4KCksIG1fbWF0LmR5KCkpOworICAg
IEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2NhbGUoc2Nh
bGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJs
ZSBTVkdNYXRyaXhJbXBsOjphKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBs
Ojpyb3RhdGUoZG91YmxlIGFuZ2xlKSBjb25zdAogewotICAgIHJldHVybiBtX21hdC5tMTEoKTsK
KyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnJvdGF0
ZShyYWRpYW5zKGFuZ2xlKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTVkdNYXRy
aXhJbXBsOjpzZXRCKGRvdWJsZSBiKQorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OnJv
dGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KSBjb25zdAogewotICAgIG1fbWF0LnNl
dE1hdHJpeChtX21hdC5tMTEoKSwgYiwgbV9tYXQubTIxKCksIG1fbWF0Lm0yMigpLCBtX21hdC5k
eCgpLCBtX21hdC5keSgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7
CisgICAgcmVzdWx0LnJvdGF0ZShhdGFuMih5LCB4KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotZG91YmxlIFNWR01hdHJpeEltcGw6OmIoKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR01h
dHJpeEltcGw6OmZsaXBYKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tYXQubTEyKCk7CisgICAg
QWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5zY2FsZSgtMSwg
MSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRDKGRv
dWJsZSBjKQorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OmZsaXBZKCkgY29uc3QKIHsK
LSAgICBtX21hdC5zZXRNYXRyaXgobV9tYXQubTExKCksIG1fbWF0Lm0xMigpLCBjLCBtX21hdC5t
MjIoKSwgbV9tYXQuZHgoKSwgbV9tYXQuZHkoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3Vs
dCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5zY2FsZSgxLCAtMSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotZG91YmxlIFNWR01hdHJpeEltcGw6OmMoKSBjb25zdAorQWZmaW5lVHJhbnNmb3Jt
IFNWR01hdHJpeEltcGw6OnNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9tYXQubTIxKCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAg
IHJlc3VsdC5za2V3WChyYWRpYW5zKGFuZ2xlKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
dm9pZCBTVkdNYXRyaXhJbXBsOjpzZXREKGRvdWJsZSBkKQorQWZmaW5lVHJhbnNmb3JtIFNWR01h
dHJpeEltcGw6OnNrZXdZKGRvdWJsZSBhbmdsZSkgY29uc3QKIHsKLSAgICBtX21hdC5zZXRNYXRy
aXgobV9tYXQubTExKCksIG1fbWF0Lm0xMigpLCBtX21hdC5tMjEoKSwgZCwgbV9tYXQuZHgoKSwg
bV9tYXQuZHkoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAg
IHJlc3VsdC5za2V3WShyYWRpYW5zKGFuZ2xlKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
ZG91YmxlIFNWR01hdHJpeEltcGw6OmQoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdC5tMjIo
KTsKIH0KIAotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRFKGRvdWJsZSBlKQotewotICAgIG1fbWF0
LnNldE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQubTEyKCksIG1fbWF0Lm0yMSgpLCBtX21hdC5t
MjIoKSwgZSwgbV9tYXQuZHkoKSk7Ci19Ci0KLWRvdWJsZSBTVkdNYXRyaXhJbXBsOjplKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9tYXQuZHgoKTsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpz
ZXRGKGRvdWJsZSBmKQotewotICAgIG1fbWF0LnNldE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQu
bTEyKCksIG1fbWF0Lm0yMSgpLCBtX21hdC5tMjIoKSwgbV9tYXQuZHgoKSwgZik7Ci19Ci0KLWRv
dWJsZSBTVkdNYXRyaXhJbXBsOjpmKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9tYXQuZHkoKTsK
LX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpjb3B5KGNvbnN0IFNWR01hdHJpeEltcGwgKm90aGVy
KQotewotICAgIG1fbWF0LnNldE1hdHJpeChvdGhlci0+bV9tYXQubTExKCksIG90aGVyLT5tX21h
dC5tMTIoKSwgb3RoZXItPm1fbWF0Lm0yMSgpLCBvdGhlci0+bV9tYXQubTIyKCksIG90aGVyLT5t
X21hdC5keCgpLCBvdGhlci0+bV9tYXQuZHkoKSk7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01h
dHJpeEltcGw6OnBvc3RNdWx0aXBseShjb25zdCBTVkdNYXRyaXhJbXBsICpzZWNvbmRNYXRyaXgp
Ci17Ci0gICAgUU1hdHJpeCB0ZW1wKHNlY29uZE1hdHJpeC0+YSgpLCBzZWNvbmRNYXRyaXgtPmIo
KSwgc2Vjb25kTWF0cml4LT5jKCksIHNlY29uZE1hdHJpeC0+ZCgpLCBzZWNvbmRNYXRyaXgtPmUo
KSwgc2Vjb25kTWF0cml4LT5mKCkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRo
aXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OmludmVyc2UoKQotewotICAg
IG1fbWF0ID0gbV9tYXQuaW52ZXJ0KCk7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJp
eEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RUcmFuc2xhdGUoZG91YmxlIHgsICBkb3VibGUgeSkK
LXsKLSAgICAvLyBDb3VsZCBvcHRpbWlzZSB0aGVzZS4KLSAgICBRTWF0cml4IHRlbXA7Ci0gICAg
dGVtcC50cmFuc2xhdGUoeCwgeSk7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhp
czsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFNjYWxlKGRvdWJsZSBz
Y2FsZUZhY3RvcikKLXsKLSAgICBRTWF0cml4IHRlbXA7Ci0gICAgdGVtcC5zY2FsZShzY2FsZUZh
Y3Rvciwgc2NhbGVGYWN0b3IpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7
Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RTY2FsZU5vblVuaWZvcm0o
ZG91YmxlIHNjYWxlRmFjdG9yWCwgZG91YmxlIHNjYWxlRmFjdG9yWSkKLXsKLSAgICBRTWF0cml4
IHRlbXA7Ci0gICAgdGVtcC5zY2FsZShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7Ci0gICAg
bV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZH
TWF0cml4SW1wbDo6cG9zdFJvdGF0ZShkb3VibGUgYW5nbGUpCi17Ci0gICAgUU1hdHJpeCB0ZW1w
OwotICAgIHRlbXAucm90YXRlKGFuZ2xlKTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVy
biB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0Um90YXRlRnJv
bVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpCi17Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRl
bXAucm90YXRlKFNWR0FuZ2xlSW1wbDo6dG9kZWcoYXRhbjIoeSwgeCkpKTsKLSAgICBtX21hdCAq
PSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJ
bXBsOjpwb3N0RmxpcFgoKQotewotICAgIFFNYXRyaXggdGVtcCgtMS4wRiwgMC4wRiwgMC4wRiwg
MS4wRiwgMC4wRiwgMC4wRik7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsK
LX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdEZsaXBZKCkKLXsKLSAgICBR
TWF0cml4IHRlbXAoMS4wRiwgMC4wRiwgMC4wRiwgLTEuMEYsIDAuMEYsIDAuMEYpOwotICAgIG1f
bWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01h
dHJpeEltcGw6OnBvc3RTa2V3WChkb3VibGUgYW5nbGUpCi17Ci0gICAgUU1hdHJpeCB0ZW1wOwot
ICAgIHRlbXAuc2hlYXIodGFuKFNWR0FuZ2xlSW1wbDo6dG9yYWQoYW5nbGUpKSwgMC4wRik7Ci0g
ICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAq
U1ZHTWF0cml4SW1wbDo6cG9zdFNrZXdZKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBRTWF0cml4IHRl
bXA7Ci0gICAgdGVtcC5zaGVhcigwLjBGLCB0YW4oU1ZHQW5nbGVJbXBsOjp0b3JhZChhbmdsZSkp
KTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJ
bXBsICpTVkdNYXRyaXhJbXBsOjptdWx0aXBseShjb25zdCBTVkdNYXRyaXhJbXBsICpzZWNvbmRN
YXRyaXgpCi17Ci0gICAgUU1hdHJpeCB0ZW1wKHNlY29uZE1hdHJpeC0+YSgpLCBzZWNvbmRNYXRy
aXgtPmIoKSwgc2Vjb25kTWF0cml4LT5jKCksIHNlY29uZE1hdHJpeC0+ZCgpLCBzZWNvbmRNYXRy
aXgtPmUoKSwgc2Vjb25kTWF0cml4LT5mKCkpOwotICAgIHRlbXAgKj0gbV9tYXQ7Ci0gICAgbV9t
YXQgPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRy
aXhJbXBsOjp0cmFuc2xhdGUoZG91YmxlIHgsICBkb3VibGUgeSkKLXsKLSAgICBtX21hdC50cmFu
c2xhdGUoeCwgeSk7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01h
dHJpeEltcGw6OnNjYWxlKGRvdWJsZSBzY2FsZUZhY3RvcikKLXsKLSAgICBtX21hdC5zY2FsZShz
Y2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRy
aXhJbXBsICpTVkdNYXRyaXhJbXBsOjpzY2FsZU5vblVuaWZvcm0oZG91YmxlIHNjYWxlRmFjdG9y
WCwgZG91YmxlIHNjYWxlRmFjdG9yWSkKLXsKLSAgICBtX21hdC5zY2FsZShzY2FsZUZhY3Rvclgs
IHNjYWxlRmFjdG9yWSk7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNW
R01hdHJpeEltcGw6OnJvdGF0ZShkb3VibGUgYW5nbGUpCi17Ci0gICAgbV9tYXQucm90YXRlKGFu
Z2xlKTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1w
bDo6cm90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpCi17Ci0gICAgbV9tYXQucm90
YXRlKFNWR0FuZ2xlSW1wbDo6dG9kZWcoYXRhbjIoeSwgeCkpKTsKLSAgICByZXR1cm4gdGhpczsK
LX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6ZmxpcFgoKQotewotICAgIG1fbWF0
LnNjYWxlKC0xLjBmLCAxLjBmKTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1w
bCAqU1ZHTWF0cml4SW1wbDo6ZmxpcFkoKQotewotICAgIG1fbWF0LnNjYWxlKDEuMGYsIC0xLjBm
KTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6
c2tld1goZG91YmxlIGFuZ2xlKQotewotICAgIG1fbWF0LnNoZWFyKHRhbihTVkdBbmdsZUltcGw6
OnRvcmFkKGFuZ2xlKSksIDAuMEYpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJ
bXBsICpTVkdNYXRyaXhJbXBsOjpza2V3WShkb3VibGUgYW5nbGUpCi17Ci0gICAgbV9tYXQuc2hl
YXIoMC4wRiwgdGFuKFNWR0FuZ2xlSW1wbDo6dG9yYWQoYW5nbGUpKSk7Ci0gICAgcmV0dXJuIHRo
aXM7Ci19Ci0KLXZvaWQgU1ZHTWF0cml4SW1wbDo6c2V0TWF0cml4KFFNYXRyaXggbWF0KQotewot
ICAgIG1fbWF0ID0gbWF0OwotfQotCi1RTWF0cml4ICZTVkdNYXRyaXhJbXBsOjpxbWF0cml4KCkK
LXsKLSAgICByZXR1cm4gbV9tYXQ7Ci19Ci0KLWNvbnN0IFFNYXRyaXggJlNWR01hdHJpeEltcGw6
OnFtYXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdDsKLX0KLQotdm9pZCBTVkdNYXRy
aXhJbXBsOjpyZXNldCgpCi17Ci0gICAgbV9tYXQucmVzZXQoKTsKLX0KLQotdm9pZCBTVkdNYXRy
aXhJbXBsOjpyZW1vdmVTY2FsZShkb3VibGUgKnhTY2FsZSwgZG91YmxlICp5U2NhbGUpCi17Ci0g
ICAgZG91YmxlIHN4ID0gc3FydChhKCkgKiBhKCkgKyBiKCkgKiBiKCkpOwotICAgIGRvdWJsZSBz
eSA9IHNxcnQoYygpICogYygpICsgZCgpICogZCgpKTsKLQotICAgIC8vIFJlbW92ZSB0aGUgc2Nh
bGluZyBmcm9tIHRoZSBtYXRyaXguCi0gICAgc2V0QShhKCkgLyBzeCk7IHNldEIoYigpIC8gc3gp
OwotICAgIHNldEMoYygpIC8gc3kpOyBzZXREKGQoKSAvIHN5KTsKLQotICAgICp4U2NhbGUgPSBz
eDsKLSAgICAqeVNjYWxlID0gc3k7Ci19Ci0KIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisr
KyBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNDgg
KzIyLDQ1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1
ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8
a3VybC5oPgotI2luY2x1ZGUgPGtsb2NhbGUuaD4KLQotI2luY2x1ZGUgPGtkb20vSGVscGVyLmg+
Ci0jaW5jbHVkZSAiU2hhcmVkLmgiCi0jaW5jbHVkZSA8a2RvbS9OYW1lc3BhY2UuaD4KLSNpbmNs
dWRlIDxrZG9tL2NvcmUvZG9tYXR0cnMuaD4KLSNpbmNsdWRlIDxrZG9tL2NhY2hlL0tET01Mb2Fk
ZXIuaD4KICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKLSNpbmNsdWRlIDxrZG9tL2NhY2hlL0tET01D
YWNoZWRPYmplY3QuaD4KLSNpbmNsdWRlICJjc3NzdHlsZXNlbGVjdG9yLmgiCi0jaW5jbHVkZSAi
Y3NzX3N0eWxlc2hlZXRpbXBsLmgiCi0jaW5jbHVkZSA8a2RvbS9ldmVudHMvTW91c2VFdmVudElt
cGwuaD4KLSNpbmNsdWRlIDxrZG9tL2V2ZW50cy9LZXlib2FyZEV2ZW50SW1wbC5oPgotI2luY2x1
ZGUgPGtkb20vY29yZS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmg+Ci0KLSNpbmNsdWRlIDxr
Y2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KLQotI2lu
Y2x1ZGUgImtzdmcuaCIKLS8vI2luY2x1ZGUgIkVjbWEuaCIKLSNpbmNsdWRlIDxrc3ZnMi9LU1ZH
Vmlldy5oPgotI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVy
U3R5bGUuaCIKLSNpbmNsdWRlICJTVkdab29tRXZlbnRJbXBsLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCi0jaW5jbHVkZSAiU1ZHU1ZH
RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKICNpbmNs
dWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLSNpbmNsdWRlICJTVkdTY3JpcHRFbGVt
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZH
RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdT
Y3JpcHRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlRWxlbWVudEltcGwuaCIKICNp
bmNsdWRlICJTVkdUaXRsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRG9jdW1lbnRJbXBs
LmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwu
aCIKKyNpbmNsdWRlICJTaGFyZWQuaCIKKyNpbmNsdWRlICJjc3Nfc3R5bGVzaGVldGltcGwuaCIK
KyNpbmNsdWRlICJjc3NzdHlsZXNlbGVjdG9yLmgiCisjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1
ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgPGtj
YW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkb20vSGVscGVyLmg+CisjaW5jbHVkZSA8
a2RvbS9OYW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NhY2hlL0tET01DYWNoZWRPYmplY3Qu
aD4KKyNpbmNsdWRlIDxrZG9tL2NhY2hlL0tET01Mb2FkZXIuaD4KKyNpbmNsdWRlIDxrZG9tL2Nv
cmUvUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9kb21h
dHRycy5oPgorI2luY2x1ZGUgPGtkb20vZXZlbnRzL0tleWJvYXJkRXZlbnRJbXBsLmg+CisjaW5j
bHVkZSA8a2RvbS9ldmVudHMvTW91c2VFdmVudEltcGwuaD4KKyNpbmNsdWRlIDxrbG9jYWxlLmg+
CisjaW5jbHVkZSA8a3N2ZzIvS1NWR1ZpZXcuaD4KKyNpbmNsdWRlIDxrdXJsLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBLU1ZHOwogdXNpbmcgbmFtZXNwYWNlIGtodG1sOwogCi1TVkdEb2N1bWVudElt
cGw6OlNWR0RvY3VtZW50SW1wbChTVkdET01JbXBsZW1lbnRhdGlvbkltcGwgKmksIEtET006OktE
T01WaWV3ICp2aWV3KSA6IEtET006OkRvY3VtZW50SW1wbChpLCB2aWV3KSwgS0RPTTo6Q2FjaGVk
T2JqZWN0Q2xpZW50KCkKK1NWR0RvY3VtZW50SW1wbDo6U1ZHRG9jdW1lbnRJbXBsKFNWR0RPTUlt
cGxlbWVudGF0aW9uSW1wbCAqaSwgRnJhbWVWaWV3ICp2aWV3KSA6IEtET006OkRvY3VtZW50SW1w
bChpLCB2aWV3KSwgS0RPTTo6Q2FjaGVkT2JqZWN0Q2xpZW50KCkKIHsKICAgICBtX3NjcmlwdHNJ
dCA9IDA7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwpJbmRleDoga3N2ZzIvc3ZnL1NWR01hcmtl
ckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTWFya2VyRWxlbWVu
dEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yMiwyNyArMjMsMjkgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9ET01TdHJpbmcu
aD4KLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KLSNpbmNsdWRlIDxrZG9tL2NvcmUv
TmFtZWRBdHRyTWFwSW1wbC5oPgorI2luY2x1ZGUgIlNWR01hcmtlckVsZW1lbnRJbXBsLmgiCiAK
LSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXND
cmVhdG9yLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+Ci0jaW5jbHVk
ZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgotCi0jaW5jbHVkZSAia3N2Zy5o
IgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZUltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1l
cmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgor
I2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIK
LSNpbmNsdWRlICJTVkdBbmdsZUltcGwuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhJbXBsLmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEFuZ2xlSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1
ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCisjaW5jbHVkZSAia3N2Zy5oIgorI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRh
aW5lci5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NyZWF0b3IuaD4KKyNpbmNsdWRlIDxr
Y2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9ET01TdHJp
bmcuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2Nv
cmUvTmFtZWRBdHRyTWFwSW1wbC5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtMTcw
LDggKzE3Myw4IEBACiAgICAgbV9tYXJrZXItPnNldFVzZVN0cm9rZVdpZHRoKG1hcmtlclVuaXRz
KCktPmJhc2VWYWwoKSA9PSBTVkdfTUFSS0VSVU5JVFNfU1RST0tFV0lEVEgpOwogICAgIGRvdWJs
ZSB3ID0gbWFya2VyV2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgIGRvdWJsZSBoID0g
bWFya2VySGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKLSAgICBSZWZQdHI8U1ZHTWF0cml4
SW1wbD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0odywgaCk7Ci0gICAgbV9tYXJr
ZXItPnNldFNjYWxlKHZpZXdCb3gtPnFtYXRyaXgoKS5tMTEoKSwgdmlld0JveC0+cW1hdHJpeCgp
Lm0yMigpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFu
c2Zvcm0odywgaCk7CisgICAgbV9tYXJrZXItPnNldFNjYWxlKHZpZXdCb3guYSgpLCB2aWV3Qm94
LmQoKSk7CiAgICAgCiAgICAgcmV0dXJuIG1fbWFya2VyOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NW
R0ZpdFRvVmlld0JveEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3
Qm94SW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJ
bXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzMSArMjUsMjUgQEAKICNkZWZpbmUgS1NW
R19TVkdGaXRUb1ZpZXdCb3hJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS0RP
TQotewotICAgIGNsYXNzIEF0dHJpYnV0ZUltcGw7Ci0gICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsK
LX07CisjaW5jbHVkZSA8a3htbGNvcmUvUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBLU1ZHCi17Citu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOworICAgIGNsYXNz
IERPTVN0cmluZ0ltcGw7CisgICAgY2xhc3MgTWFwcGVkQXR0cmlidXRlSW1wbDsKICAgICBjbGFz
cyBTVkdBbmltYXRlZFJlY3RJbXBsOwogICAgIGNsYXNzIFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGw7Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKLSAgICBjbGFzcyBTVkdGaXRU
b1ZpZXdCb3hJbXBsCi0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRml0VG9WaWV3Qm94
SW1wbCgpOwotICAgICAgICB2aXJ0dWFsIH5TVkdGaXRUb1ZpZXdCb3hJbXBsKCk7CiAKKyAgICBj
bGFzcyBTVkdGaXRUb1ZpZXdCb3hJbXBsIHsKKyAgICBwdWJsaWM6CiAgICAgICAgIC8vICdTVkdG
aXRUb1ZpZXdCb3hJbXBsJyBmdW5jdGlvbnMKLSAgICAgICAgU1ZHQW5pbWF0ZWRSZWN0SW1wbCAq
dmlld0JveCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9J
bXBsICpwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkUmVj
dEltcGwqIHZpZXdCb3goKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvSW1wbCogcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0OwogCi0gICAgICAgIHZvaWQg
cGFyc2VWaWV3Qm94KEtET006OkRPTVN0cmluZ0ltcGwgKnN0cik7Ci0gICAgICAgIFNWR01hdHJp
eEltcGwgKnZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3
SGVpZ2h0KSBjb25zdDsKKyAgICAgICAgdm9pZCBwYXJzZVZpZXdCb3goRE9NU3RyaW5nSW1wbCop
OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2
aWV3V2lkdGgsIGZsb2F0IHZpZXdIZWlnaHQpIGNvbnN0OwogCi0gICAgICAgIGJvb2wgcGFyc2VN
YXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAg
IGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRSZWN0SW1wbD4gbV92
aWV3Qm94OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgJKHJldmlz
aW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAogCkBAIC0yNiwxOSArMjcsMTQgQEAKIAogI2luY2x1ZGUgIlNoYXJlZC5o
IgogCi1uYW1lc3BhY2UgS0RPTQoteworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFm
ZmluZVRyYW5zZm9ybTsKICAgICBjbGFzcyBET01TdHJpbmdJbXBsOwotfTsKLQotbmFtZXNwYWNl
IEtTVkcKLXsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1N0eWxlZEVs
ZW1lbnRJbXBsOwotICAgIGNsYXNzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsIDogcHVibGlj
IFNoYXJlZDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbD4KLSAgICB7IAorCisgICAgY2xhc3Mg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwgOiBwdWJsaWMgU2hhcmVkPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsPiB7IAogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb0ltcGwoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQpOworICAgICAgICBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCopOwog
ICAgICAgICB2aXJ0dWFsIH5TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbCgpOwogCiAgICAgICAg
IHZvaWQgc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwpAQCAtNDcsMTkgKzQzLDE4IEBACiAgICAg
ICAgIHZvaWQgc2V0TWVldE9yU2xpY2UodW5zaWduZWQgc2hvcnQpOwogICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBtZWV0T3JTbGljZSgpIGNvbnN0OwogICAgICAgICAKLSAgICAgICAgU1ZHTWF0cml4
SW1wbCAqZ2V0Q1RNKGZsb2F0IGxvZ2ljWCwgZmxvYXQgbG9naWNZLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgbG9naWNXaWR0aCwgZmxvYXQgbG9naWNIZWlnaHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwaHlzWCwgZmxvYXQgcGh5c1ksIGZsb2F0
IHBoeXNXaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBoeXNIZWln
aHQpOworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKGZsb2F0IGxvZ2ljWCwgZmxvYXQg
bG9naWNZLAorICAgICAgICAgICAgZmxvYXQgbG9naWNXaWR0aCwgZmxvYXQgbG9naWNIZWlnaHQs
CisgICAgICAgICAgICBmbG9hdCBwaHlzWCwgZmxvYXQgcGh5c1ksIGZsb2F0IHBoeXNXaWR0aCwK
KyAgICAgICAgICAgIGZsb2F0IHBoeXNIZWlnaHQpOwogCi0gICAgICAgIC8vIEhlbHBlcgotICAg
ICAgICB2b2lkIHBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyhLRE9NOjpET01TdHJpbmdJbXBsICpz
dHJpbmcpOworICAgICAgICB2b2lkIHBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyhET01TdHJpbmdJ
bXBsKik7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fYWxpZ247
CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fbWVldE9yU2xpY2U7CiAKLSAgICAgICAgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudEltcGwgKm1fY29udGV4dDsKKyAgICAgICAgY29uc3QgU1ZHU3R5bGVk
RWxlbWVudEltcGwqIG1fY29udGV4dDsKICAgICB9OwogfTsKIApJbmRleDoga3N2ZzIvc3ZnL1NW
R0ZpdFRvVmlld0JveEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGaXRUb1Zp
ZXdCb3hJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3
Qm94SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDI5ICsyMiwyMSBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgor
I2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKIAotI2luY2x1ZGUgPGtkb20vY29yZS9B
dHRySW1wbC5oPgotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+Ci0KKyNpbmNs
dWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgogI2luY2x1
ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIK
ICNpbmNsdWRlICJTVkdSZWN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgi
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZpdFRvVmll
d0JveEltcGwuaCIKLSNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlIDxr
ZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NU3RyaW5nSW1wbC5o
PgorI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdGaXRUb1ZpZXdCb3hJbXBsOjpTVkdGaXRUb1ZpZXdCb3hJbXBsKCkKLXsKLX0KLQotU1ZHRml0
VG9WaWV3Qm94SW1wbDo6flNWR0ZpdFRvVmlld0JveEltcGwoKQotewotfQotCiBTVkdBbmltYXRl
ZFJlY3RJbXBsICpTVkdGaXRUb1ZpZXdCb3hJbXBsOjp2aWV3Qm94KCkgY29uc3QKIHsKICAgICBp
ZighbV92aWV3Qm94KQpAQCAtODIsMTEgKzc0LDExIEBACiAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiV0FSTklORzogTWFsZm9ybWVkIHZpZXdib3ggc3RyaW5nOiAlcyAobDogJWkpIiwgdmlld2Jv
eC5hc2NpaSgpLCB2aWV3Ym94Lmxlbmd0aCgpKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHRml0
VG9WaWV3Qm94SW1wbDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZs
b2F0IHZpZXdIZWlnaHQpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHRml0VG9WaWV3Qm94SW1w
bDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0IHZpZXdIZWln
aHQpIGNvbnN0CiB7CiAgICAgU1ZHUmVjdEltcGwgKnZpZXdCb3hSZWN0ID0gdmlld0JveCgpLT5i
YXNlVmFsKCk7CiAgICAgaWYodmlld0JveFJlY3QtPndpZHRoKCkgPT0gMCB8fCB2aWV3Qm94UmVj
dC0+aGVpZ2h0KCkgPT0gMCkKLSAgICAgICAgcmV0dXJuIFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVh
dGVTVkdNYXRyaXgoKTsKKyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogCiAgICAg
cmV0dXJuIHByZXNlcnZlQXNwZWN0UmF0aW8oKS0+YmFzZVZhbCgpLT5nZXRDVE0odmlld0JveFJl
Y3QtPngoKSwKICAgICAgICAgICAgIHZpZXdCb3hSZWN0LT55KCksIHZpZXdCb3hSZWN0LT53aWR0
aCgpLCB2aWV3Qm94UmVjdC0+aGVpZ2h0KCksCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3Jt
TGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1w
bC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjQgKzIyLDIwIEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKLSNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIK
ICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCisKIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogCiBTVkdUcmFuc2Zvcm1MaXN0SW1wbDo6U1ZHVHJhbnNmb3JtTGlzdEltcGwo
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQpCi06IFNWR0xpc3Q8U1ZHVHJhbnNm
b3JtSW1wbD4oY29udGV4dCkKKyAgICA6IFNWR0xpc3Q8U1ZHVHJhbnNmb3JtSW1wbD4oY29udGV4
dCkKIHsKIH0KIAotU1ZHVHJhbnNmb3JtTGlzdEltcGw6On5TVkdUcmFuc2Zvcm1MaXN0SW1wbCgp
CitTVkdUcmFuc2Zvcm1JbXBsICpTVkdUcmFuc2Zvcm1MaXN0SW1wbDo6Y3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCkgY29uc3QKIHsKLX0K
LQotU1ZHVHJhbnNmb3JtSW1wbCAqU1ZHVHJhbnNmb3JtTGlzdEltcGw6OmNyZWF0ZVNWR1RyYW5z
Zm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4SW1wbCAqbWF0cml4KSBjb25zdAotewogICAgIHJldHVy
biBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgp
OwogfQogCkBAIC02NSwxMiArNjEsMTEgQEAKICAgICBpZighbGVuZ3RoKQogICAgICAgICByZXR1
cm4gMDsKICAgICAgICAgCi0gICAgU1ZHVHJhbnNmb3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVu
dEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybSgpOwotICAgIFNWR01hdHJpeEltcGwgKm1hdHJpeCA9
IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsKLQorICAgIEFmZmluZVRyYW5z
Zm9ybSBtYXRyaXg7CiAgICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KQotICAgICAgICBtYXRyaXgtPm11bHRpcGx5KGdldEl0ZW0oaSktPm1hdHJpeCgpKTsKKyAgICAg
ICAgbWF0cml4ID0gZ2V0SXRlbShpKS0+bWF0cml4KCkgKiBtYXRyaXg7CiAKKyAgICBTVkdUcmFu
c2Zvcm1JbXBsICpvYmogPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7
CiAgICAgb2JqLT5zZXRNYXRyaXgobWF0cml4KTsKICAgICByZXR1cm4gb2JqOwogfQpJbmRleDog
a3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
TG9jYXRhYmxlSW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdMb2NhdGFi
bGVJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNSArMjUsMzMgQEAKICNkZWZpbmUg
S1NWR19TVkdMb2NhdGFibGVJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS1NW
RwoteworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAg
ICBjbGFzcyBTVkdSZWN0SW1wbDsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNz
IFNWR0VsZW1lbnRJbXBsOwogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotICAgIGNs
YXNzIFNWR0xvY2F0YWJsZUltcGwKLSAgICB7CisKKyAgICBjbGFzcyBTVkdMb2NhdGFibGVJbXBs
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0xvY2F0YWJsZUltcGwoKTsKICAgICAgICAgdmly
dHVhbCB+U1ZHTG9jYXRhYmxlSW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdMb2NhdGFibGUnIGZ1
bmN0aW9ucwotICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRF
bGVtZW50KCkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpmYXJ0
aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVt
ZW50SW1wbCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmly
dHVhbCBTVkdFbGVtZW50SW1wbCogZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdCA9IDA7
CiAKLSAgICAgICAgdmlydHVhbCBTVkdSZWN0SW1wbCAqZ2V0QkJveCgpIGNvbnN0ID0gMDsKLSAg
ICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRDVE0oKSBjb25zdCA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3QgPSAwOwotICAgICAg
ICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50
SW1wbCAqZWxlbWVudCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsKiBn
ZXRCQm94KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRD
VE0oKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVl
bkNUTSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0VHJh
bnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBsKikgY29uc3QgPSAwOwogCiAgICAgcHJvdGVj
dGVkOgotICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudEltcGwgKm5lYXJlc3RWaWV3cG9ydEVsZW1l
bnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmVsZW1lbnQpOwotICAgICAgICBzdGF0aWMg
U1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnRJbXBsICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNWR1JlY3RJbXBsICpnZXRCQm94
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICplbGVtZW50KTsKLSAgICAgICAgc3RhdGljIFNW
R01hdHJpeEltcGwgKmdldENUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCk7Ci0gICAg
ICAgIHN0YXRpYyBTVkdNYXRyaXhJbXBsICpnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudElt
cGwgKmVsZW1lbnQpOworICAgICAgICBzdGF0aWMgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3
cG9ydEVsZW1lbnQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGlj
IFNWR0VsZW1lbnRJbXBsKiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdTdHlsZWRF
bGVtZW50SW1wbCopOworICAgICAgICBzdGF0aWMgU1ZHUmVjdEltcGwqIGdldEJCb3goY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9ybSBn
ZXRDVE0oY29uc3QgU1ZHRWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIEFmZmluZVRyYW5z
Zm9ybSBnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwqKTsKICAgICB9OwotfTsKK30K
IAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1l
bnRJbXBsLmgJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsMjUgKzI1LDE4IEBACiAjZGVmaW5lIEtT
VkdfU1ZHUGF0dGVybkVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAi
U1ZHVGVzdHNJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgotI2luY2x1ZGUg
IlNWR1VSSVJlZmVyZW5jZUltcGwuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VMaXN0ZW5l
ci5oIgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCiAjaW5j
bHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgorI2luY2x1ZGUgIlNWR0xhbmdTcGFjZUltcGwu
aCIKICNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUg
IlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHVGVzdHNJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlSW1wbC5oIgorI2luY2x1ZGUgIktSZW5k
ZXJpbmdQYWludFNlcnZlclBhdHRlcm4uaCIKIAotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jl
c291cmNlTGlzdGVuZXIuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXIuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJQYXR0ZXJuLmg+Ci0KLWNsYXNzIEtDYW52YXNJbWFnZTsKLQotbmFtZXNwYWNlIEtTVkcKLXsK
LSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7Ci0gICAgY2xhc3MgU1ZHUGF0dGVybkVs
ZW1lbnRJbXBsOworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25JbXBsOwotICAgIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw7CisK
ICAgICBjbGFzcyBTVkdQYXR0ZXJuRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudEltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR1VSSVJlZmVyZW5jZUltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR1Rlc3RzSW1wbCwKQEAgLTUyLDM1ICs0NiwzNSBAQAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lcgogICAgIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1BhdHRlcm5FbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7CisgICAgICAg
IFNWR1BhdHRlcm5FbGVtZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudEltcGwqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0dGVybkVsZW1lbnRJbXBsKCk7CiAg
ICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNW
R1Rlc3RzSW1wbDo6aXNWYWxpZCgpOyB9CiAKICAgICAgICAgLy8gJ1NWR1BhdHRlcm5FbGVtZW50
JyBmdW5jdGlvbnMKLSAgICAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwgKnBhdHRlcm5V
bml0cygpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCAqcGF0dGVy
bkNvbnRlbnRVbml0cygpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJ
bXBsICpwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkRW51bWVy
YXRpb25JbXBsKiBwYXR0ZXJuVW5pdHMoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbkltcGwqIHBhdHRlcm5Db250ZW50VW5pdHMoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCogcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0OwogCi0gICAg
ICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqeCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRl
ZExlbmd0aEltcGwgKnkoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiB4
KCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogeSgpIGNvbnN0OwogCi0g
ICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqd2lkdGgoKSBjb25zdDsKLSAgICAgICAgU1ZH
QW5pbWF0ZWRMZW5ndGhJbXBsICpoZWlnaHQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsKiB3aWR0aCgpIGNvbnN0OworICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwq
IGhlaWdodCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAotICAgICAg
ICBjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQpOworICAgICAgICBjb25zdCBTVkdTdHlsZWRF
bGVtZW50SW1wbCogcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudElt
cGwqKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VOb3RpZmljYXRpb24oKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0Owog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHls
ZSAqKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVj
dCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUg
KnN0eWxlKTsKLSAgICAgICAgdmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuICpj
YW52YXNSZXNvdXJjZSgpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSopIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICAgICAg
dmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuKiBjYW52YXNSZXNvdXJjZSgpOwog
CiAgICAgICAgIC8vICd2aXJ0dWFsIFNWR0xvY2F0YWJsZScgZnVuY3Rpb25zCi0gICAgICAgIHZp
cnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZm
aW5lVHJhbnNmb3JtIGdldENUTSgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBt
dXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aEltcGw+IG1feDsKQEAgLTkzLDE3ICs4Nywx
NyBAQAogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdElt
cGw+IG1fcGF0dGVyblRyYW5zZm9ybTsKIAotICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSAq
bV90aWxlOworICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSogbV90aWxlOwogICAgICAgICBt
dXRhYmxlIGJvb2wgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzOwotICAgICAgICBtdXRhYmxlIEtS
ZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4gKm1fcGFpbnRTZXJ2ZXI7CisgICAgICAgIG11dGFi
bGUgS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybiogbV9wYWludFNlcnZlcjsKICAgICAgICAg
CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gbm90aWZ5QXR0cmlidXRlQ2hhbmdlIGhlbHBlcnM6
Ci0gICAgICAgIHZvaWQgZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVybihjb25zdCBT
VkdQYXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgS0NhbnZhc01hdHJpeCAmcGF0dGVyblRyYW5z
Zm9ybU1hdHJpeCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgZHJhd1BhdHRlcm5Db250ZW50SW50b1Rp
bGUoY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQsIGNvbnN0IEludFNpemUgJm5l
d1NpemUsIEtDYW52YXNNYXRyaXggcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CisgICAg
ICAgIHZvaWQgZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVybihjb25zdCBTVkdQYXR0
ZXJuRWxlbWVudEltcGwqLCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgp
IGNvbnN0OworICAgICAgICB2b2lkIGRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKGNvbnN0IFNW
R1BhdHRlcm5FbGVtZW50SW1wbCosIGNvbnN0IEludFNpemUmIG5ld1NpemUsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
bm90aWZ5Q2xpZW50c1RvUmVwYWludCgpIGNvbnN0OwogICAgIH07Ci19OworfQogCiAjZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR1BvaW50SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdQb2ludEltcGwuaAkocmV2aXNpb24gMTI0NjMpCisr
KyBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBA
CiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdp
bGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
IAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNiwyMCAr
MjcsMjEgQEAKIAogI2luY2x1ZGUgIlNoYXJlZC5oIgogCisvLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgYSAicGxhaW4gZGF0YSIgY2xhc3MsIGhhbmRsZWQgbW9yZSBsaWtlIFNWR01hdHJpeCwgd2hl
cmUgdGhlCisvLyBiaW5kaW5nIHNpbXBseSBtYXBzIG9uIHRvcCBvZiBhIGJhc2UgY2xhc3MgKGlu
IHRoaXMgY2FzZSwgRmxvYXRQb2ludCkuCisvLyBBcyBmYXIgYXMgSSBjYW4gdGVsbCB0aGUgU1ZH
IERPTSBkb2VzICpub3QqIHJlcXVpcmUgYSBwb2ludCBvYmplY3QgdGhhdCB5b3UgY2FuIG1vZGlm
eQorLy8gdGhhdCBkeW5hbWljYWxseSBjaGFuZ2VzIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQuCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEludFBvaW50OwotfQotCi1uYW1lc3BhY2UgS1NW
RwotewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3Jt
OworICAgIGNsYXNzIEludFBvaW50OwogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwog
ICAgIGNsYXNzIFNWR1BvaW50SW1wbCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUG9pbnRJbXBsPgogICAg
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR1BvaW50SW1wbChjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCAqY29udGV4dCA9IDApOwogICAgICAgICBTVkdQb2ludEltcGwoZmxvYXQgeCwgZmxv
YXQgeSwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQgPSAwKTsKLSAgICAgICAg
U1ZHUG9pbnRJbXBsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50ICZwLCBjb25zdCBTVkdTdHlsZWRF
bGVtZW50SW1wbCAqY29udGV4dCA9IDApOworICAgICAgICBTVkdQb2ludEltcGwoY29uc3QgSW50
UG9pbnQgJnAsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0ID0gMCk7CiAgICAg
ICAgIH5TVkdQb2ludEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHUG9pbnQnIGZ1bmN0aW9ucwpA
QCAtNDksNyArNTEsNyBAQAogICAgICAgICB2b2lkIHNldFkoZmxvYXQgeSk7CiAgICAgICAgIGZs
b2F0IHkoKSBjb25zdDsKIAotICAgICAgICBTVkdQb2ludEltcGwgKm1hdHJpeFRyYW5zZm9ybShT
VkdNYXRyaXhJbXBsICptYXRyaXgpOworICAgICAgICBTVkdQb2ludEltcGwqIG1hdHJpeFRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZs
b2F0IG1feDsKQEAgLTU3LDcgKzU5LDcgQEAKIAogICAgICAgICBjb25zdCBTVkdTdHlsZWRFbGVt
ZW50SW1wbCAqbV9jb250ZXh0OwogICAgIH07Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBP
UlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykK
KysrIGtzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDcgKzI0LDYgQEAKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAK
LSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0SW1wbC5oIgogCkluZGV4OiBrc3ZnMi9zdmcvU1ZH
UG9pbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAko
cmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHUG9p
bnRJbXBsLmgiCiAKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5
bGVkRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogCkBAIC04MSw3ICs4MCw3
IEBACiAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAKLVNW
R1BvaW50SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zvcm0oU1ZHTWF0cml4SW1wbCAq
IC8qIG1hdHJpeCAqLykKK1NWR1BvaW50SW1wbCAqU1ZHUG9pbnRJbXBsOjptYXRyaXhUcmFuc2Zv
cm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiAvKiBtYXRyaXggKi8pCiB7CiAgICAgLy8gVE9ETzog
aW1wbGVtZW50IG1lIQogICAgIHJldHVybiAwOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZl
QXNwZWN0UmF0aW9JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb0ltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE2ICsyMiwxNSBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgorCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgi
CisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5j
bHVkZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KICNpbmNsdWRlIDxxc3RyaW5nLmg+CiAj
aW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJ
bXBsLmg+Ci0KLSNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgot
I2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbChjb25zdCBTVkdTdHlsZWRF
bGVtZW50SW1wbCAqY29udGV4dCkgOiBTaGFyZWQ8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGw+
KCkKQEAgLTEwOCwxMCArMTA3LDEwIEBACiAgICAgICAgIG1fY29udGV4dC0+bm90aWZ5QXR0cmli
dXRlQ2hhbmdlKCk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9J
bXBsOjpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lkdGgs
IGZsb2F0IGxvZ2ljSGVpZ2h0LAorQWZmaW5lVHJhbnNmb3JtIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9JbXBsOjpnZXRDVE0oZmxvYXQgbG9naWNYLCBmbG9hdCBsb2dpY1ksIGZsb2F0IGxvZ2ljV2lk
dGgsIGZsb2F0IGxvZ2ljSGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCAvKnBoeXNYKi8sIGZsb2F0IC8qcGh5c1kqLywgZmxvYXQg
cGh5c1dpZHRoLCBmbG9hdCBwaHlzSGVpZ2h0KQogewotICAgIFNWR01hdHJpeEltcGwgKnRlbXAg
PSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7CisgICAgQWZmaW5lVHJhbnNm
b3JtIHRlbXA7CiAKICAgICBpZihhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VO
S05PV04pCiAgICAgICAgIHJldHVybiB0ZW1wOwpAQCAtMTE5LDMyICsxMTgsMzIgQEAKICAgICBm
bG9hdCB2cGFyID0gbG9naWNXaWR0aCAvIGxvZ2ljSGVpZ2h0OwogICAgIGZsb2F0IHN2Z2FyID0g
cGh5c1dpZHRoIC8gcGh5c0hlaWdodDsKIAotICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fTk9ORSkKKyAgICBpZiAoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19OT05FKQogICAgIHsKLSAgICAgICAgdGVtcC0+c2NhbGVOb25Vbmlmb3JtKHBoeXNXaWR0
aCAvIGxvZ2ljV2lkdGgsIHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7Ci0gICAgICAgIHRlbXAt
PnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKKyAgICAgICAgdGVtcC5zY2FsZShwaHlzV2lk
dGggLyBsb2dpY1dpZHRoLCBwaHlzSGVpZ2h0IC8gbG9naWNIZWlnaHQpOworICAgICAgICB0ZW1w
LnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKICAgICB9CiAgICAgZWxzZSBpZih2cGFyIDwg
c3ZnYXIgJiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX01FRVQpIHx8IHZwYXIg
Pj0gc3ZnYXIgJiYgKG1lZXRPclNsaWNlKCkgPT0gU1ZHX01FRVRPUlNMSUNFX1NMSUNFKSkKICAg
ICB7Ci0gICAgICAgIHRlbXAtPnNjYWxlKHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7CisgICAg
ICAgIHRlbXAuc2NhbGUocGh5c0hlaWdodCAvIGxvZ2ljSGVpZ2h0KTsKIAogICAgICAgICBpZihh
bGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIHx8IGFsaWduKCkgPT0g
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQgfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VS
VkVBU1BFQ1RSQVRJT19YTUlOWU1BWCkKLSAgICAgICAgICAgIHRlbXAtPnRyYW5zbGF0ZSgtbG9n
aWNYLCAtbG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAudHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dp
Y1kpOwogICAgICAgICBlbHNlIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JRFlNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRCB8
fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYKQotICAgICAgICAg
ICAgdGVtcC0+dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxv
Z2ljSGVpZ2h0IC8gcGh5c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKKyAgICAgICAgICAgIHRlbXAu
dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2ljSGVpZ2h0
IC8gcGh5c0hlaWdodCkgLyAyLCAtbG9naWNZKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
dGVtcC0+dHJhbnNsYXRlKC1sb2dpY1ggLSAobG9naWNXaWR0aCAtIHBoeXNXaWR0aCAqIGxvZ2lj
SGVpZ2h0IC8gcGh5c0hlaWdodCksIC1sb2dpY1kpOworICAgICAgICAgICAgdGVtcC50cmFuc2xh
dGUoLWxvZ2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBwaHlz
SGVpZ2h0KSwgLWxvZ2ljWSk7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHRlbXAt
PnNjYWxlKHBoeXNXaWR0aCAvIGxvZ2ljV2lkdGgpOworICAgICAgICB0ZW1wLnNjYWxlKHBoeXNX
aWR0aCAvIGxvZ2ljV2lkdGgpOwogCiAgICAgICAgIGlmKGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JTllNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUlEWU1JTiB8fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlO
KQotICAgICAgICAgICAgdGVtcC0+dHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kpOworICAgICAg
ICAgICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSk7CiAgICAgICAgIGVsc2UgaWYo
YWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRCB8fCBhbGlnbigpID09
IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEIHx8IGFsaWduKCkgPT0gU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQpCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxv
Z2ljWCwgLWxvZ2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8g
cGh5c1dpZHRoKSAvIDIpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxv
Z2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5c1dpZHRo
KSAvIDIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2lj
WCwgLWxvZ2ljWSAtIChsb2dpY0hlaWdodCAtIHBoeXNIZWlnaHQgKiBsb2dpY1dpZHRoIC8gcGh5
c1dpZHRoKSk7CisgICAgICAgICAgICB0ZW1wLnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZIC0g
KGxvZ2ljSGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gdGVtcDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRh
dGlvbkltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25J
bXBsLmgJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9u
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29w
eXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjcsMjAgKzI4LDEwIEBACiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAotbmFt
ZXNwYWNlIEtET00KLXsKLSAgICBjbGFzcyBET01TdHJpbmc7Ci0gICAgY2xhc3MgRG9jdW1lbnRJ
bXBsOwotICAgIGNsYXNzIERvY3VtZW50VHlwZUltcGw7Ci0gICAgY2xhc3MgQ1NTU3R5bGVTaGVl
dEltcGw7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsKIAot
ICAgIHR5cGVkZWYgRnJhbWVWaWV3IEtET01WaWV3OwotfQotCi1uYW1lc3BhY2UgS1NWRwotewot
ICAgIGNsYXNzIFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCA6IHB1YmxpYyBET006OkRPTUltcGxl
bWVudGF0aW9uSW1wbAotICAgIHsKKyAgICBjbGFzcyBTVkdET01JbXBsZW1lbnRhdGlvbkltcGwg
OiBwdWJsaWMgRE9NSW1wbGVtZW50YXRpb25JbXBsIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNW
R0RPTUltcGxlbWVudGF0aW9uSW1wbCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdET01JbXBsZW1l
bnRhdGlvbkltcGwoKTsKQEAgLTQ4LDE0ICszOSwxNCBAQAogICAgICAgICBzdGF0aWMgU1ZHRE9N
SW1wbGVtZW50YXRpb25JbXBsICpzZWxmKCk7CiAKICAgICAgICAgLy8gJ1NWR0RPTUltcGxlbWVu
dGF0aW9uSW1wbCcgZnVuY3Rpb25zCi0gICAgICAgIGJvb2wgaGFzRmVhdHVyZShLRE9NOjpET01T
dHJpbmdJbXBsICpmZWF0dXJlLCBLRE9NOjpET01TdHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdDsK
LSAgICAgICAgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqY3JlYXRlRG9jdW1lbnRUeXBlKEtET006
OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWUsIEtET006OkRPTVN0cmluZ0ltcGwgKnB1Ymxp
Y0lkLCBLRE9NOjpET01TdHJpbmdJbXBsICpzeXN0ZW1JZCwgaW50JiBleGNlcHRpb25jb2RlKSBj
b25zdDsKLSAgICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudChLRE9NOjpE
T01TdHJpbmdJbXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmll
ZE5hbWUsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGludCYgZXhjZXB0aW9uY29k
ZSkgY29uc3Q7Ci0gICAgICAgIEtET006OkRvY3VtZW50SW1wbCAqY3JlYXRlRG9jdW1lbnQoS0RP
TTo6RE9NU3RyaW5nSW1wbCAqbmFtZXNwYWNlVVJJLCBLRE9NOjpET01TdHJpbmdJbXBsICpxdWFs
aWZpZWROYW1lLCBLRE9NOjpEb2N1bWVudFR5cGVJbXBsICpkb2N0eXBlLCBib29sIGNyZWF0ZURv
Y0VsZW1lbnQsIEtET006OktET01WaWV3ICp2aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0
OworICAgICAgICBib29sIGhhc0ZlYXR1cmUoRE9NU3RyaW5nSW1wbCogZmVhdHVyZSwgRE9NU3Ry
aW5nSW1wbCogdmVyc2lvbikgY29uc3Q7CisgICAgICAgIERvY3VtZW50VHlwZUltcGwqIGNyZWF0
ZURvY3VtZW50VHlwZShET01TdHJpbmdJbXBsKiBxdWFsaWZpZWROYW1lLCBET01TdHJpbmdJbXBs
KiBwdWJsaWNJZCwgRE9NU3RyaW5nSW1wbCogc3lzdGVtSWQsIGludCYgZXhjZXB0aW9uY29kZSkg
Y29uc3Q7CisgICAgICAgIERvY3VtZW50SW1wbCogY3JlYXRlRG9jdW1lbnQoRE9NU3RyaW5nSW1w
bCogbmFtZXNwYWNlVVJJLCBET01TdHJpbmdJbXBsKiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5
cGVJbXBsKiBkb2N0eXBlLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0OworICAgICAgICBEb2N1
bWVudEltcGwqIGNyZWF0ZURvY3VtZW50KERPTVN0cmluZ0ltcGwqIG5hbWVzcGFjZVVSSSwgRE9N
U3RyaW5nSW1wbCogcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlSW1wbCogZG9jdHlwZSwgYm9v
bCBjcmVhdGVEb2NFbGVtZW50LCBGcmFtZVZpZXcqLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0
OwogCi0gICAgICAgIHZpcnR1YWwgS0RPTTo6Q1NTU3R5bGVTaGVldEltcGwgKmNyZWF0ZUNTU1N0
eWxlU2hlZXQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdGl0bGUsIEtET006OkRPTVN0cmluZ0ltcGwg
Km1lZGlhKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0SW1wbCogY3JlYXRl
Q1NTU3R5bGVTaGVldChET01TdHJpbmdJbXBsKiB0aXRsZSwgRE9NU3RyaW5nSW1wbCogbWVkaWEp
IGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqZGVmYXVs
dERvY3VtZW50VHlwZSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIERvY3VtZW50VHlwZUltcGwq
IGRlZmF1bHREb2N1bWVudFR5cGUoKSBjb25zdDsKIAogICAgICAgICBib29sIGluQW5pbWF0aW9u
Q29udGV4dCgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEFuaW1hdGlvbkNvbnRleHQoYm9vbCB2
YWx1ZSk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3ltYm9sRWxlbWVudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYz
KQorKysga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsMTYgKzIyLDE4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+CisjaW5jbHVkZSAiU1ZHU3ltYm9sRWxlbWVu
dEltcGwuaCIKIAorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwu
aCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRml0VG9W
aWV3Qm94SW1wbC5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1N5bWJv
bEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgorI2luY2x1
ZGUgPGtkb20vRE9NU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdTeW1i
b2xFbGVtZW50SW1wbDo6U1ZHU3ltYm9sRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCi06IFNWR1N0eWxlZEVsZW1l
bnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHRml0VG9WaWV3Qm94SW1wbCgpCis6IFNWR1N0eWxlZEVs
ZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxl
ZEVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJ
bXBsLmgJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNSwyNSArMjYsMTggQEAKICNpZiBTVkdfU1VQUE9S
VAogCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdTdHlsYWJsZUlt
cGwuaCIKIAotI2luY2x1ZGUgPHF3bWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
UGF0aC5oPgotI2luY2x1ZGUgInJlbmRlcl9zdHlsZS5oIgotCi1jbGFzcyBSZW5kZXJQYXRoOwot
Y2xhc3MgS1JlbmRlcmluZ0RldmljZTsKK2NsYXNzIEtDYW52YXNQYXRoOwogY2xhc3MgS0NhbnZh
c1Jlc291cmNlOwogCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIEtDYW52YXNSZW5k
ZXJpbmdTdHlsZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDU1NTdHlsZURlY2xh
cmF0aW9uSW1wbDsKICAgICBjbGFzcyBSZW5kZXJDYW52YXM7Ci0gICAgY2xhc3MgU1ZHU3R5bGVk
RWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHRWxlbWVudEltcGwKLSAgICB7CisgICAgY2xhc3MgU1ZH
QW5pbWF0ZWRTdHJpbmdJbXBsOworCisgICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudEltcGwgOiBw
dWJsaWMgU1ZHRWxlbWVudEltcGwgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0eWxlZEVs
ZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3Vt
ZW50SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGwoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIHZpcnR1YWwgflNWR1N0
eWxlZEVsZW1lbnRJbXBsKCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdHls
ZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC01MiwzNCArNDYsMzQgQEAKICAgICAgICAg
dmlydHVhbCBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKmNsYXNzTmFtZSgpIGNvbnN0OwogCiAgICAg
ICAgIC8vIFRoZXNlIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIHZpcnR1YWwgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgqIHRvUGF0aERhdGEo
KSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVj
dCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUg
KnN0eWxlKTsKLSAgICAgICAgdmlydHVhbCBLQ2FudmFzUmVzb3VyY2UgKmNhbnZhc1Jlc291cmNl
KCkgeyByZXR1cm4gMDsgfQorICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworICAgICAgICB2aXJ0dWFsIEtDYW52
YXNSZXNvdXJjZSogY2FudmFzUmVzb3VyY2UoKSB7IHJldHVybiAwOyB9CiAgICAgICAgIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmli
dXRlSW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAKLSAgICAgICAgUmVuZGVyQ2FudmFzICpjYW52YXMo
KSBjb25zdDsKKyAgICAgICAgUmVuZGVyQ2FudmFzKiBjYW52YXMoKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyLCBib29s
IHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKEF0dHJpYnV0ZUltcGwqLCBib29sIHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAKICAg
ICAgICAgLy8gSW1hZ2luZSB3ZSdyZSBhIDxyZWN0PiBpbnNpZGUgb2YgYSA8cGF0dGVybj4gc2Vj
dGlvbiB3aXRoIHBhdHRlcm5Db250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IgogICAgICAg
ICAvLyBhbmQgb3VyICd3aWR0aCcgYXR0cmlidXRlIGlzIHNldCB0byA1MCUuIFdoZW4gdGhlIHBh
dHRlcm4gZ2V0cyByZWZlcmVuY2VkIGl0IGtub3dzIHRoZSAiYmJveCIKICAgICAgICAgLy8gb2Yg
aXQncyB1c2VyIGFuZCBoYXMgdG8gcHVzaCB0aGUgImFjdGl2ZSBjbGllbnQncyBiYm94IiBhcyBu
ZXcgYXR0cmlidXRlIGNvbnRleHQgdG8gYWxsIGF0dHJpYnV0ZXMKICAgICAgICAgLy8gb2YgdGhl
ICdyZWN0Jy4gVGhpcyBmdW5jdGlvbiBhbHNvIHJldHVybnMgdGhlIG9sZCBhdHRyaWJ1dGUgY29u
dGV4dCwgdG8gYmUgYWJsZSB0byByZXN0b3JlIGl0Li4uCi0gICAgICAgIHZpcnR1YWwgY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudEltcGwgKnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxl
ZEVsZW1lbnRJbXBsICpjb250ZXh0KTsKKyAgICAgICAgdmlydHVhbCBjb25zdCBTVkdTdHlsZWRF
bGVtZW50SW1wbCogcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudElt
cGwqKTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdm9pZCB1cGRhdGVDYW52YXNJdGVtKCk7
IC8vIEhhbmRsZXMgInBhdGggZGF0YSIgb2JqZWN0IGNoYW5nZXMuLi4gKG5vdCBmb3Igc3R5bGUv
dHJhbnNmb3JtISkKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgUmVmUHRyPEtET006
OkNTU1N0eWxlRGVjbGFyYXRpb25JbXBsPiBtX3BhOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxD
U1NTdHlsZURlY2xhcmF0aW9uSW1wbD4gbV9wYTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZH
QW5pbWF0ZWRTdHJpbmdJbXBsPiBtX2NsYXNzTmFtZTsKIAogICAgICAgICAvLyBPcHRpbWl6ZWQg
dXBkYXRpbmcgbG9naWMKICAgICAgICAgYm9vbCBtX3VwZGF0ZVZlY3RvcmlhbCA6IDE7CiAgICAg
fTsKLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9z
dmcvU1ZHVmlld0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVmll
d0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHVmlld0Vs
ZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDEzIEBACiAjaW5jbHVk
ZSAiU1ZHVmlld0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5o
IgogI2luY2x1ZGUgIlNWR1pvb21BbmRQYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRS
ZWN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwu
aCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1ZpZXdFbGVtZW50SW1wbDo6U1ZHVmll
d0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRv
Y3VtZW50SW1wbCAqZG9jKQotOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpLAotU1ZHRml0VG9WaWV3Qm94SW1wbCgp
LCBTVkdab29tQW5kUGFuSW1wbCgpCis6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRv
YykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBs
LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJr
c3ZnLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNp
bmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgog
I2luY2x1ZGUgIlNWR1N0b3BFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxp
c3RJbXBsLmgiCkBAIC0zOSw5ICszOCw5IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0SW1wbC5oIgogCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8
a2NhbnZhcy9LQ2FudmFzTWF0cml4Lmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ0RldmljZS5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNl
cnZlckdyYWRpZW50Lmg+CisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogCkBAIC0xMzEsOSArMTMwLDkgQEAKICAgICBmbG9hdCBfZnkgPSBmeVNl
dCA/IGZ5KCktPmJhc2VWYWwoKS0+dmFsdWUoKSA6IF9jeTsKIAogICAgIEtSZW5kZXJpbmdQYWlu
dFNlcnZlclJhZGlhbEdyYWRpZW50ICpncmFkID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ1BhaW50
U2VydmVyUmFkaWFsR3JhZGllbnQgKj4oX2dyYWQpOwotICAgIEtDYW52YXNNYXRyaXggbWF0Owor
ICAgIEFmZmluZVRyYW5zZm9ybSBtYXQ7CiAgICAgaWYoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFz
ZVZhbCgpLT5udW1iZXJPZkl0ZW1zKCkgPiAwKQotICAgICAgICBtYXQgPSBLQ2FudmFzTWF0cml4
KGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCkt
PnFtYXRyaXgoKSk7CisgICAgICAgIG1hdCA9IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwo
KS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBRU3RyaW5nIHJlZiA9IEtET006OkRP
TVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkucXN0cmluZygpOwogICAgIEtSZW5kZXJpbmdQYWlu
dFNlcnZlciAqcHNlcnZlciA9IGdldFBhaW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCByZWYu
bWlkKDEpKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBs
LmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjIgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9rZG9tLmg+Ci0j
aW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVt
ZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJB
ZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUg
IlNWR1JlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRl
IDxrY2FudmFzL0tDYW52YXNJdGVtLmg+CisjaW5jbHVkZSA8a2RvbS9rZG9tLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6U1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05h
bWUsIGRvYyksIFNWR0xvY2F0YWJsZUltcGwoKQorOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdO
YW1lLCBkb2MpCiB7CiB9CiAKLVNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjp+U1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoKQotewotfQotCiBTVkdFbGVtZW50SW1wbCAqU1ZHU3R5
bGVkTG9jYXRhYmxlRWxlbWVudEltcGw6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAog
ewogICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRo
aXMpOwpAQCAtNTcsMjAgKzUzLDIwIEBACiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUltcGw6Omdl
dEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnRJbXBsOjpnZXRDVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZExvY2F0YWJs
ZUVsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewogICAgIHJldHVybiBTVkdMb2NhdGFibGVJ
bXBsOjpnZXRDVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZExvY2F0YWJs
ZUVsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0
eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAogewogICAgIHJl
dHVybiBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7CiB9CiAKLVNWR01hdHJp
eEltcGwgKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsOjpnZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQoU1ZHRWxlbWVudEltcGwgKikgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2Nh
dGFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBsICop
IGNvbnN0CiB7CiAgICAgLy8gVE9ETyEKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gQWZmaW5l
VHJhbnNmb3JtKCk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdI
ZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCShyZXZpc2lv
biAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MiwxOCArMjIsMTggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0j
aW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVk
ZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdTdHJpbmdMaXN0SW1wbC5oIgot
I2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0
SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50SW1wbC5oIgotCisjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGNtYXRoPgogI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgogCi0jaW5jbHVkZSA8Y21hdGg+Ci0KIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApJbmRleDoga3N2ZzIvc3ZnL1NW
R1RleHRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVu
dEltcGwuaAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCw0NCArMjUsNDMgQEAKICNkZWZpbmUgS1NWR19T
VkdUZXh0RWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbC5oIgog
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCiAKLW5hbWVzcGFjZSBLU1ZHCi17Citu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHVGV4dEVsZW1lbnRJbXBsIDogcHVibGlj
IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIFNWR1RleHRFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7Ci0gICAgICAgIHZpcnR1YWwgflNWR1RleHRF
bGVtZW50SW1wbCgpOworICAgICAgICBTVkdUZXh0RWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1w
bCopOwogCiAgICAgICAgICAvLyAnU1ZHVGV4dEVsZW1lbnQnIGZ1bmN0aW9ucwotICAgICAgICB2
aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogZmFydGhlc3RW
aWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBsICpn
ZXRCQm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkgY29u
c3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9FbGVtZW50
KFNWR0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgICAgIHZp
cnR1YWwgU1ZHUmVjdEltcGwqIGdldEJCb3goKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZp
bmVUcmFuc2Zvcm0gZ2V0Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtIGdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudEltcGwqKSBjb25zdCB7IHJldHVybiBB
ZmZpbmVUcmFuc2Zvcm0oKTsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1
YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5h
LCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKTsKLSAgICAgICAgdmlydHVhbCBib29sIGNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoRE9NOjpOb2RlSW1wbCAqKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiB0cnVlOyB9
CisgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKE5vZGVJbXBsKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2go
KTsKIAotICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5z
Zm9ybSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0cml4
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCog
dHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2Fs
TWF0cml4KCkgY29uc3Q7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9j
YWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxvY2FsVHJhbnNmb3Jtcyk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2NhbFRyYW5zZm9ybShTVkdUcmFuc2Zvcm1MaXN0SW1w
bCopOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdN
YXRyaXhJbXBsPiBtX2xvY2FsTWF0cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sb2Nh
bE1hdHJpeDsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
SW1wbD4gbV90cmFuc2Zvcm07CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9S
VAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEy
NDYzKQorKysga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjIsMTUgKzIyLDE1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQ
UE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgIlNWR0NpcmNs
ZUVsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRl
ICJTVkdDaXJjbGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1w
bC5oIgotCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzQ3JlYXRvci5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgS1NWRzsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHJldmlz
aW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUg
cHJvamVjdAogCkBAIC0yNSwyMyArMjYsMjMgQEAKICNpZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVk
ZSAiU1ZHTGlzdC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKIAotbmFtZXNwYWNl
IEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07
CisgICAgY2xhc3MgU1ZHVHJhbnNmb3JtSW1wbDsKKwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUxp
c3RJbXBsIDogcHVibGljIFNWR0xpc3Q8U1ZHVHJhbnNmb3JtSW1wbD4KICAgICB7CiAgICAgcHVi
bGljOgotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50
SW1wbCAqY29udGV4dCA9IDApOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1MaXN0SW1w
bCgpOworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50
SW1wbCogPSAwKTsKIAotICAgICAgICBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zv
cm1Gcm9tTWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCkgY29uc3Q7Ci0gICAgICAgIFNWR1Ry
YW5zZm9ybUltcGwgKmNvbnNvbGlkYXRlKCk7CisgICAgICAgIFNWR1RyYW5zZm9ybUltcGwqIGNy
ZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNmb3JtJikgY29uc3Q7
CisgICAgICAgIFNWR1RyYW5zZm9ybUltcGwqIGNvbnNvbGlkYXRlKCk7CiAKICAgICAgICAgLy8g
SW50ZXJuYWwgdXNlIG9ubHkKLSAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCAqY29uY2F0ZW5hdGUo
KSBjb25zdDsKKyAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCogY29uY2F0ZW5hdGUoKSBjb25zdDsK
ICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdOdW1iZXJMaXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R051bWJlckxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHTnVt
YmVyTGlzdEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw2IEBACiAjaWYgU1ZH
X1NVUFBPUlQKICNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVkZSAiU1ZHTWF0cml4
SW1wbC5oIgogI2luY2x1ZGUgIlNWR051bWJlckltcGwuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVt
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR051bWJlckxpc3RJbXBsLmgiCkluZGV4OiBrc3ZnMi9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
c3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24g
MTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjMgKzIyLDIyIEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50SW1wbC5oIgorCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgor
I2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgi
CisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1JbXBsLmgiCisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8a2NhbnZh
cy9LQ2FudmFzSXRlbS5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgPGtkb20vY29y
ZS9BdHRySW1wbC5oPgogI2luY2x1ZGUgPHFyZWdleHAuaD4KICNpbmNsdWRlIDxxc3RyaW5nbGlz
dC5oPgogCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrY2Fu
dmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNJdGVtLmg+Ci0KLSNpbmNs
dWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHRG9jdW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RJbXBsLmgiCi0KIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGw6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbChjb25z
dCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykK
QEAgLTU1LDM5ICs1NCwyNCBAQAogICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RJbXBsPihtX3RyYW5zZm9ybSwgdGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwg
KlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBjb25zdAor
QWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0Q1RN
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHTWF0cml4SW1wbD4obV9sb2Nh
bE1hdHJpeCk7CisgICAgcmV0dXJuIG1fbG9jYWxNYXRyaXggKiBTVkdMb2NhdGFibGVJbXBsOjpn
ZXRDVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7Ci0gICAgU1ZHTWF0
cml4SW1wbCAqY3RtID0gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKHRoaXMpOwotCi0gICAgaWYo
bV9sb2NhbE1hdHJpeCkKLSAgICAgICAgY3RtLT5tdWx0aXBseShtX2xvY2FsTWF0cml4LmdldCgp
KTsKLQotICAgIHJldHVybiBjdG07CisgICAgcmV0dXJuIG1fbG9jYWxNYXRyaXggKiBTVkdMb2Nh
dGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKLXsKLSAg
ICBTVkdNYXRyaXhJbXBsICpjdG0gPSBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhp
cyk7Ci0KLSAgICBpZihtX2xvY2FsTWF0cml4KQotICAgICAgICBjdG0tPm11bHRpcGx5KG1fbG9j
YWxNYXRyaXguZ2V0KCkpOwotCi0gICAgcmV0dXJuIGN0bTsKLX0KLQogdm9pZCBTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OnVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9y
bUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpCiB7CiAgICAgLy8gVXBkYXRlIGNhY2hlZCBsb2Nh
bCBtYXRyaXgKICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gbG9jYWxUcmFuc2Zvcm0gPSBs
b2NhbFRyYW5zZm9ybXMtPmNvbmNhdGVuYXRlKCk7Ci0gICAgaWYobG9jYWxUcmFuc2Zvcm0pIHsK
KyAgICBpZiAobG9jYWxUcmFuc2Zvcm0pIHsKICAgICAgICAgbV9sb2NhbE1hdHJpeCA9IGxvY2Fs
VHJhbnNmb3JtLT5tYXRyaXgoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAg
ICAgIHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgo
KSk7CisgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0
cml4KTsKICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTIwLDE3ICsxMDQsMjIgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtYWJsZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1l
bnRJbXBsICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG1fbG9jYWxNYXRyaXg7CiB9CiAKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudEltcGw6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAq
KSBjb25zdAoreworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKK30KKwogdm9pZCBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OmF0dGFjaCgpCiB7CiAgICAgU1ZHU3R5bGVk
RWxlbWVudEltcGw6OmF0dGFjaCgpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkgJiYgbV9sb2NhbE1h
dHJpeCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJp
eC0+cW1hdHJpeCgpKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+
c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiB9CiAKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDkgKzIyLDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgor
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZH
OwogCiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RJbXBsKGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0KSA6IFNWR0FuaW1hdGVk
VGVtcGxhdGU8U1ZHVHJhbnNmb3JtTGlzdEltcGw+KGNvbnRleHQpCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdG
RU9mZnNldEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjMgKzIyLDIyIEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJp
bmdsaXN0Lmg+CisjaW5jbHVkZSAiU1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVk
ZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlcklt
cGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRl
ICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8a2Nh
bnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmg+CiAj
aW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0Nh
bnZhc1Jlc291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZp
Y2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFk
aWVudC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgPHFzdHJp
bmdsaXN0Lmg+CiAKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJT
dHlsZS5oIgotI2luY2x1ZGUgIlNWR0ZFT2Zmc2V0RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJT
VkdBbmltYXRlZE51bWJlckltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwu
aCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLQogdXNpbmcgbmFtZXNw
YWNlIEtTVkc7CiAKIFNWR0ZFT2Zmc2V0RWxlbWVudEltcGw6OlNWR0ZFT2Zmc2V0RWxlbWVudElt
cGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBs
ICpkb2MpIDogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTMgKzIyLDEzIEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20v
Y29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
bXBsLmgiCiAKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisjaW5jbHVkZSAi
U1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdO
YW1lcy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgotI2luY2x1ZGUgIlNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJ
bXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJh
bnNmb3JtSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmgJ
KHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtE
RSBwcm9qZWN0CiAKQEAgLTI0LDI0ICsyNSwyMCBAQAogI2RlZmluZSBLU1ZHX1NWR1RyYW5zZm9y
bUltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
ICNpbmNsdWRlICJTaGFyZWQuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdN
YXRyaXhJbXBsOworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUlt
cGwgOiBwdWJsaWMgU2hhcmVkPFNWR1RyYW5zZm9ybUltcGw+CiAgICAgewogICAgIHB1YmxpYzoK
ICAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCgpOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zv
cm1JbXBsKCk7CiAKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpIGNvbnN0OworICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgICAg
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXg7
IH0KKyAgICAgICAgZG91YmxlIGFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZTsgfQogCi0g
ICAgICAgIFNWR01hdHJpeEltcGwgKm1hdHJpeCgpIGNvbnN0OwotICAgIAotICAgICAgICBkb3Vi
bGUgYW5nbGUoKSBjb25zdDsKLQotICAgICAgICB2b2lkIHNldE1hdHJpeChTVkdNYXRyaXhJbXBs
ICptYXRyaXgpOworICAgICAgICB2b2lkIHNldE1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
KTsKICAgICAgICAgdm9pZCBzZXRUcmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpOwogICAg
ICAgICB2b2lkIHNldFNjYWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKICAgICAgICAgdm9pZCBz
ZXRSb3RhdGUoZG91YmxlIGFuZ2xlLCBkb3VibGUgY3gsIGRvdWJsZSBjeSk7CkBAIC00OSwxMSAr
NDYsMTEgQEAKICAgICAgICAgdm9pZCBzZXRTa2V3WShkb3VibGUgYW5nbGUpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgZG91YmxlIG1fYW5nbGU7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1f
dHlwZTsKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbWF0cml4OworICAgICAgICBk
b3VibGUgbV9hbmdsZTsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbWF0cml4OwogICAgIH07
Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0NjMpCisrKyBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVj
dAogCkBAIC0yNCwzMCArMjUsMjggQEAKICNkZWZpbmUgS1NWR19TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52
YXNNYXRyaXguaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgImtz
dmcuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBTVkdUcmFuc2Zvcm1JbXBsOwotICAgIGNsYXNzIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
SW1wbCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50SW1wbAotICAgIHsKKworICAgIGNsYXNz
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVt
ZW50SW1wbCB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJ
bXBsICpkb2MpOworICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIHZpcnR1YWwg
flNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZUltcGwqKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGltZXJFdmVudChkb3VibGUg
dGltZVBlcmNlbnRhZ2UpOwogCiAgICAgICAgIC8vIEhlbHBlcnMKLSAgICAgICAgUmVmUHRyPFNW
R1RyYW5zZm9ybUltcGw+IHBhcnNlVHJhbnNmb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmZGF0YSkg
Y29uc3Q7Ci0gICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFX
TWF0cml4ICZtYXRyaXgsIGRvdWJsZSAmYW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNv
bnN0OworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gcGFyc2VUcmFuc2Zvcm1WYWx1
ZShjb25zdCBRU3RyaW5nJikgY29uc3Q7CisgICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25G
cm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGRvdWJsZSYgYW5nbGUsIGRvdWJsZSYg
Y3gsIGRvdWJsZSYgY3kpIGNvbnN0OwogCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmluaXRpYWxN
YXRyaXgoKSBjb25zdDsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqdHJhbnNmb3JtTWF0cml4KCkg
Y29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBpbml0aWFsTWF0cml4KCkgY29uc3Q7Cisg
ICAgICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtTWF0cml4KCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2Zvcm1NYXRyaXg7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIGludCBt
X2N1cnJlbnRJdGVtOwpAQCAtNTcsMTMgKzU2LDEzIEBACiAgICAgICAgIFJlZlB0cjxTVkdUcmFu
c2Zvcm1JbXBsPiBtX2Zyb21UcmFuc2Zvcm07CiAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1J
bXBsPiBtX2luaXRpYWxUcmFuc2Zvcm07CiAKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+
IG1fbGFzdE1hdHJpeDsKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fdHJhbnNmb3Jt
TWF0cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9sYXN0TWF0cml4OworICAgICAgICBB
ZmZpbmVUcmFuc2Zvcm0gbV90cmFuc2Zvcm1NYXRyaXg7CiAKICAgICAgICAgbXV0YWJsZSBib29s
IG1fcm90YXRlU3BlY2lhbENhc2UgOiAxOwogICAgICAgICBib29sIG1fdG9Sb3RhdGVTcGVjaWFs
Q2FzZSA6IDEsIG1fZnJvbVJvdGF0ZVNwZWNpYWxDYXNlIDogMTsKICAgICB9OwotfTsKK30KIAog
I2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAg
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsNTUgKzI1LDQ4IEBACiAjZGVmaW5l
IEtTVkdfU1ZHQW5pbWF0aW9uRWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNs
dWRlICJTVkdUZXN0c0ltcGwuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1
ZGUgIlNWR1N0cmluZ0xpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZEltcGwuaCIKKyNpbmNsdWRlICJTVkdUZXN0c0ltcGwuaCIKIAotbmFtZXNwYWNlIEtT
VkcKLXsKLSAgICBlbnVtIEVGaWxsTW9kZQotICAgIHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICBjbGFzcyBTVkdTdHJpbmdMaXN0SW1wbDsKKworICAgIGVudW0gRUZpbGxNb2RlIHsKICAgICAg
ICAgRklMTF9SRU1PVkUgPSAwLAogICAgICAgICBGSUxMX0ZSRUVaRQogICAgIH07CiAKLSAgICBl
bnVtIEVBZGRpdGl2ZU1vZGUKLSAgICB7CisgICAgZW51bSBFQWRkaXRpdmVNb2RlIHsKICAgICAg
ICAgQURESVRJVkVfUkVQTEFDRSA9IDAsCiAgICAgICAgIEFERElUSVZFX1NVTQogICAgIH07CiAK
LSAgICBlbnVtIEVBY2N1bXVsYXRlTW9kZQotICAgIHsKKyAgICBlbnVtIEVBY2N1bXVsYXRlTW9k
ZSB7CiAgICAgICAgIEFDQ1VNVUxBVEVfTk9ORSA9IDAsCiAgICAgICAgIEFDQ1VNVUxBVEVfU1VN
CiAgICAgfTsKIAotICAgIGVudW0gRUNhbGNNb2RlCi0gICAgeworICAgIGVudW0gRUNhbGNNb2Rl
IHsKICAgICAgICAgQ0FMQ01PREVfRElTQ1JFVEUgPSAwLAogICAgICAgICBDQUxDTU9ERV9MSU5F
QVIsCiAgICAgICAgIENBTENNT0RFX1BBQ0VELAogICAgICAgICBDQUxDTU9ERV9TUExJTkUKICAg
ICB9OwogCi0gICAgZW51bSBFUmVzdGFydAotICAgIHsKKyAgICBlbnVtIEVSZXN0YXJ0IHsKICAg
ICAgICAgUkVTVEFSVF9BTFdBWVMgPSAwLAogICAgICAgICBSRVNUQVJUX1dIRU5OT1RBQ1RJVkUs
CiAgICAgICAgIFJFU1RBUlRfTkVWRVIKICAgICB9OwogCi0gICAgZW51bSBFQXR0cmlidXRlVHlw
ZQotICAgIHsKKyAgICBlbnVtIEVBdHRyaWJ1dGVUeXBlIHsKICAgICAgICAgQVRUUklCVVRFVFlQ
RV9DU1MgPSAwLAogICAgICAgICBBVFRSSUJVVEVUWVBFX1hNTCwKICAgICAgICAgQVRUUklCVVRF
VFlQRV9BVVRPCiAgICAgfTsKIAotICAgIGVudW0gRUFuaW1hdGlvbk1vZGUgLy8gaW50ZXJuYWwK
LSAgICB7CisgICAgZW51bSBFQW5pbWF0aW9uTW9kZSB7IC8vIGludGVybmFsCiAgICAgICAgIE5P
X0FOSU1BVElPTiA9IDAsCiAgICAgICAgIFRPX0FOSU1BVElPTiwKICAgICAgICAgQllfQU5JTUFU
SU9OLApAQCAtMTMwLDcgKzEyNCw3IEBACiAgICAgICAgIGludCBjYWxjdWxhdGVDdXJyZW50VmFs
dWVJdGVtKGRvdWJsZSB0aW1lUGVyY2VudGFnZSk7CiAgICAgICAgIGRvdWJsZSBjYWxjdWxhdGVS
ZWxhdGl2ZVRpbWVQZXJjZW50YWdlKGRvdWJsZSB0aW1lUGVyY2VudGFnZSwgaW50IGN1cnJlbnRJ
dGVtKTsKIAotICAgICAgICBkb3VibGUgcmVwZWF0aW9ucygpIGNvbnN0OworICAgICAgICBkb3Vi
bGUgcmVwZXRpdGlvbnMoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0luZGVmaW5pdGUoZG91Ymxl
IHZhbHVlKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKQEAgLTE2MSw3ICsxNTUsOCBAQAogICAg
ICAgICBkb3VibGUgbV9lbmQ7CiAgICAgICAgIGRvdWJsZSBtX2JlZ2luOwogCi0gICAgICAgIGRv
dWJsZSBtX3JlcGVhdGlvbnM7CisgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBuZWVkIHRvIGJlIGlu
dGVnZXJzIHJhdGhlciB0aGFuIGZsb2F0aW5nIHBvaW50LgorICAgICAgICBkb3VibGUgbV9yZXBl
dGl0aW9uczsKICAgICAgICAgZG91YmxlIG1fcmVwZWF0Q291bnQ7CiAKICAgICAgICAgUmVmUHRy
PFNWR1N0cmluZ0xpc3RJbXBsPiBtX3ZhbHVlczsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyOCArMjIsMjggQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8ZmxvYXQuaD4KKyNp
bmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9rZG9t
Lmg+Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSAiRE9NSW1wbGVt
ZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiY3NzX3ZhbHVlaW1wbC5oIgotI2luY2x1
ZGUgPGtkb20vRE9NU3RyaW5nLmg+Ci0KKyNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgor
I2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVu
dEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1l
cy5oIgorI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3RyaW5n
TGlzdEltcGwuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUg
IlNWR1VSSVJlZmVyZW5jZUltcGwuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5o
IgotI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZH
RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgotI2luY2x1ZGUg
IlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKKyNpbmNs
dWRlICJjc3NfdmFsdWVpbXBsLmgiCiAjaW5jbHVkZSAiY3NzcHJvcGVydGllcy5oIgogI2luY2x1
ZGUgImtzdmdjc3Nwcm9wZXJ0aWVzLmgiCi0KLSNpbmNsdWRlICJYTGlua05hbWVzLmgiCi0KICNp
bmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxmbG9hdC5oPgorI2luY2x1ZGUgPGtkb20vRE9NU3Ry
aW5nLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9r
ZG9tLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAg
LTY0LDcgKzY0LDcgQEAKICAgICBtX21heCA9IDAuMDsKICAgICBtX2JlZ2luID0gMC4wOwogCi0g
ICAgbV9yZXBlYXRpb25zID0gMDsKKyAgICBtX3JlcGV0aXRpb25zID0gMDsKICAgICBtX3JlcGVh
dENvdW50ID0gMDsKIAogICAgIG1fZmlsbCA9IEZJTExfUkVNT1ZFOwpAQCAtNTkxLDkgKzU5MSw5
IEBACiAgICAgICAgICAgICAoZW5kVGltZVBlcmNlbnRhZ2UgLSBiZWdpblRpbWVQZXJjZW50YWdl
KSk7CiB9CiAKLWRvdWJsZSBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6cmVwZWF0aW9ucygpIGNv
bnN0Citkb3VibGUgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnJlcGV0aXRpb25zKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9yZXBlYXRpb25zOworICAgIHJldHVybiBtX3JlcGV0aXRpb25zOwog
fQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOjppc0luZGVmaW5pdGUoZG91YmxlIHZh
bHVlKSBjb25zdApJbmRleDoga3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIv
c3ZnL1NWR0VsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hA
a2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAg
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNyArMjUsMzAg
QEAKICNkZWZpbmUgS1NWR19TVkdFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSA8a2RvbS9jb3JlL1hNTEVsZW1lbnRJbXBsLmg+
CisjaW5jbHVkZSAiZG9tX2VsZW1lbnRpbXBsLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1NWR0VsZW1lbnRJbXBsOwotICAg
IGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotICAgIGNsYXNzIEVjbWE7Ci0gICAgY2xhc3Mg
RG9jdW1lbnRQdHI7Ci0gICAgdHlwZWRlZiBTdHlsZWRFbGVtZW50SW1wbCBYTUxFbGVtZW50SW1w
bDsKIAotICAgIGNsYXNzIFNWR0VsZW1lbnRJbXBsIDogcHVibGljIEtET006OlhNTEVsZW1lbnRJ
bXBsCisgICAgY2xhc3MgU1ZHRWxlbWVudEltcGwgOiBwdWJsaWMgU3R5bGVkRWxlbWVudEltcGwK
ICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7Ci0gICAgICAg
IHZpcnR1YWwgflNWR0VsZW1lbnRJbXBsKCk7CisgICAgICAgIFNWR0VsZW1lbnRJbXBsKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNTdXBwb3J0ZWQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqZmVhdHVyZSwgS0RPTTo6
RE9NU3RyaW5nSW1wbCAqdmVyc2lvbikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N1
cHBvcnRlZChET01TdHJpbmdJbXBsKiBmZWF0dXJlLCBET01TdHJpbmdJbXBsKiB2ZXJzaW9uKSBj
b25zdDsKIAotICAgICAgICBTVkdTVkdFbGVtZW50SW1wbCAqb3duZXJTVkdFbGVtZW50KCkgY29u
c3Q7Ci0gICAgICAgIFNWR0VsZW1lbnRJbXBsICp2aWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKKyAg
ICAgICAgU1ZHU1ZHRWxlbWVudEltcGwqIG93bmVyU1ZHRWxlbWVudCgpIGNvbnN0OworICAgICAg
ICBTVkdFbGVtZW50SW1wbCogdmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICAgICAgLy8g
SGVscGVyIG1ldGhvZHMgdGhhdCByZXR1cm5zIHRoZSBhdHRyIHZhbHVlIGlmIGF0dHIgaXMgc2V0
LCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgIC8vIEl0IHRocm93cyBOT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgdGhlIGVsZW1lbnQgaXMgcmVhZC1vbmx5LgotICAg
ICAgICBLRE9NOjpBdG9taWNTdHJpbmcgdHJ5R2V0QXR0cmlidXRlKGNvbnN0IEtET006OkRPTVN0
cmluZyYgbmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9IEtET006OkF0b21p
Y1N0cmluZygpKSBjb25zdDsKLSAgICAgICAgS0RPTTo6QXRvbWljU3RyaW5nIHRyeUdldEF0dHJp
YnV0ZU5TKGNvbnN0IEtET006OkRPTVN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBLRE9NOjpE
T01TdHJpbmcmIGxvY2FsTmFtZSwgS0RPTTo6QXRvbWljU3RyaW5nIGRlZmF1bHRWYWx1ZSA9IEtE
T006OkF0b21pY1N0cmluZygpKSBjb25zdDsKKyAgICAgICAgQXRvbWljU3RyaW5nIHRyeUdldEF0
dHJpYnV0ZShjb25zdCBET01TdHJpbmcmIG5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUg
PSBBdG9taWNTdHJpbmcoKSkgY29uc3Q7CisgICAgICAgIEF0b21pY1N0cmluZyB0cnlHZXRBdHRy
aWJ1dGVOUyhjb25zdCBET01TdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgRE9NU3RyaW5nJiBs
b2NhbE5hbWUsIEF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUgPSBBdG9taWNTdHJpbmcoKSkgY29u
c3Q7CiAKICAgICAgICAgLy8gSW50ZXJuYWwKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwog
Ci0gICAgICAgIC8vIFRvIGJlIGltcGxlbWVudGVkIGJ5IGFueSBlbGVtZW50IHdoaWNoIGNhbiBl
c3RhYmxpc2ggbmV3IHZpZXdwb3J0cy4uLgorICAgICAgICAvLyBUbyBiZSBpbXBsZW1lbnRlZCBi
eSBhbnkgZWxlbWVudCB3aGljaCBjYW4gZXN0YWJsaXNoIG5ldyB2aWV3cG9ydHMuCiAgICAgICAg
IHZpcnR1YWwgUVN0cmluZyBhZGp1c3RWaWV3cG9ydENsaXBwaW5nKCkgY29uc3QgeyByZXR1cm4g
UVN0cmluZzo6bnVsbDsgfQogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTY4LDggKzYyLDggQEAKICAgICAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpIHsgbV9jbG9zZWQgPSB0cnVlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAq
KSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihET006Ok5vZGVJbXBsICopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGVJbXBsKikgY29uc3Q7
CiAgICAgICAgIAogICAgICAgICAvLyBoZWxwZXI6CiAgICAgICAgIGJvb2wgaXNDbG9zZWQoKSBj
b25zdCB7IHJldHVybiBtX2Nsb3NlZDsgfQpAQCAtNzgsMTYgKzcyLDE0IEBACiAgICAgICAgIGJv
b2wgbV9jbG9zZWQ7CiAgICAgICAgIHZvaWQgYWRkU1ZHRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlSW1wbCogYXR0cik7CiAgICAgfTsK
LX07CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBzdGF0aWMgaW5saW5lIFNWR0VsZW1lbnRJ
bXBsICpzdmdfZHluYW1pY19jYXN0KEtET006Ok5vZGVJbXBsICpub2RlKSB7Ci0gICAgICAgIFNW
R0VsZW1lbnRJbXBsICpzdmdFbGVtZW50ID0gTlVMTDsKKyAgICBpbmxpbmUgU1ZHRWxlbWVudElt
cGwqIHN2Z19keW5hbWljX2Nhc3QoTm9kZUltcGwgKm5vZGUpIHsKKyAgICAgICAgU1ZHRWxlbWVu
dEltcGwqIHN2Z0VsZW1lbnQgPSAwOwogICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc1NWR0Vs
ZW1lbnQoKSkKICAgICAgICAgICAgIHN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50
SW1wbCAqPihub2RlKTsKICAgICAgICAgcmV0dXJuIHN2Z0VsZW1lbnQ7CiAgICAgfQotfTsKK30K
IAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdNYXRy
aXhJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hdHJpeEltcGwuaAkocmV2aXNp
b24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBa
aW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
IApAQCAtMjQsODEgKzI1LDQ1IEBACiAjZGVmaW5lIEtTVkdfU1ZHTWF0cml4SW1wbF9ICiAjaWYg
U1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgPHFtYXRyaXguaD4KLQorI2luY2x1ZGUgIkFmZmluZVRy
YW5zZm9ybS5oIgogI2luY2x1ZGUgIlNoYXJlZC5oIgogCi1uYW1lc3BhY2UgS1NWRwoteworbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR01hdHJpeEltcGwgOiBwdWJsaWMgU2hhcmVk
PFNWR01hdHJpeEltcGw+CiAgICAgeyAKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR01hdHJpeElt
cGwoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBj
LCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbChR
TWF0cml4IG1hdCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR01hdHJpeEltcGwoKTsKKyAgICAgICAg
U1ZHTWF0cml4SW1wbCgpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBsKGRvdWJsZSBhLCBkb3Vi
bGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpCisgICAgICAgICAg
ICA6IG1fbWF0cml4KGEsIGIsIGMsIGQsIGUsIGYpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBs
KGNvbnN0IFNWR01hdHJpeEltcGwmIG90aGVyKSA6IFNoYXJlZDxTVkdNYXRyaXhJbXBsPigpLCBt
X21hdHJpeChvdGhlci5tX21hdHJpeCkgeyB9CisgICAgICAgIFNWR01hdHJpeEltcGwoY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBtYXRyaXgpIDogbV9tYXRyaXgobWF0cml4KSB7IH0KIAotICAgICAg
ICB2b2lkIHNldEEoZG91YmxlIGEpOwotICAgICAgICBkb3VibGUgYSgpIGNvbnN0OworICAgICAg
ICBvcGVyYXRvciBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKCkgY29uc3QgeyByZXR1cm4gbV9tYXRy
aXg7IH0KIAotICAgICAgICB2b2lkIHNldEIoZG91YmxlIGIpOwotICAgICAgICBkb3VibGUgYigp
IGNvbnN0OworICAgICAgICBkb3VibGUgYSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmEoKTsg
fQorICAgICAgICBkb3VibGUgYigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmIoKTsgfQorICAg
ICAgICBkb3VibGUgYygpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmMoKTsgfQorICAgICAgICBk
b3VibGUgZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmQoKTsgfQorICAgICAgICBkb3VibGUg
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmUoKTsgfQorICAgICAgICBkb3VibGUgZigpIGNv
bnN0IHsgcmV0dXJuIG1fbWF0cml4LmYoKTsgfQogCi0gICAgICAgIHZvaWQgc2V0Qyhkb3VibGUg
Yyk7Ci0gICAgICAgIGRvdWJsZSBjKCkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBp
bnZlcnNlKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXREKGRvdWJsZSBkKTsKLSAgICAgICAg
ZG91YmxlIGQoKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG11bHRpcGx5KGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNs
YXRlKGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBz
Y2FsZShkb3VibGUgc2NhbGVGYWN0b3IpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0g
c2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3Rvclkp
IGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gcm90YXRlKGRvdWJsZSBhbmdsZSkgY29u
c3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSByb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBk
b3VibGUgeSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBmbGlwWCgpIGNvbnN0Owor
ICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gZmxpcFkoKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJh
bnNmb3JtIHNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5zZm9y
bSBza2V3WShkb3VibGUgYW5nbGUpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0RShkb3VibGUg
ZSk7Ci0gICAgICAgIGRvdWJsZSBlKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBzZXRGKGRvdWJs
ZSBmKTsKLSAgICAgICAgZG91YmxlIGYoKSBjb25zdDsKLQotICAgICAgICB2b2lkIGNvcHkoY29u
c3QgU1ZHTWF0cml4SW1wbCAqb3RoZXIpOwotCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmludmVy
c2UoKTsKLQotICAgICAgICAvLyBQcmUtbXVsdGlwbGllZCBvcGVyYXRpb25zLCBhcyBwZXIgdGhl
IHNwZWNzLgotICAgICAgICBTVkdNYXRyaXhJbXBsICptdWx0aXBseShjb25zdCBTVkdNYXRyaXhJ
bXBsICpzZWNvbmRNYXRyaXgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICp0cmFuc2xhdGUoZG91
YmxlIHgsIGRvdWJsZSB5KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2NhbGUoZG91YmxlIHNj
YWxlRmFjdG9yKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2NhbGVOb25Vbmlmb3JtKGRvdWJs
ZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpOwotICAgICAgICBTVkdNYXRyaXhJ
bXBsICpyb3RhdGUoZG91YmxlIGFuZ2xlKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcm90YXRl
RnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpm
bGlwWCgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpmbGlwWSgpOwotICAgICAgICBTVkdNYXRy
aXhJbXBsICpza2V3WChkb3VibGUgYW5nbGUpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpza2V3
WShkb3VibGUgYW5nbGUpOwotCi0gICAgICAgIC8vIFBvc3QtbXVsdGlwbGllZCBvcGVyYXRpb25z
Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RNdWx0aXBseShjb25zdCBTVkdNYXRyaXhJbXBs
ICpzZWNvbmRNYXRyaXgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0VHJhbnNsYXRlKGRv
dWJsZSB4LCBkb3VibGUgeSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTY2FsZShkb3Vi
bGUgc2NhbGVGYWN0b3IpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0U2NhbGVOb25Vbmlm
b3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3RvclkpOwotICAgICAgICBT
VkdNYXRyaXhJbXBsICpwb3N0Um90YXRlKGRvdWJsZSBhbmdsZSk7Ci0gICAgICAgIFNWR01hdHJp
eEltcGwgKnBvc3RSb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0gICAgICAg
IFNWR01hdHJpeEltcGwgKnBvc3RGbGlwWCgpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0
RmxpcFkoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFNrZXdYKGRvdWJsZSBhbmdsZSk7
Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTa2V3WShkb3VibGUgYW5nbGUpOwotCi0gICAg
ICAgIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICAvLyBLU1ZHIGhlbHBlciBtZXRob2QKLSAgICAg
ICAgUU1hdHJpeCAmcW1hdHJpeCgpOwotICAgICAgICBjb25zdCBRTWF0cml4ICZxbWF0cml4KCkg
Y29uc3Q7Ci0KLSAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBzY2FsaW5nIGNvbXBvbmVudCBvZiB0
aGUgbWF0cml4IGFuZCBmYWN0b3IgaXQgb3V0LiBBZnRlcgotICAgICAgICAvLyB0aGlzIG9wZXJh
dGlvbiwgdGhlIG1hdHJpeCBoYXMgeCBhbmQgeSBzY2FsZSBvZiBvbmUuCi0gICAgICAgIHZvaWQg
cmVtb3ZlU2NhbGUoZG91YmxlICp4U2NhbGUsIGRvdWJsZSAqeVNjYWxlKTsKLQogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZvaWQgc2V0TWF0cml4KFFNYXRyaXggbWF0KTsKLSAgICAgICAgUU1hdHJp
eCBtX21hdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbWF0cml4OwogICAgIH07Ci19Owor
fQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVDb2xvckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5p
bWF0ZUNvbG9yRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9T
VkdBbmltYXRlQ29sb3JFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsy
MywxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5o
IgogI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdEltcGwuaCIKICNpbmNsdWRlICJr
ZG9tL0RPTVN0cmluZy5oIgotI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwpAQCAtMjA0LDcgKzIwNSw3IEBACiAgICAgICAgIGIgPSBtX2luaXRpYWxD
b2xvci5ibHVlKCk7CiAgICAgfQogCi0gICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdGlv
bnMoKSAhPSAwLjApCisgICAgaWYoaXNBY2N1bXVsYXRlZCgpICYmIHJlcGV0aXRpb25zKCkgIT0g
MC4wKQogICAgIHsKICAgICAgICAgciArPSBtX2xhc3RDb2xvci5yZWQoKTsKICAgICAgICAgZyAr
PSBtX2xhc3RDb2xvci5ncmVlbigpOwpAQCAtMjE3LDEwICsyMTgsMTAgQEAKICAgICAvLyBFbmQg
Y29uZGl0aW9uLgogICAgIGlmKHRpbWVQZXJjZW50YWdlID09IDEuMCkKICAgICB7Ci0gICAgICAg
IGlmKChtX3JlcGVhdENvdW50ID4gMCAmJiBtX3JlcGVhdGlvbnMgPCBtX3JlcGVhdENvdW50IC0g
MSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQorICAgICAgICBpZigobV9yZXBlYXRD
b3VudCA+IDAgJiYgbV9yZXBldGl0aW9ucyA8IG1fcmVwZWF0Q291bnQgLSAxKSB8fCBpc0luZGVm
aW5pdGUobV9yZXBlYXRDb3VudCkpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fbGFzdENvbG9y
ID0gbV9jdXJyZW50Q29sb3I7Ci0gICAgICAgICAgICBtX3JlcGVhdGlvbnMrKzsKKyAgICAgICAg
ICAgIG1fcmVwZXRpdGlvbnMrKzsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR0Vs
ZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTQgKzQ2LDEwIEBACiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiAKLVNWR0Vs
ZW1lbnRJbXBsOjpTVkdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiBLRE9NOjpYTUxFbGVtZW50SW1wbCh0YWdO
YW1lLCBkb2MpLCBtX2Nsb3NlZChmYWxzZSkKK1NWR0VsZW1lbnRJbXBsOjpTVkdFbGVtZW50SW1w
bChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudEltcGwgKmRvYykgOiBTdHls
ZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBtX2Nsb3NlZChmYWxzZSkKIHsKIH0KIAotU1ZH
RWxlbWVudEltcGw6On5TVkdFbGVtZW50SW1wbCgpCi17Ci19Ci0KIGJvb2wgU1ZHRWxlbWVudElt
cGw6OmlzU3VwcG9ydGVkKEtET006OkRPTVN0cmluZ0ltcGwgKmZlYXR1cmUsIEtET006OkRPTVN0
cmluZ0ltcGwgKnZlcnNpb24pIGNvbnN0CiB7CiAgICAgaWYoU1ZHRE9NSW1wbGVtZW50YXRpb25J
bXBsOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pKQpAQCAtMTMyLDcg
KzEyOCw3IEBACiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYmx1ckF0dHIpCiAgICAg
ICAgIGFkZFNWR0V2ZW50TGlzdGVuZXIoRE9NRm9jdXNPdXRFdmVudCwgYXR0cik7CiAgICAgZWxz
ZQotICAgICAgICBLRE9NOjpTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
YXR0cik7CisgICAgICAgIFN0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKTsKIH0KIAogYm9vbCBTVkdFbGVtZW50SW1wbDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihET006Ok5vZGVJbXBsICpjaGlsZCkgY29uc3QKSW5kZXg6IGtzdmcyL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVt
ZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxl
bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyNiArMjIsMjYgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJ
bXBsLmg+Ci0jaW5jbHVkZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1ZGUgIlNWR0dyYWRp
ZW50RWxlbWVudEltcGwuaCIKKwogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgotCi0jaW5jbHVk
ZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgi
Ci0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1MaXN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR0dyYWRpZW50RWxlbWVudEltcGwuaCIKLSNpbmNs
dWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVySW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlckltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIK
KyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUg
IlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnRJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKLQorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIK
KyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bWFibGVJbXBsLmgiCisjaW5jbHVkZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgorI2luY2x1ZGUgImtz
dmcuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KKyNpbmNsdWRlIDxrY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVu
ZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0
NjMpCisrKyBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjIsMjQgKzIyLDI0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAor
I2luY2x1ZGUgIlNWR0FFbGVtZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgi
CisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbklt
cGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdI
ZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgImNzc2hlbHBlci5oIgor
I2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52
YXNDb250YWluZXIuaD4KKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CisjaW5j
bHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgorI2luY2x1ZGUgPGtkb20v
SGVscGVyLmg+CiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAjaW5jbHVkZSA8a2Rv
bS9ldmVudHMvTW91c2VFdmVudEltcGwuaD4KICNpbmNsdWRlIDxrZG9tL2V2ZW50cy9rZG9tZXZl
bnRzLmg+Ci0jaW5jbHVkZSA8a2RvbS9IZWxwZXIuaD4KLSNpbmNsdWRlICJ4bWwvZG9tMl9ldmVu
dHNpbXBsLmgiCi0jaW5jbHVkZSAiY3NzaGVscGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJbXBs
LmgiCi0KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+Ci0jaW5jbHVkZSA8a2Nh
bnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ0RldmljZS5oPgotCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIlNWR05h
bWVzLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSA8a3N2ZzIvS1NWR1BhcnQu
aD4KLSNpbmNsdWRlICJTVkdBRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0
cmluZ0ltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDYzKQor
Kysga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IHByb2plY3QKIApAQCAtMjQsNTIgKzI1LDQyIEBACiAjZGVmaW5lIEtTVkdfU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgogCi1jbGFzcyBRTWF0cml4Owot
Ci1uYW1lc3BhY2UgS0RPTQotewotICAgIGNsYXNzIE5vZGVJbXBsOwotICAgIGNsYXNzIERPTVN0
cmluZ0ltcGw7Ci0gICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZH
Ci17Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBTVkdUcmFuc2Zvcm1MaXN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RJbXBsOwotICAgIGNsYXNzIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbCA6
IHB1YmxpYyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCwgcHVibGljIFNWR1RyYW5zZm9y
bWFibGVJbXBsCi0gICAgeworCisgICAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsIDogcHVibGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLCBwdWJsaWMgU1ZH
VHJhbnNmb3JtYWJsZUltcGwgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtE
T006OkRvY3VtZW50SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwog
ICAgICAgICB2aXJ0dWFsIH5TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwoKTsKICAg
ICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZFRyYW5zZm9ybWFibGUoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgLy8gJ1NWR1RyYW5zZm9ybWFibGUnIGZ1bmN0
aW9ucwotICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5z
Zm9ybSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0cml4
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbCog
dHJhbnNmb3JtKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2Fs
TWF0cml4KCkgY29uc3Q7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnU1ZHTG9jYXRhYmxl
JwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAg
ICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFNjcmVlbkNUTSgpIGNvbnN0OwotICAgICAgICB2
aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTSgpIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNv
bnN0OworICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsKiBmYXJ0aGVzdFZpZXdwb3J0RWxl
bWVudCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgU1ZHUmVjdEltcGwgKmdldEJCb3goKSBj
b25zdDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQoU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFNWR1Jl
Y3RJbXBsKiBnZXRCQm94KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3Jt
IGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNvbnN0OwogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJ
bXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1h
cHBlZEF0dHJpYnV0ZUltcGwqKTsKIAotICAgICAgICB2b2lkIHVwZGF0ZUxvY2FsVHJhbnNmb3Jt
KFNWR1RyYW5zZm9ybUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpOworICAgICAgICB2b2lkIHVw
ZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJbXBsKik7CiAgICAgICAgIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIG11
dGFibGUgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbG9jYWxNYXRyaXg7CisgICAgICAgIEFmZmlu
ZVRyYW5zZm9ybSBtX2xvY2FsTWF0cml4OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RJbXBsPiBtX3RyYW5zZm9ybTsKICAgICB9OwogfTsKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2MykK
KysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHBy
b2plY3QKIApAQCAtMjcsMjkgKzI4LDIzIEBACiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudElt
cGwuaCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgiCiAKLW5hbWVzcGFjZSBLU1ZHCi17
Ci0gICAgY2xhc3MgU1ZHUmVjdEltcGw7Ci0gICAgY2xhc3MgU1ZHTWF0cml4SW1wbDsKLSAgICBj
bGFzcyBTVkdFbGVtZW50SW1wbDsKLSAgICBjbGFzcyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50
SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1wbCwgcHVibGljIFNWR0xvY2F0YWJsZUlt
cGwKLSAgICB7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudEltcGwsIHB1YmxpYyBTVkdM
b2NhdGFibGVJbXBsIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3Vt
ZW50SW1wbCAqZG9jKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dEltcGwoKTsKKyAgICAgICAgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNTdHlsZWRMb2NhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICAgICAgLy8gJ1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQnIGZ1bmN0aW9ucwotICAgICAg
ICB2aXJ0dWFsIFNWR0VsZW1lbnRJbXBsICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9y
dEVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCogZmFydGhl
c3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJbXBs
ICpnZXRCQm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RN
KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RNKCkg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9FbGVt
ZW50KFNWR0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTVkdS
ZWN0SW1wbCogZ2V0QkJveCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBnZXRDVE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2Ny
ZWVuQ1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFRyYW5z
Zm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNvbnN0OwogICAgIH07Ci19OworfQogCiAj
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDExICsyMiwxMiBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2Nv
cmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgiCiAK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIu
aCIKLSNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDxr
ZG9tL2NvcmUvQXR0ckltcGwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisr
KyBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiwyNSArMjIsMjQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KKyNpbmNsdWRlICJTVkdGRVR1cmJ1bGVuY2VF
bGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KKyNpbmNs
dWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
SW50ZWdlckltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwuaCIKKyNpbmNs
dWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIK
KyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5j
bHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtj
YW52YXMvS0NhbnZhc1Jlc291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRl
cnMuaD4KKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaD4KICNpbmNsdWRlIDxr
Y2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZp
Y2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KKyNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVkZSAia3N2Zy5o
IgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0j
aW5jbHVkZSAiU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlckltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5o
IgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkSW50ZWdlckltcGwuaCIKLSNpbmNsdWRlICJTVkdET01J
bXBsZW1lbnRhdGlvbkltcGwuaCIKLQogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnRJbXBsOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbChjb25zdCBLRE9N
OjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiAKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3Zn
Mi9zdmcvU1ZHVHJhbnNmb3JtYWJsZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzNCAr
MjIsMjUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVk
ZSA8cXJlZ2V4cC5oPgotI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+Ci0jaW5jbHVkZSA8a3htbGNv
cmUvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCiAKLSNp
bmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KLQotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
cy5oPgotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgotCi0jaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCisjaW5jbHVk
ZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBs
LmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1w
bC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBs
LmgiCiAjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2lu
Y2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1w
bC5oPgorI2luY2x1ZGUgPGt4bWxjb3JlL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDxxcmVnZXhw
Lmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAK
LVNWR1RyYW5zZm9ybWFibGVJbXBsOjpTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpIDogU1ZHTG9jYXRh
YmxlSW1wbCgpCi17Ci19Ci0KLVNWR1RyYW5zZm9ybWFibGVJbXBsOjp+U1ZHVHJhbnNmb3JtYWJs
ZUltcGwoKQotewotfQotCiB2b2lkIFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9y
bUF0dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqbGlzdCwgY29uc3QgS0RPTTo6QXRvbWlj
U3RyaW5nJiB0cmFuc2Zvcm0pCiB7CiAgICAgLy8gU3BsaXQgc3RyaW5nIGZvciBoYW5kbGluZyAx
IHRyYW5zZm9ybSBzdGF0ZW1lbnQgYXQgYSB0aW1lCkBAIC0xMDYsMTUgKzk3LDEzIEBACiAgICAg
ICAgICAgICB0LT5zZXRTa2V3WChwYXJhbXNbMF0udG9Eb3VibGUoKSk7CiAgICAgICAgIGVsc2Ug
aWYgKHN1YnRyYW5zZm9ybVswXSA9PSAic2tld3kiICYmIChwYXJhbXMuY291bnQoKSA9PSAxKSkK
ICAgICAgICAgICAgIHQtPnNldFNrZXdZKHBhcmFtc1swXS50b0RvdWJsZSgpKTsKLSAgICAgICAg
ZWxzZSBpZiAoc3VidHJhbnNmb3JtWzBdID09ICJtYXRyaXgiICYmIChwYXJhbXMuY291bnQoKSA9
PSA2KSkgewotICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqcmV0ID0gbmV3IFNWR01hdHJpeElt
cGwocGFyYW1zWzBdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMV0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1syXS50b0RvdWJsZSgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zWzNdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJhbXNbNF0udG9Eb3VibGUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKTsKLSAg
ICAgICAgICAgIHQtPnNldE1hdHJpeChyZXQpOwotICAgICAgICB9CisgICAgICAgIGVsc2UgaWYg
KHN1YnRyYW5zZm9ybVswXSA9PSAibWF0cml4IiAmJiAocGFyYW1zLmNvdW50KCkgPT0gNikpCisg
ICAgICAgICAgICB0LT5zZXRNYXRyaXgoQWZmaW5lVHJhbnNmb3JtKHBhcmFtc1swXS50b0RvdWJs
ZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1sxXS50b0RvdWJsZSgpLAorICAgICAgICAgICAg
ICAgIHBhcmFtc1syXS50b0RvdWJsZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1szXS50b0Rv
dWJsZSgpLAorICAgICAgICAgICAgICAgIHBhcmFtc1s0XS50b0RvdWJsZSgpLAorICAgICAgICAg
ICAgICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAodC0+
dHlwZSgpID09IFNWR19UUkFOU0ZPUk1fVU5LTk9XTikKICAgICAgICAgICAgIGJyZWFrOyAvLyBm
YWlsZWQgdG8gcGFyc2UgYSB2YWxpZCB0cmFuc2Zvcm0sIGFib3J0LgpJbmRleDoga3N2ZzIvc3Zn
L1NWR01hcmtlckVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hcmtl
ckVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
ICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCw1MCArMjUsNDMgQEAKICNkZWZp
bmUgS1NWR19TVkdNYXJrZXJFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1
ZGUgIlNWR0xhbmdTcGFjZUltcGwuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCisj
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKICNpbmNsdWRlICJT
VkdGaXRUb1ZpZXdCb3hJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwuaCIKIAotY2xhc3MgS0NhbnZhc01hcmtlcjsKLQotbmFtZXNwYWNl
IEtET00KLXsKLSAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci19OwotCi1uYW1lc3BhY2UgS1NWRwot
eworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuZ2xlSW1wbDsKICAgICBjbGFz
cyBTVkdBbmltYXRlZEFuZ2xlSW1wbDsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7
CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGw7CisKICAgICBjbGFzcyBTVkdN
YXJrZXJFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1wbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2VJbXBsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0Zp
dFRvVmlld0JveEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXJrZXJFbGVt
ZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVu
dEltcGwgKmRvYyk7CisgICAgICAgIFNWR01hcmtlckVsZW1lbnRJbXBsKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdNYXJr
ZXJFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdNYXJrZXJFbGVtZW50JyBmdW5jdGlv
bnMKLSAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICpyZWZYKCkgY29uc3Q7Ci0gICAgICAg
IFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqcmVmWSgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uSW1wbCAqbWFya2VyVW5pdHMoKSBjb25zdDsKLSAgICAgICAgU1ZHQW5pbWF0
ZWRMZW5ndGhJbXBsICptYXJrZXJXaWR0aCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZExl
bmd0aEltcGwgKm1hcmtlckhlaWdodCgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEVudW1l
cmF0aW9uSW1wbCAqb3JpZW50VHlwZSgpIGNvbnN0OwotICAgICAgICBTVkdBbmltYXRlZEFuZ2xl
SW1wbCAqb3JpZW50QW5nbGUoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBs
KiByZWZYKCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogcmVmWSgpIGNv
bnN0OworICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCogbWFya2VyVW5pdHMoKSBj
b25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsKiBtYXJrZXJXaWR0aCgpIGNvbnN0
OworICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwqIG1hcmtlckhlaWdodCgpIGNvbnN0Owor
ICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCogb3JpZW50VHlwZSgpIGNvbnN0Owor
ICAgICAgICBTVkdBbmltYXRlZEFuZ2xlSW1wbCogb3JpZW50QW5nbGUoKSBjb25zdDsKIAogICAg
ICAgICB2b2lkIHNldE9yaWVudFRvQXV0bygpOwotICAgICAgICB2b2lkIHNldE9yaWVudFRvQW5n
bGUoU1ZHQW5nbGVJbXBsICphbmdsZSk7CisgICAgICAgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShT
VkdBbmdsZUltcGwqKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAgICAgCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7
IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlck9iamVjdCAqY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBraHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxl
KTsKLSAgICAgICAgdmlydHVhbCBLQ2FudmFzTWFya2VyICpjYW52YXNSZXNvdXJjZSgpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICAgICAgdmlydHVhbCBLQ2FudmFzTWFya2Vy
KiBjYW52YXNSZXNvdXJjZSgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsPiBtX3JlZlg7CkBAIC03OSw3ICs3Myw3IEBACiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkQW5nbGVJbXBsPiBtX29yaWVudEFuZ2xlOwog
ICAgICAgICBLQ2FudmFzTWFya2VyICptX21hcmtlcjsKICAgICB9OwotfTsKK30KIAogI2VuZGlm
IC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5jcHAJKHJldmlz
aW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlr
b2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHBy
b2plY3QKIApAQCAtMjIsNDQgKzIzLDIwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBT
VkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkZWJ1Zy5oPgotCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1w
bC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKKwogI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHVHJhbnNmb3JtSW1wbDo6U1ZHVHJhbnNmb3JtSW1w
bCgpIDogU2hhcmVkPFNWR1RyYW5zZm9ybUltcGw+KCkKK1NWR1RyYW5zZm9ybUltcGw6OlNWR1Ry
YW5zZm9ybUltcGwoKSA6IG1fdHlwZShTVkdfVFJBTlNGT1JNX1VOS05PV04pLCBtX2FuZ2xlKDAp
CiB7Ci0gICAgbV9tYXRyaXggPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7
Ci0KLSAgICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1VOS05PV047Ci0gICAgbV9hbmdsZSA9IDA7
CiB9CiAKLVNWR1RyYW5zZm9ybUltcGw6On5TVkdUcmFuc2Zvcm1JbXBsKCkKK3ZvaWQgU1ZHVHJh
bnNmb3JtSW1wbDo6c2V0TWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewot
fQotCi11bnNpZ25lZCBzaG9ydCBTVkdUcmFuc2Zvcm1JbXBsOjp0eXBlKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV90eXBlOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdUcmFuc2Zvcm1JbXBsOjpt
YXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5nZXQoKTsKLX0KLQotZG91Ymxl
IFNWR1RyYW5zZm9ybUltcGw6OmFuZ2xlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hbmdsZTsK
LX0KLQotdm9pZCBTVkdUcmFuc2Zvcm1JbXBsOjpzZXRNYXRyaXgoU1ZHTWF0cml4SW1wbCAqbWF0
cml4KQotewogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fTUFUUklYOwogICAgIG1fYW5nbGUg
PSAwOwogICAgIApAQCAtNzEsOCArNDgsNyBAQAogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1f
VFJBTlNMQVRFOwogICAgIG1fYW5nbGUgPSAwOwogICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgp
OwotICAgIG1fbWF0cml4LT50cmFuc2xhdGUodHgsIHR5KTsKKyAgICBtX21hdHJpeCA9IHRyYW5z
bGF0aW9uTWF0cml4KHR4LCB0eSk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2Nh
bGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCkBAIC04MCw4ICs1Niw3IEBACiAgICAgbV90eXBlID0g
U1ZHX1RSQU5TRk9STV9TQ0FMRTsKICAgICBtX2FuZ2xlID0gMDsKICAgICAKLSAgICBtX21hdHJp
eC0+cmVzZXQoKTsKLSAgICBtX21hdHJpeC0+c2NhbGVOb25Vbmlmb3JtKHN4LCBzeSk7CisgICAg
bV9tYXRyaXggPSBzY2FsZU1hdHJpeChzeCwgc3kpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUlt
cGw6OnNldFJvdGF0ZShkb3VibGUgYW5nbGUsIGRvdWJsZSBjeCwgZG91YmxlIGN5KQpAQCAtOTAs
MTAgKzY1LDkgQEAKICAgICBtX2FuZ2xlID0gYW5nbGU7CiAgICAgCiAgICAgLy8gVE9ETzogdG9T
dHJpbmcoKSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggY2FuIHNob3cgY3gsIGN5IChuZWVkIHRvIGJl
IHN0b3JlZD8pCi0gICAgbV9tYXRyaXgtPnJlc2V0KCk7Ci0gICAgbV9tYXRyaXgtPnRyYW5zbGF0
ZShjeCwgY3kpOwotICAgIG1fbWF0cml4LT5yb3RhdGUoYW5nbGUpOwotICAgIG1fbWF0cml4LT50
cmFuc2xhdGUoLWN4LCAtY3kpOworICAgIG1fbWF0cml4ID0gdHJhbnNsYXRpb25NYXRyaXgoY3gs
IGN5KTsKKyAgICBtX21hdHJpeC5yb3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgIG1fbWF0cml4
LnRyYW5zbGF0ZSgtY3gsIC1jeSk7CiB9CiAKIHZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2tl
d1goZG91YmxlIGFuZ2xlKQpAQCAtMTAxLDggKzc1LDcgQEAKICAgICBtX3R5cGUgPSBTVkdfVFJB
TlNGT1JNX1NLRVdYOwogICAgIG1fYW5nbGUgPSBhbmdsZTsKICAgICAKLSAgICBtX21hdHJpeC0+
cmVzZXQoKTsKLSAgICBtX21hdHJpeC0+c2tld1goYW5nbGUpOworICAgIG1fbWF0cml4ID0gc2tl
d1hNYXRyaXgocmFkaWFucyhhbmdsZSkpOwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNl
dFNrZXdZKGRvdWJsZSBhbmdsZSkKQEAgLTExMCwxMCArODMsOCBAQAogICAgIG1fdHlwZSA9IFNW
R19UUkFOU0ZPUk1fU0tFV1k7CiAgICAgbV9hbmdsZSA9IGFuZ2xlOwogICAgIAotICAgIG1fbWF0
cml4LT5yZXNldCgpOwotICAgIG1fbWF0cml4LT5za2V3WShhbmdsZSk7CisgICAgbV9tYXRyaXgg
PSBza2V3WU1hdHJpeChyYWRpYW5zKGFuZ2xlKSk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKICNl
bmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAkocmV2aXNpb24g
MTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMg
WmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
CiAKQEAgLTI1LDMwICsyNiwyMSBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRlICJJbnRQ
b2ludC5oIgotCi0jaW5jbHVkZSAiU1ZHVGVzdHNJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1Nw
YWNlSW1wbC5oIgorI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgotI2luY2x1ZGUgIlNWR1pvb21BbmRQ
YW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogI2luY2x1ZGUgIlNWR1N0
eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwuaCIKKyNpbmNsdWRlICJTVkdUZXN0c0ltcGwuaCIKKyNpbmNsdWRlICJT
Vkdab29tQW5kUGFuSW1wbC5oIgogCi1uYW1lc3BhY2UgS0RPTQotewotICAgIGNsYXNzIERvY3Vt
ZW50UHRyOwotfTsKLQogbmFtZXNwYWNlIEtTVkcKIHsKLSAgICBjbGFzcyBTVkdSZWN0SW1wbDsK
ICAgICBjbGFzcyBTVkdBbmdsZUltcGw7CiAgICAgY2xhc3MgU1ZHUG9pbnRJbXBsOwogICAgIGNs
YXNzIFNWR051bWJlckltcGw7CiAgICAgY2xhc3MgU1ZHTGVuZ3RoSW1wbDsKLSAgICBjbGFzcyBT
VkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUltcGw7Ci0gICAgY2xhc3MgU1ZH
QW5pbWF0ZWRMZW5ndGhJbXBsOwotICAgIGNsYXNzIFRpbWVTY2hlZHVsZXI7CisKICAgICBjbGFz
cyBTVkdTVkdFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1w
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUZXN0c0ltcGwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlSW1wbCwKQEAg
LTU3LDI2ICs0OSwyNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1pvb21BbmRQYW5JbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU1ZHRWxlbWVu
dEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJ
bXBsICpkb2MpOwotICAgICAgICB2aXJ0dWFsIH5TVkdTVkdFbGVtZW50SW1wbCgpOworICAgICAg
ICBTVkdTVkdFbGVtZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dEltcGwqKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkcoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIFNWR1Rlc3RzSW1wbDo6aXNWYWxpZCgpOyB9CiAKICAgICAgICAgLy8gJ1NWR1NWR0Vs
ZW1lbnQnIGZ1bmN0aW9ucwotICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwgKngoKSBjb25z
dDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICp5KCkgY29uc3Q7Ci0gICAgICAgIFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbCAqd2lkdGgoKSBjb25zdDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsICpoZWlnaHQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBs
KiB4KCkgY29uc3Q7CisgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCogeSgpIGNvbnN0Owor
ICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwqIHdpZHRoKCkgY29uc3Q7CisgICAgICAgIFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbCogaGVpZ2h0KCkgY29uc3Q7CiAKLSAgICAgICAgS0RPTTo6QXRv
bWljU3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0Q29u
dGVudFNjcmlwdFR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKTsKKyAgICAgICAg
QXRvbWljU3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0
Q29udGVudFNjcmlwdFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsKIAotICAgICAgICBL
RE9NOjpBdG9taWNTdHJpbmcgY29udGVudFN0eWxlVHlwZSgpIGNvbnN0OwotICAgICAgICB2b2lk
IHNldENvbnRlbnRTdHlsZVR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKTsKKyAg
ICAgICAgQXRvbWljU3RyaW5nIGNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdDsKKyAgICAgICAgdm9p
ZCBzZXRDb250ZW50U3R5bGVUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSk7CiAKLSAgICAg
ICAgU1ZHUmVjdEltcGwgKnZpZXdwb3J0KCkgY29uc3Q7CisgICAgICAgIFNWR1JlY3RJbXBsKiB2
aWV3cG9ydCgpIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IHBpeGVsVW5pdFRvTWlsbGltZXRlclgo
KSBjb25zdDsKICAgICAgICAgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWSgpIGNvbnN0OwpA
QCAtODYsNDcgKzc3LDQ3IEBACiAgICAgICAgIGJvb2wgdXNlQ3VycmVudFZpZXcoKSBjb25zdDsK
ICAgICAgICAgdm9pZCBzZXRVc2VDdXJyZW50Vmlldyhib29sIGN1cnJlbnRWaWV3KTsKIAotICAg
ICAgICAvLyBTVkdWaWV3U3BlY0ltcGwgKmN1cnJlbnRWaWV3KCkgY29uc3Q7CisgICAgICAgIC8v
IFNWR1ZpZXdTcGVjSW1wbCogY3VycmVudFZpZXcoKSBjb25zdDsKIAogICAgICAgICBmbG9hdCBj
dXJyZW50U2NhbGUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRDdXJyZW50U2NhbGUoZmxvYXQg
c2NhbGUpOwogCi0gICAgICAgIFNWR1BvaW50SW1wbCAqY3VycmVudFRyYW5zbGF0ZSgpIGNvbnN0
OworICAgICAgICBTVkdQb2ludEltcGwqIGN1cnJlbnRUcmFuc2xhdGUoKSBjb25zdDsKIAogICAg
ICAgICB1bnNpZ25lZCBsb25nIHN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyBtYXhfd2FpdF9t
aWxsaXNlY29uZHMpOwogICAgICAgICB2b2lkIHVuc3VzcGVuZFJlZHJhdyh1bnNpZ25lZCBsb25n
IHN1c3BlbmRfaGFuZGxlX2lkKTsKICAgICAgICAgdm9pZCB1bnN1c3BlbmRSZWRyYXdBbGwoKTsK
ICAgICAgICAgdm9pZCBmb3JjZVJlZHJhdygpOwogCi0gICAgICAgIEtET006Ok5vZGVMaXN0SW1w
bCAqZ2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0SW1wbCAqcmVjdCwgU1ZHRWxlbWVudEltcGwg
KnJlZmVyZW5jZUVsZW1lbnQpOwotICAgICAgICBLRE9NOjpOb2RlTGlzdEltcGwgKmdldEVuY2xv
c3VyZUxpc3QoU1ZHUmVjdEltcGwgKnJlY3QsIFNWR0VsZW1lbnRJbXBsICpyZWZlcmVuY2VFbGVt
ZW50KTsKLSAgICAgICAgYm9vbCBjaGVja0ludGVyc2VjdGlvbihTVkdFbGVtZW50SW1wbCAqZWxl
bWVudCwgU1ZHUmVjdEltcGwgKnJlY3QpOwotICAgICAgICBib29sIGNoZWNrRW5jbG9zdXJlKFNW
R0VsZW1lbnRJbXBsICplbGVtZW50LCBTVkdSZWN0SW1wbCAqcmVjdCk7CisgICAgICAgIE5vZGVM
aXN0SW1wbCogZ2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0SW1wbCosIFNWR0VsZW1lbnRJbXBs
KiByZWZlcmVuY2VFbGVtZW50KTsKKyAgICAgICAgTm9kZUxpc3RJbXBsKiBnZXRFbmNsb3N1cmVM
aXN0KFNWR1JlY3RJbXBsKiwgU1ZHRWxlbWVudEltcGwqIHJlZmVyZW5jZUVsZW1lbnQpOworICAg
ICAgICBib29sIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnRJbXBsKiwgU1ZHUmVjdEltcGwq
KTsKKyAgICAgICAgYm9vbCBjaGVja0VuY2xvc3VyZShTVkdFbGVtZW50SW1wbCosIFNWR1JlY3RJ
bXBsKik7CiAgICAgICAgIHZvaWQgZGVzZWxlY3RBbGwoKTsKIAotICAgICAgICBzdGF0aWMgU1ZH
TnVtYmVySW1wbCAqY3JlYXRlU1ZHTnVtYmVyKCk7Ci0gICAgICAgIHN0YXRpYyBTVkdMZW5ndGhJ
bXBsICpjcmVhdGVTVkdMZW5ndGgoKTsKLSAgICAgICAgc3RhdGljIFNWR0FuZ2xlSW1wbCAqY3Jl
YXRlU1ZHQW5nbGUoKTsKLSAgICAgICAgc3RhdGljIFNWR1BvaW50SW1wbCAqY3JlYXRlU1ZHUG9p
bnQoY29uc3QgSW50UG9pbnQgJnAgPSBJbnRQb2ludCgpKTsKLSAgICAgICAgc3RhdGljIFNWR01h
dHJpeEltcGwgKmNyZWF0ZVNWR01hdHJpeCgpOwotICAgICAgICBzdGF0aWMgU1ZHUmVjdEltcGwg
KmNyZWF0ZVNWR1JlY3QoKTsKLSAgICAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUltcGwgKmNyZWF0
ZVNWR1RyYW5zZm9ybSgpOwotICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCAqY3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpOworICAgICAgICBz
dGF0aWMgU1ZHTnVtYmVySW1wbCogY3JlYXRlU1ZHTnVtYmVyKCk7CisgICAgICAgIHN0YXRpYyBT
VkdMZW5ndGhJbXBsKiBjcmVhdGVTVkdMZW5ndGgoKTsKKyAgICAgICAgc3RhdGljIFNWR0FuZ2xl
SW1wbCogY3JlYXRlU1ZHQW5nbGUoKTsKKyAgICAgICAgc3RhdGljIFNWR1BvaW50SW1wbCogY3Jl
YXRlU1ZHUG9pbnQoY29uc3QgSW50UG9pbnQmID0gSW50UG9pbnQoKSk7CisgICAgICAgIHN0YXRp
YyBBZmZpbmVUcmFuc2Zvcm0gY3JlYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIHN0YXRpYyBTVkdS
ZWN0SW1wbCogY3JlYXRlU1ZHUmVjdCgpOworICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1w
bCogY3JlYXRlU1ZHVHJhbnNmb3JtKCk7CisgICAgICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1JbXBs
KiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRB
dHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOwogCiAgICAgICAgIC8vICd2aXJ0dWFs
IFNWR0xvY2F0YWJsZScgZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAq
Z2V0Q1RNKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVu
Q1RNKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTSgpIGNv
bnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oKSBjb25z
dDsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVuZGVy
U3R5bGUgKikgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIGtodG1sOjpSZW5kZXJP
YmplY3QgKmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0
eWxlICpzdHlsZSk7CisgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRl
clN0eWxlKikgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCiAgICAgICAgIC8v
ICd2aXJ0dWFsIFNWR1pvb21BbmRQYW4gZnVuY3Rpb25zCiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRab29tQW5kUGFuKHVuc2lnbmVkIHNob3J0IHpvb21BbmRQYW4pOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGNvbnN0IEF0dHJpYnV0ZUltcGwqIGF0dHIpOyAgIAorICAgICAgICB2b2lk
IGFkZFNWR1dpbmRvd0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IGNvbnN0IEF0dHJpYnV0ZUltcGwqIGF0dHIpOyAgIAogCiAgICAgICAgIG11dGFibGUgUmVmUHRy
PFNWR0FuaW1hdGVkTGVuZ3RoSW1wbD4gbV94OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdB
bmltYXRlZExlbmd0aEltcGw+IG1feTsKQEAgLTEzNSw3ICsxMjYsNyBAQAogCiAgICAgICAgIGJv
b2wgbV91c2VDdXJyZW50VmlldzsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjQsMjQgKzI1LDIxIEBA
CiAjZGVmaW5lIEtTVkdfU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGxfSAogI2lmIFNW
R19TVVBQT1JUCiAKLW5hbWVzcGFjZSBLRE9NCi17Ci0gICAgY2xhc3MgQXR0cmlidXRlSW1wbDsK
LX07CisjaW5jbHVkZSA8a3htbGNvcmUvUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBLU1ZHCi17Citu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgTWFwcGVkQXR0cmlidXRlSW1wbDsKICAgICBj
bGFzcyBTVkdBbmltYXRlZEJvb2xlYW5JbXBsOwotICAgIGNsYXNzIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRJbXBsCi0gICAgeworCisgICAgY2xhc3MgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZEltcGwgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZEltcGwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcg
ZnVuY3Rpb25zCi0gICAgICAgIFNWR0FuaW1hdGVkQm9vbGVhbkltcGwgKmV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQoKSBjb25zdDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbCogZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCgpIGNvbnN0OwogCi0gICAgICAgIGJvb2wgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIGJv
b2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRCb29sZWFuSW1wbD4gbV9l
eHRlcm5hbDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCShyZXZp
c2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMjIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCiAK
LSNpbmNsdWRlIDxrZG9tL2tkb20uaD4KLSNpbmNsdWRlIDxrZG9tL0hlbHBlci5oPgotI2luY2x1
ZGUgPGtkb20vRE9NU3RyaW5nLmg+Ci0jaW5jbHVkZSA8a2RvbS9OYW1lc3BhY2UuaD4KLSNpbmNs
dWRlIDxrZG9tL2NvcmUvRWxlbWVudEltcGwuaD4KICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIK
LSNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NRXhjZXB0aW9uSW1wbC5oPgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZUltcGwuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJT
VkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU1ZHU1ZH
RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJjc3Nfc3R5bGVzaGVldGltcGwuaCIKLQogI2luY2x1
ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9ET01TdHJpbmcuaD4K
KyNpbmNsdWRlIDxrZG9tL0hlbHBlci5oPgorI2luY2x1ZGUgPGtkb20vTmFtZXNwYWNlLmg+Cisj
aW5jbHVkZSA8a2RvbS9jb3JlL0RPTUV4Y2VwdGlvbkltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2Nv
cmUvRWxlbWVudEltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KIAogdXNpbmcgbmFtZXNw
YWNlIEtTVkc7CiAKQEAgLTE1OSw3ICsxNTksNyBAQAogICAgIHJldHVybiBjcmVhdGVEb2N1bWVu
dChuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWVJbXBsLCBkb2N0eXBlLCB0cnVlLCAwLCBleGNl
cHRpb25jb2RlKTsKIH0KIAotS0RPTTo6RG9jdW1lbnRJbXBsICpTVkdET01JbXBsZW1lbnRhdGlv
bkltcGw6OmNyZWF0ZURvY3VtZW50KEtET006OkRPTVN0cmluZ0ltcGwgKm5hbWVzcGFjZVVSSUlt
cGwsIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWVJbXBsLCBLRE9NOjpEb2N1bWVu
dFR5cGVJbXBsICpkb2N0eXBlLCBib29sIGNyZWF0ZURvY0VsZW1lbnQsIEtET006OktET01WaWV3
ICp2aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0CitLRE9NOjpEb2N1bWVudEltcGwgKlNW
R0RPTUltcGxlbWVudGF0aW9uSW1wbDo6Y3JlYXRlRG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1w
bCAqbmFtZXNwYWNlVVJJSW1wbCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUlt
cGwsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVu
dCwgRnJhbWVWaWV3ICp2aWV3LCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0CiB7CiAgICAgS0RP
TTo6RE9NU3RyaW5nIG5hbWVzcGFjZVVSSShuYW1lc3BhY2VVUklJbXBsKTsKICAgICBLRE9NOjpE
T01TdHJpbmcgcXVhbGlmaWVkTmFtZShxdWFsaWZpZWROYW1lSW1wbCk7CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTVkdF
bGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR1NWR0VsZW1l
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNDggKzIyLDQzIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1w
bC5oPgotI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+Ci0jaW5jbHVkZSA8a2Rv
bS9jb3JlL05hbWVkQXR0ck1hcEltcGwuaD4KLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNp
bmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzTWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgotI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJT
VkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUgIlNWR1JlY3RJbXBs
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgor
I2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIktTVkdUaW1lU2No
ZWR1bGVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR051bWJlcklt
cGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRMZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIKKyNpbmNsdWRl
ICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBs
LmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoSW1wbC5oIgor
I2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHTnVtYmVySW1wbC5oIgorI2luY2x1
ZGUgIlNWR1BvaW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBs
LmgiCisjaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5o
IgotI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1J
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGlt
ZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNWR1pvb21BbmRQYW5JbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHRml0VG9WaWV3Qm94SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIK
LSNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKLSNpbmNsdWRlICJLQ2FudmFzUmVu
ZGVyaW5nU3R5bGUuaCIKLSNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgot
I2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIKLSNpbmNsdWRl
ICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKLQorI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwu
aCIKICNpbmNsdWRlICJjc3Nwcm9wZXJ0aWVzLmgiCi0KKyNpbmNsdWRlICJodG1sbmFtZXMuaCIK
KyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVk
ZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
Q3JlYXRvci5oPgorI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtj
YW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0
ckltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NU3RyaW5nSW1wbC5oPgorI2luY2x1ZGUg
PGtkb20vY29yZS9OYW1lZEF0dHJNYXBJbXBsLmg+CiAjaW5jbHVkZSA8cXRleHRzdHJlYW0uaD4K
IAotI2luY2x1ZGUgImh0bWxuYW1lcy5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtNzcsMTAg
KzcyLDYgQEAKICAgICBtX3VzZUN1cnJlbnRWaWV3ID0gZmFsc2U7CiB9CiAKLVNWR1NWR0VsZW1l
bnRJbXBsOjp+U1ZHU1ZHRWxlbWVudEltcGwoKQotewotfQotCiBTVkdBbmltYXRlZExlbmd0aElt
cGwgKlNWR1NWR0VsZW1lbnRJbXBsOjp4KCkgY29uc3QKIHsKICAgICBjb25zdCBTVkdFbGVtZW50
SW1wbCAqdmlld3BvcnQgPSBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRo
aXMgPyB0aGlzIDogdmlld3BvcnRFbGVtZW50KCk7CkBAIC0xMzksMTggKzEzMCwxNiBAQAogCiBT
VkdSZWN0SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OnZpZXdwb3J0KCkgY29uc3QKIHsKLSAgICBT
VkdSZWN0SW1wbCAqcmV0ID0gY3JlYXRlU1ZHUmVjdCgpOwotICAgIGRvdWJsZSBfeCA9IHgoKS0+
YmFzZVZhbCgpLT52YWx1ZSgpOwotICAgIGRvdWJsZSBfeSA9IHkoKS0+YmFzZVZhbCgpLT52YWx1
ZSgpOwogICAgIGRvdWJsZSB3ID0gd2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgIGRv
dWJsZSBoID0gaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKLSAgICBSZWZQdHI8U1ZHTWF0
cml4SW1wbD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0odywgaCk7Ci0gICAgdmll
d0JveC0+cW1hdHJpeCgpLm1hcChfeCwgX3ksICZfeCwgJl95KTsKLSAgICB2aWV3Qm94LT5xbWF0
cml4KCkubWFwKHcsIGgsICZ3LCAmaCk7Ci0gICAgcmV0LT5zZXRYKF94KTsKLSAgICByZXQtPnNl
dFkoX3kpOwotICAgIHJldC0+c2V0V2lkdGgodyk7Ci0gICAgcmV0LT5zZXRIZWlnaHQoaCk7Cisg
ICAgQWZmaW5lVHJhbnNmb3JtIHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHcsIGgp
OworICAgIEZsb2F0UmVjdCByKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwo
KS0+dmFsdWUoKSwgdywgaCk7CisgICAgciA9IHZpZXdCb3gubWFwKHIpOworICAgIFNWR1JlY3RJ
bXBsICpyZXQgPSBjcmVhdGVTVkdSZWN0KCk7CisgICAgcmV0LT5zZXRYKHIueCgpKTsKKyAgICBy
ZXQtPnNldFkoci55KCkpOworICAgIHJldC0+c2V0V2lkdGgoci53aWR0aCgpKTsKKyAgICByZXQt
PnNldEhlaWdodChyLmhlaWdodCgpKTsKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjYsNyAr
MjE1LDcgQEAKICAgICAvL3JldHVybiBjcmVhdGVTVkdQb2ludChjYW52YXNWaWV3KCktPnBhbigp
KTsKIH0KIAotdm9pZCBTVkdTVkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0bmVy
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGVJbXBsKiBhdHRy
KQordm9pZCBTVkdTVkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlSW1wbCogYXR0cikKIHsK
ICAgICAvLyBGSVhNRTogTm9uZSBvZiB0aGVzZSBzaG91bGQgYmUgd2luZG93IGV2ZW50cyBsb25n
IHRlcm0uCiAgICAgLy8gT25jZSB3ZSBwcm9wZXJ0bHkgc3VwcG9ydCBTVkdMb2FkLCBldGMuCkBA
IC0yNDAsMTkgKzIyOSwxOSBAQAogICAgIGlmICghbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpKSB7
CiAgICAgICAgIC8vIE9ubHkgaGFuZGxlIGV2ZW50cyBpZiB3ZSdyZSB0aGUgb3V0ZXJtb3N0IDxz
dmc+IGVsZW1lbnQKICAgICAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmxvYWRBdHRyKQotICAg
ICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGxvYWRFdmVudCwgYXR0cik7CisgICAg
ICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RlbmVyKGxvYWRFdmVudCwgYXR0cik7CiAgICAg
ICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnVubG9hZEF0dHIpCi0gICAgICAgICAgICBh
ZGRTVkdXaW5kb3dFdmVudExpc3RuZXIodW5sb2FkRXZlbnQsIGF0dHIpOworICAgICAgICAgICAg
YWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcih1bmxvYWRFdmVudCwgYXR0cik7CiAgICAgICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmFib3J0QXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dp
bmRvd0V2ZW50TGlzdG5lcihhYm9ydEV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dp
bmRvd0V2ZW50TGlzdGVuZXIoYWJvcnRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBvbmVycm9yQXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50
TGlzdG5lcihlcnJvckV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50
TGlzdGVuZXIoZXJyb3JFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBvbnJlc2l6ZUF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIo
cmVzaXplRXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5l
cihyZXNpemVFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBv
bnNjcm9sbEF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIoc2Nyb2xs
RXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihzY3Jv
bGxFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1l
czo6b256b29tQXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlzdG5lcih6b29t
RXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcih6b29t
RXZlbnQsIGF0dHIpOwogICAgIH0KICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp4
QXR0cikgewogICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5p
bXBsKCkpOwpAQCAtMzU3LDE1ICszNDYsMTIgQEAKIAogU1ZHUG9pbnRJbXBsICpTVkdTVkdFbGVt
ZW50SW1wbDo6Y3JlYXRlU1ZHUG9pbnQoY29uc3QgSW50UG9pbnQgJnApCiB7Ci0gICAgaWYocC5p
c051bGwoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBTVkdQb2ludEltcGwoKTsKLSAgICBlbHNlCi0g
ICAgICAgIHJldHVybiBuZXcgU1ZHUG9pbnRJbXBsKHApOworICAgIHJldHVybiBuZXcgU1ZHUG9p
bnRJbXBsKHApOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRl
U1ZHTWF0cml4KCkKK0FmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZH
TWF0cml4KCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR01hdHJpeEltcGwoKTsKKyAgICByZXR1cm4g
QWZmaW5lVHJhbnNmb3JtKCk7CiB9CiAKIFNWR1JlY3RJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6
Y3JlYXRlU1ZHUmVjdCgpCkBAIC0zNzgsNDQgKzM2NCwzMiBAQAogICAgIHJldHVybiBuZXcgU1ZH
VHJhbnNmb3JtSW1wbCgpOwogfQogCi1TVkdUcmFuc2Zvcm1JbXBsICpTVkdTVkdFbGVtZW50SW1w
bDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpCitT
VkdUcmFuc2Zvcm1JbXBsKiBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJv
bU1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCkKIHsgICAgCi0gICAgU1ZHVHJh
bnNmb3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybSgp
OworICAgIFNWR1RyYW5zZm9ybUltcGwqIG9iaiA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVT
VkdUcmFuc2Zvcm0oKTsKICAgICBvYmotPnNldE1hdHJpeChtYXRyaXgpOwogICAgIHJldHVybiBv
Ymo7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1NWR0VsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25z
dAorQWZmaW5lVHJhbnNmb3JtIFNWR1NWR0VsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewot
ICAgIFNWR01hdHJpeEltcGwgKm1hdCA9IGNyZWF0ZVNWR01hdHJpeCgpOwotICAgIGlmKG1hdCkK
LSAgICB7Ci0gICAgICAgIG1hdC0+dHJhbnNsYXRlKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5
KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdCA9IHRyYW5z
bGF0aW9uTWF0cml4KHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwoKS0+dmFs
dWUoKSk7CiAKLSAgICAgICAgaWYoYXR0cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFtZXM6
OnZpZXdCb3hBdHRyKSkKLSAgICAgICAgewotICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeElt
cGw+IHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+
dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7Ci0gICAgICAgICAgICBtYXQt
Pm11bHRpcGx5KHZpZXdCb3guZ2V0KCkpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChhdHRy
aWJ1dGVzKCktPmdldE5hbWVkSXRlbShTVkdOYW1lczo6dmlld0JveEF0dHIpKQorICAgICAgICBt
YXQgPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwg
aGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSkgKiBtYXQ7CiAKICAgICByZXR1cm4gbWF0Owog
fQogCi1TVkdNYXRyaXhJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29u
c3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29u
c3QKIHsKLSAgICBTVkdNYXRyaXhJbXBsICptYXQgPSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50
SW1wbDo6Z2V0U2NyZWVuQ1RNKCk7Ci0gICAgaWYobWF0KQotICAgIHsKLSAgICAgICAgbWF0LT50
cmFuc2xhdGUoeCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIHkoKS0+YmFzZVZhbCgpLT52YWx1ZSgp
KTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0ID0gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudElt
cGw6OmdldFNjcmVlbkNUTSgpOwogCi0gICAgICAgIGlmKGF0dHJpYnV0ZXMoKS0+Z2V0TmFtZWRJ
dGVtKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJlZlB0
cjxTVkdNYXRyaXhJbXBsPiB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgp
LT5iYXNlVmFsKCktPnZhbHVlKCksIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwotICAg
ICAgICAgICAgbWF0LT5tdWx0aXBseSh2aWV3Qm94LmdldCgpKTsKLSAgICAgICAgfQotICAgIH0K
KyAgICBtYXQudHJhbnNsYXRlKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwo
KS0+dmFsdWUoKSk7CiAKKyAgICBpZiAoYXR0cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFt
ZXM6OnZpZXdCb3hBdHRyKSkKKyAgICAgICAgbWF0ID0gbWF0ICogdmlld0JveFRvVmlld1RyYW5z
Zm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIGhlaWdodCgpLT5iYXNlVmFsKCktPnZh
bHVlKCkpOworCiAgICAgcmV0dXJuIG1hdDsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR0dyYWRp
ZW50RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVt
ZW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwxNyArMjUsMTcgQEAKICNkZWZpbmUg
S1NWR19TVkdHcmFkaWVudEVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCisjaW5jbHVk
ZSAiS0NhbnZhc1Jlc291cmNlcy5oIgorI2luY2x1ZGUgIktDYW52YXNSZXNvdXJjZUxpc3RlbmVy
LmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaCIKKyNpbmNsdWRl
ICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0eWxl
ZEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlSW1wbC5oIgotI2luY2x1
ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwuaCIKIAotI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRp
ZW50LmgiCi0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgY2xhc3MgU1ZHR3JhZGllbnRFbGVtZW50
SW1wbDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTVkdBbmltYXRlZEVudW1lcmF0
aW9uSW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOworCiAgICAg
Y2xhc3MgU1ZHR3JhZGllbnRFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1w
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVy
ZW5jZUltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCwKQEAgLTY2LDcgKzY3LDcgQEAKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbD4gbV9ncmFkaWVudFRy
YW5zZm9ybTsKICAgICAgICAgbXV0YWJsZSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudCAq
bV9yZXNvdXJjZTsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5k
aWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYz
KQorKysga3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiwyMSArMjIsMjEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQ
T1JUCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSAiU1ZHQ2xpcFBh
dGhFbGVtZW50SW1wbC5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRp
b25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
KyNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgImNzc3N0eWxlc2VsZWN0b3Iu
aCIKKyNpbmNsdWRlICJrc3ZnLmgiCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CiAjaW5j
bHVkZSA8a2NhbnZhcy9LQ2FudmFzUGF0aC5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tS
ZW5kZXJpbmdEZXZpY2UuaD4KLSNpbmNsdWRlICJjc3NzdHlsZXNlbGVjdG9yLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKLSNp
bmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxw
ZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR0NsaXBQYXRo
RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgot
CiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbDo6U1ZHQ2xp
cFBhdGhFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9N
OjpEb2N1bWVudEltcGwgKmRvYykKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnRJbXBsLmNwcAko
cmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwyMCArMjIsMTkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KKyNpbmNsdWRlICJTVkdG
RVRpbGVFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0K
KyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgogI2luY2x1ZGUg
PGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KKyNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi0jaW5jbHVkZSAiU1ZHSGVs
cGVyLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJTVkdGRVRpbGVF
bGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgotI2luY2x1
ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
IAogU1ZHRkVUaWxlRWxlbWVudEltcGw6OlNWR0ZFVGlsZUVsZW1lbnRJbXBsKGNvbnN0IEtET006
OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50SW1wbCAqZG9jKSA6IApJbmRl
eDoga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2
ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIz
ICsyMiwyMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNs
dWRlIDxxc3RyaW5nbGlzdC5oPgorI2luY2x1ZGUgIlNWR0ZFTWVyZ2VFbGVtZW50SW1wbC5oIgog
Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KKyNpbmNsdWRlICJTVkdBbmltYXRl
ZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgor
I2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0ZFTWVy
Z2VOb2RlRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJT
VkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAia3N2Zy5o
IgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
c0ZpbHRlcnMuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+
CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3Qu
aD4KIAotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR0ZFTWVyZ2VFbGVtZW50SW1wbC5oIgot
I2luY2x1ZGUgIlNWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZEVudW1lcmF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotCiB1c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKIAogU1ZHRkVNZXJnZUVsZW1lbnRJbXBsOjpTVkdGRU1lcmdlRWxlbWVudEltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpk
b2MpIDogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlSW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtz
dmcyL3N2Zy9TVkdMb2NhdGFibGVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjEgKzIy
LDE5IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUg
PGtkb20va2RvbS5oPgotI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0
cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHTG9j
YXRhYmxlSW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRl
ICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJT
VkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHUmVj
dEltcGwuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgPGtjYW52
YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkb20va2RvbS5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKIAotU1ZHTG9jYXRhYmxlSW1wbDo6U1ZHTG9jYXRhYmxlSW1wbCgpCi17Ci19Ci0K
IFNWR0xvY2F0YWJsZUltcGw6On5TVkdMb2NhdGFibGVJbXBsKCkKIHsKIH0KQEAgLTg0LDYzICs4
Miw0NCBAQAogICAgIHsKICAgICAgICAgRmxvYXRSZWN0IGJib3hSZWN0ID0gZS0+cmVuZGVyZXIo
KS0+cmVsYXRpdmVCQm94KGZhbHNlKTsKICAgICAgICAgcmVjdCA9IG5ldyBTVkdSZWN0SW1wbCgw
KTsKLSAgICAgICAgcmVjdC0+c2V0WChiYm94UmVjdC54KCkpOwotICAgICAgICByZWN0LT5zZXRZ
KGJib3hSZWN0LnkoKSk7Ci0gICAgICAgIHJlY3QtPnNldFdpZHRoKGJib3hSZWN0LndpZHRoKCkg
LSAxKTsKLSAgICAgICAgcmVjdC0+c2V0SGVpZ2h0KGJib3hSZWN0LmhlaWdodCgpIC0gMSk7Cisg
ICAgICAgIHJlY3QtPnNldFgoYmJveFJlY3QueSgpKTsKKyAgICAgICAgcmVjdC0+c2V0WShiYm94
UmVjdC54KCkpOworICAgICAgICByZWN0LT5zZXRXaWR0aChiYm94UmVjdC53aWR0aCgpIC0gMSk7
IC8vIEZJWE1FOiBXaHkgLTE/CisgICAgICAgIHJlY3QtPnNldEhlaWdodChiYm94UmVjdC5oZWln
aHQoKSAtIDEpOyAvLyBGSVhNRTogV2h5IC0xPwogICAgIH0KIAogICAgIHJldHVybiByZWN0Owog
fQogCi1TVkdNYXRyaXhJbXBsICpTVkdMb2NhdGFibGVJbXBsOjpnZXRDVE0oY29uc3QgU1ZHRWxl
bWVudEltcGwgKmVsZW1lbnQpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0
Q1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICplbGVtZW50KQogewotICAgIGlmKCFlbGVtZW50KQot
ICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBBZmZp
bmVUcmFuc2Zvcm0oKTsKIAotICAgIFNWR01hdHJpeEltcGwgKmN0bSA9IFNWR1NWR0VsZW1lbnRJ
bXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsKLQogICAgIEtET006Ok5vZGVJbXBsICpwYXJlbnQgPSBl
bGVtZW50LT5wYXJlbnROb2RlKCk7Ci0gICAgaWYocGFyZW50ICYmIHBhcmVudC0+bm9kZVR5cGUo
KSA9PSBLRE9NOjpFTEVNRU5UX05PREUpCi0gICAgewotICAgICAgICBTVkdFbGVtZW50SW1wbCAq
cGFyZW50RWxlbWVudCA9IHN2Z19keW5hbWljX2Nhc3QocGFyZW50KTsKLSAgICAgICAgaWYocGFy
ZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gcGFyZW50Q1RNID0gc3RhdGlj
X2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdl
dENUTSgpOwotICAgICAgICAgICAgY3RtLT5tdWx0aXBseShwYXJlbnRDVE0uZ2V0KCkpOwotICAg
ICAgICB9CisgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPm5vZGVUeXBlKCkgPT0gS0RPTTo6RUxF
TUVOVF9OT0RFKSB7CisgICAgICAgIFNWR0VsZW1lbnRJbXBsKiBwYXJlbnRFbGVtZW50ID0gc3Zn
X2R5bmFtaWNfY2FzdChwYXJlbnQpOworICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJl
bnRFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsICo+KHBhcmVudEVsZW1lbnQpLT5n
ZXRDVE0oKTsKICAgICB9CiAKLSAgICByZXR1cm4gY3RtOworICAgIHJldHVybiBBZmZpbmVUcmFu
c2Zvcm0oKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0U2NyZWVu
Q1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICplbGVtZW50KQorQWZmaW5lVHJhbnNmb3JtIFNWR0xv
Y2F0YWJsZUltcGw6OmdldFNjcmVlbkNUTShjb25zdCBTVkdFbGVtZW50SW1wbCAqZWxlbWVudCkK
IHsKLSAgICBpZighZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFlbGVtZW50
KQorICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAKLSAgICBTVkdNYXRyaXhJbXBs
ICpjdG0gPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCk7Ci0KLSAgICBLRE9N
OjpOb2RlSW1wbCAqcGFyZW50ID0gZWxlbWVudC0+cGFyZW50Tm9kZSgpOwotICAgIGlmKHBhcmVu
dCAmJiBwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkKLSAgICB7Ci0gICAgICAgIFNWR0VsZW1lbnRJ
bXBsICpwYXJlbnRFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudEltcGwgKj4ocGFyZW50
KTsKLSAgICAgICAgaWYocGFyZW50RWxlbWVudC0+aXNTdHlsZWRMb2NhdGFibGUoKSkKLSAgICAg
ICAgewotICAgICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IHBhcmVudENUTSA9IHN0YXRp
Y19jYXN0PFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsICo+KHBhcmVudEVsZW1lbnQpLT5n
ZXRTY3JlZW5DVE0oKTsKLSAgICAgICAgICAgIGN0bS0+bXVsdGlwbHkocGFyZW50Q1RNLmdldCgp
KTsKLSAgICAgICAgfQorICAgIEtET006Ok5vZGVJbXBsKiBwYXJlbnQgPSBlbGVtZW50LT5wYXJl
bnROb2RlKCk7CisgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewor
ICAgICAgICBTVkdFbGVtZW50SW1wbCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnRJbXBsICo+KHBhcmVudCk7CisgICAgICAgIGlmIChwYXJlbnRFbGVtZW50LT5pc1N0eWxl
ZExvY2F0YWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1N0eWxlZExv
Y2F0YWJsZUVsZW1lbnRJbXBsICo+KHBhcmVudEVsZW1lbnQpLT5nZXRTY3JlZW5DVE0oKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gY3RtOworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIH0K
LS8qCi1TVkdNYXRyaXhJbXBsICpTVkdMb2NhdGFibGVJbXBsOjpnZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQoU1ZHRWxlbWVudEltcGwgKikgY29uc3QKLXsKLSAgICAvLyBUT0RPIQotICAgIHJldHVybiAw
OwotfQotKi8KKwogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0KSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR0N1cnNvckVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3Zn
Mi9zdmcvU1ZHQ3Vyc29yRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNiAr
MjIsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVk
ZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSAiU1ZHQ3Vyc29yRWxlbWVudEltcGwu
aCIKKworI2luY2x1ZGUgIkRvY0xvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgot
I2luY2x1ZGUgIkRvY0xvYWRlci5oIgotI2luY2x1ZGUgPGtkZWJ1Zy5oPgotCi0jaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdDdXJzb3JF
bGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmlu
Z0ltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgor
I2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgS1NWRzsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5j
cHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MSw3ICsxOTEsNyBAQAogICAgIHsKICAgICB9CiAKLSAg
ICBpZihpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0aW9ucygpICE9IDAuMCkKKyAgICBpZihpc0Fj
Y3VtdWxhdGVkKCkgJiYgcmVwZXRpdGlvbnMoKSAhPSAwLjApCiAgICAgewogICAgIH0KIApAQCAt
MjAwLDkgKzIwMCw5IEBACiAgICAgLy8gRW5kIGNvbmRpdGlvbi4KICAgICBpZih0aW1lUGVyY2Vu
dGFnZSA9PSAxLjApCiAgICAgewotICAgICAgICBpZigobV9yZXBlYXRDb3VudCA+IDAgJiYgbV9y
ZXBlYXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENv
dW50KSkKKyAgICAgICAgaWYoKG1fcmVwZWF0Q291bnQgPiAwICYmIG1fcmVwZXRpdGlvbnMgPCBt
X3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQpKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBtX3JlcGVhdGlvbnMrKzsKKyAgICAgICAgICAgIG1fcmVwZXRpdGlv
bnMrKzsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkluZGV4OiBrc3ZnMi9taXNj
L0tDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvbWlzYy9LQ2Fu
dmFzUmVuZGVyaW5nU3R5bGUuY3BwCShyZXZpc2lvbiAxMjQ2MykKKysrIGtzdmcyL21pc2MvS0Nh
bnZhc1JlbmRlcmluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJLQ2FudmFz
UmVuZGVyaW5nU3R5bGUuaCIKIAogI2luY2x1ZGUgPHJlbmRlcl9vYmplY3QuaD4KIApAQCAtNDMs
NyArNDQsNiBAQAogI2luY2x1ZGUgImtzdmcuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhJbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJLQ2FudmFzUmVu
ZGVyaW5nU3R5bGUuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkluZGV4OiBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMTI0NjMp
CisrKyBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMsMTkgKzIzLDIwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAot
I2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVy
LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVk
dWxlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1w
bC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgog
I2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KKyNp
bmNsdWRlIDxxdGltZXIuaD4KIAogbmFtZXNwYWNlIEtTVkcgewogCkBAIC04OSwxMiArOTAsMTIg
QEAKICAgICByZXR1cm4gbV9zaW5nbGVTaG90OwogfQogICAgICAgICAKLWRvdWJsZSBTVkdUaW1l
cjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBzZWQsIGRvdWJsZSBzdGFydCwg
ZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVwZWF0aW9ucykKK2RvdWJsZSBT
VkdUaW1lcjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBzZWQsIGRvdWJsZSBz
dGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVwZXRpdGlvbnMpCiB7
CiAgICAgZG91YmxlIHBlcmNlbnRhZ2UgPSAwLjA7CiAKLSAgICAvLyBUYWtlIGludG8gYWNjb3Vu
dCByZXBlYXRpb25zLi4uCi0gICAgZG91YmxlIHVzZUVsYXBzZWQgPSBlbGFwc2VkIC0gKGR1cmF0
aW9uICogcmVwZWF0aW9ucyk7CisgICAgLy8gVGFrZSBpbnRvIGFjY291bnQgcmVwZXRpdGlvbnMu
Li4KKyAgICBkb3VibGUgdXNlRWxhcHNlZCA9IGVsYXBzZWQgLSAoZHVyYXRpb24gKiByZXBldGl0
aW9ucyk7CiAgICAgCiAgICAgaWYoZHVyYXRpb24gPiAwLjAgJiYgZW5kID09IDAuMCkKICAgICAg
ICAgcGVyY2VudGFnZSA9IDEuMCAtICgoKHN0YXJ0ICsgZHVyYXRpb24pIC0gdXNlRWxhcHNlZCkg
LyBkdXJhdGlvbik7CkBAIC0xMDgsNyArMTA5LDcgQEAKICAgICBlbHNlIGlmKGR1cmF0aW9uID09
IDAuMCAmJiBlbmQgIT0gMC4wKQogICAgICAgICBwZXJjZW50YWdlID0gMS4wIC0gKCgoc3RhcnQg
KyBlbmQpIC0gdXNlRWxhcHNlZCkgLyBlbmQpOwogCi0gICAgLy8ga2REZWJ1ZygpIDw8ICJSRVRV
Uk5JTkcgUEVSQ0VOVEFHRTogIiA8PCBwZXJjZW50YWdlIDw8ICIgKGVsYXBzZWQ6ICIgPDwgZWxh
cHNlZCA8PCAiIC0+ICIgPDwgdXNlRWxhcHNlZCA8PCAiIHN0YXJ0OiAiIDw8IHN0YXJ0IDw8ICIg
ZW5kOiAiIDw8IGVuZCA8PCAiIGR1cjogIiA8PCBkdXJhdGlvbiA8PCAiIHJlcDogIiA8PCByZXBl
YXRpb25zIDw8ICIpIiA8PCBlbmRsOworICAgIC8vIGtkRGVidWcoKSA8PCAiUkVUVVJOSU5HIFBF
UkNFTlRBR0U6ICIgPDwgcGVyY2VudGFnZSA8PCAiIChlbGFwc2VkOiAiIDw8IGVsYXBzZWQgPDwg
IiAtPiAiIDw8IHVzZUVsYXBzZWQgPDwgIiBzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8
PCBlbmQgPDwgIiBkdXI6ICIgPDwgZHVyYXRpb24gPDwgIiByZXA6ICIgPDwgcmVwZXRpdGlvbnMg
PDwgIikiIDw8IGVuZGw7CiAgICAgcmV0dXJuIHBlcmNlbnRhZ2U7CiB9CiAKQEAgLTE4OCw3ICsx
ODksNyBAQAogICAgICAgICAgICAgZG91YmxlIGVuZCA9IGFuaW1hdGlvbi0+Z2V0RW5kVGltZSgp
OwogICAgICAgICAgICAgZG91YmxlIHN0YXJ0ID0gYW5pbWF0aW9uLT5nZXRTdGFydFRpbWUoKTsK
ICAgICAgICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IGFuaW1hdGlvbi0+Z2V0U2ltcGxlRHVyYXRp
b24oKTsKLSAgICAgICAgICAgIGRvdWJsZSByZXBlYXRpb25zID0gYW5pbWF0aW9uLT5yZXBlYXRp
b25zKCk7CisgICAgICAgICAgICBkb3VibGUgcmVwZXRpdGlvbnMgPSBhbmltYXRpb24tPnJlcGV0
aXRpb25zKCk7CiAKICAgICAgICAgICAgIC8vIFZhbGlkYXRlIGFuaW1hdGlvbiB0aW1pbmcgc2V0
dGluZ3M6CiAgICAgICAgICAgICAvLyAjMSAoZHVyYXRpb24gPiAwKSAtPiBmaW5lCkBAIC0xOTgs
NyArMTk5LDcgQEAKICAgICAgICAgICAgICAgIChhbmltYXRpb24tPmlzSW5kZWZpbml0ZShkdXJh
dGlvbikgJiYgZW5kIDw9IDAuMCkpIC8vIElnbm9yZSBkdXI9IjAiIG9yIGR1cj0iLW5lZyIuLi4K
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgZmxv
YXQgcGVyY2VudGFnZSA9IGNhbGN1bGF0ZVRpbWVQZXJjZW50YWdlKGVsYXBzZWQsIHN0YXJ0LCBl
bmQsIGR1cmF0aW9uLCByZXBlYXRpb25zKTsKKyAgICAgICAgICAgIGZsb2F0IHBlcmNlbnRhZ2Ug
PSBjYWxjdWxhdGVUaW1lUGVyY2VudGFnZShlbGFwc2VkLCBzdGFydCwgZW5kLCBkdXJhdGlvbiwg
cmVwZXRpdGlvbnMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYocGVyY2VudGFn
ZSA8PSAxLjAgfHwgYW5pbWF0aW9uLT5jb25uZWN0ZWQoKSkKICAgICAgICAgICAgICAgICBhbmlt
YXRpb24tPmhhbmRsZVRpbWVyRXZlbnQocGVyY2VudGFnZSk7CkBAIC0yMTIsMzYgKzIxMywzMSBA
QAogICAgICAgICAgICAgICAgIGlmKCFhbmltVHJhbnNmb3JtKQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB0cmFu
c2Zvcm1NYXRyaXggPSBhbmltVHJhbnNmb3JtLT50cmFuc2Zvcm1NYXRyaXgoKTsKLSAgICAgICAg
ICAgICAgICBpZighdHJhbnNmb3JtTWF0cml4KQotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtTWF0cml4ID0gYW5p
bVRyYW5zZm9ybS0+dHJhbnNmb3JtTWF0cml4KCk7CiAKLSAgICAgICAgICAgICAgICBSZWZQdHI8
U1ZHTWF0cml4SW1wbD4gaW5pdGlhbE1hdHJpeCA9IGFuaW1UcmFuc2Zvcm0tPmluaXRpYWxNYXRy
aXgoKTsKKyAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gaW5pdGlhbE1hdHJpeCA9IGFu
aW1UcmFuc2Zvcm0tPmluaXRpYWxNYXRyaXgoKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8U1ZH
VHJhbnNmb3JtSW1wbD4gZGF0YSA9IG5ldyBTVkdUcmFuc2Zvcm1JbXBsKCk7CiAKICAgICAgICAg
ICAgICAgICBpZighdGFyZ2V0VHJhbnNmb3JtcykgLy8gbGF6eSBjcmVhdGlvbiwgb25seSBpZiBu
ZWVkZWQuCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0YXJnZXRUcmFu
c2Zvcm1zID0gbmV3IFNWR1RyYW5zZm9ybUxpc3RJbXBsKCk7CisgICAgICAgICAgICAgICAgICAg
IHRhcmdldFRyYW5zZm9ybXMgPSBuZXcgU1ZHVHJhbnNmb3JtTGlzdEltcGw7CiAKLSAgICAgICAg
ICAgICAgICAgICAgaWYoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkgJiYgaW5pdGlhbE1hdHJpeCkK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNW
R01hdHJpeEltcGw+IG1hdHJpeCA9IG5ldyBTVkdNYXRyaXhJbXBsKGluaXRpYWxNYXRyaXgtPnFt
YXRyaXgoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGEtPnNldE1hdHJpeChtYXRyaXguZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEtPnNldE1hdHJpeChpbml0aWFsTWF0cml4KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRh
cmdldFRyYW5zZm9ybXMtPmFwcGVuZEl0ZW0oZGF0YS5nZXQoKSk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGEgPSBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YSA9IG5ldyBTVkdUcmFuc2Zvcm1JbXBsOwogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYodGFyZ2V0VHJhbnNm
b3Jtcy0+bnVtYmVyT2ZJdGVtcygpIDw9IDEpCi0gICAgICAgICAgICAgICAgICAgIGRhdGEtPnNl
dE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBkYXRh
LT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZighYW5pbWF0aW9uLT5pc0FkZGl0
aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRUcmFuc2Zvcm1zLT5jbGVhcigp
OyAgICAKICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGRhdGEtPnNl
dE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBkYXRh
LT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICB0YXJnZXRUcmFuc2Zvcm1zLT5hcHBlbmRJdGVtKGRhdGEuZ2V0KCkpOwpJbmRl
eDoga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvbWlz
Yy9TVkdJbWFnZUxvYWRlci5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3N2ZzIvbWlzYy9TVkdJ
bWFnZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJTVkdJbWFnZUVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBs
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0
cml4SW1wbC5oIgogI2luY2x1ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgogCiAjaW5jbHVk
ZSAicmVuZGVyX2ltYWdlLmgiCkluZGV4OiBrc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJpbmdTdHls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgJKHJl
dmlzaW9uIDEyNDYzKQorKysga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVyaW5nU3R5bGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA2
ICAgICAgIEFsZXhhbmRlciBLZWxsZXR0IDxseXBhbm92QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjUsMzkgKzI2LDM0IEBACiAjZGVmaW5lIEtTVkdfS0Nh
bnZhc1JlbmRlcmluZ1N0eWxlX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAiY3NzX3Zh
bHVlaW1wbC5oIgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc01hdHJpeC5oPgotI2luY2x1ZGUg
PHF2YWx1ZWxpc3QuaD4KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBRVmFsdWVMaXN0Owog
CiAvLyBGSVhNRTogdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQsIHVzZSBLU1ZHIG9uZXMgaW5zdGVh
ZAotdHlwZWRlZiBlbnVtCi17CitlbnVtIEtDQ2FwU3R5bGUgewogICAgIENBUF9CVVRUID0gMSwK
ICAgICBDQVBfUk9VTkQgPSAyLAogICAgIENBUF9TUVVBUkUgPSAzCi19IEtDQ2FwU3R5bGU7Cit9
OwogCi10eXBlZGVmIGVudW0KLXsKK2VudW0gS0NKb2luU3R5bGUgewogICAgIEpPSU5fTUlURVIg
PSAxLAogICAgIEpPSU5fUk9VTkQgPSAyLAogICAgIEpPSU5fQkVWRUwgPSAzCi19IEtDSm9pblN0
eWxlOworfTsKIAotCiAvLyBTcGVjaWFsIHR5cGVzCi10eXBlZGVmIFEzVmFsdWVMaXN0PGZsb2F0
PiBLQ0Rhc2hBcnJheTsKK3R5cGVkZWYgUVZhbHVlTGlzdDxmbG9hdD4gS0NEYXNoQXJyYXk7CiAK
IGNsYXNzIEtSZW5kZXJpbmdGaWxsUGFpbnRlcjsKIGNsYXNzIEtSZW5kZXJpbmdTdHJva2VQYWlu
dGVyOwogY2xhc3MgS1JlbmRlcmluZ1BhaW50U2VydmVyOwogCi1uYW1lc3BhY2UgV2ViQ29yZQot
eworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIENTU1ZhbHVlSW1wbDsKICAgICBjbGFz
cyBSZW5kZXJTdHlsZTsKICAgICBjbGFzcyBSZW5kZXJPYmplY3Q7Ci0gICAgY2xhc3MgS1NWR1Bh
aW50ZXJGYWN0b3J5Ci0gICAgeworCisgICAgY2xhc3MgS1NWR1BhaW50ZXJGYWN0b3J5IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBLUmVuZGVyaW5nRmlsbFBhaW50ZXIgZmlsbFBhaW50
ZXIoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICAgICAgc3Rh
dGljIEtSZW5kZXJpbmdTdHJva2VQYWludGVyIHN0cm9rZVBhaW50ZXIoY29uc3QgUmVuZGVyU3R5
bGUqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKQEAgLTcwLDcgKzY2LDcgQEAKIAogICAgICAgICBz
dGF0aWMgZG91YmxlIGNzc1ByaW1pdGl2ZVRvTGVuZ3RoKGNvbnN0IFJlbmRlck9iamVjdCosIENT
U1ZhbHVlSW1wbCosIGRvdWJsZSBkZWZhdWx0VmFsdWUgPSAwLjApOwogICAgIH07Ci19OworfQog
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvbWlzYy9LU1ZHVGlt
ZVNjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIu
aAkocmV2aXNpb24gMTI0NjMpCisrKyBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNyArMjUsMzIgQEAKICNkZWZpbmUgS1NWR19UaW1lU2No
ZWR1bGVyX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSA8cXRpbWVyLmg+CiAjaW5jbHVk
ZSA8cW9iamVjdC5oPgogI2luY2x1ZGUgPHEzdmFsdWVsaXN0Lmg+CiAKLSNpbmNsdWRlICJTVkdB
bmltYXRpb25FbGVtZW50SW1wbC5oIgorY2xhc3MgUVRpbWVyOwogCi1uYW1lc3BhY2UgS0RPTSB7
CituYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnRJbXBsOwotfQorICAgIGNs
YXNzIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOworICAgIGNsYXNzIFRpbWVTY2hlZHVsZXI7CiAK
LW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgdHlwZWRlZiBzdHJ1Y3QKLSAgICB7Ci0gICAgICAgIGJv
b2wgZW5hYmxlZCA6IDE7Ci0gICAgICAgIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsICphbmltYXRp
b247Ci0gICAgfSBTVkdOb3RpZmljYXRpb25TdHJ1Y3Q7CisgICAgc3RydWN0IFNWR05vdGlmaWNh
dGlvblN0cnVjdCB7CisgICAgICAgIGJvb2wgZW5hYmxlZDsKKyAgICAgICAgU1ZHQW5pbWF0aW9u
RWxlbWVudEltcGwqIGFuaW1hdGlvbjsKKyAgICB9OwogICAgIAogICAgIHR5cGVkZWYgUTNWYWx1
ZUxpc3Q8U1ZHTm90aWZpY2F0aW9uU3RydWN0PiBTVkdOb3RpZnlMaXN0OwogCi0gICAgY2xhc3Mg
VGltZVNjaGVkdWxlcjsKLSAgICBjbGFzcyBTVkdUaW1lcgotICAgIHsKKyAgICBjbGFzcyBTVkdU
aW1lciB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdUaW1lcihUaW1lU2NoZWR1bGVyICpzY2hl
ZHVsZXIsIHVuc2lnbmVkIGludCBtcywgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgU1ZHVGlt
ZXIoVGltZVNjaGVkdWxlciosIHVuc2lnbmVkIGludCBtcywgYm9vbCBzaW5nbGVTaG90KTsKICAg
ICAgICAgflNWR1RpbWVyKCk7CiAKLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFFUaW1l
ciAqdGltZXIpOwotICAgICAgICBjb25zdCBRVGltZXIgKnF0aW1lcigpIGNvbnN0OworICAgICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgUVRpbWVyKik7CisgICAgICAgIGNvbnN0IFFUaW1lciog
cXRpbWVyKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzdGFydChRT2JqZWN0ICpyZWNlaXZlciwg
Y29uc3QgY2hhciAqbWVtYmVyKTsKKyAgICAgICAgdm9pZCBzdGFydChRT2JqZWN0KiByZWNlaXZl
ciwgY29uc3QgY2hhciogbWVtYmVyKTsKICAgICAgICAgdm9pZCBzdG9wKCk7CiAKICAgICAgICAg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtNjMsMzUgKzU5LDM0IEBACiAgICAgICAgIGJvb2wg
c2luZ2xlU2hvdCgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgbm90aWZ5QWxsKCk7Ci0gICAgICAg
IHZvaWQgYWRkTm90aWZ5KFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsICplbGVtZW50LCBib29sIGVu
YWJsZWQgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgcmVtb3ZlTm90aWZ5KFNWR0FuaW1hdGlvbkVs
ZW1lbnRJbXBsICplbGVtZW50KTsKKyAgICAgICAgdm9pZCBhZGROb3RpZnkoU1ZHQW5pbWF0aW9u
RWxlbWVudEltcGwqLCBib29sIGVuYWJsZWQgPSBmYWxzZSk7CisgICAgICAgIHZvaWQgcmVtb3Zl
Tm90aWZ5KFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKik7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBkb3VibGUgY2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBzZWQsIGRvdWJsZSBz
dGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVwZWF0aW9ucyk7Cisg
ICAgICAgIGRvdWJsZSBjYWxjdWxhdGVUaW1lUGVyY2VudGFnZShkb3VibGUgZWxhcHNlZCwgZG91
YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSByZXBldGl0aW9u
cyk7CiAKLSAgICAgICAgdW5zaWduZWQgaW50IG1fbXM7CisgICAgICAgIHVuc2lnbmVkIG1fbXM7
CiAgICAgICAgIGJvb2wgbV9pbnZva2VkLCBtX3NpbmdsZVNob3Q7CiAKLSAgICAgICAgUVRpbWVy
ICptX3RpbWVyOwotICAgICAgICBUaW1lU2NoZWR1bGVyICptX3NjaGVkdWxlcjsKKyAgICAgICAg
UVRpbWVyKiBtX3RpbWVyOworICAgICAgICBUaW1lU2NoZWR1bGVyKiBtX3NjaGVkdWxlcjsKICAg
ICAgICAgU1ZHTm90aWZ5TGlzdCBtX25vdGlmeUxpc3Q7CiAgICAgfTsKIAotICAgIHR5cGVkZWYg
UTNWYWx1ZUxpc3Q8U1ZHVGltZXIgKj4gU1ZHVGltZXJMaXN0OworICAgIHR5cGVkZWYgUTNWYWx1
ZUxpc3Q8U1ZHVGltZXIqPiBTVkdUaW1lckxpc3Q7CiAKLSAgICBjbGFzcyBUaW1lU2NoZWR1bGVy
IDogcHVibGljIFFPYmplY3QKLSAgICB7CisgICAgY2xhc3MgVGltZVNjaGVkdWxlciA6IHB1Ymxp
YyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAogICAgIHB1YmxpYzoKLSAgICAgICAgVGltZVNjaGVk
dWxlcihLRE9NOjpEb2N1bWVudEltcGwgKmRvYyk7CisgICAgICAgIFRpbWVTY2hlZHVsZXIoRG9j
dW1lbnRJbXBsKik7CiAgICAgICAgIH5UaW1lU2NoZWR1bGVyKCk7CiAKICAgICAgICAgLy8gQWRk
cyBzaW5nbGVTaG90IFRpbWVycwotICAgICAgICB2b2lkIGFkZFRpbWVyKFNWR0FuaW1hdGlvbkVs
ZW1lbnRJbXBsICplbGVtZW50LCB1bnNpZ25lZCBpbnQgbXMpOworICAgICAgICB2b2lkIGFkZFRp
bWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKiwgdW5zaWduZWQgaW50IG1zKTsKIAogICAgICAg
ICAvLyAoRGlzLSlDb25uZWN0cyB0byBpbnRlcnZhbCB0aW1lciB3aXRoIG1zID0gJ3N0YXRpY1Rp
bWVySW50ZXJ2YWwnCi0gICAgICAgIHZvaWQgY29ubmVjdEludGVydmFsVGltZXIoU1ZHQW5pbWF0
aW9uRWxlbWVudEltcGwgKmVsZW1lbnQpOwotICAgICAgICB2b2lkIGRpc2Nvbm5lY3RJbnRlcnZh
bFRpbWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsICplbGVtZW50KTsKKyAgICAgICAgdm9pZCBj
b25uZWN0SW50ZXJ2YWxUaW1lcihTVkdBbmltYXRpb25FbGVtZW50SW1wbCopOworICAgICAgICB2
b2lkIGRpc2Nvbm5lY3RJbnRlcnZhbFRpbWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKik7CiAK
ICAgICAgICAgdm9pZCBzdGFydEFuaW1hdGlvbnMoKTsKICAgICAgICAgdm9pZCB0b2dnbGVBbmlt
YXRpb25zKCk7CkBAIC0xMDcsMTggKzEwMiwxNyBAQAogCiAgICAgcHJpdmF0ZTogLy8gSGVscGVy
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTVkdUaW1lcjsKLSAgICAgICAgS0RPTTo6RG9jdW1lbnRJ
bXBsICpkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICAgICAgRG9j
dW1lbnRJbXBsKiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAotICAg
IHByaXZhdGU6CiAgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9uVGltZTsKICAgICAgICAgZG91Ymxl
IG1fc2F2ZWRUaW1lOwogICAgICAgICAKICAgICAgICAgU1ZHVGltZXJMaXN0IG1fdGltZXJMaXN0
OwogICAgICAgICAKLSAgICAgICAgU1ZHVGltZXIgKm1faW50ZXJ2YWxUaW1lcjsKLSAgICAgICAg
S0RPTTo6RG9jdW1lbnRJbXBsICptX2RvY3VtZW50OworICAgICAgICBTVkdUaW1lciogbV9pbnRl
cnZhbFRpbWVyOworICAgICAgICBEb2N1bWVudEltcGwqIG1fZG9jdW1lbnQ7CiAgICAgfTsKLX07
Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBGb3J3YXJkaW5nSGVh
ZGVycy9xbWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRm9yd2FyZGluZ0hlYWRlcnMvcW1hdHJpeC5o
CShyZXZpc2lvbiAxMjQ2MykKKysrIEZvcndhcmRpbmdIZWFkZXJzL3FtYXRyaXguaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW1wb3J0ICJLV1FXTWF0cml4LmgiCkluZGV4OiBGb3J3
YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEZvcndhcmRpbmdIZWFkZXJz
L3F3bWF0cml4LmgJKHJldmlzaW9uIDEyNDYzKQorKysgRm9yd2FyZGluZ0hlYWRlcnMvcXdtYXRy
aXguaAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiS1dRV01hdHJpeC5o
IgpJbmRleDoga3dxL0tXUVdNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRV01hdHJpeC5o
CShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FXTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBRV01BVFJJWF9IXwot
I2RlZmluZSBRV01BVFJJWF9IXwotCi0jaWYgX19BUFBMRV9fCi0vLyBGSVhNRTogSnVzdCBjb21t
ZW50IG91dCB0aGUgZW50aXJlIGZpbGUsIHNpbmNlIGl0cyBpbXBsZW1lbnRhdGlvbiBpcyBjb21w
bGV0ZWx5IENHLXNwZWNpZmljLgotCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBs
aWNhdGlvblNlcnZpY2VzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBJbnRS
ZWN0OwotICAgIGNsYXNzIEZsb2F0UmVjdDsKLX0KLQotY2xhc3MgUU1hdHJpeCB7Ci1wdWJsaWM6
Ci0gICAgUU1hdHJpeCgpOwotICAgIFFNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUg
YywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKLSAgICBRTWF0cml4KENHQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybSk7Ci0KLSAgICB2b2lkIHNldE1hdHJpeChkb3VibGUgYSwgZG91
YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUgdHkpOwotICAgIHZv
aWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91YmxlICp5MikgY29uc3Q7
Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBRTWF0cml4OjptYXBSZWN0KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBjb25zdDsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgUU1hdHJpeDo6bWFwUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKLSAgICAKLSAgICBib29sIGlzSWRlbnRp
dHkoKSBjb25zdDsKLSAgICAKLSAgICBkb3VibGUgbTExKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2Zvcm0uYTsgfQotICAgIGRvdWJsZSBtMTIoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybS5i
OyB9Ci0gICAgZG91YmxlIG0yMSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLmM7IH0KLSAg
ICBkb3VibGUgbTIyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0uZDsgfQotICAgIGRvdWJs
ZSBkeCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLnR4OyB9Ci0gICAgZG91YmxlIGR5KCkg
Y29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0udHk7IH0KLQotICAgIHZvaWQgcmVzZXQoKTsKLSAg
ICAKLSAgICBRTWF0cml4ICZzY2FsZShkb3VibGUgc3gsIGRvdWJsZSBzeSk7Ci0gICAgUU1hdHJp
eCAmcm90YXRlKGRvdWJsZSBkKTsKLSAgICBRTWF0cml4ICZ0cmFuc2xhdGUoZG91YmxlIHR4LCBk
b3VibGUgdHkpOwotICAgIFFNYXRyaXggJnNoZWFyKGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKLSAg
ICAKLSAgICBkb3VibGUgZGV0KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0ludmVydGlibGUoKSBjb25z
dDsKLSAgICBRTWF0cml4IGludmVydCgpIGNvbnN0OwotCi0gICAgb3BlcmF0b3IgQ0dBZmZpbmVU
cmFuc2Zvcm0oKSBjb25zdDsKLQotICAgIGJvb2wgb3BlcmF0b3I9PSAoY29uc3QgUU1hdHJpeCAm
KSBjb25zdDsKLSAgICBRTWF0cml4ICZvcGVyYXRvcio9IChjb25zdCBRTWF0cml4ICYpOwotICAg
IFFNYXRyaXggb3BlcmF0b3IqIChjb25zdCBRTWF0cml4ICZtMik7Ci0gICAgCi1wcml2YXRlOgot
ICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwotfTsKLQotI2RlZmluZSBRV01hdHJp
eCBRTWF0cml4Ci0KLSNlbmRpZiAvLyBfX0FQUExFX18KLQotI2VuZGlmCkluZGV4OiBrd3EvS1dR
RmlsZUJ1dHRvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRRmlsZUJ1dHRvbi5tbQkocmV2aXNp
b24gMTI0NjMpCisrKyBrd3EvS1dRRmlsZUJ1dHRvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDEwICsxMDYsOCBAQAogewogICAgIE5TVmlldyA8V2ViQ29yZUZpbGVCdXR0b24+ICpidXR0b24g
PSBnZXRWaWV3KCk7CiAKLSAgICBOU1JlY3QgZnJhbWUgPSB7ezAsMH0sezAsMH19OwogICAgIEtX
UV9CTE9DS19FWENFUFRJT05TOwotICAgIGZyYW1lID0gW2J1dHRvbiB2aXN1YWxGcmFtZV07Ci0g
ICAgcmV0dXJuIEludFJlY3QoZnJhbWUpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFti
dXR0b24gdmlzdWFsRnJhbWVdKTsKICAgICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogICAgIHJl
dHVybiBJbnRSZWN0KCk7CiB9CkluZGV4OiBrd3EvS1dRQ29tYm9Cb3gubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3dxL0tXUUNvbWJvQm94Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FDb21ib0Jv
eC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBACiAgICAgICAgIHIuaGVpZ2h0
KCkgLSAoZGltZW5zaW9ucygpW3RvcE1hcmdpbl0gKyBkaW1lbnNpb25zKClbYm90dG9tTWFyZ2lu
XSkpOwogfQogCi12b2lkIFFDb21ib0JveDo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCBJbnRSZWN0
ICZyKQordm9pZCBRQ29tYm9Cb3g6OnNldEZyYW1lR2VvbWV0cnkoY29uc3QgSW50UmVjdCYgcikK
IHsKICAgICBRV2lkZ2V0OjpzZXRGcmFtZUdlb21ldHJ5KEludFJlY3QoLWRpbWVuc2lvbnMoKVts
ZWZ0TWFyZ2luXSArIHIueCgpLCAtZGltZW5zaW9ucygpW3RvcE1hcmdpbl0gKyByLnkoKSwKICAg
ICAgICAgZGltZW5zaW9ucygpW2xlZnRNYXJnaW5dICsgci53aWR0aCgpICsgZGltZW5zaW9ucygp
W3JpZ2h0TWFyZ2luXSwKSW5kZXg6IGt3cS9LV1FQYWludGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3
cS9LV1FQYWludGVyLm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FQYWludGVyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC03NDAsNyArNzQwLDcgQEAKIAogdm9pZCBRUGFpbnRlcjo6ZmlsbFJl
Y3QoY29uc3QgSW50UmVjdCAmcmVjdCwgY29uc3QgV2ViQ29yZTo6QnJ1c2ggJmJydXNoKQogewot
ICAgIGZpbGxSZWN0KHJlY3QubGVmdCgpLCByZWN0LnRvcCgpLCByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCksIGJydXNoKTsKKyAgICBmaWxsUmVjdChyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qu
d2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgYnJ1c2gpOwogfQogCiB2b2lkIFFQYWludGVyOjphZGRD
bGlwKGNvbnN0IEludFJlY3QgJnJlY3QpCkBAIC03NzcsMTIgKzc3NywxMiBAQAogICAgIC8vIG5v
cm1hbCB1c2UgY2FzZXMgdGhlc2UgZWxsaXBzZXMgd29uJ3Qgb3ZlcmxhcCBvbmUgYW5vdGhlciAo
b3Igd2hlbiB0aGV5IGRvIHRoZSBjdXJ2YXR1cmUgb2Ygb25lIHdpbGwKICAgICAvLyBiZSBzdWJz
dW1lZCBieSB0aGUgb3RoZXIpLgogICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4
dCwgQ0dSZWN0TWFrZShyZWN0LngoKSwgcmVjdC55KCksIHRvcExlZnQud2lkdGgoKSAqIDIsIHRv
cExlZnQuaGVpZ2h0KCkgKiAyKSk7Ci0gICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250
ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gdG9wUmlnaHQud2lkdGgo
KSAqIDIsIHJlY3QueSgpLAorICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4dCwg
Q0dSZWN0TWFrZShyZWN0LnJpZ2h0KCkgLSB0b3BSaWdodC53aWR0aCgpICogMiwgcmVjdC55KCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcFJp
Z2h0LndpZHRoKCkgKiAyLCB0b3BSaWdodC5oZWlnaHQoKSAqIDIpKTsKLSAgICBDR0NvbnRleHRB
ZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCksIHJlY3QueSgpICsg
cmVjdC5oZWlnaHQoKSAtIGJvdHRvbUxlZnQuaGVpZ2h0KCkgKiAyLAorICAgIENHQ29udGV4dEFk
ZEVsbGlwc2VJblJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSwgcmVjdC5ib3R0b20o
KSAtIGJvdHRvbUxlZnQuaGVpZ2h0KCkgKiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0LndpZHRoKCkgKiAyLCBib3R0b21MZWZ0
LmhlaWdodCgpICogMikpOwotICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4dCwg
Q0dSZWN0TWFrZShyZWN0LngoKSArIHJlY3Qud2lkdGgoKSAtIGJvdHRvbVJpZ2h0LndpZHRoKCkg
KiAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSBib3R0b21SaWdodC5oZWlnaHQoKSAqIDIsCisgICAg
Q0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QucmlnaHQo
KSAtIGJvdHRvbVJpZ2h0LndpZHRoKCkgKiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWN0LmJvdHRvbSgpIC0gYm90dG9tUmlnaHQuaGVpZ2h0
KCkgKiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib3R0b21SaWdodC53aWR0aCgpICogMiwgYm90dG9tUmlnaHQuaGVpZ2h0KCkgKiAyKSk7CiAg
ICAgCiAgICAgLy8gTm93IGFkZCBmaXZlIHJlY3RzIChvbmUgZm9yIGVhY2ggZWRnZSByZWN0IGlu
IGJldHdlZW4gdGhlIHJvdW5kZWQgY29ybmVycyBhbmQgb25lIGZvciB0aGUgaW50ZXJpb3IpLgpA
QCAtNzkwLDEyICs3OTAsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVjdC53aWR0aCgpIC0gdG9wTGVmdC53aWR0aCgpIC0gdG9wUmlnaHQud2lkdGgoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga01heCh0b3BMZWZ0Lmhl
aWdodCgpLCB0b3BSaWdodC5oZWlnaHQoKSkpKTsKICAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRl
eHQsIENHUmVjdE1ha2UocmVjdC54KCkgKyBib3R0b21MZWZ0LndpZHRoKCksIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkg
LSBrTWF4KGJvdHRvbUxlZnQuaGVpZ2h0KCksIGJvdHRvbVJpZ2h0LmhlaWdodCgpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC5ib3R0b20oKSAtIGtNYXgo
Ym90dG9tTGVmdC5oZWlnaHQoKSwgYm90dG9tUmlnaHQuaGVpZ2h0KCkpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LndpZHRoKCkgLSBib3R0b21MZWZ0Lndp
ZHRoKCkgLSBib3R0b21SaWdodC53aWR0aCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrTWF4KGJvdHRvbUxlZnQuaGVpZ2h0KCksIGJvdHRvbVJpZ2h0LmhlaWdo
dCgpKSkpOwogICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0Lngo
KSwgcmVjdC55KCkgKyB0b3BMZWZ0LmhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrTWF4KHRvcExlZnQud2lkdGgoKSwgYm90dG9tTGVmdC53aWR0aCgp
KSwgcmVjdC5oZWlnaHQoKSAtIHRvcExlZnQuaGVpZ2h0KCkgLSBib3R0b21MZWZ0LmhlaWdodCgp
KSk7Ci0gICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpICsg
cmVjdC53aWR0aCgpIC0ga01heCh0b3BSaWdodC53aWR0aCgpLCBib3R0b21SaWdodC53aWR0aCgp
KSwKKyAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC5yaWdodCgp
IC0ga01heCh0b3BSaWdodC53aWR0aCgpLCBib3R0b21SaWdodC53aWR0aCgpKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC55KCkgKyB0b3BSaWdodC5oZWln
aHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga01heCh0b3BS
aWdodC53aWR0aCgpLCBib3R0b21SaWdodC53aWR0aCgpKSwgcmVjdC5oZWlnaHQoKSAtIHRvcFJp
Z2h0LmhlaWdodCgpIC0gYm90dG9tUmlnaHQuaGVpZ2h0KCkpKTsKICAgICBDR0NvbnRleHRBZGRS
ZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCkgKyBrTWF4KHRvcExlZnQud2lkdGgoKSwg
Ym90dG9tTGVmdC53aWR0aCgpKSwKSW5kZXg6IGt3cS9LV1FBcHBsaWNhdGlvbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrd3EvS1dRQXBwbGljYXRpb24ubW0JKHJldmlzaW9uIDEyNDYzKQorKysga3dxL0tX
UUFwcGxpY2F0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC4gMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
NzAgKzIzLDUwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgi
CisjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIktXUUFwcGxpY2F0aW9uLmgiCi0jaW1wb3J0
ICJLV1FTdHlsZS5oIgogCisjaW1wb3J0ICJJbnRSZWN0LmgiCisjaW1wb3J0ICJLV1FXaWRnZXQu
aCIKKwogLy8gVGhlIE5TU2NyZWVuIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBzaG91bGQgbmV2
ZXIgdGhyb3csIHNvCiAvLyB0aGVyZSdzIG5vIG5lZWQgdG8gYmxvY2sgZXhjZXB0aW9ucy4KIAot
aW50IFFEZXNrdG9wV2lkZ2V0Ojp3aWR0aCgpCi17Ci0gICAgcmV0dXJuIChpbnQpW1tOU1NjcmVl
biBtYWluU2NyZWVuXSBmcmFtZV0uc2l6ZS53aWR0aDsKLX0KLSAgICAKLWludCBRRGVza3RvcFdp
ZGdldDo6aGVpZ2h0KCkKLXsKLSAgICByZXR1cm4gKGludClbW05TU2NyZWVuIG1haW5TY3JlZW5d
IGZyYW1lXS5zaXplLmhlaWdodDsKLX0KK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6
IFNvbWUgZGF5IHdlIG1heSB3YW50IHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgd2lkZ2V0
IGlzIGluIGEgd2luZG93IHRoYXQncyBvbgogLy8gYSBkaWZmZXJlbnQgc2NyZWVuIGZyb20gdGhl
IGtleSB3aW5kb3cgYXQgdGhlIHRpbWUgdGhlIHNjcmlwdCBpcyBydW4uIElmIHNvLCBrZWVwIGlu
IG1pbmQKIC8vIHRoYXQgdGhlIHJlc3VsdCBvZiBzY3JlZW5HZW9tZXRyeSBpcyBpbnRlcnNlY3Rl
ZCB3aXRoIHRoZSByZXN1bHQgb2YgS1dpbk1vZHVsZTo6d29ya0FyZWEuCiAKLWludCBRRGVza3Rv
cFdpZGdldDo6c2NyZWVuTnVtYmVyKFFXaWRnZXQgKikKK2ludCBRRGVza3RvcFdpZGdldDo6c2Ny
ZWVuTnVtYmVyKFFXaWRnZXQqKQogewogICAgIC8vIEFsd2F5cyByZXR1cm5zIDAsIHdoaWNoIGlz
IGZpbmUgc2luY2UgdGhpcyBpcyBvbmx5IHBhc3NlZCB0byBzY3JlZW5HZW9tZXRyeSwKICAgICAv
LyB3aGljaCBpZ25vcmVzIHRoZSBzY3JlZW4gbnVtYmVyIHBhcmFtZXRlci4KICAgICByZXR1cm4g
MDsKIH0KIAotSW50UmVjdCBRRGVza3RvcFdpZGdldDo6c2NyZWVuR2VvbWV0cnkoaW50IHNjcmVl
bk51bWJlcikKK0ludFJlY3QgUURlc2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KGludCkKIHsK
ICAgICAvLyBJZ25vcmVzIHRoZSBzY3JlZW4gbnVtYmVyLCBhbmQgYWx3YXlzIHJldHVybnMgdGhl
IGdlb21ldHJ5IG9mIHRoZSBtYWluIHNjcmVlbiwKICAgICAvLyB3aGljaCBpcyB0aGUgc2NyZWVu
IHRoYXQgdGhlIGtleSB3aW5kb3cgaXMgb24uCiAgICAgTlNSZWN0IHJlY3QgPSBbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGZyYW1lXTsKICAgICByZWN0Lm9yaWdpbi55ID0gTlNNYXhZKFtbW05TU2Ny
ZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIE5TTWF4WShyZWN0KTsKLSAg
ICByZXR1cm4gSW50UmVjdChyZWN0KTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChyZWN0
KTsKIH0KIAotSW50UmVjdCBRRGVza3RvcFdpZGdldDo6YXZhaWxhYmxlR2VvbWV0cnkoUVdpZGdl
dCAqd2lkZ2V0KQorSW50UmVjdCBRRGVza3RvcFdpZGdldDo6YXZhaWxhYmxlR2VvbWV0cnkoUVdp
ZGdldCogd2lkZ2V0KQogewogICAgIE5TU2NyZWVuICpzY3JlZW4gPSB3aWRnZXQgPyBbW3dpZGdl
dC0+Z2V0VmlldygpIHdpbmRvd10gc2NyZWVuXSA6IG5pbDsKICAgICBpZiAoIXNjcmVlbikKICAg
ICAgICAgc2NyZWVuID0gW05TU2NyZWVuIG1haW5TY3JlZW5dOwogICAgIE5TUmVjdCByZWN0ID0g
W3NjcmVlbiB2aXNpYmxlRnJhbWVdOwogICAgIHJlY3Qub3JpZ2luLnkgPSBOU01heFkoW1tbTlNT
Y3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0pIC0gTlNNYXhZKHJlY3QpOwot
ICAgIHJldHVybiBJbnRSZWN0KHJlY3QpOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJl
Y3QpOwogfQogCi1pbnQgUURlc2t0b3BXaWRnZXQ6OnNjcmVlbkRlcHRoKCkgY29uc3QKK2ludCBR
RGVza3RvcFdpZGdldDo6c2NyZWVuRGVwdGgoaW50KQogewogICAgIHJldHVybiBDR0Rpc3BsYXlC
aXRzUGVyUGl4ZWwoa0NHRGlyZWN0TWFpbkRpc3BsYXkpOwogfQogCi12b2lkIFFBcHBsaWNhdGlv
bjo6c2V0T3ZlcnJpZGVDdXJzb3IoY29uc3QgUUN1cnNvciAmYykKLXsKLSAgICAvLyBGSVhNRTog
U2hvdWxkIGltcGxlbWVudCB0aGlzIHNvIHRoYXQgZnJhbWUgYm9yZGVyIGRyYWdnaW5nIGhhcyB0
aGUgcHJvcGVyIGN1cnNvci4KIH0KLQotdm9pZCBRQXBwbGljYXRpb246OnJlc3RvcmVPdmVycmlk
ZUN1cnNvcigpCi17Ci0gICAgLy8gRklYTUU6IFNob3VsZCBpbXBsZW1lbnQgdGhpcyBzbyB0aGF0
IGZyYW1lIGJvcmRlciBkcmFnZ2luZyBoYXMgdGhlIHByb3BlciBjdXJzb3IuCi19Ci0KLVFTdHls
ZSAmUUFwcGxpY2F0aW9uOjpzdHlsZSgpCi17Ci0gICAgc3RhdGljIFFTdHlsZSBzdHlsZTsKLSAg
ICByZXR1cm4gc3R5bGU7Ci19CkluZGV4OiBrd3EvS1dRV2luZG93V2lkZ2V0Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGt3cS9LV1FXaW5kb3dXaWRnZXQubW0JKHJldmlzaW9uIDEyNDYzKQorKysga3dxL0tX
UVdpbmRvd1dpZGdldC5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNiBAQAogdm9pZCBL
V1FXaW5kb3dXaWRnZXQ6OnNldEZyYW1lR2VvbWV0cnkoY29uc3QgSW50UmVjdCAmcikKIHsKICAg
ICAvLyBGSVhNRTogQ291bGQgZG8gc29tZXRoaW5nIHRvIG1ha2UgaXQgZWFzeSBmb3IgdGhlIGJy
b3dzZXIgdG8gYXZvaWQgc2F2aW5nIHRoaXMgY2hhbmdlLgotICAgIFtkLT5icmlkZ2Ugc2V0V2lu
ZG93RnJhbWU6TlNNYWtlUmVjdChyLngoKSwgTlNNYXhZKFtbW05TU2NyZWVuIHNjcmVlbnNdIG9i
amVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIChyLnkoKSArIHIuaGVpZ2h0KCkpLAorICAgIFtkLT5i
cmlkZ2Ugc2V0V2luZG93RnJhbWU6TlNNYWtlUmVjdChyLngoKSwgTlNNYXhZKFtbW05TU2NyZWVu
IHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIHIuYm90dG9tKCksCiAgICAgICAg
IHIud2lkdGgoKSwgci5oZWlnaHQoKSldOwogfQpJbmRleDoga3dxL0tXUUFjY09iamVjdC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrd3EvS1dRQWNjT2JqZWN0Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3
cS9LV1FBY2NPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzOSw3ICs1MzksNyBAQAogCiBz
dGF0aWMgSW50UmVjdCBib3VuZGluZ0JveFJlY3QoUmVuZGVyT2JqZWN0KiBvYmopCiB7Ci0gICAg
SW50UmVjdCByZWN0KDAsMCwwLDApOworICAgIEludFJlY3QgcmVjdDsKICAgICBpZiAob2JqKSB7
CiAgICAgICAgIGlmIChvYmotPmlzSW5saW5lQ29udGludWF0aW9uKCkpCiAgICAgICAgICAgICBv
YmogPSBvYmotPmVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKQEAgLTU0OSw3ICs1NDksNyBAQAogICAg
ICAgICBvYmotPmFic29sdXRlUmVjdHMocmVjdHMsIHgsIHkpOwogICAgICAgICBmb3IgKFFWYWx1
ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3IgaXQgPSByZWN0cy5iZWdpbigpOyBpdCAhPSBy
ZWN0cy5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgSW50UmVjdCByID0gKml0OwotICAgICAg
ICAgICAgaWYgKHIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBpZiAoIXIuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKG9iai0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQogICAg
ICAgICAgICAgICAgICAgICB0aGVtZSgpLT5hZGp1c3RSZXBhaW50UmVjdChvYmosIHIpOwogICAg
ICAgICAgICAgICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKQEAgLTU2Niw4ICs1NjYsOCBAQAogewog
ICAgIEludFJlY3QgcmVjdCA9IG1fYXJlYUVsZW1lbnQgPyBtX2FyZWFFbGVtZW50LT5nZXRSZWN0
KG1fcmVuZGVyZXIpIDogYm91bmRpbmdCb3hSZWN0KG1fcmVuZGVyZXIpOwogICAgIAotICAgIC8v
IFRoZSBDb2NvYSBhY2Nlc3NpYmlsaXR5IEFQSSB3YW50cyB0aGUgbG93ZXItbGVmdCBjb3JuZXIs
IG5vdCB0aGUgdXBwZXItbGVmdCwgc28gd2UgYWRkIGluIG91ciBoZWlnaHQuCi0gICAgTlNQb2lu
dCBwb2ludCA9IE5TTWFrZVBvaW50KHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkp
OworICAgIC8vIFRoZSBDb2NvYSBhY2Nlc3NpYmlsaXR5IEFQSSB3YW50cyB0aGUgbG93ZXItbGVm
dCBjb3JuZXIuCisgICAgTlNQb2ludCBwb2ludCA9IE5TTWFrZVBvaW50KHJlY3QueCgpLCByZWN0
LmJvdHRvbSgpKTsKICAgICBpZiAobV9yZW5kZXJlciAmJiBtX3JlbmRlcmVyLT5jYW52YXMoKSAm
JiBtX3JlbmRlcmVyLT5jYW52YXMoKS0+dmlldygpKSB7CiAgICAgICAgIE5TVmlldyogdmlldyA9
IG1fcmVuZGVyZXItPmNhbnZhcygpLT52aWV3KCktPmdldERvY3VtZW50VmlldygpOwogICAgICAg
ICBwb2ludCA9IFtbdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46IFt2aWV3IGNvbnZl
cnRQb2ludDogcG9pbnQgdG9WaWV3Om5pbF1dOwpAQCAtMTEwNiw3ICsxMTA2LDggQEAKICAgICAv
LyB1c2UgdGhlIFNlbGVjdGlvbkNvbnRyb2xsZXIgY2xhc3MgdG8gaGVscCBjYWxjdWxhdGUgdGhl
IGNvcnJlc3BvbmRpbmcgcmVjdGFuZ2xlCiAgICAgSW50UmVjdCByZWN0MSA9IFNlbGVjdGlvbkNv
bnRyb2xsZXIoc3RhcnRWaXNpYmxlUG9zaXRpb24sIHN0YXJ0VmlzaWJsZVBvc2l0aW9uKS5jYXJl
dFJlY3QoKTsKICAgICBJbnRSZWN0IHJlY3QyID0gU2VsZWN0aW9uQ29udHJvbGxlcihlbmRWaXNp
YmxlUG9zaXRpb24sIGVuZFZpc2libGVQb3NpdGlvbikuY2FyZXRSZWN0KCk7Ci0gICAgSW50UmVj
dCBvdXJyZWN0ID0gcmVjdDEudW5pdGUocmVjdDIpOworICAgIEludFJlY3Qgb3VycmVjdCA9IHJl
Y3QxOworICAgIG91cnJlY3QudW5pdGUocmVjdDIpOwogCiAgICAgLy8gdHJ5IHRvIHVzZSB0aGUg
ZG9jdW1lbnQgdmlldyBmcm9tIHRoZSBzZWxlY3Rpb24sIHNvIHRoYXQgbmVzdGVkIFdlYkFyZWFz
IHdvcmssCiAgICAgLy8gYnV0IGZhbGwgYmFjayB0byB0aGUgdG9wIGxldmVsIGRvYyBpZiB3ZSBk
byBub3QgZmluZCBpdCBlYXNpbHkKQEAgLTExMjQsMTIgKzExMjUsMTIgQEAKICAgICAvLyBpZiB0
aGUgc2VsZWN0aW9uIHNwYW5zIGxpbmVzLCB0aGUgcmVjdGFuZ2xlIGlzIHRvIGV4dGVuZAogICAg
IC8vIGFjcm9zcyB0aGUgd2lkdGggb2YgdGhlIHZpZXcKICAgICBpZiAocmVjdDEuYm90dG9tKCkg
IT0gcmVjdDIuYm90dG9tKCkpIHsKLSAgICAgICAgb3VycmVjdC5zZXRYKChpbnQpW3ZpZXcgZnJh
bWVdLm9yaWdpbi54KTsKLSAgICAgICAgb3VycmVjdC5zZXRXaWR0aCgoaW50KVt2aWV3IGZyYW1l
XS5zaXplLndpZHRoKTsKKyAgICAgICAgb3VycmVjdC5zZXRYKHN0YXRpY19jYXN0PGludD4oW3Zp
ZXcgZnJhbWVdLm9yaWdpbi54KSk7CisgICAgICAgIG91cnJlY3Quc2V0V2lkdGgoc3RhdGljX2Nh
c3Q8aW50PihbdmlldyBmcmFtZV0uc2l6ZS53aWR0aCkpOwogICAgIH0KICAKICAgICAvLyBjb252
ZXJ0IG91ciByZWN0YW5nbGUgdG8gc2NyZWVuIGNvb3JkaW5hdGVzCi0gICAgTlNSZWN0IHJlY3Qg
PSBOU01ha2VSZWN0KG91cnJlY3QubGVmdCgpLCBvdXJyZWN0LnRvcCgpLCBvdXJyZWN0LndpZHRo
KCksIG91cnJlY3QuaGVpZ2h0KCkpOworICAgIE5TUmVjdCByZWN0ID0gb3VycmVjdDsKICAgICBy
ZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC1kb2NWaWV3LT5jb250ZW50c1goKSwgLWRvY1ZpZXct
PmNvbnRlbnRzWSgpKTsKICAgICByZWN0ID0gW3ZpZXcgY29udmVydFJlY3Q6cmVjdCB0b1ZpZXc6
bmlsXTsKICAgICByZWN0Lm9yaWdpbiA9IFtbdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3Jl
ZW46cmVjdC5vcmlnaW5dOwpJbmRleDoga3dxL0tXUVJlZ2lvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3dxL0tXUVJlZ2lvbi5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3dxL0tXUVJlZ2lvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg4LDUgKzg4LDUgQEAKIAogSW50UmVjdCBRUmVnaW9uOjpib3Vu
ZGluZ1JlY3QoKSBjb25zdAogewotICAgIHJldHVybiBwYXRoID8gSW50UmVjdChDR1BhdGhHZXRC
b3VuZGluZ0JveChwYXRoKSkgOiBJbnRSZWN0KCk7CisgICAgcmV0dXJuIHBhdGggPyBlbmNsb3Np
bmdJbnRSZWN0KENHUGF0aEdldEJvdW5kaW5nQm94KHBhdGgpKSA6IEludFJlY3QoKTsKIH0KSW5k
ZXg6IGt3cS9LV1FLV2luTW9kdWxlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FLV2luTW9kdWxl
Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FLV2luTW9kdWxlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw1ICszMiw1IEBACiAgICAgLy8gTm8gbmVlZCB0byBibG9jayBleGNlcHRpb25z
IGJlY2F1c2UgdGhlc2Ugc2ltcGxlIE5TU2NyZWVuIGNhbGxzIG5ldmVyIHRocm93LgogICAgIE5T
UmVjdCByZWN0ID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSB2aXNpYmxlRnJhbWVdOwogICAgIHJl
Y3Qub3JpZ2luLnkgPSBOU01heFkoW1tbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDow
XSBmcmFtZV0pIC0gTlNNYXhZKHJlY3QpOwotICAgIHJldHVybiBJbnRSZWN0KHJlY3QpOworICAg
IHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOwogfQpJbmRleDoga3dxL0tXUVJlbmRlclRy
ZWVEZWJ1Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAJKHJl
dmlzaW9uIDEyNDYzKQorKysga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxNCwxMSArMzE0LDExIEBACiAgICAgdHMgPDwgImxheWVyIjsKICAgICB0cyA8PCAi
ICIgPDwgbGF5ZXJCb3VuZHM7CiAKLSAgICBpZiAobGF5ZXJCb3VuZHMgIT0gbGF5ZXJCb3VuZHMu
aW50ZXJzZWN0KGJhY2tncm91bmRDbGlwUmVjdCkpCisgICAgaWYgKCFiYWNrZ3JvdW5kQ2xpcFJl
Y3QuY29udGFpbnMobGF5ZXJCb3VuZHMpKQogICAgICAgICB0cyA8PCAiIGJhY2tncm91bmRDbGlw
ICIgPDwgYmFja2dyb3VuZENsaXBSZWN0OwotICAgIGlmIChsYXllckJvdW5kcyAhPSBsYXllckJv
dW5kcy5pbnRlcnNlY3QoY2xpcFJlY3QpKQorICAgIGlmICghY2xpcFJlY3QuY29udGFpbnMobGF5
ZXJCb3VuZHMpKQogICAgICAgICB0cyA8PCAiIGNsaXAgIiA8PCBjbGlwUmVjdDsKLSAgICBpZiAo
bGF5ZXJCb3VuZHMgIT0gbGF5ZXJCb3VuZHMuaW50ZXJzZWN0KG91dGxpbmVDbGlwUmVjdCkpCisg
ICAgaWYgKCFvdXRsaW5lQ2xpcFJlY3QuY29udGFpbnMobGF5ZXJCb3VuZHMpKQogICAgICAgICB0
cyA8PCAiIG91dGxpbmVDbGlwICIgPDwgb3V0bGluZUNsaXBSZWN0OwogCiAgICAgaWYgKGwucmVu
ZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKSW5kZXg6IGt3cS9LV1FBcHBsaWNhdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGt3cS9LV1FBcHBsaWNhdGlvbi5oCShyZXZpc2lvbiAxMjQ2MykKKysr
IGt3cS9LV1FBcHBsaWNhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsMzEgKzI2LDIwIEBACiAjaWZuZGVmIFFBUFBMSUNBVElPTl9IXwogI2RlZmluZSBRQVBQ
TElDQVRJT05fSF8KIAotI2luY2x1ZGUgIktXUVBhbGV0dGUuaCIKLSNpbmNsdWRlICJLV1FXaWRn
ZXQuaCIKK2NsYXNzIFFXaWRnZXQ7CiAKLWNsYXNzIFFEZXNrdG9wV2lkZ2V0OworbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBRQXBwbGljYXRpb24gOiBwdWJsaWMgUU9iamVjdCB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFFEZXNrdG9wV2lkZ2V0ICpkZXNrdG9wKCkgeyByZXR1cm4gMDsgfQot
ICAgIHN0YXRpYyB2b2lkIHNldE92ZXJyaWRlQ3Vyc29yKGNvbnN0IFFDdXJzb3IgJik7Ci0gICAg
c3RhdGljIHZvaWQgcmVzdG9yZU92ZXJyaWRlQ3Vyc29yKCk7Ci0gICAgc3RhdGljIGJvb2wgc2Vu
ZEV2ZW50KFFPYmplY3QgKm8sIFFFdmVudCAqZSkgeyByZXR1cm4gby0+ZXZlbnQoZSk7IH0KLSAg
ICBzdGF0aWMgUVN0eWxlICZzdHlsZSgpOwotICAgIHN0YXRpYyBRUGFsZXR0ZSBwYWxldHRlKCkg
eyByZXR1cm4gUVBhbGV0dGUoKTsgfQotfTsKK2NsYXNzIEludFJlY3Q7CiAKLVFBcHBsaWNhdGlv
biAqIGNvbnN0IHFBcHAgPSAwOwotCi1jbGFzcyBRRGVza3RvcFdpZGdldCA6IHB1YmxpYyBRV2lk
Z2V0IHsKK2NsYXNzIFFEZXNrdG9wV2lkZ2V0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgaW50IHNj
cmVlbk51bWJlcihRV2lkZ2V0ICopOworICAgIHN0YXRpYyBpbnQgc2NyZWVuTnVtYmVyKFFXaWRn
ZXQqKTsKICAgICBzdGF0aWMgSW50UmVjdCBzY3JlZW5HZW9tZXRyeShpbnQgc2NyZWVuTnVtYmVy
KTsKLSAgICBpbnQgc2NyZWVuRGVwdGgoKSBjb25zdDsgLy8gRklYTUU6IERvIHdlIHJlYWxseSBh
bHdheXMgYXNzdW1lIG1haW4gZGlzcGxheSBoZXJlPyBUaGF0J3MgaG93IGl0IHVzZWQgdG8gd29y
ayBpbiBRUGFpbnREZXZpY2VNZXRyaWNzLgotICAgIHN0YXRpYyBJbnRSZWN0IGF2YWlsYWJsZUdl
b21ldHJ5KFFXaWRnZXQgKik7Ci0gICAgc3RhdGljIGludCB3aWR0aCgpOwotICAgIHN0YXRpYyBp
bnQgaGVpZ2h0KCk7CisgICAgc3RhdGljIGludCBzY3JlZW5EZXB0aChpbnQgc2NyZWVuTnVtYmVy
KTsKKyAgICBzdGF0aWMgSW50UmVjdCBhdmFpbGFibGVHZW9tZXRyeShRV2lkZ2V0Kik7CiB9Owog
Cit9CisKICNlbmRpZgpJbmRleDoga3dxL0tXUVdpZGdldC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3Ev
S1dRV2lkZ2V0Lm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FXaWRnZXQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEzOCwyMiArMTM4LDIyIEBACiAKIGludCBRV2lkZ2V0Ojp4KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgpLnRvcExlZnQoKS54KCk7CisgICAgcmV0dXJu
IGZyYW1lR2VvbWV0cnkoKS54KCk7CiB9CiAKIGludCBRV2lkZ2V0Ojp5KCkgY29uc3QgCiB7Ci0g
ICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS50b3BMZWZ0KCkueSgpOworICAgIHJldHVybiBmcmFt
ZUdlb21ldHJ5KCkueSgpOwogfQogCiBpbnQgUVdpZGdldDo6d2lkdGgoKSBjb25zdCAKIHsgCi0g
ICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS5zaXplKCkud2lkdGgoKTsKKyAgICByZXR1cm4gZnJh
bWVHZW9tZXRyeSgpLndpZHRoKCk7CiB9CiAKIGludCBRV2lkZ2V0OjpoZWlnaHQoKSBjb25zdCAK
IHsKLSAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgpLnNpemUoKS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gZnJhbWVHZW9tZXRyeSgpLmhlaWdodCgpOwogfQogCiBJbnRTaXplIFFXaWRnZXQ6OnNpemUo
KSBjb25zdCAKQEAgLTE2OCw3ICsxNjgsNyBAQAogCiBJbnRQb2ludCBRV2lkZ2V0Ojpwb3MoKSBj
b25zdCAKIHsKLSAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgpLnRvcExlZnQoKTsKKyAgICByZXR1
cm4gZnJhbWVHZW9tZXRyeSgpLmxvY2F0aW9uKCk7CiB9CiAKIHZvaWQgUVdpZGdldDo6bW92ZShp
bnQgeCwgaW50IHkpIApAQCAtMTgzLDEwICsxODMsOCBAQAogCiBJbnRSZWN0IFFXaWRnZXQ6OmZy
YW1lR2VvbWV0cnkoKSBjb25zdAogewotICAgIEludFJlY3QgcmVjdDsKICAgICBLV1FfQkxPQ0tf
RVhDRVBUSU9OUzsKLSAgICByZWN0ID0gSW50UmVjdChbZ2V0T3V0ZXJWaWV3KCkgZnJhbWVdKTsK
LSAgICByZXR1cm4gcmVjdDsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbZ2V0T3V0ZXJW
aWV3KCkgZnJhbWVdKTsKICAgICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogICAgIHJldHVybiBJ
bnRSZWN0KCk7CiB9CkluZGV4OiBrd3EvS1dRRm9udE1ldHJpY3MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3dxL0tXUUZvbnRNZXRyaWNzLm1tCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FGb250TWV0
cmljcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBACiAgICAgZ2VvbWV0cnku
c2VsZWN0aW9uWSA9IHk7CiAgICAgZ2VvbWV0cnkuc2VsZWN0aW9uSGVpZ2h0ID0gaDsKICAgICBn
ZW9tZXRyeS51c2VGb250TWV0cmljc0ZvclNlbGVjdGlvbllBbmRIZWlnaHQgPSBmYWxzZTsKLSAg
ICByZXR1cm4gSW50UmVjdChbZGF0YS0+Z2V0UmVuZGVyZXIoKSBzZWxlY3Rpb25SZWN0Rm9yUnVu
OiZydW4gc3R5bGU6JnN0eWxlIGdlb21ldHJ5OiZnZW9tZXRyeV0pOworICAgIHJldHVybiBlbmNs
b3NpbmdJbnRSZWN0KFtkYXRhLT5nZXRSZW5kZXJlcigpIHNlbGVjdGlvblJlY3RGb3JSdW46JnJ1
biBzdHlsZTomc3R5bGUgZ2VvbWV0cnk6Jmdlb21ldHJ5XSk7CiB9CiAKIGludCBRRm9udE1ldHJp
Y3M6OmNoZWNrU2VsZWN0aW9uUG9pbnQoUUNoYXIgKnMsIGludCBzbGVuLCBpbnQgcG9zLCBpbnQg
bGVuLCBpbnQgdG9BZGQsIGludCB0YWJXaWR0aCwgaW50IHhwb3MsIGludCBsZXR0ZXJTcGFjaW5n
LCBpbnQgd29yZFNwYWNpbmcsIGJvb2wgc21hbGxDYXBzLCBpbnQgeCwgYm9vbCByZXZlcnNlZCwg
Ym9vbCBkaXJPdmVycmlkZSwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3QKQEAgLTI5
Nyw3ICsyOTcsNyBAQAogSW50UmVjdCBRRm9udE1ldHJpY3M6OmJvdW5kaW5nUmVjdChpbnQgeCwg
aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGZsYWdzLCBjb25zdCBRU3RyaW5nICZz
dHIsIGludCB0YWJXaWR0aCwgaW50IHhwb3MpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IG5lZWQg
dG8gc3VwcG9ydCB3b3JkIHdyYXBwaW5nPwotICAgIHJldHVybiBJbnRSZWN0KHgsIHksIHdpZHRo
LCBoZWlnaHQpLmludGVyc2VjdChib3VuZGluZ1JlY3Qoc3RyLCB0YWJXaWR0aCwgeHBvcykpOwor
ICAgIHJldHVybiBpbnRlcnNlY3Rpb24oSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSwgYm91
bmRpbmdSZWN0KHN0ciwgdGFiV2lkdGgsIHhwb3MpKTsKIH0KIAogSW50U2l6ZSBRRm9udE1ldHJp
Y3M6OnNpemUoaW50LCBjb25zdCBRU3RyaW5nICZxc3RyaW5nLCBpbnQgdGFiV2lkdGgsIGludCB4
cG9zKSBjb25zdApJbmRleDoga3dxL0tXUVBhaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dR
UGFpbnRlci5oCShyZXZpc2lvbiAxMjQ2MykKKysrIGt3cS9LV1FQYWludGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDE5ICsyNiwxNiBAQAogI2lmbmRlZiBRUEFJTlRFUl9IXwogI2RlZmluZSBR
UEFJTlRFUl9IXwogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJQZW4uaCIKICNpbmNs
dWRlICJCcnVzaC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiS1dRRm9udE1ldHJp
Y3MuaCIKLSNpbmNsdWRlICJLV1FOYW1lc3BhY2UuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiUGVuLmgiCiAKICNpZiBfX0FQUExFX18KICNpbmNsdWRlIDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNlbmRpZgogCiBjbGFzcyBRRm9udDsKK2Ns
YXNzIFFGb250TWV0cmljczsKIGNsYXNzIFFTdHJpbmc7CiBjbGFzcyBRV2lkZ2V0OwogCkBAIC00
OSw3ICs0Niw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSW1hZ2U7CitjbGFz
cyBJbnRQb2ludDsKK2NsYXNzIEludFBvaW50QXJyYXk7CiBjbGFzcyBRUGFpbnRlclByaXZhdGU7
CiAKIGNsYXNzIFFQYWludGVyIDogcHVibGljIFF0IHsKQEAgLTYxLDIxICs1OSwyMSBAQAogICAg
IFFQYWludGVyKGJvb2wgZm9yUHJpbnRpbmcpOwogICAgIH5RUGFpbnRlcigpOwogICAgCi0gICAg
Y29uc3QgUUZvbnQgJmZvbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldEZvbnQoY29uc3QgUUZvbnQg
Jik7CisgICAgY29uc3QgUUZvbnQmIGZvbnQoKSBjb25zdDsKKyAgICB2b2lkIHNldEZvbnQoY29u
c3QgUUZvbnQmKTsKICAgICBRRm9udE1ldHJpY3MgZm9udE1ldHJpY3MoKSBjb25zdDsKICAgICAK
LSAgICBjb25zdCBQZW4gJnBlbigpIGNvbnN0OwotICAgIHZvaWQgc2V0UGVuKGNvbnN0IFBlbiAm
KTsKKyAgICBjb25zdCBQZW4mIHBlbigpIGNvbnN0OworICAgIHZvaWQgc2V0UGVuKGNvbnN0IFBl
biYpOwogICAgIHZvaWQgc2V0UGVuKFBlbjo6UGVuU3R5bGUpOwogICAgIHZvaWQgc2V0UGVuKFJH
QkEzMik7CiAgICAgCi0gICAgY29uc3QgV2ViQ29yZTo6QnJ1c2ggJlFQYWludGVyOjpicnVzaCgp
IGNvbnN0OwotICAgIHZvaWQgc2V0QnJ1c2goY29uc3QgV2ViQ29yZTo6QnJ1c2ggJik7Ci0gICAg
dm9pZCBzZXRCcnVzaChXZWJDb3JlOjpCcnVzaDo6QnJ1c2hTdHlsZSk7CisgICAgY29uc3QgQnJ1
c2gmIGJydXNoKCkgY29uc3Q7CisgICAgdm9pZCBzZXRCcnVzaChjb25zdCBCcnVzaCYpOworICAg
IHZvaWQgc2V0QnJ1c2goQnJ1c2g6OkJydXNoU3R5bGUpOwogICAgIHZvaWQgc2V0QnJ1c2goUkdC
QTMyKTsKIAotICAgIEludFJlY3QgeEZvcm0oY29uc3QgSW50UmVjdCAmKSBjb25zdDsKKyAgICBJ
bnRSZWN0IHhGb3JtKGNvbnN0IEludFJlY3QmKSBjb25zdDsKIAogICAgIHZvaWQgc2F2ZSgpOwog
ICAgIHZvaWQgcmVzdG9yZSgpOwpAQCAtODQsNDMgKzgyLDQ2IEBACiAgICAgdm9pZCBkcmF3TGlu
ZShpbnQsIGludCwgaW50LCBpbnQpOwogICAgIHZvaWQgZHJhd0VsbGlwc2UoaW50LCBpbnQsIGlu
dCwgaW50KTsKICAgICB2b2lkIGRyYXdBcmMoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCk7
Ci0gICAgdm9pZCBkcmF3Q29udmV4UG9seWdvbihjb25zdCBJbnRQb2ludEFycmF5ICYpOworICAg
IHZvaWQgZHJhd0NvbnZleFBvbHlnb24oY29uc3QgSW50UG9pbnRBcnJheSYpOwogCi0gICAgdm9p
ZCBmaWxsUmVjdChpbnQsIGludCwgaW50LCBpbnQsIGNvbnN0IFdlYkNvcmU6OkJydXNoICYpOwot
ICAgIHZvaWQgZmlsbFJlY3QoY29uc3QgSW50UmVjdCAmLCBjb25zdCBXZWJDb3JlOjpCcnVzaCAm
KTsKKyAgICB2b2lkIGZpbGxSZWN0KGludCwgaW50LCBpbnQsIGludCwgY29uc3QgQnJ1c2gmKTsK
KyAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IEludFJlY3QmLCBjb25zdCBCcnVzaCYpOwogCi0gICAg
dm9pZCBkcmF3SW1hZ2VBdFBvaW50KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UG9pbnQmLCBJbWFn
ZTo6Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBJbWFnZTo6Q29tcG9zaXRl
U291cmNlT3Zlcik7Ci0gICAgdm9pZCBkcmF3SW1hZ2VJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25z
dCBJbnRSZWN0JiwgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0g
SW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHZvaWQgZHJhd0ltYWdlQXRQb2ludChj
b25zdCBJbWFnZSYsIGNvbnN0IEludFBvaW50JiwgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yID0g
SW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHZvaWQgZHJhd0ltYWdlSW5SZWN0KGNv
bnN0IEltYWdlJiwgY29uc3QgSW50UmVjdCYsIEltYWdlOjpDb21wb3NpdGVPcGVyYXRvciA9IElt
YWdlOjpDb21wb3NpdGVTb3VyY2VPdmVyKTsKIAotICAgIHZvaWQgZHJhd0ltYWdlKGNvbnN0IElt
YWdlICYsIGludCB4LCBpbnQgeSwgCi0gICAgICAgICAgICAgICAgICAgaW50IHN4PTAsIGludCBz
eT0wLCBpbnQgc3c9LTEsIGludCBzaD0tMSwgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yIGNvbXBv
c2l0ZU9wZXJhdG9yID0gSW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIsIAotICAgICAgICAgICAg
ICAgICAgIHZvaWQqIG5hdGl2ZURhdGEgPSAwKTsKKyAgICB2b2lkIGRyYXdJbWFnZShjb25zdCBJ
bWFnZSYsIGludCB4LCBpbnQgeSwgCisgICAgICAgIGludCBzeCA9IDAsIGludCBzeSA9IDAsIGlu
dCBzdyA9IC0xLCBpbnQgc2ggPSAtMSwKKyAgICAgICAgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9y
ID0gSW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIsIAorICAgICAgICB2b2lkKiBuYXRpdmVEYXRh
ID0gMCk7CiAgICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW1hZ2UmLCBpbnQgeCwgaW50IHksIGlu
dCB3LCBpbnQgaCwKLSAgICAgICAgICAgICAgICAgICBpbnQgc3g9MCwgaW50IHN5PTAsIGludCBz
dz0tMSwgaW50IHNoPS0xLCBJbWFnZTo6Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0
b3IgPSBJbWFnZTo6Q29tcG9zaXRlU291cmNlT3ZlciwKLSAgICAgICAgICAgICAgICAgICB2b2lk
KiBuYXRpdmVEYXRhID0gMCk7CisgICAgICAgIGludCBzeCA9IDAsIGludCBzeSA9IDAsIGludCBz
dyA9IC0xLCBpbnQgc2ggPSAtMSwKKyAgICAgICAgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yID0g
SW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIsIAorICAgICAgICB2b2lkKiBuYXRpdmVEYXRhID0g
MCk7CiAgICAgdm9pZCBkcmF3RmxvYXRJbWFnZShjb25zdCBJbWFnZSYsIGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHcsIGZsb2F0IGgsCi0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzeD0w
LCBmbG9hdCBzeT0wLCBmbG9hdCBzdz0tMSwgZmxvYXQgc2g9LTEsIEltYWdlOjpDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IEltYWdlOjpDb21wb3NpdGVTb3VyY2VPdmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogbmF0aXZlRGF0YSA9IDApOwotICAgIHZvaWQg
ZHJhd1RpbGVkSW1hZ2UoY29uc3QgSW1hZ2UmLCBpbnQsIGludCwgaW50LCBpbnQsIGludCBzeD0w
LCBpbnQgc3k9MCwgdm9pZCogbmF0aXZlRGF0YSA9IDApOworICAgICAgICBmbG9hdCBzeCA9IDAs
IGZsb2F0IHN5ID0gMCwgZmxvYXQgc3cgPSAtMSwgZmxvYXQgc2ggPSAtMSwKKyAgICAgICAgSW1h
Z2U6OkNvbXBvc2l0ZU9wZXJhdG9yID0gSW1hZ2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIsIAorICAg
ICAgICB2b2lkKiBuYXRpdmVEYXRhID0gMCk7CisgICAgdm9pZCBkcmF3VGlsZWRJbWFnZShjb25z
dCBJbWFnZSYsIGludCwgaW50LCBpbnQsIGludCwgaW50IHN4ID0gMCwgaW50IHN5ID0gMCwgdm9p
ZCogbmF0aXZlRGF0YSA9IDApOwogICAgIHZvaWQgZHJhd1NjYWxlZEFuZFRpbGVkSW1hZ2UoY29u
c3QgSW1hZ2UgJiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGlsZVJ1bGUgaFJ1bGUgPSBTVFJFVENILCBU
aWxlUnVsZSB2UnVsZSA9IFNUUkVUQ0gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2b2lkKiBuYXRpdmVEYXRhID0gMCk7CisgICAgICAgIFRpbGVSdWxlIGhSdWxlID0gU1RSRVRD
SCwgVGlsZVJ1bGUgdlJ1bGUgPSBTVFJFVENILAorICAgICAgICB2b2lkKiBuYXRpdmVEYXRhID0g
MCk7CiAKLSAgICB2b2lkIGFkZENsaXAoY29uc3QgSW50UmVjdCAmKTsKLSAgICB2b2lkIGFkZFJv
dW5kZWRSZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0
LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJbnRTaXplJiBib3R0b21SaWdodCk7Cisg
ICAgdm9pZCBhZGRDbGlwKGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIGFkZFJvdW5kZWRSZWN0
Q2xpcChjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6
ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJv
dHRvbVJpZ2h0KTsKIAogICAgIFJhc3Rlck9wIHJhc3Rlck9wKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRSYXN0ZXJPcChSYXN0ZXJPcCk7CiAKLSAgICB2b2lkIGRyYXdUZXh0KGludCB4LCBpbnQgeSwg
aW50IHRhYldpZHRoLCBpbnQgeHBvcywgaW50LCBpbnQsIGludCBhbGlnbm1lbnRGbGFncywgY29u
c3QgUVN0cmluZyAmKTsKKyAgICB2b2lkIGRyYXdUZXh0KGludCB4LCBpbnQgeSwgaW50IHRhYldp
ZHRoLCBpbnQgeHBvcywgaW50LCBpbnQsIGludCBhbGlnbm1lbnRGbGFncywgY29uc3QgUVN0cmlu
ZyYpOwogICAgIHZvaWQgZHJhd0hpZ2hsaWdodEZvclRleHQoaW50IHgsIGludCB5LCBpbnQgaCwg
aW50IHRhYldpZHRoLCBpbnQgeHBvcywKLSAgICAgICAgICAgICAgICAgIGNvbnN0IFFDaGFyICos
IGludCBsZW5ndGgsIGludCBmcm9tLCBpbnQgdG8sIGludCB0b0FkZCwKLSAgICAgICAgICAgICAg
ICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIFFQYWludGVyOjpUZXh0RGlyZWN0aW9u
IGQsIGJvb2wgdmlzdWFsbHlPcmRlcmVkLAotICAgICAgICAgICAgICAgICAgaW50IGxldHRlclNw
YWNpbmcsIGludCB3b3JkU3BhY2luZywgYm9vbCBzbWFsbENhcHMpOwotICAgIHZvaWQgZHJhd1Rl
eHQoaW50IHgsIGludCB5LCBpbnQgdGFiV2lkdGgsIGludCB4cG9zLCBjb25zdCBRQ2hhciAqLCBp
bnQgbGVuZ3RoLCBpbnQgZnJvbSwgaW50IHRvLCBpbnQgdG9BZGQsCi0gICAgICAgICAgICAgICAg
ICBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yLCBRUGFpbnRlcjo6VGV4dERpcmVjdGlvbiBk
LCBib29sIHZpc3VhbGx5T3JkZXJlZCwKLSAgICAgICAgICAgICAgICAgIGludCBsZXR0ZXJTcGFj
aW5nLCBpbnQgd29yZFNwYWNpbmcsIGJvb2wgc21hbGxDYXBzKTsKKyAgICAgICAgY29uc3QgUUNo
YXIqLCBpbnQgbGVuZ3RoLCBpbnQgZnJvbSwgaW50IHRvLCBpbnQgdG9BZGQsCisgICAgICAgIGNv
bnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIFRleHREaXJlY3Rpb24sIGJvb2wgdmlzdWFsbHlP
cmRlcmVkLAorICAgICAgICBpbnQgbGV0dGVyU3BhY2luZywgaW50IHdvcmRTcGFjaW5nLCBib29s
IHNtYWxsQ2Fwcyk7CisgICAgdm9pZCBkcmF3VGV4dChpbnQgeCwgaW50IHksIGludCB0YWJXaWR0
aCwgaW50IHhwb3MsCisgICAgICAgIGNvbnN0IFFDaGFyKiwgaW50IGxlbmd0aCwgaW50IGZyb20s
IGludCB0bywgaW50IHRvQWRkLAorICAgICAgICBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9y
LCBUZXh0RGlyZWN0aW9uLCBib29sIHZpc3VhbGx5T3JkZXJlZCwKKyAgICAgICAgaW50IGxldHRl
clNwYWNpbmcsIGludCB3b3JkU3BhY2luZywgYm9vbCBzbWFsbENhcHMpOwogICAgIHZvaWQgZHJh
d0xpbmVGb3JUZXh0KGludCB4LCBpbnQgeSwgaW50IHlPZmZzZXQsIGludCB3aWR0aCk7CiAgICAg
dm9pZCBkcmF3TGluZUZvck1pc3NwZWxsaW5nKGludCB4LCBpbnQgeSwgaW50IHdpZHRoKTsKICAg
ICBpbnQgbWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKCkgY29uc3Q7CkBAIC0xMzcsNDIgKzEzOCw0
MCBAQAogICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKICAg
ICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAKLSAgICB2b2lkIHNldFNoYWRvdyhpbnQg
eCwgaW50IHksIGludCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IpOworICAgIHZvaWQgc2V0U2hh
ZG93KGludCB4LCBpbnQgeSwgaW50IGJsdXIsIGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBjbGVh
clNoYWRvdygpOwogCiAgICAgdm9pZCBpbml0Rm9jdXNSaW5nKGludCB3aWR0aCwgaW50IG9mZnNl
dCk7Ci0gICAgdm9pZCBpbml0Rm9jdXNSaW5nKGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3Qg
Q29sb3ImIGNvbG9yKTsKKyAgICB2b2lkIGluaXRGb2N1c1JpbmcoaW50IHdpZHRoLCBpbnQgb2Zm
c2V0LCBjb25zdCBDb2xvciYpOwogICAgIHZvaWQgYWRkRm9jdXNSaW5nUmVjdChpbnQgeCwgaW50
IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKCk7CiAg
ICAgdm9pZCBjbGVhckZvY3VzUmluZygpOwogICAgIAogI2lmIF9fQVBQTEVfXwogICAgIENHQ29u
dGV4dFJlZiBjdXJyZW50Q29udGV4dCgpOworCisgICAgc3RhdGljIGludCBnZXRDb21wb3NpdGVP
cGVyYXRpb24oQ0dDb250ZXh0UmVmKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDb21wb3NpdGVPcGVy
YXRpb24oQ0dDb250ZXh0UmVmLCBjb25zdCBRU3RyaW5nJiBvcGVyYXRpb24pOworICAgIHN0YXRp
YyB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbihDR0NvbnRleHRSZWYsIGludCBvcGVyYXRpb24p
OwogI2VuZGlmCiAKICNpZiBTVkdfU1VQUE9SVAotICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0
ICpjcmVhdGVSZW5kZXJpbmdEZXZpY2VDb250ZXh0KCk7Ci0gICAgc3RhdGljIEtSZW5kZXJpbmdE
ZXZpY2UgKnJlbmRlcmluZ0RldmljZSgpOworICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0KiBj
cmVhdGVSZW5kZXJpbmdEZXZpY2VDb250ZXh0KCk7CisgICAgc3RhdGljIEtSZW5kZXJpbmdEZXZp
Y2UqIHJlbmRlcmluZ0RldmljZSgpOwogI2VuZGlmCi0gICAgCi0jaWYgX19BUFBMRV9fCi0gICAg
c3RhdGljIGludCBnZXRDb21wb3NpdGVPcGVyYXRpb24oQ0dDb250ZXh0UmVmIGNvbnRleHQpOwot
ICAgIHN0YXRpYyB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbiAoQ0dDb250ZXh0UmVmIGNvbnRl
eHQsIGNvbnN0IFFTdHJpbmcgJm9wZXJhdGlvbik7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q29tcG9z
aXRlT3BlcmF0aW9uIChDR0NvbnRleHRSZWYgY29udGV4dCwgaW50IG9wZXJhdGlvbik7Ci0jZW5k
aWYKIAogICAgIGJvb2wgcHJpbnRpbmcoKSBjb25zdCB7IHJldHVybiBfaXNGb3JQcmludGluZzsg
fQogCiBwcml2YXRlOgogICAgIC8vIG5vIGNvcHlpbmcgb3IgYXNzaWdubWVudAotICAgIFFQYWlu
dGVyKGNvbnN0IFFQYWludGVyICYpOwotICAgIFFQYWludGVyICZvcGVyYXRvcj0oY29uc3QgUVBh
aW50ZXIgJik7CisgICAgUVBhaW50ZXIoY29uc3QgUVBhaW50ZXImKTsKKyAgICBRUGFpbnRlciYg
b3BlcmF0b3I9KGNvbnN0IFFQYWludGVyJik7CiAKICAgICB2b2lkIF9zZXRDb2xvckZyb21CcnVz
aCgpOwogICAgIHZvaWQgX3NldENvbG9yRnJvbVBlbigpOwogCi0gICAgdm9pZCBfZmlsbFJlY3Qo
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgdywgZmxvYXQgaCwgY29uc3QgQ29sb3ImIGNvbG9yKTsK
LSAgICAKKyAgICB2b2lkIF9maWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3LCBmbG9h
dCBoLCBjb25zdCBDb2xvciYpOworCiAgICAgdm9pZCBfdXBkYXRlUmVuZGVyZXIoKTsKIAogICAg
IFFQYWludGVyUHJpdmF0ZSAqZGF0YTsKSW5kZXg6IGt3cS9LV1FXTWF0cml4LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrd3EvS1dRV01hdHJpeC5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysga3dxL0tXUVdN
YXRyaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiS1dRV01hdHJpeC5oIgotCi0j
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0KLXN0YXRpYyBjb25zdCBkb3VibGUgZGVnMnJhZCA9IDAu
MDE3NDUzMjkyNTE5OTQzMjk1NzY5OyAvLyBwaS8xODAKLQotUU1hdHJpeDo6UU1hdHJpeCgpCi17
Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OwotfQotCi1RTWF0
cml4OjpRTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3Vi
bGUgdHgsIGRvdWJsZSB0eSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3Jt
TWFrZShhLGIsYyxkLHR4LHR5KTsKLX0KLQotUU1hdHJpeDo6UU1hdHJpeChDR0FmZmluZVRyYW5z
Zm9ybSB0KSB7Ci0gICAgbV90cmFuc2Zvcm0gPSB0OwotfQotCi12b2lkIFFNYXRyaXg6OnNldE1h
dHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBk
b3VibGUgdHkpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoYSxi
LGMsZCx0eCx0eSk7Ci19Ci0KLXZvaWQgUU1hdHJpeDo6bWFwKGRvdWJsZSB4LCBkb3VibGUgeSwg
ZG91YmxlICp4MiwgZG91YmxlICp5MikgY29uc3QKLXsKLSAgICBDR1BvaW50IHJlc3VsdCA9IENH
UG9pbnRBcHBseUFmZmluZVRyYW5zZm9ybShDR1BvaW50TWFrZSh4LHkpLG1fdHJhbnNmb3JtKTsK
LSAgICAqeDIgPSByZXN1bHQueDsKLSAgICAqeTIgPSByZXN1bHQueTsKLX0KLQotSW50UmVjdCBR
TWF0cml4OjptYXBSZWN0KGNvbnN0IEludFJlY3QgJnJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IEludFJlY3QoQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dSZWN0KHJlY3QpLCBtX3RyYW5z
Zm9ybSkpOwotfQotCi1GbG9hdFJlY3QgUU1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3Qg
JnJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChDR1JlY3RBcHBseUFmZmluZVRy
YW5zZm9ybShDR1JlY3QocmVjdCksIG1fdHJhbnNmb3JtKSk7Ci19Ci0KLWJvb2wgUU1hdHJpeDo6
aXNJZGVudGl0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENHQWZmaW5lVHJhbnNmb3JtSXNJZGVu
dGl0eShtX3RyYW5zZm9ybSk7Ci19Ci0KLXZvaWQgUU1hdHJpeDo6cmVzZXQoKQotewotICAgIG1f
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eTsKLX0KLQotUU1hdHJpeCAmUU1h
dHJpeDo6c2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybVNjYWxlKG1fdHJhbnNmb3JtLCBzeCwgc3kpOwotICAgIHJldHVybiAq
dGhpczsKLX0KLQotUU1hdHJpeCAmUU1hdHJpeDo6cm90YXRlKGRvdWJsZSBkKQotewotICAgIG1f
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Sb3RhdGUobV90cmFuc2Zvcm0sIGQgKiBkZWcy
cmFkKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6OnRyYW5zbGF0
ZShkb3VibGUgdHgsIGRvdWJsZSB0eSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJh
bnNmb3JtVHJhbnNsYXRlKG1fdHJhbnNmb3JtLCB0eCwgdHkpOwotICAgIHJldHVybiAqdGhpczsK
LX0KLQotUU1hdHJpeCAmUU1hdHJpeDo6c2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpCi17Ci0g
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gc2hlYXIgPSBDR0FmZmluZVRyYW5zZm9ybU1ha2UoMSwgc3ks
IHN4LCAxLCAwLCAwKTsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0
KHNoZWFyLG1fdHJhbnNmb3JtKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLWRvdWJsZSBRTWF0
cml4OjpkZXQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9ybS5hICogbV90cmFuc2Zv
cm0uZCAtIG1fdHJhbnNmb3JtLmIgKiBtX3RyYW5zZm9ybS5jOwotfQotCi1ib29sIFFNYXRyaXg6
OmlzSW52ZXJ0aWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRldCgpICE9IDAuMDsKLX0KLQot
UU1hdHJpeCBRTWF0cml4OjppbnZlcnQoKSBjb25zdAotewotICAgIGlmIChpc0ludmVydGlibGUo
KSkKLSAgICAgICAgcmV0dXJuIFFNYXRyaXgoQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQobV90cmFu
c2Zvcm0pKTsKLSAgICByZXR1cm4gUU1hdHJpeCgpOwotfQotCi1RTWF0cml4OjpvcGVyYXRvciBD
R0FmZmluZVRyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtOwotfQot
Ci1ib29sIFFNYXRyaXg6Om9wZXJhdG9yPT0gKGNvbnN0IFFNYXRyaXggJm0yKSBjb25zdAotewot
ICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9ybUVxdWFsVG9UcmFuc2Zvcm0obV90cmFuc2Zvcm0s
IENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6Om9wZXJhdG9y
Kj0gKGNvbnN0IFFNYXRyaXggJm0yKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFu
c2Zvcm1Db25jYXQobV90cmFuc2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7Ci0gICAgcmV0
dXJuICp0aGlzOwotfQotCi1RTWF0cml4IFFNYXRyaXg6Om9wZXJhdG9yKiAoY29uc3QgUU1hdHJp
eCAmbTIpCi17Ci0gICAgcmV0dXJuIENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG1fdHJhbnNmb3Jt
LCBDR0FmZmluZVRyYW5zZm9ybShtMikpOwotfQpJbmRleDogbG9hZGVyL0NhY2hlZEltYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBsb2FkZXIvQ2FjaGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAxMjQ2MykK
KysrIGxvYWRlci9DYWNoZWRJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDEyICs1Mywx
MSBAQAogICAgIGNsZWFyKCk7CiB9CiAKLXZvaWQgQ2FjaGVkSW1hZ2U6OnJlZihDYWNoZWRPYmpl
Y3RDbGllbnQgKmMpCit2b2lkIENhY2hlZEltYWdlOjpyZWYoQ2FjaGVkT2JqZWN0Q2xpZW50KiBj
KQogewogICAgIENhY2hlZE9iamVjdDo6cmVmKGMpOwogCi0gICAgLy8gZm9yIG1vdXNlb3ZlcnMs
IGR5bmFtaWMgY2hhbmdlcwotICAgIGlmICghZGVjb2RlZFJlY3QoKS5pc051bGwoKSkKKyAgICBp
ZiAoIWRlY29kZWRSZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICBjLT5pbWFnZUNoYW5nZWQodGhp
cywgZGVjb2RlZFJlY3QoKSk7CiAKICAgICBpZiAoIW1fbG9hZGluZykKSW5kZXg6IHBhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDEy
NDYzKQorKysgcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjQsMTAgKzgy
NCwxMCBAQAogICAgIGQtPnNjcm9sbGluZ1NlbGYgPSB0cnVlOyAvLyBzbyBzY3JvbGwgZXZlbnRz
IGdldCBpZ25vcmVkCiAKICAgICBpbnQgeCwgeSwgeGUsIHllOwotICAgIHggPSBib3VuZHMubGVm
dCgpOwotICAgIHkgPSBib3VuZHMudG9wKCk7Ci0gICAgeGUgPSBib3VuZHMucmlnaHQoKTsKLSAg
ICB5ZSA9IGJvdW5kcy5ib3R0b20oKTsKKyAgICB4ID0gYm91bmRzLngoKTsKKyAgICB5ID0gYm91
bmRzLnkoKTsKKyAgICB4ZSA9IGJvdW5kcy5yaWdodCgpIC0gMTsKKyAgICB5ZSA9IGJvdW5kcy5i
b3R0b20oKSAtIDE7CiAgICAgCiAgICAgaW50IGRlbHRheDsKICAgICBpbnQgZGVsdGF5OwpAQCAt
ODM1LDM4ICs4MzUsMzYgQEAKICAgICBpbnQgY3VySGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwog
ICAgIGludCBjdXJXaWR0aCA9IHZpc2libGVXaWR0aCgpOwogCi0gICAgaWYgKHllLXk+Y3VySGVp
Z2h0LWQtPmJvcmRlclkpCi0JeWUgID0geSArIGN1ckhlaWdodCAtIGQtPmJvcmRlclk7CisgICAg
aWYgKHllIC0geT5jdXJIZWlnaHQtZC0+Ym9yZGVyWSkKKwl5ZSA9IHkgKyBjdXJIZWlnaHQgLSBk
LT5ib3JkZXJZOwogCi0gICAgaWYgKHhlLXg+Y3VyV2lkdGgtZC0+Ym9yZGVyWCkKKyAgICBpZiAo
eGUgLSB4PmN1cldpZHRoLWQtPmJvcmRlclgpCiAJeGUgPSB4ICsgY3VyV2lkdGggLSBkLT5ib3Jk
ZXJYOwogCiAgICAgLy8gaXMgeHBvcyBvZiB0YXJnZXQgbGVmdCBvZiB0aGUgdmlldydzIGJvcmRl
cj8KICAgICBpZiAoeCA8IGNvbnRlbnRzWCgpICsgZC0+Ym9yZGVyWCApCi0gICAgICAgICAgICBk
ZWx0YXggPSB4IC0gY29udGVudHNYKCkgLSBkLT5ib3JkZXJYOworICAgICAgICBkZWx0YXggPSB4
IC0gY29udGVudHNYKCkgLSBkLT5ib3JkZXJYOwogICAgIC8vIGlzIHhwb3Mgb2YgdGFyZ2V0IHJp
Z2h0IG9mIHRoZSB2aWV3J3MgcmlnaHQgYm9yZGVyPwogICAgIGVsc2UgaWYgKHhlICsgZC0+Ym9y
ZGVyWCA+IGNvbnRlbnRzWCgpICsgY3VyV2lkdGgpCi0gICAgICAgICAgICBkZWx0YXggPSB4ZSAr
IGQtPmJvcmRlclggLSAoIGNvbnRlbnRzWCgpICsgY3VyV2lkdGggKTsKKyAgICAgICAgZGVsdGF4
ID0geGUgKyBkLT5ib3JkZXJYIC0gKCBjb250ZW50c1goKSArIGN1cldpZHRoICk7CiAgICAgZWxz
ZQogICAgICAgICBkZWx0YXggPSAwOwogCiAgICAgLy8gaXMgeXBvcyBvZiB0YXJnZXQgYWJvdmUg
dXBwZXIgYm9yZGVyPwogICAgIGlmICh5IDwgY29udGVudHNZKCkgKyBkLT5ib3JkZXJZKQotICAg
ICAgICAgICAgZGVsdGF5ID0geSAtIGNvbnRlbnRzWSgpIC0gZC0+Ym9yZGVyWTsKKyAgICAgICAg
ZGVsdGF5ID0geSAtIGNvbnRlbnRzWSgpIC0gZC0+Ym9yZGVyWTsKICAgICAvLyBpcyB5cG9zIG9m
IHRhcmdldCBiZWxvdyBsb3dlciBib3JkZXI/CiAgICAgZWxzZSBpZiAoeWUgKyBkLT5ib3JkZXJZ
ID4gY29udGVudHNZKCkgKyBjdXJIZWlnaHQpCi0gICAgICAgICAgICBkZWx0YXkgPSB5ZSArIGQt
PmJvcmRlclkgLSAoIGNvbnRlbnRzWSgpICsgY3VySGVpZ2h0ICk7CisgICAgICAgIGRlbHRheSA9
IHllICsgZC0+Ym9yZGVyWSAtICggY29udGVudHNZKCkgKyBjdXJIZWlnaHQgKTsKICAgICBlbHNl
CiAgICAgICAgIGRlbHRheSA9IDA7CiAKLSAgICBpbnQgbWF4eCA9IGN1cldpZHRoLWQtPmJvcmRl
clg7Ci0gICAgaW50IG1heHkgPSBjdXJIZWlnaHQtZC0+Ym9yZGVyWTsKKyAgICBpbnQgbWF4eCA9
IGN1cldpZHRoIC0gZC0+Ym9yZGVyWDsKKyAgICBpbnQgbWF4eSA9IGN1ckhlaWdodCAtIGQtPmJv
cmRlclk7CiAKLSAgICBpbnQgc2Nyb2xsWCxzY3JvbGxZOworICAgIGludCBzY3JvbGxYID0gZGVs
dGF4ID4gMCA/IChkZWx0YXggPiBtYXh4ID8gbWF4eCA6IGRlbHRheCkgOiBkZWx0YXggPT0gMCA/
IDAgOiAoZGVsdGF4ID4gLW1heHggPyBkZWx0YXggOiAtbWF4eCk7CisgICAgaW50IHNjcm9sbFkg
PSBkZWx0YXkgPiAwID8gKGRlbHRheSA+IG1heHkgPyBtYXh5IDogZGVsdGF5KSA6IGRlbHRheSA9
PSAwID8gMCA6IChkZWx0YXkgPiAtbWF4eSA/IGRlbHRheSA6IC1tYXh5KTsKIAotICAgIHNjcm9s
bFggPSBkZWx0YXggPiAwID8gKGRlbHRheCA+IG1heHggPyBtYXh4IDogZGVsdGF4KSA6IGRlbHRh
eCA9PSAwID8gMCA6IChkZWx0YXg+LW1heHggPyBkZWx0YXggOiAtbWF4eCk7Ci0gICAgc2Nyb2xs
WSA9IGRlbHRheSA+IDAgPyAoZGVsdGF5ID4gbWF4eSA/IG1heHkgOiBkZWx0YXkpIDogZGVsdGF5
ID09IDAgPyAwIDogKGRlbHRheT4tbWF4eSA/IGRlbHRheSA6IC1tYXh5KTsKLQogICAgIGlmIChj
b250ZW50c1goKSArIHNjcm9sbFggPCAwKQogCXNjcm9sbFggPSAtY29udGVudHNYKCk7CiAgICAg
ZWxzZSBpZiAoY29udGVudHNXaWR0aCgpIC0gdmlzaWJsZVdpZHRoKCkgLSBjb250ZW50c1goKSA8
IHNjcm9sbFgpCkBAIC04ODAsMTcgKzg3OCwxNCBAQAogICAgIHNjcm9sbEJ5KHNjcm9sbFgsIHNj
cm9sbFkpOwogCiAgICAgLy8gZ2VuZXJhdGUgYWJzKHNjcm9sbC4pCi0gICAgaWYgKHNjcm9sbFg8
MCkKLSAgICAgICAgc2Nyb2xsWD0tc2Nyb2xsWDsKLSAgICBpZiAoc2Nyb2xsWTwwKQotICAgICAg
ICBzY3JvbGxZPS1zY3JvbGxZOworICAgIGlmIChzY3JvbGxYIDwgMCkKKyAgICAgICAgc2Nyb2xs
WCA9IC1zY3JvbGxYOworICAgIGlmIChzY3JvbGxZIDwgMCkKKyAgICAgICAgc2Nyb2xsWSA9IC1z
Y3JvbGxZOwogCiAgICAgZC0+c2Nyb2xsaW5nU2VsZiA9IGZhbHNlOwogCi0gICAgaWYgKCAoc2Ny
b2xsWCE9bWF4eCkgJiYgKHNjcm9sbFkhPW1heHkpICkKLQlyZXR1cm4gdHJ1ZTsKLSAgICBlbHNl
IHJldHVybiBmYWxzZTsKLQorICAgIHJldHVybiBzY3JvbGxYICE9IG1heHggJiYgc2Nyb2xsWSAh
PSBtYXh5OwogfQogCiB2b2lkIEZyYW1lVmlldzo6Zm9jdXNOZXh0UHJldk5vZGUoYm9vbCBuZXh0
KQpAQCAtOTE2LDEzICs5MTEsMTAgQEAKICAgICAgICAgYm9vbCB2aXNpYmxlID0gZmFsc2U7CiAg
ICAgICAgIE5vZGVJbXBsICp0b0ZvY3VzID0gbmV3Rm9jdXNOb2RlOwogICAgICAgICB3aGlsZSAo
IXZpc2libGUgJiYgdG9Gb2N1cykgewotICAgICAgICAgICAgSW50UmVjdCBmb2N1c05vZGVSZWN0
ID0gdG9Gb2N1cy0+Z2V0UmVjdCgpOwotICAgICAgICAgICAgaWYgKChmb2N1c05vZGVSZWN0Lmxl
ZnQoKSA+IGNvbnRlbnRzWCgpKSAmJiAoZm9jdXNOb2RlUmVjdC5yaWdodCgpIDwgY29udGVudHNY
KCkgKyB2aXNpYmxlV2lkdGgoKSkgJiYKLSAgICAgICAgICAgICAgICAoZm9jdXNOb2RlUmVjdC50
b3AoKSA+IGNvbnRlbnRzWSgpKSAmJiAoZm9jdXNOb2RlUmVjdC5ib3R0b20oKSA8IGNvbnRlbnRz
WSgpICsgdmlzaWJsZUhlaWdodCgpKSkgeworICAgICAgICAgICAgaWYgKHRvRm9jdXMtPmdldFJl
Y3QoKS5pbnRlcnNlY3RzKEludFJlY3QoY29udGVudHNYKCksIGNvbnRlbnRzWSgpLCB2aXNpYmxl
V2lkdGgoKSwgdmlzaWJsZUhlaWdodCgpKSkpIHsKICAgICAgICAgICAgICAgICAvLyB0b0ZvY3Vz
IGlzIHZpc2libGUgaW4gdGhlIGNvbnRlbnRzIGFyZWEKICAgICAgICAgICAgICAgICB2aXNpYmxl
ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyB0b0ZvY3VzIGlzIF9ub3RfIHZpc2libGUgaW4g
dGhlIGNvbnRlbnRzIGFyZWEsIHBpY2sgdGhlIG5leHQgbm9kZQogICAgICAgICAgICAgICAgIGlm
IChuZXh0KQogICAgICAgICAgICAgICAgICAgICB0b0ZvY3VzID0gZG9jLT5uZXh0Rm9jdXNOb2Rl
KHRvRm9jdXMpOwpJbmRleDogcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFt
ZS5jcHAJKHJldmlzaW9uIDEyNDYzKQorKysgcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyNTMsNyArMzI1Myw3IEBACiAgICAgICAgIGZpbGxXaXRoUmVkID0gdHJ1ZTsKICAgICAK
ICAgICBpZiAoZmlsbFdpdGhSZWQpCi0gICAgICAgIHAtPmZpbGxSZWN0KHJlY3QueCgpLCByZWN0
LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCBDb2xvcigweEZGLCAwLCAwKSk7Cisg
ICAgICAgIHAtPmZpbGxSZWN0KHJlY3QsIENvbG9yKDB4RkYsIDAsIDApKTsKICNlbmRpZgogICAg
IAogICAgIGlmIChyZW5kZXJlcigpKSB7Cg==
</data>
<flag name="review"
          id="1461"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6086</attachid>
            <date>2006-01-29 17:12:33 -0800</date>
            <delta_ts>2009-01-16 10:44:59 -0800</delta_ts>
            <desc>Approximate -uw patch made from my tree</desc>
            <filename>approx.patch</filename>
            <type>text/plain</type>
            <size>403521</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2h0bWwvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMTI0Njcp
CisrKyBraHRtbC9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTksMTcgKzc1OSwxNSBAQAogCiBJbnRSZWN0IFNlbGVjdGlvbkNvbnRyb2xsZXI6OmNh
cmV0UmVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbmVlZHNMYXlvdXQpIHsKKyAgICBpZiAobV9u
ZWVkc0xheW91dCkKICAgICAgICAgY29uc3RfY2FzdDxTZWxlY3Rpb25Db250cm9sbGVyICo+KHRo
aXMpLT5sYXlvdXQoKTsKLSAgICB9CiAgICAgCiAgICAgSW50UmVjdCBjYXJldCA9IG1fY2FyZXRS
ZWN0OwogICAgIAogICAgIGlmIChtX3NlbC5zdGFydCgpLm5vZGUoKSAmJiBtX3NlbC5zdGFydCgp
Lm5vZGUoKS0+cmVuZGVyZXIoKSkgewogICAgICAgICBpbnQgeCwgeTsKICAgICAgICAgbV9zZWwu
c3RhcnQoKS5ub2RlKCktPnJlbmRlcmVyKCktPmFic29sdXRlUG9zaXRpb24oeCwgeSk7Ci0gICAg
ICAgIEludFBvaW50IGRpZmYgPSBJbnRQb2ludCh4LCB5KSAtIG1fY2FyZXRQb3NpdGlvbk9uTGF5
b3V0OwotICAgICAgICBjYXJldC5tb3ZlVG9wTGVmdChkaWZmKTsKKyAgICAgICAgY2FyZXQubW92
ZShJbnRQb2ludCh4LCB5KSAtIG1fY2FyZXRQb3NpdGlvbk9uTGF5b3V0KTsKICAgICB9CiAKICAg
ICByZXR1cm4gY2FyZXQ7CkBAIC03ODEsNyArNzc5LDcgQEAKICAgICBJbnRSZWN0IHIgPSBjYXJl
dFJlY3QoKTsKICAgICBpZiAoci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7
Ci0gICAgcmV0dXJuIEludFJlY3Qoci5sZWZ0KCkgLSAxLCByLnRvcCgpIC0gMSwgci53aWR0aCgp
ICsgMiwgci5oZWlnaHQoKSArIDIpOworICAgIHJldHVybiBJbnRSZWN0KHIueCgpIC0gMSwgci55
KCkgLSAxLCByLndpZHRoKCkgKyAyLCByLmhlaWdodCgpICsgMik7CiB9CiAKIHZvaWQgU2VsZWN0
aW9uQ29udHJvbGxlcjo6bmVlZHNDYXJldFJlcGFpbnQoKQpAQCAtODI1LDEwICs4MjMsOSBAQAog
ICAgIGlmIChtX25lZWRzTGF5b3V0KQogICAgICAgICBsYXlvdXQoKTsKICAgICAgICAgCi0gICAg
SW50UmVjdCBjYXJldCA9IGNhcmV0UmVjdCgpOwotCi0gICAgaWYgKGNhcmV0LmlzVmFsaWQoKSkK
LSAgICAgICAgcC0+ZmlsbFJlY3QoY2FyZXQgJiByZWN0LCBCcnVzaCgpKTsKKyAgICBJbnRSZWN0
IGNhcmV0ID0gaW50ZXJzZWN0aW9uKGNhcmV0UmVjdCgpLCByZWN0KTsKKyAgICBpZiAoIWNhcmV0
LmlzRW1wdHkoKSkKKyAgICAgICAgcC0+ZmlsbFJlY3QoY2FyZXQsIEJydXNoKCkpOwogfQogCiB2
b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmRlYnVnUmVuZGVyZXIoUmVuZGVyT2JqZWN0ICpyLCBi
b29sIHNlbGVjdGVkKSBjb25zdApJbmRleDoga2h0bWwvaHRtbC9odG1sX2lubGluZWltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtodG1sL2h0bWwvaHRtbF9pbmxpbmVpbXBsLmNwcAkocmV2aXNpb24g
MTI0NjcpCisrKyBraHRtbC9odG1sL2h0bWxfaW5saW5laW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc0LDE5ICs3NCwxNyBAQAogICAgIC8vIEJlZm9yZSBjYWxsaW5nIGFic29sdXRlUmVjdHMs
IGNoZWNrIGZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgdGhlIHJlbmRlcmVyCiAgICAgLy8gb3Ig
b25lIG9mIHRoZSBjb250aW51YXRpb25zIGlzIG5vbi1lbXB0eSwgc2luY2UgdGhpcyBpcyBhIGZh
c3RlciBjaGVjayBhbmQKICAgICAvLyBhbG1vc3QgYWx3YXlzIHJldHVybnMgdHJ1ZS4KLSAgICBm
b3IgKFJlbmRlck9iamVjdCAqciA9IHJlbmRlcmVyKCk7IHI7IHIgPSByLT5jb250aW51YXRpb24o
KSkgeworICAgIGZvciAoUmVuZGVyT2JqZWN0ICpyID0gcmVuZGVyZXIoKTsgcjsgciA9IHItPmNv
bnRpbnVhdGlvbigpKQogICAgICAgICBpZiAoci0+d2lkdGgoKSA+IDAgJiYgci0+aGVpZ2h0KCkg
PiAwKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogCiAgICAgUVZhbHVlTGlzdDxJ
bnRSZWN0PiByZWN0czsKICAgICBpbnQgeCA9IDAsIHkgPSAwOwogICAgIHJlbmRlcmVyKCktPmFi
c29sdXRlUG9zaXRpb24oeCwgeSk7CiAgICAgcmVuZGVyZXIoKS0+YWJzb2x1dGVSZWN0cyhyZWN0
cywgeCwgeSk7Ci0gICAgZm9yIChRVmFsdWVMaXN0PEludFJlY3Q+OjpDb25zdEl0ZXJhdG9yIGl0
ID0gcmVjdHMuYmVnaW4oKTsgaXQgIT0gcmVjdHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgaWYg
KCgqaXQpLmlzVmFsaWQoKSkKKyAgICBmb3IgKFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRl
cmF0b3IgaXQgPSByZWN0cy5iZWdpbigpOyBpdCAhPSByZWN0cy5lbmQoKTsgKytpdCkKKyAgICAg
ICAgaWYgKCEoKml0KS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBraHRtbC9odG1sL2h0bWxfb2JqZWN0aW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuY3BwCShyZXZp
c2lvbiAxMjQ2NykKKysrIGtodG1sL2h0bWwvaHRtbF9vYmplY3RpbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImRvbV9zdHJpbmcuaCIKICNpbmNsdWRl
ICJkb21fdGV4dGltcGwuaCIKICNpbmNsdWRlICJodG1sX2RvY3VtZW50aW1wbC5oIgorI2luY2x1
ZGUgImh0bWxfaW1hZ2VpbXBsLmgiCiAjaW5jbHVkZSAicmVuZGVyX2FwcGxldC5oIgogI2luY2x1
ZGUgInJlbmRlcl9mcmFtZXMuaCIKICNpbmNsdWRlICJyZW5kZXJfaW1hZ2UuaCIKSW5kZXg6IGto
dG1sL2h0bWwvaHRtbF9vYmplY3RpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvaHRtbC9odG1s
X29iamVjdGltcGwuaAkocmV2aXNpb24gMTI0NjcpCisrKyBraHRtbC9odG1sL2h0bWxfb2JqZWN0
aW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogICoKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMTEgKzIxLDExIEBACiAg
KiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqCiAgKi8KKwogI2lmbmRlZiBIVE1MX09C
SkVDVElNUExfSAogI2RlZmluZSBIVE1MX09CSkVDVElNUExfSAogCi0jaW5jbHVkZSAiaHRtbF9p
bWFnZWltcGwuaCIKLSNpbmNsdWRlICJ4bWwvZG9tX3N0cmluZ2ltcGwuaCIKKyNpbmNsdWRlICJI
VE1MRWxlbWVudEltcGwuaCIKIAogI2lmIF9fQVBQTEVfXwogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL3J1bnRpbWUuaD4KQEAgLTMzLDE2ICszMywxNSBAQAogbmFtZXNwYWNlIEtKUyB7IG5hbWVz
cGFjZSBCaW5kaW5ncyB7IGNsYXNzIEluc3RhbmNlOyB9IH0KICNlbmRpZgogCi1jbGFzcyBRU3Ry
aW5nTGlzdDsKLQogbmFtZXNwYWNlIERPTSB7CiAKIGNsYXNzIEhUTUxGb3JtRWxlbWVudEltcGw7
CitjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CiAKIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50SW1wbCA6
IHB1YmxpYyBIVE1MRWxlbWVudEltcGwKIHsKIHB1YmxpYzoKLSAgICBIVE1MQXBwbGV0RWxlbWVu
dEltcGwoRG9jdW1lbnRJbXBsICpkb2MpOworICAgIEhUTUxBcHBsZXRFbGVtZW50SW1wbChEb2N1
bWVudEltcGwqKTsKICAgICB+SFRNTEFwcGxldEVsZW1lbnRJbXBsKCk7CiAKICAgICB2aXJ0dWFs
IEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0
dXNSZXF1aXJlZDsgfQpAQCAtNTAsMTAgKzQ5LDEwIEBACiAgICAgdmlydHVhbCBib29sIGNoZWNr
RFREKGNvbnN0IE5vZGVJbXBsKiBuZXdDaGlsZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9F
bnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkm
IHJlc3VsdCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1h
cHBlZEF0dHJpYnV0ZUltcGwgKnRva2VuKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGtodG1sOjpSZW5kZXJTdHlsZSAqKTsKLSAgICB2aXJ0dWFsIGtodG1s
OjpSZW5kZXJPYmplY3QgKmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICosIGtodG1sOjpSZW5k
ZXJTdHlsZSAqKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHls
ZSopOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlUmVuZGVyZXIoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgCkBAIC05OCw5ICs5Nyw2IEBACiAgICAgdmly
dHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tRG9jdW1lbnQoKTsKIAotcHJvdGVjdGVkOgotICAgIGtodG1sOjpWQWxpZ24gdmFsaWdu
OwotCiBwcml2YXRlOgogICAgIERPTVN0cmluZyBvbGROYW1lQXR0cjsKICAgICBET01TdHJpbmcg
b2xkSWRBdHRyOwpAQCAtMTE1LDcgKzExMSw3IEBACiBjbGFzcyBIVE1MRW1iZWRFbGVtZW50SW1w
bCA6IHB1YmxpYyBIVE1MRWxlbWVudEltcGwKIHsKIHB1YmxpYzoKLSAgICBIVE1MRW1iZWRFbGVt
ZW50SW1wbChEb2N1bWVudEltcGwgKmRvYyk7CisgICAgSFRNTEVtYmVkRWxlbWVudEltcGwoRG9j
dW1lbnRJbXBsKik7CiAgICAgfkhUTUxFbWJlZEVsZW1lbnRJbXBsKCk7CiAKICAgICB2aXJ0dWFs
IEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0
dXNSZXF1aXJlZDsgfQpAQCAtMTIzLDE2ICsxMTksMTYgQEAKICAgICB2aXJ0dWFsIGJvb2wgY2hl
Y2tEVEQoY29uc3QgTm9kZUltcGwqIG5ld0NoaWxkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBU
b0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRy
eSYgcmVzdWx0KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwotICAgIHZpcnR1YWwga2h0bWw6OlJl
bmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKiwga2h0bWw6OlJlbmRlclN0
eWxlICopOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7
CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIAotICAgIHZpcnR1
YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGVJbXBsICphdHRyKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlSW1wbCopIGNvbnN0OwogCiAgICAg
S0pTOjpCaW5kaW5nczo6SW5zdGFuY2UgKmdldEVtYmVkSW5zdGFuY2UoKSBjb25zdDsKIApAQCAt
MTUxLDcgKzE0Nyw3IEBACiBjbGFzcyBIVE1MT2JqZWN0RWxlbWVudEltcGwgOiBwdWJsaWMgSFRN
TEVsZW1lbnRJbXBsCiB7CiBwdWJsaWM6Ci0gICAgSFRNTE9iamVjdEVsZW1lbnRJbXBsKERvY3Vt
ZW50SW1wbCAqZG9jKTsKKyAgICBIVE1MT2JqZWN0RWxlbWVudEltcGwoRG9jdW1lbnRJbXBsKik7
CiAgICAgfkhUTUxPYmplY3RFbGVtZW50SW1wbCgpOwogCiAgICAgdmlydHVhbCBIVE1MVGFnU3Rh
dHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7
IH0KQEAgLTE2MSwxMSArMTU3LDExIEBACiAgICAgSFRNTEZvcm1FbGVtZW50SW1wbCAqZm9ybSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsICp0b2tl
bik7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZUltcGwqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKik7Ci0gICAgdmlydHVhbCBraHRt
bDo6UmVuZGVyT2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqLCBraHRtbDo6UmVu
ZGVyU3R5bGUgKik7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5
bGUqKTsKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9E
b2N1bWVudCgpOwpAQCAtMTc2LDcgKzE3Miw3IEBACiAKICAgICBEb2N1bWVudEltcGwqIGNvbnRl
bnREb2N1bWVudCgpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0
ZShBdHRyaWJ1dGVJbXBsICphdHRyKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRy
aWJ1dGUoQXR0cmlidXRlSW1wbCopIGNvbnN0OwogCiAgICAgYm9vbCBpc0ltYWdlVHlwZSgpOwog
CkBAIC0yNjQsMTUgKzI2MCwxNSBAQAogewogICAgIGZyaWVuZCBjbGFzcyBIVE1MQXBwbGV0RWxl
bWVudEltcGw7CiBwdWJsaWM6Ci0gICAgSFRNTFBhcmFtRWxlbWVudEltcGwoRG9jdW1lbnRJbXBs
ICpkb2MpOworICAgIEhUTUxQYXJhbUVsZW1lbnRJbXBsKERvY3VtZW50SW1wbCopOwogICAgIH5I
VE1MUGFyYW1FbGVtZW50SW1wbCgpOwogCiAgICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRh
Z1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAg
dmlydHVhbCBpbnQgdGFnUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCAqdG9rZW4p
OworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJ
bXBsKik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlSW1wbCAq
YXR0cikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZUlt
cGwqKSBjb25zdDsKIAogICAgIERPTVN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
OyB9CiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IERPTVN0cmluZyAmKTsKSW5kZXg6IGtodG1sL2Vj
bWEva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvZWNtYS9ranNfd2luZG93LmNw
cAkocmV2aXNpb24gMTI0NjcpCisrKyBraHRtbC9lY21hL2tqc193aW5kb3cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTIsNyArMTUyLDcgQEAKIHsKICAgS1dpbk1vZHVsZSBpbmZvOwogICBRV2lk
Z2V0ICp0aGlzV2lkZ2V0ID0gV2luZG93OjpyZXRyaWV2ZUFjdGl2ZShleGVjKS0+ZnJhbWUoKS0+
dmlldygpOwotICBJbnRSZWN0IHNnID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkdl
b21ldHJ5KFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5OdW1iZXIodGhpc1dpZGdldCkp
OworICBJbnRSZWN0IHNnID0gUURlc2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KFFEZXNrdG9w
V2lkZ2V0OjpzY3JlZW5OdW1iZXIodGhpc1dpZGdldCkpOwogCiAgIHN3aXRjaCggdG9rZW4gKSB7
CiAgIGNhc2UgSGVpZ2h0OgpAQCAtMTYwLDI1ICsxNjAsMTYgQEAKICAgY2FzZSBXaWR0aDoKICAg
ICByZXR1cm4ganNOdW1iZXIoc2cud2lkdGgoKSk7CiAgIGNhc2UgQ29sb3JEZXB0aDoKLSAgY2Fz
ZSBQaXhlbERlcHRoOiB7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKFFBcHBsaWNhdGlvbjo6ZGVza3Rv
cCgpLT5zY3JlZW5EZXB0aCgpKTsKLSAgfQotICBjYXNlIEF2YWlsTGVmdDogewotICAgIEludFJl
Y3QgY2xpcHBlZCA9IGluZm8ud29ya0FyZWEoKS5pbnRlcnNlY3Qoc2cpOwotICAgIHJldHVybiBq
c051bWJlcihjbGlwcGVkLngoKS1zZy54KCkpOwotICB9Ci0gIGNhc2UgQXZhaWxUb3A6IHsKLSAg
ICBJbnRSZWN0IGNsaXBwZWQgPSBpbmZvLndvcmtBcmVhKCkuaW50ZXJzZWN0KHNnKTsKLSAgICBy
ZXR1cm4ganNOdW1iZXIoY2xpcHBlZC55KCktc2cueSgpKTsKLSAgfQotICBjYXNlIEF2YWlsSGVp
Z2h0OiB7Ci0gICAgSW50UmVjdCBjbGlwcGVkID0gaW5mby53b3JrQXJlYSgpLmludGVyc2VjdChz
Zyk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGNsaXBwZWQuaGVpZ2h0KCkpOwotICB9Ci0gIGNhc2Ug
QXZhaWxXaWR0aDogewotICAgIEludFJlY3QgY2xpcHBlZCA9IGluZm8ud29ya0FyZWEoKS5pbnRl
cnNlY3Qoc2cpOwotICAgIHJldHVybiBqc051bWJlcihjbGlwcGVkLndpZHRoKCkpOwotICB9Cisg
IGNhc2UgUGl4ZWxEZXB0aDoKKyAgICByZXR1cm4ganNOdW1iZXIoUURlc2t0b3BXaWRnZXQ6OnNj
cmVlbkRlcHRoKFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5OdW1iZXIodGhpc1dpZGdldCkpKTsKKyAg
Y2FzZSBBdmFpbExlZnQ6CisgICAgcmV0dXJuIGpzTnVtYmVyKGludGVyc2VjdGlvbihpbmZvLndv
cmtBcmVhKCksIHNnKS54KCkgLSBzZy54KCkpOworICBjYXNlIEF2YWlsVG9wOgorICAgIHJldHVy
biBqc051bWJlcihpbnRlcnNlY3Rpb24oaW5mby53b3JrQXJlYSgpLCBzZykueSgpIC0gc2cueSgp
KTsKKyAgY2FzZSBBdmFpbEhlaWdodDoKKyAgICByZXR1cm4ganNOdW1iZXIoaW50ZXJzZWN0aW9u
KGluZm8ud29ya0FyZWEoKSwgc2cpLmhlaWdodCgpKTsKKyAgY2FzZSBBdmFpbFdpZHRoOgorICAg
IHJldHVybiBqc051bWJlcihpbnRlcnNlY3Rpb24oaW5mby53b3JrQXJlYSgpLCBzZykud2lkdGgo
KSk7CiAgIGRlZmF1bHQ6CiAgICAga2RXYXJuaW5nKCkgPDwgIlNjcmVlbjo6Z2V0VmFsdWVQcm9w
ZXJ0eSB1bmhhbmRsZWQgdG9rZW4gIiA8PCB0b2tlbiA8PCBlbmRsOwogICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwpAQCAtNjExLDE2ICs2MDIsMTYgQEAKICAgICAvLyAtIGhlbHA6IGJvb2xGZWF0
dXJlKGZlYXR1cmVzLCAiaGVscCIsIHRydWUpLCBtYWtlcyBoZWxwIGljb24gYXBwZWFyIGluIGRp
YWxvZyAod2hhdCBkb2VzIGl0IGRvIG9uIFdpbmRvd3M/KQogICAgIC8vIC0gdW5hZG9ybmVkOiB0
cnVzdGVkICYmIGJvb2xGZWF0dXJlKGZlYXR1cmVzLCAidW5hZG9ybmVkIik7CiAKLSAgICBJbnRS
ZWN0IHNjcmVlblJlY3QgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+YXZhaWxhYmxlR2VvbWV0
cnkob3BlbmVyV2luZG93LT5mcmFtZSgpLT52aWV3KCkpOworICAgIEludFJlY3Qgc2NyZWVuUmVj
dCA9IFFEZXNrdG9wV2lkZ2V0OjphdmFpbGFibGVHZW9tZXRyeShvcGVuZXJXaW5kb3ctPmZyYW1l
KCktPnZpZXcoKSk7CiAKICAgICB3YXJncy53aWR0aCA9IGludEZlYXR1cmUoZmVhdHVyZXMsICJk
aWFsb2d3aWR0aCIsIDEwMCwgc2NyZWVuUmVjdC53aWR0aCgpLCA2MjApOyAvLyBkZWZhdWx0IGhl
cmUgY2FtZSBmcm9tIGZyYW1lIHNpemUgb2YgZGlhbG9nIGluIE1hY0lFCiAgICAgd2FyZ3Mud2lk
dGhTZXQgPSB0cnVlOwogICAgIHdhcmdzLmhlaWdodCA9IGludEZlYXR1cmUoZmVhdHVyZXMsICJk
aWFsb2doZWlnaHQiLCAxMDAsIHNjcmVlblJlY3QuaGVpZ2h0KCksIDQ1MCk7IC8vIGRlZmF1bHQg
aGVyZSBjYW1lIGZyb20gZnJhbWUgc2l6ZSBvZiBkaWFsb2cgaW4gTWFjSUUKICAgICB3YXJncy5o
ZWlnaHRTZXQgPSB0cnVlOwogCi0gICAgd2FyZ3MueCA9IGludEZlYXR1cmUoZmVhdHVyZXMsICJk
aWFsb2dsZWZ0Iiwgc2NyZWVuUmVjdC54KCksIHNjcmVlblJlY3QueCgpICsgc2NyZWVuUmVjdC53
aWR0aCgpIC0gd2FyZ3Mud2lkdGgsIC0xKTsKKyAgICB3YXJncy54ID0gaW50RmVhdHVyZShmZWF0
dXJlcywgImRpYWxvZ2xlZnQiLCBzY3JlZW5SZWN0LngoKSwgc2NyZWVuUmVjdC5yaWdodCgpIC0g
d2FyZ3Mud2lkdGgsIC0xKTsKICAgICB3YXJncy54U2V0ID0gd2FyZ3MueCA+IDA7Ci0gICAgd2Fy
Z3MueSA9IGludEZlYXR1cmUoZmVhdHVyZXMsICJkaWFsb2d0b3AiLCBzY3JlZW5SZWN0LnkoKSwg
c2NyZWVuUmVjdC55KCkgKyBzY3JlZW5SZWN0LmhlaWdodCgpIC0gd2FyZ3MuaGVpZ2h0LCAtMSk7
CisgICAgd2FyZ3MueSA9IGludEZlYXR1cmUoZmVhdHVyZXMsICJkaWFsb2d0b3AiLCBzY3JlZW5S
ZWN0LnkoKSwgc2NyZWVuUmVjdC5ib3R0b20oKSAtIHdhcmdzLmhlaWdodCwgLTEpOwogICAgIHdh
cmdzLnlTZXQgPSB3YXJncy55ID4gMDsKIAogICAgIGlmIChib29sRmVhdHVyZShmZWF0dXJlcywg
ImNlbnRlciIsIHRydWUpKSB7CkBAIC03NTMsMjQgKzc0NCwxOSBAQAogICAgIGNhc2UgUGVyc29u
YWxiYXI6CiAgICAgICByZXR1cm4gcGVyc29uYWxiYXIoZXhlYyk7CiAgICAgY2FzZSBTY3JlZW5M
ZWZ0OgotICAgIGNhc2UgU2NyZWVuWDogewotICAgICAgaWYgKG1fZnJhbWUtPnZpZXcoKSkgewor
ICAgIGNhc2UgU2NyZWVuWDoKKyAgICAgIGlmICghbV9mcmFtZS0+dmlldygpKQorICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgLy8gV2Ugd2FudCB0byB1c2UgZnJhbWVHZW9t
ZXRyeSBoZXJlIGluc3RlYWQgb2YgbWFwVG9HbG9iYWwgYmVjYXVzZSBpdCBnb2VzIHRocm91Z2gK
ICAgICAgICAgLy8gdGhlIHdpbmRvd0ZyYW1lIG1ldGhvZCBvZiB0aGUgV2ViS2l0J3MgVUkgZGVs
ZWdhdGUuIEFsc28gd2UgZG9uJ3Qgd2FudCB0byB0cnkKLSAgICAgICAgLy8gdG8gZG8gYW55dGhp
bmcgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbiB0aGUgd2luZG93IGlzIG9uLCBzbyB0aGUgY29kZSBi
ZWxvdyBpcyBubwotICAgICAgICAvLyBnb29kIG9mIHVzIGFueXdheS4KKyAgICAgIC8vIHRvIGRv
IGFueXRoaW5nIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4gdGhlIHdpbmRvdyBpcyBvbi4KICAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJh
bWVHZW9tZXRyeSgpLngoKSk7Ci0gICAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQogICAgIGNhc2UgU2NyZWVuVG9wOgotICAgIGNhc2UgU2NyZWVuWTogewot
ICAgICAgaWYgKG1fZnJhbWUtPnZpZXcoKSkgeworICAgIGNhc2UgU2NyZWVuWToKKyAgICAgIGlm
ICghbV9mcmFtZS0+dmlldygpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAg
ICAgLy8gU2VlIGNvbW1lbnQgYWJvdmUgaW4gU2NyZWVuWC4KICAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKG1fZnJhbWUtPnZpZXcoKS0+dG9wTGV2ZWxXaWRnZXQoKS0+ZnJhbWVHZW9tZXRyeSgpLnko
KSk7Ci0gICAgICB9IGVsc2UgCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
ICAgICBjYXNlIFNjcm9sbFg6CiAgICAgICBpZiAoIW1fZnJhbWUtPnZpZXcoKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC0xNTMyLDE5ICsxNTE4LDE5IEBACiBzdGF0aWMgdm9p
ZCBjb25zdHJhaW5Ub1Zpc2libGUoY29uc3QgSW50UmVjdCAmc2NyZWVuLCBXaW5kb3dBcmdzJiB3
aW5kb3dBcmdzKQogewogICAgIHdpbmRvd0FyZ3MueCArPSBzY3JlZW4ueCgpOwotICAgIGlmICh3
aW5kb3dBcmdzLnggPCBzY3JlZW4ueCgpIHx8IHdpbmRvd0FyZ3MueCA+IHNjcmVlbi5yaWdodCgp
KQotICAgICAgICB3aW5kb3dBcmdzLnggPSBzY3JlZW4ueCgpOyAvLyBvbmx5IHNhZmUgY2hvaWNl
IHVudGlsIHNpemUgaXMgZGV0ZXJtaW5lZAorICAgIGlmICh3aW5kb3dBcmdzLnggPCBzY3JlZW4u
eCgpIHx8IHdpbmRvd0FyZ3MueCA+PSBzY3JlZW4ucmlnaHQoKSkKKyAgICAgICAgd2luZG93QXJn
cy54ID0gc2NyZWVuLngoKTsKICAgICAKICAgICB3aW5kb3dBcmdzLnkgKz0gc2NyZWVuLnkoKTsK
LSAgICBpZiAod2luZG93QXJncy55IDwgc2NyZWVuLnkoKSB8fCB3aW5kb3dBcmdzLnkgPiBzY3Jl
ZW4uYm90dG9tKCkpCi0gICAgICAgIHdpbmRvd0FyZ3MueSA9IHNjcmVlbi55KCk7IC8vIG9ubHkg
c2FmZSBjaG9pY2UgdW50aWwgc2l6ZSBpcyBkZXRlcm1pbmVkCisgICAgaWYgKHdpbmRvd0FyZ3Mu
eSA8IHNjcmVlbi55KCkgfHwgd2luZG93QXJncy55ID49IHNjcmVlbi5ib3R0b20oKSkKKyAgICAg
ICAgd2luZG93QXJncy55ID0gc2NyZWVuLnkoKTsKICAgICAKLSAgICBpZiAod2luZG93QXJncy5o
ZWlnaHQgPiBzY3JlZW4uaGVpZ2h0KCkpICAvLyBzaG91bGQgYWN0dWFsbHkgY2hlY2sgd29ya3Nw
YWNlCisgICAgaWYgKHdpbmRvd0FyZ3MuaGVpZ2h0ID4gc2NyZWVuLmhlaWdodCgpKQogICAgICAg
ICB3aW5kb3dBcmdzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQoKTsKICAgICBpZiAod2luZG93QXJn
cy5oZWlnaHQgPCAxMDApCiAgICAgICAgIHdpbmRvd0FyZ3MuaGVpZ2h0ID0gMTAwOwogICAgIAot
ICAgIGlmICh3aW5kb3dBcmdzLndpZHRoID4gc2NyZWVuLndpZHRoKCkpICAgIC8vIHNob3VsZCBh
Y3R1YWxseSBjaGVjayB3b3Jrc3BhY2UKKyAgICBpZiAod2luZG93QXJncy53aWR0aCA+IHNjcmVl
bi53aWR0aCgpKQogICAgICAgICB3aW5kb3dBcmdzLndpZHRoID0gc2NyZWVuLndpZHRoKCk7CiAg
ICAgaWYgKHdpbmRvd0FyZ3Mud2lkdGggPCAxMDApCiAgICAgICAgIHdpbmRvd0FyZ3Mud2lkdGgg
PSAxMDA7CkBAIC0xNTk3LDggKzE1ODMsOCBAQAogICAgICAgUVN0cmluZyBmZWF0dXJlcyA9IGFy
Z3NbMl0tPmlzVW5kZWZpbmVkT3JOdWxsKCkgPyBRU3RyaW5nKCkgOiBhcmdzWzJdLT50b1N0cmlu
ZyhleGVjKS5xc3RyaW5nKCk7CiAgICAgICBwYXJzZVdpbmRvd0ZlYXR1cmVzKGZlYXR1cmVzLCB3
aW5kb3dBcmdzKTsKICAgICAgIAotICAgICAgaW50IHNjcmVlbk51bWJlciA9IFFBcHBsaWNhdGlv
bjo6ZGVza3RvcCgpLT5zY3JlZW5OdW1iZXIod2lkZ2V0LT50b3BMZXZlbFdpZGdldCgpKTsKLSAg
ICAgIGNvbnN0cmFpblRvVmlzaWJsZShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuR2Vv
bWV0cnkoc2NyZWVuTnVtYmVyKSwgd2luZG93QXJncyk7CisgICAgICBpbnQgc2NyZWVuTnVtYmVy
ID0gUURlc2t0b3BXaWRnZXQ6OnNjcmVlbk51bWJlcih3aWRnZXQtPnRvcExldmVsV2lkZ2V0KCkp
OworICAgICAgY29uc3RyYWluVG9WaXNpYmxlKFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5HZW9tZXRy
eShzY3JlZW5OdW1iZXIpLCB3aW5kb3dBcmdzKTsKICAgICAgIAogICAgICAgLy8gcHJlcGFyZSBh
cmd1bWVudHMKICAgICAgIEtVUkwgdXJsOwpAQCAtMTY3OSw0MSArMTY2NSwzMyBAQAogICAgICAg
d2lkZ2V0LT5zZXRDb250ZW50c1BvcyhhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50
b0ludDMyKGV4ZWMpKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgY2FzZSBXaW5kb3c6
Ok1vdmVCeToKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkKLSAgICB7CisgICAg
aWYgKGFyZ3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CiAgICAgICBRV2lkZ2V0ICogdGwgPSB3
aWRnZXQtPnRvcExldmVsV2lkZ2V0KCk7Ci0gICAgICAgICAgSW50UmVjdCBzZyA9IFFBcHBsaWNh
dGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+
c2NyZWVuTnVtYmVyKHRsKSk7CisgICAgICBJbnRSZWN0IHNnID0gUURlc2t0b3BXaWRnZXQ6OnNj
cmVlbkdlb21ldHJ5KFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5OdW1iZXIodGwpKTsKICAgICAgIElu
dFBvaW50IGRlc3QgPSB0bC0+cG9zKCkgKyBJbnRQb2ludCggYXJnc1swXS0+dG9JbnQzMihleGVj
KSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSApOwotICAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRo
ZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMg
Y2hlY2suLi4pCi0gICAgICBpZiAoIGRlc3QueCgpID49IHNnLngoKSAmJiBkZXN0LnkoKSA+PSBz
Zy54KCkgJiYKLSAgICAgICAgICAgZGVzdC54KCkrdGwtPndpZHRoKCkgPD0gc2cud2lkdGgoKStz
Zy54KCkgJiYKLSAgICAgICAgICAgZGVzdC55KCkrdGwtPmhlaWdodCgpIDw9IHNnLmhlaWdodCgp
K3NnLnkoKSApCisgICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQg
VW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjaykKKyAgICAgIGlmIChz
Zy5jb250YWlucyhJbnRSZWN0KGRlc3QsIEludFNpemUodGwtPndpZHRoKCksIHRsLT5oZWlnaHQo
KSkpKSkKICAgICAgICAgdGwtPm1vdmUoIGRlc3QgKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpNb3ZlVG86Ci0gICAgaWYoYXJncy5zaXplKCkgPj0g
MiAmJiB3aWRnZXQpCi0gICAgeworICAgIGlmIChhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkg
ewogICAgICAgUVdpZGdldCAqIHRsID0gd2lkZ2V0LT50b3BMZXZlbFdpZGdldCgpOwotICAgICAg
ICAgIEludFJlY3Qgc2cgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+c2NyZWVuR2VvbWV0cnko
UUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbk51bWJlcih0bCkpOworICAgICAgSW50UmVj
dCBzZyA9IFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5HZW9tZXRyeShRRGVza3RvcFdpZGdldDo6c2Ny
ZWVuTnVtYmVyKHRsKSk7CiAgICAgICBJbnRQb2ludCBkZXN0KCBhcmdzWzBdLT50b0ludDMyKGV4
ZWMpK3NnLngoKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKStzZy55KCkgKTsKLSAgICAgIC8vIFNl
Y3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUg
dG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgICAgaWYgKCBkZXN0LngoKSA+PSBzZy54KCkg
JiYgZGVzdC55KCkgPj0gc2cueSgpICYmCi0gICAgICAgICAgIGRlc3QueCgpK3RsLT53aWR0aCgp
IDw9IHNnLndpZHRoKCkrc2cueCgpICYmCi0gICAgICAgICAgIGRlc3QueSgpK3RsLT5oZWlnaHQo
KSA8PSBzZy5oZWlnaHQoKStzZy55KCkgKQorICAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBz
cGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hl
Y2spCisgICAgICBpZiAoc2cuY29udGFpbnMoSW50UmVjdChkZXN0LCBJbnRTaXplKHRsLT53aWR0
aCgpLCB0bC0+aGVpZ2h0KCkpKSkpCiAgICAgICAgIHRsLT5tb3ZlKCBkZXN0ICk7CiAgICAgfQog
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICBjYXNlIFdpbmRvdzo6UmVzaXplQnk6Ci0gICAg
aWYoYXJncy5zaXplKCkgPj0gMiAmJiB3aWRnZXQpCi0gICAgeworICAgIGlmIChhcmdzLnNpemUo
KSA+PSAyICYmIHdpZGdldCkgewogICAgICAgUVdpZGdldCAqIHRsID0gd2lkZ2V0LT50b3BMZXZl
bFdpZGdldCgpOwogICAgICAgSW50U2l6ZSBkZXN0ID0gdGwtPnNpemUoKSArIEludFNpemUoIGFy
Z3NbMF0tPnRvSW50MzIoZXhlYyksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYykgKTsKLSAgICAgICAg
ICBJbnRSZWN0IHNnID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkdlb21ldHJ5KFFB
cHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5OdW1iZXIodGwpKTsKKyAgICAgIEludFJlY3Qg
c2cgPSBRRGVza3RvcFdpZGdldDo6c2NyZWVuR2VvbWV0cnkoUURlc2t0b3BXaWRnZXQ6OnNjcmVl
bk51bWJlcih0bCkpOwogICAgICAgLy8gU2VjdXJpdHkgY2hlY2s6IHdpdGhpbiBkZXNrdG9wIGxp
bWl0cyBhbmQgYmlnZ2VyIHRoYW4gMTAweDEwMCAocGVyIHNwZWMpCi0gICAgICBpZiAoIHRsLT54
KCkrZGVzdC53aWR0aCgpIDw9IHNnLngoKStzZy53aWR0aCgpICYmCi0gICAgICAgICAgIHRsLT55
KCkrZGVzdC5oZWlnaHQoKSA8PSBzZy55KCkrc2cuaGVpZ2h0KCkgJiYKLSAgICAgICAgICAgZGVz
dC53aWR0aCgpID49IDEwMCAmJiBkZXN0LmhlaWdodCgpID49IDEwMCApCisgICAgICBpZiAodGwt
PngoKSArIGRlc3Qud2lkdGgoKSA8PSBzZy5yaWdodCgpICYmIHRsLT55KCkgKyBkZXN0LmhlaWdo
dCgpIDw9IHNnLmJvdHRvbSgpCisgICAgICAgICAgICYmIGRlc3Qud2lkdGgoKSA+PSAxMDAgJiYg
ZGVzdC5oZWlnaHQoKSA+PSAxMDApCiAgICAgICB7CiAgICAgICAgIC8vIFRha2UgaW50byBhY2Nv
dW50IHRoZSB3aW5kb3cgZnJhbWUKICAgICAgICAgaW50IGRlbHRhV2lkdGggPSB0bC0+ZnJhbWVH
ZW9tZXRyeSgpLndpZHRoKCkgLSB0bC0+d2lkdGgoKTsKQEAgLTE3MjMsMTQgKzE3MDEsMTIgQEAK
ICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgIGNhc2UgV2luZG93OjpSZXNpemVU
bzoKLSAgICBpZihhcmdzLnNpemUoKSA+PSAyICYmIHdpZGdldCkKLSAgICB7CisgICAgaWYgKGFy
Z3Muc2l6ZSgpID49IDIgJiYgd2lkZ2V0KSB7CiAgICAgICBRV2lkZ2V0ICogdGwgPSB3aWRnZXQt
PnRvcExldmVsV2lkZ2V0KCk7CiAgICAgICBJbnRTaXplIGRlc3QgPSBJbnRTaXplKCBhcmdzWzBd
LT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpICk7Ci0gICAgICAgICAgSW50
UmVjdCBzZyA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeShRQXBwbGlj
YXRpb246OmRlc2t0b3AoKS0+c2NyZWVuTnVtYmVyKHRsKSk7CisgICAgICBJbnRSZWN0IHNnID0g
UURlc2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5OdW1i
ZXIodGwpKTsKICAgICAgIC8vIFNlY3VyaXR5IGNoZWNrOiB3aXRoaW4gZGVza3RvcCBsaW1pdHMg
YW5kIGJpZ2dlciB0aGFuIDEwMHgxMDAgKHBlciBzcGVjKQotICAgICAgaWYgKCB0bC0+eCgpK2Rl
c3Qud2lkdGgoKSA8PSBzZy54KCkrc2cud2lkdGgoKSAmJgotICAgICAgICAgICB0bC0+eSgpK2Rl
c3QuaGVpZ2h0KCkgPD0gc2cueSgpK3NnLmhlaWdodCgpICYmCisgICAgICBpZiAodGwtPngoKSAr
IGRlc3Qud2lkdGgoKSA8PSBzZy5yaWdodCgpICYmIHRsLT55KCkgKyBkZXN0LmhlaWdodCgpIDw9
IHNnLmJvdHRvbSgpICYmCiAgICAgICAgICAgIGRlc3Qud2lkdGgoKSA+PSAxMDAgJiYgZGVzdC5o
ZWlnaHQoKSA+PSAxMDAgKQogICAgICAgewogICAgICAgICAvLyBUYWtlIGludG8gYWNjb3VudCB0
aGUgd2luZG93IGZyYW1lCkluZGV4OiBraHRtbC9lY21hL2tqc19kb20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga2h0bWwvZWNt
YS9ranNfZG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsMzUgKzIxLDMzIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAia2pzX2RvbS5oIgogCi0jaW5jbHVkZSA8a2RlYnVnLmg+
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJ4bWwvZG9tMl9ldmVudHNpbXBsLmgiCi0j
aW5jbHVkZSAieG1sL2RvbTJfdmlld3NpbXBsLmgiCi0jaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRl
cl9jYW52YXMuaCIKLSNpbmNsdWRlICJEb2N1bWVudFR5cGVJbXBsLmgiCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudEltcGwuaCIK
LSNpbmNsdWRlICJ4bWwvZG9tX3RleHRpbXBsLmgiCi0jaW5jbHVkZSAieG1sL0V2ZW50TmFtZXMu
aCIKLSNpbmNsdWRlICJ4bWwvZG9tX3htbGltcGwuaCIKLSNpbmNsdWRlICJodG1sL2h0bWxfZG9j
dW1lbnRpbXBsLmgiCi0jaW5jbHVkZSAiY3NzL2Nzc19ydWxlaW1wbC5oIgotI2luY2x1ZGUgImNz
cy9jc3Nfc3R5bGVzaGVldGltcGwuaCIKLQorI2luY2x1ZGUgIkRvY3VtZW50VHlwZUltcGwuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NSW1wbGVtZW50YXRpb24uaCIKICNp
bmNsdWRlICJKU0RvY3VtZW50VHlwZS5oIgotCi0jaW5jbHVkZSAia2pzX2h0bWwuaCIKKyNpbmNs
dWRlICJjc3MvY3NzX3J1bGVpbXBsLmgiCisjaW5jbHVkZSAiY3NzL2Nzc19zdHlsZXNoZWV0aW1w
bC5oIgorI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiaHRtbC9odG1s
X2RvY3VtZW50aW1wbC5oIgorI2luY2x1ZGUgImh0bWxfb2JqZWN0aW1wbC5oIgorI2luY2x1ZGUg
Imh0bWxuYW1lcy5oIgorI2luY2x1ZGUgImtodG1sX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAia2pz
X2Nzcy5oIgorI2luY2x1ZGUgImtqc19ldmVudHMuaCIKKyNpbmNsdWRlICJranNfaHRtbC5oIgog
I2luY2x1ZGUgImtqc19yYW5nZS5oIgogI2luY2x1ZGUgImtqc190cmF2ZXJzYWwuaCIKLSNpbmNs
dWRlICJranNfZXZlbnRzLmgiCiAjaW5jbHVkZSAia2pzX3ZpZXdzLmgiCiAjaW5jbHVkZSAia2pz
X3dpbmRvdy5oIgotI2luY2x1ZGUgImRvbS9kb21fZXhjZXB0aW9uLmgiCi0KLSNpbmNsdWRlICJo
dG1sX29iamVjdGltcGwuaCIKLSNpbmNsdWRlICJodG1sbmFtZXMuaCIKKyNpbmNsdWRlICJyZW5k
ZXJpbmcvcmVuZGVyX2NhbnZhcy5oIgorI2luY2x1ZGUgInhtbC9FdmVudE5hbWVzLmgiCisjaW5j
bHVkZSAieG1sL2RvbTJfZXZlbnRzaW1wbC5oIgorI2luY2x1ZGUgInhtbC9kb20yX3ZpZXdzaW1w
bC5oIgorI2luY2x1ZGUgInhtbC9kb21fdGV4dGltcGwuaCIKKyNpbmNsdWRlICJ4bWwvZG9tX3ht
bGltcGwuaCIKKyNpbmNsdWRlIDxrZGVidWcuaD4KIAogI2lmIF9fQVBQTEVfXwogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL3J1bnRpbWVfb2JqZWN0Lmg+CkluZGV4OiBraHRtbC9taXNjL2todG1s
bGF5b3V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvbWlzYy9raHRtbGxheW91dC5oCShyZXZpc2lv
biAxMjQ2NykKKysrIGtodG1sL21pc2Mva2h0bWxsYXlvdXQuaAkod29ya2luZyBjb3B5KQpAQCAt
Miw2ICsyLDcgQEAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxpYnJhcmllcwog
CiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgICAg
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTIxLDUyICsyMiw0MyBAQAogCiAgICAgVGhpcyB3aWRnZXQgaG9sZHMgc29tZSB1c2Vm
dWwgZGVmaW5pdGlvbnMgbmVlZGVkIGZvciBsYXlvdXRpbmcgRWxlbWVudHMKICovCisKICNpZm5k
ZWYgSFRNTF9MQVlPVVRfSAogI2RlZmluZSBIVE1MX0xBWU9VVF9ICiAKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qCi0gKiB0aGlzIG5hbWVzcGFjZSBjb250
YWlucyBkZWZpbml0aW9ucyBmb3IgdmFyaW91cyB0eXBlcyBuZWVkZWQgZm9yCi0gKiBsYXlvdXRp
bmcuCi0gKi8KLW5hbWVzcGFjZSBraHRtbAotewotICAgIGNvbnN0IGludCBVTkRFRklORUQgPSAt
MTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIGFsaWdubWVudAotICAgIGVudW0gVkFs
aWduIHsgVk5vbmU9MCwgQm90dG9tLCBWQ2VudGVyLCBUb3AsIEJhc2VsaW5lIH07Ci0gICAgZW51
bSBIQWxpZ24geyBIRGVmYXVsdCwgTGVmdCwgSENlbnRlciwgUmlnaHQsIEhOb25lID0gMCB9Owor
ICAgIGNvbnN0IGludCBVTkRFRklORUQgPSAtMTsKIAotICAgIC8qCi0gICAgICogJW11bHRpTGVu
Z3RoIGFuZCAlTGVuZ3RoCi0gICAgICovCiAgICAgZW51bSBMZW5ndGhUeXBlIHsgQXV0byA9IDAs
IFJlbGF0aXZlLCBQZXJjZW50LCBGaXhlZCwgU3RhdGljLCBJbnRyaW5zaWMsIE1pbkludHJpbnNp
YyB9OwogICAgIHN0cnVjdCBMZW5ndGgKICAgICB7Ci0JTGVuZ3RoKCkgeyAqKChRX1VJTlQzMiAq
KXRoaXMpID0gMDsgfQorICAgICAgICAvLyBGSVhNRTogQSBtb3JlIHJlbGlhYmxlIGFuZCBzdHJh
aWdodGZvcndhcmQgd2F5IG9mIGRvaW5nIHRoaXMgaXMgdG8ganVzdCBoYXZlCisgICAgICAgIC8v
IGFuIHVuc2lnbmVkIGFuZCBleHRyYWN0IHRoZSBiaXRzIGFzIG5lZWRlZCwgaW5zdGVhZCBvZiBy
ZWx5aW5nIG9uIGJpdCBmaWVsZHMgbGF5b3V0CisgICAgICAgIC8vIGZpdHRpbmcgaW4gYSAzMi1i
aXQgaW50ZWdlci4gU2hvdWxkIGZpeCB0aGlzLgorCisJTGVuZ3RoKCkgeyAqKCh1aW50MzJfdCAq
KXRoaXMpID0gMDsgfQogICAgICAgICBMZW5ndGgoTGVuZ3RoVHlwZSB0KSB7IHR5cGUgPSB0OyB2
YWx1ZSA9IDA7IHF1aXJrID0gZmFsc2U7IH0KICAgICAgICAgTGVuZ3RoKGludCB2LCBMZW5ndGhU
eXBlIHQsIGJvb2wgcT1mYWxzZSkgOiB2YWx1ZSh2KSwgdHlwZSh0KSwgcXVpcmsocSkge30KICAg
ICAgICAgTGVuZ3RoKGNvbnN0IExlbmd0aCAmbykKLQkgICAgeyAqKChRX1VJTlQzMiAqKXRoaXMp
ID0gKigoUV9VSU5UMzIgKikmbyk7IH0KKwkgICAgeyAqKCh1aW50MzJfdCAqKXRoaXMpID0gKigo
dWludDMyX3QgKikmbyk7IH0KIAogICAgICAgICBMZW5ndGgmIG9wZXJhdG9yPShjb25zdCBMZW5n
dGgmIG8pCi0gICAgICAgICAgICB7ICooKFFfVUlOVDMyICopdGhpcykgPSAqKChRX1VJTlQzMiAq
KSZvKTsgcmV0dXJuICp0aGlzOyB9CisgICAgICAgICAgICB7ICooKHVpbnQzMl90ICopdGhpcykg
PSAqKCh1aW50MzJfdCAqKSZvKTsgcmV0dXJuICp0aGlzOyB9CiAgICAgICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBMZW5ndGgmIG8pIGNvbnN0Ci0gICAgICAgICAgICB7IHJldHVybiAqKChRX1VJ
TlQzMiAqKXRoaXMpID09ICooKFFfVUlOVDMyICopJm8pOyB9CisgICAgICAgICAgICB7IHJldHVy
biAqKCh1aW50MzJfdCAqKXRoaXMpID09ICooKHVpbnQzMl90ICopJm8pOyB9CiAgICAgICAgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBMZW5ndGgmIG8pIGNvbnN0Ci0gICAgICAgICAgICB7IHJldHVy
biAqKChRX1VJTlQzMiAqKXRoaXMpICE9ICooKFFfVUlOVDMyICopJm8pOyB9CisgICAgICAgICAg
ICB7IHJldHVybiAqKCh1aW50MzJfdCAqKXRoaXMpICE9ICooKHVpbnQzMl90ICopJm8pOyB9CiAK
IAogCWludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiB2YWx1ZTsgfQogCi0JLyoKLQkgKiB3b3Jr
cyBvbmx5IGZvciBGaXhlZCBhbmQgUGVyY2VudCwgcmV0dXJucyAtMSBvdGhlcndpc2UKLQkgKi8K
LQlpbnQgd2lkdGgoaW50IG1heFdpZHRoKSBjb25zdAotCSAgICB7Ci0JCXN3aXRjaCh0eXBlKQot
CQl7CisJLy8gbm90ZTogd29ya3Mgb25seSBmb3IgY2VydGFpbiB0eXBlcywgcmV0dXJucyAtMSBv
dGhlcndpc2UKKwlpbnQgd2lkdGgoaW50IG1heFdpZHRoKSBjb25zdCB7CisgICAgICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKIAkJY2FzZSBGaXhlZDoKIAkJICAgIHJldHVybiB2YWx1ZTsKIAkJY2Fz
ZSBQZXJjZW50OgpAQCAtNzcsMTMgKzY5LDkgQEAKIAkJICAgIHJldHVybiAtMTsKIAkJfQogCSAg
ICB9Ci0JLyoKLQkgKiByZXR1cm5zIHRoZSBtaW5pbXVtIHdpZHRoIHZhbHVlIHdoaWNoIGNvdWxk
IHdvcmsuLi4KLQkgKi8KLQlpbnQgbWluV2lkdGgoaW50IG1heFdpZHRoKSBjb25zdAotCSAgICB7
Ci0JCXN3aXRjaCh0eXBlKQotCQl7CisKKwlpbnQgbWluV2lkdGgoaW50IG1heFdpZHRoKSBjb25z
dCB7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKIAkJY2FzZSBGaXhlZDoKIAkJICAgIHJl
dHVybiB2YWx1ZTsKIAkJY2FzZSBQZXJjZW50OgpAQCAtOTMsMTIgKzgxLDEzIEBACiAJCSAgICBy
ZXR1cm4gMDsKIAkJfQogCSAgICB9Ci0gICAgICAgIGJvb2wgaXNBdXRvKCkgY29uc3QgeyByZXR1
cm4gKHR5cGUgPT0gQXV0byk7IH0KLSAgICAgICAgYm9vbCBpc1JlbGF0aXZlKCkgY29uc3QgeyBy
ZXR1cm4gKHR5cGUgPT0gUmVsYXRpdmUpOyB9Ci0gICAgICAgIGJvb2wgaXNQZXJjZW50KCkgY29u
c3QgeyByZXR1cm4gKHR5cGUgPT0gUGVyY2VudCk7IH0KLSAgICAgICAgYm9vbCBpc0ZpeGVkKCkg
Y29uc3QgeyByZXR1cm4gKHR5cGUgPT0gRml4ZWQpOyB9Ci0gICAgICAgIGJvb2wgaXNTdGF0aWMo
KSBjb25zdCB7IHJldHVybiAodHlwZSA9PSBTdGF0aWMpOyB9Ci0gICAgICAgIGJvb2wgaXNJbnRy
aW5zaWNPckF1dG8oKSBjb25zdCB7IHJldHVybiAodHlwZSA9PSBBdXRvIHx8IHR5cGUgPT0gTWlu
SW50cmluc2ljIHx8IHR5cGUgPT0gSW50cmluc2ljKTsgfQorCisgICAgICAgIGJvb2wgaXNBdXRv
KCkgY29uc3QgeyByZXR1cm4gdHlwZSA9PSBBdXRvOyB9CisgICAgICAgIGJvb2wgaXNSZWxhdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUgPT0gUmVsYXRpdmU7IH0KKyAgICAgICAgYm9vbCBpc1Bl
cmNlbnQoKSBjb25zdCB7IHJldHVybiB0eXBlID09IFBlcmNlbnQ7IH0KKyAgICAgICAgYm9vbCBp
c0ZpeGVkKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9PSBGaXhlZDsgfQorICAgICAgICBib29sIGlz
U3RhdGljKCkgY29uc3QgeyByZXR1cm4gdHlwZSA9PSBTdGF0aWM7IH0KKyAgICAgICAgYm9vbCBp
c0ludHJpbnNpY09yQXV0bygpIGNvbnN0IHsgcmV0dXJuIHR5cGUgPT0gQXV0byB8fCB0eXBlID09
IE1pbkludHJpbnNpYyB8fCB0eXBlID09IEludHJpbnNpYzsgfQogCiAgICAgICAgIGludCB2YWx1
ZSA6IDI4OwogICAgICAgICBMZW5ndGhUeXBlIHR5cGUgOiAzOwpAQCAtMTA2LDI5ICs5NSwzMiBA
QAogICAgIH07CiAKICAgICBzdHJ1Y3QgR2FwUmVjdHMgewotICAgICAgICBJbnRSZWN0IG1fbGVm
dDsKLSAgICAgICAgSW50UmVjdCBtX2NlbnRlcjsKLSAgICAgICAgSW50UmVjdCBtX3JpZ2h0Owot
ICAgICAgICAKLSAgICAgICAgSW50UmVjdCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9
Ci0gICAgICAgIEludFJlY3QgY2VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXI7IH0KLSAg
ICAgICAgSW50UmVjdCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAgICAgICAg
Ci0gICAgICAgIHZvaWQgdW5pdGVMZWZ0KGNvbnN0IEludFJlY3QmIHIpIHsgbV9sZWZ0ID0gbV9s
ZWZ0LnVuaXRlKHIpOyB9Ci0gICAgICAgIHZvaWQgdW5pdGVDZW50ZXIoY29uc3QgSW50UmVjdCYg
cikgeyBtX2NlbnRlciA9IG1fY2VudGVyLnVuaXRlKHIpOyB9Ci0gICAgICAgIHZvaWQgdW5pdGVS
aWdodChjb25zdCBJbnRSZWN0JiByKSB7IG1fcmlnaHQgPSBtX3JpZ2h0LnVuaXRlKHIpOyB9Cisg
ICAgICAgIGNvbnN0IEludFJlY3QmIGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7IH0KKyAg
ICAgICAgY29uc3QgSW50UmVjdCYgY2VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXI7IH0K
KyAgICAgICAgY29uc3QgSW50UmVjdCYgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0OyB9
CisgICAgICAgIAorICAgICAgICB2b2lkIHVuaXRlTGVmdChjb25zdCBJbnRSZWN0JiByKSB7IG1f
bGVmdC51bml0ZShyKTsgfQorICAgICAgICB2b2lkIHVuaXRlQ2VudGVyKGNvbnN0IEludFJlY3Qm
IHIpIHsgbV9jZW50ZXIudW5pdGUocik7IH0KKyAgICAgICAgdm9pZCB1bml0ZVJpZ2h0KGNvbnN0
IEludFJlY3QmIHIpIHsgbV9yaWdodC51bml0ZShyKTsgfQogICAgICAgICB2b2lkIHVuaXRlKGNv
bnN0IEdhcFJlY3RzJiBvKSB7IHVuaXRlTGVmdChvLmxlZnQoKSk7IHVuaXRlQ2VudGVyKG8uY2Vu
dGVyKCkpOyB1bml0ZVJpZ2h0KG8ucmlnaHQoKSk7IH0KIAogICAgICAgICBvcGVyYXRvciBJbnRS
ZWN0KCkgY29uc3QgewotICAgICAgICAgICAgSW50UmVjdCByZXN1bHQgPSBtX2xlZnQudW5pdGUo
bV9jZW50ZXIpOwotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnVuaXRlKG1fcmlnaHQpOwor
ICAgICAgICAgICAgSW50UmVjdCByZXN1bHQgPSBtX2xlZnQ7CisgICAgICAgICAgICByZXN1bHQu
dW5pdGUobV9jZW50ZXIpOworICAgICAgICAgICAgcmVzdWx0LnVuaXRlKG1fcmlnaHQpOwogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgR2FwUmVjdHMmIG90aGVyKSB7CiAgICAgICAgICAgICByZXR1cm4gbV9sZWZ0ID09
IG90aGVyLmxlZnQoKSAmJiBtX2NlbnRlciA9PSBvdGhlci5jZW50ZXIoKSAmJiBtX3JpZ2h0ID09
IG90aGVyLnJpZ2h0KCk7CiAgICAgICAgIH0KICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IEdhcFJlY3RzJiBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworICAgIHBy
aXZhdGU6CisgICAgICAgIEludFJlY3QgbV9sZWZ0OworICAgICAgICBJbnRSZWN0IG1fY2VudGVy
OworICAgICAgICBJbnRSZWN0IG1fcmlnaHQ7CiAgICAgfTsKLX07CisKK30KIAogI2VuZGlmCklu
ZGV4OiBwbGF0Zm9ybS9GbG9hdFNpemUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0Zsb2F0
U2l6ZS5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vRmxvYXRTaXplLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNDUgKzI2LDEzIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJGbG9hdFNpemUuaCIKKwogI2luY2x1ZGUgIkludFNpemUuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1GbG9hdFNpemU6OkZsb2F0U2l6ZSgpIDogdygtMS4wZiksIGgoLTEuMGYp
Ci17Ci19Ci0KLUZsb2F0U2l6ZTo6RmxvYXRTaXplKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQp
IDogdyh3aWR0aCksIGgoaGVpZ2h0KQotewotfQotCi1GbG9hdFNpemU6OkZsb2F0U2l6ZShjb25z
dCBJbnRTaXplJiBvKSA6IHcoby53aWR0aCgpKSwgaChvLmhlaWdodCgpKQotewotfQotCi1ib29s
IEZsb2F0U2l6ZTo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPj0gMC4wZiAmJiBo
ID49IDAuMGY7Ci19Ci0KLUZsb2F0U2l6ZSBGbG9hdFNpemU6OmV4cGFuZGVkVG8oY29uc3QgRmxv
YXRTaXplJiBvKSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFNpemUodyA+IG8udyA/IHcgOiBv
LncsIGggPiBvLmggPyBoIDogby5oKTsKLX0KLQotRmxvYXRTaXplIG9wZXJhdG9yKyhjb25zdCBG
bG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKLXsKLSAgICByZXR1cm4gRmxvYXRTaXpl
KGEudyArIGIudywgYS5oICsgYi5oKTsKLX0KLQotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0
U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQotewotICAgIHJldHVybiBhLncgPT0gYi53ICYm
IGEuaCA9PSBiLmg7Ci19Ci0KLWJvb2wgb3BlcmF0b3IhPShjb25zdCBGbG9hdFNpemUmIGEsIGNv
bnN0IEZsb2F0U2l6ZSYgYikKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNvbnN0IEludFNpemUmIHNp
emUpIDogbV93aWR0aChzaXplLndpZHRoKCkpLCBtX2hlaWdodChzaXplLmhlaWdodCgpKQogewot
ICAgIHJldHVybiBhLncgIT0gYi53IHx8IGEuaCAhPSBiLmg7CiB9CiAKIH0KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBwbGF0Zm9ybS9JbnRQb2ludEFycmF5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5oCShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRm
b3JtL0ludFBvaW50QXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzcsNyArMzcsNiBAQAogcHVibGljOgogICAgIEludFBvaW50QXJyYXkoKSB7IH0K
ICAgICBJbnRQb2ludEFycmF5KGludCBzaXplKSA6IEFycmF5PEludFBvaW50PihzaXplKSB7IH0K
LSAgICBJbnRQb2ludEFycmF5KGNvbnN0IEludFJlY3QgJnJlY3QpOwogICAgIEludFBvaW50QXJy
YXkoaW50LCBjb25zdCBpbnQgKik7CiAgICAgCiAgICAgSW50UmVjdCBib3VuZGluZ1JlY3QoKSBj
b25zdDsKSW5kZXg6IHBsYXRmb3JtL0ludFJlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3Jt
L0ludFJlY3QuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRmb3JtL0ludFJlY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTMyLDE2MCArMzMsNjAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1JbnRSZWN0OjpJbnRSZWN0KCkgOiB4cCgwKSwgeXAoMCksIHcoMCksIGgo
MCkKLXsKLX0KLQotSW50UmVjdDo6SW50UmVjdChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50
IGhlaWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgpLCBoKGhlaWdodCkKLXsKLX0KLQotSW50
UmVjdDo6SW50UmVjdChJbnRQb2ludCBwLCBJbnRTaXplIHMpIDogeHAocC54KCkpLCB5cChwLnko
KSksIHcocy53aWR0aCgpKSwgaChzLmhlaWdodCgpKQotewotfQotCi1JbnRSZWN0OjpJbnRSZWN0
KGNvbnN0IEludFBvaW50ICZ0b3BMZWZ0LCBjb25zdCBJbnRQb2ludCAmYm90dG9tUmlnaHQpCi17
Ci0gICAgeHAgPSB0b3BMZWZ0LngoKTsKLSAgICB5cCA9IHRvcExlZnQueSgpOwotICAgIHcgPSBi
b3R0b21SaWdodC54KCkgLSB0b3BMZWZ0LngoKSArIDE7Ci0gICAgaCA9IGJvdHRvbVJpZ2h0Lnko
KSAtIHRvcExlZnQueSgpICsgMTsKLX0KLQotYm9vbCBJbnRSZWN0Ojppc051bGwoKSBjb25zdAot
ewotICAgIHJldHVybiB3ID09IDAgJiYgaCA9PSAwOwotfQotCi1ib29sIEludFJlY3Q6OmlzVmFs
aWQoKSBjb25zdAorYm9vbCBJbnRSZWN0OjppbnRlcnNlY3RzKGNvbnN0IEludFJlY3QmIG90aGVy
KSBjb25zdAogewotICAgIHJldHVybiB3ID4gMCAmJiBoID4gMDsKKyAgICAvLyBDaGVja2luZyBl
bXB0aW5lc3MgaGFuZGxlcyBuZWdhdGl2ZSB3aWR0aHMgYXMgd2VsbCBhcyB6ZXJvLgorICAgIHJl
dHVybiAhaXNFbXB0eSgpICYmICFvdGhlci5pc0VtcHR5KCkKKyAgICAgICAgJiYgeCgpIDwgb3Ro
ZXIucmlnaHQoKSAmJiBvdGhlci54KCkgPCByaWdodCgpCisgICAgICAgICYmIHkoKSA8IG90aGVy
LmJvdHRvbSgpICYmIG90aGVyLnkoKSA8IGJvdHRvbSgpOwogfQogCi1ib29sIEludFJlY3Q6Omlz
RW1wdHkoKSBjb25zdAorYm9vbCBJbnRSZWN0Ojpjb250YWlucyhjb25zdCBJbnRSZWN0JiBvdGhl
cikgY29uc3QKIHsKLSAgICByZXR1cm4gdyA8PSAwIHx8IGggPD0gMDsKKyAgICByZXR1cm4geCgp
IDw9IG90aGVyLngoKSAmJiByaWdodCgpID49IG90aGVyLnJpZ2h0KCkKKyAgICAgICAgJiYgeSgp
IDw9IG90aGVyLnkoKSAmJiBib3R0b20oKSA+PSBvdGhlci5ib3R0b20oKTsKIH0KIAotaW50IElu
dFJlY3Q6OnJpZ2h0KCkgY29uc3QKK3ZvaWQgSW50UmVjdDo6aW50ZXJzZWN0KGNvbnN0IEludFJl
Y3QmIG90aGVyKQogewotICAgIHJldHVybiB4cCArIHcgLSAxOwotfQotCi1pbnQgSW50UmVjdDo6
Ym90dG9tKCkgY29uc3QKLXsKLSAgICByZXR1cm4geXAgKyBoIC0gMTsKLX0KLQotSW50UG9pbnQg
SW50UmVjdDo6dG9wTGVmdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEludFBvaW50KHhwLHlwKTsK
LX0KLQotSW50UG9pbnQgSW50UmVjdDo6dG9wUmlnaHQoKSBjb25zdAotewotICAgIHJldHVybiBJ
bnRQb2ludChyaWdodCgpLHRvcCgpKTsKLX0KKyAgICBpbnQgbCA9IG1heCh4KCksIG90aGVyLngo
KSk7CisgICAgaW50IHQgPSBtYXgoeSgpLCBvdGhlci55KCkpOworICAgIGludCByID0gbWluKHJp
Z2h0KCksIG90aGVyLnJpZ2h0KCkpOworICAgIGludCBiID0gbWluKGJvdHRvbSgpLCBvdGhlci5i
b3R0b20oKSk7CiAKLUludFBvaW50IEludFJlY3Q6OmJvdHRvbVJpZ2h0KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gSW50UG9pbnQocmlnaHQoKSxib3R0b20oKSk7CisgICAgLy8gUmV0dXJuIGEgY2xl
YW4gZW1wdHkgcmVjdGFuZ2xlIGZvciBub24taW50ZXJzZWN0aW5nIGNhc2VzLgorICAgIGlmIChs
ID49IHIgfHwgdCA+PSBiKSB7CisgICAgICAgIGwgPSAwOworICAgICAgICB0ID0gMDsKKyAgICAg
ICAgciA9IDA7CisgICAgICAgIGIgPSAwOwogfQogCi1JbnRQb2ludCBJbnRSZWN0Ojpib3R0b21M
ZWZ0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW50UG9pbnQobGVmdCgpLGJvdHRvbSgpKTsKKyAg
ICBtX2xvY2F0aW9uLnNldFgobCk7CisgICAgbV9sb2NhdGlvbi5zZXRZKHQpOworICAgIG1fc2l6
ZS5zZXRXaWR0aChyIC0gbCk7CisgICAgbV9zaXplLnNldEhlaWdodChiIC0gdCk7CiB9CiAKLUlu
dFNpemUgSW50UmVjdDo6c2l6ZSgpIGNvbnN0Cit2b2lkIEludFJlY3Q6OnVuaXRlKGNvbnN0IElu
dFJlY3QmIG90aGVyKQogewotICAgIHJldHVybiBJbnRTaXplKHcsaCk7CisgICAgLy8gSGFuZGxl
IGVtcHR5IHNwZWNpYWwgY2FzZXMgZmlyc3QuCisgICAgaWYgKG90aGVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAgICAgKnRoaXMgPSBvdGhl
cjsKKyAgICAgICAgcmV0dXJuOwogfQogCi1JbnRSZWN0IEludFJlY3Q6OnVuaXRlKGNvbnN0IElu
dFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgaWYgKHIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
KnRoaXM7Ci0gICAgCi0gICAgaWYgKGlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHI7Ci0KLSAg
ICBpbnQgbngsIG55LCBudywgbmg7Ci0KLSAgICBueCA9IG1pbih4cCwgci54cCk7Ci0gICAgbnkg
PSBtaW4oeXAsIHIueXApOworICAgIGludCBsID0gbWluKHgoKSwgb3RoZXIueCgpKTsKKyAgICBp
bnQgdCA9IG1pbih5KCksIG90aGVyLnkoKSk7CisgICAgaW50IHIgPSBtYXgocmlnaHQoKSwgb3Ro
ZXIucmlnaHQoKSk7CisgICAgaW50IGIgPSBtYXgoYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsK
IAotICAgIGlmICh4cCArIHcgPj0gci54cCArIHIudykgewotICAgICAgICBudyA9IHhwICsgdyAt
IG54OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG53ID0gci54cCArIHIudyAtIG54OyAKLSAgICB9
Ci0KLSAgICBpZiAoeXAgKyBoID49IHIueXAgKyByLmgpIHsKLSAgICAgICAgbmggPSB5cCArIGgg
LSBueTsKLSAgICB9IGVsc2UgewotICAgICAgICBuaCA9IHIueXAgKyByLmggLSBueTsgCi0gICAg
fQotCi0gICAgcmV0dXJuIEludFJlY3QobngsIG55LCBudywgbmgpOwotfQotCi1JbnRSZWN0IElu
dFJlY3Q6Om5vcm1hbGl6ZSgpIGNvbnN0Ci17Ci0gICAgSW50UmVjdCBuZXdSZWN0OwotICAgIAot
ICAgIG5ld1JlY3QueHAgID0gKHcgPCAwKSA/ICh4cCAtIHcpIDogeHA7Ci0gICAgbmV3UmVjdC53
ICAgPSAodyA8IDApID8gLXcgOiB3OwotICAgIAotICAgIG5ld1JlY3QueXAgID0gKGggPCAwKSA/
ICh5cCAtIGgpIDogeXA7Ci0gICAgbmV3UmVjdC5oICAgPSAoaCA8IDApID8gLWggOiBoOwotICAg
IAotICAgIHJldHVybiBuZXdSZWN0OwotfQotCi1ib29sIEludFJlY3Q6OmludGVyc2VjdHMoY29u
c3QgSW50UmVjdCAmcikgY29uc3QKLXsKLSAgICByZXR1cm4gaW50ZXJzZWN0KHIpLmlzVmFsaWQo
KTsKLX0KLQotSW50UmVjdCBJbnRSZWN0OjppbnRlcnNlY3QoY29uc3QgSW50UmVjdCAmcikgY29u
c3QKLXsKLSAgICBpbnQgbngsIG55LCBudywgbmg7Ci0KLSAgICBueCA9IG1heCh4cCwgci54cCk7
Ci0gICAgbnkgPSBtYXgoeXAsIHIueXApOwotCi0gICAgaWYgKHhwICsgdyA8PSByLnhwICsgci53
KSB7Ci0gICAgICAgIG53ID0geHAgKyB3IC0gbng7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbncg
PSByLnhwICsgci53IC0gbng7IAotICAgIH0KLQotICAgIGlmICh5cCArIGggPD0gci55cCArIHIu
aCkgewotICAgICAgICBuaCA9IHlwICsgaCAtIG55OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5o
ID0gci55cCArIHIuaCAtIG55OyAKLSAgICB9Ci0KLSAgICByZXR1cm4gSW50UmVjdChueCwgbnks
IG53LCBuaCk7Ci19Ci0KLXZvaWQgSW50UmVjdDo6aW5mbGF0ZShpbnQgcykKLXsKLSAgICB4cCAt
PSBzOwotICAgIHlwIC09IHM7Ci0gICAgdyArPSAyKnM7Ci0gICAgaCArPSAyKnM7Ci19Ci0KLWJv
b2wgb3BlcmF0b3I9PShjb25zdCBJbnRSZWN0ICZhLCBjb25zdCBJbnRSZWN0ICZiKQotewotICAg
IHJldHVybiBhLnhwID09IGIueHAgJiYgYS55cCA9PSBiLnlwICYmIGEudyA9PSBiLncgJiYgYS5o
ID09IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFJlY3QgJmEsIGNvbnN0IElu
dFJlY3QgJmIpCi17Ci0gICAgcmV0dXJuICEoYSA9PSBiKTsKKyAgICBtX2xvY2F0aW9uLnNldFgo
bCk7CisgICAgbV9sb2NhdGlvbi5zZXRZKHQpOworICAgIG1fc2l6ZS5zZXRXaWR0aChyIC0gbCk7
CisgICAgbV9zaXplLnNldEhlaWdodChiIC0gdCk7CiB9CiAKIH0KSW5kZXg6IHBsYXRmb3JtL0lu
dFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50UG9pbnQuaAkocmV2aXNpb24gMTI0
NjcpCisrKyBwbGF0Zm9ybS9JbnRQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNC02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNyw1OCArMjcsODUgQEAKICNkZWZpbmUgSU5UUE9JTlRfSF8KIAog
I2lmIF9fQVBQTEVfXworCit0eXBlZGVmIHN0cnVjdCBDR1BvaW50IENHUG9pbnQ7CisKIC8vIHdv
cmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgogI2lmICEgX19MUDY0X18gJiYg
ISBOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBOU1BvaW50OwogI2Vsc2UKIHR5cGVkZWYg
c3RydWN0IF9OU1BvaW50IE5TUG9pbnQ7CiAjZW5kaWYKLXR5cGVkZWYgc3RydWN0IENHUG9pbnQg
Q0dQb2ludDsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW50UG9p
bnQgewogcHVibGljOgotICAgIEludFBvaW50KCk7Ci0gICAgSW50UG9pbnQoaW50LCBpbnQpOwor
ICAgIEludFBvaW50KCkgOiBtX3goMCksIG1feSgwKSB7IH0KKyAgICBJbnRQb2ludChpbnQgeCwg
aW50IHkpIDogbV94KHgpLCBtX3koeSkgeyB9CiAgICAgCi0jaWYgX19BUFBMRV9fCi0jaWZuZGVm
IE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAgZXhwbGljaXQg
SW50UG9pbnQoY29uc3QgTlNQb2ludCAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNp
bmNlIGl0J3MgbG9zc3kKLSNlbmRpZgotICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IENHUG9p
bnQgJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5Ci0jZW5k
aWYKKyAgICBpbnQgeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsgfQorICAgIGludCB5KCkgY29uc3Qg
eyByZXR1cm4gbV95OyB9CiAKLSAgICBpbnQgeCgpIGNvbnN0IHsgcmV0dXJuIHhDb29yZDsgfQot
ICAgIGludCB5KCkgY29uc3QgeyByZXR1cm4geUNvb3JkOyB9CisgICAgdm9pZCBzZXRYKGludCB4
KSB7IG1feCA9IHg7IH0KKyAgICB2b2lkIHNldFkoaW50IHkpIHsgbV95ID0geTsgfQogICAgIAot
ICAgIHZvaWQgc2V0WChpbnQgeCkgeyB4Q29vcmQgPSB4OyB9Ci0gICAgdm9pZCBzZXRZKGludCB5
KSB7IHlDb29yZCA9IHk7IH0KLSAgICAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJu
IHhDb29yZCA9PSAwICYmIHlDb29yZCA9PSAwOyB9CisjaWYgX19BUFBMRV9fCiAgICAgCi0gICAg
SW50UG9pbnQgJm9wZXJhdG9yIC09KGNvbnN0IEludFBvaW50ICZ0d28pIHsgeENvb3JkIC09IHR3
by54Q29vcmQ7IHlDb29yZCAtPSB0d28ueUNvb3JkOyByZXR1cm4gKnRoaXM7IH0KLSAgICBmcmll
bmQgY29uc3QgSW50UG9pbnQgb3BlcmF0b3IqKGNvbnN0IEludFBvaW50ICZwLCBkb3VibGUgcyk7
Ci0gICAgZnJpZW5kIEludFBvaW50IG9wZXJhdG9yKyhjb25zdCBJbnRQb2ludCAmLCBjb25zdCBJ
bnRQb2ludCAmKTsKLSAgICBmcmllbmQgSW50UG9pbnQgb3BlcmF0b3ItKGNvbnN0IEludFBvaW50
ICYsIGNvbnN0IEludFBvaW50ICYpOworICAgIGV4cGxpY2l0IEludFBvaW50KGNvbnN0IENHUG9p
bnQmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKKyAgICBv
cGVyYXRvciBDR1BvaW50KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExFX18gICAgCi0jaWZuZGVmIE5T
R0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisgICAgZXhwbGljaXQgSW50UG9pbnQoY29u
c3QgTlNQb2ludCYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3Nz
eQogICAgIG9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENH
UG9pbnQoKSBjb25zdDsKKwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgaW50IHhDb29yZDsKLSAg
ICBpbnQgeUNvb3JkOworICAgIGludCBtX3gsIG1feTsKIH07CiAKK2lubGluZSBJbnRQb2ludCYg
b3BlcmF0b3IrPShJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQmIGIpCit7CisgICAgYS5zZXRY
KGEueCgpICsgYi54KCkpOworICAgIGEuc2V0WShhLnkoKSArIGIueSgpKTsKKyAgICByZXR1cm4g
YTsKK30KKworaW5saW5lIEludFBvaW50JiBvcGVyYXRvci09KEludFBvaW50JiBhLCBjb25zdCBJ
bnRQb2ludCYgYikKK3sKKyAgICBhLnNldFgoYS54KCkgLSBiLngoKSk7CisgICAgYS5zZXRZKGEu
eSgpIC0gYi55KCkpOworICAgIHJldHVybiBhOworfQorCitpbmxpbmUgSW50UG9pbnQgb3BlcmF0
b3IrKGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikKK3sKKyAgICByZXR1cm4g
SW50UG9pbnQoYS54KCkgKyBiLngoKSwgYS55KCkgKyBiLnkoKSk7Cit9CisKK2lubGluZSBJbnRQ
b2ludCBvcGVyYXRvci0oY29uc3QgSW50UG9pbnQmIGEsIGNvbnN0IEludFBvaW50JiBiKQorewor
ICAgIHJldHVybiBJbnRQb2ludChhLngoKSAtIGIueCgpLCBhLnkoKSAtIGIueSgpKTsKK30KKwor
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRQb2ludCYgYSwgY29uc3QgSW50UG9pbnQm
IGIpCit7CisgICAgcmV0dXJuIGEueCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQor
CitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2lu
dCYgYikKK3sKKyAgICByZXR1cm4gYS54KCkgIT0gYi54KCkgfHwgYS55KCkgIT0gYi55KCk7Cit9
CisKIH0KIAogLy8gRklYTUU6IFJlbW92ZSB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdlYkNv
cmUgbmFtZXNwYWNlLgpJbmRleDogcGxhdGZvcm0vbWFjL0ludFJlY3QubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGxhdGZvcm0vbWFjL0ludFJlY3QubW0JKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0v
bWFjL0ludFJlY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAgLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQs
MzUgKzI0LDQwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2ltcG9ydCAiSW50UmVj
dC5oIgotCi0jaW1wb3J0IDxhbGdvcml0aG0+Ci0KLXVzaW5nIHN0ZDo6bWF4OwotdXNpbmcgc3Rk
OjptaW47CisjaW5jbHVkZSAiSW50UmVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
Zm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUludFJlY3Q6
OkludFJlY3QoY29uc3QgTlNSZWN0ICZyKSA6IHhwKChpbnQpci5vcmlnaW4ueCksIHlwKChpbnQp
ci5vcmlnaW4ueSksIHcoKGludClyLnNpemUud2lkdGgpLCBoKChpbnQpci5zaXplLmhlaWdodCkK
K0ludFJlY3Q6Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHUmVjdE1h
a2UoeCgpLCB5KCksIHdpZHRoKCksIGhlaWdodCgpKTsKIH0KLSNlbmRpZgogCi1JbnRSZWN0OjpJ
bnRSZWN0KGNvbnN0IENHUmVjdCAmcikgOiB4cCgoaW50KXIub3JpZ2luLngpLCB5cCgoaW50KXIu
b3JpZ2luLnkpLCB3KChpbnQpci5zaXplLndpZHRoKSwgaCgoaW50KXIuc2l6ZS5oZWlnaHQpCitJ
bnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgQ0dSZWN0JiByZWN0KQogeworICAgIGludCBs
ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC5vcmlnaW4ueCkpOworICAgIGludCB0ID0g
c3RhdGljX2Nhc3Q8aW50PihmbG9vcmYocmVjdC5vcmlnaW4ueSkpOworICAgIGludCByID0gc3Rh
dGljX2Nhc3Q8aW50PihjZWlsZihDR1JlY3RHZXRNYXhYKHJlY3QpKSk7CisgICAgaW50IGIgPSBz
dGF0aWNfY2FzdDxpbnQ+KGNlaWxmKENHUmVjdEdldE1heFkocmVjdCkpKTsKKyAgICByZXR1cm4g
SW50UmVjdChsLCB0LCByIC0gbCwgYiAtIHQpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQ
RVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgIU5TR0VPTUVUUllfVFlQRVNfU0FNRV9B
U19DR0dFT01FVFJZX1RZUEVTCisKIEludFJlY3Q6Om9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIE5TTWFrZVJlY3QoeHAsIHlwLCB3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtl
UmVjdCh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkpOwogfQotI2VuZGlmCiAKLUludFJlY3Q6
Om9wZXJhdG9yIENHUmVjdCgpIGNvbnN0CitJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3Qg
TlNSZWN0JiByZWN0KQogewotICAgIHJldHVybiBDR1JlY3RNYWtlKHhwLCB5cCwgdywgaCk7Cisg
ICAgaW50IGwgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9yaWdpbi54KSk7CisgICAg
aW50IHQgPSBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihyZWN0Lm9yaWdpbi55KSk7CisgICAgaW50
IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKE5TTWF4WChyZWN0KSkpOworICAgIGludCBiID0g
c3RhdGljX2Nhc3Q8aW50PihjZWlsZihOU01heFkocmVjdCkpKTsKKyAgICByZXR1cm4gSW50UmVj
dChsLCB0LCByIC0gbCwgYiAtIHQpOwogfQogCisjZW5kaWYKKwogfQpJbmRleDogcGxhdGZvcm0v
bWFjL0Zsb2F0UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vbWFjL0Zsb2F0UG9pbnQu
bW0JKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vbWFjL0Zsb2F0UG9pbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI5LDI2ICsyOSwyNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
Zm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLUZsb2F0UG9p
bnQ6OkZsb2F0UG9pbnQoY29uc3QgTlNQb2ludCYgcCkgOiB4Q29vcmQocC54KSwgeUNvb3JkKHAu
eSkKK0Zsb2F0UG9pbnQ6OkZsb2F0UG9pbnQoY29uc3QgQ0dQb2ludCYgcCkgOiBtX3gocC54KSwg
bV95KHAueSkKIHsKIH0KLSNlbmRpZgogCi1GbG9hdFBvaW50OjpGbG9hdFBvaW50KGNvbnN0IENH
UG9pbnQmIHApIDogeENvb3JkKHAueCksIHlDb29yZChwLnkpCitGbG9hdFBvaW50OjpvcGVyYXRv
ciBDR1BvaW50KCkgY29uc3QKIHsKKyAgICByZXR1cm4gQ0dQb2ludE1ha2UobV94LCBtX3kpOwog
fQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1G
bG9hdFBvaW50OjpvcGVyYXRvciBOU1BvaW50KCkgY29uc3QKKyNpZiAhTlNHRU9NRVRSWV9UWVBF
U19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKworRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25z
dCBOU1BvaW50JiBwKSA6IG1feChwLngpLCBtX3kocC55KQogewotICAgIHJldHVybiBOU01ha2VQ
b2ludCh4Q29vcmQsIHlDb29yZCk7CiB9Ci0jZW5kaWYKIAotRmxvYXRQb2ludDo6b3BlcmF0b3Ig
Q0dQb2ludCgpIGNvbnN0CitGbG9hdFBvaW50OjpvcGVyYXRvciBOU1BvaW50KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gQ0dQb2ludE1ha2UoeENvb3JkLCB5Q29vcmQpOworICAgIHJldHVybiBOU01h
a2VQb2ludChtX3gsIG1feSk7CiB9CiAKKyNlbmRpZgorCiB9CkluZGV4OiBwbGF0Zm9ybS9tYWMv
RmxvYXRTaXplLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9GbG9hdFNpemUubW0JKHJl
dmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vbWFjL0Zsb2F0U2l6ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjksMjYgKzI5LDI2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBO
U0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotRmxvYXRTaXplOjpGbG9h
dFNpemUoY29uc3QgTlNTaXplJiBzKSA6IHcocy53aWR0aCksIGgocy5oZWlnaHQpCitGbG9hdFNp
emU6OkZsb2F0U2l6ZShjb25zdCBDR1NpemUmIHMpIDogbV93aWR0aChzLndpZHRoKSwgbV9oZWln
aHQocy5oZWlnaHQpCiB7CiB9Ci0jZW5kaWYKIAotRmxvYXRTaXplOjpGbG9hdFNpemUoY29uc3Qg
Q0dTaXplJiBzKSA6IHcocy53aWR0aCksIGgocy5oZWlnaHQpCitGbG9hdFNpemU6Om9wZXJhdG9y
IENHU2l6ZSgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHU2l6ZU1ha2UobV93aWR0aCwgbV9oZWln
aHQpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi1GbG9hdFNpemU6Om9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0CisjaWYgIU5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0Zsb2F0U2l6ZTo6RmxvYXRTaXplKGNv
bnN0IE5TU2l6ZSYgcykgOiBtX3dpZHRoKHMud2lkdGgpLCBtX2hlaWdodChzLmhlaWdodCkKIHsK
LSAgICByZXR1cm4gTlNNYWtlU2l6ZSh3LCBoKTsKIH0KLSNlbmRpZgogCi1GbG9hdFNpemU6Om9w
ZXJhdG9yIENHU2l6ZSgpIGNvbnN0CitGbG9hdFNpemU6Om9wZXJhdG9yIE5TU2l6ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIENHU2l6ZU1ha2UodywgaCk7CisgICAgcmV0dXJuIE5TTWFrZVNpemUo
bV93aWR0aCwgbV9oZWlnaHQpOwogfQogCisjZW5kaWYKKwogfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IHBsYXRmb3JtL21hYy9JbWFnZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0
Zm9ybS9tYWMvSW1hZ2UubW0JKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vbWFjL0ltYWdl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNCArMjMsMTQgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
SW1hZ2UuaCIKLSNpbXBvcnQgIkludFNpemUuaCIKLSNpbXBvcnQgIkludFJlY3QuaCIKIAorI2lt
cG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiS1dRRm91bmRhdGlvbkV4dHJhcy5oIgogI2ltcG9y
dCAiV2ViQ29yZUltYWdlUmVuZGVyZXIuaCIKICNpbXBvcnQgIldlYkNvcmVJbWFnZVJlbmRlcmVy
RmFjdG9yeS5oIgorI2ltcG9ydCA8cXN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
SW5kZXg6IHBsYXRmb3JtL21hYy9GbG9hdFJlY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0v
bWFjL0Zsb2F0UmVjdC5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBwbGF0Zm9ybS9tYWMvRmxvYXRS
ZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyNiArMjksMjYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi1GbG9hdFJlY3Q6OkZsb2F0UmVjdChjb25zdCBOU1JlY3QgJnIpIDogeHAoci5vcmlnaW4u
eCksIHlwKHIub3JpZ2luLnkpLCB3KHIuc2l6ZS53aWR0aCksIGgoci5zaXplLmhlaWdodCkKK0Zs
b2F0UmVjdDo6RmxvYXRSZWN0KGNvbnN0IENHUmVjdCYgcikgOiBtX2xvY2F0aW9uKHIub3JpZ2lu
KSwgbV9zaXplKHIuc2l6ZSkKIHsKIH0KLSNlbmRpZgogCi1GbG9hdFJlY3Q6OkZsb2F0UmVjdChj
b25zdCBDR1JlY3QgJnIpIDogeHAoci5vcmlnaW4ueCksIHlwKHIub3JpZ2luLnkpLCB3KHIuc2l6
ZS53aWR0aCksIGgoci5zaXplLmhlaWdodCkKK0Zsb2F0UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkg
Y29uc3QKIHsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZSh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0
KCkpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZ
UEVTCi1GbG9hdFJlY3Q6Om9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0CisjaWYgIU5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0Zsb2F0UmVjdDo6RmxvYXRSZWN0KGNv
bnN0IE5TUmVjdCYgcikgOiBtX2xvY2F0aW9uKHIub3JpZ2luKSwgbV9zaXplKHIuc2l6ZSkKIHsK
LSAgICByZXR1cm4gTlNNYWtlUmVjdCh4cCwgeXAsIHcsIGgpOwogfQotI2VuZGlmCiAKLUZsb2F0
UmVjdDo6b3BlcmF0b3IgQ0dSZWN0KCkgY29uc3QKK0Zsb2F0UmVjdDo6b3BlcmF0b3IgTlNSZWN0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ0dSZWN0TWFrZSh4cCwgeXAsIHcsIGgpOworICAgIHJl
dHVybiBOU01ha2VSZWN0KHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7CiB9CiAKKyNlbmRp
ZgorCiB9CkluZGV4OiBwbGF0Zm9ybS9tYWMvSW50UG9pbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxh
dGZvcm0vbWFjL0ludFBvaW50Lm1tCShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRmb3JtL21hYy9J
bnRQb2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDUgQEAKLSAKICAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA0LTYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI1LDMxICsyNCwzMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbXBvcnQg
IkludFBvaW50LmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1J
bnRQb2ludDo6SW50UG9pbnQoY29uc3QgTlNQb2ludCAmcCkgOiB4Q29vcmQoKGludClwLngpLCB5
Q29vcmQoKGludClwLnkpCitJbnRQb2ludDo6SW50UG9pbnQoY29uc3QgQ0dQb2ludCYgcCkgOiBt
X3goc3RhdGljX2Nhc3Q8aW50PihwLngpKSwgbV95KHN0YXRpY19jYXN0PGludD4ocC55KSkKIHsK
IH0KLSNlbmRpZgogCi1JbnRQb2ludDo6SW50UG9pbnQoY29uc3QgQ0dQb2ludCAmcCkgOiB4Q29v
cmQoKGludClwLngpLCB5Q29vcmQoKGludClwLnkpCitJbnRQb2ludDo6b3BlcmF0b3IgQ0dQb2lu
dCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIENHUG9pbnRNYWtlKG1feCwgbV95KTsKIH0KIAotI2lm
bmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotSW50UG9pbnQ6
Om9wZXJhdG9yIE5TUG9pbnQoKSBjb25zdAorI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUworCitJbnRQb2ludDo6SW50UG9pbnQoY29uc3QgTlNQb2ludCYgcCkg
OiBtX3goc3RhdGljX2Nhc3Q8aW50PihwLngpKSwgbV95KHN0YXRpY19jYXN0PGludD4ocC55KSkK
IHsKLSAgICByZXR1cm4gTlNNYWtlUG9pbnQoeENvb3JkLCB5Q29vcmQpOwogfQotI2VuZGlmCiAK
LUludFBvaW50OjpvcGVyYXRvciBDR1BvaW50KCkgY29uc3QKK0ludFBvaW50OjpvcGVyYXRvciBO
U1BvaW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ0dQb2ludE1ha2UoeENvb3JkLCB5Q29vcmQp
OworICAgIHJldHVybiBOU01ha2VQb2ludChtX3gsIG1feSk7CiB9CiAKKyNlbmRpZgogCiB9Cklu
ZGV4OiBwbGF0Zm9ybS9tYWMvSW50U2l6ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9tYWMv
SW50U2l6ZS5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBwbGF0Zm9ybS9tYWMvSW50U2l6ZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMt
NiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMjYg
KzI4LDI2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmbmRlZiBOU0dFT01FVFJZX1RZ
UEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotSW50U2l6ZTo6SW50U2l6ZShjb25zdCBOU1Np
emUgJnMpIDogdygoaW50KXMud2lkdGgpLCBoKChpbnQpcy5oZWlnaHQpCitJbnRTaXplOjpJbnRT
aXplKGNvbnN0IENHU2l6ZSYgcykgOiBtX3dpZHRoKHN0YXRpY19jYXN0PGludD4ocy53aWR0aCkp
LCBtX2hlaWdodChzdGF0aWNfY2FzdDxpbnQ+KHMuaGVpZ2h0KSkKIHsKIH0KLSNlbmRpZgogCi1J
bnRTaXplOjpJbnRTaXplKGNvbnN0IENHU2l6ZSAmcykgOiB3KChpbnQpcy53aWR0aCksIGgoKGlu
dClzLmhlaWdodCkKK0ludFNpemU6Om9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0CiB7CisgICAgcmV0
dXJuIENHU2l6ZU1ha2UobV93aWR0aCwgbV9oZWlnaHQpOwogfQogCi0jaWZuZGVmIE5TR0VPTUVU
UllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi1JbnRTaXplOjpvcGVyYXRvciBOU1Np
emUoKSBjb25zdAorI2lmICFOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBF
UworCitJbnRTaXplOjpJbnRTaXplKGNvbnN0IE5TU2l6ZSYgcykgOiBtX3dpZHRoKHN0YXRpY19j
YXN0PGludD4ocy53aWR0aCkpLCBtX2hlaWdodChzdGF0aWNfY2FzdDxpbnQ+KHMuaGVpZ2h0KSkK
IHsKLSAgICByZXR1cm4gTlNNYWtlU2l6ZSh3LCBoKTsKIH0KLSNlbmRpZgogCi1JbnRTaXplOjpv
cGVyYXRvciBDR1NpemUoKSBjb25zdAorSW50U2l6ZTo6b3BlcmF0b3IgTlNTaXplKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gQ0dTaXplTWFrZSh3LCBoKTsKKyAgICByZXR1cm4gTlNNYWtlU2l6ZSht
X3dpZHRoLCBtX2hlaWdodCk7CiB9CiAKKyNlbmRpZgorCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpJbmRleDogcGxhdGZvcm0vRmxvYXRQb2ludC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRm
b3JtL0Zsb2F0UG9pbnQuaAkocmV2aXNpb24gMTI0NjcpCisrKyBwbGF0Zm9ybS9GbG9hdFBvaW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE3ICsyOCwyMCBAQAogI2RlZmluZSBGTE9BVFBPSU5U
X0hfCiAKICNpZiBfX0FQUExFX18KKwordHlwZWRlZiBzdHJ1Y3QgQ0dQb2ludCBDR1BvaW50Owor
CiAvLyB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNDI5NDYyNT4KICNpZiAhIF9fTFA2
NF9fICYmICEgTlNfQlVJTERfMzJfTElLRV82NAogI3VuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FN
RV9BU19DR0dFT01FVFJZX1RZUEVTCiAjZW5kaWYKIAotI2lmZGVmIE5TR0VPTUVUUllfVFlQRVNf
U0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisjaWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKIHR5cGVkZWYgc3RydWN0IENHUG9pbnQgTlNQb2ludDsKICNlbHNlCiB0
eXBlZGVmIHN0cnVjdCBfTlNQb2ludCBOU1BvaW50OwogI2VuZGlmCi10eXBlZGVmIHN0cnVjdCBD
R1BvaW50IENHUG9pbnQ7CisKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw0
MiArNTAsNjYgQEAKIAogY2xhc3MgRmxvYXRQb2ludCB7CiBwdWJsaWM6Ci0gICAgRmxvYXRQb2lu
dCgpOwotICAgIEZsb2F0UG9pbnQoZmxvYXQsIGZsb2F0KTsKKyAgICBGbG9hdFBvaW50KCkgOiBt
X3goMCksIG1feSgwKSB7IH0KKyAgICBGbG9hdFBvaW50KGZsb2F0IHgsIGZsb2F0IHkpIDogbV94
KHgpLCBtX3koeSkgeyB9CiAgICAgRmxvYXRQb2ludChjb25zdCBJbnRQb2ludCYpOwogICAgIAot
I2lmIF9fQVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUwotICAgIGV4cGxpY2l0IEZsb2F0UG9pbnQoY29uc3QgTlNQb2ludCYpOwotI2VuZGlm
Ci0gICAgZXhwbGljaXQgRmxvYXRQb2ludChjb25zdCBDR1BvaW50Jik7Ci0jZW5kaWYKLQotICAg
IGZsb2F0IHgoKSBjb25zdCB7IHJldHVybiB4Q29vcmQ7IH0KLSAgICBmbG9hdCB5KCkgY29uc3Qg
eyByZXR1cm4geUNvb3JkOyB9CisgICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsgfQor
ICAgIGZsb2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KIAotICAgIHZvaWQgc2V0WChpbnQg
eCkgeyB4Q29vcmQgPSB4OyB9Ci0gICAgdm9pZCBzZXRZKGludCB5KSB7IHlDb29yZCA9IHk7IH0K
KyAgICB2b2lkIHNldFgoZmxvYXQgeCkgeyBtX3ggPSB4OyB9CisgICAgdm9pZCBzZXRZKGZsb2F0
IHkpIHsgbV95ID0geTsgfQogCi0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiB4Q29v
cmQgPT0gMC4wZiAmJiB5Q29vcmQgPT0gMC4wZjsgfQorI2lmIF9fQVBQTEVfXwogCi0gICAgRmxv
YXRQb2ludCYgb3BlcmF0b3IgLT0oY29uc3QgRmxvYXRQb2ludCYgdHdvKSB7IHhDb29yZCAtPSB0
d28ueENvb3JkOyB5Q29vcmQgLT0gdHdvLnlDb29yZDsgcmV0dXJuICp0aGlzOyB9Ci0gICAgZnJp
ZW5kIGNvbnN0IEZsb2F0UG9pbnQgb3BlcmF0b3IqKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGRvdWJs
ZSBzKTsKLSAgICBmcmllbmQgRmxvYXRQb2ludCBvcGVyYXRvcisoY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0UG9pbnQmKTsKLSAgICBmcmllbmQgRmxvYXRQb2ludCBvcGVyYXRvci0oY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKKyAgICBGbG9hdFBvaW50KGNvbnN0
IENHUG9pbnQmKTsKKyAgICBvcGVyYXRvciBDR1BvaW50KCkgY29uc3Q7CiAKLSNpZiBfX0FQUExF
X18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyNp
ZiAhTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyAgICBGbG9hdFBv
aW50KGNvbnN0IE5TUG9pbnQmKTsKICAgICBvcGVyYXRvciBOU1BvaW50KCkgY29uc3Q7CiAjZW5k
aWYKLSAgICBvcGVyYXRvciBDR1BvaW50KCkgY29uc3Q7CisKICNlbmRpZgogCiBwcml2YXRlOgot
ICAgIGZsb2F0IHhDb29yZDsKLSAgICBmbG9hdCB5Q29vcmQ7CisgICAgZmxvYXQgbV94LCBtX3k7
CiB9OwogCitpbmxpbmUgRmxvYXRQb2ludCYgb3BlcmF0b3IrPShGbG9hdFBvaW50JiBhLCBjb25z
dCBGbG9hdFBvaW50JiBiKQoreworICAgIGEuc2V0WChhLngoKSArIGIueCgpKTsKKyAgICBhLnNl
dFkoYS55KCkgKyBiLnkoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBGbG9hdFBvaW50
JiBvcGVyYXRvci09KEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIpCit7CisgICAg
YS5zZXRYKGEueCgpIC0gYi54KCkpOworICAgIGEuc2V0WShhLnkoKSAtIGIueSgpKTsKKyAgICBy
ZXR1cm4gYTsKK30KKworaW5saW5lIEZsb2F0UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEZsb2F0UG9p
bnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQmIGIpCit7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYS54
KCkgKyBiLngoKSwgYS55KCkgKyBiLnkoKSk7Cit9CisKK2lubGluZSBGbG9hdFBvaW50IG9wZXJh
dG9yLShjb25zdCBGbG9hdFBvaW50JiBhLCBjb25zdCBGbG9hdFBvaW50JiBiKQoreworICAgIHJl
dHVybiBGbG9hdFBvaW50KGEueCgpIC0gYi54KCksIGEueSgpIC0gYi55KCkpOworfQorCitpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0UG9pbnQm
IGIpCit7CisgICAgcmV0dXJuIGEueCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQor
CitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UG9pbnQmIGEsIGNvbnN0IEZsb2F0
UG9pbnQmIGIpCit7CisgICAgcmV0dXJuIGEueCgpICE9IGIueCgpIHx8IGEueSgpICE9IGIueSgp
OworfQorCiB9CiAKIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBX
ZWJDb3JlIG5hbWVzcGFjZS4KSW5kZXg6IHBsYXRmb3JtL0ludFNpemUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHBsYXRmb3JtL0ludFNpemUuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRmb3JtL0lu
dFNpemUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDMtNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkludFNpemUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1JbnRTaXplOjpJbnRTaXplKCkgOiB3KC0xKSwgaCgtMSkKLXsK
LX0KLQotSW50U2l6ZTo6SW50U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIDogdyh3aWR0aCks
IGgoaGVpZ2h0KQotewotfQotCi1ib29sIEludFNpemU6OmlzVmFsaWQoKSBjb25zdAotewotICAg
IHJldHVybiB3ID49IDAgJiYgaCA+PSAwOwotfQotCi1JbnRTaXplIEludFNpemU6OmV4cGFuZGVk
VG8oY29uc3QgSW50U2l6ZSAmbykgY29uc3QKLXsKLSAgICByZXR1cm4gSW50U2l6ZSh3ID4gby53
ID8gdyA6IG8udywgaCA+IG8uaCA/IGggOiBvLmgpOwotfQotCi1JbnRTaXplIG9wZXJhdG9yKyhj
b25zdCBJbnRTaXplICZhLCBjb25zdCBJbnRTaXplICZiKQotewotICAgIHJldHVybiBJbnRTaXpl
KGEudyArIGIudywgYS5oICsgYi5oKTsKLX0KLQotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFNp
emUgJmEsIGNvbnN0IEludFNpemUgJmIpCi17Ci0gICAgcmV0dXJuIGEudyA9PSBiLncgJiYgYS5o
ID09IGIuaDsKLX0KLQotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFNpemUgJmEsIGNvbnN0IElu
dFNpemUgJmIpCi17Ci0gICAgcmV0dXJuIGEudyAhPSBiLncgfHwgYS5oICE9IGIuaDsKLX0KLQot
fQpJbmRleDogcGxhdGZvcm0vRmxvYXRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vRmxv
YXRSZWN0LmgJKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vRmxvYXRSZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDE4ICsyNywxOSBAQAogI2lmbmRlZiBGTE9BVFJFQ1RGX0hfCiAjZGVm
aW5lIEZMT0FUUkVDVEZfSF8KIAotI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlICJGbG9hdFNp
emUuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgogCiAj
aWYgX19BUFBMRV9fCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllf
VFlQRVMKKwordHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENHUmVjdDsKKworI2lmIE5TR0VPTUVUUllf
VFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCiB0eXBlZGVmIHN0cnVjdCBDR1JlY3QgTlNS
ZWN0OwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IF9OU1JlY3QgTlNSZWN0OwogI2VuZGlmCi10eXBl
ZGVmIHN0cnVjdCBDR1JlY3QgQ0dSZWN0OworCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDcsODcgKzQ4LDg5IEBACiAKIGNsYXNzIEZsb2F0UmVjdCB7CiBwdWJsaWM6Ci0gICAg
RmxvYXRSZWN0KCk7Ci0gICAgRmxvYXRSZWN0KEZsb2F0UG9pbnQgcCwgRmxvYXRTaXplIHMpOwot
ICAgIEZsb2F0UmVjdChmbG9hdCwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0gICAgRmxvYXRSZWN0
KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CisgICAgRmxvYXRSZWN0KCkg
eyB9CisgICAgRmxvYXRSZWN0KGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBGbG9h
dFNpemUmIHNpemUpCisgICAgICAgIDogbV9sb2NhdGlvbihsb2NhdGlvbiksIG1fc2l6ZShzaXpl
KSB7IH0KKyAgICBGbG9hdFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0
IGhlaWdodCkKKyAgICAgICAgOiBtX2xvY2F0aW9uKEZsb2F0UG9pbnQoeCwgeSkpLCBtX3NpemUo
RmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKSB7IH0KICAgICBGbG9hdFJlY3QoY29uc3QgSW50UmVj
dCYpOwogICAgIAotI2lmIF9fQVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVf
QVNfQ0dHRU9NRVRSWV9UWVBFUwotICAgIGV4cGxpY2l0IEZsb2F0UmVjdChjb25zdCBOU1JlY3Qm
KTsKLSNlbmRpZgotICAgIGV4cGxpY2l0IEZsb2F0UmVjdChjb25zdCBDR1JlY3QmKTsKLSNlbmRp
ZgorICAgIEZsb2F0UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
CisgICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgIGJv
b2wgaXNOdWxsKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Ci0gICAgYm9vbCBp
c0VtcHR5KCkgY29uc3Q7Ci0KLSAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4geHA7IH0KLSAg
ICBmbG9hdCB5KCkgY29uc3QgeyByZXR1cm4geXA7IH0KLSAgICBmbG9hdCBsZWZ0KCkgY29uc3Qg
eyByZXR1cm4geHA7IH0KLSAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVybiB5cDsgfQotICAg
IGZsb2F0IHJpZ2h0KCkgY29uc3Q7Ci0gICAgZmxvYXQgYm90dG9tKCkgY29uc3Q7Ci0gICAgZmxv
YXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiB3OyB9Ci0gICAgZmxvYXQgaGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gaDsgfQotCi0gICAgRmxvYXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7Ci0gICAgRmxv
YXRQb2ludCB0b3BSaWdodCgpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQgYm90dG9tUmlnaHQoKSBj
b25zdDsKLSAgICBGbG9hdFBvaW50IGJvdHRvbUxlZnQoKSBjb25zdDsKLQotICAgIEZsb2F0U2l6
ZSBzaXplKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgeHAgPSB4OyB9Ci0gICAg
dm9pZCBzZXRZKGZsb2F0IHkpIHsgeXAgPSB5OyB9Ci0gICAgdm9pZCBzZXRXaWR0aChmbG9hdCB3
aWR0aCkgeyB3ID0gd2lkdGg7IH0KLSAgICB2b2lkIHNldEhlaWdodChmbG9hdCBoZWlnaHQpIHsg
aCA9IGhlaWdodDsgfQotICAgIHZvaWQgc2V0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3
aWR0aCwgZmxvYXQgaGVpZ2h0KSB7IHhwID0geDsgeXAgPSB5OyB3ID0gd2lkdGg7IGggPSBoZWln
aHQ7IH0KLSAgICBGbG9hdFJlY3QgaW50ZXJzZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0Owot
ICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKLSAgICBGbG9hdFJl
Y3QgdW5pdGUoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgRmxvYXRSZWN0IG5vcm1hbGl6
ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbG9jYXRp
b24pIHsgbV9sb2NhdGlvbiA9IGxvY2F0aW9uOyB9CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CiAKLSAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdCB7IHJldHVybiBjb250YWlucyhwb2ludC54KCks
IHBvaW50LnkoKSk7IH0KKyAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi54
KCk7IH0KKyAgICBmbG9hdCB5KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbi55KCk7IH0KKyAg
ICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZS53aWR0aCgpOyB9CisgICAgZmxv
YXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmhlaWdodCgpOyB9CiAKLSAgICBib29s
IGNvbnRhaW5zKGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgcHJvcGVyID0gZmFsc2UpIGNvbnN0Ci0g
ICAgewotICAgICAgICBpZiAocHJvcGVyKQotICAgICAgICAgICAgcmV0dXJuIHggPiB4cCAmJiAo
eCA8ICh4cCArIHcgLSAxKSkgJiYgeSA+IHlwICYmIHkgPCAoeXAgKyBoIC0gMSk7Ci0gICAgICAg
IHJldHVybiB4ID49IHhwICYmIHggPCAoeHAgKyB3KSAmJiB5ID49IHlwICYmIHkgPCAoeXAgKyBo
KTsKLSAgICB9CisgICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgbV9sb2NhdGlvbi5zZXRYKHgpOyB9
CisgICAgdm9pZCBzZXRZKGZsb2F0IHkpIHsgbV9sb2NhdGlvbi5zZXRZKHkpOyB9CisgICAgdm9p
ZCBzZXRXaWR0aChmbG9hdCB3aWR0aCkgeyBtX3NpemUuc2V0V2lkdGgod2lkdGgpOyB9CisgICAg
dm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsg
fQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmlzRW1wdHkoKTsg
fQogCi0gICAgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0
dXJuIGludGVyc2VjdChyZWN0KSA9PSByZWN0OyB9CisgICAgZmxvYXQgcmlnaHQoKSBjb25zdCB7
IHJldHVybiB4KCkgKyB3aWR0aCgpOyB9CisgICAgZmxvYXQgYm90dG9tKCkgY29uc3QgeyByZXR1
cm4geSgpICsgaGVpZ2h0KCk7IH0KKworICAgIHZvaWQgbW92ZShjb25zdCBGbG9hdFBvaW50JiBw
KSB7IG1fbG9jYXRpb24gKz0gcDsgfSAKKyAgICB2b2lkIG1vdmUoZmxvYXQgZHgsIGZsb2F0IGR5
KSB7IG1fbG9jYXRpb24gKz0gRmxvYXRQb2ludChkeCwgZHkpOyB9IAorCisgICAgYm9vbCBpbnRl
cnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIGJvb2wgY29udGFpbnMoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICB2b2lkIGluZmxhdGUoZmxvYXQgcyk7CisgICAgdm9p
ZCBpbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCB1bml0ZShjb25zdCBGbG9h
dFJlY3QmKTsKIAotICAgIGlubGluZSBGbG9hdFJlY3Qgb3BlcmF0b3ImKGNvbnN0IEZsb2F0UmVj
dCYgcikgY29uc3QgeyByZXR1cm4gaW50ZXJzZWN0KHIpOyB9CisgICAgdm9pZCBpbmZsYXRlWChm
bG9hdCBkeCkgeworICAgICAgICBtX2xvY2F0aW9uLnNldFgobV9sb2NhdGlvbi54KCkgLSBkeCk7
CisgICAgICAgIG1fc2l6ZS5zZXRXaWR0aChtX3NpemUud2lkdGgoKSArIGR4ICsgZHgpOworICAg
IH0KKyAgICB2b2lkIGluZmxhdGVZKGZsb2F0IGR5KSB7CisgICAgICAgIG1fbG9jYXRpb24uc2V0
WShtX2xvY2F0aW9uLnkoKSAtIGR5KTsKKyAgICAgICAgbV9zaXplLnNldEhlaWdodChtX3NpemUu
aGVpZ2h0KCkgKyBkeSArIGR5KTsKKyAgICB9CisgICAgdm9pZCBpbmZsYXRlKGZsb2F0IGQpIHsg
aW5mbGF0ZVgoZCk7IGluZmxhdGVZKGQpOyB9CiAKICNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNH
RU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKworICAgIEZsb2F0UmVjdChj
b25zdCBDR1JlY3QmKTsKKyAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25zdDsKKworI2lmICFOU0dF
T01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworICAgIEZsb2F0UmVjdChjb25z
dCBOU1JlY3QmKTsKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgotICAgIG9w
ZXJhdG9yIENHUmVjdCgpIGNvbnN0OworCiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBmbG9hdCB4
cDsKLSAgICBmbG9hdCB5cDsKLSAgICBmbG9hdCB3OwotICAgIGZsb2F0IGg7Ci0KLSAgICBmcmll
bmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYpOwot
ICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0Jik7CisgICAgRmxvYXRQb2ludCBtX2xvY2F0aW9uOworICAgIEZsb2F0U2l6ZSBtX3NpemU7
CiB9OwogCi1pbmxpbmUgSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
ZnIpCitpbmxpbmUgRmxvYXRSZWN0IGludGVyc2VjdGlvbihjb25zdCBGbG9hdFJlY3QmIGEsIGNv
bnN0IEZsb2F0UmVjdCYgYikKIHsKLSAgICBpbnQgeCA9IGludChmbG9vcihmci54KCkpKTsKLSAg
ICBpbnQgeSA9IGludChmbG9vcihmci55KCkpKTsKLSAgICByZXR1cm4gSW50UmVjdCh4LCB5LCBp
bnQoY2VpbChmci54KCkgKyBmci53aWR0aCgpKSkgLSB4LCBpbnQoY2VpbChmci55KCkgKyBmci5o
ZWlnaHQoKSkpIC0geSk7CisgICAgRmxvYXRSZWN0IGMgPSBhOworICAgIGMuaW50ZXJzZWN0KGIp
OworICAgIHJldHVybiBjOwogfQogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0
UmVjdCYgYSwgY29uc3QgRmxvYXRSZWN0JiBiKQoreworICAgIHJldHVybiBhLmxvY2F0aW9uKCkg
PT0gYi5sb2NhdGlvbigpICYmIGEuc2l6ZSgpID09IGIuc2l6ZSgpOworfQorCitpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdCYgYSwgY29uc3QgRmxvYXRSZWN0JiBiKQorewor
ICAgIHJldHVybiBhLmxvY2F0aW9uKCkgIT0gYi5sb2NhdGlvbigpIHx8IGEuc2l6ZSgpICE9IGIu
c2l6ZSgpOworfQorCitJbnRSZWN0IGVuY2xvc2luZ0ludFJlY3QoY29uc3QgRmxvYXRSZWN0Jik7
CisKIH0KIAogLy8gRklYTUU6IFJlbW92ZSB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIFdlYkNv
cmUgbmFtZXNwYWNlLgpJbmRleDogcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGxhdGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcGxh
dGZvcm0vSW50UG9pbnRBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiw2IEBA
CiAgICAgc2V0UG9pbnRzKG5Qb2ludHMsIHBvaW50cyk7CiB9CiAKLUludFBvaW50QXJyYXk6Oklu
dFBvaW50QXJyYXkoY29uc3QgSW50UmVjdCAmcmVjdCkKLXsKLSAgICBzZXRQb2ludHMoNCwgcmVj
dC50b3BMZWZ0KCkueCgpLCByZWN0LnRvcExlZnQoKS55KCksCi0gICAgICAgICAgICAgIHJlY3Qu
dG9wUmlnaHQoKS54KCksIHJlY3QudG9wUmlnaHQoKS55KCksCi0gICAgICAgICAgICAgIHJlY3Qu
Ym90dG9tUmlnaHQoKS54KCksIHJlY3QuYm90dG9tUmlnaHQoKS55KCksCi0gICAgICAgICAgICAg
IHJlY3QuYm90dG9tTGVmdCgpLngoKSwgcmVjdC5ib3R0b21MZWZ0KCkueSgpKTsKLX0KLQogSW50
UG9pbnRBcnJheSBJbnRQb2ludEFycmF5Ojpjb3B5KCkgY29uc3QKIHsKICAgICBJbnRQb2ludEFy
cmF5IGNvcHk7CkBAIC01MSw3ICs0Myw3IEBACiB7CiAgICAgaW50IG5Qb2ludHMgPSBjb3VudCgp
OwogICAgIAotICAgIGlmIChuUG9pbnRzIDwgMSkgcmV0dXJuIEludFJlY3QoMCwwLDAsMCk7Cisg
ICAgaWYgKG5Qb2ludHMgPCAxKSByZXR1cm4gSW50UmVjdCgpOwogICAgIAogICAgIGludCBtaW5Y
ID0gSU5UX01BWCwgbWF4WCA9IDA7CiAgICAgaW50IG1pblkgPSBJTlRfTUFYLCBtYXhZID0gMDsK
SW5kZXg6IHBsYXRmb3JtL0ludFBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbnRQ
b2ludC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vSW50UG9pbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtNiBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotSW50UG9pbnQ6OkludFBvaW50KCkgOiB4Q29vcmQoMCksIHlDb29yZCgwKQotewotfQot
Ci1JbnRQb2ludDo6SW50UG9pbnQoaW50IHhJbiwgaW50IHlJbikgOiB4Q29vcmQoeEluKSwgeUNv
b3JkKHlJbikKLXsKLX0KLQotSW50UG9pbnQgb3BlcmF0b3IrKGNvbnN0IEludFBvaW50ICZhLCBj
b25zdCBJbnRQb2ludCAmYikKLXsKLSAgICByZXR1cm4gSW50UG9pbnQoYS54Q29vcmQgKyBiLnhD
b29yZCwgYS55Q29vcmQgKyBiLnlDb29yZCk7Ci19Ci0KLUludFBvaW50IG9wZXJhdG9yLShjb25z
dCBJbnRQb2ludCAmYSwgY29uc3QgSW50UG9pbnQgJmIpCi17Ci0gICAgcmV0dXJuIEludFBvaW50
KGEueENvb3JkIC0gYi54Q29vcmQsIGEueUNvb3JkIC0gYi55Q29vcmQpOwotfQotCi1jb25zdCBJ
bnRQb2ludCBvcGVyYXRvciooY29uc3QgSW50UG9pbnQgJnAsIGRvdWJsZSBzKQotewotICAgIHJl
dHVybiBJbnRQb2ludCgoaW50KShwLnhDb29yZCAqIHMpLCAoaW50KShwLnlDb29yZCAqIHMpKTsK
LX0KLQotfQpJbmRleDogcGxhdGZvcm0vRmxvYXRTaXplLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZv
cm0vRmxvYXRTaXplLmgJKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0vRmxvYXRTaXplLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDE3ICszMCwyMCBAQAogI2luY2x1ZGUgIktXUURlZi5oIgog
CiAjaWYgX19BUFBMRV9fCisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CisKIC8vIHdv
cmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgogI2lmICEgX19MUDY0X18gJiYg
ISBOU19CVUlMRF8zMl9MSUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FT
X0NHR0VPTUVUUllfVFlQRVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRS
WV9UWVBFUwogdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0
cnVjdCBfTlNTaXplIE5TU2l6ZTsKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6
ZTsKKwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDM5ICs1Miw3NCBAQAog
ICAgIAogY2xhc3MgRmxvYXRTaXplIHsKIHB1YmxpYzoKLSAgICBGbG9hdFNpemUoKTsKLSAgICBG
bG9hdFNpemUoZmxvYXQsIGZsb2F0KTsKLSAgICBGbG9hdFNpemUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOworICAgIEZsb2F0U2l6ZSgpIDogbV93aWR0aCgwKSwgbV9oZWlnaHQoMCkgeyB9Cisg
ICAgRmxvYXRTaXplKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIDogbV93aWR0aCh3aWR0aCks
IG1faGVpZ2h0KGhlaWdodCkgeyB9CisgICAgRmxvYXRTaXplKGNvbnN0IEludFNpemUmKTsKKyAg
ICAKKyAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KKyAgICBmbG9h
dCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQorCisgICAgdm9pZCBzZXRXaWR0
aChmbG9hdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldEhlaWdodChm
bG9hdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KKworICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fd2lkdGggPD0gMCB8fCBtX2hlaWdodCA8PSAwOyB9CisKKyAgICBG
bG9hdFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmIG90aGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZShtX3dpZHRoID4gb3RoZXIubV93aWR0aCA/IG1fd2lk
dGggOiBvdGhlci5tX3dpZHRoLAorICAgICAgICAgICAgbV9oZWlnaHQgPiBvdGhlci5tX2hlaWdo
dCA/IG1faGVpZ2h0IDogb3RoZXIubV9oZWlnaHQpOworICAgIH0KKwogI2lmIF9fQVBQTEVfXwot
I2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwotICAgIGV4
cGxpY2l0IEZsb2F0U2l6ZShjb25zdCBOU1NpemUmKTsKLSNlbmRpZgotICAgIGV4cGxpY2l0IEZs
b2F0U2l6ZShjb25zdCBDR1NpemUmKTsKLSNlbmRpZgogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7Ci0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiB3OyB9Ci0gICAgZmxvYXQgaGVp
Z2h0KCkgY29uc3QgeyByZXR1cm4gaDsgfQotICAgIHZvaWQgc2V0V2lkdGgoZmxvYXQgd2lkdGgp
IHsgdyA9IHdpZHRoOyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0KSB7IGggPSBo
ZWlnaHQ7IH0KLSAgICBGbG9hdFNpemUgZXhwYW5kZWRUbyhjb25zdCBGbG9hdFNpemUmKSBjb25z
dDsKKyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgQ0dTaXplJik7IC8vIGRvbid0IGRvIHRo
aXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxvc3N5CisgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29u
c3Q7CiAKLSNpZiBfX0FQUExFX18KICNpZm5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBGbG9hdFNpemUoY29uc3QgTlNTaXplICYpOyAv
LyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJhdG9y
IE5TU2l6ZSgpIGNvbnN0OwogI2VuZGlmCi0gICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7Ci0j
ZW5kaWYKIAotICAgIGZyaWVuZCBGbG9hdFNpemUgb3BlcmF0b3IrKGNvbnN0IEZsb2F0U2l6ZSYs
IGNvbnN0IEZsb2F0U2l6ZSYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgRmxvYXRTaXplJik7Ci0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFNpemUmKTsKKyNlbmRpZgogCiBwcml2YXRlOgot
ICAgIGZsb2F0IHc7Ci0gICAgZmxvYXQgaDsKKyAgICBmbG9hdCBtX3dpZHRoLCBtX2hlaWdodDsK
IH07CiAKK2lubGluZSBGbG9hdFNpemUmIG9wZXJhdG9yKz0oRmxvYXRTaXplJiBhLCBjb25zdCBG
bG9hdFNpemUmIGIpCit7CisgICAgYS5zZXRXaWR0aChhLndpZHRoKCkgKyBiLndpZHRoKCkpOwor
ICAgIGEuc2V0SGVpZ2h0KGEuaGVpZ2h0KCkgKyBiLmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsK
K30KKworaW5saW5lIEZsb2F0U2l6ZSYgb3BlcmF0b3ItPShGbG9hdFNpemUmIGEsIGNvbnN0IEZs
b2F0U2l6ZSYgYikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSAtIGIud2lkdGgoKSk7Cisg
ICAgYS5zZXRIZWlnaHQoYS5oZWlnaHQoKSAtIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOwor
fQorCitpbmxpbmUgRmxvYXRTaXplIG9wZXJhdG9yKyhjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0
IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gRmxvYXRTaXplKGEud2lkdGgoKSArIGIud2lk
dGgoKSwgYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworfQorCitpbmxpbmUgRmxvYXRTaXplIG9w
ZXJhdG9yLShjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICBy
ZXR1cm4gRmxvYXRTaXplKGEud2lkdGgoKSAtIGIud2lkdGgoKSwgYS5oZWlnaHQoKSAtIGIuaGVp
Z2h0KCkpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0U2l6ZSYgYSwg
Y29uc3QgRmxvYXRTaXplJiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgPT0gYi53aWR0aCgp
ICYmIGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4g
YS53aWR0aCgpICE9IGIud2lkdGgoKSB8fCBhLmhlaWdodCgpICE9IGIuaGVpZ2h0KCk7Cit9CisK
IH0KIAogLy8gRklYTUU6IFJlbW92ZSB3aGVuIHRoZSBlbmdpbmUgZmlsZXMgaGF2ZSBiZWVuIGNv
bnZlcnRlZCB0byBiZSBpbiB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCkluZGV4OiBwbGF0Zm9ybS9J
bnRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vSW50UmVjdC5oCShyZXZpc2lvbiAxMjQ2
NykKKysrIHBsYXRmb3JtL0ludFJlY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2LDk5ICsyNiwxMjQgQEAKICNpZm5kZWYgSU5UUkVDVF9IXwogI2RlZmluZSBJTlRS
RUNUX0hfCiAKKyNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNp
bmNsdWRlICJJbnRQb2ludEFycmF5LmgiCiAKICNpZiBfX0FQUExFX18KLSNpZmRlZiBOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworCit0eXBlZGVmIHN0cnVjdCBDR1Jl
Y3QgQ0dSZWN0OworCisjaWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBOU1JlY3Q7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3Qg
X05TUmVjdCBOU1JlY3Q7CiAjZW5kaWYKLXR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CisK
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEludFJlY3QgewogcHVibGlj
OgotICAgIEludFJlY3QoKTsKLSAgICBJbnRSZWN0KEludFBvaW50IHAsIEludFNpemUgcyk7Ci0g
ICAgSW50UmVjdChpbnQsIGludCwgaW50LCBpbnQpOwotICAgIEludFJlY3QoY29uc3QgSW50UG9p
bnQgJiwgY29uc3QgSW50UG9pbnQgJik7CisgICAgSW50UmVjdCgpIHsgfQorICAgIEludFJlY3Qo
Y29uc3QgSW50UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgICAgICA6
IG1fbG9jYXRpb24obG9jYXRpb24pLCBtX3NpemUoc2l6ZSkgeyB9CisgICAgSW50UmVjdChpbnQg
eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKKyAgICAgICAgOiBtX2xvY2F0aW9uKElu
dFBvaW50KHgsIHkpKSwgbV9zaXplKEludFNpemUod2lkdGgsIGhlaWdodCkpIHsgfQorCisgICAg
SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9CisgICAgSW50
U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKKyAgICB2b2lkIHNldExvY2F0
aW9uKGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikgeyBtX2xvY2F0aW9uID0gbG9jYXRpb247IH0K
KyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9
CisKKyAgICBpbnQgeCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYXRpb24ueCgpOyB9CisgICAgaW50
IHkoKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uLnkoKTsgfQorICAgIGludCB3aWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZS53aWR0aCgpOyB9CisgICAgaW50IGhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZS5oZWlnaHQoKTsgfQorCisgICAgdm9pZCBzZXRYKGludCB4KSB7IG1fbG9j
YXRpb24uc2V0WCh4KTsgfQorICAgIHZvaWQgc2V0WShpbnQgeSkgeyBtX2xvY2F0aW9uLnNldFko
eSk7IH0KKyAgICB2b2lkIHNldFdpZHRoKGludCB3aWR0aCkgeyBtX3NpemUuc2V0V2lkdGgod2lk
dGgpOyB9CisgICAgdm9pZCBzZXRIZWlnaHQoaW50IGhlaWdodCkgeyBtX3NpemUuc2V0SGVpZ2h0
KGhlaWdodCk7IH0KICAgICAKLSNpZiBfX0FQUExFX18KLSNpZm5kZWYgTlNHRU9NRVRSWV9UWVBF
U19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKLSAgICBleHBsaWNpdCBJbnRSZWN0KGNvbnN0IE5T
UmVjdCAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kKLSNl
bmRpZgotICAgIGV4cGxpY2l0IEludFJlY3QoY29uc3QgQ0dSZWN0ICYpOyAvLyBkb24ndCBkbyB0
aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQotI2VuZGlmCisgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmlzRW1wdHkoKTsgfQogCi0gICAgYm9vbCBpc051bGwo
KSBjb25zdDsKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdDsKLQotICAgIGludCB4KCkgY29uc3QgeyByZXR1cm4geHA7IH0KLSAgICBpbnQgeSgpIGNv
bnN0IHsgcmV0dXJuIHlwOyB9Ci0gICAgaW50IGxlZnQoKSBjb25zdCB7IHJldHVybiB4cDsgfQot
ICAgIGludCB0b3AoKSBjb25zdCB7IHJldHVybiB5cDsgfQotICAgIGludCByaWdodCgpIGNvbnN0
OwotICAgIGludCBib3R0b20oKSBjb25zdDsKLSAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJldHVy
biB3OyB9Ci0gICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGg7IH0KLQotICAgIEludFBv
aW50IHRvcExlZnQoKSBjb25zdDsKLSAgICBJbnRQb2ludCB0b3BSaWdodCgpIGNvbnN0OwotICAg
IEludFBvaW50IGJvdHRvbVJpZ2h0KCkgY29uc3Q7Ci0gICAgSW50UG9pbnQgYm90dG9tTGVmdCgp
IGNvbnN0OwotICAgIAotICAgIHZvaWQgbW92ZVRvcExlZnQoY29uc3QgSW50UG9pbnQgJnApIHsg
eHAgKz0gcC54KCk7IHlwICs9IHAueSgpOyB9IAotCi0gICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRYKGludCB4KSB7IHhwID0geDsgfQotICAgIHZvaWQgc2V0WShpbnQgeSkg
eyB5cCA9IHk7IH0KLSAgICB2b2lkIHNldFdpZHRoKGludCB3aWR0aCkgeyB3ID0gd2lkdGg7IH0K
LSAgICB2b2lkIHNldEhlaWdodChpbnQgaGVpZ2h0KSB7IGggPSBoZWlnaHQ7IH0KLSAgICB2b2lk
IHNldFJlY3QoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsgeHAgPSB4OyB5
cCA9IHk7IHcgPSB3aWR0aDsgaCA9IGhlaWdodDsgfQotICAgIEludFJlY3QgaW50ZXJzZWN0KGNv
bnN0IEludFJlY3QgJikgY29uc3Q7Ci0gICAgYm9vbCBpbnRlcnNlY3RzKGNvbnN0IEludFJlY3Qg
JikgY29uc3Q7Ci0gICAgSW50UmVjdCB1bml0ZShjb25zdCBJbnRSZWN0ICYpIGNvbnN0OwotICAg
IEludFJlY3Qgbm9ybWFsaXplKCkgY29uc3Q7CisgICAgaW50IHJpZ2h0KCkgY29uc3QgeyByZXR1
cm4geCgpICsgd2lkdGgoKTsgfQorICAgIGludCBib3R0b20oKSBjb25zdCB7IHJldHVybiB5KCkg
KyBoZWlnaHQoKTsgfQogCi0gICAgYm9vbCBjb250YWlucyhjb25zdCBJbnRQb2ludCAmcG9pbnQp
IGNvbnN0IHsgcmV0dXJuIGNvbnRhaW5zKHBvaW50LngoKSwgcG9pbnQueSgpKTsgfQorICAgIHZv
aWQgbW92ZShjb25zdCBJbnRQb2ludCYgcCkgeyBtX2xvY2F0aW9uICs9IHA7IH0gCisgICAgdm9p
ZCBtb3ZlKGludCBkeCwgaW50IGR5KSB7IG1fbG9jYXRpb24gKz0gSW50UG9pbnQoZHgsIGR5KTsg
fSAKIAotICAgIGJvb2wgY29udGFpbnMoaW50IHgsIGludCB5LCBib29sIHByb3BlciA9IGZhbHNl
KSBjb25zdCB7Ci0gICAgICAgIGlmIChwcm9wZXIpCi0gICAgICAgICAgICByZXR1cm4geCA+IHhw
ICYmICh4IDwgKHhwICsgdyAtIDEpKSAmJiB5ID4geXAgJiYgeSA8ICh5cCArIGggLSAxKTsKLSAg
ICAgICAgcmV0dXJuIHggPj0geHAgJiYgeCA8ICh4cCArIHcpICYmIHkgPj0geXAgJiYgeSA8ICh5
cCArIGgpOwotICAgIH0KKyAgICBib29sIGludGVyc2VjdHMoY29uc3QgSW50UmVjdCYpIGNvbnN0
OworICAgIGJvb2wgY29udGFpbnMoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCi0gICAgYm9vbCBj
b250YWlucyhjb25zdCBJbnRSZWN0ICZyZWN0KSBjb25zdCB7IHJldHVybiBpbnRlcnNlY3QocmVj
dCkgPT0gcmVjdDsgfQorICAgIC8vIFRoaXMgY2hlY2tzIHRvIHNlZSBpZiB0aGUgcmVjdCBjb250
YWlucyB4LHkgaW4gdGhlIHRyYWRpdGlvbmFsIHNlbnNlLgorICAgIC8vIEVxdWl2YWxlbnQgdG8g
Y2hlY2tpbmcgaWYgdGhlIHJlY3QgY29udGFpbnMgYSAxeDEgcmVjdCBiZWxvdyBhbmQgdG8gdGhl
IHJpZ2h0IG9mIChweCxweSkuCisgICAgYm9vbCBjb250YWlucyhpbnQgcHgsIGludCBweSkgY29u
c3QKKyAgICAgICAgeyByZXR1cm4gcHggPj0geCgpICYmIHB4IDwgcmlnaHQoKSAmJiBweSA+PSB5
KCkgJiYgcHkgPCBib3R0b20oKTsgfQorCisgICAgdm9pZCBpbnRlcnNlY3QoY29uc3QgSW50UmVj
dCYpOworICAgIHZvaWQgdW5pdGUoY29uc3QgSW50UmVjdCYpOworCisgICAgdm9pZCBpbmZsYXRl
WChpbnQgZHgpIHsKKyAgICAgICAgbV9sb2NhdGlvbi5zZXRYKG1fbG9jYXRpb24ueCgpIC0gZHgp
OworICAgICAgICBtX3NpemUuc2V0V2lkdGgobV9zaXplLndpZHRoKCkgKyBkeCArIGR4KTsKKyAg
ICB9CisgICAgdm9pZCBpbmZsYXRlWShpbnQgZHkpIHsKKyAgICAgICAgbV9sb2NhdGlvbi5zZXRZ
KG1fbG9jYXRpb24ueSgpIC0gZHkpOworICAgICAgICBtX3NpemUuc2V0SGVpZ2h0KG1fc2l6ZS5o
ZWlnaHQoKSArIGR5ICsgZHkpOworICAgIH0KKyAgICB2b2lkIGluZmxhdGUoaW50IGQpIHsgaW5m
bGF0ZVgoZCk7IGluZmxhdGVZKGQpOyB9CiAgICAgCi0gICAgdm9pZCBpbmZsYXRlKGludCBzKTsK
KyNpZiBfX0FQUExFX18KIAotICAgIGlubGluZSBJbnRSZWN0IG9wZXJhdG9yJihjb25zdCBJbnRS
ZWN0ICZyKSBjb25zdCB7IHJldHVybiBpbnRlcnNlY3Qocik7IH0KKyAgICBvcGVyYXRvciBDR1Jl
Y3QoKSBjb25zdDsKIAotI2lmIF9fQVBQTEVfXwotI2lmbmRlZiBOU0dFT01FVFJZX1RZUEVTX1NB
TUVfQVNfQ0dHRU9NRVRSWV9UWVBFUworI2lmISBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dH
RU9NRVRSWV9UWVBFUwogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2VuZGlmCi0gICAg
b3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7CisKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGludCB4
cDsKLSAgICBpbnQgeXA7Ci0gICAgaW50IHc7Ci0gICAgaW50IGg7Ci0KLSAgICBmcmllbmQgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3QgJiwgY29uc3QgSW50UmVjdCAmKTsKLSAgICBmcmll
bmQgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEludFJlY3QgJiwgY29uc3QgSW50UmVjdCAmKTsKKyAg
ICBJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIEludFNpemUgbV9zaXplOwogfTsKIAoraW5saW5l
IEludFJlY3QgaW50ZXJzZWN0aW9uKGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIp
Cit7CisgICAgSW50UmVjdCBjID0gYTsKKyAgICBjLmludGVyc2VjdChiKTsKKyAgICByZXR1cm4g
YzsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJ
bnRSZWN0JiBiKQoreworICAgIHJldHVybiBhLmxvY2F0aW9uKCkgPT0gYi5sb2NhdGlvbigpICYm
IGEuc2l6ZSgpID09IGIuc2l6ZSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAgcmV0dXJuIGEubG9jYXRpb24o
KSAhPSBiLmxvY2F0aW9uKCkgfHwgYS5zaXplKCkgIT0gYi5zaXplKCk7Cit9CisKKyNpZiBfX0FQ
UExFX18KKworSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IENHUmVjdCYpOworCisjaWYg
IU5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCisKK0ludFJlY3QgZW5j
bG9zaW5nSW50UmVjdChjb25zdCBOU1JlY3QmKTsKKworI2VuZGlmCisKKyNlbmRpZgorCiB9CiAK
IC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBldmVyeXRoaW5nIGlzIGluIHRoZSBXZWJDb3JlIG5hbWVz
cGFjZS4KIHVzaW5nIFdlYkNvcmU6OkludFJlY3Q7Cit1c2luZyBXZWJDb3JlOjplbmNsb3NpbmdJ
bnRSZWN0OwogCiAjZW5kaWYKSW5kZXg6IHBsYXRmb3JtL0Zsb2F0UG9pbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHBsYXRmb3JtL0Zsb2F0UG9pbnQuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRm
b3JtL0Zsb2F0UG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzNSArMjYsMTMgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCisKICNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRmxvYXRQb2ludDo6RmxvYXRQ
b2ludCgpIDogeENvb3JkKDApLCB5Q29vcmQoMCkKLXsKLX0KLQotRmxvYXRQb2ludDo6RmxvYXRQ
b2ludChmbG9hdCB4SW4sIGZsb2F0IHlJbikgOiB4Q29vcmQoeEluKSwgeUNvb3JkKHlJbikKLXsK
LX0KLQotRmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25zdCBJbnRQb2ludCYgcCkgOnhDb29yZChw
LngoKSksIHlDb29yZChwLnkoKSkKLXsKLX0KLQotRmxvYXRQb2ludCBvcGVyYXRvcisoY29uc3Qg
RmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYgYikKLXsKLSAgICByZXR1cm4gRmxvYXRQ
b2ludChhLnhDb29yZCArIGIueENvb3JkLCBhLnlDb29yZCArIGIueUNvb3JkKTsKLX0KLQotRmxv
YXRQb2ludCBvcGVyYXRvci0oY29uc3QgRmxvYXRQb2ludCYgYSwgY29uc3QgRmxvYXRQb2ludCYg
YikKLXsKLSAgICByZXR1cm4gRmxvYXRQb2ludChhLnhDb29yZCAtIGIueENvb3JkLCBhLnlDb29y
ZCAtIGIueUNvb3JkKTsKLX0KLQotY29uc3QgRmxvYXRQb2ludCBvcGVyYXRvciooY29uc3QgRmxv
YXRQb2ludCYgcCwgZG91YmxlIHMpCitGbG9hdFBvaW50OjpGbG9hdFBvaW50KGNvbnN0IEludFBv
aW50JiBwKSA6IG1feChwLngoKSksIG1feShwLnkoKSkKIHsKLSAgICByZXR1cm4gRmxvYXRQb2lu
dChwLnhDb29yZCAqIHMsIHAueUNvb3JkICogcyk7CiB9CiAKIH0KSW5kZXg6IHBsYXRmb3JtL0Zs
b2F0UmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vRmxvYXRSZWN0LmNwcAkocmV2aXNp
b24gMTI0NjcpCisrKyBwbGF0Zm9ybS9GbG9hdFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKKworI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIHVzaW5n
IHN0ZDo6bWF4OwpAQCAtMzMsMTU4ICszNSw3MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUZsb2F0UmVjdDo6RmxvYXRSZWN0KCkgOiB4cCgwLjBmKSwgeXAoMC4wZiksIHcoMC4wZiksIGgo
MC4wZikKLXsKLX0KLQotRmxvYXRSZWN0OjpGbG9hdFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgOiB4cCh4KSwgeXAoeSksIHcod2lkdGgpLCBoKGhlaWdo
dCkKLXsKLX0KLQotRmxvYXRSZWN0OjpGbG9hdFJlY3QoRmxvYXRQb2ludCBwLCBGbG9hdFNpemUg
cykgOiB4cChwLngoKSksIHlwKHAueSgpKSwgdyhzLndpZHRoKCkpLCBoKHMuaGVpZ2h0KCkpCi17
Ci19Ci0KLUZsb2F0UmVjdDo6RmxvYXRSZWN0KGNvbnN0IEZsb2F0UG9pbnQgJnRvcExlZnQsIGNv
bnN0IEZsb2F0UG9pbnQgJmJvdHRvbVJpZ2h0KQotICA6IHhwKHRvcExlZnQueCgpKSwgeXAodG9w
TGVmdC55KCkpLAotICB3KGJvdHRvbVJpZ2h0LngoKSAtIHRvcExlZnQueCgpICsgMS4wZiksIGgo
Ym90dG9tUmlnaHQueSgpIC0gdG9wTGVmdC55KCkgKyAxLjBmKQotewotfQotCi1GbG9hdFJlY3Q6
OkZsb2F0UmVjdChjb25zdCBJbnRSZWN0JiByKSA6IHhwKHIueCgpKSwgeXAoci55KCkpLCB3KHIu
d2lkdGgoKSksIGgoci5oZWlnaHQoKSkKLXsKLX0KLQotYm9vbCBGbG9hdFJlY3Q6OmlzTnVsbCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHcgPT0gMC4wZiAmJiBoID09IDAuMGY7Ci19Ci0KLWJvb2wg
RmxvYXRSZWN0Ojppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdyA+IDAuMGYgJiYgaCA+
IDAuMGY7Ci19Ci0KLWJvb2wgRmxvYXRSZWN0Ojppc0VtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdyA8PSAwLjBmIHx8IGggPD0gMC4wZjsKLX0KLQotZmxvYXQgRmxvYXRSZWN0OjpyaWdodCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHhwICsgdyAtIDEuMGY7Ci19Ci0KLWZsb2F0IEZsb2F0UmVj
dDo6Ym90dG9tKCkgY29uc3QKK0Zsb2F0UmVjdDo6RmxvYXRSZWN0KGNvbnN0IEludFJlY3QmIHIp
IDogbV9sb2NhdGlvbihyLmxvY2F0aW9uKCkpLCBtX3NpemUoci5zaXplKCkpCiB7Ci0gICAgcmV0
dXJuIHlwICsgaCAtIDEuMGY7CiB9CiAKLUZsb2F0UG9pbnQgRmxvYXRSZWN0Ojp0b3BMZWZ0KCkg
Y29uc3QKK2Jvb2wgRmxvYXRSZWN0OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoeHAseXApOworICAgIC8vIENoZWNraW5n
IGVtcHRpbmVzcyBoYW5kbGVzIG5lZ2F0aXZlIHdpZHRocyBhcyB3ZWxsIGFzIHplcm8uCisgICAg
cmV0dXJuICFpc0VtcHR5KCkgJiYgIW90aGVyLmlzRW1wdHkoKQorICAgICAgICAmJiB4KCkgPCBv
dGhlci5yaWdodCgpICYmIG90aGVyLngoKSA8IHJpZ2h0KCkKKyAgICAgICAgJiYgeSgpIDwgb3Ro
ZXIuYm90dG9tKCkgJiYgb3RoZXIueSgpIDwgYm90dG9tKCk7CiB9CiAKLUZsb2F0UG9pbnQgRmxv
YXRSZWN0Ojp0b3BSaWdodCgpIGNvbnN0Citib29sIEZsb2F0UmVjdDo6Y29udGFpbnMoY29uc3Qg
RmxvYXRSZWN0JiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gRmxvYXRQb2ludChyaWdodCgp
LHRvcCgpKTsKKyAgICByZXR1cm4geCgpIDw9IG90aGVyLngoKSAmJiByaWdodCgpID49IG90aGVy
LnJpZ2h0KCkKKyAgICAgICAgJiYgeSgpIDw9IG90aGVyLnkoKSAmJiBib3R0b20oKSA+PSBvdGhl
ci5ib3R0b20oKTsKIH0KIAotRmxvYXRQb2ludCBGbG9hdFJlY3Q6OmJvdHRvbVJpZ2h0KCkgY29u
c3QKK3ZvaWQgRmxvYXRSZWN0OjppbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0JiBvdGhlcikKIHsK
LSAgICByZXR1cm4gRmxvYXRQb2ludChyaWdodCgpLGJvdHRvbSgpKTsKLX0KLQotRmxvYXRQb2lu
dCBGbG9hdFJlY3Q6OmJvdHRvbUxlZnQoKSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFBvaW50
KGxlZnQoKSxib3R0b20oKSk7Ci19Ci0KLUZsb2F0U2l6ZSBGbG9hdFJlY3Q6OnNpemUoKSBjb25z
dAotewotICAgIHJldHVybiBGbG9hdFNpemUodyxoKTsKLX0KLQotRmxvYXRSZWN0IEZsb2F0UmVj
dDo6dW5pdGUoY29uc3QgRmxvYXRSZWN0ICZyKSBjb25zdAotewotICAgIGlmIChyLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwotCi0gICAgaWYgKGlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuIHI7Ci0KLSAgICBmbG9hdCBueCwgbnksIG53LCBuaDsKLQotICAgIG54ID0gbWluKHhw
LCByLnhwKTsKLSAgICBueSA9IG1pbih5cCwgci55cCk7Ci0KLSAgICBpZiAoeHAgKyB3ID49IHIu
eHAgKyByLncpCi0gICAgICAgIG53ID0geHAgKyB3IC0gbng7Ci0gICAgZWxzZQotICAgICAgICBu
dyA9IHIueHAgKyByLncgLSBueDsKLQotICAgIGlmICh5cCArIGggPj0gci55cCArIHIuaCkKLSAg
ICAgICAgbmggPSB5cCArIGggLSBueTsKLSAgICBlbHNlCi0gICAgICAgIG5oID0gci55cCArIHIu
aCAtIG55OworICAgIGZsb2F0IGwgPSBtYXgoeCgpLCBvdGhlci54KCkpOworICAgIGZsb2F0IHQg
PSBtYXgoeSgpLCBvdGhlci55KCkpOworICAgIGZsb2F0IHIgPSBtaW4ocmlnaHQoKSwgb3RoZXIu
cmlnaHQoKSk7CisgICAgZmxvYXQgYiA9IG1pbihib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOwog
Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChueCwgbnksIG53LCBuaCk7CisgICAgLy8gUmV0dXJuIGEg
Y2xlYW4gZW1wdHkgcmVjdGFuZ2xlIGZvciBub24taW50ZXJzZWN0aW5nIGNhc2VzLgorICAgIGlm
IChsID49IHIgfHwgdCA+PSBiKSB7CisgICAgICAgIGwgPSAwOworICAgICAgICB0ID0gMDsKKyAg
ICAgICAgciA9IDA7CisgICAgICAgIGIgPSAwOwogfQogCi1GbG9hdFJlY3QgRmxvYXRSZWN0Ojpu
b3JtYWxpemUoKSBjb25zdAotewotICAgIEZsb2F0UmVjdCBuZXdSZWN0OwotCi0gICAgbmV3UmVj
dC54cCAgPSAodyA8IDAuMGYpID8gKHhwIC0gdykgOiB4cDsKLSAgICBuZXdSZWN0LncgICA9ICh3
IDwgMC4wZikgPyAtdyA6IHc7Ci0KLSAgICBuZXdSZWN0LnlwICA9IChoIDwgMC4wZikgPyAoeXAg
LSBoKSA6IHlwOwotICAgIG5ld1JlY3QuaCAgID0gKGggPCAwLjBmKSA/IC1oIDogaDsKLQotICAg
IHJldHVybiBuZXdSZWN0OwotfQotCi1ib29sIEZsb2F0UmVjdDo6aW50ZXJzZWN0cyhjb25zdCBG
bG9hdFJlY3QgJnIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGludGVyc2VjdChyKS5pc1ZhbGlkKCk7
CisgICAgbV9sb2NhdGlvbi5zZXRYKGwpOworICAgIG1fbG9jYXRpb24uc2V0WSh0KTsKKyAgICBt
X3NpemUuc2V0V2lkdGgociAtIGwpOworICAgIG1fc2l6ZS5zZXRIZWlnaHQoYiAtIHQpOwogfQog
Ci1GbG9hdFJlY3QgRmxvYXRSZWN0OjppbnRlcnNlY3QoY29uc3QgRmxvYXRSZWN0ICZyKSBjb25z
dAordm9pZCBGbG9hdFJlY3Q6OnVuaXRlKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpCiB7Ci0gICAg
ZmxvYXQgbngsIG55LCBudywgbmg7Ci0KLSAgICBueCA9IG1heCh4cCwgci54cCk7Ci0gICAgbnkg
PSBtYXgoeXAsIHIueXApOwotCi0gICAgaWYgKHhwICsgdyA8PSByLnhwICsgci53KQotICAgICAg
ICBudyA9IHhwICsgdyAtIG54OwotICAgIGVsc2UKLSAgICAgICAgbncgPSByLnhwICsgci53IC0g
bng7Ci0KLSAgICBpZiAoeXAgKyBoIDw9IHIueXAgKyByLmgpCi0gICAgICAgIG5oID0geXAgKyBo
IC0gbnk7Ci0gICAgZWxzZQotICAgICAgICBuaCA9IHIueXAgKyByLmggLSBueTsKLQotICAgIHJl
dHVybiBGbG9hdFJlY3QobngsIG55LCBudywgbmgpOworICAgIC8vIEhhbmRsZSBlbXB0eSBzcGVj
aWFsIGNhc2VzIGZpcnN0LgorICAgIGlmIChvdGhlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoaXNFbXB0eSgpKSB7CisgICAgICAgICp0aGlzID0gb3RoZXI7CisgICAgICAg
IHJldHVybjsKIH0KIAotdm9pZCBGbG9hdFJlY3Q6OmluZmxhdGUoZmxvYXQgcykKLXsKLSAgICB4
cCAtPSBzOwotICAgIHlwIC09IHM7Ci0gICAgdyArPSAyLjBmICogczsKLSAgICBoICs9IDIuMGYg
KiBzOwotfQorICAgIGZsb2F0IGwgPSBtaW4oeCgpLCBvdGhlci54KCkpOworICAgIGZsb2F0IHQg
PSBtaW4oeSgpLCBvdGhlci55KCkpOworICAgIGZsb2F0IHIgPSBtYXgocmlnaHQoKSwgb3RoZXIu
cmlnaHQoKSk7CisgICAgZmxvYXQgYiA9IG1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOwog
Ci1ib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJlY3QgJmIp
Ci17Ci0gICAgcmV0dXJuIGEueHAgPT0gYi54cCAmJiBhLnlwID09IGIueXAgJiYgYS53ID09IGIu
dyAmJiBhLmggPT0gYi5oOworICAgIG1fbG9jYXRpb24uc2V0WChsKTsKKyAgICBtX2xvY2F0aW9u
LnNldFkodCk7CisgICAgbV9zaXplLnNldFdpZHRoKHIgLSBsKTsKKyAgICBtX3NpemUuc2V0SGVp
Z2h0KGIgLSB0KTsKIH0KIAotYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdCAmYSwgY29u
c3QgRmxvYXRSZWN0ICZiKQorSW50UmVjdCBlbmNsb3NpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKLSAgICByZXR1cm4gIShhID09IGIpOworICAgIGludCBsID0gc3RhdGljX2Nh
c3Q8aW50PihmbG9vcmYocmVjdC54KCkpKTsKKyAgICBpbnQgdCA9IHN0YXRpY19jYXN0PGludD4o
Zmxvb3JmKHJlY3QueSgpKSk7CisgICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKHJl
Y3QucmlnaHQoKSkpOworICAgIGludCBiID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihyZWN0LmJv
dHRvbSgpKSk7CisgICAgcmV0dXJuIEludFJlY3QobCwgdCwgciAtIGwsIGIgLSB0KTsKIH0KIAog
fQpJbmRleDogcGxhdGZvcm0vSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9JbWFnZS5o
CShyZXZpc2lvbiAxMjQ2NykKKysrIHBsYXRmb3JtL0ltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDEzICsyNiw5IEBACiAjaWZuZGVmIElNQUdFX0hfCiAjZGVmaW5lIElNQUdFX0hfCiAKLSNp
bmNsdWRlICJLV1FOYW1lc3BhY2UuaCIKLSNpbmNsdWRlICJLV1FTdHJpbmcuaCIKLSNpbmNsdWRl
ICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotCiAjaWYgX19BUFBMRV9fCi0jaW5j
bHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CisKK3R5cGVk
ZWYgc3RydWN0IENHSW1hZ2UgKkNHSW1hZ2VSZWY7CiAKICNpZmRlZiBfX09CSkNfXwogQHByb3Rv
Y29sIFdlYkNvcmVJbWFnZVJlbmRlcmVyOwpAQCAtNDYsMTIgKzQyLDE3IEBACiAKICNlbmRpZiAv
LyBfX0FQUExFX18KIAotY2xhc3MgUVdNYXRyaXg7CitjbGFzcyBRU3RyaW5nOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOwogY2xhc3MgUVBh
aW50ZXI7CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheTsKK3R5cGVkZWYgQXJy
YXk8Y2hhcj4gQnl0ZUFycmF5OworCiBjbGFzcyBJbWFnZSB7CiBwdWJsaWM6CiAgICAgSW1hZ2Uo
KTsKQEAgLTU5LDkgKzYwLDYgQEAKICAgICBJbWFnZShjb25zdCBJbnRTaXplJik7CiAgICAgSW1h
Z2UoY29uc3QgQnl0ZUFycmF5JiwgY29uc3QgUVN0cmluZyYgdHlwZSk7CiAgICAgSW1hZ2UoaW50
LCBpbnQpOwotI2lmIF9fQVBQTEVfXwotICAgIEltYWdlKFdlYkNvcmVJbWFnZVJlbmRlcmVyUHRy
KTsKLSNlbmRpZgogCiAgICAgfkltYWdlKCk7CiAgICAgCkBAIC03NywxMSArNzUsNiBAQAogCiAg
ICAgYm9vbCBkZWNvZGUoY29uc3QgQnl0ZUFycmF5ICZieXRlcywgYm9vbCBhbGxEYXRhUmVjZWl2
ZWQpOwogCi0jaWYgX19BUFBMRV9fCi0gICAgV2ViQ29yZUltYWdlUmVuZGVyZXJQdHIgaW1hZ2VS
ZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VSZW5kZXJlcjsgfQotICAgIENHSW1hZ2VS
ZWYgaW1hZ2VSZWYoKSBjb25zdDsKLSNlbmRpZgotCiAgICAgdm9pZCBzdG9wQW5pbWF0aW9ucygp
IGNvbnN0OwogICAgIHZvaWQgcmVzZXRBbmltYXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldEFu
aW1hdGlvblJlY3QoY29uc3QgSW50UmVjdCYpIGNvbnN0OwpAQCAtMTA2LDYgKzk5LDEyIEBACiAK
ICAgICBzdGF0aWMgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3JGcm9tU3RyaW5n
KGNvbnN0IFFTdHJpbmcmIGNvbXBvc2l0ZU9wZXJhdG9yKTsKIAorI2lmIF9fQVBQTEVfXworICAg
IEltYWdlKFdlYkNvcmVJbWFnZVJlbmRlcmVyUHRyKTsKKyAgICBXZWJDb3JlSW1hZ2VSZW5kZXJl
clB0ciBpbWFnZVJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZVJlbmRlcmVyOyB9Cisg
ICAgQ0dJbWFnZVJlZiBpbWFnZVJlZigpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
Ly8gV2UgZG8gbm90IGFsbG93IGltYWdlcyB0byBiZSBhc3NpZ25lZCB0byBvciBjb3BpZWQuCiAg
ICAgSW1hZ2UoY29uc3QgSW1hZ2UmKTsKSW5kZXg6IHBsYXRmb3JtL0ludFNpemUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBwbGF0Zm9ybS9JbnRTaXplLmgJKHJldmlzaW9uIDEyNDY3KQorKysgcGxhdGZvcm0v
SW50U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNyw1NiArMjcsOTMgQEAKICNkZWZpbmUgSU5UU0laRV9IXwogCiAjaWYgX19BUFBMRV9f
CisKK3R5cGVkZWYgc3RydWN0IENHU2l6ZSBDR1NpemU7CisKIC8vIHdvcmthcm91bmQgZm9yIDxy
ZGFyOi8vcHJvYmxlbS80Mjk0NjI1PgogI2lmICEgX19MUDY0X18gJiYgISBOU19CVUlMRF8zMl9M
SUtFXzY0CiAjdW5kZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMK
ICNlbmRpZgogCi0jaWZkZWYgTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQ
RVMKKyNpZiBOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUwogdHlwZWRl
ZiBzdHJ1Y3QgQ0dTaXplIE5TU2l6ZTsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfTlNTaXplIE5T
U2l6ZTsKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgQ0dTaXplIENHU2l6ZTsKKwogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW50U2l6ZSB7CiBwdWJsaWM6Ci0gICAgSW50
U2l6ZSgpOwotICAgIEludFNpemUoaW50LGludCk7CisgICAgSW50U2l6ZSgpIDogbV93aWR0aCgw
KSwgbV9oZWlnaHQoMCkgeyB9CisgICAgSW50U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIDog
bV93aWR0aCh3aWR0aCksIG1faGVpZ2h0KGhlaWdodCkgeyB9CiAgICAgCi0jaWYgX19BUFBMRV9f
Ci0jaWZuZGVmIE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTCi0gICAg
ZXhwbGljaXQgSW50U2l6ZShjb25zdCBOU1NpemUgJik7Ci0jZW5kaWYKLSAgICBleHBsaWNpdCBJ
bnRTaXplKGNvbnN0IENHU2l6ZSAmKTsKLSNlbmRpZgorICAgIGludCB3aWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fd2lkdGg7IH0KKyAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWln
aHQ7IH0KKworICAgIHZvaWQgc2V0V2lkdGgoaW50IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsg
fQorICAgIHZvaWQgc2V0SGVpZ2h0KGludCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0K
IAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0
dXJuIHc7IH0KLSAgICBpbnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaDsgfQotICAgIHZvaWQg
c2V0V2lkdGgoaW50IHdpZHRoKSB7IHcgPSB3aWR0aDsgfQotICAgIHZvaWQgc2V0SGVpZ2h0KGlu
dCBoZWlnaHQpIHsgaCA9IGhlaWdodDsgfQotICAgIEludFNpemUgZXhwYW5kZWRUbyhjb25zdCBJ
bnRTaXplICYpIGNvbnN0OworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2lk
dGggPD0gMCB8fCBtX2hlaWdodCA8PSAwOyB9CisKKyAgICBJbnRTaXplIGV4cGFuZGVkVG8oY29u
c3QgSW50U2l6ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gSW50U2l6ZSht
X3dpZHRoID4gb3RoZXIubV93aWR0aCA/IG1fd2lkdGggOiBvdGhlci5tX3dpZHRoLAorICAgICAg
ICAgICAgbV9oZWlnaHQgPiBvdGhlci5tX2hlaWdodCA/IG1faGVpZ2h0IDogb3RoZXIubV9oZWln
aHQpOworICAgIH0KIAogI2lmIF9fQVBQTEVfXyAgICAKKworICAgIGV4cGxpY2l0IEludFNpemUo
Y29uc3QgQ0dTaXplJik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBpdCdzIGxv
c3N5CisgICAgb3BlcmF0b3IgQ0dTaXplKCkgY29uc3Q7CisKICNpZm5kZWYgTlNHRU9NRVRSWV9U
WVBFU19TQU1FX0FTX0NHR0VPTUVUUllfVFlQRVMKKyAgICBleHBsaWNpdCBJbnRTaXplKGNvbnN0
IE5TU2l6ZSAmKTsgLy8gZG9uJ3QgZG8gdGhpcyBpbXBsaWNpdGx5IHNpbmNlIGl0J3MgbG9zc3kK
ICAgICBvcGVyYXRvciBOU1NpemUoKSBjb25zdDsKICNlbmRpZgotICAgIG9wZXJhdG9yIENHU2l6
ZSgpIGNvbnN0OwotI2VuZGlmCiAKLSAgICBmcmllbmQgSW50U2l6ZSBvcGVyYXRvcisoY29uc3Qg
SW50U2l6ZSAmLCBjb25zdCBJbnRTaXplICYpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0o
Y29uc3QgSW50U2l6ZSAmLCBjb25zdCBJbnRTaXplICYpOwotICAgIGZyaWVuZCBib29sIG9wZXJh
dG9yIT0oY29uc3QgSW50U2l6ZSAmLCBjb25zdCBJbnRTaXplICYpOworI2VuZGlmCiAKIHByaXZh
dGU6Ci0gICAgaW50IHc7Ci0gICAgaW50IGg7CisgICAgaW50IG1fd2lkdGgsIG1faGVpZ2h0Owog
fTsKIAoraW5saW5lIEludFNpemUmIG9wZXJhdG9yKz0oSW50U2l6ZSYgYSwgY29uc3QgSW50U2l6
ZSYgYikKK3sKKyAgICBhLnNldFdpZHRoKGEud2lkdGgoKSArIGIud2lkdGgoKSk7CisgICAgYS5z
ZXRIZWlnaHQoYS5oZWlnaHQoKSArIGIuaGVpZ2h0KCkpOworICAgIHJldHVybiBhOworfQorCitp
bmxpbmUgSW50U2l6ZSYgb3BlcmF0b3ItPShJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQor
eworICAgIGEuc2V0V2lkdGgoYS53aWR0aCgpIC0gYi53aWR0aCgpKTsKKyAgICBhLnNldEhlaWdo
dChhLmhlaWdodCgpIC0gYi5oZWlnaHQoKSk7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBJ
bnRTaXplIG9wZXJhdG9yKyhjb25zdCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQorewor
ICAgIHJldHVybiBJbnRTaXplKGEud2lkdGgoKSArIGIud2lkdGgoKSwgYS5oZWlnaHQoKSArIGIu
aGVpZ2h0KCkpOworfQorCitpbmxpbmUgSW50U2l6ZSBvcGVyYXRvci0oY29uc3QgSW50U2l6ZSYg
YSwgY29uc3QgSW50U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gSW50U2l6ZShhLndpZHRoKCkgLSBi
LndpZHRoKCksIGEuaGVpZ2h0KCkgLSBiLmhlaWdodCgpKTsKK30KKworaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXplJiBiKQoreworICAgIHJldHVy
biBhLndpZHRoKCkgPT0gYi53aWR0aCgpICYmIGEuaGVpZ2h0KCkgPT0gYi5oZWlnaHQoKTsKK30K
KworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBJbnRTaXplJiBhLCBjb25zdCBJbnRTaXpl
JiBiKQoreworICAgIHJldHVybiBhLndpZHRoKCkgIT0gYi53aWR0aCgpIHx8IGEuaGVpZ2h0KCkg
IT0gYi5oZWlnaHQoKTsKK30KKwogfQogCiAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gdGhlIGVuZ2lu
ZSBmaWxlcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIGJlIGluIHRoZSBXZWJDb3JlIG5hbWVzcGFj
ZS4KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfbGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVy
aW5nL3JlbmRlcl9saW5lLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJpbmcvcmVuZGVy
X2xpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsMTEgKzc0OCw5IEBACiAKIHZvaWQgSW5s
aW5lRmxvd0JveDo6cGFpbnQoUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGksIGludCB0eCwgaW50
IHR5KQogewotICAgIGJvb2wgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSB0cnVlOwogICAgIGludCB4
UG9zID0gdHggKyBtX3ggLSBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpOwog
ICAgIGludCB3ID0gd2lkdGgoKSArIDIgKiBvYmplY3QoKS0+bWF4aW1hbE91dGxpbmVTaXplKGku
cGhhc2UpOwotICAgIGlmICgoeFBvcyA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkpIHx8ICh4UG9z
ICsgdyA8PSBpLnIueCgpKSkKLSAgICAgICAgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSBmYWxzZTsK
KyAgICBib29sIGludGVyc2VjdHNEYW1hZ2VSZWN0ID0geFBvcyA8IGkuci5yaWdodCgpICYmIHhQ
b3MgKyB3ID4gaS5yLngoKTsKICAgICAKICAgICBpZiAoaW50ZXJzZWN0c0RhbWFnZVJlY3QpIHsK
ICAgICAgICAgaWYgKGkucGhhc2UgPT0gUGFpbnRBY3Rpb25PdXRsaW5lKSB7CkBAIC0xMDg4LDIz
ICsxMDg2LDI2IEBACiAgICAgfQogfQogCi1ib29sIEVsbGlwc2lzQm94Ojpub2RlQXRQb2ludChS
ZW5kZXJPYmplY3Q6Ok5vZGVJbmZvJiBpbmZvLCBpbnQgX3gsIGludCBfeSwgaW50IF90eCwgaW50
IF90eSkKK2Jvb2wgRWxsaXBzaXNCb3g6Om5vZGVBdFBvaW50KFJlbmRlck9iamVjdDo6Tm9kZUlu
Zm8mIGluZm8sIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHkpCiB7CisgICAgdHggKz0gbV94
OworICAgIHR5ICs9IG1feTsKKwogICAgIC8vIEhpdCB0ZXN0IHRoZSBtYXJrdXAgYm94LgogICAg
IGlmIChtX21hcmt1cEJveCkgewotICAgICAgICBfdHggKz0gbV94ICsgbV93aWR0aCAtIG1fbWFy
a3VwQm94LT54UG9zKCk7Ci0gICAgICAgIF90eSArPSBtX3kgKyBtX2Jhc2VsaW5lIC0gKG1fbWFy
a3VwQm94LT55UG9zKCkgKyBtX21hcmt1cEJveC0+YmFzZWxpbmUoKSk7Ci0gICAgICAgIGlmICht
X21hcmt1cEJveC0+bm9kZUF0UG9pbnQoaW5mbywgX3gsIF95LCBfdHgsIF90eSkpIHsKKyAgICAg
ICAgaW50IG10eCA9IHR4ICsgbV93aWR0aCAtIG1fbWFya3VwQm94LT54UG9zKCk7CisgICAgICAg
IGludCBtdHkgPSB0eSArIG1fYmFzZWxpbmUgLSAobV9tYXJrdXBCb3gtPnlQb3MoKSArIG1fbWFy
a3VwQm94LT5iYXNlbGluZSgpKTsKKyAgICAgICAgaWYgKG1fbWFya3VwQm94LT5ub2RlQXRQb2lu
dChpbmZvLCB4LCB5LCBtdHgsIG10eSkpIHsKICAgICAgICAgICAgIG9iamVjdCgpLT5zZXRJbm5l
ck5vZGUoaW5mbyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIEludFJlY3QgcmVjdChfdHggKyBtX3gsIF90eSArIG1feSwgbV93aWR0aCwgbV9oZWln
aHQpOwotICAgIGlmIChvYmplY3QoKS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUg
JiYgcmVjdC5jb250YWlucyhfeCwgX3kpKSB7CisgICAgaWYgKG9iamVjdCgpLT5zdHlsZSgpLT52
aXNpYmlsaXR5KCkgPT0gVklTSUJMRSAmJiBJbnRSZWN0KHR4LCB0eSwgbV93aWR0aCwgbV9oZWln
aHQpLmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIG9iamVjdCgpLT5zZXRJbm5lck5vZGUoaW5m
byk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApJbmRleDogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyOCwxNSArNTI4LDE0IEBA
CiAKICAgICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIGF0IGFsbC4uLgogICAg
IGludCBvcyA9IDIqbWF4aW1hbE91dGxpbmVTaXplKGkucGhhc2UpOwotICAgIGlmICgoX3R5ID49
IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkgKyBvcykgfHwgKF90eSArIF90b3BFeHRyYSArIG1faGVp
Z2h0ICsgX2JvdHRvbUV4dHJhIDw9IGkuci55KCkgLSBvcykpCisgICAgaWYgKF90eSA+PSBpLnIu
Ym90dG9tKCkgKyBvcyB8fCBfdHkgKyBfdG9wRXh0cmEgKyBtX2hlaWdodCArIF9ib3R0b21FeHRy
YSA8PSBpLnIueSgpIC0gb3MpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChpLnBoYXNlID09
IFBhaW50QWN0aW9uQ29sbGFwc2VkVGFibGVCb3JkZXJzICYmIHN0eWxlKCktPnZpc2liaWxpdHko
KSA9PSBWSVNJQkxFKSB7CiAgICAgICAgIGludCB3ID0gd2lkdGgoKTsKICAgICAgICAgaW50IGgg
PSBoZWlnaHQoKSArIGJvcmRlclRvcEV4dHJhKCkgKyBib3JkZXJCb3R0b21FeHRyYSgpOwogICAg
ICAgICBwYWludENvbGxhcHNlZEJvcmRlcihpLnAsIF90eCwgX3R5LCB3LCBoKTsKLSAgICB9Ci0g
ICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoaSwg
X3R4LCBfdHkgKyBfdG9wRXh0cmEpOwogCiAjaWZkZWYgQk9YX0RFQlVHCkBAIC03NDMsNyArNzQy
LDcgQEAKICAgICB9CiAKICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7Ci0gICAgaW50
IGVuZCA9IGtNaW4oaS5yLnkoKSArIGkuci5oZWlnaHQoKSwgX3R5ICsgaCk7CisgICAgaW50IGVu
ZCA9IGtNaW4oaS5yLmJvdHRvbSgpLCBfdHkgKyBoKTsKICAgICBpbnQgbWggPSBlbmQgLSBteTsK
IAogICAgIGlmIChiZ0xheWVyLT5oYXNJbWFnZSgpIHx8IGMuaXNWYWxpZCgpKSB7CkluZGV4OiBy
ZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvcmVuZGVy
X2xheWVyLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQ3LDcgKzY0Nyw3IEBACiAgICAgCiAgICAgLy8gRmluZCB0
aGUgYXBwcm9wcmlhdGUgWCBjb29yZGluYXRlIHRvIHNjcm9sbCB0by4KICAgICBTY3JvbGxCZWhh
dmlvciBzY3JvbGxYID0gZ2V0SGlkZGVuQmVoYXZpb3IoYWxpZ25YKTsKLSAgICBpbnQgaW50ZXJz
ZWN0V2lkdGggPSB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoZXhwb3NlUmVjdCkud2lkdGgoKTsKKyAg
ICBpbnQgaW50ZXJzZWN0V2lkdGggPSBpbnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGV4cG9zZVJl
Y3QpLndpZHRoKCk7CiAgICAgLy8gSWYgdGhlIHJlY3RhbmdsZSBpcyBmdWxseSB2aXNpYmxlLCB1
c2UgdGhlIHNwZWNpZmllZCB2aXNpYmxlIGJlaGF2aW9yLgogICAgIC8vIElmIHRoZSByZWN0YW5n
bGUgaXMgcGFydGlhbGx5IHZpc2libGUsIGJ1dCBvdmVyIGEgY2VydGFpbiB0aHJlc2hvbGQsIHRo
ZW4gdHJlYXQgaXQgYXMgZnVsbHkgdmlzaWJsZSB0byBhdm9pZCB1bm5lY2Vzc2FyeSBob3Jpem9u
dGFsIHNjcm9sbGluZwogICAgIGlmIChpbnRlcnNlY3RXaWR0aCA9PSB3IHx8IGludGVyc2VjdFdp
ZHRoID49IE1JTl9JTlRFUlNFQ1RfRk9SX1JFVkVBTCkKQEAgLTY2Nyw3ICs2NjcsNyBAQAogICAg
ICAgICB4ID0gdmlzaWJsZVJlY3QueCgpOwogICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBhbGln
biB0byB0aGUgY2xvc2VzdCBlZGdlLCBhbmQgdGhlIGV4cG9zZVJlY3QgaXMgZnVydGhlciByaWdo
dCB0aGFuIHRoZSB2aXNpYmxlUmVjdCwgYW5kIG5vdCBiaWdnZXIgdGhhbiB0aGUgdmlzaWJsZSBh
cmVhLCB0aGVuIGFsaWduUmlnaHQuCiAgICAgZWxzZSBpZiAoKHNjcm9sbFggPT0gYWxpZ25SaWdo
dCkgfHwgKChzY3JvbGxYID09IGFsaWduVG9DbG9zZXN0RWRnZSkgJiYgZXhwb3NlUmVjdC5yaWdo
dCgpID4gdmlzaWJsZVJlY3QucmlnaHQoKSAmJiB3IDwgdmlzaWJsZVJlY3Qud2lkdGgoKSkpCi0g
ICAgICAgIHggPSBleHBvc2VSZWN0LnJpZ2h0KCkgLSB2aXNpYmxlUmVjdC53aWR0aCgpOworICAg
ICAgICB4ID0gKGV4cG9zZVJlY3QucmlnaHQoKSAtIDEpIC0gdmlzaWJsZVJlY3Qud2lkdGgoKTsK
ICAgICBlbHNlIGlmIChzY3JvbGxYID09IGFsaWduQ2VudGVyKQogICAgICAgICB4IC09ICh2aXNp
YmxlUmVjdC53aWR0aCgpIC0gdykgLyAyOwogICAgIC8vIEJ5IGRlZmF1bHQsIHggaXMgc2V0IHRv
IHRoZSBsZWZ0IG9mIHRoZSBleHBvc2VSZWN0LCBzbyBmb3IgdGhlIGFsaWduTGVmdCBjYXNlLCAK
QEAgLTY3Niw3ICs2NzYsNyBAQAogICAgIAogICAgIC8vIEZpbmQgdGhlIGFwcHJvcHJpYXRlIFkg
Y29vcmRpbmF0ZSB0byBzY3JvbGwgdG8uCiAgICAgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsWSA9IGdl
dEhpZGRlbkJlaGF2aW9yKGFsaWduWSk7Ci0gICAgaW50IGludGVyc2VjdEhlaWdodCA9IHZpc2li
bGVSZWN0LmludGVyc2VjdChleHBvc2VSZWN0KS5oZWlnaHQoKTsKKyAgICBpbnQgaW50ZXJzZWN0
SGVpZ2h0ID0gaW50ZXJzZWN0aW9uKHZpc2libGVSZWN0LCBleHBvc2VSZWN0KS5oZWlnaHQoKTsK
ICAgICAvLyBJZiB0aGUgcmVjdGFuZ2xlIGlzIGZ1bGx5IHZpc2libGUsIHVzZSB0aGUgc3BlY2lm
aWVkIHZpc2libGUgYmVoYXZpb3IuCiAgICAgaWYgKGludGVyc2VjdEhlaWdodCA9PSBoKQogICAg
ICAgICBzY3JvbGxZID0gZ2V0VmlzaWJsZUJlaGF2aW9yKGFsaWduWSk7CkBAIC02OTUsNyArNjk1
LDcgQEAKICAgICAgICAgeSA9IHZpc2libGVSZWN0LnkoKTsKICAgICAvLyBJZiB3ZSdyZSB0cnlp
bmcgdG8gYWxpZ24gdG8gdGhlIGNsb3Nlc3QgZWRnZSwgYW5kIHRoZSBleHBvc2VSZWN0IGlzIGZ1
cnRoZXIgZG93biB0aGFuIHRoZSB2aXNpYmxlUmVjdCwgYW5kIG5vdCBiaWdnZXIgdGhhbiB0aGUg
dmlzaWJsZSBhcmVhLCB0aGVuIGFsaWduQm90dG9tLgogICAgIGVsc2UgaWYgKChzY3JvbGxZID09
IGFsaWduQm90dG9tKSB8fCAoKHNjcm9sbFkgPT0gYWxpZ25Ub0Nsb3Nlc3RFZGdlKSAmJiBleHBv
c2VSZWN0LmJvdHRvbSgpID4gdmlzaWJsZVJlY3QuYm90dG9tKCkgJiYgaCA8IHZpc2libGVSZWN0
LmhlaWdodCgpKSkKLSAgICAgICAgeSA9IGV4cG9zZVJlY3QuYm90dG9tKCkgLSB2aXNpYmxlUmVj
dC5oZWlnaHQoKTsKKyAgICAgICAgeSA9IChleHBvc2VSZWN0LmJvdHRvbSgpIC0gMSkgLSB2aXNp
YmxlUmVjdC5oZWlnaHQoKTsKICAgICBlbHNlIGlmIChzY3JvbGxZID09IGFsaWduQ2VudGVyKQog
ICAgICAgICB5IC09ICh2aXNpYmxlUmVjdC5oZWlnaHQoKSAtIGgpIC8gMjsKICAgICAvLyBCeSBk
ZWZhdWx0LCB5IGlzIHNldCB0byB0aGUgdG9wIG9mIHRoZSBleHBvc2VSZWN0LCBzbyBmb3IgdGhl
IGFsaWduVG9wIGNhc2UsIApAQCAtODAyLDE4ICs4MDIsMTYgQEAKIFJlbmRlckxheWVyOjpwb3Np
dGlvblNjcm9sbGJhcnMoY29uc3QgSW50UmVjdCYgYWJzQm91bmRzKQogewogICAgIGlmIChtX3ZC
YXIpIHsKLSAgICAgICAgbV92QmFyLT5tb3ZlKGFic0JvdW5kcy54KCkrYWJzQm91bmRzLndpZHRo
KCktbV9vYmplY3QtPmJvcmRlclJpZ2h0KCktbV92QmFyLT53aWR0aCgpLAorICAgICAgICBtX3ZC
YXItPm1vdmUoYWJzQm91bmRzLnJpZ2h0KCkgLSBtX29iamVjdC0+Ym9yZGVyUmlnaHQoKSAtIG1f
dkJhci0+d2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAgIGFic0JvdW5kcy55KCkrbV9vYmpl
Y3QtPmJvcmRlclRvcCgpKTsKLSAgICAgICAgbV92QmFyLT5yZXNpemUobV92QmFyLT53aWR0aCgp
LCBhYnNCb3VuZHMuaGVpZ2h0KCkgLQotICAgICAgICAgICAgICAgICAgICAgICAobV9vYmplY3Qt
PmJvcmRlclRvcCgpK21fb2JqZWN0LT5ib3JkZXJCb3R0b20oKSkgLQotICAgICAgICAgICAgICAg
ICAgICAgICAobV9oQmFyID8gbV9oQmFyLT5oZWlnaHQoKS0xIDogMCkpOworICAgICAgICBtX3ZC
YXItPnJlc2l6ZShtX3ZCYXItPndpZHRoKCksCisgICAgICAgICAgICBhYnNCb3VuZHMuaGVpZ2h0
KCkgLSAobV9vYmplY3QtPmJvcmRlclRvcCgpICsgbV9vYmplY3QtPmJvcmRlckJvdHRvbSgpKSAt
IChtX2hCYXIgPyBtX2hCYXItPmhlaWdodCgpIC0gMSA6IDApKTsKICAgICB9CiAKICAgICBpZiAo
bV9oQmFyKSB7CiAgICAgICAgIG1faEJhci0+bW92ZShhYnNCb3VuZHMueCgpK21fb2JqZWN0LT5i
b3JkZXJMZWZ0KCksCi0gICAgICAgICAgICAgICAgICAgICBhYnNCb3VuZHMueSgpK2Fic0JvdW5k
cy5oZWlnaHQoKS1tX29iamVjdC0+Ym9yZGVyQm90dG9tKCktbV9oQmFyLT5oZWlnaHQoKSk7Ci0g
ICAgICAgIG1faEJhci0+cmVzaXplKGFic0JvdW5kcy53aWR0aCgpIC0gKG1fb2JqZWN0LT5ib3Jk
ZXJMZWZ0KCkrbV9vYmplY3QtPmJvcmRlclJpZ2h0KCkpIC0KLSAgICAgICAgICAgICAgICAgICAg
ICAgKG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKS0xIDogMCksCisgICAgICAgICAgICBhYnNCb3Vu
ZHMuYm90dG9tKCkgLSBtX29iamVjdC0+Ym9yZGVyQm90dG9tKCkgLSBtX2hCYXItPmhlaWdodCgp
KTsKKyAgICAgICAgbV9oQmFyLT5yZXNpemUoYWJzQm91bmRzLndpZHRoKCkgLSAobV9vYmplY3Qt
PmJvcmRlckxlZnQoKSArIG1fb2JqZWN0LT5ib3JkZXJSaWdodCgpKSAtIChtX3ZCYXIgPyBtX3ZC
YXItPndpZHRoKCkgLSAxIDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgIG1faEJhci0+aGVp
Z2h0KCkpOwogICAgIH0KIH0KQEAgLTEyNDYsMTUgKzEyNDQsMTUgQEAKICAgICAgICAgCiAgICAg
ICAgIGlmIChtX29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKICAgICAgICAgICAgIEludFJl
Y3QgbmV3T3ZlcmZsb3dDbGlwID0gbV9vYmplY3QtPmdldE92ZXJmbG93Q2xpcFJlY3QoeCx5KTsK
LSAgICAgICAgICAgIG92ZXJmbG93Q2xpcFJlY3QgID0gbmV3T3ZlcmZsb3dDbGlwLmludGVyc2Vj
dChvdmVyZmxvd0NsaXBSZWN0KTsKKyAgICAgICAgICAgIG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJz
ZWN0KG5ld092ZXJmbG93Q2xpcCk7CiAgICAgICAgICAgICBpZiAobV9vYmplY3QtPmlzUG9zaXRp
b25lZCgpIHx8IG1fb2JqZWN0LT5pc1JlbFBvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICBw
b3NDbGlwUmVjdCA9IG5ld092ZXJmbG93Q2xpcC5pbnRlcnNlY3QocG9zQ2xpcFJlY3QpOworICAg
ICAgICAgICAgICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdPdmVyZmxvd0NsaXApOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChtX29iamVjdC0+aGFzQ2xpcCgpKSB7CiAgICAgICAgICAgICBJ
bnRSZWN0IG5ld1Bvc0NsaXAgPSBtX29iamVjdC0+Z2V0Q2xpcFJlY3QoeCx5KTsKLSAgICAgICAg
ICAgIHBvc0NsaXBSZWN0ID0gcG9zQ2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOwotICAg
ICAgICAgICAgb3ZlcmZsb3dDbGlwUmVjdCA9IG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5l
d1Bvc0NsaXApOwotICAgICAgICAgICAgZml4ZWRDbGlwUmVjdCA9IGZpeGVkQ2xpcFJlY3QuaW50
ZXJzZWN0KG5ld1Bvc0NsaXApOworICAgICAgICAgICAgcG9zQ2xpcFJlY3QuaW50ZXJzZWN0KG5l
d1Bvc0NsaXApOworICAgICAgICAgICAgb3ZlcmZsb3dDbGlwUmVjdC5pbnRlcnNlY3QobmV3UG9z
Q2xpcCk7CisgICAgICAgICAgICBmaXhlZENsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsK
ICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTEyNzcsNyArMTI3NSw3IEBACiAgICAgICAgIGJh
Y2tncm91bmRSZWN0ID0gbV9vYmplY3QtPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRklYRUQgPyBw
YXJlbnQoKS0+Y2xpcFJlY3RzKCktPmZpeGVkQ2xpcFJlY3QoKSA6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSA/IHBhcmVudCgpLT5jbGlwUmVjdHMo
KS0+cG9zQ2xpcFJlY3QoKSA6IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPm92ZXJmbG93Q2xpcFJlY3Qo
KSk7Ci0gICAgICAgIGJhY2tncm91bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBh
aW50RGlydHlSZWN0KTsKKyAgICAgICAgYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBhaW50RGly
dHlSZWN0KTsKICAgICB9IGVsc2UKICAgICAgICAgYmFja2dyb3VuZFJlY3QgPSBwYWludERpcnR5
UmVjdDsKICAgICBmb3JlZ3JvdW5kUmVjdCA9IGJhY2tncm91bmRSZWN0OwpAQCAtMTI5MiwxOCAr
MTI5MCwxOCBAQAogICAgIGlmIChtX29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkgfHwgbV9vYmpl
Y3QtPmhhc0NsaXAoKSkgewogICAgICAgICAvLyBUaGlzIGxheWVyIGVzdGFibGlzaGVzIGEgY2xp
cCBvZiBzb21lIGtpbmQuCiAgICAgICAgIGlmIChtX29iamVjdC0+aGFzT3ZlcmZsb3dDbGlwKCkp
Ci0gICAgICAgICAgICBmb3JlZ3JvdW5kUmVjdCA9IGZvcmVncm91bmRSZWN0LmludGVyc2VjdCht
X29iamVjdC0+Z2V0T3ZlcmZsb3dDbGlwUmVjdCh4LHkpKTsKKyAgICAgICAgICAgIGZvcmVncm91
bmRSZWN0LmludGVyc2VjdChtX29iamVjdC0+Z2V0T3ZlcmZsb3dDbGlwUmVjdCh4LHkpKTsKICAg
ICAgICAgaWYgKG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsKICAgICAgICAgICAgIC8vIENsaXAgYXBw
bGllcyB0byAqdXMqIGFzIHdlbGwsIHNvIGdvIGFoZWFkIGFuZCB1cGRhdGUgdGhlIGRhbWFnZVJl
Y3QuCiAgICAgICAgICAgICBJbnRSZWN0IG5ld1Bvc0NsaXAgPSBtX29iamVjdC0+Z2V0Q2xpcFJl
Y3QoeCx5KTsKLSAgICAgICAgICAgIGJhY2tncm91bmRSZWN0ID0gYmFja2dyb3VuZFJlY3QuaW50
ZXJzZWN0KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAgZm9yZWdyb3VuZFJlY3QgPSBmb3JlZ3Jv
dW5kUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7Ci0gICAgICAgICAgICBvdXRsaW5lUmVjdCA9
IG91dGxpbmVSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIGJhY2tncm91
bmRSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIGZvcmVncm91bmRSZWN0
LmludGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIG91dGxpbmVSZWN0LmludGVyc2Vj
dChuZXdQb3NDbGlwKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHdlIGVzdGFibGlzaCBh
IGNsaXAgYXQgYWxsLCB0aGVuIGdvIGFoZWFkIGFuZCBtYWtlIHN1cmUgb3VyIGJhY2tncm91bmQK
ICAgICAgICAgLy8gcmVjdCBpcyBpbnRlcnNlY3RlZCB3aXRoIG91ciBsYXllcidzIGJvdW5kcy4K
LSAgICAgICAgYmFja2dyb3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QobGF5ZXJC
b3VuZHMpOworICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QobGF5ZXJCb3VuZHMpOwog
ICAgIH0KIH0KIApJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5k
ZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MSw5ICs1NzEsOSBA
QAogICAgICAgICAgICAgaWYgKCBwID49IDAgKXsKICAgICAgICAgICAgICAgICBwYWludC5zZXRQ
ZW4oUGVuOjpOb1Blbik7CiAgICAgICAgICAgICAgICAgcGFpbnQuc2V0QnJ1c2goIENvbG9yOjpn
cmF5ICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0FscGhhKChmbG9hdCkwLjI1KTsK
KyAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoMC4yNSk7CiAgICAgICAgICAgICAg
ICAgcGFpbnQuZHJhd1JlY3QoIHAgICsgc3cvMiAtIHJCb3JkLCByLnkoKSwgMipyQm9yZCwgci5o
ZWlnaHQoKSApOwotICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgoZmxvYXQpMS4w
KTsKKyAgICAgICAgICAgICAgICB2LT5zZXREcmF3aW5nQWxwaGEoMS4wKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICggbV9vbGRwb3MgPj0gMCApCkBA
IC01ODEsOSArNTgxLDkgQEAKICAgICAgICAgICAgIGlmICggcCA+PSAwICl7CiAgICAgICAgICAg
ICAgICAgcGFpbnQuc2V0UGVuKFBlbjo6Tm9QZW4pOwogICAgICAgICAgICAgICAgIHBhaW50LnNl
dEJydXNoKCBDb2xvcjo6Z3JheSApOwotICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBo
YSgoZmxvYXQpMC4yNSk7CisgICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0FscGhhKDAuMjUp
OwogICAgICAgICAgICAgICAgIHBhaW50LmRyYXdSZWN0KCByLngoKSwgcCArIHN3LzIgLSByQm9y
ZCwgci53aWR0aCgpLCAyKnJCb3JkICk7Ci0gICAgICAgICAgICAgICAgdi0+c2V0RHJhd2luZ0Fs
cGhhKChmbG9hdCkxLjApOworICAgICAgICAgICAgICAgIHYtPnNldERyYXdpbmdBbHBoYSgxLjAp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1fb2xkcG9zID0gcDsKSW5kZXg6
IHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsOSArMzcyLDkgQEAKICAgICBQYWludEFjdGlvbiBwYWlu
dEFjdGlvbiA9IGkucGhhc2U7CiAgICAgCiAgICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNp
emUocGFpbnRBY3Rpb24pOwotICAgIGlmICgoX3R5ID49IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkg
KyBvcykgfHwgKF90eSArIGhlaWdodCgpIDw9IGkuci55KCkgLSBvcykpCisgICAgaWYgKF90eSA+
PSBpLnIuYm90dG9tKCkgKyBvcyB8fCBfdHkgKyBoZWlnaHQoKSA8PSBpLnIueSgpIC0gb3MpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpZiAoKF90eCA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkgKyBv
cykgfHwgKF90eCArIHdpZHRoKCkgPD0gaS5yLngoKSAtIG9zKSkKKyAgICBpZiAoX3R4ID49IGku
ci5yaWdodCgpICsgb3MgfHwgX3R4ICsgd2lkdGgoKSA8PSBpLnIueCgpIC0gb3MpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmICgocGFpbnRBY3Rpb24gPT0gUGFpbnRBY3Rpb25CbG9ja0JhY2tn
cm91bmQgfHwgcGFpbnRBY3Rpb24gPT0gUGFpbnRBY3Rpb25DaGlsZEJsb2NrQmFja2dyb3VuZCkK
SW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfYm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
cmVuZGVyX2JveC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcmVuZGVyaW5nL3JlbmRlcl9ib3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsMTYgKzIzNCwxOCBAQAogfQogCiAvLyBIaXQgVGVz
dGluZwotYm9vbCBSZW5kZXJCb3g6Om5vZGVBdFBvaW50KE5vZGVJbmZvJiBpbmZvLCBpbnQgX3gs
IGludCBfeSwgaW50IF90eCwgaW50IF90eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBI
aXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCitib29sIFJlbmRlckJveDo6bm9kZUF0UG9pbnQo
Tm9kZUluZm8mIGluZm8sIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rp
b24gYWN0aW9uKQogeworICAgIHR4ICs9IG1feDsKKyAgICB0eSArPSBtX3k7CisKICAgICAvLyBD
aGVjayBraWRzIGZpcnN0LgotICAgIF90eCArPSBtX3g7Ci0gICAgX3R5ICs9IG1feTsKICAgICBm
b3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPnByZXZpb3VzU2libGluZygpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIHNr
aXAgb3ZlciBpbmxpbmUgZmxvd3MsIHNpbmNlIHRoZXkgY2FuIHNob3cgdXAgaW5zaWRlIHRhYmxl
IHJvd3MgYXQgdGhlIG1vbWVudCAoYSBkZW1vdGVkIGlubGluZSA8Zm9ybT4gZm9yIGV4YW1wbGUp
LiAgSWYgd2UgZXZlciBpbXBsZW1lbnQgYQotICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBoaXQt
dGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3VsZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBh
bnl3YXkpLCB0aGVuIHdlIGNhbiByZW1vdmUgdGhpcyBjaGVjay4KLSAgICAgICAgaWYgKCFjaGls
ZC0+bGF5ZXIoKSAmJiAhY2hpbGQtPmlzSW5saW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2lu
dChpbmZvLCBfeCwgX3ksIF90eCwgX3R5LCBoaXRUZXN0QWN0aW9uKSkgeworICAgICAgICAvLyBG
SVhNRTogV2UgaGF2ZSB0byBza2lwIG92ZXIgaW5saW5lIGZsb3dzLCBzaW5jZSB0aGV5IGNhbiBz
aG93IHVwIGluc2lkZSB0YWJsZSByb3dzCisgICAgICAgIC8vIGF0IHRoZSBtb21lbnQgKGEgZGVt
b3RlZCBpbmxpbmUgPGZvcm0+IGZvciBleGFtcGxlKS4gSWYgd2UgZXZlciBpbXBsZW1lbnQgYQor
ICAgICAgICAvLyB0YWJsZS1zcGVjaWZpYyBoaXQtdGVzdCBtZXRob2QgKHdoaWNoIHdlIHNob3Vs
ZCBkbyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbnl3YXkpLAorICAgICAgICAvLyB0aGVuIHdl
IGNhbiByZW1vdmUgdGhpcyBjaGVjay4KKyAgICAgICAgaWYgKCFjaGlsZC0+bGF5ZXIoKSAmJiAh
Y2hpbGQtPmlzSW5saW5lRmxvdygpICYmIGNoaWxkLT5ub2RlQXRQb2ludChpbmZvLCB4LCB5LCB0
eCwgdHksIGFjdGlvbikpIHsKICAgICAgICAgICAgIHNldElubmVyTm9kZShpbmZvKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0yNTEsMTQgKzI1MywxMSBAQAogICAg
IAogICAgIC8vIENoZWNrIG91ciBib3VuZHMgbmV4dC4gIEZvciB0aGlzIHB1cnBvc2UgYWx3YXlz
IGFzc3VtZSB0aGF0IHdlIGNhbiBvbmx5IGJlIGhpdCBpbiB0aGUKICAgICAvLyBmb3JlZ3JvdW5k
IHBoYXNlICh3aGljaCBpcyB0cnVlIGZvciByZXBsYWNlZCBlbGVtZW50cyBsaWtlIGltYWdlcyku
Ci0gICAgaWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZvcmVncm91bmQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAKLSAgICBJbnRSZWN0IGJvdW5kc1JlY3QoX3R4LCBfdHksIG1fd2lk
dGgsIG1faGVpZ2h0KTsKLSAgICBpZiAoYm91bmRzUmVjdC5jb250YWlucyhfeCwgX3kpKSB7Cisg
ICAgaWYgKGFjdGlvbiA9PSBIaXRUZXN0Rm9yZWdyb3VuZCAmJiBJbnRSZWN0KHR4LCB0eSwgbV93
aWR0aCwgbV9oZWlnaHQpLmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIHNldElubmVyTm9kZShp
bmZvKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCkBAIC01NTQsOSArNTUzLDggQEAKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgY3cgPSBwdzsKICAgICAgICAgICAgICAgICBjeCA9IHZyLngoKTsKLSAgICAgICAgICAg
ICAgICBpZiAocGl4dyA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3ggPSAgcGl4dyAtICgo
YmdMYXllci0+YmFja2dyb3VuZFhQb3NpdGlvbigpLm1pbldpZHRoKHB3LXBpeHcpKSAlIHBpeHcg
KTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHBpeHcgPiAwKQorICAg
ICAgICAgICAgICAgICAgICBzeCA9IHBpeHcgLSBiZ0xheWVyLT5iYWNrZ3JvdW5kWFBvc2l0aW9u
KCkubWluV2lkdGgocHcgLSBwaXh3KSAlIHBpeHc7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGlmKCAoYmdyID09IE5PX1JFUEVBVCB8fCBiZ3IgPT0gUkVQRUFUX1gpICYmIHBoID4gcGl4
aCApIHsKQEAgLTU2NSwxNyArNTYzLDE3IEBACiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGNoID0gcGg7CiAgICAgICAgICAgICAgICAgY3kgPSB2ci55KCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBpeGggPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN5ID0gcGl4aCAt
ICgoYmdMYXllci0+YmFja2dyb3VuZFlQb3NpdGlvbigpLm1pbldpZHRoKHBoLXBpeGgpKSAlIHBp
eGggKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHBpeGggPiAwKQor
ICAgICAgICAgICAgICAgICAgICBzeSA9IHBpeGggLSBiZ0xheWVyLT5iYWNrZ3JvdW5kWVBvc2l0
aW9uKCkubWluV2lkdGgocGggLSBwaXhoKSAlIHBpeGg7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIEludFJlY3QgZml4KGN4LGN5LGN3LGNoKTsKLSAgICAgICAgICAgIEludFJlY3QgZWxl
KF90eCxfdHksdyxoKTsKLSAgICAgICAgICAgIEludFJlY3QgYiA9IGZpeC5pbnRlcnNlY3QoZWxl
KTsKKyAgICAgICAgICAgIEludFJlY3QgYiA9IGludGVyc2VjdGlvbihJbnRSZWN0KGN4LCBjeSwg
Y3csIGNoKSwgSW50UmVjdChfdHgsIF90eSwgdywgaCkpOwogICAgICAgICAgICAgc3grPWIueCgp
LWN4OwogICAgICAgICAgICAgc3krPWIueSgpLWN5OwotICAgICAgICAgICAgY3g9Yi54KCk7Y3k9
Yi55KCk7Y3c9Yi53aWR0aCgpO2NoPWIuaGVpZ2h0KCk7CisgICAgICAgICAgICBjeCA9IGIueCgp
OworICAgICAgICAgICAgY3kgPSBiLnkoKTsKKyAgICAgICAgICAgIGN3ID0gYi53aWR0aCgpOwor
ICAgICAgICAgICAgY2ggPSBiLmhlaWdodCgpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGN3
PjAgJiYgY2g+MCkKQEAgLTc4NywxMSArNzg1LDEwIEBACiAgICAgICAgICAgICBJbnRSZWN0IGJv
eFJlY3QoMCwgMCwgby0+bGF5ZXIoKS0+d2lkdGgoKSwgby0+bGF5ZXIoKS0+aGVpZ2h0KCkpOwog
ICAgICAgICAgICAgby0+bGF5ZXIoKS0+c3VidHJhY3RTY3JvbGxPZmZzZXQoeCx5KTsgLy8gRm9y
IG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KICAgICAgICAgICAgIEludFJlY3QgcmVwYWlu
dFJlY3QoeCwgeSwgci53aWR0aCgpLCByLmhlaWdodCgpKTsKLSAgICAgICAgICAgIHIgPSByZXBh
aW50UmVjdC5pbnRlcnNlY3QoYm94UmVjdCk7CisgICAgICAgICAgICByID0gaW50ZXJzZWN0aW9u
KHJlcGFpbnRSZWN0LCBib3hSZWN0KTsKICAgICAgICAgICAgIGlmIChyLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICByLnNldFgoeCk7CiAgICAgICAgICAgICByLnNldFkoeSk7
CiAgICAgICAgIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfZmxvdy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcmVuZGVyaW5nL3JlbmRlcl9mbG93LmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJp
bmcvcmVuZGVyX2Zsb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsNyArMzcwLDcgQEAKICAg
ICBpbnQgeVBvcyA9IGZpcnN0TGluZUJveCgpLT5yb290KCktPnNlbGVjdGlvblRvcCgpIC0gbWF4
aW1hbE91dGxpbmVTaXplKGkucGhhc2UpOwogICAgIGludCBoID0gbWF4aW1hbE91dGxpbmVTaXpl
KGkucGhhc2UpICsgbGFzdExpbmVCb3goKS0+cm9vdCgpLT5zZWxlY3Rpb25Ub3AoKSArIGxhc3RM
aW5lQm94KCktPnJvb3QoKS0+c2VsZWN0aW9uSGVpZ2h0KCkgLSB5UG9zOwogICAgIHlQb3MgKz0g
X3R5OwotICAgIGlmICgoeVBvcyA+PSBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoeVBvcyAr
IGggPD0gaS5yLnkoKSkpCisgICAgaWYgKHlQb3MgPj0gaS5yLmJvdHRvbSgpIHx8IHlQb3MgKyBo
IDw9IGkuci55KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFNlZSBpZiBvdXIgcm9vdCBs
aW5lcyBpbnRlcnNlY3Qgd2l0aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdlIHBhaW50
CkBAIC0zODYsNyArMzg2LDcgQEAKICAgICAgICAgICAgIC8vIFRyeSB0byBhdm9pZCBzcGxpdHRp
bmcgYSBsaW5lIHZlcnRpY2FsbHksIGJ1dCBvbmx5IGlmIGl0J3MgbGVzcyB0aGFuIHRoZSBoZWln
aHQKICAgICAgICAgICAgIC8vIG9mIHRoZSBlbnRpcmUgcGFnZS4KICAgICAgICAgICAgIGlmIChj
dXJyLT5yb290KCktPmJvdHRvbU92ZXJmbG93KCkgLSBjdXJyLT5yb290KCktPnRvcE92ZXJmbG93
KCkgPD0gYy0+cHJpbnRSZWN0KCkuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoX3R5
ICsgY3Vyci0+cm9vdCgpLT5ib3R0b21PdmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkueSgpICsg
Yy0+cHJpbnRSZWN0KCkuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoX3R5ICsgY3Vy
ci0+cm9vdCgpLT5ib3R0b21PdmVyZmxvdygpID4gYy0+cHJpbnRSZWN0KCkuYm90dG9tKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKF90eSArIGN1cnItPnJvb3QoKS0+dG9wT3ZlcmZsb3co
KSA8IGMtPnRydW5jYXRlZEF0KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBjLT5zZXRCZXN0
VHJ1bmNhdGVkQXQoX3R5ICsgY3Vyci0+cm9vdCgpLT50b3BPdmVyZmxvdygpLCB0aGlzKTsKICAg
ICAgICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBhYmxlIHRvIHRydW5jYXRlLCBkb24ndCBw
YWludC4KQEAgLTQwMCw3ICs0MDAsNyBAQAogICAgICAgICBpbnQgYm90dG9tID0ga01heChjdXJy
LT5yb290KCktPnNlbGVjdGlvblRvcCgpICsgY3Vyci0+cm9vdCgpLT5zZWxlY3Rpb25IZWlnaHQo
KSwgY3Vyci0+cm9vdCgpLT5ib3R0b21PdmVyZmxvdygpKSArIG1heGltYWxPdXRsaW5lU2l6ZShp
LnBoYXNlKTsKICAgICAgICAgaCA9IGJvdHRvbSAtIHRvcDsKICAgICAgICAgeVBvcyA9IF90eSAr
IHRvcDsKLSAgICAgICAgaWYgKCh5UG9zIDwgaS5yLnkoKSArIGkuci5oZWlnaHQoKSkgJiYgKHlQ
b3MgKyBoID4gaS5yLnkoKSkpCisgICAgICAgIGlmICh5UG9zIDwgaS5yLmJvdHRvbSgpICYmIHlQ
b3MgKyBoID4gaS5yLnkoKSkKICAgICAgICAgICAgIGN1cnItPnBhaW50KGksIF90eCwgX3R5KTsK
ICAgICB9CiAKQEAgLTQ4MywxMiArNDgzLDEyIEBACiAgICAgICAgICAgICAvLyBjYi0+aGVpZ2h0
KCkgaXMgaW5hY2N1cmF0ZSBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9mIHxj
YnwsIHNvIHVzZSB0aGUKICAgICAgICAgICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0ZWFkLiAgRXZl
biBpZiB0aGUgbGF5ZXIncyBzaXplIGlzIHdyb25nLCB0aGUgbGF5ZXIgaXRzZWxmIHdpbGwgcmVw
YWludAogICAgICAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAg
ICAgICAgICAgaW50IHggPSByLmxlZnQoKTsKLSAgICAgICAgICAgIGludCB5ID0gci50b3AoKTsK
KyAgICAgICAgICAgIGludCB4ID0gci54KCk7CisgICAgICAgICAgICBpbnQgeSA9IHIueSgpOwog
ICAgICAgICAgICAgSW50UmVjdCBib3hSZWN0KDAsIDAsIGNiLT5sYXllcigpLT53aWR0aCgpLCBj
Yi0+bGF5ZXIoKS0+aGVpZ2h0KCkpOwogICAgICAgICAgICAgY2ItPmxheWVyKCktPnN1YnRyYWN0
U2Nyb2xsT2Zmc2V0KHgseSk7IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCiAg
ICAgICAgICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0KHgsIHksIHIud2lkdGgoKSwgci5oZWlnaHQo
KSk7Ci0gICAgICAgICAgICByID0gcmVwYWludFJlY3QuaW50ZXJzZWN0KGJveFJlY3QpOworICAg
ICAgICAgICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CiAgICAgICAg
IH0KICAgICAgICAgY2ItPmNvbXB1dGVBYnNvbHV0ZVJlcGFpbnRSZWN0KHIpOwogICAgICAgICAK
QEAgLTQ5NiwxMyArNDk2LDEzIEBACiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3Vy
ciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIWN1cnItPmlzVGV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdpdGhPdXRs
aW5lKG93KTsKLSAgICAgICAgICAgICAgICAgICAgciA9IHIudW5pdGUoY2hpbGRSZWN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgci51bml0ZShjaGlsZFJlY3QpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGNvbnRpbnVhdGlv
bigpICYmICFjb250aW51YXRpb24oKS0+aXNJbmxpbmUoKSkgewogICAgICAgICAgICAgICAgIElu
dFJlY3QgY29udFJlY3QgPSBjb250aW51YXRpb24oKS0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdp
dGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0ZShjb250UmVjdCk7Cisg
ICAgICAgICAgICAgICAgci51bml0ZShjb250UmVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgCkBAIC02OTYsMTEgKzY5NiwxMSBAQAogICAgIFFQdHJMaXN0IDxJbnRSZWN0
PiByZWN0czsKICAgICByZWN0cy5zZXRBdXRvRGVsZXRlKHRydWUpOwogICAgIAotICAgIHJlY3Rz
LmFwcGVuZChuZXcgSW50UmVjdCgwLDAsMCwwKSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJbnRS
ZWN0KTsKICAgICBmb3IgKElubGluZVJ1bkJveCogY3VyciA9IGZpcnN0TGluZUJveCgpOyBjdXJy
OyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkgewogICAgICAgICByZWN0cy5hcHBlbmQobmV3
IEludFJlY3QoY3Vyci0+eFBvcygpLCBjdXJyLT55UG9zKCksIGN1cnItPndpZHRoKCksIGN1cnIt
PmhlaWdodCgpKSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChuZXcgSW50UmVjdCgwLDAsMCww
KSk7CisgICAgcmVjdHMuYXBwZW5kKG5ldyBJbnRSZWN0KTsKICAgICAKICAgICBmb3IgKHVuc2ln
bmVkIGludCBpID0gMTsgaSA8IHJlY3RzLmNvdW50KCkgLSAxOyBpKyspCiAgICAgICAgIHBhaW50
T3V0bGluZUZvckxpbmUocCwgX3R4LCBfdHksICpyZWN0cy5hdChpLTEpLCAqcmVjdHMuYXQoaSks
ICpyZWN0cy5hdChpKzEpKTsKQEAgLTcxNiw3NyArNzE2LDc3IEBACiAgICAgCiAgICAgaW50IG9m
ZnNldCA9IHN0eWxlKCktPm91dGxpbmVPZmZzZXQoKTsKICAgICAKLSAgICBpbnQgdCA9IHR5ICsg
dGhpc2xpbmUudG9wKCkgLSBvZmZzZXQ7Ci0gICAgaW50IGwgPSB0eCArIHRoaXNsaW5lLmxlZnQo
KSAtIG9mZnNldDsKLSAgICBpbnQgYiA9IHR5ICsgdGhpc2xpbmUuYm90dG9tKCkgKyBvZmZzZXQg
KyAxOwotICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdodCgpICsgb2Zmc2V0ICsgMTsKKyAg
ICBpbnQgdCA9IHR5ICsgdGhpc2xpbmUueSgpIC0gb2Zmc2V0OworICAgIGludCBsID0gdHggKyB0
aGlzbGluZS54KCkgLSBvZmZzZXQ7CisgICAgaW50IGIgPSB0eSArIHRoaXNsaW5lLmJvdHRvbSgp
ICsgb2Zmc2V0OworICAgIGludCByID0gdHggKyB0aGlzbGluZS5yaWdodCgpICsgb2Zmc2V0Owog
ICAgIAogICAgIC8vIGxlZnQgZWRnZQogICAgIGRyYXdCb3JkZXIocCwKICAgICAgICAgICAgICAg
IGwgLSBvdywKLSAgICAgICAgICAgICAgIHQgLSAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNs
aW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSB8fCBsYXN0bGluZS5yaWdodCgpIDw9IHRoaXNs
aW5lLmxlZnQoKSA/IG93IDogMCksCisgICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1w
dHkoKSB8fCB0aGlzbGluZS54KCkgPCBsYXN0bGluZS54KCkgfHwgKGxhc3RsaW5lLnJpZ2h0KCkg
LSAxKSA8PSB0aGlzbGluZS54KCkgPyBvdyA6IDApLAogICAgICAgICAgICAgICAgbCwKLSAgICAg
ICAgICAgICAgIGIgKyAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8PSBu
ZXh0bGluZS5sZWZ0KCkgfHwgbmV4dGxpbmUucmlnaHQoKSA8PSB0aGlzbGluZS5sZWZ0KCkgPyBv
dyA6IDApLAorICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xp
bmUueCgpIDw9IG5leHRsaW5lLngoKSB8fCAobmV4dGxpbmUucmlnaHQoKSAtIDEpIDw9IHRoaXNs
aW5lLngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICBCU0xlZnQsCiAgICAgICAgICAgICAg
ICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAobGFzdGxpbmUuaXNF
bXB0eSgpIHx8IHRoaXNsaW5lLmxlZnQoKSA8IGxhc3RsaW5lLmxlZnQoKSB8fCBsYXN0bGluZS5y
aWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKLSAgICAgICAgICAgICAgIChu
ZXh0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUubGVmdCgpIDw9IG5leHRsaW5lLmxlZnQoKSB8
fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLmxlZnQoKSA/IG93IDogLW93KSwKKyAgICAg
ICAgICAgICAgIChsYXN0bGluZS5pc0VtcHR5KCkgfHwgdGhpc2xpbmUueCgpIDwgbGFzdGxpbmUu
eCgpIHx8IChsYXN0bGluZS5yaWdodCgpIC0gMSkgPD0gdGhpc2xpbmUueCgpID8gb3cgOiAtb3cp
LAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCB0aGlzbGluZS54KCkgPD0g
bmV4dGxpbmUueCgpIHx8IChuZXh0bGluZS5yaWdodCgpIC0gMSkgPD0gdGhpc2xpbmUueCgpID8g
b3cgOiAtb3cpLAogICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgCiAgICAgLy8gcmlnaHQgZWRn
ZQogICAgIGRyYXdCb3JkZXIocCwKICAgICAgICAgICAgICAgIHIsCi0gICAgICAgICAgICAgICB0
IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBsYXN0bGluZS5yaWdodCgpIDwgdGhpc2xpbmUucmln
aHQoKSB8fCB0aGlzbGluZS5yaWdodCgpIDw9IGxhc3RsaW5lLmxlZnQoKSA/IG93IDogMCksCisg
ICAgICAgICAgICAgICB0IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCBsYXN0bGluZS5yaWdodCgp
IDwgdGhpc2xpbmUucmlnaHQoKSB8fCAodGhpc2xpbmUucmlnaHQoKSAtIDEpIDw9IGxhc3RsaW5l
LngoKSA/IG93IDogMCksCiAgICAgICAgICAgICAgICByICsgb3csCi0gICAgICAgICAgICAgICBi
ICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLnJp
Z2h0KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0KCkgPyBvdyA6IDApLAor
ICAgICAgICAgICAgICAgYiArIChuZXh0bGluZS5pc0VtcHR5KCkgfHwgbmV4dGxpbmUucmlnaHQo
KSA8PSB0aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgpIC0gMSkgPD0gbmV4dGxp
bmUueCgpID8gb3cgOiAwKSwKICAgICAgICAgICAgICAgIEJTUmlnaHQsCiAgICAgICAgICAgICAg
ICBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCi0gICAgICAgICAgICAgICAobGFzdGxpbmUuaXNF
bXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0aGlzbGluZS5yaWdodCgpIHx8IHRoaXNsaW5l
LnJpZ2h0KCkgPD0gbGFzdGxpbmUubGVmdCgpID8gb3cgOiAtb3cpLAotICAgICAgICAgICAgICAg
KG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLnJpZ2h0
KCkgfHwgdGhpc2xpbmUucmlnaHQoKSA8PSBuZXh0bGluZS5sZWZ0KCkgPyBvdyA6IC1vdyksCisg
ICAgICAgICAgICAgICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLnJpZ2h0KCkgPCB0
aGlzbGluZS5yaWdodCgpIHx8ICh0aGlzbGluZS5yaWdodCgpIC0gMSkgPD0gbGFzdGxpbmUueCgp
ID8gb3cgOiAtb3cpLAorICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0
bGluZS5yaWdodCgpIDw9IHRoaXNsaW5lLnJpZ2h0KCkgfHwgKHRoaXNsaW5lLnJpZ2h0KCkgLSAx
KSA8PSBuZXh0bGluZS54KCkgPyBvdyA6IC1vdyksCiAgICAgICAgICAgICAgICB0cnVlKTsKICAg
ICAvLyB1cHBlciBlZGdlCi0gICAgaWYgKCB0aGlzbGluZS5sZWZ0KCkgPCBsYXN0bGluZS5sZWZ0
KCkpCisgICAgaWYgKHRoaXNsaW5lLngoKSA8IGxhc3RsaW5lLngoKSkKICAgICAgICAgZHJhd0Jv
cmRlcihwLAogICAgICAgICAgICAgICAgICAgIGwgLSBvdywKICAgICAgICAgICAgICAgICAgICB0
IC0gb3csCi0gICAgICAgICAgICAgICAgICAga01pbihyK293LCAobGFzdGxpbmUuaXNWYWxpZCgp
PyB0eCtsYXN0bGluZS5sZWZ0KCkgOiAxMDAwMDAwKSksCisgICAgICAgICAgICAgICAgICAga01p
bihyK293LCAobGFzdGxpbmUuaXNFbXB0eSgpID8gMTAwMDAwMCA6IHR4ICsgbGFzdGxpbmUueCgp
KSksCiAgICAgICAgICAgICAgICAgICAgdCAsCiAgICAgICAgICAgICAgICAgICAgQlNUb3AsIG9j
LCBzdHlsZSgpLT5jb2xvcigpLCBvcywKICAgICAgICAgICAgICAgICAgICBvdywKLSAgICAgICAg
ICAgICAgICAgICAobGFzdGxpbmUuaXNWYWxpZCgpICYmIHR4K2xhc3RsaW5lLmxlZnQoKSsxPHIr
b3cgPyAtb3cgOiBvdyksCisgICAgICAgICAgICAgICAgICAgKCFsYXN0bGluZS5pc0VtcHR5KCkg
JiYgdHggKyBsYXN0bGluZS54KCkgKyAxIDwgciArIG93KSA/IC1vdyA6IG93LAogICAgICAgICAg
ICAgICAgICAgIHRydWUpOwogICAgIAogICAgIGlmIChsYXN0bGluZS5yaWdodCgpIDwgdGhpc2xp
bmUucmlnaHQoKSkKICAgICAgICAgZHJhd0JvcmRlcihwLAotICAgICAgICAgICAgICAgICAgIGtN
YXgobGFzdGxpbmUuaXNWYWxpZCgpP3R4ICsgbGFzdGxpbmUucmlnaHQoKSArIDE6LTEwMDAwMDAs
IGwgLSBvdyksCisgICAgICAgICAgICAgICAgICAga01heChsYXN0bGluZS5pc0VtcHR5KCkgPyAt
MTAwMDAwMCA6IHR4ICsgbGFzdGxpbmUucmlnaHQoKSwgbCAtIG93KSwKICAgICAgICAgICAgICAg
ICAgICB0IC0gb3csCiAgICAgICAgICAgICAgICAgICAgciArIG93LAogICAgICAgICAgICAgICAg
ICAgIHQgLAogICAgICAgICAgICAgICAgICAgIEJTVG9wLCBvYywgc3R5bGUoKS0+Y29sb3IoKSwg
b3MsCi0gICAgICAgICAgICAgICAgICAgKGxhc3RsaW5lLmlzVmFsaWQoKSAmJiBsLW93IDwgdHgr
bGFzdGxpbmUucmlnaHQoKSsxID8gLW93IDogb3cpLAorICAgICAgICAgICAgICAgICAgICghbGFz
dGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgbGFzdGxpbmUucmlnaHQoKSkgPyAtb3cg
OiBvdywKICAgICAgICAgICAgICAgICAgICBvdywKICAgICAgICAgICAgICAgICAgICB0cnVlKTsK
ICAgICAKICAgICAvLyBsb3dlciBlZGdlCi0gICAgaWYgKCB0aGlzbGluZS5sZWZ0KCkgPCBuZXh0
bGluZS5sZWZ0KCkpCisgICAgaWYgKHRoaXNsaW5lLngoKSA8IG5leHRsaW5lLngoKSkKICAgICAg
ICAgZHJhd0JvcmRlcihwLAogICAgICAgICAgICAgICAgICAgIGwgLSBvdywKICAgICAgICAgICAg
ICAgICAgICBiLAotICAgICAgICAgICAgICAgICAgIGtNaW4ocitvdywgbmV4dGxpbmUuaXNWYWxp
ZCgpPyB0eCtuZXh0bGluZS5sZWZ0KCkrMSA6IDEwMDAwMDApLAorICAgICAgICAgICAgICAgICAg
IGtNaW4ociArIG93LCAhbmV4dGxpbmUuaXNFbXB0eSgpID8gdHggKyBuZXh0bGluZS54KCkgKyAx
IDogMTAwMDAwMCksCiAgICAgICAgICAgICAgICAgICAgYiArIG93LAogICAgICAgICAgICAgICAg
ICAgIEJTQm90dG9tLCBvYywgc3R5bGUoKS0+Y29sb3IoKSwgb3MsCiAgICAgICAgICAgICAgICAg
ICAgb3csCi0gICAgICAgICAgICAgICAgICAgKG5leHRsaW5lLmlzVmFsaWQoKSAmJiB0eCtuZXh0
bGluZS5sZWZ0KCkrMTxyK293PyAtb3cgOiBvdyksCisgICAgICAgICAgICAgICAgICAgKCFuZXh0
bGluZS5pc0VtcHR5KCkgJiYgdHggKyBuZXh0bGluZS54KCkgKyAxIDwgciArIG93KSA/IC1vdyA6
IG93LAogICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgIAogICAgIGlmIChuZXh0bGluZS5y
aWdodCgpIDwgdGhpc2xpbmUucmlnaHQoKSkKICAgICAgICAgZHJhd0JvcmRlcihwLAotICAgICAg
ICAgICAgICAgICAgIGtNYXgobmV4dGxpbmUuaXNWYWxpZCgpP3R4K25leHRsaW5lLnJpZ2h0KCkr
MTotMTAwMDAwMCAsIGwtb3cpLAorICAgICAgICAgICAgICAgICAgIGtNYXgoIW5leHRsaW5lLmlz
RW1wdHkoKSA/IHR4ICsgbmV4dGxpbmUucmlnaHQoKSA6IC0xMDAwMDAwLCBsIC0gb3cpLAogICAg
ICAgICAgICAgICAgICAgIGIsCiAgICAgICAgICAgICAgICAgICAgciArIG93LAogICAgICAgICAg
ICAgICAgICAgIGIgKyBvdywKICAgICAgICAgICAgICAgICAgICBCU0JvdHRvbSwgb2MsIHN0eWxl
KCktPmNvbG9yKCksIG9zLAotICAgICAgICAgICAgICAgICAgIChuZXh0bGluZS5pc1ZhbGlkKCkg
JiYgbC1vdyA8IHR4K25leHRsaW5lLnJpZ2h0KCkrMT8gLW93IDogb3cpLAorICAgICAgICAgICAg
ICAgICAgICghbmV4dGxpbmUuaXNFbXB0eSgpICYmIGwgLSBvdyA8IHR4ICsgbmV4dGxpbmUucmln
aHQoKSkgPyAtb3cgOiBvdywKICAgICAgICAgICAgICAgICAgICBvdywKICAgICAgICAgICAgICAg
ICAgICB0cnVlKTsKIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCShyZXZpc2lvbiAxMjQ2NykK
KysrIHJlbmRlcmluZy9yZW5kZXJfdGhlbWVfbWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MDgs
NyArNTA4LDcgQEAKICAgICBpZiAoW2J1dHRvbiBiZXplbFN0eWxlXSA9PSBOU1JvdW5kZWRCZXpl
bFN0eWxlKSB7CiAgICAgICAgIC8vIENlbnRlciB0aGUgYnV0dG9uIHdpdGhpbiB0aGUgYXZhaWxh
YmxlIHNwYWNlLgogICAgICAgICBpZiAoaW5mbGF0ZWRSZWN0LmhlaWdodCgpID4gc2l6ZS5oZWln
aHQoKSkgewotICAgICAgICAgICAgaW5mbGF0ZWRSZWN0LnNldFgoaW5mbGF0ZWRSZWN0LngoKSAr
IChpbmZsYXRlZFJlY3QuaGVpZ2h0KCkgLSBzaXplLmhlaWdodCgpKS8yKTsKKyAgICAgICAgICAg
IGluZmxhdGVkUmVjdC5zZXRZKGluZmxhdGVkUmVjdC55KCkgKyAoaW5mbGF0ZWRSZWN0LmhlaWdo
dCgpIC0gc2l6ZS5oZWlnaHQoKSkgLyAyKTsKICAgICAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRI
ZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiByZW5kZXJp
bmcvcmVuZGVyX2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfbGlzdC5j
cHAJKHJldmlzaW9uIDEyNDY3KQorKysgcmVuZGVyaW5nL3JlbmRlcl9saXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgX3R4ICs9IG1feDsKICAgICBfdHkgKz0g
bV95OwogCi0gICAgaWYgKChfdHkgPiBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB8fCAoX3R5ICsg
bV9oZWlnaHQgPCBpLnIueSgpKSkKKyAgICBpZiAoX3R5ID4gaS5yLmJvdHRvbSgpIHx8IF90eSAr
IG1faGVpZ2h0IDwgaS5yLnkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHNob3VsZFBh
aW50QmFja2dyb3VuZE9yQm9yZGVyKCkpIApAQCAtNDE4LDcgKzQxOCw3IEBACiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBSZW5kZXJDYW52YXMqIGMgPSBjYW52YXMoKTsK
LSAgICAgICAgaWYgKF90eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSgpICsgYm9yZGVyQm90
dG9tKCkgPj0gYy0+cHJpbnRSZWN0KCkueSgpICsgYy0+cHJpbnRSZWN0KCkuaGVpZ2h0KCkpIHsK
KyAgICAgICAgaWYgKF90eSArIG1faGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSgpICsgYm9yZGVyQm90
dG9tKCkgPj0gYy0+cHJpbnRSZWN0KCkuYm90dG9tKCkpIHsKICAgICAgICAgICAgIGlmIChfdHkg
PCBjLT50cnVuY2F0ZWRBdCgpKQogICAgICAgICAgICAgICAgIGMtPnNldEJlc3RUcnVuY2F0ZWRB
dChfdHksIHRoaXMpOwogICAgICAgICAgICAgLy8gTGV0J3MgcHJpbnQgdGhpcyBvbiB0aGUgbmV4
dCBwYWdlLgpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBy
ZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIHJlbmRlcmluZy9y
ZW5kZXJfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE3ICsyNywxNCBAQAogI2RlZmlu
ZSByZW5kZXJfb2JqZWN0X2gKIAogI2luY2x1ZGUgIkNhY2hlZE9iamVjdENsaWVudC5oIgotI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIktXUVNjcm9sbEJhci5oIgogI2luY2x1ZGUg
Ik5vZGVJbXBsLmgiCiAjaW5jbHVkZSAicmVuZGVyX3N0eWxlLmgiCiAjaW5jbHVkZSAidGV4dF9h
ZmZpbml0eS5oIgotI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGt4bWxjb3JlL0hhc2hT
ZXQuaD4KIAogY2xhc3MgQ1NTU3R5bGU7CiBjbGFzcyBGcmFtZVZpZXc7Ci1jbGFzcyBRTWF0cml4
OwogY2xhc3MgUVRleHRTdHJlYW07CiBjbGFzcyBSZW5kZXJBcmVuYTsKIApAQCAtNjMsMTIgKzYw
LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQ29sb3I7CiBjbGFzcyBDb2xsYXBzZWRCb3JkZXJWYWx1ZTsKIGNsYXNzIERPTVN0cmlu
ZzsKIGNsYXNzIERvY3VtZW50SW1wbDsKIGNsYXNzIEVsZW1lbnRJbXBsOwogY2xhc3MgRXZlbnRJ
bXBsOworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgSFRNTEFyZWFFbGVtZW50SW1wbDsKIGNsYXNz
IElubGluZUJveDsKIGNsYXNzIElubGluZUZsb3dCb3g7CkBAIC03OSw3ICs3OCw2IEBACiBjbGFz
cyBSZW5kZXJGbG93OwogY2xhc3MgUmVuZGVyRnJhbWVTZXQ7CiBjbGFzcyBSZW5kZXJMYXllcjsK
LWNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVGFibGU7CiBjbGFzcyBSZW5kZXJUZXh0
OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwpAQCAtMjc4LDExICsyNzYsMTEgQEAKICNpZiBTVkdf
U1VQUE9SVAogICAgIHZpcnR1YWwgYm9vbCBpc0tDYW52YXNDb250YWluZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZlQkJveChib29sIGlu
Y2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBj
b25zdDsKICAgICAvLyBXZSBtYXkgZXZlbnR1YWxseSB3YW50IHRvIG1ha2UgdGhlc2Ugbm9uLXZp
cnR1YWwKLSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCYpIHsgYXNzZXJ0KGZh
bHNlKTsgfQotICAgIHZpcnR1YWwgUU1hdHJpeCBhYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwor
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtKCkgY29uc3Q7CiAj
ZW5kaWYKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0OwpJbmRleDog
cmVuZGVyaW5nL3JlbmRlcl9jYW52YXNpbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L3JlbmRlcl9jYW52YXNpbWFnZS5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysgcmVuZGVyaW5nL3Jl
bmRlcl9jYW52YXNpbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSwxMSArMTc5LDggQEAK
ICAgICAgICAgICAgIFFQYWludGVyOjpzZXRDb21wb3NpdGVPcGVyYXRpb24gKHAtPmN1cnJlbnRD
b250ZXh0KCksIG9sZE9wZXJhdGlvbik7CiAgICAgfQogCi0gICAgaWYgKGRyYXdTZWxlY3Rpb25U
aW50KSB7Ci0gICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNvbG9yKHApKTsKLSAgICAgICAg
SW50UmVjdCBzZWxSZWN0KHNlbGVjdGlvblJlY3QoKSk7Ci0gICAgICAgIHAtPmZpbGxSZWN0KHNl
bFJlY3QueCgpLCBzZWxSZWN0LnkoKSwgc2VsUmVjdC53aWR0aCgpLCBzZWxSZWN0LmhlaWdodCgp
LCBicnVzaCk7Ci0gICAgfQorICAgIGlmIChkcmF3U2VsZWN0aW9uVGludCkKKyAgICAgICAgcC0+
ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rpb25Db2xvcihwKSk7CiB9CiAKIHZvaWQg
UmVuZGVyQ2FudmFzSW1hZ2U6OmxheW91dCgpCkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiAxMjQ2
NykKKysrIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0NSwx
NSArMTA0NSw4IEBACiAgICAgUmVuZGVyTGF5ZXIgKmxheWVyID0gY2ItPmxheWVyKCk7CiAgICAg
aWYgKGxheWVyKQogICAgICAgIGxheWVyLT5zdWJ0cmFjdFNjcm9sbE9mZnNldChhYnN4LCBhYnN5
KTsgCi0gICAgZm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBi
b3ggPSBib3gtPm5leHRUZXh0Qm94KCkpIHsKLSAgICAgICAgSW50UmVjdCByID0gYm94LT5zZWxl
Y3Rpb25SZWN0KGFic3gsIGFic3ksIHN0YXJ0UG9zLCBlbmRQb3MpOwotICAgICAgICBpZiAoIXIu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgcmVjdCA9IHI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVjdCA9
IHJlY3QudW5pdGUocik7Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChJbmxpbmVUZXh0Qm94
KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkpCisg
ICAgICAgIHJlY3QudW5pdGUoYm94LT5zZWxlY3Rpb25SZWN0KGFic3gsIGFic3ksIHN0YXJ0UG9z
LCBlbmRQb3MpKTsKIAogICAgIHJldHVybiByZWN0OwogfQpJbmRleDogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAko
cmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOCwxMCArMTI4LDEwIEBACiAgICAgY29uc3QgRm9udCAqZiA9IHRleHRPYmot
Pmh0bWxGb250KG1fZmlyc3RMaW5lKTsKIAogICAgIEludFJlY3QgciA9IGYtPnNlbGVjdGlvblJl
Y3RGb3JUZXh0KHR4ICsgbV94LCB0eSArIHNlbFRvcCwgc2VsSGVpZ2h0LCB0ZXh0T2JqLT50YWJX
aWR0aCgpLCB0ZXh0UG9zKCksIHRleHRPYmotPnN0ci0+cywgdGV4dE9iai0+c3RyLT5sLCBtX3N0
YXJ0LCBtX2xlbiwgbV90b0FkZCwgbV9yZXZlcnNlZCwgbV9kaXJPdmVycmlkZSwgc1BvcywgZVBv
cyk7Ci0gICAgaWYgKHIubGVmdCgpID4gdHggKyBtX3ggKyBtX3dpZHRoKQorICAgIGlmIChyLngo
KSA+IHR4ICsgbV94ICsgbV93aWR0aCkKICAgICAgICAgci5zZXRXaWR0aCgwKTsKLSAgICBlbHNl
IGlmIChyLnJpZ2h0KCkgPiB0eCArIG1feCArIG1fd2lkdGgpCi0gICAgICAgIHIuc2V0V2lkdGgo
dHggKyBtX3ggKyBtX3dpZHRoIC0gci5sZWZ0KCkpOworICAgIGVsc2UgaWYgKHIucmlnaHQoKSAt
IDEgPiB0eCArIG1feCArIG1fd2lkdGgpCisgICAgICAgIHIuc2V0V2lkdGgodHggKyBtX3ggKyBt
X3dpZHRoIC0gci54KCkpOwogICAgIHJldHVybiByOwogfQogCkBAIC0yMzYsOCArMjM2LDcgQEAK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW50UmVjdCByZWN0KHR4ICsgbV94LCB0eSAr
IG1feSwgbV93aWR0aCwgbV9oZWlnaHQpOwotICAgIGlmIChtX3RydW5jYXRpb24gIT0gY0Z1bGxU
cnVuY2F0aW9uICYmIAotICAgICAgICBvYmplY3QoKS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09
IFZJU0lCTEUgJiYgcmVjdC5jb250YWlucyh4LCB5KSkgeworICAgIGlmIChtX3RydW5jYXRpb24g
IT0gY0Z1bGxUcnVuY2F0aW9uICYmIG9iamVjdCgpLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0g
VklTSUJMRSAmJiByZWN0LmNvbnRhaW5zKHgsIHkpKSB7CiAgICAgICAgIG9iamVjdCgpLT5zZXRJ
bm5lck5vZGUoaSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI1Miw3ICsyNTEs
NyBAQAogCiAgICAgaW50IHhQb3MgPSB0eCArIG1feDsKICAgICBpbnQgdyA9IHdpZHRoKCk7Ci0g
ICAgaWYgKCh4UG9zID49IGkuci54KCkgKyBpLnIud2lkdGgoKSkgfHwgKHhQb3MgKyB3IDw9IGku
ci54KCkpKQorICAgIGlmICh4UG9zID49IGkuci5yaWdodCgpIHx8IHhQb3MgKyB3IDw9IGkuci54
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgYm9vbCBpc1ByaW50aW5nID0gaS5w
LT5wcmludGluZygpOwpAQCAtNjU5LDcgKzY1OCw5IEBACiAgICAgUmVuZGVyVGV4dCogdGV4dCA9
IHN0YXRpY19jYXN0PFJlbmRlclRleHQqPihtX29iamVjdCk7CiAgICAgUmVuZGVyU3R5bGUgKnN0
eWxlID0gdGV4dC0+c3R5bGUobV9maXJzdExpbmUpOwogICAgIGNvbnN0IEZvbnQqIGYgPSAmc3R5
bGUtPmh0bWxGb250KCk7Ci0gICAgcmV0dXJuIGYtPmNoZWNrU2VsZWN0aW9uUG9pbnQodGV4dC0+
c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLCBtX3RvQWRkLCB0ZXh0LT50YWJX
aWR0aCgpLCB0ZXh0UG9zKCksIF94IC0gbV94LCBtX3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6
IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCgp
LCBpbmNsdWRlUGFydGlhbEdseXBocyk7CisgICAgcmV0dXJuIGYtPmNoZWNrU2VsZWN0aW9uUG9p
bnQodGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1fc3RhcnQsIG1fbGVuLAorICAgICAgICBt
X3RvQWRkLCB0ZXh0LT50YWJXaWR0aCgpLCB0ZXh0UG9zKCksIF94IC0gbV94LAorICAgICAgICBt
X3JldmVyc2VkID8gUVBhaW50ZXI6OlJUTCA6IFFQYWludGVyOjpMVFIsIG1fZGlyT3ZlcnJpZGUg
fHwgc3R5bGUtPnZpc3VhbGx5T3JkZXJlZCgpLCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiB9CiAK
IGludCBJbmxpbmVUZXh0Qm94Ojpwb3NpdGlvbkZvck9mZnNldChpbnQgb2Zmc2V0KSBjb25zdApA
QCAtNjY5LDcgKzY3MCw4IEBACiAgICAgaW50IGZyb20gPSBtX3JldmVyc2VkID8gb2Zmc2V0IC0g
bV9zdGFydCA6IDA7CiAgICAgaW50IHRvID0gbV9yZXZlcnNlZCA/IG1fbGVuIDogb2Zmc2V0IC0g
bV9zdGFydDsKICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBhZGQgcmlnaHRCZWFyaW5nIGhl
cmU/Ci0gICAgcmV0dXJuIGYtPnNlbGVjdGlvblJlY3RGb3JUZXh0KG1feCwgMCwgMCwgdGV4dC0+
dGFiV2lkdGgoKSwgdGV4dFBvcygpLCB0ZXh0LT5zdHItPnMsIHRleHQtPnN0ci0+bCwgbV9zdGFy
dCwgbV9sZW4sIG1fdG9BZGQsIG1fcmV2ZXJzZWQsIG1fZGlyT3ZlcnJpZGUsIGZyb20sIHRvKS5y
aWdodCgpOworICAgIHJldHVybiBmLT5zZWxlY3Rpb25SZWN0Rm9yVGV4dChtX3gsIDAsIDAsIHRl
eHQtPnRhYldpZHRoKCksIHRleHRQb3MoKSwgdGV4dC0+c3RyLT5zLCB0ZXh0LT5zdHItPmwsIG1f
c3RhcnQsIG1fbGVuLAorICAgICAgICBtX3RvQWRkLCBtX3JldmVyc2VkLCBtX2Rpck92ZXJyaWRl
LCBmcm9tLCB0bykucmlnaHQoKSAtIDE7CiB9CiAKIH0KSW5kZXg6IHJlbmRlcmluZy9yZW5kZXJf
Zm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAkocmV2aXNp
b24gMTI0NjcpCisrKyByZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NDEsNyArNDQxLDcgQEAKICAgICBfdHkgKz0geU9mZiAtIGJvcmRlclRvcEV4dHJhKCk7CiAK
ICAgICBpbnQgbXkgPSBrTWF4KF90eSwgaS5yLnkoKSk7Ci0gICAgaW50IGVuZCA9IGtNaW4oaS5y
LnkoKSArIGkuci5oZWlnaHQoKSwgIF90eSArIGgpOworICAgIGludCBlbmQgPSBrTWluKGkuci5i
b3R0b20oKSwgIF90eSArIGgpOwogICAgIGludCBtaCA9IGVuZCAtIG15OwogCiAgICAgcGFpbnRC
YWNrZ3JvdW5kKGkucCwgc3R5bGUoKS0+YmFja2dyb3VuZENvbG9yKCksIHN0eWxlKCktPmJhY2tn
cm91bmRMYXllcnMoKSwgbXksIG1oLCBfdHgsIF90eSwgdywgaCk7CkluZGV4OiByZW5kZXJpbmcv
cmVuZGVyX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9vYmplY3Qu
Y3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIHJlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCiAjaW5jbHVkZSAiS1dRQWNjT2JqZWN0Q2FjaGUuaCIgCkBAIC01Niw3ICs1Nyw3IEBACiAj
aW5jbHVkZSA8cXBhaW50ZXIuaD4KICNpbmNsdWRlICJQZW4uaCIKICNpbmNsdWRlIDxxdGV4dGNv
ZGVjLmg+Ci0jaW5jbHVkZSA8cXdtYXRyaXguaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0u
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjk5LDMzICsxMzAwLDI5IEBACiAgICAg
YWJzb2x1dGVSZWN0cyhyZWN0cywgeCwgeSk7CiAKICAgICBpZiAocmVjdHMuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gSW50UmVjdCgwLCAwLCAwLCAwKTsKKyAgICAgICAgcmV0dXJuIEludFJl
Y3QoKTsKIAogICAgIFFWYWx1ZUxpc3Q8SW50UmVjdD46OkNvbnN0SXRlcmF0b3IgaXQgPSByZWN0
cy5iZWdpbigpOwogICAgIEludFJlY3QgcmVzdWx0ID0gKml0OwotICAgIHdoaWxlICgrK2l0ICE9
IHJlY3RzLmVuZCgpKSB7Ci0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC51bml0ZSgqaXQpOwotICAg
IH0KKyAgICB3aGlsZSAoKytpdCAhPSByZWN0cy5lbmQoKSkKKyAgICAgICAgcmVzdWx0LnVuaXRl
KCppdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6OmFkZEFi
c29sdXRlUmVjdEZvckxheWVyKEludFJlY3QmIHJlc3VsdCkKIHsKLSAgICBpZiAobGF5ZXIoKSkg
ewotICAgICAgICByZXN1bHQgPSByZXN1bHQudW5pdGUoYWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
KSk7Ci0gICAgfQotICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gZmlyc3RDaGlsZCgp
OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKSkgeworICAgIGlmIChs
YXllcigpKQorICAgICAgICByZXN1bHQudW5pdGUoYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7
CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1cnJlbnQ7
IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAgICAgICBjdXJyZW50LT5hZGRB
YnNvbHV0ZVJlY3RGb3JMYXllcihyZXN1bHQpOwogICAgIH0KLX0KIAogSW50UmVjdCBSZW5kZXJP
YmplY3Q6OnBhaW50aW5nUm9vdFJlY3QoSW50UmVjdCYgdG9wTGV2ZWxSZWN0KQogewogICAgIElu
dFJlY3QgcmVzdWx0ID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKICAgICB0b3BMZXZlbFJl
Y3QgPSByZXN1bHQ7Ci0gICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxk
KCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGluZygpKSB7CisgICAgZm9y
IChSZW5kZXJPYmplY3QqIGN1cnJlbnQgPSBmaXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBjdXJyZW50LT5uZXh0U2libGluZygpKQogICAgICAgICBjdXJyZW50LT5hZGRBYnNvbHV0ZVJl
Y3RGb3JMYXllcihyZXN1bHQpOwotICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0x
NDM4LDE0ICsxNDM1LDE0IEBACiAgICAgaWYgKG5ld0JvdW5kcyA9PSBvbGRCb3VuZHMgJiYgIXNl
bGZOZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGZ1bGxS
ZXBhaW50ID0gc2VsZk5lZWRzTGF5b3V0KCkgfHwgbmV3Qm91bmRzLngoKSAhPSBvbGRCb3VuZHMu
eCgpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgIG5ld0JvdW5kcy55KCkgIT0gb2xkQm91bmRz
LnkoKSB8fCAKLSAgICAgICAgICAgICAgICAgICAgICAgbXVzdFJlcGFpbnRCYWNrZ3JvdW5kT3JC
b3JkZXIoKTsKKyAgICBib29sIGZ1bGxSZXBhaW50ID0gc2VsZk5lZWRzTGF5b3V0KCkgfHwgbmV3
Qm91bmRzLmxvY2F0aW9uKCkgIT0gb2xkQm91bmRzLmxvY2F0aW9uKCkgfHwgbXVzdFJlcGFpbnRC
YWNrZ3JvdW5kT3JCb3JkZXIoKTsKICAgICBpZiAoZnVsbFJlcGFpbnQpIHsKICAgICAgICAgYy0+
cmVwYWludFZpZXdSZWN0YW5nbGUob2xkRnVsbEJvdW5kcyk7CiAgICAgICAgIGlmIChuZXdCb3Vu
ZHMgIT0gb2xkQm91bmRzKQogICAgICAgICAgICAgYy0+cmVwYWludFZpZXdSZWN0YW5nbGUobmV3
RnVsbEJvdW5kcyk7Ci0gICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CiAgICAgICAgIC8vIFdlIGRpZG4ndCBtb3ZlLCBidXQgd2UgZGlkIGNoYW5nZSBzaXplLiAgSW52
YWxpZGF0ZSB0aGUgZGVsdGEsIHdoaWNoIHdpbGwgY29uc2lzdCBvZiBwb3NzaWJseSAKICAgICAg
ICAgLy8gdHdvIHJlY3RhbmdsZXMgKGJ1dCB0eXBpY2FsbHkgb25seSBvbmUpLgogICAgICAgICBp
bnQgd2lkdGggPSBhYnMobmV3Qm91bmRzLndpZHRoKCkgLSBvbGRCb3VuZHMud2lkdGgoKSk7CkBA
IC0xNDU3LDEzICsxNDU0LDExIEBACiAgICAgICAgIGludCBoZWlnaHQgPSBhYnMobmV3Qm91bmRz
LmhlaWdodCgpIC0gb2xkQm91bmRzLmhlaWdodCgpKTsKICAgICAgICAgaWYgKGhlaWdodCkKICAg
ICAgICAgICAgIGMtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKEludFJlY3QobmV3Qm91bmRzLngoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW4obmV3Qm91bmRz
LnkoKSArIG5ld0JvdW5kcy5oZWlnaHQoKSwgb2xkQm91bmRzLnkoKSArIG9sZEJvdW5kcy5oZWln
aHQoKSkgLSBib3JkZXJCb3R0b20oKSwKKyAgICAgICAgICAgIGtNaW4obmV3Qm91bmRzLmJvdHRv
bSgpLCBvbGRCb3VuZHMuYm90dG9tKCkpIC0gYm9yZGVyQm90dG9tKCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4KG5ld0JvdW5kcy53aWR0aCgpLCBvbGRC
b3VuZHMud2lkdGgoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQgKyBib3JkZXJCb3R0b20oKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIHJldHVybiB0cnVlOwotfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludER1cmlu
Z0xheW91dElmTW92ZWQoaW50IHgsIGludCB5KQogewpAQCAtMTQ5OSwxOSArMTQ5NCwxNSBAQAog
SW50UmVjdCBSZW5kZXJPYmplY3Q6OmdldEFic29sdXRlUmVwYWludFJlY3RXaXRoT3V0bGluZShp
bnQgb3cpCiB7CiAgICAgSW50UmVjdCByKGdldEFic29sdXRlUmVwYWludFJlY3QoKSk7Ci0gICAg
ci5zZXRSZWN0KHIueCgpLW93LCByLnkoKS1vdywgci53aWR0aCgpK293KjIsIHIuaGVpZ2h0KCkr
b3cqMik7CisgICAgci5pbmZsYXRlKG93KTsKIAogICAgIGlmIChjb250aW51YXRpb24oKSAmJiAh
aXNJbmxpbmUoKSkKLSAgICAgICAgci5zZXRSZWN0KHIueCgpLCByLnkoKS1jb2xsYXBzZWRNYXJn
aW5Ub3AoKSwgci53aWR0aCgpLCByLmhlaWdodCgpK2NvbGxhcHNlZE1hcmdpblRvcCgpK2NvbGxh
cHNlZE1hcmdpbkJvdHRvbSgpKTsKKyAgICAgICAgci5pbmZsYXRlWShjb2xsYXBzZWRNYXJnaW5U
b3AoKSk7CiAgICAgCi0gICAgaWYgKGlzSW5saW5lRmxvdygpKSB7Ci0gICAgICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjdXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1RleHQoKSkgewotICAgICAgICAg
ICAgICAgIEludFJlY3QgY2hpbGRSZWN0ID0gY3Vyci0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdFdp
dGhPdXRsaW5lKG93KTsKLSAgICAgICAgICAgICAgICByID0gci51bml0ZShjaGlsZFJlY3QpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpc0lubGluZUZsb3coKSkK
KyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBmaXJzdENoaWxkKCk7IGN1cnI7IGN1
cnIgPSBjdXJyLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgaWYgKCFjdXJyLT5pc1RleHQo
KSkKKyAgICAgICAgICAgICAgICByLnVuaXRlKGN1cnItPmdldEFic29sdXRlUmVwYWludFJlY3RX
aXRoT3V0bGluZShvdykpOwogCiAgICAgcmV0dXJuIHI7CiB9CkBAIC0yNjA1LDEyICsyNTk2LDIy
IEBACiAKICNpZiBTVkdfU1VQUE9SVAogCi1RTWF0cml4IFJlbmRlck9iamVjdDo6bG9jYWxUcmFu
c2Zvcm0oKSBjb25zdAorRmxvYXRSZWN0IFJlbmRlck9iamVjdDo6cmVsYXRpdmVCQm94KGJvb2wp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworfQorCitBZmZpbmVUcmFuc2Zvcm0g
UmVuZGVyT2JqZWN0Ojpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyYW5z
bGF0aW9uTWF0cml4KHhQb3MoKSwgeVBvcygpKTsKK30KKyAKK3ZvaWQgUmVuZGVyT2JqZWN0Ojpz
ZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKQogewotICAgIHJldHVybiBR
TWF0cml4KDEsIDAsIDAsIDEsIHhQb3MoKSwgeVBvcygpKTsKKyAgICBhc3NlcnQoZmFsc2UpOwog
fQogIAotUU1hdHJpeCBSZW5kZXJPYmplY3Q6OmFic29sdXRlVHJhbnNmb3JtKCkgY29uc3QKK0Fm
ZmluZVRyYW5zZm9ybSBSZW5kZXJPYmplY3Q6OmFic29sdXRlVHJhbnNmb3JtKCkgY29uc3QKIHsK
ICAgICBpZiAocGFyZW50KCkpCiAgICAgICAgIHJldHVybiBsb2NhbFRyYW5zZm9ybSgpICogcGFy
ZW50KCktPmFic29sdXRlVHJhbnNmb3JtKCk7CkluZGV4OiByZW5kZXJpbmcvcmVuZGVyX2NhbnZh
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuY3BwCShyZXZpc2lv
biAxMjQ2NykKKysrIHJlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUwLDggKzI1MCw3IEBACiAgICAgaWYgKGVsdCB8fCB2aWV3KCktPmlzVHJhbnNwYXJlbnQo
KSkKICAgICAgICAgdmlldygpLT51c2VTbG93UmVwYWludHMoKTsgLy8gVGhlIHBhcmVudCBtdXN0
IHNob3cgYmVoaW5kIHRoZSBjaGlsZC4KICAgICBlbHNlCi0gICAgICAgIGkucC0+ZmlsbFJlY3Qo
aS5yLngoKSwgaS5yLnkoKSwgaS5yLndpZHRoKCksIGkuci5oZWlnaHQoKSwgCi0gICAgICAgICAg
ICAgICAgICAgIHZpZXcoKS0+cGFsZXR0ZSgpLmFjdGl2ZSgpLmNvbG9yKFFDb2xvckdyb3VwOjpC
YXNlKSk7CisgICAgICAgIGkucC0+ZmlsbFJlY3QoaS5yLCB2aWV3KCktPnBhbGV0dGUoKS5hY3Rp
dmUoKS5jb2xvcihRQ29sb3JHcm91cDo6QmFzZSkpOwogfQogCiB2b2lkIFJlbmRlckNhbnZhczo6
cmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXIsIGJvb2wgaW1tZWRpYXRlKQpA
QCAtMjYyLDIxICsyNjEsMjAgQEAKICAgICBpZiAobV92aWV3ICYmIHVyLmludGVyc2VjdHModnIp
KSB7CiAgICAgICAgIC8vIFdlIGFsd2F5cyBqdXN0IGludmFsaWRhdGUgdGhlIHJvb3Qgdmlldywg
c2luY2Ugd2UgY291bGQgYmUgYW4gaWZyYW1lIHRoYXQgaXMgY2xpcHBlZCBvdXQKICAgICAgICAg
Ly8gb3IgZXZlbiBpbnZpc2libGUuCi0gICAgICAgIEludFJlY3QgciA9IHVyLmludGVyc2VjdCh2
cik7CisgICAgICAgIEludFJlY3QgciA9IGludGVyc2VjdGlvbih1ciwgdnIpOwogICAgICAgICBE
T006OkVsZW1lbnRJbXBsKiBlbHQgPSBlbGVtZW50KCktPmdldERvY3VtZW50KCktPm93bmVyRWxl
bWVudCgpOwogICAgICAgICBpZiAoIWVsdCkKICAgICAgICAgICAgIG1fdmlldy0+cmVwYWludFJl
Y3RhbmdsZShyLCBpbW1lZGlhdGUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFN1
YnRyYWN0IG91dCB0aGUgY29udGVudHNYIGFuZCBjb250ZW50c1kgb2Zmc2V0cyB0byBnZXQgb3Vy
IGNvb3JkcyB3aXRoaW4gdGhlIHZpZXdpbmcKICAgICAgICAgICAgIC8vIHJlY3RhbmdsZS4KLSAg
ICAgICAgICAgIHIuc2V0WChyLngoKSAtIG1fdmlldy0+Y29udGVudHNYKCkpOwotICAgICAgICAg
ICAgci5zZXRZKHIueSgpIC0gbV92aWV3LT5jb250ZW50c1koKSk7CisgICAgICAgICAgICByLm1v
dmUoLW1fdmlldy0+Y29udGVudHNYKCksIC1tX3ZpZXctPmNvbnRlbnRzWSgpKTsKIAogICAgICAg
ICAgICAgUmVuZGVyT2JqZWN0KiBvYmogPSBlbHQtPnJlbmRlcmVyKCk7CiAgICAgICAgICAgICBp
bnQgeUZyYW1lT2Zmc2V0ID0gKG1fdmlldy0+ZnJhbWVTdHlsZSgpICE9IFFGcmFtZTo6Tm9GcmFt
ZSkgPyAyIDogMDsKICAgICAgICAgICAgIGludCB4RnJhbWVPZmZzZXQgPSAobV92aWV3LT5mcmFt
ZVN0eWxlKCkgIT0gUUZyYW1lOjpOb0ZyYW1lKSA/IDEgOiAwOwotICAgICAgICAgICAgci5zZXRY
KHIueCgpICsgb2JqLT5ib3JkZXJMZWZ0KCkrb2JqLT5wYWRkaW5nTGVmdCgpICsgeEZyYW1lT2Zm
c2V0KTsKLSAgICAgICAgICAgIHIuc2V0WShyLnkoKSArIG9iai0+Ym9yZGVyVG9wKCkrb2JqLT5w
YWRkaW5nVG9wKCkgKyB5RnJhbWVPZmZzZXQpOworICAgICAgICAgICAgci5tb3ZlKG9iai0+Ym9y
ZGVyTGVmdCgpICsgb2JqLT5wYWRkaW5nTGVmdCgpICsgeEZyYW1lT2Zmc2V0LAorICAgICAgICAg
ICAgICAgIG9iai0+Ym9yZGVyVG9wKCkgKyBvYmotPnBhZGRpbmdUb3AoKSArIHlGcmFtZU9mZnNl
dCk7CiAgICAgICAgICAgICBvYmotPnJlcGFpbnRSZWN0YW5nbGUociwgaW1tZWRpYXRlKTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTI5MywxMiArMjkxLDExIEBACiAKIHZvaWQgUmVuZGVyQ2FudmFz
Ojpjb21wdXRlQWJzb2x1dGVSZXBhaW50UmVjdChJbnRSZWN0JiByLCBib29sIGYpCiB7Ci0gICAg
aWYgKG1fcHJpbnRpbmdNb2RlKSByZXR1cm47CisgICAgaWYgKG1fcHJpbnRpbmdNb2RlKQorICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoZiAmJiBtX3ZpZXcpIHsKLSAgICAgICAgci5zZXRYKHIu
eCgpICsgbV92aWV3LT5jb250ZW50c1goKSk7Ci0gICAgICAgIHIuc2V0WShyLnkoKSArIG1fdmll
dy0+Y29udGVudHNZKCkpOwotICAgIH0KKyAgICBpZiAoZiAmJiBtX3ZpZXcpCisgICAgICAgIHIu
bW92ZShtX3ZpZXctPmNvbnRlbnRzWCgpLCBtX3ZpZXctPmNvbnRlbnRzWSgpKTsKIH0KIAogdm9p
ZCBSZW5kZXJDYW52YXM6OmFic29sdXRlUmVjdHMoUVZhbHVlTGlzdDxJbnRSZWN0PiYgcmVjdHMs
IGludCBfdHgsIGludCBfdHkpCkBAIC0zNDgsNyArMzQ1LDcgQEAKICAgICBTZWxlY3Rpb25NYXA6
Oml0ZXJhdG9yIGVuZCA9IHNlbGVjdGVkT2JqZWN0cy5lbmQoKTsKICAgICBmb3IgKFNlbGVjdGlv
bk1hcDo6aXRlcmF0b3IgaSA9IHNlbGVjdGVkT2JqZWN0cy5iZWdpbigpOyBpICE9IGVuZDsgKytp
KSB7CiAgICAgICAgIFNlbGVjdGlvbkluZm8qIGluZm8gPSBpLT5zZWNvbmQ7Ci0gICAgICAgIHNl
bFJlY3QgPSBzZWxSZWN0LnVuaXRlKGluZm8tPnJlY3QoKSk7CisgICAgICAgIHNlbFJlY3QudW5p
dGUoaW5mby0+cmVjdCgpKTsKICAgICAgICAgZGVsZXRlIGluZm87CiAgICAgfQogICAgIHJldHVy
biBzZWxSZWN0OwpJbmRleDogcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysg
cmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDkgKzgx
LDkgQEAKICAgICB9CiAgICAgCiAgICAgaW50IG9zID0gMiptYXhpbWFsT3V0bGluZVNpemUoaS5w
aGFzZSk7Ci0gICAgaWYgKCh0eCA+PSBpLnIueCgpICsgaS5yLndpZHRoKCkgKyBvcykgfHwgKHR4
ICsgbV93aWR0aCA8PSBpLnIueCgpIC0gb3MpKQorICAgIGlmICh0eCA+PSBpLnIucmlnaHQoKSAr
IG9zIHx8IHR4ICsgbV93aWR0aCA8PSBpLnIueCgpIC0gb3MpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoKHRvcCA+PSBpLnIueSgpICsgaS5yLmhlaWdodCgpICsgb3MpIHx8IChib3R0
b20gPD0gaS5yLnkoKSAtIG9zKSkKKyAgICBpZiAodG9wID49IGkuci5ib3R0b20oKSArIG9zIHx8
IGJvdHRvbSA8PSBpLnIueSgpIC0gb3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnVlOwpAQCAtNDA5LDExICs0MDksOCBAQAogICAgIG1fd2lkZ2V0LT5wYWludChpLnAs
IGkucik7CiAgICAgCiAgICAgLy8gUGFpbnQgYSBwYXJ0aWFsbHkgdHJhbnNwYXJlbnQgd2FzaCBv
dmVyIHNlbGVjdGVkIHdpZGdldHMuCi0gICAgaWYgKGlzU2VsZWN0ZWQoKSAmJiAhaS5wLT5wcmlu
dGluZygpKSB7Ci0gICAgICAgIEJydXNoIGJydXNoKHNlbGVjdGlvbkNvbG9yKGkucCkpOwotICAg
ICAgICBJbnRSZWN0IHNlbFJlY3Qoc2VsZWN0aW9uUmVjdCgpKTsKLSAgICAgICAgaS5wLT5maWxs
UmVjdChzZWxSZWN0LngoKSwgc2VsUmVjdC55KCksIHNlbFJlY3Qud2lkdGgoKSwgc2VsUmVjdC5o
ZWlnaHQoKSwgYnJ1c2gpOwotICAgIH0KKyAgICBpZiAoaXNTZWxlY3RlZCgpICYmICFpLnAtPnBy
aW50aW5nKCkpCisgICAgICAgIGkucC0+ZmlsbFJlY3Qoc2VsZWN0aW9uUmVjdCgpLCBzZWxlY3Rp
b25Db2xvcihpLnApKTsKIH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6OmhhbmRsZUZvY3VzT3V0KCkK
SW5kZXg6IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc2LDcgKzExNzYsNyBAQAogICAgICAgICAgICAg
aWYgKCFyLT5ub1BhaW50ICYmICFyLT5ub2RlLT5sYXllcigpKSB7CiAgICAgICAgICAgICAgICAg
SW50UmVjdCBjaGlsZFJlY3QsIGNoaWxkRnVsbFJlY3Q7CiAgICAgICAgICAgICAgICAgci0+bm9k
ZS0+Z2V0QWJzb2x1dGVSZXBhaW50UmVjdEluY2x1ZGluZ0Zsb2F0cyhjaGlsZFJlY3QsIGNoaWxk
RnVsbFJlY3QpOwotICAgICAgICAgICAgICAgIGZ1bGxCb3VuZHMgPSBmdWxsQm91bmRzLnVuaXRl
KGNoaWxkRnVsbFJlY3QpOworICAgICAgICAgICAgICAgIGZ1bGxCb3VuZHMudW5pdGUoY2hpbGRG
dWxsUmVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjIzLDggKzEy
MjMsNyBAQAogICAgIGlmICghaXNJbmxpbmVGbG93KCkgJiYgIWlzUm9vdCgpKSB7CiAgICAgICAg
IEludFJlY3Qgb3ZlcmZsb3dCb3ggPSBvdmVyZmxvd1JlY3QoZmFsc2UpOwogICAgICAgICBvdmVy
Zmxvd0JveC5pbmZsYXRlKG1heGltYWxPdXRsaW5lU2l6ZShpLnBoYXNlKSk7Ci0gICAgICAgIG92
ZXJmbG93Qm94LnNldFgob3ZlcmZsb3dCb3gueCgpICsgX3R4KTsKLSAgICAgICAgb3ZlcmZsb3dC
b3guc2V0WShvdmVyZmxvd0JveC55KCkgKyBfdHkpOworICAgICAgICBvdmVyZmxvd0JveC5tb3Zl
KF90eCwgX3R5KTsKICAgICAgICAgYm9vbCBpbnRlcnNlY3RzT3ZlcmZsb3dCb3ggPSBvdmVyZmxv
d0JveC5pbnRlcnNlY3RzKGkucik7CiAgICAgICAgIGlmICghaW50ZXJzZWN0c092ZXJmbG93Qm94
KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmbG9hdHMgbmV4dC4KQEAgLTEyMzIsOCArMTIzMSw3
IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgSW50UmVjdCBmbG9hdEJv
eCA9IGZsb2F0UmVjdCgpOwogICAgICAgICAgICAgZmxvYXRCb3guaW5mbGF0ZShtYXhpbWFsT3V0
bGluZVNpemUoaS5waGFzZSkpOwotICAgICAgICAgICAgZmxvYXRCb3guc2V0WChmbG9hdEJveC54
KCkgKyBfdHgpOwotICAgICAgICAgICAgZmxvYXRCb3guc2V0WShmbG9hdEJveC55KCkgKyBfdHkp
OworICAgICAgICAgICAgZmxvYXRCb3gubW92ZShfdHgsIF90eSk7CiAgICAgICAgICAgICBpZiAo
IWZsb2F0Qm94LmludGVyc2VjdHMoaS5yKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTEyNTMsNyArMTI1MSw3IEBACiAgICAgICAgIC8vIENoZWNrIGZvciBwYWdlLWJy
ZWFrLWJlZm9yZTogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQsIGJyZWFrIGFuZCBiYWlsLgogICAg
ICAgICBpZiAoaXNQcmludGluZyAmJiAhY2hpbGRyZW5JbmxpbmUoKSAmJiBjaGlsZC0+c3R5bGUo
KS0+cGFnZUJyZWFrQmVmb3JlKCkgPT0gUEJBTFdBWVMgJiYKICAgICAgICAgICAgIGluUm9vdEJs
b2NrQ29udGV4dCgpICYmIChfdHkgKyBjaGlsZC0+eVBvcygpKSA+IGkuci55KCkgJiYgCi0gICAg
ICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBpLnIueSgpICsgaS5yLmhlaWdodCgpKSB7
CisgICAgICAgICAgICAoX3R5ICsgY2hpbGQtPnlQb3MoKSkgPCBpLnIuYm90dG9tKCkpIHsKICAg
ICAgICAgICAgIGNhbnZhcygpLT5zZXRCZXN0VHJ1bmNhdGVkQXQoX3R5ICsgY2hpbGQtPnlQb3Mo
KSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyNjQs
NyArMTI2Miw3IEBACiAgICAgICAgIC8vIENoZWNrIGZvciBwYWdlLWJyZWFrLWFmdGVyOiBhbHdh
eXMsIGFuZCBpZiBpdCdzIHNldCwgYnJlYWsgYW5kIGJhaWwuCiAgICAgICAgIGlmIChpc1ByaW50
aW5nICYmICFjaGlsZHJlbklubGluZSgpICYmIGNoaWxkLT5zdHlsZSgpLT5wYWdlQnJlYWtBZnRl
cigpID09IFBCQUxXQVlTICYmIAogICAgICAgICAgICAgaW5Sb290QmxvY2tDb250ZXh0KCkgJiYg
KF90eSArIGNoaWxkLT55UG9zKCkgKyBjaGlsZC0+aGVpZ2h0KCkpID4gaS5yLnkoKSAmJiAKLSAg
ICAgICAgICAgIChfdHkgKyBjaGlsZC0+eVBvcygpICsgY2hpbGQtPmhlaWdodCgpKSA8IGkuci55
KCkgKyBpLnIuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIChfdHkgKyBjaGlsZC0+eVBvcygpICsg
Y2hpbGQtPmhlaWdodCgpKSA8IGkuci5ib3R0b20oKSkgewogICAgICAgICAgICAgY2FudmFzKCkt
PnNldEJlc3RUcnVuY2F0ZWRBdChfdHkgKyBjaGlsZC0+eVBvcygpICsgY2hpbGQtPmhlaWdodCgp
ICsgY2hpbGQtPmNvbGxhcHNlZE1hcmdpbkJvdHRvbSgpLCB0aGlzLCB0cnVlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTM4Nyw3ICsxMzg1LDcgQEAKICAgICAgICAgLy8g
aW50ZXJzZWN0LgogICAgICAgICBpbnQgeVBvcyA9IF90eSArIGZpcnN0TGluZUJveCgpLT55UG9z
KCk7OwogICAgICAgICBpbnQgaCA9IGxhc3RMaW5lQm94KCktPnlQb3MoKSArIGxhc3RMaW5lQm94
KCktPmhlaWdodCgpIC0gZmlyc3RMaW5lQm94KCktPnlQb3MoKTsKLSAgICAgICAgaWYoICh5UG9z
ID49IGkuci55KCkgKyBpLnIuaGVpZ2h0KCkpIHx8ICh5UG9zICsgaCA8PSBpLnIueSgpKSkKKyAg
ICAgICAgaWYgKHlQb3MgPj0gaS5yLmJvdHRvbSgpIHx8IHlQb3MgKyBoIDw9IGkuci55KCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gU2VlIGlmIG91ciBib3hlcyBpbnRlcnNl
Y3Qgd2l0aCB0aGUgZGlydHkgcmVjdC4gIElmIHNvLCB0aGVuIHdlIHBhaW50CkBAIC0xMzk2LDcg
KzEzOTQsNyBAQAogICAgICAgICBmb3IgKFJvb3RJbmxpbmVCb3gqIGN1cnIgPSBmaXJzdFJvb3RC
b3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRSb290Qm94KCkpIHsKICAgICAgICAgICAgIHlQ
b3MgPSBfdHkgKyBjdXJyLT55UG9zKCk7CiAgICAgICAgICAgICBoID0gY3Vyci0+aGVpZ2h0KCk7
Ci0gICAgICAgICAgICBpZiAoY3Vyci0+ZWxsaXBzaXNCb3goKSAmJiAoeVBvcyA8IGkuci55KCkg
KyBpLnIuaGVpZ2h0KCkpICYmICh5UG9zICsgaCA+IGkuci55KCkpKQorICAgICAgICAgICAgaWYg
KGN1cnItPmVsbGlwc2lzQm94KCkgJiYgeVBvcyA8IGkuci5ib3R0b20oKSAmJiB5UG9zICsgaCA+
IGkuci55KCkpCiAgICAgICAgICAgICAgICAgY3Vyci0+cGFpbnRFbGxpcHNpc0JveChpLCBfdHgs
IF90eSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTEzLDcgKzE1MTEsNyBAQAogICAgICAgICAg
ICAgcmVzdWx0LnVuaXRlQ2VudGVyKGZpbGxWZXJ0aWNhbFNlbGVjdGlvbkdhcChsYXN0VG9wLCBs
YXN0TGVmdCwgbGFzdFJpZ2h0LCB0eSArIHNlbFRvcCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdEJsb2NrLCBibG9ja1gsIGJsb2Nr
WSwgaSkpOwogCi0gICAgICAgIGlmICghaSB8fCAodHkgKyBzZWxUb3AgPCBpLT5yLnkoKSArIGkt
PnIuaGVpZ2h0KCkpICYmICh0eSArIHNlbFRvcCArIHNlbEhlaWdodCA+IGktPnIueSgpKSkKKyAg
ICAgICAgaWYgKCFpIHx8IHR5ICsgc2VsVG9wIDwgaS0+ci5ib3R0b20oKSAmJiB0eSArIHNlbFRv
cCArIHNlbEhlaWdodCA+IGktPnIueSgpKQogICAgICAgICAgICAgcmVzdWx0LnVuaXRlKGN1cnIt
PmZpbGxMaW5lU2VsZWN0aW9uR2FwKHNlbFRvcCwgc2VsSGVpZ2h0LCByb290QmxvY2ssIGJsb2Nr
WCwgYmxvY2tZLCB0eCwgdHksIGkpKTsKIAogICAgICAgICBsYXN0U2VsZWN0ZWRMaW5lID0gY3Vy
cjsKQEAgLTIwNTYsMjYgKzIwNTQsMjAgQEAKICAgICBmb3IgKDsgKHIgPSBpdC5jdXJyZW50KCkp
OyArK2l0KSB7CiAgICAgICAgIGlmICghci0+bm9QYWludCAmJiAhci0+bm9kZS0+bGF5ZXIoKSkg
ewogICAgICAgICAgICAgLy8gQ2hlY2sgdGhpcyBmbG9hdC4KLSAgICAgICAgICAgIGludCBib3R0
b21EZWx0YSA9IGtNYXgoMCwgci0+c3RhcnRZICsgci0+bm9kZS0+bWFyZ2luVG9wKCkgKyByLT5u
b2RlLT5vdmVyZmxvd0hlaWdodChmYWxzZSkgLQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVzdWx0LnkoKSArIHJlc3VsdC5oZWlnaHQoKSkpOworICAgICAgICAgICAg
aW50IGJvdHRvbURlbHRhID0ga01heCgwLCByLT5zdGFydFkgKyByLT5ub2RlLT5tYXJnaW5Ub3Ao
KSArIHItPm5vZGUtPm92ZXJmbG93SGVpZ2h0KGZhbHNlKSAtIHJlc3VsdC5ib3R0b20oKSk7CiAg
ICAgICAgICAgICBpZiAoYm90dG9tRGVsdGEpCiAgICAgICAgICAgICAgICAgcmVzdWx0LnNldEhl
aWdodChyZXN1bHQuaGVpZ2h0KCkgKyBib3R0b21EZWx0YSk7Ci0gICAgICAgICAgICBpbnQgcmln
aHREZWx0YSA9IGtNYXgoMCwgci0+bGVmdCArIHItPm5vZGUtPm1hcmdpbkxlZnQoKSArIHItPm5v
ZGUtPm92ZXJmbG93V2lkdGgoZmFsc2UpIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocmVzdWx0LngoKSArIHJlc3VsdC53aWR0aCgpKSk7CisgICAgICAgICAgICBpbnQg
cmlnaHREZWx0YSA9IGtNYXgoMCwgci0+bGVmdCArIHItPm5vZGUtPm1hcmdpbkxlZnQoKSArIHIt
Pm5vZGUtPm92ZXJmbG93V2lkdGgoZmFsc2UpIC0gcmVzdWx0LnJpZ2h0KCkpOwogICAgICAgICAg
ICAgaWYgKHJpZ2h0RGVsdGEpCiAgICAgICAgICAgICAgICAgcmVzdWx0LnNldFdpZHRoKHJlc3Vs
dC53aWR0aCgpICsgcmlnaHREZWx0YSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIE5v
dyBjaGVjayBsZWZ0IGFuZCB0b3AKICAgICAgICAgICAgIGludCB0b3BEZWx0YSA9IGtNaW4oMCwg
ci0+c3RhcnRZICsgci0+bm9kZS0+bWFyZ2luVG9wKCkgLSByZXN1bHQueSgpKTsKLSAgICAgICAg
ICAgIGlmICh0b3BEZWx0YSA8IDApIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuc2V0WShyZXN1
bHQueSgpICsgdG9wRGVsdGEpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRIZWlnaHQocmVz
dWx0LmhlaWdodCgpIC0gMip0b3BEZWx0YSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAodG9wRGVsdGEgPCAwKQorICAgICAgICAgICAgICAgIHJlc3VsdC5pbmZsYXRlWSgtdG9wRGVs
dGEpOwogICAgICAgICAgICAgaW50IGxlZnREZWx0YSA9IGtNaW4oMCwgci0+bGVmdCArIHItPm5v
ZGUtPm1hcmdpbkxlZnQoKSAtIHJlc3VsdC54KCkpOwotICAgICAgICAgICAgaWYgKHRvcERlbHRh
IDwgMCkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRYKHJlc3VsdC54KCkgKyBsZWZ0RGVs
dGEpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRIZWlnaHQocmVzdWx0LndpZHRoKCkgLSAy
KmxlZnREZWx0YSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVmdERlbHRhIDwg
MCkKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5mbGF0ZVgoLWxlZnREZWx0YSk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTI0NTQsOCArMjQ0Niw3IEBACiAgICAgcmV0dXJuIGZhbHNlOyAgICAK
IH0KIAotYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCBf
eCwgaW50IF95LCBpbnQgX3R4LCBpbnQgX3R5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQorYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0
UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCBfeCwgaW50IF95LCBpbnQgX3R4LCBpbnQgX3R5LCBI
aXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCiB7CiAgICAgYm9vbCBpbmxpbmVGbG93ID0gaXNJ
bmxpbmVGbG93KCk7CiAKQEAgLTI0NjUsMTYgKzI0NTYsMTQgQEAKICAgICBpZiAoIWlubGluZUZs
b3cgJiYgIWlzUm9vdCgpKSB7CiAgICAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55
dGhpbmcgYXQgYWxsLgogICAgICAgICBJbnRSZWN0IG92ZXJmbG93Qm94ID0gb3ZlcmZsb3dSZWN0
KGZhbHNlKTsKLSAgICAgICAgb3ZlcmZsb3dCb3guc2V0WChvdmVyZmxvd0JveC54KCkgKyB0eCk7
Ci0gICAgICAgIG92ZXJmbG93Qm94LnNldFkob3ZlcmZsb3dCb3gueSgpICsgdHkpOworICAgICAg
ICBvdmVyZmxvd0JveC5tb3ZlKHR4LCB0eSk7CiAgICAgICAgIGJvb2wgaW5zaWRlT3ZlcmZsb3dC
b3ggPSBvdmVyZmxvd0JveC5jb250YWlucyhfeCwgX3kpOwogICAgICAgICBpZiAoIWluc2lkZU92
ZXJmbG93Qm94KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmbG9hdHMgbmV4dC4KICAgICAgICAg
ICAgIGlmIChoaXRUZXN0QWN0aW9uICE9IEhpdFRlc3RGbG9hdCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBJbnRSZWN0IGZsb2F0Qm94ID0gZmxvYXRSZWN0KCk7
Ci0gICAgICAgICAgICBmbG9hdEJveC5zZXRYKGZsb2F0Qm94LngoKSArIHR4KTsKLSAgICAgICAg
ICAgIGZsb2F0Qm94LnNldFkoZmxvYXRCb3gueSgpICsgdHkpOworICAgICAgICAgICAgZmxvYXRC
b3gubW92ZSh0eCwgdHkpOwogICAgICAgICAgICAgaWYgKCFmbG9hdEJveC5jb250YWlucyhfeCwg
X3kpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpJbmRleDogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTI0NjcpCisrKyBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkgQEAKIAkJ
NjVGRUE4NjkwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBh
Z2UuY3BwICovOyB9OwogCQk3RTZGRUVEODA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlw
dERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U2RkVFRDkw
ODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZFRUQ3MDg5ODU4MjMwMEM0NEMz
RiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gKi87IH07CisJCTkzNTRGOUZFMDk4ODg1OUUw
MDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRy
YW5zZm9ybS5jcHAgKi87IH07CisJCTkzNTRGOUZGMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVU
cmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNTRGOUZEMDk4ODg1OUUwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAqLzsgfTsKKwkJ
OTM1NEZBMEEwOTg4ODcyNzAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0RkEwOTA5ODg4NzI3MDAy
Q0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAqLzsgfTsKIAkJOTM3QTM2QTcwOTdFMkUzMjAw
RTRFRTJGIC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzN0EzNkE2MDk3RTJFMzIwMEU0RUUyRiAvKiBVc2Vy
QWdlbnRTdHlsZVNoZWV0cy5jcHAgKi87IH07CiAJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLzsgfTsK
IAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdD
NCAvKiBFdmVudE5hbWVzLmggKi87IH07CkBAIC01MzYsOCArNTM5LDYgQEAKIAkJQTg4QUQzQzAw
OTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODEwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52
YXNJbWFnZS5oICovOyB9OwogCQlBODhBRDNDMTA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc0l0
ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEZCODIwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmNwcCAqLzsgfTsKIAkJQTg4QUQz
QzIwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI4MzA4OTcwMUY4MDBCQTUxMTQgLyogS0Nh
bnZhc0l0ZW0uaCAqLzsgfTsKLQkJQTg4QUQzQzMwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEZCODQwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRyaXguY3BwICovOyB9OwotCQlB
ODhBRDNDNDA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc01hdHJpeC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODUwODk3MDFGODAwQkE1MTE0
IC8qIEtDYW52YXNNYXRyaXguaCAqLzsgfTsKIAkJQTg4QUQzQzUwOTUyNDg2RTAwMUREMTk2IC8q
IEtDYW52YXNQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRkI4NjA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc1BhdGguaCAqLzsgfTsKIAkJ
QTg4QUQzQzYwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ3NThDNDQzMDhDNUYyMTcwMDlCQUYw
NSAvKiBLQ2FudmFzUGF0aC5jcHAgKi87IH07CiAJCUE4OEFEM0M3MDk1MjQ4NkUwMDFERDE5NiAv
KiBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZCODkwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNSZXNv
dXJjZUxpc3RlbmVyLmggKi87IH07CkBAIC04NDAsOCArODQxLDYgQEAKIAkJQThERjVGNEEwOTg0
NDhDODAwNTI5ODFCIC8qIEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REY1NDVDMDk4M0E3NTEwMDUyOTgxQiAv
KiBKU1NWR0xhenlFdmVudExpc3RlbmVyLmggKi87IH07CiAJCUE4REY1RkEzMDk4NDYwQUEwMDUy
OTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REY1RkExMDk4NDYwQUEwMDUyOTgxQiAvKiBTVkdEb2N1
bWVudEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJQThERjVGQTQwOTg0NjBBQTAwNTI5ODFCIC8qIFNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOERGNUZBMjA5ODQ2MEFBMDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRFeHRl
bnNpb25zLmNwcCAqLzsgfTsKLQkJQThGRDhCODYwODdDQjQ0QzAwREMzNzA3IC8qIEtXUVdNYXRy
aXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1
RDdBOEMwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguY3BwICovOyB9OwotCQlBOEZEOEI4
NzA4N0NCNDU3MDBEQzM3MDcgLyogS1dRV01hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEQwODc5RUM2NDAwNkE5MTcyIC8qIEtXUVdN
YXRyaXguaCAqLzsgfTsKIAkJQThGRUZCMEEwOTc5RjQ3MjAwNTgzOUZEIC8qIFJlbmRlckZvcmVp
Z25PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4RkVGQjA4MDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmggKi87IH07
CiAJCUE4RkVGQjBCMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RkVGQjA5MDk3
OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmNwcCAqLzsgfTsKIAkJQThGRUZC
MzEwOTc5RjRGNjAwNTgzOUZEIC8qIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIyRjA5NzlG
NEY2MDA1ODM5RkQgLyogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsLmNwcCAqLzsgfTsKQEAg
LTEyMDgsNiArMTIwNyw5IEBACiAJCTkzMkI5ODM0MDcwMjk3REMwMDMyODA0RiAvKiB0ZXh0X2dy
YW51bGFyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHRleHRfZ3JhbnVsYXJpdHkuaDsgcGF0aCA9IGVkaXRpbmcvdGV4dF9ncmFudWxhcml0
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJOTMzODZCOTAwMzcwNDVCMzAwODYzNUNFIC8qIEtXUVJlc291cmNlTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRUmVzb3Vy
Y2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCTkzMzg2QjkxMDM3MDQ1QjMwMDg2MzVDRSAvKiBLV1FSZXNvdXJjZUxvYWRl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gS1dRUmVzb3VyY2VMb2FkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk5MzU0RjlGQzA5ODg4NTlFMDAyQ0ZBODggLyog
QWZmaW5lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEFmZmluZVRyYW5zZm9ybS5jcHA7IHBhdGggPSBwbGF0Zm9ybS9BZmZpbmVUcmFuc2Zvcm0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0RjlGRDA5ODg4NTlFMDAyQ0ZBODgg
LyogQWZmaW5lVHJhbnNmb3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFm
ZmluZVRyYW5zZm9ybS5oOyBwYXRoID0gcGxhdGZvcm0vQWZmaW5lVHJhbnNmb3JtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNTRGQTA5MDk4ODg3MjcwMDJDRkE4OCAvKiBBZmZp
bmVUcmFuc2Zvcm0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWZm
aW5lVHJhbnNmb3JtLmNwcDsgcGF0aCA9IHBsYXRmb3JtL21hYy9BZmZpbmVUcmFuc2Zvcm0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Mzc4RDlGOTA3NjQwQTQ2MDA0Qjk3QkYg
LyogbWFya3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gbWFya3VwLmNwcDsgcGF0aCA9IGVkaXRpbmcvbWFya3VwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzNzhE
OUZBMDc2NDBBNDYwMDRCOTdCRiAvKiBtYXJrdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBtYXJrdXAuaDsgcGF0aCA9IGVkaXRpbmcvbWFya3Vw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk5MzdBMzZBNjA5N0UyRTMyMDBFNEVFMkYgLyogVXNlckFnZW50U3R5bGVTaGVldHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckFnZW50U3R5bGVTaGVl
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyMSw4ICsxNDIzLDYgQEAK
IAkJQTgzQzgxOUYwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xUUHJvY2Vzc29yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlBODNDODFBMDA5MTE4OUI5MDA5QkY0QTcgLyogWFNMVFByb2Nlc3Nvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNz
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJQTg1RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3Jr
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBl
ci5mcmFtZXdvcms7IG5hbWUgPSBRdWFydHpDb3JlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwotCQlBODVEN0E4QzA4NzlFQzY0MDA2QTkxNzIgLyogS1dRV01hdHJpeC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBLV1FXTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07Ci0JCUE4NUQ3QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtX
UVdNYXRyaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUE4ODQyODM4MDkzMDhDMUMwMEI2RDQ2MSAvKiBTVkdOYW1lc1dyYXBwZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdOYW1lc1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg4NDI4MzkwOTMwOEMxQzAwQjZENDYxIC8qIFNWR0Vs
ZW1lbnRGYWN0b3J5V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0VsZW1lbnRGYWN0b3J5V3JhcHBlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODg0
MjgzQTA5MzA4QzFDMDBCNkQ0NjEgLyoga2RvbWV2ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtkb21ldmVudHMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNzI4LDggKzE3
MjgsNiBAQAogCQlBOEMwRkI4MTA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc0ltYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZhc0lt
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlBOEMwRkI4MjA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc0l0ZW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2FudmFz
SXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQlBOEMwRkI4MzA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc0l0ZW0uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLQ2FudmFzSXRl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKLQkJQThDMEZCODQwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRyaXguY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2FudmFz
TWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07Ci0JCUE4QzBGQjg1MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzTWF0cml4Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZh
c01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJQThDMEZCODYwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNQYXRoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZhc1Bh
dGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCUE4QzBGQjg5MDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtD
YW52YXNSZXNvdXJjZUxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRkI4QTA4OTcwMUY4MDBCQTUxMTQgLyogS0Nh
bnZhc1Jlc291cmNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEtDYW52YXNSZXNvdXJjZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTI5MTgsOCArMjkxNiw2IEBA
CiAJCQkJQThDMEZCODEwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJbWFnZS5oICovLAogCQkJ
CUE4QzBGQjgyMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzSXRlbS5jcHAgKi8sCiAJCQkJQThD
MEZCODMwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNJdGVtLmggKi8sCi0JCQkJQThDMEZCODQw
ODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNNYXRyaXguY3BwICovLAotCQkJCUE4QzBGQjg1MDg5
NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzTWF0cml4LmggKi8sCiAJCQkJQThDMEZCODYwODk3MDFG
ODAwQkE1MTE0IC8qIEtDYW52YXNQYXRoLmggKi8sCiAJCQkJNDc1OEM0NDMwOEM1RjIxNzAwOUJB
RjA1IC8qIEtDYW52YXNQYXRoLmNwcCAqLywKIAkJCQlBOEMwRkI4OTA4OTcwMUY4MDBCQTUxMTQg
LyogS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCAqLywKQEAgLTMxMTksNiArMzExNSw5IEBACiAJ
CUJDRjFBNUJBMDk3ODMyMDkwMDYxQTEyMyAvKiBwbGF0Zm9ybSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTM1NEZBMDkwOTg4ODcyNzAwMkNGQTg4IC8q
IEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJOTM1NEY5RkMwOTg4ODU5RTAwMkNGQTg4IC8q
IEFmZmluZVRyYW5zZm9ybS5jcHAgKi8sCisJCQkJOTM1NEY5RkQwOTg4ODU5RTAwMkNGQTg4IC8q
IEFmZmluZVRyYW5zZm9ybS5oICovLAogCQkJCUJDRDc1QUJEMDk4OUE0NUMwMDNFMjhERiAvKiBJ
bWFnZS5tbSAqLywKIAkJCQlCQ0Q3NUFCQjA5ODlBNDQ2MDAzRTI4REYgLyogSW1hZ2UuaCAqLywK
IAkJCQlCQzA3NTk4NTA5ODg2MUE0MDA0MDdCNDggLyogQnJ1c2guaCAqLywKQEAgLTM4MjcsOCAr
MzgyNiw2IEBACiAJCQkJRjU4Nzg1M0QwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUVZhcmlhbnQuY3Bw
ICovLAogCQkJCUY1ODc4NkM1MDJERTNCODYwMUVBNDEyMiAvKiBLV1FXaWRnZXQuaCAqLywKIAkJ
CQlGNTg3ODU0MjAyREUzNzU5MDFFQTQxMjIgLyogS1dRV2lkZ2V0Lm1tICovLAotCQkJCUE4NUQ3
QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4LmggKi8sCi0JCQkJQTg1RDdBOEMwODc5
RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXguY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBxdDsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MDQwLDcgKzQwMzcsNiBAQAogCQkJCTU1
MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBkb21fcW5hbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU1MEEwQkNFMDg1RjYwNEQwMDczNTNENiAvKiBodG1sbmFtZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRUYzNDM1MDg3QjU2M0UwMEJCRjgzMyAvKiBodG1sZmFjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQThGRDhCODcwODdDQjQ1NzAwREMzNzA3IC8qIEtXUVdNYXRyaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdFNkZFRUQ4MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVi
dWdnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUM5N0FGMzA4RUE5MDg4MDBBQ0QyNzMg
LyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKQEAgLTQwNzIsNyArNDA2OCw2IEBACiAJCQkJQTg4
QUQzQkUwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNGaWx0ZXJzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODhBRDNDMDA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc0ltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDNDMjA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc0l0ZW0uaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4OEFEM0M0MDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzTWF0cml4
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDNDNTA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZh
c1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFEM0M3MDk1MjQ4NkUwMDFERDE5NiAvKiBL
Q2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQzQzkwOTUy
NDg2RTAwMUREMTk2IC8qIEtDYW52YXNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNDM1
Nyw2ICs0MzUyLDcgQEAKIAkJCQlCQ0M4Q0ZDQzA5ODZDRDI0MDAxNDBCRjIgLyogQ29sb3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQzhEMTc0MDk4ODMwMTIwMDE0MEJGMiAvKiBQZW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDc1OTg2MDk4ODYxQTQwMDQwN0I0OCAvKiBCcnVzaC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTM1NEY5RkYwOTg4ODU5RTAwMkNGQTg4IC8qIEFmZmluZVRyYW5zZm9y
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNENzVBQkMwOTg5QTQ0NjAwM0UyOERGIC8qIEltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKQEAgLTUxNzcsNyArNTE3Myw2IEBACiAJCQkJNTUwQTBCQzkwODVGNjAzOTAw
NzM1M0Q2IC8qIGRvbV9xbmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NTBBMEJDRDA4NUY2
MDREMDA3MzUzRDYgLyogaHRtbG5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUYzNDM0
MDg3QjU2M0UwMEJCRjgzMyAvKiBodG1sZmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
OEZEOEI4NjA4N0NCNDRDMDBEQzM3MDcgLyogS1dRV01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3RTZGRUVEOTA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTc3MzgwOEYxMDg2QzAwMTY2ODcwIC8qIFdl
YkNvcmVUZXh0RGVjb2Rlci5tbSBpbiBTb3VyY2VzICovLApAQCAtNTIwOCw3ICs1MjAzLDYgQEAK
IAkJCQlBODhBRDNCRDA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZhc0ZpbHRlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg4QUQzQkYwOTUyNDg2RTAwMUREMTk2IC8qIEtDYW52YXNJbWFnZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDNDMTA5NTI0ODZFMDAxREQxOTYgLyogS0NhbnZh
c0l0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQzQzMwOTUyNDg2RTAwMUREMTk2IC8q
IEtDYW52YXNNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQzQzYwOTUyNDg2RTAw
MUREMTk2IC8qIEtDYW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFEM0M4MDk1
MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzUmVzb3VyY2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4OEFEM0NDMDk1MjQ4NkUwMDFERDE5NiAvKiBLQ2FudmFzVHJlZURlYnVnLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtNTQ3OCw2ICs1NDcyLDggQEAKIAkJCQlCQ0M4Q0ZFNTA5ODZDRUE0MDAxNDBC
RjIgLyogQ29sb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0M4RDE3MzA5ODgzMDEyMDAxNDBC
RjIgLyogUGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBREI1Njk5MDk4ODI3QUQwMDMyRUVF
MiAvKiBKU0V2ZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzU0RjlGRTA5ODg4NTlFMDAy
Q0ZBODggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzNTRGQTBB
MDk4ODg3MjcwMDJDRkE4OCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNENzVBQkUwOTg5QTQ1QzAwM0UyOERGIC8qIEltYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEzN0Y2M0EwOTg4RUUzMzAwRDA1RTkwIC8qIEpTQ29yZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CkluZGV4OiBrY2FudmFzL0tDYW52YXNDb250YWluZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
Y2FudmFzL0tDYW52YXNDb250YWluZXIuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL0tD
YW52YXNDb250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDExICsyNSwxOSBAQAog
I2RlZmluZSBLQ2FudmFzQ29udGFpbmVyX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAi
a2NhbnZhcy9SZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ29udGFpbmVyLmgiCiAKLXR5
cGVkZWYgZW51bQoteworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFmZmluZVRyYW5z
Zm9ybTsKKyAgICBjbGFzcyBGbG9hdFBvaW50OworICAgIGNsYXNzIEZsb2F0UmVjdDsKKyAgICBj
bGFzcyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKK30KK3VzaW5nIFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybTsKK3VzaW5nIFdlYkNvcmU6OkZsb2F0UG9pbnQ7Cit1c2luZyBXZWJDb3JlOjpGbG9hdFJl
Y3Q7CisKK2VudW0gS0NBbGlnbiB7CiAgICAgQUxJR05fTk9ORSA9IDAsCiAgICAgQUxJR05fWE1J
TllNSU4gPSAxLAogICAgIEFMSUdOX1hNSURZTUlOID0gMiwKQEAgLTM5LDExICs0OCw3IEBACiAg
ICAgQUxJR05fWE1JTllNQVggPSA3LAogICAgIEFMSUdOX1hNSURZTUFYID0gOCwKICAgICBBTElH
Tl9YTUFYWU1BWCA9IDkKLX0gS0NBbGlnbjsKLQotbmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNz
IEtDYW52YXNSZW5kZXJpbmdTdHlsZTsKLX0KK307CiAKIGNsYXNzIEtDYW52YXNDb250YWluZXIg
OiBwdWJsaWMga2h0bWw6OlJlbmRlckNvbnRhaW5lcgogewpAQCAtNjQsOCArNjksOCBAQAogICAg
IHZpcnR1YWwgYm9vbCBzdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50ICZwKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZWxhdGl2ZUJCb3goYm9vbCBpbmNsdWRlU3Ryb2tlID0g
dHJ1ZSkgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCBRTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IFFNYXRyaXgg
Jm1hdHJpeCk7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJh
bnNmb3JtJik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEZsb2F0
UmVjdCYgdmlld3BvcnQpID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aWV3cG9ydCgpIGNv
bnN0ID0gMDsKQEAgLTgwLDcgKzg1LDcgQEAKICAgICBib29sIHNsaWNlKCkgY29uc3Q7CiAgICAg
CiBwcm90ZWN0ZWQ6Ci0gICAgS0NhbnZhc01hdHJpeCBnZXRBc3BlY3RSYXRpbyhjb25zdCBGbG9h
dFJlY3QgbG9naWNhbCwgY29uc3QgRmxvYXRSZWN0IHBoeXNpY2FsKSBjb25zdDsKKyAgICBBZmZp
bmVUcmFuc2Zvcm0gZ2V0QXNwZWN0UmF0aW8oY29uc3QgRmxvYXRSZWN0IGxvZ2ljYWwsIGNvbnN0
IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgUHJpdmF0
ZTsKSW5kZXg6IGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52
YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtjYW52YXMvUmVuZGVy
U1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsNiBAQAogewogfQogCi1S
ZW5kZXJTVkdJbWFnZTo6flJlbmRlclNWR0ltYWdlKCkKLXsKLX0KLQogdm9pZCBSZW5kZXJTVkdJ
bWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50
WSkKIHsKICAgICBpZiAocGFpbnRJbmZvLnAtPnBhaW50aW5nRGlzYWJsZWQoKSB8fCAocGFpbnRJ
bmZvLnBoYXNlICE9IFBhaW50QWN0aW9uRm9yZWdyb3VuZCkgfHwgc3R5bGUoKS0+dmlzaWJpbGl0
eSgpID09IGtodG1sOjpISURERU4pCkBAIC02NSw3ICs2MSw3IEBACiAgICAgfSBlbHNlCiAgICAg
ICAgIHBhaW50SW5mby5wLT5zYXZlKCk7CiAKLSAgICBjb250ZXh0LT5jb25jYXRDVE0oUU1hdHJp
eCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZKSk7CisgICAgY29udGV4dC0+Y29uY2F0Q1RN
KHRyYW5zbGF0aW9uTWF0cml4KHBhcmVudFgsIHBhcmVudFkpKTsKICAgICBjb250ZXh0LT5jb25j
YXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgdHJhbnNsYXRlRm9yQXR0cmlidXRlcygpOwog
ICAgIApAQCAtMTA5LDEyICsxMDUsMTIgQEAKIAogSW50UmVjdCBSZW5kZXJTVkdJbWFnZTo6Z2V0
QWJzb2x1dGVSZXBhaW50UmVjdCgpCiB7Ci0gICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0ID0gYWJz
b2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlbGF0aXZlQkJveCh0cnVlKSk7CisgICAgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0ID0gYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXAocmVsYXRpdmVCQm94KHRy
dWUpKTsKIAogICAgIC8vIEZpbHRlcnMgY2FuIGV4cGFuZCB0aGUgYm91bmRpbmcgYm94CiAgICAg
S0NhbnZhc0ZpbHRlciAqZmlsdGVyID0gZ2V0RmlsdGVyQnlJZChkb2N1bWVudCgpLCBzdHlsZSgp
LT5zdmdTdHlsZSgpLT5maWx0ZXIoKS5taWQoMSkpOwogICAgIGlmIChmaWx0ZXIpCi0gICAgICAg
IHJlcGFpbnRSZWN0ID0gcmVwYWludFJlY3QudW5pdGUoZmlsdGVyLT5maWx0ZXJCQm94Rm9ySXRl
bUJCb3gocmVwYWludFJlY3QpKTsKKyAgICAgICAgcmVwYWludFJlY3QudW5pdGUoZmlsdGVyLT5m
aWx0ZXJCQm94Rm9ySXRlbUJCb3gocmVwYWludFJlY3QpKTsKIAogICAgIHJldHVybiBlbmNsb3Np
bmdJbnRSZWN0KHJlcGFpbnRSZWN0KTsKIH0KQEAgLTEyNSw3ICsxMjEsNyBAQAogICAgIFNWR0lt
YWdlRWxlbWVudEltcGwgKmltYWdlID0gc3RhdGljX2Nhc3Q8U1ZHSW1hZ2VFbGVtZW50SW1wbCAq
Pihub2RlKCkpOwogICAgIGZsb2F0IHhPZmZzZXQgPSBpbWFnZS0+eCgpLT5iYXNlVmFsKCkgPyBp
bWFnZS0+eCgpLT5iYXNlVmFsKCktPnZhbHVlKCkgOiAwOwogICAgIGZsb2F0IHlPZmZzZXQgPSBp
bWFnZS0+eSgpLT5iYXNlVmFsKCkgPyBpbWFnZS0+eSgpLT5iYXNlVmFsKCktPnZhbHVlKCkgOiAw
OwotICAgIGNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCkudHJhbnNsYXRlKHhPZmZzZXQsIHlP
ZmZzZXQpKTsKKyAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25NYXRyaXgoeE9mZnNl
dCwgeU9mZnNldCkpOwogfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IGtjYW52YXMv
UmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9SZW5kZXJTVkdUZXh0LmNw
cAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL1JlbmRlclNWR1RleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwyOCArMjksMjggQEAKICNpbmNsdWRlICJTVkdUZXh0RWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3RJbXBsLmgiCiAjaW5jbHVkZSAiS1Jl
bmRlcmluZ0RldmljZS5oIgotI2luY2x1ZGUgIktDYW52YXNNYXRyaXguaCIKICNpbmNsdWRlICJL
Q2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCiBSZW5kZXJT
VkdUZXh0OjpSZW5kZXJTVkdUZXh0KEtTVkc6OlNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSkgCiAg
ICAgOiBSZW5kZXJCbG9jayhub2RlKQogewogfQogCi1RTWF0cml4IFJlbmRlclNWR1RleHQ6OnRy
YW5zbGF0aW9uVG9wVG9CYXNlbGluZSgpCitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHVGV4dDo6
dHJhbnNsYXRpb25Ub3BUb0Jhc2VsaW5lKCkKIHsKLSAgICBpbnQgb2Zmc2V0ID0gYmFzZWxpbmVQ
b3NpdGlvbih0cnVlLCB0cnVlKTsKLSAgICByZXR1cm4gUU1hdHJpeCgpLnRyYW5zbGF0ZSgwLCAt
b2Zmc2V0KTsKKyAgICByZXR1cm4gdHJhbnNsYXRpb25NYXRyaXgoMCwgLWJhc2VsaW5lUG9zaXRp
b24odHJ1ZSwgdHJ1ZSkpOwogfQogCi1RTWF0cml4IFJlbmRlclNWR1RleHQ6OnRyYW5zbGF0aW9u
Rm9yQXR0cmlidXRlcygpCitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVyU1ZHVGV4dDo6dHJhbnNsYXRp
b25Gb3JBdHRyaWJ1dGVzKCkKIHsKICAgICBLU1ZHOjpTVkdUZXh0RWxlbWVudEltcGwgKnRleHQg
PSBzdGF0aWNfY2FzdDxLU1ZHOjpTVkdUZXh0RWxlbWVudEltcGwgKj4oZWxlbWVudCgpKTsKIAog
ICAgIGZsb2F0IHhPZmZzZXQgPSB0ZXh0LT54KCktPmJhc2VWYWwoKS0+Z2V0Rmlyc3QoKSA/IHRl
eHQtPngoKS0+YmFzZVZhbCgpLT5nZXRGaXJzdCgpLT52YWx1ZSgpIDogMDsKICAgICBmbG9hdCB5
T2Zmc2V0ID0gdGV4dC0+eSgpLT5iYXNlVmFsKCktPmdldEZpcnN0KCkgPyB0ZXh0LT55KCktPmJh
c2VWYWwoKS0+Z2V0Rmlyc3QoKS0+dmFsdWUoKSA6IDA7CiAKLSAgICByZXR1cm4gUU1hdHJpeCgp
LnRyYW5zbGF0ZSh4T2Zmc2V0LCB5T2Zmc2V0KTsKKyAgICByZXR1cm4gdHJhbnNsYXRpb25NYXRy
aXgoeE9mZnNldCwgeU9mZnNldCk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHVGV4dDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSkKQEAgLTcwLDcgKzcw
LDcgQEAKICAgICAgICAgcGFpbnRJbmZvLnAtPnNhdmUoKTsKICAgICAKICAgICBjb250ZXh0LT5j
b25jYXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7Ci0gICAgY29udGV4dC0+Y29uY2F0Q1RNKFFNYXRy
aXgoKS50cmFuc2xhdGUocGFyZW50WCwgcGFyZW50WSkpOworICAgIGNvbnRleHQtPmNvbmNhdENU
TSh0cmFuc2xhdGlvbk1hdHJpeChwYXJlbnRYLCBwYXJlbnRZKSk7CiAgICAgY29udGV4dC0+Y29u
Y2F0Q1RNKHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpKTsKICAgICBjb250ZXh0LT5jb25jYXRD
VE0odHJhbnNsYXRpb25Ub3BUb0Jhc2VsaW5lKCkpOwogICAgIApAQCAtMTIwLDE0ICsxMjAsMTYg
QEAKICAgICAgICAgcGFpbnRJbmZvLnAtPnJlc3RvcmUoKTsKIH0KIAotYm9vbCBSZW5kZXJTVkdU
ZXh0Ojpub2RlQXRQb2ludChOb2RlSW5mbyYgaW5mbywgaW50IF94LCBpbnQgX3ksIGludCBfdHgs
IGludCBfdHksIFdlYkNvcmU6OkhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKK2Jvb2wgUmVu
ZGVyU1ZHVGV4dDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGludCB4LCBpbnQgeSwgaW50
IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQogewotICAgIFFNYXRyaXggdG90YWxU
cmFuc2Zvcm0gPSB0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKTsKKyAgICBBZmZpbmVUcmFuc2Zv
cm0gdG90YWxUcmFuc2Zvcm0gPSB0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKTsKICAgICB0b3Rh
bFRyYW5zZm9ybSAqPSB0cmFuc2xhdGlvblRvcFRvQmFzZWxpbmUoKTsKICAgICB0b3RhbFRyYW5z
Zm9ybSAqPSBhYnNvbHV0ZVRyYW5zZm9ybSgpOwotICAgIGRvdWJsZSBsb2NhbFgsIGxvY2FsWTsK
LSAgICB0b3RhbFRyYW5zZm9ybS5pbnZlcnQoKS5tYXAoX3gsIF95LCAmbG9jYWxYLCAmbG9jYWxZ
KTsKLSAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGluZm8sIChpbnQpbG9jYWxY
LCAoaW50KWxvY2FsWSwgX3R4LCBfdHksIGhpdFRlc3RBY3Rpb24pOworICAgIHRvdGFsVHJhbnNm
b3JtLmludmVydCgpOworICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IHRvdGFsVHJhbnNmb3Jt
Lm1hcChJbnRQb2ludCh4LCB5KSk7CisgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpub2RlQXRQb2lu
dChpbmZvLCBzdGF0aWNfY2FzdDxpbnQ+KGxvY2FsUG9pbnQueCgpKSwgc3RhdGljX2Nhc3Q8aW50
Pihsb2NhbFBvaW50LnkoKSksIHR4LCB0eSwgYWN0aW9uKTsKIH0KLSNlbmRpZiAvLyBTVkdfU1VQ
UE9SVAogCit9CisKKyNlbmRpZiAvLyBTVkdfU1VQUE9SVApJbmRleDoga2NhbnZhcy9LQ2FudmFz
SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzSXRlbS5jcHAJKHJldmlzaW9u
IDEyNDY3KQorKysga2NhbnZhcy9LQ2FudmFzSXRlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDIwICsyMywxNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8a2RlYnVnLmg+Ci0jaW5jbHVkZSA8a3htbGNv
cmUvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgIktDYW52YXNJdGVtLmgiCiAKLSNpbmNsdWRlICJr
Y2FudmFzL0tDYW52YXMuaCIKLSNpbmNsdWRlICJrY2FudmFzL1JlbmRlclBhdGguaCIKLSNpbmNs
dWRlICJLQ2FudmFzTWF0cml4LmgiCi0jaW5jbHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgorI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJLQ2FudmFzQ29udGFpbmVyLmgiCisjaW5jbHVk
ZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ0RldmljZS5o
IgogI2luY2x1ZGUgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgogI2luY2x1ZGUgIktSZW5kZXJp
bmdTdHJva2VQYWludGVyLmgiCi0KLSNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIK
KyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5o
IgorI2luY2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAogY2xhc3MgUmVuZGVyUGF0aDo6
UHJpdmF0ZQogewpAQCAtNDQsNyArNDEsNyBAQAogICAgIFJlZlB0cjxLQ2FudmFzUGF0aD4gcGF0
aDsKIAogICAgIEZsb2F0UmVjdCBmaWxsQkJveCwgc3Ryb2tlQmJveDsKLSAgICBRTWF0cml4IG1h
dHJpeDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4OwogfTsgICAgICAgIAogCiAvLyBSZW5k
ZXJQYXRoCkBAIC01OCwxMiArNTUsMTIgQEAKICAgICBkZWxldGUgZDsKIH0KIAotUU1hdHJpeCBS
ZW5kZXJQYXRoOjpsb2NhbFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gUmVuZGVy
UGF0aDo6bG9jYWxUcmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBkLT5tYXRyaXg7CiB9
CiAKLXZvaWQgUmVuZGVyUGF0aDo6c2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCAmbWF0
cml4KQordm9pZCBSZW5kZXJQYXRoOjpzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIG1hdHJpeCkKIHsKICAgICBkLT5tYXRyaXggPSBtYXRyaXg7CiB9CkBAIC05MiwxMSAr
ODksMTEgQEAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIGlmIChpbmNsdWRlU3Ryb2tl
KSB7Ci0gICAgICAgIGlmKCFkLT5zdHJva2VCYm94LmlzVmFsaWQoKSkKKyAgICAgICAgaWYgKGQt
PnN0cm9rZUJib3guaXNFbXB0eSgpKQogICAgICAgICAgICAgZC0+c3Ryb2tlQmJveCA9IGJib3hG
b3JQYXRoKHRydWUpOwogICAgICAgICByZXN1bHQgPSBkLT5zdHJva2VCYm94OwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGlmKCFkLT5maWxsQkJveC5pc1ZhbGlkKCkpCisgICAgICAgIGlmIChkLT5m
aWxsQkJveC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBkLT5maWxsQkJveCA9IGJib3hGb3JQYXRo
KGZhbHNlKTsKICAgICAgICAgcmVzdWx0ID0gZC0+ZmlsbEJCb3g7CiAgICAgfQpJbmRleDoga2Nh
bnZhcy9SZW5kZXJTVkdJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvUmVuZGVyU1ZHSW1h
Z2UuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL1JlbmRlclNWR0ltYWdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDI4ICsyNSwyNyBAQAogI2lmIFNWR19TVVBQT1JUCiAKICNpbmNsdWRl
ICJyZW5kZXJfaW1hZ2UuaCIKLSNpbmNsdWRlIDxxbWF0cml4Lmg+CisjaW5jbHVkZSAiQWZmaW5l
VHJhbnNmb3JtLmgiCiAKLW5hbWVzcGFjZSBLU1ZHCi17CituYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgU1ZHSW1hZ2VFbGVtZW50SW1wbDsKLSAgICBjbGFzcyBSZW5kZXJTVkdJbWFnZSA6
IHB1YmxpYyBraHRtbDo6UmVuZGVySW1hZ2UgeworCisgICAgY2xhc3MgUmVuZGVyU1ZHSW1hZ2Ug
OiBwdWJsaWMgUmVuZGVySW1hZ2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgUmVuZGVyU1ZHSW1h
Z2UoU1ZHSW1hZ2VFbGVtZW50SW1wbCAqaW1wbCk7Ci0gICAgICAgIHZpcnR1YWwgflJlbmRlclNW
R0ltYWdlKCk7CisgICAgICAgIFJlbmRlclNWR0ltYWdlKFNWR0ltYWdlRWxlbWVudEltcGwqKTsK
ICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRy
YW5zZm9ybShjb25zdCBRTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zv
cm07IH0KKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9j
YWxUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zv
cm0gPSB0cmFuc2Zvcm07IH0KICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
bGF0aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCBJbnRSZWN0IGdldEFic29sdXRlUmVwYWludFJlY3QoKTsKICAgICAgICAgCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChQYWludEluZm8mLCBpbnQgcGFyZW50WCwgaW50IHBhcmVudFkpOwogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZvaWQgdHJhbnNsYXRlRm9yQXR0cmlidXRlcygpOwotICAgICAgICBRTWF0cml4IG1f
dHJhbnNmb3JtOworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV90cmFuc2Zvcm07CiAgICAgfTsK
IH0KIApJbmRleDoga2NhbnZhcy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZh
cy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEyNDY3KQorKysga2NhbnZhcy9SZW5kZXJTVkdU
ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDMxICsyNCwzMyBAQAogI2RlZmluZSBSZW5kZXJT
VkdUZXh0X0gKICNpZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlIDxxbWF0cml4Lmg+CiAKLW5hbWVz
cGFjZSBLU1ZHIHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNsYXNzIFNWR1RleHRFbGVt
ZW50SW1wbDsKLX0KIAotY2xhc3MgUmVuZGVyU1ZHVGV4dCA6IHB1YmxpYyBraHRtbDo6UmVuZGVy
QmxvY2sKK2NsYXNzIFJlbmRlclNWR1RleHQgOiBwdWJsaWMgUmVuZGVyQmxvY2sKIHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJTVkdUZXh0KEtTVkc6OlNWR1RleHRFbGVtZW50SW1wbCAqbm9kZSk7Cisg
ICAgUmVuZGVyU1ZHVGV4dChTVkdUZXh0RWxlbWVudEltcGwgKm5vZGUpOwogCiAgICAgY29uc3Qg
Y2hhciAqcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUZXh0IjsgfQogICAg
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKICAgICAK
LSAgICB2aXJ0dWFsIFFNYXRyaXggbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3Ry
YW5zZm9ybTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBRTWF0
cml4JiB0cmFuc2Zvcm0pIHsgbV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IH0KKyAgICB2aXJ0dWFs
IEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNm
b3JtOyB9CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CiAgICAgCi0g
ICAgYm9vbCBub2RlQXRQb2ludChOb2RlSW5mbyYsIGludCBfeCwgaW50IF95LCBpbnQgX3R4LCBp
bnQgX3R5LCBXZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICBib29sIG5vZGVBdFBvaW50KE5v
ZGVJbmZvJiwgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksIEhpdFRlc3RBY3Rpb24p
OwogCiAgcHJpdmF0ZToKLSAgICBRTWF0cml4IHRyYW5zbGF0aW9uVG9wVG9CYXNlbGluZSgpOwot
ICAgIFFNYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJpeCBtX3Ry
YW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25Ub3BUb0Jhc2VsaW5lKCk7
CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpOworICAgIEFm
ZmluZVRyYW5zZm9ybSBtX3RyYW5zZm9ybTsKIH07CiAKK30KKwogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvS0NhbnZhc0l0ZW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
Y2FudmFzL0tDYW52YXNJdGVtLmgJKHJldmlzaW9uIDEyNDY3KQorKysga2NhbnZhcy9LQ2FudmFz
SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWMuc2VpZGVsQGtkZW1haWwubmV0PgorICAgIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI1LDUwICsyNiw0MyBAQAogI2RlZmluZSBL
Q2FudmFzSXRlbV9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNp
bmNsdWRlICJJbnRQb2ludC5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlIDxxM3Zh
bHVlbGlzdC5oPgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotCiAjaW5jbHVkZSAicmVuZGVyX29i
amVjdC5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsgLy8gbW92ZSBLQ2FudmFzSXRlbSBp
bnRvIFdlYkNvcmUgYW5kIHJlbW92ZSB0aGlzCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBGbG9hdFBvaW50OwotfQotCi1uYW1lc3BhY2UgS1NWRyB7CisgICAgY2xhc3MgRmxvYXRS
ZWN0OwogICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotfTsKK30KIAogY2xhc3MgS0Nh
bnZhc1BhdGg7CiBjbGFzcyBLQ2FudmFzQ29udGFpbmVyOwotY2xhc3MgS0NhbnZhc01hdHJpeDsK
LWNsYXNzIFJlbmRlclBhdGggOiBwdWJsaWMga2h0bWw6OlJlbmRlck9iamVjdAorY2xhc3MgUmVu
ZGVyUGF0aCA6IHB1YmxpYyBSZW5kZXJPYmplY3QKIHsKIHB1YmxpYzoKLSAgICBSZW5kZXJQYXRo
KGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpu
b2RlKTsKKyAgICBSZW5kZXJQYXRoKFJlbmRlclN0eWxlKiwgU1ZHU3R5bGVkRWxlbWVudEltcGwq
KTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQYXRoKCk7CiAKICAgICAvLyBIaXQtZGV0ZWN0aW9uIHNl
cGVyYXRlZCBmb3IgdGhlIGZpbGwgYW5kIHRoZSBzdHJva2UKLSAgICB2aXJ0dWFsIGJvb2wgZmls
bENvbnRhaW5zKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQgJnApIGNvbnN0OwotICAgIHZpcnR1
YWwgYm9vbCBzdHJva2VDb250YWlucyhjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50ICZwKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYpIGNv
bnN0OwogCiAgICAgLy8gUmV0dXJucyBhbiB1bnNjYWxlZCBib3VuZGluZyBib3ggKG5vdCBldmVu
IGluY2x1ZGluZyBsb2NhbFRyYW5zZm9ybSgpKSBmb3IgdGhpcyB2ZWN0b3IgcGF0aAogICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHJlbGF0aXZlQkJveChib29sIGluY2x1ZGVTdHJva2UgPSB0cnVlKSBj
b25zdDsKIAotICAgIHZvaWQgY2hhbmdlUGF0aChLQ2FudmFzUGF0aCogbmV3UGF0aCk7CisgICAg
dm9pZCBjaGFuZ2VQYXRoKEtDYW52YXNQYXRoKik7CiAgICAgS0NhbnZhc1BhdGgqIHBhdGgoKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1
cm4gIktDYW52YXNJdGVtIjsgfQogICAgIAotICAgIHZpcnR1YWwgUU1hdHJpeCBsb2NhbFRyYW5z
Zm9ybSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBR
TWF0cml4ICZtYXRyaXgpOworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNm
b3JtKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldExvY2FsVHJhbnNmb3JtKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYpOwogICAgIAogcHJvdGVjdGVkOgogICAgIC8vIHJlc3RyaWN0ZWQgc2V0
IG9mIGFyZ3MgZm9yIHBhc3NpbmcgdG8gcGFpbnQgc2VydmVycywgZXRjLgotICAgIHZpcnR1YWwg
Ym9vbCBoaXRzUGF0aChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50ICZoaXRQb2ludCwgYm9vbCBm
aWxsKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGhpdHNQYXRoKGNvbnN0IEZsb2F0UG9p
bnQmLCBib29sIGZpbGwpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBiYm94Rm9y
UGF0aChib29sIGluY2x1ZGVTdHJva2UpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToKSW5kZXg6IGtj
YW52YXMvS0NhbnZhc01hdHJpeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzTWF0
cml4LmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL0tDYW52YXNNYXRyaXguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI5MSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCi0gICAgQm9zdG9u
LCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaWYgU1ZH
X1NVUFBPUlQKLSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8cXdtYXRyaXguaD4KLQotI2lu
Y2x1ZGUgIktDYW52YXNQYXRoLmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgotCi1zdGF0
aWMgY29uc3QgZG91YmxlIGRlZzJyYWQgPSAwLjAxNzQ1MzI5MjUxOTk0MzI5NTc2OTsgLy8gcGkv
MTgwCi0KLS8vIEtDYW52YXNNYXRyaXgKLUtDYW52YXNNYXRyaXg6OktDYW52YXNNYXRyaXgoKQot
ewotICAgIG1fbW9kZSA9IE9QU19QUkVNVUw7Ci19Ci0KLUtDYW52YXNNYXRyaXg6OktDYW52YXNN
YXRyaXgoY29uc3QgUU1hdHJpeCAmcW1hdHJpeCkKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVM
OwotICAgICgqdGhpcykgPSBxbWF0cml4OwotfQotCi1LQ2FudmFzTWF0cml4OjpLQ2FudmFzTWF0
cml4KGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdHJpeCkKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJF
TVVMOwotICAgICgqdGhpcykgPSBtYXRyaXg7Ci19Ci0KLUtDYW52YXNNYXRyaXg6OktDYW52YXNN
YXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBk
b3VibGUgZikKLXsKLSAgICBtX21vZGUgPSBPUFNfUFJFTVVMOwotICAgIG1fbWF0cml4LnNldE1h
dHJpeChhLCBiLCBjLCBkLCBlLCBmKTsKLX0KLQotS0NhbnZhc01hdHJpeDo6fktDYW52YXNNYXRy
aXgoKQotewotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj0oY29u
c3QgUU1hdHJpeCAmb3RoZXIpCi17Ci0gICAgbV9tYXRyaXggPSBvdGhlcjsKLSAgICByZXR1cm4g
KnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6Om9wZXJhdG9yPShjb25z
dCBLQ2FudmFzTWF0cml4ICZvdGhlcikKLXsKLSAgICBtX21hdHJpeCA9IG90aGVyLm1fbWF0cml4
OwotICAgIHJldHVybiAqdGhpczsKLX0KLQotYm9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj09
KGNvbnN0IFFNYXRyaXggJm90aGVyKSBjb25zdAotewotICAgIHJldHVybiAobV9tYXRyaXggPT0g
b3RoZXIpOwotfQotCi1ib29sIEtDYW52YXNNYXRyaXg6Om9wZXJhdG9yIT0oY29uc3QgUU1hdHJp
eCAmb3RoZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsKLX0KLQot
Ym9vbCBLQ2FudmFzTWF0cml4OjpvcGVyYXRvcj09KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVy
KSBjb25zdAotewotICAgIHJldHVybiAobV9tYXRyaXggPT0gb3RoZXIubV9tYXRyaXgpOwotfQot
Ci1ib29sIEtDYW52YXNNYXRyaXg6Om9wZXJhdG9yIT0oY29uc3QgS0NhbnZhc01hdHJpeCAmb3Ro
ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsKLX0KLQotdm9pZCBL
Q2FudmFzTWF0cml4OjpzZXRPcGVyYXRpb25Nb2RlKEtDTWF0cml4T3BlcmF0aW9uTW9kZSBtb2Rl
KQotewotICAgIG1fbW9kZSA9IG1vZGU7Ci19ICAgIAotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNl
dEEoZG91YmxlIGEpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KGEsIG1fbWF0cml4Lm0xMigp
LCBtX21hdHJpeC5tMjEoKSwgbV9tYXRyaXgubTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4
LmR5KCkpOwotfQotCi1kb3VibGUgS0NhbnZhc01hdHJpeDo6YSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fbWF0cml4Lm0xMSgpOwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEIoZG91Ymxl
IGIpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgpLCBiLCBtX21hdHJp
eC5tMjEoKSwgbV9tYXRyaXgubTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwot
fQotCi1kb3VibGUgS0NhbnZhc01hdHJpeDo6YigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0
cml4Lm0xMigpOwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEMoZG91YmxlIGMpCi17Ci0g
ICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgYywg
bV9tYXRyaXgubTIyKCksIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwotfQotCi1kb3Vi
bGUgS0NhbnZhc01hdHJpeDo6YygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4Lm0yMSgp
OwotfQotCi12b2lkIEtDYW52YXNNYXRyaXg6OnNldEQoZG91YmxlIGQpCi17Ci0gICAgbV9tYXRy
aXguc2V0TWF0cml4KG1fbWF0cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIx
KCksIGQsIG1fbWF0cml4LmR4KCksIG1fbWF0cml4LmR5KCkpOwotfQotCi1kb3VibGUgS0NhbnZh
c01hdHJpeDo6ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0cml4Lm0yMigpOwotfQotCi12
b2lkIEtDYW52YXNNYXRyaXg6OnNldEUoZG91YmxlIGUpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0
cml4KG1fbWF0cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIG1fbWF0
cml4Lm0yMigpLCBlLCBtX21hdHJpeC5keSgpKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6
OmUoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdHJpeC5keCgpOwotfQotCi12b2lkIEtDYW52
YXNNYXRyaXg6OnNldEYoZG91YmxlIGYpCi17Ci0gICAgbV9tYXRyaXguc2V0TWF0cml4KG1fbWF0
cml4Lm0xMSgpLCBtX21hdHJpeC5tMTIoKSwgbV9tYXRyaXgubTIxKCksIG1fbWF0cml4Lm0yMigp
LCBtX21hdHJpeC5keCgpLCBmKTsKLX0KLQotZG91YmxlIEtDYW52YXNNYXRyaXg6OmYoKSBjb25z
dAotewotICAgIHJldHVybiBtX21hdHJpeC5keSgpOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2Fu
dmFzTWF0cml4Ojp0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5KQotewotICAgIGlmKG1fbW9k
ZSA9PSBPUFNfUFJFTVVMKQotICAgICAgICBtX21hdHJpeC50cmFuc2xhdGUoeCwgeSk7Ci0gICAg
ZWxzZQotICAgIHsKLSAgICAgICAgUU1hdHJpeCB0ZW1wOwotICAgICAgICB0ZW1wLnRyYW5zbGF0
ZSh4LCB5KTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4g
KnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNNYXRyaXg6Om11bHRpcGx5KGNvbnN0
IEtDYW52YXNNYXRyaXggJm90aGVyKQotewotICAgIFFNYXRyaXggdGVtcChvdGhlci5hKCksIG90
aGVyLmIoKSwgb3RoZXIuYygpLCBvdGhlci5kKCksIG90aGVyLmUoKSwgb3RoZXIuZigpKTsKLQot
ICAgIGlmKG1fbW9kZSA9PSBPUFNfUFJFTVVMKQotICAgIHsKLSAgICAgICAgdGVtcCAqPSBtX21h
dHJpeDsKLSAgICAgICAgbV9tYXRyaXggPSB0ZW1wOwotICAgIH0KLSAgICBlbHNlCi0gICAgICAg
IG1fbWF0cml4ICo9IHRlbXA7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRy
aXggJktDYW52YXNNYXRyaXg6OnNjYWxlKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2Fs
ZUZhY3RvclkpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVNVUwpCi0gICAgICAgIG1fbWF0
cml4LnNjYWxlKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKLSAgICBlbHNlCi0gICAgewot
ICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAgIHRlbXAuc2NhbGUoc2NhbGVGYWN0b3JYLCBz
Y2FsZUZhY3RvclkpOwotICAgICAgICBtX21hdHJpeCAqPSB0ZW1wOwotICAgIH0KLQotICAgIHJl
dHVybiAqdGhpczsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6cm90YXRlKGRv
dWJsZSBhbmdsZSkKLXsKLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1VTCkKLSAgICAgICAgbV9t
YXRyaXgucm90YXRlKGFuZ2xlKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRl
bXA7Ci0gICAgICAgIHRlbXAucm90YXRlKGFuZ2xlKTsKLSAgICAgICAgbV9tYXRyaXggKj0gdGVt
cDsKLSAgICB9Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52
YXNNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KQotewotICAgIGlm
KG1fbW9kZSA9PSBPUFNfUFJFTVVMKQotICAgICAgICBtX21hdHJpeC5yb3RhdGUoYXRhbjIoeSwg
eCkgLyBkZWcycmFkKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0g
ICAgICAgIHRlbXAucm90YXRlKGF0YW4yKHksIHgpIC8gZGVnMnJhZCk7Ci0gICAgICAgIG1fbWF0
cml4ICo9IHRlbXA7Ci0gICAgfQotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0
cml4ICZLQ2FudmFzTWF0cml4OjpmbGlwWCgpCi17Ci0gICAgcmV0dXJuIHNjYWxlKC0xLjBmLCAx
LjBmKTsKLX0KLQotS0NhbnZhc01hdHJpeCAmS0NhbnZhc01hdHJpeDo6ZmxpcFkoKQotewotICAg
IHJldHVybiBzY2FsZSgxLjBmLCAtMS4wZik7Ci19Ci0KLUtDYW52YXNNYXRyaXggJktDYW52YXNN
YXRyaXg6OnNrZXdYKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBpZihtX21vZGUgPT0gT1BTX1BSRU1V
TCkKLSAgICAgICAgbV9tYXRyaXguc2hlYXIodGFuKGFuZ2xlICogZGVnMnJhZCksIDAuMGYpOwot
ICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIFFNYXRyaXggdGVtcDsKLSAgICAgICAgdGVtcC5zaGVh
cih0YW4oYW5nbGUgKiBkZWcycmFkKSwgMC4wZik7Ci0gICAgICAgIG1fbWF0cml4ICo9IHRlbXA7
Ci0gICAgfQotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCi1LQ2FudmFzTWF0cml4ICZLQ2FudmFz
TWF0cml4Ojpza2V3WShkb3VibGUgYW5nbGUpCi17Ci0gICAgaWYobV9tb2RlID09IE9QU19QUkVN
VUwpCi0gICAgICAgIG1fbWF0cml4LnNoZWFyKDAuMGYsIHRhbihhbmdsZSAqIGRlZzJyYWQpKTsK
LSAgICBlbHNlCi0gICAgewotICAgICAgICBRTWF0cml4IHRlbXA7Ci0gICAgICAgIHRlbXAuc2hl
YXIoMC4wZiwgdGFuKGFuZ2xlICogZGVnMnJhZCkpOwotICAgICAgICBtX21hdHJpeCAqPSB0ZW1w
OwotICAgIH0KLQotICAgIHJldHVybiAqdGhpczsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4Ojpy
ZXNldCgpCi17Ci0gICAgbV9tYXRyaXgucmVzZXQoKTsKLX0KLQotdm9pZCBLQ2FudmFzTWF0cml4
OjpyZW1vdmVTY2FsZShkb3VibGUgKnhTY2FsZSwgZG91YmxlICp5U2NhbGUpCi17Ci0gICAgZG91
YmxlIHN4ID0gc3FydChhKCkgKiBhKCkgKyBiKCkgKmIoKSk7Ci0gICAgZG91YmxlIHN5ID0gc3Fy
dChjKCkgKiBjKCkgKyBkKCkgKmQoKSk7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIHNjYWxpbmcgZnJv
bSB0aGUgbWF0cml4LgotICAgIHNldEEoYSgpIC8gc3gpOyBzZXRCKGIoKSAvIHN4KTsKLSAgICBz
ZXRDKGMoKSAvIHN5KTsgc2V0RChkKCkgLyBzeSk7Ci0KLSAgICAqeFNjYWxlID0gc3g7ICp5U2Nh
bGUgPSBzeTsKLX0KLQotUU1hdHJpeCBLQ2FudmFzTWF0cml4OjpxbWF0cml4KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9tYXRyaXg7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKLSNlbmRpZiAvLyBT
VkdfU1VQUE9SVAotCkluZGV4OiBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtjYW52YXMvS0NhbnZhc1RyZWVEZWJ1Zy5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysg
a2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMzQgKzI5
LDI2IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJLQ2FudmFzVHJlZURlYnVnLmgiCiAK
LSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVk
ZSA8a2NhbnZhcy9LQ2FudmFzTWF0cml4Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRo
Lmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+CisjaW5jbHVkZSAiRmxv
YXRTaXplLmgiCisjaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgorI2luY2x1ZGUgIktDYW52
YXNGaWx0ZXJzLmgiCiAjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCi0jaW5jbHVk
ZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgotI2luY2x1ZGUgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdTdHJva2VQYWludGVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZp
Y2UvS1JlbmRlcmluZ0ZpbGxQYWludGVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1Jl
bmRlcmluZ1BhaW50U2VydmVyU29saWQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1Jl
bmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNS
ZXNvdXJjZXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmg+Ci0KKyNpbmNs
dWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgor
I2luY2x1ZGUgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQ
YWludFNlcnZlckdyYWRpZW50LmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0
dGVybi5oIgorI2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlclNvbGlkLmgiCisjaW5jbHVk
ZSAiS1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKICNpbmNsdWRlICJLV1FSZW5kZXJUcmVlRGVi
dWcuaCIKLQotI2luY2x1ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KLQorI2luY2x1ZGUgIkFm
ZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSA8
a3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrZG9tL0RPTVN0
cmluZy5oPgorI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiZG9t
X2F0b21pY3N0cmluZy5oIgogI2luY2x1ZGUgImh0bWxuYW1lcy5oIgotCisjaW5jbHVkZSA8a3ht
bGNvcmUvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxxdGV4dHN0
cmVhbS5oPgotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
IApAQCAtOTYsNyArODgsNyBAQAogICAgIHJldHVybiB0cyA8PCAiYXQgKCIgPDwgci54KCkgPDwg
IiwiIDw8IHIueSgpIDw8ICIpIHNpemUgIiA8PCByLndpZHRoKCkgPDwgIngiIDw8IHIuaGVpZ2h0
KCk7CiB9CiAKLWJvb2wgaGFzRnJhY3Rpb25zKGRvdWJsZSB2YWwpCitib29sIGhhc0ZyYWN0aW9u
YWxQYXJ0KGRvdWJsZSB2YWwpCiB7CiAgICAgZG91YmxlIGVwc2lsb24gPSAwLjAwMDE7CiAgICAg
aW50IGl2YWwgPSBpbnQodmFsKTsKQEAgLTEwNCw3MCArOTYsNTIgQEAKICAgICByZXR1cm4gKGZh
YnModmFsLWR2YWwpID4gZXBzaWxvbik7CiB9CiAKK1FUZXh0U3RyZWFtJiBkdW1wKFFUZXh0U3Ry
ZWFtJiB0cywgZmxvYXQgZikKK3sKKyAgICBpZiAoIWhhc0ZyYWN0aW9uYWxQYXJ0KGYpKSAKKyAg
ICAgICAgcmV0dXJuIHRzIDw8IHN0YXRpY19jYXN0PGludD4oZik7CisgICAgcmV0dXJuIHRzIDw8
IGY7Cit9CisKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3Qg
RmxvYXRSZWN0ICZyKQogewogICAgIHRzIDw8ICJhdCAoIjsgCi0gICAgaWYgKGhhc0ZyYWN0aW9u
cyhyLngoKSkpIAotICAgICAgICB0cyA8PCByLngoKTsKLSAgICBlbHNlIAotICAgICAgICB0cyA8
PCBpbnQoci54KCkpOworICAgIGR1bXAodHMsIHIueCgpKTsKICAgICB0cyA8PCAiLCI7Ci0gICAg
aWYgKGhhc0ZyYWN0aW9ucyhyLnkoKSkpIAotICAgICAgICB0cyA8PCByLnkoKTsKLSAgICBlbHNl
IAotICAgICAgICB0cyA8PCBpbnQoci55KCkpOworICAgIGR1bXAodHMsIHIueSgpKTsKICAgICB0
cyA8PCAiKSBzaXplICI7Ci0gICAgaWYgKGhhc0ZyYWN0aW9ucyhyLndpZHRoKCkpKSAKLSAgICAg
ICAgdHMgPDwgci53aWR0aCgpOyAKLSAgICBlbHNlIAotICAgICAgICB0cyA8PCBpbnQoci53aWR0
aCgpKTsgCisgICAgZHVtcCh0cywgci53aWR0aCgpKTsKICAgICB0cyA8PCAieCI7Ci0gICAgaWYg
KGhhc0ZyYWN0aW9ucyhyLmhlaWdodCgpKSkgCi0gICAgICAgIHRzIDw8IHIuaGVpZ2h0KCk7Ci0g
ICAgZWxzZSAKLSAgICAgICAgdHMgPDwgaW50KHIuaGVpZ2h0KCkpOworICAgIGR1bXAodHMsIHIu
aGVpZ2h0KCkpOwogICAgIHJldHVybiB0czsKIH0KIAogUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwo
UVRleHRTdHJlYW0gJnRzLCBjb25zdCBGbG9hdFBvaW50ICZwKQogewogICAgIHRzIDw8ICIoIjsg
ICAgCi0gICAgaWYgKGhhc0ZyYWN0aW9ucyhwLngoKSkpCi0gICAgICAgIHRzIDw8IHAueCgpOwot
ICAgIGVsc2UgCi0gICAgICAgIHRzIDw8IGludChwLngoKSk7ICAgIAorICAgIGR1bXAodHMsIHAu
eCgpKTsKICAgICB0cyA8PCAiLCI7Ci0gICAgaWYgKGhhc0ZyYWN0aW9ucyhwLnkoKSkpIAotICAg
ICAgICB0cyA8PCBwLnkoKTsKLSAgICBlbHNlIAotICAgICAgICB0cyA8PCBpbnQocC55KCkpOyAg
ICAKKyAgICBkdW1wKHRzLCBwLnkoKSk7CiAgICAgcmV0dXJuIHRzIDw8ICIpIjsKIH0KIAogUVRl
eHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBGbG9hdFNpemUgJnMp
CiB7ICAgCiAgICAgdHMgPDwgIndpZHRoPSI7Ci0gICAgaWYgKGhhc0ZyYWN0aW9ucyhzLndpZHRo
KCkpKQotICAgICAgICB0cyA8PCBzLndpZHRoKCk7Ci0gICAgZWxzZQotICAgICAgICB0cyA8PCBp
bnQocy53aWR0aCgpKTsKKyAgICBkdW1wKHRzLCBzLndpZHRoKCkpOwogICAgIHRzIDw8ICIgaGVp
Z2h0PSI7Ci0gICAgaWYgKGhhc0ZyYWN0aW9ucyhzLmhlaWdodCgpKSkgCi0gICAgICAgIHRzIDw8
IHMuaGVpZ2h0KCk7Ci0gICAgZWxzZQotICAgICAgICB0cyA8PCBpbnQocy5oZWlnaHQoKSk7Cisg
ICAgZHVtcCh0cywgcy5oZWlnaHQoKSk7CiAgICAgIHJldHVybiB0czsKIH0KIAotCi1RVGV4dFN0
cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFFNYXRyaXggJm0pCitRVGV4
dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSAmbSkKIHsKICAgICBpZiAobS5pc0lkZW50aXR5KCkpCiAgICAgICAgIHRzIDw8ICJpZGVudGl0
eSI7CiAgICAgZWxzZSAKICAgICB7Ci0gICAgICAgIHRzIDw8ICJ7bT0oKCIgPDwgbS5tMTEoKSA8
PCAiLCIgPDwgbS5tMTIoKSA8PCAiKSgiIDw8IG0ubTIxKCkgPDwgIiwiIDw8IG0ubTIyKCkgPDwg
IikpIjsKLSAgICAgICAgdHMgPDwgIiB0PSgiIDw8IG0uZHgoKSA8PCAiLCIgPDwgbS5keSgpIDw8
ICIpfSI7CisgICAgICAgIHRzIDw8ICJ7bT0oKCIgPDwgbS5hKCkgPDwgIiwiIDw8IG0uYigpIDw8
ICIpKCIgPDwgbS5jKCkgPDwgIiwiIDw8IG0uZCgpIDw8ICIpKSI7CisgICAgICAgIHRzIDw8ICIg
dD0oIiA8PCBtLmUoKSA8PCAiLCIgPDwgbS5mKCkgPDwgIil9IjsKICAgICB9CiAgICAgcmV0dXJu
IHRzOwogfQpAQCAtMzA0LDcgKzI3OCw3IEBACiAKIHN0YXRpYyBRVGV4dFN0cmVhbSAmb3BlcmF0
b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFJlbmRlclBhdGggJm8pCiB7Ci0gICAgdHMgPDwg
IiAiIDw8IG8uYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KG8ucmVsYXRpdmVCQm94KCkpOwor
ICAgIHRzIDw8ICIgIiA8PCBvLmFic29sdXRlVHJhbnNmb3JtKCkubWFwKG8ucmVsYXRpdmVCQm94
KCkpOwogICAgIAogICAgIHdyaXRlU3R5bGUodHMsIG8pOwogICAgIApAQCAtMzE1LDcgKzI4OSw3
IEBACiAKIHN0YXRpYyBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNv
bnN0IEtDYW52YXNDb250YWluZXIgJm8pCiB7Ci0gICAgdHMgPDwgIiAiIDw8IG8uYWJzb2x1dGVU
cmFuc2Zvcm0oKS5tYXBSZWN0KG8ucmVsYXRpdmVCQm94KCkpOworICAgIHRzIDw8ICIgIiA8PCBv
LmFic29sdXRlVHJhbnNmb3JtKCkubWFwKG8ucmVsYXRpdmVCQm94KCkpOwogICAgIAogICAgIHdy
aXRlU3R5bGUodHMsIG8pOwogICAgIApJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1Bh
aW50U2VydmVyR3JhZGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVuZGVy
aW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBA
IC0yNSwyMiArMjYsMjYgQEAKICNpZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKICNpbmNsdWRlIDxxM3B0cmxpc3Qu
aD4KIAotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlci5oPgot
I2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaD4KK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOyAvLyBtb3ZlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpbnRvIFdlYkNvcmUg
bmFtZXNwYWNlIGFuZCByZW1vdmUgdGhpcwogCi10eXBlZGVmIGVudW0KLXsKK2NsYXNzIEtDYW52
YXNSZXNvdXJjZUxpc3RlbmVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgQWZm
aW5lVHJhbnNmb3JtOworfQorCitlbnVtIEtDR3JhZGllbnRTcHJlYWRNZXRob2QgewogICAgIFNQ
UkVBRE1FVEhPRF9QQUQgPSAxLAogICAgIFNQUkVBRE1FVEhPRF9SRVBFQVQgPSAyLAogICAgIFNQ
UkVBRE1FVEhPRF9SRUZMRUNUID0gNAotfSBLQ0dyYWRpZW50U3ByZWFkTWV0aG9kOworfTsKIAog
UVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBLQ0dyYWRpZW50U3ByZWFk
TWV0aG9kIG0pOwogCi1zdHJ1Y3QgS0NHcmFkaWVudE9mZnNldFBhaXIKLXsKK3N0cnVjdCBLQ0dy
YWRpZW50T2Zmc2V0UGFpciB7CiAgICAgZmxvYXQgb2Zmc2V0OwogICAgIENvbG9yIGNvbG9yOwog
fTsKQEAgLTQ5LDcgKzU0LDcgQEAKIHsKIHB1YmxpYzoKICAgICBLQ1NvcnRlZEdyYWRpZW50U3Rv
cExpc3QoKTsKLSAgICB2b2lkIGFkZFN0b3AoZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciAmY29s
b3IpOworICAgIHZvaWQgYWRkU3RvcChmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJik7CiAKICAg
ICB0eXBlZGVmIFEzUHRyTGlzdEl0ZXJhdG9yPEtDR3JhZGllbnRPZmZzZXRQYWlyPiBJdGVyYXRv
cjsKIApAQCAtNjEsNyArNjYsNiBAQAogCiBRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0
cmVhbSAmLCBjb25zdCBLQ1NvcnRlZEdyYWRpZW50U3RvcExpc3QgJik7CiAKLWNsYXNzIEtDYW52
YXNNYXRyaXg7CiBjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudCA6IHB1YmxpYyBL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXIKIHsKIHB1YmxpYzoKQEAgLTgyLDggKzg2LDggQEAKICAgICBi
b29sIGJvdW5kaW5nQm94TW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Qm91bmRpbmdCb3hNb2Rl
KGJvb2wgbW9kZSA9IHRydWUpOwogCi0gICAgS0NhbnZhc01hdHJpeCBncmFkaWVudFRyYW5zZm9y
bSgpIGNvbnN0OwotICAgIHZvaWQgc2V0R3JhZGllbnRUcmFuc2Zvcm0oY29uc3QgS0NhbnZhc01h
dHJpeCAmbWF0KTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gZ3JhZGllbnRUcmFuc2Zvcm0oKSBjb25z
dDsKKyAgICB2b2lkIHNldEdyYWRpZW50VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYp
OwogICAgIAogICAgIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyICpsaXN0ZW5lcigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0TGlzdGVuZXIoS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVyKTsK
SW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzSXRlbVF1YXJ0ei5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHoubW0JKHJldmlz
aW9uIDEyNDY3KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaW1wb3J0ICJLQ2FudmFzUmVuZGVy
aW5nU3R5bGUuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdGaWxsUGFpbnRlci5oIgogI2ltcG9ydCAi
S1JlbmRlcmluZ1N0cm9rZVBhaW50ZXIuaCIKLSNpbXBvcnQgIktDYW52YXNNYXRyaXguaCIKIAog
I2ltcG9ydCAiS0NhbnZhc1BhdGhRdWFydHouaCIKICNpbXBvcnQgIktSZW5kZXJpbmdEZXZpY2VR
dWFydHouaCIKQEAgLTQ3LDcgKzQ2LDcgQEAKICNpbXBvcnQgIlNWR1JlbmRlclN0eWxlLmgiCiAj
aW1wb3J0ICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2ltcG9ydCAiS0NhbnZhc1JlbmRlcmlu
Z1N0eWxlLmgiCi0KKyNpbXBvcnQgIkludFJlY3QuaCIKIAogS0NhbnZhc0l0ZW1RdWFydHo6OktD
YW52YXNJdGVtUXVhcnR6KGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxl
ZEVsZW1lbnRJbXBsICpub2RlKSA6IFJlbmRlclBhdGgoc3R5bGUsIG5vZGUpCiB7CkBAIC0xOTks
MTUgKzE5OCwxNSBAQAogCiBJbnRSZWN0IEtDYW52YXNJdGVtUXVhcnR6OjpnZXRBYnNvbHV0ZVJl
cGFpbnRSZWN0KCkKIHsKLSAgICBGbG9hdFJlY3QgcmVwYWludFJlY3QgPSBhYnNvbHV0ZVRyYW5z
Zm9ybSgpLm1hcFJlY3QocmVsYXRpdmVCQm94KHRydWUpKTsKKyAgICBGbG9hdFJlY3QgcmVwYWlu
dFJlY3QgPSBhYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcChyZWxhdGl2ZUJCb3godHJ1ZSkpOwogICAg
IAogICAgIC8vIEZpbHRlcnMgY2FuIGV4cGFuZCB0aGUgYm91bmRpbmcgYm94Ci0gICAgS0NhbnZh
c0ZpbHRlciAqZmlsdGVyID0gZ2V0RmlsdGVyQnlJZChkb2N1bWVudCgpLCBzdHlsZSgpLT5zdmdT
dHlsZSgpLT5maWx0ZXIoKS5taWQoMSkpOwotICAgIGlmIChmaWx0ZXIpCi0gICAgICAgIHJlcGFp
bnRSZWN0ID0gcmVwYWludFJlY3QudW5pdGUoZmlsdGVyLT5maWx0ZXJCQm94Rm9ySXRlbUJCb3go
cmVwYWludFJlY3QpKTsKKyAgICBpZiAoS0NhbnZhc0ZpbHRlciogZmlsdGVyID0gZ2V0RmlsdGVy
QnlJZChkb2N1bWVudCgpLCBzdHlsZSgpLT5zdmdTdHlsZSgpLT5maWx0ZXIoKS5taWQoMSkpKQor
ICAgICAgICByZXBhaW50UmVjdC51bml0ZShmaWx0ZXItPmZpbHRlckJCb3hGb3JJdGVtQkJveChy
ZXBhaW50UmVjdCkpOwogICAgIAogICAgIGlmICghcmVwYWludFJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICByZXBhaW50UmVjdC5pbmZsYXRlKDEpOyAvLyBpbmZsYXRlIDEgcGl4ZWwgZm9yIGFudGlh
bGlhc2luZworCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QocmVwYWludFJlY3QpOwogfQog
CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0
ei5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmlu
Z0RldmljZVF1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9y
dCAiUXVhcnR6U3VwcG9ydC5oIgogCiAjaW1wb3J0ICJrY2FudmFzL0tDYW52YXMuaCIKLSNpbXBv
cnQgIktDYW52YXNNYXRyaXguaCIKICNpbXBvcnQgIktDYW52YXNJdGVtUXVhcnR6LmgiCiAjaW1w
b3J0ICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdTdHJva2VQ
YWludGVyLmgiCkBAIC01NCwxOSArNTMsMTcgQEAKICAgICBbbV9uc0dyYXBoaWNzQ29udGV4dCBy
ZWxlYXNlXTsKIH0KIAotS0NhbnZhc01hdHJpeCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0
ejo6Y29uY2F0Q1RNKGNvbnN0IEtDYW52YXNNYXRyaXggJndvcmxkTWF0cml4KQorQWZmaW5lVHJh
bnNmb3JtIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6Ojpjb25jYXRDVE0oY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB3b3JsZE1hdHJpeCkKIHsKLSAgICBLQ2FudmFzTWF0cml4IHJldCA9IGN0
bSgpOwotICAgIENHQWZmaW5lVHJhbnNmb3JtIHdNYXRyaXggPSBDR0FmZmluZVRyYW5zZm9ybU1h
a2Uod29ybGRNYXRyaXguYSgpLCB3b3JsZE1hdHJpeC5iKCksIHdvcmxkTWF0cml4LmMoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGRN
YXRyaXguZCgpLCB3b3JsZE1hdHJpeC5lKCksIHdvcmxkTWF0cml4LmYoKSk7Ci0gICAgQ0dDb250
ZXh0Q29uY2F0Q1RNKG1fY2dDb250ZXh0LCB3TWF0cml4KTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0g
cmV0ID0gY3RtKCk7CisgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKG1fY2dDb250ZXh0LCB3b3JsZE1h
dHJpeCk7CiAgICAgcmV0dXJuIHJldDsKIH0KIAotS0NhbnZhc01hdHJpeCBLUmVuZGVyaW5nRGV2
aWNlQ29udGV4dFF1YXJ0ejo6Y3RtKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dFF1YXJ0ejo6Y3RtKCkgY29uc3QKIHsKICAgICBDR0FmZmluZVRyYW5zZm9y
bSBjb250ZXh0Q1RNID0gQ0dDb250ZXh0R2V0Q1RNKG1fY2dDb250ZXh0KTsKLSAgICByZXR1cm4g
S0NhbnZhc01hdHJpeChjb250ZXh0Q1RNLmEsIGNvbnRleHRDVE0uYiwgY29udGV4dENUTS5jLCBj
b250ZXh0Q1RNLmQsIGNvbnRleHRDVE0udHgsIGNvbnRleHRDVE0udHkpOworICAgIHJldHVybiBB
ZmZpbmVUcmFuc2Zvcm0oY29udGV4dENUTS5hLCBjb250ZXh0Q1RNLmIsIGNvbnRleHRDVE0uYywg
Y29udGV4dENUTS5kLCBjb250ZXh0Q1RNLnR4LCBjb250ZXh0Q1RNLnR5KTsKIH0KIAogSW50UmVj
dCBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6bWFwRnJvbVZpc3VhbChjb25zdCBJbnRS
ZWN0ICZyZWN0KQpAQCAtMTkwLDcgKzE4Nyw3IEBACiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBt
YXJrIFJlc291cmNlIENyZWF0aW9uCiAKLUtSZW5kZXJpbmdQYWludFNlcnZlciAqS1JlbmRlcmlu
Z0RldmljZVF1YXJ0ejo6Y3JlYXRlUGFpbnRTZXJ2ZXIoY29uc3QgS0NQYWludFNlcnZlclR5cGUg
JnR5cGUpIGNvbnN0CitLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKktSZW5kZXJpbmdEZXZpY2VRdWFy
dHo6OmNyZWF0ZVBhaW50U2VydmVyKEtDUGFpbnRTZXJ2ZXJUeXBlIHR5cGUpIGNvbnN0CiB7CiAg
ICAgS1JlbmRlcmluZ1BhaW50U2VydmVyICpuZXdTZXJ2ZXIgPSBOVUxMOwogICAgIHN3aXRjaCh0
eXBlKSB7CkBAIC0yMjIsNyArMjE5LDcgQEAKICAgICByZXR1cm4gaXRlbTsKIH0KIAotS0NhbnZh
c1Jlc291cmNlICpLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpjcmVhdGVSZXNvdXJjZShjb25zdCBL
Q1Jlc291cmNlVHlwZSAmdHlwZSkgY29uc3QKK0tDYW52YXNSZXNvdXJjZSogS1JlbmRlcmluZ0Rl
dmljZVF1YXJ0ejo6Y3JlYXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUgdHlwZSkgY29uc3QKIHsK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFJTX0NMSVBQRVI6CkBAIC0yNDAsNyArMjM3
LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAotS0NhbnZhc0ZpbHRlckVmZmVjdCAqS1JlbmRlcmlu
Z0RldmljZVF1YXJ0ejo6Y3JlYXRlRmlsdGVyRWZmZWN0KGNvbnN0IEtDRmlsdGVyRWZmZWN0VHlw
ZSAmdHlwZSkgY29uc3QKK0tDYW52YXNGaWx0ZXJFZmZlY3QgKktSZW5kZXJpbmdEZXZpY2VRdWFy
dHo6OmNyZWF0ZUZpbHRlckVmZmVjdChLQ0ZpbHRlckVmZmVjdFR5cGUgdHlwZSkgY29uc3QKIHsK
ICAgICBzd2l0Y2godHlwZSkKICAgICB7CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS1Jl
bmRlcmluZ1BhaW50U2VydmVyUXVhcnR6Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNl
L3F1YXJ0ei9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHoubW0JKHJldmlzaW9uIDEyNDY3KQor
Kysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ei5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjQsMjIgKzI0LDIwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQ
T1JUCiAjaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJRdWFydHouaCIKLSNpbXBvcnQgIlF1
YXJ0elN1cHBvcnQuaCIKLSNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXNRdWFydHouaCIKLSNpbXBv
cnQgIktSZW5kZXJpbmdEZXZpY2VRdWFydHouaCIKIAogI2ltcG9ydCAiS0NhbnZhc1JlbmRlcmlu
Z1N0eWxlLmgiCi0jaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKKyNpbXBvcnQgIktD
YW52YXNSZXNvdXJjZUxpc3RlbmVyLmgiCisjaW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VzUXVhcnR6
LmgiCisjaW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlLmgiCisjaW1wb3J0ICJLUmVuZGVyaW5nRGV2
aWNlUXVhcnR6LmgiCiAjaW1wb3J0ICJLUmVuZGVyaW5nRmlsbFBhaW50ZXIuaCIKKyNpbXBvcnQg
IktSZW5kZXJpbmdQYWludFNlcnZlci5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ1N0cm9rZVBhaW50
ZXIuaCIKLSNpbXBvcnQgIktDYW52YXNNYXRyaXguaCIKLSNpbXBvcnQgIktSZW5kZXJpbmdEZXZp
Y2UuaCIKLQogI2ltcG9ydCAiS1dRTG9nZ2luZy5oIgorI2ltcG9ydCAiUXVhcnR6U3VwcG9ydC5o
IgogCiB2b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclF1YXJ0ekhlbHBlcjo6c3Ryb2tlUGF0aChD
R0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgUmVuZGVyUGF0aCAqcmVuZGVyUGF0aCkKIHsKQEAg
LTE2NCw5ICsxNjIsOSBAQAogICAgICAgICAgICAgCiAgICAgLy8gUGF0dGVybnMgZG9uJ3Qgc2Vl
bSB0byByZXNlcGVjdCB0aGUgQ1RNIHVubGVzcyB3ZSBtYWtlIHRoZW0uLi4KICAgICBDR0FmZmlu
ZVRyYW5zZm9ybSBjdG0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7Ci0gICAgQ0dBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm0ocGF0dGVyblRyYW5zZm9ybSgp
LnFtYXRyaXgoKSk7Ci0gICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQodHJh
bnNmb3JtLCBjdG0pOworICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5l
VHJhbnNmb3JtQ29uY2F0KHBhdHRlcm5UcmFuc2Zvcm0oKSwgY3RtKTsKIAorICAgIC8vIEZJWE1F
OiBJIGJlbGlldmUgdGhpcyB3aWxsbmVlZCB0byB1c2UgV0tTZXRQYXR0ZXJuUGhhc2VJblVzZXJT
cGFjZS4KICAgICBDR1NpemUgcGhhc2UgPSBDR1NpemVNYWtlKGJib3goKS54KCksIGJib3goKS55
KCkpOwogICAgIENHQ29udGV4dFNldFBhdHRlcm5QaGFzZShjb250ZXh0LCBwaGFzZSk7CiAKQEAg
LTIzMCw0ICsyMjgsMyBAQAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiB9
CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1
YXJ0elN1cHBvcnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1YXJ0
elN1cHBvcnQubW0JKHJldmlzaW9uIDEyNDY3KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L1F1
YXJ0elN1cHBvcnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBTVkdf
U1VQUE9SVAogI2ltcG9ydCAiUXVhcnR6U3VwcG9ydC5oIgogCi0jaW1wb3J0ICJLQ2FudmFzTWF0
cml4LmgiCiAjaW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgiCiAjaW1wb3J0ICJLUmVu
ZGVyaW5nRmlsbFBhaW50ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdTdHJva2VQYWludGVyLmgi
CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0
ei5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jl
c291cmNlc1F1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogCiAjaW1w
b3J0ICJrY2FudmFzL0tDYW52YXMuaCIKICNpbXBvcnQgIlNWR1JlbmRlclN0eWxlLmgiCi0jaW1w
b3J0ICJLQ2FudmFzTWF0cml4LmgiCiAKICNpbXBvcnQgIktDYW52YXNQYXRoUXVhcnR6LmgiCiAj
aW1wb3J0ICJLUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgiCkBAIC00MSw2ICs0MCw4IEBACiAKICNp
bXBvcnQgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKIGJvb2wgS0NhbnZhc0NvbnRhaW5lclF1YXJ0ejo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QK
IHsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEyMiwxMiArMTIzLDEyIEBACiAgICAgCiAgICAgaWYg
KHBhcmVudFggIT0gMCB8fCBwYXJlbnRZICE9IDApIHsKICAgICAgICAgLy8gVHJhbnNsYXRlIGZy
b20gcGFyZW50IG9mZnNldHMgKGtodG1sKSB0byBhIHJlbGF0aXZlIHRyYW5zZm9ybSAoa3N2ZzIv
a2NhbnZhcykKLSAgICAgICAgZGV2aWNlQ29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFu
c2xhdGUocGFyZW50WCwgcGFyZW50WSkpOworICAgICAgICBkZXZpY2VDb250ZXh0LT5jb25jYXRD
VE0odHJhbnNsYXRpb25NYXRyaXgocGFyZW50WCwgcGFyZW50WSkpOwogICAgICAgICBwYXJlbnRY
ID0gcGFyZW50WSA9IDA7CiAgICAgfQogICAgIAotICAgIGlmICh2aWV3cG9ydCgpLmlzVmFsaWQo
KSkKLSAgICAgICAgZGV2aWNlQ29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUo
dmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgpKSk7CisgICAgaWYgKCF2aWV3cG9ydCgpLmlz
RW1wdHkoKSkKKyAgICAgICAgZGV2aWNlQ29udGV4dC0+Y29uY2F0Q1RNKHRyYW5zbGF0aW9uTWF0
cml4KHZpZXdwb3J0KCkueCgpLCB2aWV3cG9ydCgpLnkoKSkpOwogICAgIAogICAgIGlmICghbG9j
YWxUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCiAgICAgICAgIGRldmljZUNvbnRleHQtPmNvbmNh
dENUTShsb2NhbFRyYW5zZm9ybSgpKTsKQEAgLTE0NSw3ICsxNDYsNiBAQAogICAgIGlmIChmaWx0
ZXIpCiAgICAgICAgIGZpbHRlci0+cHJlcGFyZUZpbHRlcihyZWxhdGl2ZUJCb3godHJ1ZSkpOwog
ICAgIAotICAgIGlmICghdmlld0JveCgpLmlzTnVsbCgpKQogICAgICAgICBkZXZpY2VDb250ZXh0
LT5jb25jYXRDVE0odmlld3BvcnRUcmFuc2Zvcm0oKSk7CiAgICAgCiAgICAgUmVuZGVyQ29udGFp
bmVyOjpwYWludChwYWludEluZm8sIDAsIDApOwpAQCAtMTk0LDE1ICsxOTQsMTUgQEAKICAgICBy
ZXR1cm4gbV9hbGlnbjsKIH0KIAotUU1hdHJpeCBLQ2FudmFzQ29udGFpbmVyUXVhcnR6Ojp2aWV3
cG9ydFRyYW5zZm9ybSgpIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gS0NhbnZhc0NvbnRhaW5lclF1
YXJ0ejo6dmlld3BvcnRUcmFuc2Zvcm0oKSBjb25zdAogewotICAgIGlmICghdmlld0JveCgpLmlz
TnVsbCgpKSB7CisgICAgaWYgKCF2aWV3Qm94KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIEZsb2F0
UmVjdCB2aWV3cG9ydFJlY3QgPSB2aWV3cG9ydCgpOwogICAgICAgICBpZiAoIXBhcmVudCgpLT5p
c0tDYW52YXNDb250YWluZXIoKSkKICAgICAgICAgICAgIHZpZXdwb3J0UmVjdCA9IEZsb2F0UmVj
dCh2aWV3cG9ydCgpLngoKSwgdmlld3BvcnQoKS55KCksIHdpZHRoKCksIGhlaWdodCgpKTsKLSAg
ICAgICAgcmV0dXJuIGdldEFzcGVjdFJhdGlvKHZpZXdCb3goKSwgdmlld3BvcnRSZWN0KS5xbWF0
cml4KCk7CisgICAgICAgIHJldHVybiBnZXRBc3BlY3RSYXRpbyh2aWV3Qm94KCksIHZpZXdwb3J0
UmVjdCk7CiAgICAgfQotICAgIHJldHVybiBRTWF0cml4KCk7CisgICAgcmV0dXJuIEFmZmluZVRy
YW5zZm9ybSgpOwogfQogCiBJbnRSZWN0IEtDYW52YXNDb250YWluZXJRdWFydHo6OmdldEFic29s
dXRlUmVwYWludFJlY3QoKQpAQCAtMjEwLDE3ICsyMTAsMTcgQEAKICAgICBJbnRSZWN0IHJlcGFp
bnRSZWN0OwogICAgIAogICAgIGZvciAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0ICpjdXJyZW50ID0g
Zmlyc3RDaGlsZCgpOyBjdXJyZW50ICE9IDA7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0U2libGlu
ZygpKQotICAgICAgICByZXBhaW50UmVjdCA9IHJlcGFpbnRSZWN0LnVuaXRlKGN1cnJlbnQtPmdl
dEFic29sdXRlUmVwYWludFJlY3QoKSk7CisgICAgICAgIHJlcGFpbnRSZWN0LnVuaXRlKGN1cnJl
bnQtPmdldEFic29sdXRlUmVwYWludFJlY3QoKSk7CiAgICAgCiAgICAgLy8gRmlsdGVycyBjYW4g
ZXhwYW5kIHRoZSBib3VuZGluZyBib3gKICAgICBLQ2FudmFzRmlsdGVyICpmaWx0ZXIgPSBnZXRG
aWx0ZXJCeUlkKGRvY3VtZW50KCksIHN0eWxlKCktPnN2Z1N0eWxlKCktPmZpbHRlcigpLm1pZCgx
KSk7CiAgICAgaWYgKGZpbHRlcikKLSAgICAgICAgcmVwYWludFJlY3QgPSByZXBhaW50UmVjdC51
bml0ZShlbmNsb3NpbmdJbnRSZWN0KGZpbHRlci0+ZmlsdGVyQkJveEZvckl0ZW1CQm94KHJlcGFp
bnRSZWN0KSkpOworICAgICAgICByZXBhaW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRSZWN0KGZp
bHRlci0+ZmlsdGVyQkJveEZvckl0ZW1CQm94KHJlcGFpbnRSZWN0KSkpOwogCiAgICAgcmV0dXJu
IHJlcGFpbnRSZWN0OwogfQogCi1RTWF0cml4IEtDYW52YXNDb250YWluZXJRdWFydHo6OmFic29s
dXRlVHJhbnNmb3JtKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBLQ2FudmFzQ29udGFpbmVyUXVh
cnR6OjphYnNvbHV0ZVRyYW5zZm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZpZXdwb3J0VHJh
bnNmb3JtKCkgKiBLQ2FudmFzQ29udGFpbmVyOjphYnNvbHV0ZVRyYW5zZm9ybSgpOwogfQpAQCAt
MjgyLDEwICsyODIsOSBAQAogCiB2b2lkIEtDYW52YXNJbWFnZVF1YXJ0ejo6c2V0Q0dMYXllcihD
R0xheWVyUmVmIGxheWVyKQogewotICAgIGlmIChtX2NnTGF5ZXIgIT0gbGF5ZXIpIHsKKyAgICBD
R0xheWVyUmV0YWluKGxheWVyKTsKICAgICAgICAgQ0dMYXllclJlbGVhc2UobV9jZ0xheWVyKTsK
LSAgICAgICAgbV9jZ0xheWVyID0gQ0dMYXllclJldGFpbihsYXllcik7Ci0gICAgfQorICAgIG1f
Y2dMYXllciA9IGxheWVyOwogfQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAKKyNlbmRpZiAvLyBT
VkdfU1VQUE9SVApJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6
LmgJKHJldmlzaW9uIDEyNDY3KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVt
UXVhcnR6LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNCArMjMs
MTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpbXBvcnQgImtjYW52YXMvUmVuZGVyUGF0
aC5oIgotCi0jaW5jbHVkZSA8cW1hdHJpeC5oPgorI2ltcG9ydCAiS0NhbnZhc0l0ZW0uaCIKIAog
Y2xhc3MgS0NhbnZhc0l0ZW1RdWFydHogOiBwdWJsaWMgUmVuZGVyUGF0aCB7CiBwdWJsaWM6Ci0g
ICAgS0NhbnZhc0l0ZW1RdWFydHooV2ViQ29yZTo6UmVuZGVyU3R5bGUqLCBXZWJDb3JlOjpTVkdT
dHlsZWRFbGVtZW50SW1wbCopOwotICAgIHZpcnR1YWwgfktDYW52YXNJdGVtUXVhcnR6KCkgeyB9
CisgICAgS0NhbnZhc0l0ZW1RdWFydHooUmVuZGVyU3R5bGUqLCBTVkdTdHlsZWRFbGVtZW50SW1w
bCopOwogICAgIAogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGJib3hGb3JQYXRoKGJvb2wgaW5jbHVk
ZVN0cm9rZSkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhpdHNQYXRoKGNvbnN0IEZsb2F0UG9p
bnQmLCBib29sIGZpbGwgLyogZmFsc2UgbWVhbnMgc3Ryb2tlICovKSBjb25zdDsKQEAgLTQzLDcg
KzQwLDggQEAKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7Ci0gICAgdmly
dHVhbCBib29sIG5vZGVBdFBvaW50KE5vZGVJbmZvJiwgaW50IHgsIGludCB5LCBpbnQgdHgsIGlu
dCB0eSwgV2ViQ29yZTo6SGl0VGVzdEFjdGlvbik7CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KE5vZGVJbmZvJiwgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSwgSGl0VGVzdEFjdGlv
bik7CisKIHByaXZhdGU6CiAgICAgdm9pZCBkcmF3TWFya2Vyc0lmTmVlZGVkKGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEtDYW52YXNQYXRoKikgY29uc3Q7CiB9OwpJbmRleDoga2NhbnZhcy9kZXZp
Y2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZpY2VRdWFydHouaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFz
L2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oCShyZXZpc2lvbiAxMjQ2NykK
KysrIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyOSArMjgsMjUgQEAKICNkZWZpbmUg
S1JlbmRlcmluZ0RldmljZVF1YXJ0el9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2ltcG9ydCA8a2Nh
bnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgotCi10eXBlZGVmIHN0cnVjdCBDR1JlY3Qg
Q0dSZWN0OwotdHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0NvbnRleHRSZWY7CisjaW1wb3J0
ICJLUmVuZGVyaW5nRGV2aWNlLmgiCiAKICNpZiBfX09CSkNfXwogQGNsYXNzIE5TR3JhcGhpY3ND
b250ZXh0OwogI2Vsc2UKIGNsYXNzIE5TR3JhcGhpY3NDb250ZXh0OwotI2VuZGlmIC8vIFNWR19T
VVBQT1JUCiAjZW5kaWYKIAogY2xhc3MgS1JlbmRlcmluZ0RldmljZUNvbnRleHRRdWFydHogOiBw
dWJsaWMgS1JlbmRlcmluZ0RldmljZUNvbnRleHQKIHsKIHB1YmxpYzoKLSAgICBLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dFF1YXJ0eihDR0NvbnRleHRSZWYgY29udGV4dCk7CisgICAgS1JlbmRlcmlu
Z0RldmljZUNvbnRleHRRdWFydHooQ0dDb250ZXh0UmVmKTsKICAgICB2aXJ0dWFsIH5LUmVuZGVy
aW5nRGV2aWNlQ29udGV4dFF1YXJ0eigpOwogICAgIAotICAgIHZpcnR1YWwgS0NhbnZhc01hdHJp
eCBjb25jYXRDVE0oY29uc3QgS0NhbnZhc01hdHJpeCAmd29ybGRNYXRyaXgpOwotICAgIHZpcnR1
YWwgS0NhbnZhc01hdHJpeCBjdG0oKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBjb25jYXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisgICAgdmlydHVhbCBBZmZpbmVU
cmFuc2Zvcm0gY3RtKCkgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCBJbnRSZWN0IG1hcEZyb21W
aXN1YWwoY29uc3QgSW50UmVjdCAmcmVjdCk7Ci0gICAgdmlydHVhbCBJbnRSZWN0IG1hcFRvVmlz
dWFsKGNvbnN0IEludFJlY3QgJnJlY3QpOworICAgIHZpcnR1YWwgSW50UmVjdCBtYXBGcm9tVmlz
dWFsKGNvbnN0IEludFJlY3QmKTsKKyAgICB2aXJ0dWFsIEludFJlY3QgbWFwVG9WaXN1YWwoY29u
c3QgSW50UmVjdCYpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBhdGgoKTsKICAgICB2
aXJ0dWFsIHZvaWQgYWRkUGF0aChjb25zdCBLQ2FudmFzUGF0aCopOwpAQCAtNzIsMzAgKzY4LDMx
IEBACiAgICAgdmlydHVhbCBib29sIGlzQnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIAogICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKnBvcENvbnRleHQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHVzaENvbnRleHQoS1JlbmRlcmluZ0RldmljZUNvbnRleHQg
KmNvbnRleHQpOworICAgIHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNl
Q29udGV4dCopOwogCiAgICAgLy8gY29udGV4dCBtYW5hZ2VtZW50LgogICAgIEtSZW5kZXJpbmdE
ZXZpY2VDb250ZXh0UXVhcnR6ICpxdWFydHpDb250ZXh0KCkgY29uc3Q7CiAgICAgQ0dDb250ZXh0
UmVmIGN1cnJlbnRDR0NvbnRleHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIEtSZW5kZXJpbmdEZXZp
Y2VDb250ZXh0ICpjb250ZXh0Rm9ySW1hZ2UoS0NhbnZhc0ltYWdlICopIGNvbnN0OwogCi0gICAg
dmlydHVhbCBRU3RyaW5nIHN0cmluZ0ZvclBhdGgoY29uc3QgS0NhbnZhc1BhdGgqIHBhdGgpOwor
ICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQYXRoKGNvbnN0IEtDYW52YXNQYXRoKik7CiAK
ICAgICAvLyBSZXNvdXJjZSBjcmVhdGlvbgotICAgIHZpcnR1YWwgS0NhbnZhc1Jlc291cmNlICpj
cmVhdGVSZXNvdXJjZShjb25zdCBLQ1Jlc291cmNlVHlwZSAmdHlwZSkgY29uc3Q7Ci0gICAgdmly
dHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKmNyZWF0ZVBhaW50U2VydmVyKGNvbnN0IEtDUGFp
bnRTZXJ2ZXJUeXBlICZ0eXBlKSBjb25zdDsKLSAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZl
Y3QgKmNyZWF0ZUZpbHRlckVmZmVjdChjb25zdCBLQ0ZpbHRlckVmZmVjdFR5cGUgJnR5cGUpIGNv
bnN0OworICAgIHZpcnR1YWwgS0NhbnZhc1Jlc291cmNlKiBjcmVhdGVSZXNvdXJjZShLQ1Jlc291
cmNlVHlwZSkgY29uc3Q7CisgICAgdmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIqIGNyZWF0
ZVBhaW50U2VydmVyKEtDUGFpbnRTZXJ2ZXJUeXBlKSBjb25zdDsKKyAgICB2aXJ0dWFsIEtDYW52
YXNGaWx0ZXJFZmZlY3QqIGNyZWF0ZUZpbHRlckVmZmVjdChLQ0ZpbHRlckVmZmVjdFR5cGUpIGNv
bnN0OwogICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgqIGNyZWF0ZVBhdGgoKSBjb25zdDsKICAgICAK
ICAgICAvLyBpdGVtIGNyZWF0aW9uCi0gICAgdmlydHVhbCBSZW5kZXJQYXRoICpjcmVhdGVJdGVt
KFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0eWxlICpzdHlsZSwgS1NWRzo6U1ZH
U3R5bGVkRWxlbWVudEltcGwgKm5vZGUsIEtDYW52YXNQYXRoKiBwYXRoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIEtDYW52YXNDb250YWluZXIgKmNyZWF0ZUNvbnRhaW5lcihSZW5kZXJBcmVuYSAqYXJl
bmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBs
ICpub2RlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJlbmRlclBhdGgqIGNyZWF0ZUl0ZW0oUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKiwgS0NhbnZhc1BhdGgq
KSBjb25zdDsKKyAgICB2aXJ0dWFsIEtDYW52YXNDb250YWluZXIqIGNyZWF0ZUNvbnRhaW5lcihS
ZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKiwgU1ZHU3R5bGVkRWxlbWVudEltcGwqKSBjb25zdDsK
IAogICAgIC8vIGZpbHRlcnMgKG1vc3RseSBkZWJ1Z2dpbmcpCiAgICAgc3RhdGljIGJvb2wgZmls
dGVyc0VuYWJsZWQoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRGaWx0ZXJzRW5hYmxlZChib29sIGVu
YWJsZWQpOwotICAgIHN0YXRpYyBib29sIEtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OmhhcmR3YXJl
UmVuZGVyaW5nRW5hYmxlZCgpOwotICAgIHN0YXRpYyB2b2lkIEtSZW5kZXJpbmdEZXZpY2VRdWFy
dHo6OnNldEhhcmR3YXJlUmVuZGVyaW5nRW5hYmxlZChib29sIGVuYWJsZWQpOworICAgIHN0YXRp
YyBib29sIGhhcmR3YXJlUmVuZGVyaW5nRW5hYmxlZCgpOworICAgIHN0YXRpYyB2b2lkIHNldEhh
cmR3YXJlUmVuZGVyaW5nRW5hYmxlZChib29sIGVuYWJsZWQpOwogfTsKIAorI2VuZGlmIC8vIFNW
R19TVVBQT1JUCiAjZW5kaWYKSW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5n
UGFpbnRTZXJ2ZXJHcmFkaWVudFF1YXJ0ei5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2Rldmlj
ZS9xdWFydHovS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnRRdWFydHoubW0JKHJldmlzaW9u
IDEyNDY3KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdQYWludFNlcnZlckdy
YWRpZW50UXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyNSArMjgsMjAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAogI2ltcG9ydCAiS1JlbmRlcmluZ1BhaW50
U2VydmVyUXVhcnR6LmgiCi0jaW1wb3J0ICJRdWFydHpTdXBwb3J0LmgiCi0KLSNpbXBvcnQgInJl
bmRlcl9vYmplY3QuaCIKIAotI2ltcG9ydCAia2NhbnZhcy9LQ2FudmFzLmgiCisjaW1wb3J0ICJL
Q2FudmFzSW1hZ2UuaCIKICNpbXBvcnQgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgotI2ltcG9y
dCAiS1JlbmRlcmluZ1BhaW50U2VydmVyLmgiCisjaW1wb3J0ICJLQ2FudmFzUmVzb3VyY2VMaXN0
ZW5lci5oIgorI2ltcG9ydCAiS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oIgorI2ltcG9ydCAiS1Jl
bmRlcmluZ0RldmljZVF1YXJ0ei5oIgogI2ltcG9ydCAiS1JlbmRlcmluZ0ZpbGxQYWludGVyLmgi
CisjaW1wb3J0ICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCIKICNpbXBvcnQgIktSZW5kZXJpbmdT
dHJva2VQYWludGVyLmgiCi0jaW1wb3J0ICJLQ2FudmFzTWF0cml4LmgiCi0jaW1wb3J0ICJLUmVu
ZGVyaW5nRGV2aWNlUXVhcnR6LmgiCi0KLSNpbXBvcnQgIktDYW52YXNSZXNvdXJjZXNRdWFydHou
aCIKLSNpbXBvcnQgIktDYW52YXNJbWFnZS5oIgotCi0KKyNpbXBvcnQgIlF1YXJ0elN1cHBvcnQu
aCIKKyNpbXBvcnQgImtjYW52YXMvS0NhbnZhcy5oIgorI2ltcG9ydCAicmVuZGVyX29iamVjdC5o
IgogI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogCi0KIC8vIE1heWJlIHRoaXMgc2hv
dWxkIGJlIGluIGEgYmFzZSBjbGFzcyBpbnN0ZWFkLi4uCiBzdGF0aWMgS0NhbnZhc0ltYWdlKiBz
ZXR1cFNoYWRpbmdXaXRoU3R5bGUoY29uc3QgS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQg
KnNlcnZlciwgQ0dTaGFkaW5nUmVmIHNoYWRpbmcsIGNvbnN0IGtodG1sOjpSZW5kZXJPYmplY3Qq
IHJlbmRlck9iamVjdCwgS0NQYWludFRhcmdldFR5cGUgdHlwZSwgYm9vbCBwYWludGluZ1RleHQp
CiB7CkBAIC02Nyw4ICs2Miw3IEBACiAgICAgfQogICAgIAogICAgIC8vIGFwcGx5IHRoZSBncmFk
aWVudCdzIG93biB0cmFuc2Zvcm0KLSAgICBDR0FmZmluZVRyYW5zZm9ybSBncmFkaWVudFRyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtKHNlcnZlci0+Z3JhZGllbnRUcmFuc2Zvcm0oKS5xbWF0
cml4KCkpOwotICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0LCBncmFkaWVudFRyYW5zZm9y
bSk7CisgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRleHQsIHNlcnZlci0+Z3JhZGllbnRUcmFu
c2Zvcm0oKSk7CiAgICAgCiAgICAgQ0dDb250ZXh0U2V0QWxwaGEoY29udGV4dCwgcmVuZGVyU3R5
bGUtPm9wYWNpdHkoKSk7CiAgICAgCkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZh
c0ZpbHRlclF1YXJ0ei5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0Nh
bnZhc0ZpbHRlclF1YXJ0ei5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL2RldmljZS9x
dWFydHovS0NhbnZhc0ZpbHRlclF1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzks
NyBAQAogCiB2b2lkIEtDYW52YXNGaWx0ZXJRdWFydHo6OnByZXBhcmVGaWx0ZXIoY29uc3QgRmxv
YXRSZWN0ICZiYm94KQogewotICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwgIUtSZW5kZXJpbmdE
ZXZpY2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkpCisgICAgaWYgKGJib3guaXNFbXB0eSgpIHx8
ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9lZmZlY3RzLmlzRW1wdHkoKSkKQEAgLTk1LDE3ICs5NSwxNyBAQAog
ICAgICAgICBjb250ZXh0T3B0aW9ucyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmpl
Y3RzQW5kS2V5czpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwga0NJQ29udGV4dFVzZVNv
ZnR3YXJlUmVuZGVyZXIsIG5pbF07CiAgICAgCiAgICAgbV9maWx0ZXJDSUNvbnRleHQgPSBbW0NJ
Q29udGV4dCBjb250ZXh0V2l0aENHQ29udGV4dDpjZ0NvbnRleHQgb3B0aW9uczpjb250ZXh0T3B0
aW9uc10gcmV0YWluXTsKLSAgICBtX2ZpbHRlckNHTGF5ZXIgPSBbbV9maWx0ZXJDSUNvbnRleHQg
Y3JlYXRlQ0dMYXllcldpdGhTaXplOkNHUmVjdChiYm94KS5zaXplIGluZm86TlVMTF07CisgICAg
bV9maWx0ZXJDR0xheWVyID0gW21fZmlsdGVyQ0lDb250ZXh0IGNyZWF0ZUNHTGF5ZXJXaXRoU2l6
ZTpiYm94LnNpemUoKSBpbmZvOk5VTExdOwogICAgIAogICAgIEtSZW5kZXJpbmdEZXZpY2VDb250
ZXh0ICpmaWx0ZXJDb250ZXh0ID0gbmV3IEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6KENH
TGF5ZXJHZXRDb250ZXh0KG1fZmlsdGVyQ0dMYXllcikpOwogICAgIFFQYWludGVyOjpyZW5kZXJp
bmdEZXZpY2UoKS0+cHVzaENvbnRleHQoZmlsdGVyQ29udGV4dCk7CiAgICAgCi0gICAgZmlsdGVy
Q29udGV4dC0+Y29uY2F0Q1RNKFFNYXRyaXgoKS50cmFuc2xhdGUoLTEuMGYgKiBiYm94LngoKSwg
LTEuMGYgKiBiYm94LnkoKSkpOworICAgIGZpbHRlckNvbnRleHQtPmNvbmNhdENUTSh0cmFuc2xh
dGlvbk1hdHJpeCgtYmJveC55KCksIC1iYm94LngoKSkpOwogfQogCiB2b2lkIEtDYW52YXNGaWx0
ZXJRdWFydHo6OmFwcGx5RmlsdGVyKGNvbnN0IEZsb2F0UmVjdCAmYmJveCkKIHsKLSAgICBpZiAo
IWJib3guaXNWYWxpZCgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxl
ZCgpIHx8IG1fZWZmZWN0cy5pc0VtcHR5KCkpCisgICAgaWYgKGJib3guaXNFbXB0eSgpIHx8ICFL
UmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJzRW5hYmxlZCgpIHx8IG1fZWZmZWN0cy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIHJlc3RvcmUgdGhlIHByZXZpb3VzIGNv
bnRleHQsIGRlbGV0ZSB0aGUgZmlsdGVyIGNvbnRleHQuCkBAIC01MzIsNyArNTMyLDcgQEAKICAg
ICBbZmlsdGVyIHNldFZhbHVlOmlucHV0Q29sb3IgZm9yS2V5OkAiaW5wdXRDb2xvciJdOwogICAg
IAogICAgIENHUmVjdCBjcm9wUmVjdCA9IENHUmVjdE1ha2UoLTEwMCwtMTAwLDEwMDAsMTAwMCk7
IC8vIEhBQ0sKLSAgICBpZiAoc3ViUmVnaW9uKCkuaXNWYWxpZCgpKQorICAgIGlmICghc3ViUmVn
aW9uKCkuaXNFbXB0eSgpKQogICAgICAgICBjcm9wUmVjdCA9IENHUmVjdChzdWJSZWdpb24oKSk7
CiAgICAgRkVfUVVBUlRaX0NST1BfVE9fUkVDVChjcm9wUmVjdCk7CiAgICAgCkluZGV4OiBrY2Fu
dmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3VyY2VzUXVhcnR6LmgJKHJldmlzaW9u
IDEyNDY3KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNvdXJjZXNRdWFydHou
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDEyICsyMywxMSBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2ltcG9ydCAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW1w
b3J0ICJGbG9hdFJlY3QuaCIKICNpbXBvcnQgIktDYW52YXNJbWFnZS5oIgotI2ltcG9ydCAiS0Nh
bnZhc1Jlc291cmNlcy5oIgogI2ltcG9ydCAiS0NhbnZhc0NvbnRhaW5lci5oIgotI2ltcG9ydCA8
cW1hdHJpeC5oPgogCi10eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQgKkNHQ29udGV4dFJlZjsKIHR5
cGVkZWYgc3RydWN0IENHTGF5ZXIgKkNHTGF5ZXJSZWY7CiAKIGNsYXNzIEtDYW52YXNDb250YWlu
ZXJRdWFydHogOiBwdWJsaWMgS0NhbnZhc0NvbnRhaW5lciB7CkBAIC00Niw3ICs0NSw3IEBACiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyAmcGFpbnRJbmZvLCBpbnQgcGFyZW50WCwg
aW50IHBhcmVudFkpOwogICAgIAogICAgIHZpcnR1YWwgSW50UmVjdCBnZXRBYnNvbHV0ZVJlcGFp
bnRSZWN0KCk7Ci0gICAgdmlydHVhbCBRTWF0cml4IGFic29sdXRlVHJhbnNmb3JtKCkgY29uc3Q7
CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm0oKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBGbG9hdFJlY3QmKTsKICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCB2aWV3cG9ydCgpIGNvbnN0OwpAQCAtNTgsNyArNTcsNyBAQAogICAg
IHZpcnR1YWwgS0NBbGlnbiBhbGlnbigpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBRTWF0
cml4IHZpZXdwb3J0VHJhbnNmb3JtKCkgY29uc3Q7CisgICAgQWZmaW5lVHJhbnNmb3JtIHZpZXdw
b3J0VHJhbnNmb3JtKCkgY29uc3Q7CiAKICAgICBGbG9hdFJlY3QgbV92aWV3cG9ydDsKICAgICBG
bG9hdFJlY3QgbV92aWV3Qm94OwpAQCAtODAsNyArNzksNyBAQAogICAgIHZvaWQgaW5pdChJbnRT
aXplIHNpemUpIHsgbV9zaXplID0gc2l6ZTsgfQogICAgIAogICAgIENHTGF5ZXJSZWYgY2dMYXll
cigpOwotICAgIHZvaWQgc2V0Q0dMYXllcihDR0xheWVyUmVmIGxheWVyKTsKKyAgICB2b2lkIHNl
dENHTGF5ZXIoQ0dMYXllclJlZik7CiAKICAgICBJbnRTaXplIHNpemUoKSB7IHJldHVybiBtX3Np
emU7IH0KICAgICAKSW5kZXg6IGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuY3BwCShyZXZpc2lv
biAxMjQ2NykKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDYgICAg
ICAgQWxleGFuZGVyIEtlbGxldHQgPGx5cGFub3ZAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAogCkBAIC0yNSwxNCArMjYsNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5j
bHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgogCi1LUmVuZGVyaW5nRGV2aWNlOjpLUmVuZGVyaW5n
RGV2aWNlKCkKLXsKLX0KLQotS1JlbmRlcmluZ0RldmljZTo6fktSZW5kZXJpbmdEZXZpY2UoKQot
ewotfQotCiBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqS1JlbmRlcmluZ0RldmljZTo6Y3VycmVu
dENvbnRleHQoKSBjb25zdAogewogICAgIGlmIChtX2NvbnRleHRTdGFjay5pc0VtcHR5KCkpCkBA
IC01NCw0ICs0NywzIEBACiAKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9S
VAotCkluZGV4OiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0
ZXJuLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJQYXR0ZXJuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTIgKzIyLDEzIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgIktDYW52YXNN
YXRyaXguaCIKLSNpbmNsdWRlICJLQ2FudmFzSW1hZ2UuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5n
UGFpbnRTZXJ2ZXJQYXR0ZXJuLmgiCiAKLSNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgorI2luY2x1
ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUg
IktDYW52YXNJbWFnZS5oIgogI2luY2x1ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKKyNpbmNsdWRl
IDxxdGV4dHN0cmVhbS5oPgogCiBjbGFzcyBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpQ
cml2YXRlCiB7CkBAIC00MSwxMyArNDIsMTMgQEAKICAgICB+UHJpdmF0ZSgpIHsgZGVsZXRlIHRp
bGU7IH0KIAogICAgIEtDYW52YXNJbWFnZSAqdGlsZTsKLSAgICBLQ2FudmFzTWF0cml4IHBhdHRl
cm5UcmFuc2Zvcm07CisgICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm07CiAgICAg
RmxvYXRSZWN0IGJib3g7CiAgICAgYm9vbCB1c2VCb3VuZGluZ0JveE1vZGU7CiAgICAgS0NhbnZh
c1Jlc291cmNlTGlzdGVuZXIgKmxpc3RlbmVyOwogfTsKIAotS1JlbmRlcmluZ1BhaW50U2VydmVy
UGF0dGVybjo6S1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVybigpIDogS1JlbmRlcmluZ1BhaW50
U2VydmVyKCksIGQobmV3IFByaXZhdGUoKSkKK0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46
OktSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4oKSA6IGQobmV3IFByaXZhdGUpCiB7CiB9CiAK
QEAgLTg2LDEyICs4NywxMiBAQAogICAgIGQtPnRpbGUgPSB0aWxlOwogfQogCi1LQ2FudmFzTWF0
cml4IEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnBhdHRlcm5UcmFuc2Zvcm0oKSBjb25z
dAorQWZmaW5lVHJhbnNmb3JtIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnBhdHRlcm5U
cmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBkLT5wYXR0ZXJuVHJhbnNmb3JtOwogfQog
Ci12b2lkIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm46OnNldFBhdHRlcm5UcmFuc2Zvcm0o
Y29uc3QgS0NhbnZhc01hdHJpeCAmbWF0KQordm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0
ZXJuOjpzZXRQYXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0KQogewog
ICAgIGQtPnBhdHRlcm5UcmFuc2Zvcm0gPSBtYXQ7CiB9CkBAIC0xMTcsOCArMTE4LDggQEAKICAg
ICAgICAgPDwgIiBbYmJveD0iIDw8IGJib3goKSA8PCAiXSI7CiAgICAgaWYgKCFib3VuZGluZ0Jv
eE1vZGUoKSkKICAgICAgICAgdHMgPDwgIiBbYm91bmRpbmcgYm94IG1vZGU9IiA8PCBib3VuZGlu
Z0JveE1vZGUoKSA8PCAiXSI7ICAgICAgICAKLSAgICBpZiAoIXBhdHRlcm5UcmFuc2Zvcm0oKS5x
bWF0cml4KCkuaXNJZGVudGl0eSgpKQotICAgICAgICB0cyA8PCAiIFtwYXR0ZXJuIHRyYW5zZm9y
bT0iIDw8IHBhdHRlcm5UcmFuc2Zvcm0oKS5xbWF0cml4KCkgPDwgIl0iOworICAgIGlmICghcGF0
dGVyblRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkKKyAgICAgICAgdHMgPDwgIiBbcGF0dGVybiB0
cmFuc2Zvcm09IiA8PCBwYXR0ZXJuVHJhbnNmb3JtKCkgPDwgIl0iOwogICAgIHJldHVybiB0czsK
IH0KIApJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaAkocmV2aXNpb24gMTI0NjcpCisr
KyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBA
IC0yNCw0MSArMjUsMzggQEAKICNkZWZpbmUgS1JlbmRlcmluZ0RldmljZV9ICiAjaWYgU1ZHX1NV
UFBPUlQKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8cW9iamVjdC5oPgorI2luY2x1
ZGUgIktDYW52YXNGaWx0ZXJzLmgiCisjaW5jbHVkZSAiS1JlbmRlcmluZ1BhaW50U2VydmVyLmgi
CiAjaW5jbHVkZSA8a3htbGNvcmUvVmVjdG9yLmg+CisjaW5jbHVkZSA8cW9iamVjdC5oPgogCi0j
aW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlci5oPgordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7IC8v
IG1vdmUgdGhpcyBoZWFkZXIgaW50byBXZWJDb3JlIG5hbWVzcGFjZSBhbmQgcmVtb3ZlIHRoaXMK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKK30KIAog
Ly8gYWthIHdoZXJlIHRvIGRyYXcKLWNsYXNzIEtDYW52YXNNYXRyaXg7CiBjbGFzcyBLUmVuZGVy
aW5nRGV2aWNlQ29udGV4dAogewogcHVibGljOgotICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0
KCkgeyB9CiAgICAgdmlydHVhbCB+S1JlbmRlcmluZ0RldmljZUNvbnRleHQoKSB7IH0KIAotICAg
IHZpcnR1YWwgS0NhbnZhc01hdHJpeCBjb25jYXRDVE0oY29uc3QgS0NhbnZhc01hdHJpeCAmd29y
bGRNYXRyaXgpID0gMDsKLSAgICB2aXJ0dWFsIEtDYW52YXNNYXRyaXggY3RtKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGNvbmNhdENUTShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mKSA9IDA7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gY3RtKCkgY29uc3QgPSAw
OwogICAgIAotICAgIHZpcnR1YWwgSW50UmVjdCBtYXBGcm9tVmlzdWFsKGNvbnN0IEludFJlY3Qg
JnJlY3QpID0gMDsKLSAgICB2aXJ0dWFsIEludFJlY3QgbWFwVG9WaXN1YWwoY29uc3QgSW50UmVj
dCAmcmVjdCkgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCBtYXBGcm9tVmlzdWFsKGNvbnN0IElu
dFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCBJbnRSZWN0IG1hcFRvVmlzdWFsKGNvbnN0IEludFJl
Y3QmKSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGF0aCgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgYWRkUGF0aChjb25zdCBLQ2FudmFzUGF0aCopID0gMDsKIH07CiAKLS8vIE11
c3QgYmUgYSBRT2JqZWN0IHRvIGJlIGFibGUgdG8gYmUgbG9hZGVkIGJ5IEtMaWJMb2FkZXIuLi4K
LWNsYXNzIEtDYW52YXNJbWFnZTsKLWNsYXNzIEtDYW52YXNGaWx0ZXJFZmZlY3Q7CisvLyBNdXN0
IGJlIGEgUU9iamVjdCB0byBiZSBhYmxlIHRvIGJlIGxvYWRlZCBieSBLTGliTG9hZGVyLgogY2xh
c3MgS1JlbmRlcmluZ0RldmljZSA6IHB1YmxpYyBRT2JqZWN0CiB7CiBRX09CSkVDVAogcHVibGlj
OgotICAgIEtSZW5kZXJpbmdEZXZpY2UoKTsKLSAgICB2aXJ0dWFsIH5LUmVuZGVyaW5nRGV2aWNl
KCk7Ci0KICAgICAvLyBUaGUgcmVuZGVyaW5nIGRldmljZSB3aWxsIGJlIGRpcmVjdGx5IGluaXRl
ZAogICAgIC8vIGFmdGVyIHRoZSBjYW52YXMgdGFyZ2V0LCBpdCBtYXkgYmUgb3ZlcndyaXR0ZW4u
CiAgICAgdmlydHVhbCBib29sIGlzQnVmZmVyZWQoKSBjb25zdCA9IDA7CkBAIC02NywxOSArNjUs
MTkgQEAKICAgICBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqY3VycmVudENvbnRleHQoKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKnBvcENvbnRleHQoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcHVzaENvbnRleHQoS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKmNv
bnRleHQpOworICAgIHZpcnR1YWwgdm9pZCBwdXNoQ29udGV4dChLUmVuZGVyaW5nRGV2aWNlQ29u
dGV4dCopOwogICAgIAotICAgIHZpcnR1YWwgS1JlbmRlcmluZ0RldmljZUNvbnRleHQgKmNvbnRl
eHRGb3JJbWFnZShLQ2FudmFzSW1hZ2UgKmltYWdlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBL
UmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqY29udGV4dEZvckltYWdlKEtDYW52YXNJbWFnZSopIGNv
bnN0ID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIFFTdHJpbmcgc3RyaW5nRm9yUGF0aChjb25zdCBL
Q2FudmFzUGF0aCogcGF0aCkgPSAwOworICAgIHZpcnR1YWwgUVN0cmluZyBzdHJpbmdGb3JQYXRo
KGNvbnN0IEtDYW52YXNQYXRoKikgPSAwOwogCiAgICAgLy8gQ3JlYXRpb24gdG9vbHMKLSAgICB2
aXJ0dWFsIEtDYW52YXNSZXNvdXJjZSAqY3JlYXRlUmVzb3VyY2UoY29uc3QgS0NSZXNvdXJjZVR5
cGUgJnR5cGUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QgKmNy
ZWF0ZUZpbHRlckVmZmVjdChjb25zdCBLQ0ZpbHRlckVmZmVjdFR5cGUgJnR5cGUpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIEtSZW5kZXJpbmdQYWludFNlcnZlciAqY3JlYXRlUGFpbnRTZXJ2ZXIo
Y29uc3QgS0NQYWludFNlcnZlclR5cGUgJnR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtD
YW52YXNSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoS0NSZXNvdXJjZVR5cGUpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QqIGNyZWF0ZUZpbHRlckVmZmVjdChLQ0Zp
bHRlckVmZmVjdFR5cGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEtSZW5kZXJpbmdQYWludFNl
cnZlciogY3JlYXRlUGFpbnRTZXJ2ZXIoS0NQYWludFNlcnZlclR5cGUpIGNvbnN0ID0gMDsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUGF0aCAqY3JlYXRlSXRlbShSZW5kZXJBcmVuYSAqYXJlbmEsIGto
dG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUsIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2Rl
LCBLQ2FudmFzUGF0aCogcGF0aCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgS0NhbnZhc0NvbnRh
aW5lciAqY3JlYXRlQ29udGFpbmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0
eWxlICpzdHlsZSwgS1NWRzo6U1ZHU3R5bGVkRWxlbWVudEltcGwgKm5vZGUpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlbmRlclBhdGgqIGNyZWF0ZUl0ZW0oUmVuZGVyQXJlbmEqLCBSZW5kZXJT
dHlsZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKiwgS0NhbnZhc1BhdGgqKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBLQ2FudmFzQ29udGFpbmVyKiBjcmVhdGVDb250YWluZXIoUmVuZGVyQXJlbmEg
KmFyZW5hLCBSZW5kZXJTdHlsZSosIFNWR1N0eWxlZEVsZW1lbnRJbXBsKikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgS0NhbnZhc1BhdGgqIGNyZWF0ZVBhdGgoKSBjb25zdCA9IDA7CiAKIHByaXZh
dGU6CkluZGV4OiBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVy
bi5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNl
cnZlclBhdHRlcm4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
ICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDEyICsyNSwxNiBAQAogI2Rl
ZmluZSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuX0gKICNpZiBTVkdfU1VQUE9SVAogCi0j
aW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyLmg+Ci0jaW5jbHVk
ZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oPgorI2luY2x1ZGUgIktSZW5kZXJp
bmdQYWludFNlcnZlci5oIgogCi0jaW5jbHVkZSAiSW50UG9pbnQuaCIKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOyAvLyBwdXQgdGhpcyBoZWFkZXIgaW50byBXZWJDb3JlIG5hbWVzcGFjZSBhbmQg
cmVtb3ZlIHRoaXMKIAogY2xhc3MgS0NhbnZhc0ltYWdlOworY2xhc3MgS0NhbnZhc1Jlc291cmNl
TGlzdGVuZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zv
cm07Cit9CiAKIGNsYXNzIEtSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4gOiBwdWJsaWMgS1Jl
bmRlcmluZ1BhaW50U2VydmVyCiB7CkBAIC00MCw3ICs0NSw3IEBACiAgICAgdmlydHVhbCBLQ1Bh
aW50U2VydmVyVHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICAvLyBQYXR0ZXJuIGJib3gKLSAgICB2
b2lkIHNldEJib3goY29uc3QgRmxvYXRSZWN0ICZyZWN0KTsKKyAgICB2b2lkIHNldEJib3goY29u
c3QgRmxvYXRSZWN0Jik7CiAgICAgRmxvYXRSZWN0IGJib3goKSBjb25zdDsKICAgICAKICAgICAv
LyBQYXR0ZXJuIHgseSBwaGFzZSBwb2ludHMgYXJlIHJlbGF0aXZlIHdoZW4gaW4gYm91bmRpbmdC
b3hNb2RlCkBAIC01MCwxMyArNTUsMTMgQEAKICAgICAKICAgICAvLyAnUGF0dGVybicgaW50ZXJm
YWNlCiAgICAgS0NhbnZhc0ltYWdlICp0aWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRUaWxlKEtD
YW52YXNJbWFnZSAqdGlsZSk7CisgICAgdm9pZCBzZXRUaWxlKEtDYW52YXNJbWFnZSopOwogCi0g
ICAgS0NhbnZhc01hdHJpeCBwYXR0ZXJuVHJhbnNmb3JtKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQ
YXR0ZXJuVHJhbnNmb3JtKGNvbnN0IEtDYW52YXNNYXRyaXggJm1hdCk7CisgICAgQWZmaW5lVHJh
bnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0oKSBjb25zdDsKKyAgICB2b2lkIHNldFBhdHRlcm5UcmFu
c2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CiAKICAgICBLQ2FudmFzUmVzb3VyY2VMaXN0
ZW5lciAqbGlzdGVuZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldExpc3RlbmVyKEtDYW52YXNSZXNv
dXJjZUxpc3RlbmVyICpsaXN0ZW5lcik7CisgICAgdm9pZCBzZXRMaXN0ZW5lcihLQ2FudmFzUmVz
b3VyY2VMaXN0ZW5lciopOwogICAgIFFUZXh0U3RyZWFtICZleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFFUZXh0U3RyZWFtICYpIGNvbnN0OwogCiBwcml2YXRlOgpJbmRleDoga2NhbnZhcy9kZXZpY2Uv
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmNwcAkocmV2aXNpb24gMTI0Njcp
CisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDEzICsyMiwxMyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlICJJbnRQb2ludC5oIgotCiAjaW5jbHVkZSAiS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuaCIKLSNpbmNsdWRlICJLQ2FudmFzTWF0cml4LmgiCiAK
LSNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgor
I2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUg
IktDYW52YXNUcmVlRGVidWcuaCIKKyNpbmNsdWRlIDxxdGV4dHN0cmVhbS5oPgogCiAvL0tDR3Jh
ZGllbnRTcHJlYWRNZXRob2QKIFFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0
cywgS0NHcmFkaWVudFNwcmVhZE1ldGhvZCBtKQpAQCAtOTksNyArOTksNyBAQAogICAgIEtDU29y
dGVkR3JhZGllbnRTdG9wTGlzdCBzdG9wczsKICAgICBLQ0dyYWRpZW50U3ByZWFkTWV0aG9kIHNw
cmVhZE1ldGhvZDsKICAgICBib29sIGJvdW5kaW5nQm94TW9kZTsKLSAgICBLQ2FudmFzTWF0cml4
IGdyYWRpZW50VHJhbnNmb3JtOworICAgIEFmZmluZVRyYW5zZm9ybSBncmFkaWVudFRyYW5zZm9y
bTsKICAgICBLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lciAqbGlzdGVuZXI7CiB9OwogCkBAIC0xNDIs
MTIgKzE0MiwxMiBAQAogICAgIGQtPmJvdW5kaW5nQm94TW9kZSA9IG1vZGU7CiB9CiAKLUtDYW52
YXNNYXRyaXggS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQ6OmdyYWRpZW50VHJhbnNmb3Jt
KCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6
Z3JhZGllbnRUcmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBkLT5ncmFkaWVudFRyYW5z
Zm9ybTsKIH0KIAotdm9pZCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudDo6c2V0R3JhZGll
bnRUcmFuc2Zvcm0oY29uc3QgS0NhbnZhc01hdHJpeCAmbWF0KQordm9pZCBLUmVuZGVyaW5nUGFp
bnRTZXJ2ZXJHcmFkaWVudDo6c2V0R3JhZGllbnRUcmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBtYXQpCiB7CiAgICAgZC0+Z3JhZGllbnRUcmFuc2Zvcm0gPSBtYXQ7CiB9CkBAIC0xNjAs
OCArMTYwLDggQEAKICAgICAgICAgdHMgPDwgIlttZXRob2Q9IiA8PCBzcHJlYWRNZXRob2QoKSA8
PCAiXSI7ICAgICAgICAKICAgICBpZiAoIWJvdW5kaW5nQm94TW9kZSgpKQogICAgICAgICB0cyA8
PCAiIFtib3VuZGluZyBib3ggbW9kZT0iIDw8IGJvdW5kaW5nQm94TW9kZSgpIDw8ICJdIjsKLSAg
ICBpZiAoIWdyYWRpZW50VHJhbnNmb3JtKCkucW1hdHJpeCgpLmlzSWRlbnRpdHkoKSkKLSAgICAg
ICAgdHMgPDwgIiBbdHJhbnNmb3JtPSIgPDwgZ3JhZGllbnRUcmFuc2Zvcm0oKS5xbWF0cml4KCkg
PDwgIl0iOworICAgIGlmICghZ3JhZGllbnRUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCisgICAg
ICAgIHRzIDw8ICIgW3RyYW5zZm9ybT0iIDw8IGdyYWRpZW50VHJhbnNmb3JtKCkgPDwgIl0iOwog
ICAgIAogICAgIHJldHVybiB0czsKIH0KQEAgLTE3MCw5ICsxNzAsNiBAQAogY2xhc3MgS1JlbmRl
cmluZ1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQ6OlByaXZhdGUKIHsKIHB1YmxpYzoKLSAgICBQ
cml2YXRlKCkgeyB9Ci0gICAgflByaXZhdGUoKSB7IH0KLQogICAgIEZsb2F0UG9pbnQgc3RhcnQs
IGVuZDsKIH07CiAKSW5kZXg6IGtjYW52YXMvS0NhbnZhc01hdHJpeC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtjYW52YXMvS0NhbnZhc01hdHJpeC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtjYW52YXMvS0Nh
bnZhc01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaWZuZGVmIEtDYW52
YXNNYXRyaXhfSAotI2RlZmluZSBLQ2FudmFzTWF0cml4X0gKLSNpZiBTVkdfU1VQUE9SVAotCi0j
aW5jbHVkZSA8cW1hdHJpeC5oPgotCi10eXBlZGVmIGVudW0KLXsKLSAgICBPUFNfUFJFTVVMID0g
MSwgLy8gRGVmYXVsdCBtb2RlIChzdmcgY29tcGF0aWJsZSkKLSAgICBPUFNfUE9TVE1VTCA9IDIK
LX0gS0NNYXRyaXhPcGVyYXRpb25Nb2RlOwotCi1jbGFzcyBLQ2FudmFzUGF0aDsKLWNsYXNzIEtD
YW52YXNNYXRyaXgKLXsKLXB1YmxpYzoKLSAgICBLQ2FudmFzTWF0cml4KCk7Ci0gICAgS0NhbnZh
c01hdHJpeChjb25zdCBRTWF0cml4ICZxbWF0cml4KTsKLSAgICBLQ2FudmFzTWF0cml4KGNvbnN0
IEtDYW52YXNNYXRyaXggJm1hdHJpeCk7Ci0gICAgS0NhbnZhc01hdHJpeChkb3VibGUgYSwgZG91
YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKTsKLSAgICB+S0Nh
bnZhc01hdHJpeCgpOwotCi0gICAgLy8gT3BlcmF0b3JzCi0gICAgS0NhbnZhc01hdHJpeCAmb3Bl
cmF0b3I9KGNvbnN0IFFNYXRyaXggJm90aGVyKTsKLSAgICBLQ2FudmFzTWF0cml4ICZvcGVyYXRv
cj0oY29uc3QgS0NhbnZhc01hdHJpeCAmb3RoZXIpOwotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFFNYXRyaXggJm90aGVyKSBjb25zdDsKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUU1h
dHJpeCAmb3RoZXIpIGNvbnN0OwotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtDYW52YXNN
YXRyaXggJm90aGVyKSBjb25zdDsKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgS0NhbnZhc01h
dHJpeCAmb3RoZXIpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRPcGVyYXRpb25Nb2RlKEtDTWF0cml4
T3BlcmF0aW9uTW9kZSBtb2RlKTsKLQotICAgIGRvdWJsZSBhKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRBKGRvdWJsZSBhKTsKLQotICAgIGRvdWJsZSBiKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRCKGRv
dWJsZSBiKTsKLQotICAgIGRvdWJsZSBjKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDKGRvdWJsZSBj
KTsKLQotICAgIGRvdWJsZSBkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREKGRvdWJsZSBkKTsKLQot
ICAgIGRvdWJsZSBlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRFKGRvdWJsZSBlKTsKLQotICAgIGRv
dWJsZSBmKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGKGRvdWJsZSBmKTsKLQotICAgIC8vIE9QU19Q
UkVNVUwgOiBQcmUtbXVsdGlwbGllZCBvcGVyYXRpb25zIChuZWVkZWQgZm9yIHN2Zy1saWtlIG1h
dHJpeCBvcGVyYXRpb25zKQotICAgIC8vIE9QU19QT1NUTVVMOiBQb3N0LW11bHRpcGxpZWQgb3Bl
cmF0aW9ucwotICAgIEtDYW52YXNNYXRyaXggJnRyYW5zbGF0ZShkb3VibGUgeCwgZG91YmxlIHkp
OwotICAgIEtDYW52YXNNYXRyaXggJm11bHRpcGx5KGNvbnN0IEtDYW52YXNNYXRyaXggJm90aGVy
KTsKLSAgICBLQ2FudmFzTWF0cml4ICZzY2FsZShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUg
c2NhbGVGYWN0b3JZKTsKLQotICAgIEtDYW52YXNNYXRyaXggJnJvdGF0ZShkb3VibGUgYW5nbGUp
OwotICAgIEtDYW52YXNNYXRyaXggJnJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5
KTsKLQotICAgIEtDYW52YXNNYXRyaXggJmZsaXBYKCk7Ci0gICAgS0NhbnZhc01hdHJpeCAmZmxp
cFkoKTsKLQotICAgIEtDYW52YXNNYXRyaXggJnNrZXdYKGRvdWJsZSBhbmdsZSk7Ci0gICAgS0Nh
bnZhc01hdHJpeCAmc2tld1koZG91YmxlIGFuZ2xlKTsKLQotICAgIHZvaWQgcmVzZXQoKTsKLQot
ICAgIC8vIERldGVybWluZSB0aGUgc2NhbGluZyBjb21wb25lbnQgb2YgdGhlIG1hdHJpeCBhbmQg
ZmFjdG9yIGl0IG91dC4KLSAgICAvLyBBZnRlciB0aGlzIG9wZXJhdGlvbiwgdGhlIG1hdHJpeCBo
YXMgeCBhbmQgeSBzY2FsZSBvZiBvbmUgKCcxJykuCi0gICAgdm9pZCByZW1vdmVTY2FsZShkb3Vi
bGUgKnhTY2FsZSwgZG91YmxlICp5U2NhbGUpOwotCi0gICAgUU1hdHJpeCBxbWF0cml4KCkgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gICAgUU1hdHJpeCBtX21hdHJpeDsKLSAgICBLQ01hdHJpeE9wZXJh
dGlvbk1vZGUgbV9tb2RlOwotfTsKLQotI2VuZGlmIC8vIFNWR19TVVBQT1JUCi0jZW5kaWYKLQot
Ly8gdmltOnRzPTQ6bm9ldApJbmRleDoga2NhbnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrY2FudmFzL1JlbmRlckZvcmVpZ25PYmplY3QuY3BwCShyZXZpc2lvbiAx
MjQ2NykKKysrIGtjYW52YXMvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDIyICsyNCwyMSBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiUmVuZGVyRm9y
ZWlnbk9iamVjdC5oIgogCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgogI2luY2x1ZGUgIktS
ZW5kZXJpbmdEZXZpY2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKICNp
bmNsdWRlICJTVkdGb3JlaWduT2JqZWN0RWxlbWVudEltcGwuaCIKIAotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbmRlckZvcmVpZ25PYmplY3Q6OlJl
bmRlckZvcmVpZ25PYmplY3QoS1NWRzo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsICpub2Rl
KSAKK1JlbmRlckZvcmVpZ25PYmplY3Q6OlJlbmRlckZvcmVpZ25PYmplY3QoU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnRJbXBsICpub2RlKSAKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiB7CiB9CiAK
LVFNYXRyaXggUmVuZGVyRm9yZWlnbk9iamVjdDo6dHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkK
K0FmZmluZVRyYW5zZm9ybSBSZW5kZXJGb3JlaWduT2JqZWN0Ojp0cmFuc2xhdGlvbkZvckF0dHJp
YnV0ZXMoKQogewotICAgIEtTVkc6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqZm9yZWln
biA9IHN0YXRpY19jYXN0PEtTVkc6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbCAqPihlbGVt
ZW50KCkpOwotICAgIHJldHVybiBRTWF0cml4KCkudHJhbnNsYXRlKGZvcmVpZ24tPngoKS0+YmFz
ZVZhbCgpLT52YWx1ZSgpLCBmb3JlaWduLT55KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7CisgICAg
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnRJbXBsKiBmb3JlaWduID0gc3RhdGljX2Nhc3Q8U1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnRJbXBsICo+KGVsZW1lbnQoKSk7CisgICAgcmV0dXJuIHRyYW5zbGF0
aW9uTWF0cml4KGZvcmVpZ24tPngoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBmb3JlaWduLT55KCkt
PmJhc2VWYWwoKS0+dmFsdWUoKSk7CiB9CiAKIHZvaWQgUmVuZGVyRm9yZWlnbk9iamVjdDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSkKQEAgLTU4
LDcgKzU3LDcgQEAKICAgICB9IGVsc2UKICAgICAgICAgcGFpbnRJbmZvLnAtPnNhdmUoKTsKIAot
ICAgIGNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCkudHJhbnNsYXRlKHBhcmVudFgsIHBhcmVu
dFkpKTsKKyAgICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25NYXRyaXgocGFyZW50WCwg
cGFyZW50WSkpOwogICAgIGNvbnRleHQtPmNvbmNhdENUTShsb2NhbFRyYW5zZm9ybSgpKTsKICAg
ICBjb250ZXh0LT5jb25jYXRDVE0odHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCkpOwogICAgIApA
QCAtNzEsMTMgKzcwLDE1IEBACiAgICAgICAgIHBhaW50SW5mby5wLT5yZXN0b3JlKCk7CiB9CiAK
LWJvb2wgUmVuZGVyRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGlu
dCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikK
K2Jvb2wgUmVuZGVyRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQoTm9kZUluZm8mIGluZm8sIGlu
dCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQogewotICAg
IFFNYXRyaXggdG90YWxUcmFuc2Zvcm0gPSBhYnNvbHV0ZVRyYW5zZm9ybSgpOworICAgIEFmZmlu
ZVRyYW5zZm9ybSB0b3RhbFRyYW5zZm9ybSA9IGFic29sdXRlVHJhbnNmb3JtKCk7CiAgICAgdG90
YWxUcmFuc2Zvcm0gKj0gdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgZG91YmxlIGxv
Y2FsWCwgbG9jYWxZOwotICAgIHRvdGFsVHJhbnNmb3JtLmludmVydCgpLm1hcCh4LCB5LCAmbG9j
YWxYLCAmbG9jYWxZKTsKLSAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGluZm8s
IChpbnQpbG9jYWxYLCAoaW50KWxvY2FsWSwgdHgsIHR5LCBoaXRUZXN0QWN0aW9uKTsKKyAgICB0
b3RhbFRyYW5zZm9ybS5pbnZlcnQoKTsKKyAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSB0b3Rh
bFRyYW5zZm9ybS5tYXAoSW50UG9pbnQoeCwgeSkpOworICAgIHJldHVybiBSZW5kZXJCbG9jazo6
bm9kZUF0UG9pbnQoaW5mbywgc3RhdGljX2Nhc3Q8aW50Pihsb2NhbFBvaW50LngoKSksIHN0YXRp
Y19jYXN0PGludD4obG9jYWxQb2ludC55KCkpLCB0eCwgdHksIGFjdGlvbik7Cit9CisKIH0KLSNl
bmRpZiAvLyBTVkdfU1VQUE9SVAogCisjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IGtjYW52
YXMvS0NhbnZhc1Jlc291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzUmVz
b3VyY2VzLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMTkgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgPGtk
ZWJ1Zy5oPgorI2luY2x1ZGUgIktDYW52YXNSZXNvdXJjZXMuaCIKIAotI2luY2x1ZGUgImtjYW52
YXMvS0NhbnZhcy5oIgotI2luY2x1ZGUgImtjYW52YXMvUmVuZGVyUGF0aC5oIgotI2luY2x1ZGUg
ImtjYW52YXMvS0NhbnZhc0ltYWdlLmgiCi0jaW5jbHVkZSAiS0NhbnZhc01hdHJpeC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJL
Q2FudmFzQ29udGFpbmVyLmgiCi0jaW5jbHVkZSAiS0NhbnZhc1Jlc291cmNlcy5oIgorI2luY2x1
ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKICNpbmNsdWRlICJLUmVuZGVyaW5nRGV2aWNlLmgiCi0K
KyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50
SW1wbC5oIgotCisjaW5jbHVkZSAia2NhbnZhcy9LQ2FudmFzLmgiCisjaW5jbHVkZSAia2NhbnZh
cy9LQ2FudmFzSW1hZ2UuaCIKKyNpbmNsdWRlICJrY2FudmFzL1JlbmRlclBhdGguaCIKICNpbmNs
dWRlIDxxdGV4dHN0cmVhbS5oPgotI2luY2x1ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKLSNpbmNs
dWRlICJEb2N1bWVudEltcGwuaCIKIAogUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJl
YW0gJnRzLCBjb25zdCBLQ2FudmFzUmVzb3VyY2UgJnIpIAogeyAKQEAgLTQ1LDEwICs0Miw2IEBA
CiB9CiAKIC8vIEtDYW52YXNSZXNvdXJjZQotS0NhbnZhc1Jlc291cmNlOjpLQ2FudmFzUmVzb3Vy
Y2UoKQotewotfQotCiBLQ2FudmFzUmVzb3VyY2U6On5LQ2FudmFzUmVzb3VyY2UoKQogewogfQpA
QCAtNjEsMTEgKzU0LDYgQEAKICAgICBtX2NsaWVudHMuYXBwZW5kKGl0ZW0pOwogfQogCi1jb25z
dCBLQ2FudmFzSXRlbUxpc3QgJktDYW52YXNSZXNvdXJjZTo6Y2xpZW50cygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fY2xpZW50czsKLX0KLQogdm9pZCBLQ2FudmFzUmVzb3VyY2U6OmludmFsaWRh
dGUoKQogewogICAgIEtDYW52YXNJdGVtTGlzdDo6Q29uc3RJdGVyYXRvciBpdCA9IG1fY2xpZW50
cy5iZWdpbigpOwpAQCAtOTEsMTMgKzc5LDYgQEAKIH0KIAogLy8gS0NhbnZhc0NsaXBwZXIKLUtD
YW52YXNDbGlwcGVyOjpLQ2FudmFzQ2xpcHBlcigpIDogS0NhbnZhc1Jlc291cmNlKCkKLXsKLX0K
LQotS0NhbnZhc0NsaXBwZXI6On5LQ2FudmFzQ2xpcHBlcigpCi17Ci19CiAKIHZvaWQgS0NhbnZh
c0NsaXBwZXI6OnJlc2V0Q2xpcERhdGEoKQogewpAQCAtMjI1LDI0ICsyMDYsMjAgQEAKIHsKICAg
ICBpZihtX21hcmtlcikKICAgICB7Ci0gICAgICAgIEtDYW52YXNNYXRyaXggdHJhbnNsYXRpb247
Ci0gICAgICAgIHRyYW5zbGF0aW9uLnRyYW5zbGF0ZSh4LCB5KTsKLQotICAgICAgICBLQ2FudmFz
TWF0cml4IHJvdGF0aW9uOwotICAgICAgICByb3RhdGlvbi5zZXRPcGVyYXRpb25Nb2RlKE9QU19Q
T1NUTVVMKTsKLSAgICAgICAgcm90YXRpb24udHJhbnNsYXRlKC1tX3JlZlgsIC1tX3JlZlkpOwot
ICAgICAgICByb3RhdGlvbi5zY2FsZShtX3NjYWxlWCwgbV9zY2FsZVkpOwotICAgICAgICByb3Rh
dGlvbi5yb3RhdGUobV9hbmdsZSA+IC0xID8gbV9hbmdsZSA6IGFuZ2xlKTsKKyAgICAgICAgQWZm
aW5lVHJhbnNmb3JtIG1hdHJpeDsKKyAgICAgICAgaWYgKG1fdXNlU3Ryb2tlV2lkdGgpCisgICAg
ICAgICAgICBtYXRyaXguc2NhbGUoc3Ryb2tlV2lkdGgsIHN0cm9rZVdpZHRoKTsKKyAgICAgICAg
bWF0cml4LnJvdGF0ZShtX2FuZ2xlID4gLTEgPyBtX2FuZ2xlIDogYW5nbGUpOworICAgICAgICBt
YXRyaXguc2NhbGUobV9zY2FsZVgsIG1fc2NhbGVZKTsKKyAgICAgICAgbWF0cml4LnRyYW5zbGF0
ZSh4IC0gbV9yZWZYLCB4IC0gbV9yZWZZKTsKICAgICAgICAgCiAgICAgICAgIC8vIHN0cm9rZSB3
aWR0aAotICAgICAgICBpZihtX3VzZVN0cm9rZVdpZHRoKQotICAgICAgICAgICAgcm90YXRpb24u
c2NhbGUoc3Ryb2tlV2lkdGgsIHN0cm9rZVdpZHRoKTsKIAogICAgICAgICAvLyBGSVhNRTogUGFp
bnRJbmZvIHNob3VsZCBiZSBwYXNzZWQgaW50byB0aGlzIG1ldGhvZCBpbnN0ZWFkLgogICAgICAg
ICAvLyBGSVhNRTogYm91bmRpbmcgYm94IGZyYWN0aW9ucyBsb3N0CiAgICAgICAgIFFQYWludGVy
IHA7CiAgICAgICAgIGtodG1sOjpSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyBpbmZvKCZwLCBlbmNs
b3NpbmdJbnRSZWN0KHJlY3QpLCBXZWJDb3JlOjpQYWludEFjdGlvbkZvcmVncm91bmQsIDApOwot
ICAgICAgICBtX21hcmtlci0+c2V0TG9jYWxUcmFuc2Zvcm0ocm90YXRpb24ubXVsdGlwbHkodHJh
bnNsYXRpb24pLnFtYXRyaXgoKSk7CisgICAgICAgIG1fbWFya2VyLT5zZXRMb2NhbFRyYW5zZm9y
bShtYXRyaXgpOwogICAgICAgICBzdGF0aWNfY2FzdDxLQ2FudmFzQ29udGFpbmVyICo+KG1fbWFy
a2VyKS0+c2V0RHJhd3NDb250ZW50cyh0cnVlKTsKICAgICAgICAgbV9tYXJrZXItPnBhaW50KGlu
Zm8sIDAsIDApOwogICAgICAgICBzdGF0aWNfY2FzdDxLQ2FudmFzQ29udGFpbmVyICo+KG1fbWFy
a2VyKS0+c2V0RHJhd3NDb250ZW50cyhmYWxzZSk7CkluZGV4OiBrY2FudmFzL0tDYW52YXNUcmVl
RGVidWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuaAkocmV2aXNp
b24gMTI0NjcpCisrKyBrY2FudmFzL0tDYW52YXNUcmVlRGVidWcuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDgwICsyMyw3MCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCiAgKi8KIAotI2luY2x1ZGUgPHFzdHJpbmcuaD4KICNpbmNsdWRlIDxxdGV4dHN0
cmVhbS5oPgotI2luY2x1ZGUgPHEzdmFsdWVsaXN0Lmg+CisjaW5jbHVkZSA8cXZhbHVlbGlzdC5o
PgogCi1jbGFzcyBRTWF0cml4OworY2xhc3MgS0NhbnZhc0NvbnRhaW5lcjsKIGNsYXNzIFFTdHJp
bmdMaXN0OwotY2xhc3MgS0NDbGlwRGF0YTsKLWNsYXNzIEtDUGF0aERhdGE7Ci0KIGNsYXNzIFJl
bmRlclBhdGg7Ci1jbGFzcyBLQ2FudmFzQ29udGFpbmVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogICAgIGNsYXNzIENvbG9yOwogICAgIGNsYXNz
IEZsb2F0U2l6ZTsKICAgICBjbGFzcyBGbG9hdFBvaW50OwogICAgIGNsYXNzIEZsb2F0UmVjdDsK
ICAgICBjbGFzcyBJbnRQb2ludDsKICAgICBjbGFzcyBJbnRSZWN0OwotfQotCi1uYW1lc3BhY2Ug
S0RPTSB7CiAgICAgY2xhc3MgTm9kZUltcGw7CiB9CiAKIC8vIGZ1bmN0aW9ucyB1c2VkIGJ5IHRo
ZSBtYWluIEtXUVJlbmRlclRyZWVEZWJ1ZyBjb2RlCi12b2lkIHdyaXRlKFFUZXh0U3RyZWFtICZ0
cywgY29uc3QgS0NhbnZhc0NvbnRhaW5lciAmY29udGFpbmVyLCBpbnQgaW5kZW50ID0gMCk7Ci12
b2lkIHdyaXRlKFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUmVuZGVyUGF0aCAmcGF0aCwgaW50IGlu
ZGVudCA9IDApOwotdm9pZCB3cml0ZVJlbmRlclJlc291cmNlcyhRVGV4dFN0cmVhbSAmdHMsIEtE
T006Ok5vZGVJbXBsICpwYXJlbnQpOwordm9pZCB3cml0ZShRVGV4dFN0cmVhbSYsIGNvbnN0IEtD
YW52YXNDb250YWluZXImLCBpbnQgaW5kZW50ID0gMCk7Cit2b2lkIHdyaXRlKFFUZXh0U3RyZWFt
JiwgY29uc3QgUmVuZGVyUGF0aCYsIGludCBpbmRlbnQgPSAwKTsKK3ZvaWQgd3JpdGVSZW5kZXJS
ZXNvdXJjZXMoUVRleHRTdHJlYW0mLCBXZWJDb3JlOjpOb2RlSW1wbCogcGFyZW50KTsKIAogLy8g
aGVscGVyIG9wZXJhdG9ycyBkZWZpbmVkIHVzZWQgaW4gdmFyaW91cyBjbGFzc2VzIHRvIGR1bXAg
dGhlIHJlbmRlciB0cmVlLiAKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0
cywgY29uc3QgUU1hdHJpeCAmKTsKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFt
ICZ0cywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKTsKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8
KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6Q29sb3IgJik7Ci1RVGV4dFN0cmVhbSAm
b3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50ICYpOwot
UVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUgJik7Ci1RVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCAmKTsKLVFUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0
U3RyZWFtICZ0cywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmKTsKK1FUZXh0U3RyZWFtICZv
cGVyYXRvcjw8KFFUZXh0U3RyZWFtJiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtICYp
OworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0ICYpOworUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciAmKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtJiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQgJik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4
dFN0cmVhbSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSAmKTsKK1FUZXh0U3RyZWFtICZvcGVy
YXRvcjw8KFFUZXh0U3RyZWFtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0ICYpOworUVRleHRT
dHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlYW0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
ICYpOwogCiAvLyBoZWxwZXIgb3BlcmF0b3JzIHNwZWNpZmljIHRvIGR1bXBpbmcgdGhlIHJlbmRl
ciB0cmVlLiB0aGVzZSBhcmUgdXNlZCBpbiB2YXJpb3VzIGNsYXNzZXMgdG8gZHVtcCB0aGUgcmVu
ZGVyIHRyZWUKIC8vIHRoZXNlIGNvdWxkIGJlIGRlZmluZWQgaW4gc2VwYXJhdGUgbmFtZXNwYWNl
IHRvIGF2b2lkIG1hdGNoaW5nIHRoZXNlIGdlbmVyaWMgc2lnbmF0dXJlcyB1bmludGVudGlvbmFs
bHkuCiAgICAgCi1RVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0
IFFTdHJpbmdMaXN0ICZsKTsKK1FUZXh0U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtJiwg
Y29uc3QgUVN0cmluZ0xpc3QmKTsKICAgICAKLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+Ci1RVGV4
dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFEzVmFsdWVMaXN0PEl0
ZW0qPiAmbCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFFUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFFU
ZXh0U3RyZWFtJiB0cywgY29uc3QgUVZhbHVlTGlzdDxUKj4mIGwpCiB7CiAgICAgdHMgPDwgIlsi
OwotICAgIHR5cGVuYW1lIFEzVmFsdWVMaXN0PEl0ZW0qPjo6Q29uc3RJdGVyYXRvciBpdCA9IGwu
YmVnaW4oKTsKLSAgICB0eXBlbmFtZSBRM1ZhbHVlTGlzdDxJdGVtKj46OkNvbnN0SXRlcmF0b3Ig
aXRfZSA9IGwuZW5kKCk7Ci0gICAgd2hpbGUgKGl0ICE9IGl0X2UpCi0gICAgeworICAgIHR5cGVu
YW1lIFFWYWx1ZUxpc3Q8VCo+OjpDb25zdEl0ZXJhdG9yIGl0ID0gbC5iZWdpbigpOworICAgIHR5
cGVuYW1lIFFWYWx1ZUxpc3Q8VCo+OjpDb25zdEl0ZXJhdG9yIGl0X2UgPSBsLmVuZCgpOworICAg
IHdoaWxlIChpdCAhPSBpdF9lKSB7CiAgICAgICAgIHRzIDw8ICooKml0KTsKICAgICAgICAgKytp
dDsKLSAgICAgICAgaWYgKGl0ICE9IGl0X2UpIHRzIDw8ICIsICI7CisgICAgICAgIGlmIChpdCAh
PSBpdF9lKQorICAgICAgICAgICAgdHMgPDwgIiwgIjsKICAgICB9CiAgICAgdHMgPDwgIl0iOwog
ICAgIAogICAgIHJldHVybiB0czsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLVFUZXh0
U3RyZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUTNWYWx1ZUxpc3Q8SXRl
bT4gJmwpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBRVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChRVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFFWYWx1ZUxpc3Q8VD4mIGwpCiB7CiAgICAgdHMgPDwgIlsiOwot
ICAgIHR5cGVuYW1lIFEzVmFsdWVMaXN0PEl0ZW0+OjpDb25zdEl0ZXJhdG9yIGl0ID0gbC5iZWdp
bigpOwotICAgIHR5cGVuYW1lIFEzVmFsdWVMaXN0PEl0ZW0+OjpDb25zdEl0ZXJhdG9yIGl0X2Ug
PSBsLmVuZCgpOwotICAgIHdoaWxlIChpdCAhPSBpdF9lKQotICAgIHsKKyAgICB0eXBlbmFtZSBR
VmFsdWVMaXN0PFQ+OjpDb25zdEl0ZXJhdG9yIGl0ID0gbC5iZWdpbigpOworICAgIHR5cGVuYW1l
IFFWYWx1ZUxpc3Q8VD46OkNvbnN0SXRlcmF0b3IgaXRfZSA9IGwuZW5kKCk7CisgICAgd2hpbGUg
KGl0ICE9IGl0X2UpIHsKICAgICAgICAgdHMgPDwgKml0OwogICAgICAgICArK2l0OwotICAgICAg
ICBpZiAoaXQgIT0gaXRfZSkgdHMgPDwgIiwgIjsKKyAgICAgICAgaWYgKGl0ICE9IGl0X2UpCisg
ICAgICAgICAgICB0cyA8PCAiLCAiOwogICAgIH0KICAgICB0cyA8PCAiXSI7Ci0gICAgCiAgICAg
cmV0dXJuIHRzOwogfQpJbmRleDoga2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrY2FudmFz
L0tDYW52YXNGaWx0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZiBT
VkdfU1VQUE9SVAogCiAjaW5jbHVkZSAiS0NhbnZhc1Jlc291cmNlcy5oIgotI2luY2x1ZGUgIkZs
b2F0U2l6ZS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAj
aW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIApJbmRleDoga2NhbnZhcy9SZW5kZXJGb3JlaWduT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmgJKHJldmlz
aW9uIDEyNDY3KQorKysga2NhbnZhcy9SZW5kZXJGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDMwICsyNCwzMiBAQAogI2RlZmluZSBSZW5kZXJGb3JlaWduT2JqZWN0X0gKICNp
ZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlIDxxbWF0cml4Lmg+CiAKLW5hbWVzcGFjZSBLU1ZHIHsK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNsYXNzIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
SW1wbDsKLX0KIAotY2xhc3MgUmVuZGVyRm9yZWlnbk9iamVjdCA6IHB1YmxpYyBraHRtbDo6UmVu
ZGVyQmxvY2sKK2NsYXNzIFJlbmRlckZvcmVpZ25PYmplY3QgOiBwdWJsaWMgUmVuZGVyQmxvY2sK
IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJGb3JlaWduT2JqZWN0KEtTVkc6OlNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50SW1wbCAqbm9kZSk7CisgICAgUmVuZGVyRm9yZWlnbk9iamVjdChTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudEltcGwqKTsKICAgICAKICAgICBjb25zdCBjaGFyICpyZW5kZXJOYW1lKCkg
Y29uc3QgeyByZXR1cm4gIlJlbmRlckZvcmVpZ25PYmplY3QiOyB9Ci0gICAgdm9pZCBwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgaW50IHBhcmVudFgsIGludCBwYXJlbnRZKTsKKyAgICB2b2lk
IHBhaW50KFBhaW50SW5mbyYsIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CiAgICAgCi0gICAg
dmlydHVhbCBRTWF0cml4IGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm07IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxUcmFuc2Zvcm0oY29uc3QgUU1hdHJpeCYg
dHJhbnNmb3JtKSB7IG1fdHJhbnNmb3JtID0gdHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCBBZmZp
bmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSkgeyBtX3RyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQogICAgIAotICAgIGJv
b2wgbm9kZUF0UG9pbnQoTm9kZUluZm8mLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5LCBX
ZWJDb3JlOjpIaXRUZXN0QWN0aW9uKTsKKyAgICBib29sIG5vZGVBdFBvaW50KE5vZGVJbmZvJiwg
aW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSwgSGl0VGVzdEFjdGlvbik7CiAKICBwcml2YXRl
OgotICAgIFFNYXRyaXggdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVzKCk7Ci0gICAgUU1hdHJpeCBt
X3RyYW5zZm9ybTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNsYXRpb25Gb3JBdHRyaWJ1dGVz
KCk7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwogfTsKIAorfQorCiAjZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgJKHJldmlzaW9uIDEyNDY3
KQorKysga2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiAr
MSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0y
NCw0MiArMjUsMzcgQEAKICNkZWZpbmUgS0NhbnZhc1Jlc291cmNlc19ICiAjaWYgU1ZHX1NVUFBP
UlQKIAotI2luY2x1ZGUgPHFzdHJpbmcuaD4KLSNpbmNsdWRlIDxxM3ZhbHVlbGlzdC5oPgorI2lu
Y2x1ZGUgIktDYW52YXNJdGVtLmgiCisjaW5jbHVkZSAiS0NhbnZhc1BhdGguaCIKIAotI2luY2x1
ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1BhdGgu
aD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZUxpc3RlbmVyLmg+Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsgLy8gbW92ZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgaW50byBXZWJD
b3JlIGFuZCByZW1vdmUgdGhpcwogCiBjbGFzcyBRVGV4dFN0cmVhbTsKIAorY2xhc3MgS0NhbnZh
c0ltYWdlOworY2xhc3MgS1JlbmRlcmluZ1BhaW50U2VydmVyOworCiAvLyBFbnVtZXJhdGlvbnMK
LXR5cGVkZWYgZW51bQoteworZW51bSBLQ1Jlc291cmNlVHlwZSB7CiAgICAgLy8gUGFpbnRpbmcg
bW9kZQogICAgIFJTX0NMSVBQRVIgPSAwLAogICAgIFJTX01BUktFUiA9IDEsCiAgICAgUlNfSU1B
R0UgPSAyLAogICAgIFJTX0ZJTFRFUiA9IDMsCiAgICAgUlNfTUFTS0VSID0gNAotfSBLQ1Jlc291
cmNlVHlwZTsKLQotY2xhc3MgS0NhbnZhc01hdHJpeDsKLWNsYXNzIEtSZW5kZXJpbmdQYWludFNl
cnZlcjsKK307CiAKLWNsYXNzIEtDYW52YXNSZXNvdXJjZQoteworY2xhc3MgS0NhbnZhc1Jlc291
cmNlIHsKIHB1YmxpYzoKLSAgICBLQ2FudmFzUmVzb3VyY2UoKTsKICAgICB2aXJ0dWFsIH5LQ2Fu
dmFzUmVzb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9p
ZCBhZGRDbGllbnQoY29uc3QgUmVuZGVyUGF0aCAqaXRlbSk7CiAKLSAgICBjb25zdCBLQ2FudmFz
SXRlbUxpc3QgJmNsaWVudHMoKSBjb25zdDsKKyAgICBjb25zdCBLQ2FudmFzSXRlbUxpc3QmIGNs
aWVudHMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudHM7IH0KICAgICAKICAgICBRU3RyaW5nIGlk
SW5SZWdpc3RyeSgpIGNvbnN0OwotICAgIHZvaWQgc2V0SWRJblJlZ2lzdHJ5KGNvbnN0IFFTdHJp
bmcmIG5ld0lkKTsKKyAgICB2b2lkIHNldElkSW5SZWdpc3RyeShjb25zdCBRU3RyaW5nJik7CiAg
ICAgCiAgICAgdmlydHVhbCBib29sIGlzUGFpbnRTZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CkBAIC03MywxNiArNjksMTIgQEAKICAgICBRU3RyaW5nIHJlZ2lzdHJ5SWQ7CiB9OwogCi1jbGFz
cyBLQ2FudmFzQ2xpcHBlciA6IHB1YmxpYyBLQ2FudmFzUmVzb3VyY2UKLXsKK2NsYXNzIEtDYW52
YXNDbGlwcGVyIDogcHVibGljIEtDYW52YXNSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgS0NhbnZh
c0NsaXBwZXIoKTsKLSAgICB2aXJ0dWFsIH5LQ2FudmFzQ2xpcHBlcigpOwotICAgIAogICAgIHZp
cnR1YWwgYm9vbCBpc0NsaXBwZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lk
IHJlc2V0Q2xpcERhdGEoKTsKLSAgICB2b2lkIGFkZENsaXBEYXRhKEtDYW52YXNQYXRoICpwYXRo
LCBLQ1dpbmRSdWxlIHJ1bGUsIGJvb2wgYmJveFVuaXRzKTsKKyAgICB2b2lkIGFkZENsaXBEYXRh
KEtDYW52YXNQYXRoKiwgS0NXaW5kUnVsZSwgYm9vbCBiYm94VW5pdHMpOwogICAgIAogICAgIHZp
cnR1YWwgdm9pZCBhcHBseUNsaXAoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCkgY29uc3Qg
PSAwOwogCkBAIC05MywxNiArODUsMTMgQEAKICAgICBLQ0NsaXBEYXRhTGlzdCBtX2NsaXBEYXRh
OwogfTsKIAotY2xhc3MgS0NhbnZhc0ltYWdlOwotCi1jbGFzcyBLQ2FudmFzTWFza2VyIDogcHVi
bGljIEtDYW52YXNSZXNvdXJjZQoteworY2xhc3MgS0NhbnZhc01hc2tlciA6IHB1YmxpYyBLQ2Fu
dmFzUmVzb3VyY2UgewogcHVibGljOgogICAgIEtDYW52YXNNYXNrZXIoKTsKICAgICB2aXJ0dWFs
IH5LQ2FudmFzTWFza2VyKCk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzTWFza2VyKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgc2V0TWFzayhLQ2FudmFzSW1hZ2UgKm1hc2sp
OworICAgIHZvaWQgc2V0TWFzayhLQ2FudmFzSW1hZ2UqKTsKICAgICBLQ2FudmFzSW1hZ2UgKm1h
c2soKSBjb25zdCB7IHJldHVybiBtX21hc2s7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlNYXNrKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gpIGNvbnN0ID0gMDsKQEAgLTExNSwx
MiArMTA0LDEyIEBACiBjbGFzcyBLQ2FudmFzTWFya2VyIDogcHVibGljIEtDYW52YXNSZXNvdXJj
ZQogewogcHVibGljOgotICAgIEtDYW52YXNNYXJrZXIoa2h0bWw6OlJlbmRlck9iamVjdCAqbWFy
a2VyID0gMCk7CisgICAgS0NhbnZhc01hcmtlcihSZW5kZXJPYmplY3QqIG1hcmtlciA9IDApOwog
ICAgIHZpcnR1YWwgfktDYW52YXNNYXJrZXIoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNN
YXJrZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNldE1hcmtlcihraHRt
bDo6UmVuZGVyT2JqZWN0ICptYXJrZXIpOworICAgIHZvaWQgc2V0TWFya2VyKFJlbmRlck9iamVj
dCAqbWFya2VyKTsKICAgICAKICAgICB2b2lkIHNldFJlZihkb3VibGUgcmVmWCwgZG91YmxlIHJl
ZlkpOwogICAgIGRvdWJsZSByZWZYKCkgY29uc3Q7ICAgIApAQCAtMTM4LDIzICsxMjcsMjMgQEAK
ICAgICBmbG9hdCBzY2FsZVkoKSBjb25zdDsKIAogICAgICAvLyBEcmF3IG9udG8gdGhlIGNhbnZh
cwotICAgIHZvaWQgZHJhdyhjb25zdCBGbG9hdFJlY3QgJnJlY3QsIGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHN0cm9rZVdpZHRoID0gMS4sIGRvdWJsZSBhbmdsZSA9IDAuMCk7CisgICAgdm9p
ZCBkcmF3KGNvbnN0IEZsb2F0UmVjdCYsIGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHN0cm9r
ZVdpZHRoID0gMS4sIGRvdWJsZSBhbmdsZSA9IDAuMCk7CiAKICAgICBRVGV4dFN0cmVhbSYgZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihRVGV4dFN0cmVhbSAmKSBjb25zdDsgCiBwcml2YXRlOgogICAg
IGRvdWJsZSBtX3JlZlgsIG1fcmVmWTsKICAgICBmbG9hdCBtX2FuZ2xlLCBtX3NjYWxlWCwgbV9z
Y2FsZVk7Ci0gICAga2h0bWw6OlJlbmRlck9iamVjdCAqbV9tYXJrZXI7CisgICAgUmVuZGVyT2Jq
ZWN0KiBtX21hcmtlcjsKICAgICBib29sIG1fdXNlU3Ryb2tlV2lkdGg7CiB9OwogCi1RVGV4dFN0
cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IEtDYW52YXNSZXNvdXJjZSAm
cik7CitRVGV4dFN0cmVhbSAmb3BlcmF0b3I8PChRVGV4dFN0cmVhbSYsIGNvbnN0IEtDYW52YXNS
ZXNvdXJjZSYpOwogCi1LQ2FudmFzUmVzb3VyY2UgKmdldFJlc291cmNlQnlJZChLRE9NOjpEb2N1
bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcgJmlkKTsKLUtDYW52
YXNNYXJrZXIgKmdldE1hcmtlckJ5SWQoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29u
c3QgS0RPTTo6QXRvbWljU3RyaW5nICZpZCk7Ci1LQ2FudmFzQ2xpcHBlciAqZ2V0Q2xpcHBlckJ5
SWQoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5n
ICZpZCk7Ci1LQ2FudmFzTWFza2VyICpnZXRNYXNrZXJCeUlkKEtET006OkRvY3VtZW50SW1wbCAq
ZG9jdW1lbnQsIGNvbnN0IEtET006OkF0b21pY1N0cmluZyAmaWQpOwotS1JlbmRlcmluZ1BhaW50
U2VydmVyICpnZXRQYWludFNlcnZlckJ5SWQoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2N1bWVudCwg
Y29uc3QgS0RPTTo6QXRvbWljU3RyaW5nICZpZCk7CitLQ2FudmFzUmVzb3VyY2UqIGdldFJlc291
cmNlQnlJZChEb2N1bWVudEltcGwqLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKK0tDYW52YXNN
YXJrZXIqIGdldE1hcmtlckJ5SWQoRG9jdW1lbnRJbXBsKiwgY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCk7CitLQ2FudmFzQ2xpcHBlciogZ2V0Q2xpcHBlckJ5SWQoRG9jdW1lbnRJbXBsKiwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCk7CitLQ2FudmFzTWFza2VyKiBnZXRNYXNrZXJCeUlkKERvY3VtZW50
SW1wbCosIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpOworS1JlbmRlcmluZ1BhaW50U2VydmVyKiBn
ZXRQYWludFNlcnZlckJ5SWQoRG9jdW1lbnRJbXBsKiwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCk7
CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrY2FudmFzL0tDYW52YXND
b250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5jcHAJ
KHJldmlzaW9uIDEyNDY3KQorKysga2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsOSArMjIsMTEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNW
R19TVVBQT1JUCisjaW5jbHVkZSAiS0NhbnZhc0NvbnRhaW5lci5oIgorCisjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCiAjaW5j
bHVkZSAiS1JlbmRlcmluZ0RldmljZS5oIgotI2luY2x1ZGUgIktDYW52YXNDb250YWluZXIuaCIK
ICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogCiBjbGFzcyBLQ2FudmFzQ29udGFp
bmVyOjpQcml2YXRlCkBAIC0zNSw3ICszNyw3IEBACiAKICAgICBib29sIGRyYXdzQ29udGVudHMg
OiAxOwogICAgIGJvb2wgc2xpY2UgOiAxOwotICAgIFFNYXRyaXggbWF0cml4OworICAgIEFmZmlu
ZVRyYW5zZm9ybSBtYXRyaXg7CiB9OwogCiBLQ2FudmFzQ29udGFpbmVyOjpLQ2FudmFzQ29udGFp
bmVyKEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICpub2RlKQpAQCAtNTksMTIgKzYxLDEyIEBA
CiAgICAgZC0+ZHJhd3NDb250ZW50cyA9IGRyYXdzQ29udGVudHM7CiB9CiAKLVFNYXRyaXggS0Nh
bnZhc0NvbnRhaW5lcjo6bG9jYWxUcmFuc2Zvcm0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIEtD
YW52YXNDb250YWluZXI6OmxvY2FsVHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+
bWF0cml4OwogfQogCi12b2lkIEtDYW52YXNDb250YWluZXI6OnNldExvY2FsVHJhbnNmb3JtKGNv
bnN0IFFNYXRyaXggJm1hdHJpeCkKK3ZvaWQgS0NhbnZhc0NvbnRhaW5lcjo6c2V0TG9jYWxUcmFu
c2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBtYXRyaXgpCiB7CiAgICAgZC0+bWF0cml4ID0g
bWF0cml4OwogfQpAQCAtMTAwLDggKzEwMiw4IEBACiAgICAga2h0bWw6OlJlbmRlck9iamVjdCAq
Y3VycmVudCA9IGZpcnN0Q2hpbGQoKTsKICAgICBmb3IoOyBjdXJyZW50ICE9IDA7IGN1cnJlbnQg
PSBjdXJyZW50LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIEZsb2F0UmVjdCBjaGlsZEJCb3gg
PSBjdXJyZW50LT5yZWxhdGl2ZUJCb3goaW5jbHVkZVN0cm9rZSk7Ci0gICAgICAgIEZsb2F0UmVj
dCBtYXBwZWRCQm94ID0gY3VycmVudC0+bG9jYWxUcmFuc2Zvcm0oKS5tYXBSZWN0KGNoaWxkQkJv
eCk7Ci0gICAgICAgIHJlY3QgPSByZWN0LnVuaXRlKG1hcHBlZEJCb3gpOworICAgICAgICBGbG9h
dFJlY3QgbWFwcGVkQkJveCA9IGN1cnJlbnQtPmxvY2FsVHJhbnNmb3JtKCkubWFwKGNoaWxkQkJv
eCk7CisgICAgICAgIHJlY3QudW5pdGUobWFwcGVkQkJveCk7CiAgICAgfQogCiAgICAgcmV0dXJu
IHJlY3Q7CkBAIC0xMTcsOSArMTE5LDkgQEAKICAgICByZXR1cm4gZC0+c2xpY2U7CiB9CiAKLUtD
YW52YXNNYXRyaXggS0NhbnZhc0NvbnRhaW5lcjo6Z2V0QXNwZWN0UmF0aW8oY29uc3QgRmxvYXRS
ZWN0IGxvZ2ljYWwsIGNvbnN0IEZsb2F0UmVjdCBwaHlzaWNhbCkgY29uc3QKK0FmZmluZVRyYW5z
Zm9ybSBLQ2FudmFzQ29udGFpbmVyOjpnZXRBc3BlY3RSYXRpbyhjb25zdCBGbG9hdFJlY3QgbG9n
aWNhbCwgY29uc3QgRmxvYXRSZWN0IHBoeXNpY2FsKSBjb25zdAogewotICAgIEtDYW52YXNNYXRy
aXggdGVtcDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gdGVtcDsKIAogICAgIGZsb2F0IGxvZ2ljWCA9
IGxvZ2ljYWwueCgpOwogICAgIGZsb2F0IGxvZ2ljWSA9IGxvZ2ljYWwueSgpOwpJbmRleDogYnJp
ZGdlL21hYy9NYWNGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBicmlkZ2UvbWFjL01hY0ZyYW1lLm1t
CShyZXZpc2lvbiAxMjQ2NykKKysrIGJyaWRnZS9tYWMvTWFjRnJhbWUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTMwNDMsNyArMzA0Myw3IEBACiAKICAgICAvLyAxLiBUaGUgYmFja2dyb3VuZCBjb2xv
ciB1c2VkIHRvIGRyYXcgYmVoaW5kIHNlbGVjdGVkIGNvbnRlbnQgKGFjdGl2ZSB8IGluYWN0aXZl
IGNvbG9yKQogICAgIGlmIChkLT5tX3ZpZXcpCi0gICAgICAgIGQtPm1fdmlldy0+dXBkYXRlQ29u
dGVudHMoSW50UmVjdCh2aXNpYmxlU2VsZWN0aW9uUmVjdCgpKSk7CisgICAgICAgIGQtPm1fdmll
dy0+dXBkYXRlQ29udGVudHMoZW5jbG9zaW5nSW50UmVjdCh2aXNpYmxlU2VsZWN0aW9uUmVjdCgp
KSk7CiAKICAgICAvLyAyLiBDYXJldCBibGlua2luZyAoYmxpbmtzIHwgZG9lcyBub3QgYmxpbmsp
CiAgICAgaWYgKGZsYWcpCkBAIC0zMDY3LDEwICszMDY3LDkgQEAKICAgICAgICAgTlNWaWV3ICpk
b2N1bWVudFZpZXcgPSBkLT5tX3ZpZXcgPyBkLT5tX3ZpZXctPmdldERvY3VtZW50VmlldygpIDog
MDsKICAgICAgICAgaWYgKGRvY3VtZW50VmlldyAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAg
ICBkb2MtPnVwZGF0ZUxheW91dCgpOyAvLyBFbnN1cmUgbGF5b3V0IGlzIHVwIHRvIGRhdGUuCi0g
ICAgICAgICAgICBJbnRSZWN0IHZpc2libGVSZWN0KFtkb2N1bWVudFZpZXcgdmlzaWJsZVJlY3Rd
KTsKICAgICAgICAgICAgIFFQYWludGVyIHA7CiAgICAgICAgICAgICBwLnNldFVwZGF0aW5nQ29u
dHJvbFRpbnRzKHRydWUpOwotICAgICAgICAgICAgcGFpbnQoJnAsIHZpc2libGVSZWN0KTsKKyAg
ICAgICAgICAgIHBhaW50KCZwLCBlbmNsb3NpbmdJbnRSZWN0KFtkb2N1bWVudFZpZXcgdmlzaWJs
ZVJlY3RdKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zNDk5LDE2ICszNDk4LDggQEAKICAg
ICAgICAgaWYgKHJlZ2lvbi50eXBlID09IFN0eWxlRGFzaGJvYXJkUmVnaW9uOjpOb25lKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgTlNSZWN0IGNsaXA7Ci0g
ICAgICAgIGNsaXAub3JpZ2luLnggPSByZWdpb24uY2xpcC54KCk7Ci0gICAgICAgIGNsaXAub3Jp
Z2luLnkgPSByZWdpb24uY2xpcC55KCk7Ci0gICAgICAgIGNsaXAuc2l6ZS53aWR0aCA9IHJlZ2lv
bi5jbGlwLndpZHRoKCk7Ci0gICAgICAgIGNsaXAuc2l6ZS5oZWlnaHQgPSByZWdpb24uY2xpcC5o
ZWlnaHQoKTsKLSAgICAgICAgTlNSZWN0IHJlY3Q7Ci0gICAgICAgIHJlY3Qub3JpZ2luLnggPSBy
ZWdpb24uYm91bmRzLngoKTsKLSAgICAgICAgcmVjdC5vcmlnaW4ueSA9IHJlZ2lvbi5ib3VuZHMu
eSgpOwotICAgICAgICByZWN0LnNpemUud2lkdGggPSByZWdpb24uYm91bmRzLndpZHRoKCk7Ci0g
ICAgICAgIHJlY3Quc2l6ZS5oZWlnaHQgPSByZWdpb24uYm91bmRzLmhlaWdodCgpOworICAgICAg
ICBOU1JlY3QgY2xpcCA9IHJlZ2lvbi5jbGlwOworICAgICAgICBOU1JlY3QgcmVjdCA9IHJlZ2lv
bi5ib3VuZHM7CiAgICAgICAgIE5TU3RyaW5nICpsYWJlbCA9IHJlZ2lvbi5sYWJlbC5nZXROU1N0
cmluZygpOwogICAgICAgICBXZWJEYXNoYm9hcmRSZWdpb25UeXBlIHR5cGUgPSBXZWJEYXNoYm9h
cmRSZWdpb25UeXBlTm9uZTsKICAgICAgICAgaWYgKHJlZ2lvbi50eXBlID09IFN0eWxlRGFzaGJv
YXJkUmVnaW9uOjpDaXJjbGUpCkluZGV4OiBicmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBicmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5tbQkocmV2aXNp
b24gMTI0NjcpCisrKyBicmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtOTcxLDcgKzk3MSw3IEBACiAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdCB3
aXRoUGFpbnRlcjooUVBhaW50ZXIgKilwCiB7CiAgICAgW3NlbGYgX3NldHVwUm9vdEZvclByaW50
aW5nOllFU107Ci0gICAgbV9mcmFtZS0+cGFpbnQocCwgSW50UmVjdChyZWN0KSk7CisgICAgbV9m
cmFtZS0+cGFpbnQocCwgZW5jbG9zaW5nSW50UmVjdChyZWN0KSk7CiAgICAgW3NlbGYgX3NldHVw
Um9vdEZvclByaW50aW5nOk5PXTsKIH0KIApAQCAtMTUyOCwxNyArMTUyOCwxMyBAQAogCiAgICAg
aWYgKHN0YXJ0Q2FyZXRSZWN0LnkoKSA9PSBlbmRDYXJldFJlY3QueSgpKSB7CiAgICAgICAgIC8v
IHN0YXJ0IGFuZCBlbmQgYXJlIG9uIHRoZSBzYW1lIGxpbmUKLSAgICAgICAgcmV0dXJuIEludFJl
Y3QoTUlOKHN0YXJ0Q2FyZXRSZWN0LngoKSwgZW5kQ2FyZXRSZWN0LngoKSksIAotICAgICAgICAg
ICAgICAgICAgICAgc3RhcnRDYXJldFJlY3QueSgpLCAKLSAgICAgICAgICAgICAgICAgICAgIGFi
cyhlbmRDYXJldFJlY3QueCgpIC0gc3RhcnRDYXJldFJlY3QueCgpKSwKLSAgICAgICAgICAgICAg
ICAgICAgIE1BWChzdGFydENhcmV0UmVjdC5oZWlnaHQoKSwgZW5kQ2FyZXRSZWN0LmhlaWdodCgp
KSk7CisgICAgICAgIHJldHVybiBJbnRSZWN0KGtNaW4oc3RhcnRDYXJldFJlY3QueCgpLCBlbmRD
YXJldFJlY3QueCgpKSwgc3RhcnRDYXJldFJlY3QueSgpLCAKKyAgICAgICAgICAgIGFicyhlbmRD
YXJldFJlY3QueCgpIC0gc3RhcnRDYXJldFJlY3QueCgpKSwga01heChzdGFydENhcmV0UmVjdC5o
ZWlnaHQoKSwgZW5kQ2FyZXRSZWN0LmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAgLy8gc3RhcnQg
YW5kIGVuZCBhcmVuJ3Qgb24gdGhlIHNhbWUgbGluZSwgc28gZ28gZnJvbSBzdGFydCB0byB0aGUg
ZW5kIG9mIGl0cyBsaW5lCi0gICAgcmV0dXJuIEludFJlY3Qoc3RhcnRDYXJldFJlY3QueCgpLCAK
LSAgICAgICAgICAgICAgICAgc3RhcnRDYXJldFJlY3QueSgpLAotICAgICAgICAgICAgICAgICBz
dGFydENhcmV0UmVjdC53aWR0aCgpICsgZXh0cmFXaWR0aFRvRW5kT2ZMaW5lLAotICAgICAgICAg
ICAgICAgICBzdGFydENhcmV0UmVjdC5oZWlnaHQoKSk7CisgICAgcmV0dXJuIEludFJlY3Qoc3Rh
cnRDYXJldFJlY3QueCgpLCBzdGFydENhcmV0UmVjdC55KCksCisgICAgICAgIHN0YXJ0Q2FyZXRS
ZWN0LndpZHRoKCkgKyBleHRyYVdpZHRoVG9FbmRPZkxpbmUsIHN0YXJ0Q2FyZXRSZWN0LmhlaWdo
dCgpKTsKIH0KIAogLSAoTlNJbWFnZSAqKXNlbGVjdGlvbkltYWdlCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHRkVCbGVuZEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjEgKzIyLDIwIEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmds
aXN0Lmg+Ci0KLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KLQotI2luY2x1ZGUgPGtj
YW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KLSNp
bmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+Ci0KLSNpbmNsdWRlICJr
c3ZnLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlICJTVkdGRUJsZW5kRWxlbWVudEltcGwuaCIKKwogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBs
LmgiCiAjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZH
SGVscGVyLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJTdHls
ZS5oIgorI2luY2x1ZGUgImtzdmcuaCIKKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KKyNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9kZXZp
Y2UvS1JlbmRlcmluZ0RldmljZS5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgor
I2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmNwcAkocmV2aXNp
b24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjUgKzIyLDIyIEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotCi0j
aW5jbHVkZSA8a2NhbnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFz
TWF0cml4Lmg+CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCiAK
KyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5o
IgogI2luY2x1ZGUgIlNWR0FuZ2xlSW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIK
LSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdEltcGwuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiS1NWR1RpbWVTY2hlZHVs
ZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4
dGVuc2lvbnMuaCIKLQotI2luY2x1ZGUgPGtkZWJ1Zy5oPgotCisjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKKyNpbmNsdWRlICJTVkdTdHJpbmdMaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIK
KyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1ZGUgPGNtYXRoPgorI2lu
Y2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1
ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CkBAIC0xNTIsMTIgKzE0OSw5IEBACiAgICAgICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAgICAgaWYoIW1fZnJvbVRyYW5zZm9ybSkKLSAgICAgICAgICAgICAgICAg
ICAgbV9mcm9tVHJhbnNmb3JtID0gbmV3IFNWR1RyYW5zZm9ybUltcGwoKTsKLQotICAgICAgICAg
ICAgICAgIFNWR01hdHJpeEltcGwgKmJ5TWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCk7
Ci0gICAgICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqZnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5z
Zm9ybS0+bWF0cml4KCk7CisgICAgICAgICAgICAgICAgICAgIG1fZnJvbVRyYW5zZm9ybSA9IG5l
dyBTVkdUcmFuc2Zvcm1JbXBsOwogCi0gICAgICAgICAgICAgICAgYnlNYXRyaXgtPm11bHRpcGx5
KGZyb21NYXRyaXgpOworICAgICAgICAgICAgICAgIG1fdG9UcmFuc2Zvcm0tPnNldE1hdHJpeCht
X2Zyb21UcmFuc2Zvcm0tPm1hdHJpeCgpICogbV90b1RyYW5zZm9ybS0+bWF0cml4KCkpOwogCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODIsNyArMTc2LDcgQEAK
ICAgICBpZih0aW1lUGVyY2VudGFnZSA+PSAxLjApCiAgICAgICAgIHRpbWVQZXJjZW50YWdlID0g
MS4wOwogICAgIAotICAgIFFXTWF0cml4IHFUb01hdHJpeCwgcUZyb21NYXRyaXg7CisgICAgQWZm
aW5lVHJhbnNmb3JtIHFUb01hdHJpeCwgcUZyb21NYXRyaXg7CiAgICAgZG91YmxlIHVzZVRpbWVQ
ZXJjZW50YWdlID0gdGltZVBlcmNlbnRhZ2U7CiAKICAgICBpZihtX3ZhbHVlcykKQEAgLTIwNCw4
ICsxOTgsOCBAQAogICAgICAgICAgICAgICAgIGJvb2wgYXBwbHkgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICBpZihtX3RvVHJhbnNmb3JtICYmIG1fZnJvbVRyYW5zZm9ybSkKICAgICAgICAgICAg
ICAgICB7ICAgIAotICAgICAgICAgICAgICAgICAgICBxVG9NYXRyaXggPSBtX3RvVHJhbnNmb3Jt
LT5tYXRyaXgoKS0+cW1hdHJpeCgpOwotICAgICAgICAgICAgICAgICAgICBxRnJvbU1hdHJpeCA9
IG1fZnJvbVRyYW5zZm9ybS0+bWF0cml4KCktPnFtYXRyaXgoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcVRvTWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCk7CisgICAgICAgICAgICAgICAg
ICAgIHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKTsKICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGFwcGx5ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgdXNlVGltZVBlcmNlbnRhZ2UgPSAxLjA7CkBAIC0yMjcsMzggKzIyMSwzMyBAQAog
ICAgICAgICAgICAgdXNlVGltZVBlcmNlbnRhZ2UgPSBjYWxjdWxhdGVSZWxhdGl2ZVRpbWVQZXJj
ZW50YWdlKHRpbWVQZXJjZW50YWdlLCBtX2N1cnJlbnRJdGVtKTsKICAgICB9CiAKLSAgICBpZiht
X3RvVHJhbnNmb3JtICYmIG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpICYmIHFUb01hdHJpeC5pc0lk
ZW50aXR5KCkpCi0gICAgICAgIHFUb01hdHJpeCA9IG1fdG9UcmFuc2Zvcm0tPm1hdHJpeCgpLT5x
bWF0cml4KCk7CisgICAgaWYgKG1fdG9UcmFuc2Zvcm0gJiYgcVRvTWF0cml4LmlzSWRlbnRpdHko
KSkKKyAgICAgICAgcVRvTWF0cml4ID0gbV90b1RyYW5zZm9ybS0+bWF0cml4KCk7CiAKLSAgICBp
ZihtX2Zyb21UcmFuc2Zvcm0gJiYgbV9mcm9tVHJhbnNmb3JtLT5tYXRyaXgoKSAmJiBxRnJvbU1h
dHJpeC5pc0lkZW50aXR5KCkpCi0gICAgICAgIHFGcm9tTWF0cml4ID0gbV9mcm9tVHJhbnNmb3Jt
LT5tYXRyaXgoKS0+cW1hdHJpeCgpOworICAgIGlmIChtX2Zyb21UcmFuc2Zvcm0gJiYgcUZyb21N
YXRyaXguaXNJZGVudGl0eSgpKQorICAgICAgICBxRnJvbU1hdHJpeCA9IG1fZnJvbVRyYW5zZm9y
bS0+bWF0cml4KCk7CiAKLSAgICBpZighbV90cmFuc2Zvcm1NYXRyaXgpCi0gICAgICAgIG1fdHJh
bnNmb3JtTWF0cml4ID0gbmV3IFNWR01hdHJpeEltcGwoKTsKLSAgICBlbHNlCi0gICAgewotICAg
ICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+cmVzZXQoKTsKKyAgICBtX3RyYW5zZm9ybU1hdHJpeC5y
ZXNldCgpOwogCi0gICAgICAgIGlmKGlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRpb25zKCkgIT0g
MC4wICYmIG1fbGFzdE1hdHJpeCkKLSAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LT5tdWx0
aXBseShtX2xhc3RNYXRyaXguZ2V0KCkpOwotICAgIH0KKyAgICBpZiAoaXNBY2N1bXVsYXRlZCgp
ICYmIHJlcGV0aXRpb25zKCkgIT0gMC4wKQorICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeCA9IG1f
bGFzdE1hdHJpeCAqIG1fdHJhbnNmb3JtTWF0cml4OwogICAgIAogICAgIHN3aXRjaChtX3R5cGUp
CiAgICAgewogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOgogICAgICAgICB7
Ci0gICAgICAgICAgICBkb3VibGUgZHggPSAoKHFUb01hdHJpeC5keCgpIC0gcUZyb21NYXRyaXgu
ZHgoKSkgKiB1c2VUaW1lUGVyY2VudGFnZSkgKyBxRnJvbU1hdHJpeC5keCgpOwotICAgICAgICAg
ICAgZG91YmxlIGR5ID0gKChxVG9NYXRyaXguZHkoKSAtIHFGcm9tTWF0cml4LmR5KCkpICogdXNl
VGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXguZHkoKTsKKyAgICAgICAgICAgIGRvdWJsZSBk
eCA9ICgocVRvTWF0cml4LmUoKSAtIHFGcm9tTWF0cml4LmUoKSkgKiB1c2VUaW1lUGVyY2VudGFn
ZSkgKyBxRnJvbU1hdHJpeC5lKCk7CisgICAgICAgICAgICBkb3VibGUgZHkgPSAoKHFUb01hdHJp
eC5mKCkgLSBxRnJvbU1hdHJpeC5mKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRy
aXguZigpOwogCi0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+dHJhbnNsYXRlKGR4LCBk
eSk7CisgICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC50cmFuc2xhdGUoZHgsIGR5KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9T
Q0FMRToKICAgICAgICAgewotICAgICAgICAgICAgZG91YmxlIHN4ID0gKChxVG9NYXRyaXgubTEx
KCkgLSBxRnJvbU1hdHJpeC5tMTEoKSkgKiB1c2VUaW1lUGVyY2VudGFnZSkgKyBxRnJvbU1hdHJp
eC5tMTEoKTsKLSAgICAgICAgICAgIGRvdWJsZSBzeSA9ICgocVRvTWF0cml4Lm0yMigpIC0gcUZy
b21NYXRyaXgubTIyKCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXgubTIyKCk7
CisgICAgICAgICAgICBkb3VibGUgc3ggPSAoKHFUb01hdHJpeC5hKCkgLSBxRnJvbU1hdHJpeC5h
KCkpICogdXNlVGltZVBlcmNlbnRhZ2UpICsgcUZyb21NYXRyaXguYSgpOworICAgICAgICAgICAg
ZG91YmxlIHN5ID0gKChxVG9NYXRyaXguZCgpIC0gcUZyb21NYXRyaXguZCgpKSAqIHVzZVRpbWVQ
ZXJjZW50YWdlKSArIHFGcm9tTWF0cml4LmQoKTsKIAotICAgICAgICAgICAgbV90cmFuc2Zvcm1N
YXRyaXgtPnNjYWxlTm9uVW5pZm9ybShzeCwgc3kpOworICAgICAgICAgICAgbV90cmFuc2Zvcm1N
YXRyaXguc2NhbGUoc3gsIHN5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9ST1RBVEU6CkBAIC0yODUsMjUgKzI3NCwyMSBAQAogICAg
ICAgICAgICAgZG91YmxlIGN4ID0gKHRvQ3ggLSBmcm9tQ3gpICogdXNlVGltZVBlcmNlbnRhZ2Ug
KyBmcm9tQ3g7CiAgICAgICAgICAgICBkb3VibGUgY3kgPSAodG9DeSAtIGZyb21DeSkgKiB1c2VU
aW1lUGVyY2VudGFnZSArIGZyb21DeTsKIAotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgt
PnRyYW5zbGF0ZShjeCwgY3kpOwotICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgtPnJvdGF0
ZShhbmdsZSk7Ci0gICAgICAgICAgICBtX3RyYW5zZm9ybU1hdHJpeC0+dHJhbnNsYXRlKC1jeCwg
LWN5KTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnRyYW5zbGF0ZShjeCwgY3kpOwor
ICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXgucm90YXRlKHJhZGlhbnMoYW5nbGUpKTsKKyAg
ICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnRyYW5zbGF0ZSgtY3gsIC1jeSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fU0tFV1g6
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBzeCA9IChTVkdBbmdsZUltcGw6OnRvZGVn
KGF0YW4ocVRvTWF0cml4Lm0yMSgpKSAtIGF0YW4ocUZyb21NYXRyaXgubTIxKCkpKSAqCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgdXNlVGltZVBlcmNlbnRhZ2UpICsgU1ZHQW5nbGVJbXBsOjp0
b2RlZyhhdGFuKHFGcm9tTWF0cml4Lm0yMSgpKSk7Ci0KLSAgICAgICAgICAgIG1fdHJhbnNmb3Jt
TWF0cml4LT5za2V3WChzeCk7CisgICAgICAgICAgICBkb3VibGUgc3ggPSAoYXRhbihxVG9NYXRy
aXguYygpKSAtIGF0YW4ocUZyb21NYXRyaXguYygpKSkgKiB1c2VUaW1lUGVyY2VudGFnZSArIGF0
YW4ocUZyb21NYXRyaXguYygpKTsKKyAgICAgICAgICAgIG1fdHJhbnNmb3JtTWF0cml4LnNrZXdY
KHN4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU1ZHX1RS
QU5TRk9STV9TS0VXWToKICAgICAgICAgewotICAgICAgICAgICAgZG91YmxlIHN5ID0gKFNWR0Fu
Z2xlSW1wbDo6dG9kZWcoYXRhbihxVG9NYXRyaXgubTEyKCkpIC0gYXRhbihxRnJvbU1hdHJpeC5t
MTIoKSkpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICB1c2VUaW1lUGVyY2VudGFnZSkgKyBT
VkdBbmdsZUltcGw6OnRvZGVnKGF0YW4ocUZyb21NYXRyaXgubTEyKCkpKTsKLQotICAgICAgICAg
ICAgbV90cmFuc2Zvcm1NYXRyaXgtPnNrZXdZKHN5KTsKKyAgICAgICAgICAgIGRvdWJsZSBzeSA9
IChhdGFuKHFUb01hdHJpeC5iKCkpIC0gYXRhbihxRnJvbU1hdHJpeC5iKCkpKSAqIHVzZVRpbWVQ
ZXJjZW50YWdlICsgYXRhbihxRnJvbU1hdHJpeC5iKCkpOworICAgICAgICAgICAgbV90cmFuc2Zv
cm1NYXRyaXguc2tld1koc3kpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgZGVmYXVsdDoKQEAgLTMxMywxNCArMjk4LDEwIEBACiAgICAgLy8gRW5kIGNvbmRpdGlvbi4K
ICAgICBpZih0aW1lUGVyY2VudGFnZSA9PSAxLjApCiAgICAgewotICAgICAgICBpZigobV9yZXBl
YXRDb3VudCA+IDAgJiYgbV9yZXBlYXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5k
ZWZpbml0ZShtX3JlcGVhdENvdW50KSkKKyAgICAgICAgaWYoKG1fcmVwZWF0Q291bnQgPiAwICYm
IG1fcmVwZXRpdGlvbnMgPCBtX3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVw
ZWF0Q291bnQpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX2xhc3RNYXRyaXggPSBuZXcgU1ZH
TWF0cml4SW1wbCgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZihtX3RyYW5zZm9ybU1h
dHJpeCkKLSAgICAgICAgICAgICAgICBtX2xhc3RNYXRyaXgtPmNvcHkobV90cmFuc2Zvcm1NYXRy
aXguZ2V0KCkpOwotCi0gICAgICAgICAgICBtX3JlcGVhdGlvbnMrKzsKKyAgICAgICAgICAgIG1f
bGFzdE1hdHJpeCA9IG1fdHJhbnNmb3JtTWF0cml4OworICAgICAgICAgICAgbV9yZXBldGl0aW9u
cysrOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzNiwxMyArMzE3LDcg
QEAKICAgICAgICAgbV9pbml0aWFsVHJhbnNmb3JtID0gMDsKIAogICAgICAgICBpZighaXNGcm96
ZW4oKSkKLSAgICAgICAgewotICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqaW5pdGlhbCA9IGlu
aXRpYWxNYXRyaXgoKTsKLSAgICAgICAgICAgIGlmKGluaXRpYWwpCi0gICAgICAgICAgICAgICAg
bV90cmFuc2Zvcm1NYXRyaXggPSBpbml0aWFsOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIG1fdHJhbnNmb3JtTWF0cml4ID0gbmV3IFNWR01hdHJpeEltcGwoKTsKLSAgICAgICAg
fQorICAgICAgICAgICAgbV90cmFuc2Zvcm1NYXRyaXggPSBpbml0aWFsTWF0cml4KCk7CiAgICAg
fQogfQogCkBAIC00MDcsNyArMzgyLDcgQEAKICAgICAgICAgICAgICAgICBhbmdsZSA9IHBhcnNl
LnRvRG91YmxlKCk7CiAKICAgICAgICAgICAgIC8vIE9rIG5vdyBoZXJlJ3MgYSBoYWNrIHRvIG1h
a2UgaXQgcG9zc2libGUgdG8gY2FsY3VsYXRlIGN4L2N5IHZhbHVlcywgaWYgYW5nbGUgPSAwIAot
ICAgICAgICAgICAgLy8gb3IgYW5nbGU9MzYwIC0+IGZvciBhbmdsZT0wIG91ciBtYXRyaXggaXMg
bTExOiAxIG0xMjogMCBtMjE6IDAgbTIyOiAxIGR4OiAwIGR5OiAwCisgICAgICAgICAgICAvLyBv
ciBhbmdsZT0zNjAgLT4gZm9yIGFuZ2xlPTAgb3VyIG1hdHJpeCBpcyBhOiAxIGI6IDAgYzogMCBk
OiAxIGR4OiAwIGR5OiAwCiAgICAgICAgICAgICAvLyBBcyB5b3UgY2FuIHNlZSB0aGVyZSBpcyBu
byB3YXkgdG8gcmV0cmlldmUgdGhlIGN4L2N5IHZhbHVlcyBmb3IgdGhlc2UgYW5nbGVzLgogICAg
ICAgICAgICAgLy8gLT4gc2V0ICdtX3JvdGF0ZVNwZWNpYWxDYXNlJyB0byB0cnVlLCBhbmQgc2F2
ZSBhbmdsZSA9IDEvMzU5IC0+IHRoaXMgd2F5IHdlIGNhbiBjYWxjdWxhdGUKICAgICAgICAgICAg
IC8vICAgIHRoZSBjeC9jeSB2YWx1ZXMsIHdoaWxlIGtlZXBpbmcgdGhpcyB1YmVyLW9wdGltaXpl
ZCB3YXkgb2YgaGFuZGxpbmcgPGFuaW1hdGVUcmFuc2Zvcm0+IQpAQCAtNDQ2LDEzICs0MjEsMTIg
QEAKICAgICByZXR1cm4gcGFyc2VkVHJhbnNmb3JtOwogfQogCi12b2lkIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50SW1wbDo6Y2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFXTWF0
cml4ICZtYXRyaXgsIGRvdWJsZSAmYW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNvbnN0
Cit2b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6Y2FsY3VsYXRlUm90YXRpb25G
cm9tTWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4LCBkb3VibGUmIGFuZ2xlLCBk
b3VibGUmIGN4LCBkb3VibGUmIGN5KSBjb25zdAogewotICAgIGRvdWJsZSBjb3NhID0gbWF0cml4
Lm0xMSgpOwotICAgIGRvdWJsZSBzaW5hID0gLW1hdHJpeC5tMjEoKTsKKyAgICBkb3VibGUgY29z
YSA9IG1hdHJpeC5hKCk7CisgICAgZG91YmxlIHNpbmEgPSAtbWF0cml4LmMoKTsKIAotICAgIGlm
KGNvc2EgIT0gMS4wKQotICAgIHsKKyAgICBpZiAoY29zYSAhPSAxLjApIHsKICAgICAgICAgLy8g
Q2FsY3VsYXRlIHRoZSBhbmdsZSB2aWEgbWFnaWMgOykKICAgICAgICAgZG91YmxlIHRlbXAgPSBT
VkdBbmdsZUltcGw6OnRvZGVnKGFzaW4oc2luYSkpOwogICAgICAgICBhbmdsZSA9IFNWR0FuZ2xl
SW1wbDo6dG9kZWcoYWNvcyhjb3NhKSk7CkBAIC00NjEsOCArNDM1LDggQEAKICAgICAgICAgCiAg
ICAgICAgIGRvdWJsZSByZXMgPSAoMSAtIGNvc2EpICsgKChzaW5hICogc2luYSkgLyAoMSAtIGNv
c2EpKTsKICAgICAgICAgCi0gICAgICAgIGN4ID0gKG1hdHJpeC5keCgpIC0gKChzaW5hICogbWF0
cml4LmR5KCkpIC8gKDEgLSBjb3NhKSkpIC8gcmVzOwotICAgICAgICBjeSA9IChtYXRyaXguZHko
KSArICgoc2luYSAqIG1hdHJpeC5keCgpKSAvICgxIC0gY29zYSkpKSAvIHJlczsKKyAgICAgICAg
Y3ggPSAobWF0cml4LmUoKSAtICgoc2luYSAqIG1hdHJpeC5mKCkpIC8gKDEgLSBjb3NhKSkpIC8g
cmVzOworICAgICAgICBjeSA9IChtYXRyaXguZigpICsgKChzaW5hICogbWF0cml4LmUoKSkgLyAo
MSAtIGNvc2EpKSkgLyByZXM7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MiwyOCAr
NDQ2LDIwIEBACiAgICAgYW5nbGUgPSAwLjA7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6aW5pdGlhbE1hdHJpeCgpIGNvbnN0CitBZmZpbmVUcmFu
c2Zvcm0gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsOjppbml0aWFsTWF0cml4KCkgY29u
c3QKIHsKICAgICBpZiAoIXRhcmdldEVsZW1lbnQoKS0+aXNTdHlsZWRUcmFuc2Zvcm1hYmxlKCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiAg
ICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsICp0cmFuc2Zvcm0gPSBzdGF0aWNf
Y2FzdDxTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwgKj4odGFyZ2V0RWxlbWVudCgp
KTsKICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqdHJhbnNmb3JtTGlzdCA9ICh0cmFuc2Zvcm0g
PyB0cmFuc2Zvcm0tPnRyYW5zZm9ybSgpLT5iYXNlVmFsKCkgOiAwKTsKICAgICBpZighdHJhbnNm
b3JtTGlzdCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBBZmZpbmVUcmFuc2Zv
cm0oKTsKICAgICAKICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gcmVzdWx0ID0gdHJhbnNm
b3JtTGlzdC0+Y29uY2F0ZW5hdGUoKTsKICAgICBpZighcmVzdWx0KQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIFNWR01hdHJpeEltcGwgKnJldCA9IHJlc3VsdC0+bWF0cml4KCk7Ci0gICAgcmV0
LT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogCi0gICAgcmV0dXJu
IHJldDsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBs
Ojp0cmFuc2Zvcm1NYXRyaXgoKSBjb25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9ybU1hdHJp
eC5nZXQoKTsKKyAgICByZXR1cm4gcmVzdWx0LT5tYXRyaXgoKTsKIH0KIAogLy8gdmltOnRzPTQ6
bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAko
cmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDI1ICsyMiwyNSBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnRJbXBsLmgiCisKICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KIAogI2luY2x1ZGUg
ImtzdmcuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgot
I2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFN0cmluZ0ltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0xpbmVhckdy
YWRpZW50RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJ
bXBsLmgiCiAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXNNYXRyaXguaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaD4K
ICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KKyNpbmNsdWRl
ICJBZmZpbmVUcmFuc2Zvcm0uaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKQEAgLTExMSw5
ICsxMTEsOSBAQAogICAgIGZsb2F0IF94MiA9IHgyKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgX3ky
ID0geTIoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogCiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVy
TGluZWFyR3JhZGllbnQgKmdyYWQgPSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJM
aW5lYXJHcmFkaWVudCAqPihfZ3JhZCk7Ci0gICAgS0NhbnZhc01hdHJpeCBtYXQ7CisgICAgQWZm
aW5lVHJhbnNmb3JtIG1hdDsKICAgICBpZihncmFkaWVudFRyYW5zZm9ybSgpLT5iYXNlVmFsKCkt
Pm51bWJlck9mSXRlbXMoKSA+IDApCi0gICAgICAgIG1hdCA9IEtDYW52YXNNYXRyaXgoZ3JhZGll
bnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgpLT5tYXRyaXgoKS0+cW1hdHJp
eCgpKTsKKyAgICAgICAgbWF0ID0gZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25z
b2xpZGF0ZSgpLT5tYXRyaXgoKTsKIAogICAgIFFTdHJpbmcgcmVmID0gS0RPTTo6RE9NU3RyaW5n
KGhyZWYoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCk7CiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVy
ICpwc2VydmVyID0gZ2V0UGFpbnRTZXJ2ZXJCeUlkKGdldERvY3VtZW50KCksIHJlZi5taWQoMSkp
OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2
ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGVJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3
IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNiwz
NCArMjcsMjIgQEAKIAogI2luY2x1ZGUgIlNWR0xvY2F0YWJsZUltcGwuaCIKIAotY2xhc3MgUU1h
dHJpeDsKLQotbmFtZXNwYWNlIEtET00gewotICAgIGNsYXNzIE5vZGVJbXBsOworbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEF0b21pY1N0cmluZzsKLSAgICBjbGFzcyBBdHRyaWJ1dGVJ
bXBsOwotfTsKLQotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwog
ICAgIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3RJbXBsOwogICAgIGNsYXNzIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdEltcGw7Ci0gICAgY2xhc3MgU1ZHVHJhbnNmb3JtYWJsZUltcGwgOiBwdWJsaWMg
U1ZHTG9jYXRhYmxlSW1wbAotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RyYW5zZm9y
bWFibGVJbXBsKCk7Ci0gICAgICAgIHZpcnR1YWwgflNWR1RyYW5zZm9ybWFibGVJbXBsKCk7CiAK
KyAgICBjbGFzcyBTVkdUcmFuc2Zvcm1hYmxlSW1wbCA6IHB1YmxpYyBTVkdMb2NhdGFibGVJbXBs
IHsKKyAgICBwdWJsaWM6CiAgICAgICAgIC8vICdTVkdUcmFuc2Zvcm1hYmxlJyBmdW5jdGlvbnMK
ICAgICAgICAgdmlydHVhbCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsICp0cmFuc2Zvcm0o
KSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqbG9jYWxNYXRyaXgo
KSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4
KCkgY29uc3QgPSAwOwogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvY2Fs
VHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3RJ
bXBsKikgPSAwOwogICAgICAgICAKLSAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VUcmFuc2Zvcm1B
dHRyaWJ1dGUoU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxpc3QsIGNvbnN0IEtET006OkF0b21pY1N0
cmluZyYgdHJhbnNmb3JtKTsKLSAgICB9OworICAgICAgICBzdGF0aWMgdm9pZCBwYXJzZVRyYW5z
Zm9ybUF0dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0SW1wbCosIGNvbnN0IEF0b21pY1N0cmluZyYg
dHJhbnNmb3JtKTsKIH07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIv
c3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzks
NiBAQAogCiAjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgIktTVkdTZXR0aW5ncy5oIgotI2lu
Y2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysr
IGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSwyOSArMjUsMzEgQEAKICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KICNpbmNsdWRl
ICJEb2N1bWVudEltcGwuaCIKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1
ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVh
bkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5o
IgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVk
ZSAiU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwu
aCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3Jt
TGlzdEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgorI2luY2x1ZGUg
ImtzdmcuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXNNYXRyaXguaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDb250YWluZXIuaD4K
ICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzSW1hZ2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNl
Lmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyUGF0dGVy
bi5oPgogCi0jaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVk
ZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgotI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIKLSNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0SW1wbC5oIgotI2luY2x1ZGUgIktDYW52YXNSZW5kZXJp
bmdTdHlsZS5oIgotI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50SW1wbC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1w
bC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0SW1wbC5oIgotCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogU1ZHUGF0dGVybkVsZW1l
bnRJbXBsOjpTVkdQYXR0ZXJuRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpIDogU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpLCBTVkdUZXN0c0lt
cGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1w
bCgpLCBTVkdGaXRUb1ZpZXdCb3hJbXBsKCksIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyKCkKQEAg
LTE2Niw3ICsxNjgsNyBAQAogICAgIG5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCi12b2lk
IFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6ZmlsbEF0dHJpYnV0ZXNGcm9tUmVmZXJlbmNlUGF0dGVy
bihjb25zdCBTVkdQYXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgS0NhbnZhc01hdHJpeCAmcGF0
dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3QKK3ZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpm
aWxsQXR0cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50
SW1wbCAqdGFyZ2V0LCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXgpIGNv
bnN0CiB7CiAgICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFs
KCkpLnFzdHJpbmcoKTsKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIgKnJlZlNlcnZlciA9IGdl
dFBhaW50U2VydmVyQnlJZChnZXREb2N1bWVudCgpLCByZWYubWlkKDEpKTsKQEAgLTE5OCw3ICsy
MDAsNyBAQAogICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4ID0gcmVmUGF0dGVybi0+cGF0
dGVyblRyYW5zZm9ybSgpOwogfQogCi12b2lkIFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6ZHJhd1Bh
dHRlcm5Db250ZW50SW50b1RpbGUoY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsICp0YXJnZXQs
IGNvbnN0IEludFNpemUgJm5ld1NpemUsIEtDYW52YXNNYXRyaXggcGF0dGVyblRyYW5zZm9ybU1h
dHJpeCkgY29uc3QKK3ZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpkcmF3UGF0dGVybkNvbnRl
bnRJbnRvVGlsZShjb25zdCBTVkdQYXR0ZXJuRWxlbWVudEltcGwgKnRhcmdldCwgY29uc3QgSW50
U2l6ZSAmbmV3U2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtTWF0
cml4KSBjb25zdAogewogICAgIEtSZW5kZXJpbmdEZXZpY2UgKmRldmljZSA9IFFQYWludGVyOjpy
ZW5kZXJpbmdEZXZpY2UoKTsKICAgICAKQEAgLTI3Niw3ICsyNzgsNyBAQAogICAgICAgICBpZihz
YXZlZENvbnRleHQpCiAgICAgICAgICAgICBlLT5wdXNoQXR0cmlidXRlQ29udGV4dChzYXZlZENv
bnRleHQpOwogCi0gICAgICAgIGl0ZW0tPnNldExvY2FsVHJhbnNmb3JtKHNhdmVkTWF0cml4LnFt
YXRyaXgoKSk7CisgICAgICAgIGl0ZW0tPnNldExvY2FsVHJhbnNmb3JtKHNhdmVkTWF0cml4Lm1h
dHJpeCgpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMzM5LDkgKzM0MSw5IEBACiAgICAgdW5zaWdu
ZWQgc2hvcnQgc2F2ZWRQYXR0ZXJuVW5pdHMgPSBwYXR0ZXJuVW5pdHMoKS0+YmFzZVZhbCgpOwog
ICAgIHVuc2lnbmVkIHNob3J0IHNhdmVkUGF0dGVybkNvbnRlbnRVbml0cyA9IHBhdHRlcm5Db250
ZW50VW5pdHMoKS0+YmFzZVZhbCgpOwogCi0gICAgS0NhbnZhc01hdHJpeCBwYXR0ZXJuVHJhbnNm
b3JtTWF0cml4OworICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4Owog
ICAgIGlmKHBhdHRlcm5UcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5udW1iZXJPZkl0ZW1zKCkgPiAw
KQotICAgICAgICBwYXR0ZXJuVHJhbnNmb3JtTWF0cml4ID0gS0NhbnZhc01hdHJpeChwYXR0ZXJu
VHJhbnNmb3JtKCktPmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCktPnFtYXRyaXgo
KSk7CisgICAgICAgIHBhdHRlcm5UcmFuc2Zvcm1NYXRyaXggPSBwYXR0ZXJuVHJhbnNmb3JtKCkt
PmJhc2VWYWwoKS0+Y29uc29saWRhdGUoKS0+bWF0cml4KCk7CiAKICAgICBmaWxsQXR0cmlidXRl
c0Zyb21SZWZlcmVuY2VQYXR0ZXJuKHRhcmdldCwgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCk7CiAg
ICAgCkBAIC0zNzIsMTggKzM3NCw5IEBACiAgICAgcmV0dXJuIG1fcGFpbnRTZXJ2ZXI7CiB9CiAK
LVNWR01hdHJpeEltcGwgKlNWR1BhdHRlcm5FbGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKLXsK
LSAgICBTVkdNYXRyaXhJbXBsICptYXQgPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHTWF0
cml4KCk7Ci0gICAgaWYobWF0KQorQWZmaW5lVHJhbnNmb3JtIFNWR1BhdHRlcm5FbGVtZW50SW1w
bDo6Z2V0Q1RNKCkgY29uc3QKICAgICB7Ci0gICAgICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB2
aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVl
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwotCi0gICAgICAgIG1hdC0+bXVsdGlw
bHkodmlld0JveC5nZXQoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1hdDsKKyAgICByZXR1cm4g
dmlld0JveFRvVmlld1RyYW5zZm9ybSh3aWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIGhlaWdo
dCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwogfQogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcv
U1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZH
RGVmc0VsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsOCBAQAogI2lm
IFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHRGVmc0VsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRl
ICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBT
VkdEZWZzRWxlbWVudEltcGw6OlNWR0RlZnNFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykgOiBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xh
bmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKQpJbmRleDog
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR1RleHRFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NW
R1RleHRFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDIwICs0MiwxMSBAQAog
ewogfQogCi1TVkdUZXh0RWxlbWVudEltcGw6On5TVkdUZXh0RWxlbWVudEltcGwoKQotewotfQot
CiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsICpTVkdUZXh0RWxlbWVudEltcGw6OnRyYW5z
Zm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGxhenlfY3JlYXRlPFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEltcGw+KG1fdHJhbnNmb3JtLCB0aGlzKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZH
VGV4dEVsZW1lbnRJbXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGxhenlf
Y3JlYXRlPFNWR01hdHJpeEltcGw+KG1fbG9jYWxNYXRyaXgpOwotfQotCiB2b2lkIFNWR1RleHRF
bGVtZW50SW1wbDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1w
bCAqYXR0cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp0cmFuc2Zvcm1B
dHRyKSB7CkBAIC03NSw3ICs2Niw3IEBACiAgICAgaWYobG9jYWxUcmFuc2Zvcm0pIHsKICAgICAg
ICAgbV9sb2NhbE1hdHJpeCA9IGxvY2FsVHJhbnNmb3JtLT5tYXRyaXgoKTsKICAgICAgICAgaWYg
KHJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3Jt
KG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgoKSk7CisgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRM
b2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0cml4KTsKICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNl
dE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtODUsOCArNzYsOCBAQAog
ewogICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjphdHRhY2goKTsKIAotICAgIGlmIChyZW5kZXJl
cigpICYmIG1fbG9jYWxNYXRyaXgpCi0gICAgICAgIHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNm
b3JtKG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgoKSk7CisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAg
ICAgIHJlbmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgpOwogfQogCiBT
VkdFbGVtZW50SW1wbCAqU1ZHVGV4dEVsZW1lbnRJbXBsOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KCkgY29uc3QKQEAgLTEwNCwxMiArOTUsMTcgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJs
ZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1RleHRFbGVtZW50
SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVu
dEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZUlt
cGw6OmdldFNjcmVlbkNUTSh0aGlzKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHVGV4dEVsZW1l
bnRJbXBsOjpnZXRDVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVtZW50SW1w
bDo6bG9jYWxNYXRyaXgoKSBjb25zdAoreworICAgIHJldHVybiBtX2xvY2FsTWF0cml4OworfQor
CitBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnRJbXBsOjpnZXRDVE0oKSBjb25zdAogewog
ICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7CiB9CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R01hdHJpeEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdNYXRyaXhJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjc3ICsyMiw4NiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxtYXRoLmg+Ci0KLSNpbmNsdWRl
ICJrc3ZnLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHQW5nbGVJbXBs
LmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogCi11c2luZyBuYW1lc3BhY2UgS1NWRzsK
LQotU1ZHTWF0cml4SW1wbDo6U1ZHTWF0cml4SW1wbCgpIDogU2hhcmVkPFNWR01hdHJpeEltcGw+
KCkKLXsKLX0KLQotU1ZHTWF0cml4SW1wbDo6U1ZHTWF0cml4SW1wbChRTWF0cml4IG1hdCkgOiBT
aGFyZWQ8U1ZHTWF0cml4SW1wbD4oKQotewotICAgIG1fbWF0ID0gbWF0OwotfQotCi1TVkdNYXRy
aXhJbXBsOjpTVkdNYXRyaXhJbXBsKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJs
ZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpIDogU2hhcmVkPFNWR01hdHJpeEltcGw+KCkKLXsKLSAg
ICBtX21hdC5zZXRNYXRyaXgoYSwgYiwgYywgZCwgZSwgZik7Ci19Ci0KLVNWR01hdHJpeEltcGw6
On5TVkdNYXRyaXhJbXBsKCkKLXsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRBKGRvdWJs
ZSBhKQotewotICAgIG1fbWF0LnNldE1hdHJpeChhLCBtX21hdC5tMTIoKSwgbV9tYXQubTIxKCks
IG1fbWF0Lm0yMigpLCBtX21hdC5keCgpLCBtX21hdC5keSgpKTsKLX0KLQotZG91YmxlIFNWR01h
dHJpeEltcGw6OmEoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdC5tMTEoKTsKLX0KLQotdm9p
ZCBTVkdNYXRyaXhJbXBsOjpzZXRCKGRvdWJsZSBiKQotewotICAgIG1fbWF0LnNldE1hdHJpeCht
X21hdC5tMTEoKSwgYiwgbV9tYXQubTIxKCksIG1fbWF0Lm0yMigpLCBtX21hdC5keCgpLCBtX21h
dC5keSgpKTsKLX0KLQotZG91YmxlIFNWR01hdHJpeEltcGw6OmIoKSBjb25zdAotewotICAgIHJl
dHVybiBtX21hdC5tMTIoKTsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRDKGRvdWJsZSBj
KQotewotICAgIG1fbWF0LnNldE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQubTEyKCksIGMsIG1f
bWF0Lm0yMigpLCBtX21hdC5keCgpLCBtX21hdC5keSgpKTsKLX0KLQotZG91YmxlIFNWR01hdHJp
eEltcGw6OmMoKSBjb25zdAotewotICAgIHJldHVybiBtX21hdC5tMjEoKTsKLX0KLQotdm9pZCBT
VkdNYXRyaXhJbXBsOjpzZXREKGRvdWJsZSBkKQotewotICAgIG1fbWF0LnNldE1hdHJpeChtX21h
dC5tMTEoKSwgbV9tYXQubTEyKCksIG1fbWF0Lm0yMSgpLCBkLCBtX21hdC5keCgpLCBtX21hdC5k
eSgpKTsKLX0KLQotZG91YmxlIFNWR01hdHJpeEltcGw6OmQoKSBjb25zdAotewotICAgIHJldHVy
biBtX21hdC5tMjIoKTsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRFKGRvdWJsZSBlKQot
ewotICAgIG1fbWF0LnNldE1hdHJpeChtX21hdC5tMTEoKSwgbV9tYXQubTEyKCksIG1fbWF0Lm0y
MSgpLCBtX21hdC5tMjIoKSwgZSwgbV9tYXQuZHkoKSk7Ci19Ci0KLWRvdWJsZSBTVkdNYXRyaXhJ
bXBsOjplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9tYXQuZHgoKTsKLX0KLQotdm9pZCBTVkdN
YXRyaXhJbXBsOjpzZXRGKGRvdWJsZSBmKQotewotICAgIG1fbWF0LnNldE1hdHJpeChtX21hdC5t
MTEoKSwgbV9tYXQubTEyKCksIG1fbWF0Lm0yMSgpLCBtX21hdC5tMjIoKSwgbV9tYXQuZHgoKSwg
Zik7Ci19Ci0KLWRvdWJsZSBTVkdNYXRyaXhJbXBsOjpmKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9tYXQuZHkoKTsKLX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpjb3B5KGNvbnN0IFNWR01hdHJp
eEltcGwgKm90aGVyKQotewotICAgIG1fbWF0LnNldE1hdHJpeChvdGhlci0+bV9tYXQubTExKCks
IG90aGVyLT5tX21hdC5tMTIoKSwgb3RoZXItPm1fbWF0Lm0yMSgpLCBvdGhlci0+bV9tYXQubTIy
KCksIG90aGVyLT5tX21hdC5keCgpLCBvdGhlci0+bV9tYXQuZHkoKSk7Ci19CituYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RNdWx0aXBseShj
b25zdCBTVkdNYXRyaXhJbXBsICpzZWNvbmRNYXRyaXgpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0
cml4SW1wbDo6aW52ZXJzZSgpIGNvbnN0CiB7Ci0gICAgUU1hdHJpeCB0ZW1wKHNlY29uZE1hdHJp
eC0+YSgpLCBzZWNvbmRNYXRyaXgtPmIoKSwgc2Vjb25kTWF0cml4LT5jKCksIHNlY29uZE1hdHJp
eC0+ZCgpLCBzZWNvbmRNYXRyaXgtPmUoKSwgc2Vjb25kTWF0cml4LT5mKCkpOwotICAgIG1fbWF0
ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9
IG1fbWF0cml4OworICAgIHJlc3VsdC5pbnZlcnQoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjppbnZlcnNlKCkKK0FmZmluZVRyYW5zZm9y
bSBTVkdNYXRyaXhJbXBsOjptdWx0aXBseShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHNlY29uZE1h
dHJpeCkgY29uc3QKIHsKLSAgICBtX21hdCA9IG1fbWF0LmludmVydCgpOwotICAgIHJldHVybiB0
aGlzOworICAgIHJldHVybiBtX21hdHJpeCAqIHNlY29uZE1hdHJpeDsKIH0KIAotU1ZHTWF0cml4
SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFRyYW5zbGF0ZShkb3VibGUgeCwgIGRvdWJsZSB5KQor
QWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OnRyYW5zbGF0ZShkb3VibGUgeCwgZG91Ymxl
IHkpIGNvbnN0CiB7Ci0gICAgLy8gQ291bGQgb3B0aW1pc2UgdGhlc2UuCi0gICAgUU1hdHJpeCB0
ZW1wOwotICAgIHRlbXAudHJhbnNsYXRlKHgsIHkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAg
cmV0dXJuIHRoaXM7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAg
IHJlc3VsdC50cmFuc2xhdGUoeCwgeSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU1ZHTWF0
cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFNjYWxlKGRvdWJsZSBzY2FsZUZhY3RvcikKK0Fm
ZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpzY2FsZShkb3VibGUgc2NhbGVGYWN0b3IpIGNv
bnN0CiB7Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAuc2NhbGUoc2NhbGVGYWN0b3IsIHNj
YWxlRmFjdG9yKTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOworICAgIEFm
ZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2NhbGUoc2NhbGVG
YWN0b3IsIHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1TVkdNYXRyaXhJ
bXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0U2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3Rv
clgsIGRvdWJsZSBzY2FsZUZhY3RvclkpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6
c2NhbGVOb25Vbmlmb3JtKGRvdWJsZSBzY2FsZUZhY3RvclgsIGRvdWJsZSBzY2FsZUZhY3Rvclkp
IGNvbnN0CiB7Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAuc2NhbGUoc2NhbGVGYWN0b3JY
LCBzY2FsZUZhY3RvclkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Cisg
ICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5zY2FsZShz
Y2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU1ZH
TWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFJvdGF0ZShkb3VibGUgYW5nbGUpCitBZmZp
bmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6cm90YXRlKGRvdWJsZSBhbmdsZSkgY29uc3QKIHsK
LSAgICBRTWF0cml4IHRlbXA7Ci0gICAgdGVtcC5yb3RhdGUoYW5nbGUpOwotICAgIG1fbWF0ICo9
IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3VsdCA9IG1f
bWF0cml4OworICAgIHJlc3VsdC5yb3RhdGUocmFkaWFucyhhbmdsZSkpOworICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6OnBvc3RSb3RhdGVGcm9t
VmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBs
Ojpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkgY29uc3QKIHsKLSAgICBRTWF0
cml4IHRlbXA7Ci0gICAgdGVtcC5yb3RhdGUoU1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuMih5LCB4
KSkpOwotICAgIG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7CisgICAgQWZmaW5lVHJh
bnNmb3JtIHJlc3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5yb3RhdGUoYXRhbjIoeSwgeCkp
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeEltcGw6
OnBvc3RGbGlwWCgpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHTWF0cml4SW1wbDo6ZmxpcFgoKSBjb25z
dAogewotICAgIFFNYXRyaXggdGVtcCgtMS4wRiwgMC4wRiwgMC4wRiwgMS4wRiwgMC4wRiwgMC4w
Rik7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICByZXR1cm4gdGhpczsKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7CisgICAgcmVzdWx0LnNjYWxlKC0xLCAxKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0Rmxp
cFkoKQorQWZmaW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OmZsaXBZKCkgY29uc3QKIHsKLSAg
ICBRTWF0cml4IHRlbXAoMS4wRiwgMC4wRiwgMC4wRiwgLTEuMEYsIDAuMEYsIDAuMEYpOwotICAg
IG1fbWF0ICo9IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7CisgICAgQWZmaW5lVHJhbnNmb3JtIHJl
c3VsdCA9IG1fbWF0cml4OworICAgIHJlc3VsdC5zY2FsZSgxLCAtMSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4SW1wbDo6cG9zdFNrZXdYKGRvdWJs
ZSBhbmdsZSkKK0FmZmluZVRyYW5zZm9ybSBTVkdNYXRyaXhJbXBsOjpza2V3WChkb3VibGUgYW5n
bGUpIGNvbnN0CiB7Ci0gICAgUU1hdHJpeCB0ZW1wOwotICAgIHRlbXAuc2hlYXIodGFuKFNWR0Fu
Z2xlSW1wbDo6dG9yYWQoYW5nbGUpKSwgMC4wRik7Ci0gICAgbV9tYXQgKj0gdGVtcDsKLSAgICBy
ZXR1cm4gdGhpczsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gcmVzdWx0ID0gbV9tYXRyaXg7CisgICAg
cmVzdWx0LnNrZXdYKHJhZGlhbnMoYW5nbGUpKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1T
VkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpwb3N0U2tld1koZG91YmxlIGFuZ2xlKQorQWZm
aW5lVHJhbnNmb3JtIFNWR01hdHJpeEltcGw6OnNrZXdZKGRvdWJsZSBhbmdsZSkgY29uc3QKIHsK
LSAgICBRTWF0cml4IHRlbXA7Ci0gICAgdGVtcC5zaGVhcigwLjBGLCB0YW4oU1ZHQW5nbGVJbXBs
Ojp0b3JhZChhbmdsZSkpKTsKLSAgICBtX21hdCAqPSB0ZW1wOwotICAgIHJldHVybiB0aGlzOwor
ICAgIEFmZmluZVRyYW5zZm9ybSByZXN1bHQgPSBtX21hdHJpeDsKKyAgICByZXN1bHQuc2tld1ko
cmFkaWFucyhhbmdsZSkpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVNWR01hdHJpeEltcGwg
KlNWR01hdHJpeEltcGw6Om11bHRpcGx5KGNvbnN0IFNWR01hdHJpeEltcGwgKnNlY29uZE1hdHJp
eCkKLXsKLSAgICBRTWF0cml4IHRlbXAoc2Vjb25kTWF0cml4LT5hKCksIHNlY29uZE1hdHJpeC0+
YigpLCBzZWNvbmRNYXRyaXgtPmMoKSwgc2Vjb25kTWF0cml4LT5kKCksIHNlY29uZE1hdHJpeC0+
ZSgpLCBzZWNvbmRNYXRyaXgtPmYoKSk7Ci0gICAgdGVtcCAqPSBtX21hdDsKLSAgICBtX21hdCA9
IHRlbXA7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwgKlNWR01hdHJpeElt
cGw6OnRyYW5zbGF0ZShkb3VibGUgeCwgIGRvdWJsZSB5KQotewotICAgIG1fbWF0LnRyYW5zbGF0
ZSh4LCB5KTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0cml4
SW1wbDo6c2NhbGUoZG91YmxlIHNjYWxlRmFjdG9yKQotewotICAgIG1fbWF0LnNjYWxlKHNjYWxl
RmFjdG9yLCBzY2FsZUZhY3Rvcik7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeElt
cGwgKlNWR01hdHJpeEltcGw6OnNjYWxlTm9uVW5pZm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBk
b3VibGUgc2NhbGVGYWN0b3JZKQotewotICAgIG1fbWF0LnNjYWxlKHNjYWxlRmFjdG9yWCwgc2Nh
bGVGYWN0b3JZKTsKLSAgICByZXR1cm4gdGhpczsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHTWF0
cml4SW1wbDo6cm90YXRlKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBtX21hdC5yb3RhdGUoYW5nbGUp
OwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpy
b3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSkKLXsKLSAgICBtX21hdC5yb3RhdGUo
U1ZHQW5nbGVJbXBsOjp0b2RlZyhhdGFuMih5LCB4KSkpOwotICAgIHJldHVybiB0aGlzOwotfQot
Ci1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpmbGlwWCgpCi17Ci0gICAgbV9tYXQuc2Nh
bGUoLTEuMGYsIDEuMGYpOwotICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpT
VkdNYXRyaXhJbXBsOjpmbGlwWSgpCi17Ci0gICAgbV9tYXQuc2NhbGUoMS4wZiwgLTEuMGYpOwot
ICAgIHJldHVybiB0aGlzOwotfQotCi1TVkdNYXRyaXhJbXBsICpTVkdNYXRyaXhJbXBsOjpza2V3
WChkb3VibGUgYW5nbGUpCi17Ci0gICAgbV9tYXQuc2hlYXIodGFuKFNWR0FuZ2xlSW1wbDo6dG9y
YWQoYW5nbGUpKSwgMC4wRik7Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNWR01hdHJpeEltcGwg
KlNWR01hdHJpeEltcGw6OnNrZXdZKGRvdWJsZSBhbmdsZSkKLXsKLSAgICBtX21hdC5zaGVhcigw
LjBGLCB0YW4oU1ZHQW5nbGVJbXBsOjp0b3JhZChhbmdsZSkpKTsKLSAgICByZXR1cm4gdGhpczsK
LX0KLQotdm9pZCBTVkdNYXRyaXhJbXBsOjpzZXRNYXRyaXgoUU1hdHJpeCBtYXQpCi17Ci0gICAg
bV9tYXQgPSBtYXQ7Ci19Ci0KLVFNYXRyaXggJlNWR01hdHJpeEltcGw6OnFtYXRyaXgoKQotewot
ICAgIHJldHVybiBtX21hdDsKLX0KLQotY29uc3QgUU1hdHJpeCAmU1ZHTWF0cml4SW1wbDo6cW1h
dHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWF0OwotfQotCi12b2lkIFNWR01hdHJpeElt
cGw6OnJlc2V0KCkKLXsKLSAgICBtX21hdC5yZXNldCgpOwotfQotCi12b2lkIFNWR01hdHJpeElt
cGw6OnJlbW92ZVNjYWxlKGRvdWJsZSAqeFNjYWxlLCBkb3VibGUgKnlTY2FsZSkKLXsKLSAgICBk
b3VibGUgc3ggPSBzcXJ0KGEoKSAqIGEoKSArIGIoKSAqIGIoKSk7Ci0gICAgZG91YmxlIHN5ID0g
c3FydChjKCkgKiBjKCkgKyBkKCkgKiBkKCkpOwotCi0gICAgLy8gUmVtb3ZlIHRoZSBzY2FsaW5n
IGZyb20gdGhlIG1hdHJpeC4KLSAgICBzZXRBKGEoKSAvIHN4KTsgc2V0QihiKCkgLyBzeCk7Ci0g
ICAgc2V0QyhjKCkgLyBzeSk7IHNldEQoZCgpIC8gc3kpOwotCi0gICAgKnhTY2FsZSA9IHN4Owot
ICAgICp5U2NhbGUgPSBzeTsKIH0KIAogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIFNWR19T
VVBQT1JUCi0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtz
dmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw0OCArMjIs
NDUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8
YXNzZXJ0Lmg+Ci0KLSNpbmNsdWRlIDxrdXJsLmg+Ci0jaW5jbHVkZSA8a2xvY2FsZS5oPgorI2lu
Y2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9IZWxwZXIuaD4KLSNp
bmNsdWRlICJTaGFyZWQuaCIKLSNpbmNsdWRlIDxrZG9tL05hbWVzcGFjZS5oPgotI2luY2x1ZGUg
PGtkb20vY29yZS9kb21hdHRycy5oPgotI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUxvYWRlci5o
PgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgotI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUNhY2hl
ZE9iamVjdC5oPgotI2luY2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKLSNpbmNsdWRlICJjc3Nf
c3R5bGVzaGVldGltcGwuaCIKLSNpbmNsdWRlIDxrZG9tL2V2ZW50cy9Nb3VzZUV2ZW50SW1wbC5o
PgotI2luY2x1ZGUgPGtkb20vZXZlbnRzL0tleWJvYXJkRXZlbnRJbXBsLmg+Ci0jaW5jbHVkZSA8
a2RvbS9jb3JlL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwuaD4KLQotI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgotCi0jaW5jbHVk
ZSAia3N2Zy5oIgotLy8jaW5jbHVkZSAiRWNtYS5oIgotI2luY2x1ZGUgPGtzdmcyL0tTVkdWaWV3
Lmg+Ci0jaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHls
ZS5oIgotI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJTVkdTVkdFbGVt
ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUg
IlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVt
ZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGUuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1Njcmlw
dEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50SW1wbC5oIgogI2luY2x1
ZGUgIlNWR1RpdGxlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIK
LSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50SW1wbC5oIgor
I2luY2x1ZGUgIlNoYXJlZC5oIgorI2luY2x1ZGUgImNzc19zdHlsZXNoZWV0aW1wbC5oIgorI2lu
Y2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8
YXNzZXJ0Lmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8a2NhbnZh
cy9SZW5kZXJQYXRoLmg+CisjaW5jbHVkZSA8a2RvbS9IZWxwZXIuaD4KKyNpbmNsdWRlIDxrZG9t
L05hbWVzcGFjZS5oPgorI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUNhY2hlZE9iamVjdC5oPgor
I2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUxvYWRlci5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL2RvbWF0dHJz
Lmg+CisjaW5jbHVkZSA8a2RvbS9ldmVudHMvS2V5Ym9hcmRFdmVudEltcGwuaD4KKyNpbmNsdWRl
IDxrZG9tL2V2ZW50cy9Nb3VzZUV2ZW50SW1wbC5oPgorI2luY2x1ZGUgPGtsb2NhbGUuaD4KKyNp
bmNsdWRlIDxrc3ZnMi9LU1ZHVmlldy5oPgorI2luY2x1ZGUgPGt1cmwuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIEtTVkc7CiB1c2luZyBuYW1lc3BhY2Uga2h0bWw7CiAKLVNWR0RvY3VtZW50SW1wbDo6
U1ZHRG9jdW1lbnRJbXBsKFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCAqaSwgS0RPTTo6S0RPTVZp
ZXcgKnZpZXcpIDogS0RPTTo6RG9jdW1lbnRJbXBsKGksIHZpZXcpLCBLRE9NOjpDYWNoZWRPYmpl
Y3RDbGllbnQoKQorU1ZHRG9jdW1lbnRJbXBsOjpTVkdEb2N1bWVudEltcGwoU1ZHRE9NSW1wbGVt
ZW50YXRpb25JbXBsICppLCBGcmFtZVZpZXcgKnZpZXcpIDogS0RPTTo6RG9jdW1lbnRJbXBsKGks
IHZpZXcpLCBLRE9NOjpDYWNoZWRPYmplY3RDbGllbnQoKQogewogICAgIG1fc2NyaXB0c0l0ID0g
MDsKICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWFya2VyRWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50SW1w
bC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAg
ICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTIyLDI3ICsyMywyOSBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL0RPTVN0cmluZy5oPgot
I2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotI2luY2x1ZGUgPGtkb20vY29yZS9OYW1l
ZEF0dHJNYXBJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRl
IDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29u
dGFpbmVyLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgor
I2luY2x1ZGUgIlNWR01hcmtlckVsZW1lbnRJbXBsLmgiCiAKLSNpbmNsdWRlICJrc3ZnLmgiCi0j
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJT
VkdBbmdsZUltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlSW1wbC5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorI2luY2x1
ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9JbXBsLmgiCisjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwuaCIKICNpbmNsdWRl
ICJTVkdNYXRyaXhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdT
VkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKLSNpbmNs
dWRlICJTVkdNYXJrZXJFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGVJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8
a2NhbnZhcy9LQ2FudmFzLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29udGFpbmVyLmg+
CisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgorI2luY2x1ZGUgPGtjYW52YXMv
ZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL0RPTVN0cmluZy5oPgor
I2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9OYW1l
ZEF0dHJNYXBJbXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkBAIC0xNzAsOCArMTcz
LDggQEAKICAgICBtX21hcmtlci0+c2V0VXNlU3Ryb2tlV2lkdGgobWFya2VyVW5pdHMoKS0+YmFz
ZVZhbCgpID09IFNWR19NQVJLRVJVTklUU19TVFJPS0VXSURUSCk7CiAgICAgZG91YmxlIHcgPSBt
YXJrZXJXaWR0aCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZG91YmxlIGggPSBtYXJrZXJI
ZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwotICAgIFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB2
aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3LCBoKTsKLSAgICBtX21hcmtlci0+c2V0
U2NhbGUodmlld0JveC0+cW1hdHJpeCgpLm0xMSgpLCB2aWV3Qm94LT5xbWF0cml4KCkubTIyKCkp
OworICAgIEFmZmluZVRyYW5zZm9ybSB2aWV3Qm94ID0gdmlld0JveFRvVmlld1RyYW5zZm9ybSh3
LCBoKTsKKyAgICBtX21hcmtlci0+c2V0U2NhbGUodmlld0JveC5hKCksIHZpZXdCb3guZCgpKTsK
ICAgICAKICAgICByZXR1cm4gbV9tYXJrZXI7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRml0VG9W
aWV3Qm94SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJbXBs
LmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveEltcGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDMxICsyNSwyNSBAQAogI2RlZmluZSBLU1ZHX1NWR0Zp
dFRvVmlld0JveEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLW5hbWVzcGFjZSBLRE9NCi17Ci0g
ICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLSAgICBjbGFzcyBET01TdHJpbmdJbXBsOwotfTsKKyNp
bmNsdWRlIDxreG1sY29yZS9SZWZQdHIuaD4KIAotbmFtZXNwYWNlIEtTVkcKLXsKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CisgICAgY2xhc3MgRE9NU3Ry
aW5nSW1wbDsKKyAgICBjbGFzcyBNYXBwZWRBdHRyaWJ1dGVJbXBsOwogICAgIGNsYXNzIFNWR0Fu
aW1hdGVkUmVjdEltcGw7CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
SW1wbDsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwotICAgIGNsYXNzIFNWR0ZpdFRvVmlld0Jv
eEltcGwKLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdGaXRUb1ZpZXdCb3hJbXBsKCk7
Ci0gICAgICAgIHZpcnR1YWwgflNWR0ZpdFRvVmlld0JveEltcGwoKTsKIAorICAgIGNsYXNzIFNW
R0ZpdFRvVmlld0JveEltcGwgeworICAgIHB1YmxpYzoKICAgICAgICAgLy8gJ1NWR0ZpdFRvVmll
d0JveEltcGwnIGZ1bmN0aW9ucwogICAgICAgICBTVkdBbmltYXRlZFJlY3RJbXBsICp2aWV3Qm94
KCkgY29uc3Q7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwgKnBy
ZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdDsKIAotICAgICAgICB2b2lkIHBhcnNlVmlld0JveChL
RE9NOjpET01TdHJpbmdJbXBsICpzdHIpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICp2aWV3Qm94
VG9WaWV3VHJhbnNmb3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCkgY29uc3Q7
CisgICAgICAgIHZvaWQgcGFyc2VWaWV3Qm94KERPTVN0cmluZ0ltcGwqKTsKKyAgICAgICAgQWZm
aW5lVHJhbnNmb3JtIHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oZmxvYXQgdmlld1dpZHRoLCBmbG9h
dCB2aWV3SGVpZ2h0KSBjb25zdDsKIAotICAgICAgICBib29sIHBhcnNlTWFwcGVkQXR0cmlidXRl
KEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAgICBib29sIHBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdEltcGw+IG1fdmlld0JveDsKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oCShyZXZpc2lvbiAxMjQ2NykKKysr
IGtzdmcyL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBa
aW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QK
IApAQCAtMjYsMTkgKzI3LDE0IEBACiAKICNpbmNsdWRlICJTaGFyZWQuaCIKIAotbmFtZXNwYWNl
IEtET00KLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07
CiAgICAgY2xhc3MgRE9NU3RyaW5nSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAg
Y2xhc3MgU1ZHTWF0cml4SW1wbDsKICAgICBjbGFzcyBTVkdTdHlsZWRFbGVtZW50SW1wbDsKLSAg
ICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbCA6IHB1YmxpYyBTaGFyZWQ8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb0ltcGw+Ci0gICAgeyAKKworICAgIGNsYXNzIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsIDogcHVibGljIFNoYXJlZDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbD4g
eyAKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsKGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0KTsKKyAgICAgICAgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGwoY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwoKTsKIAogICAgICAgICB2b2lkIHNldEFsaWdu
KHVuc2lnbmVkIHNob3J0KTsKQEAgLTQ3LDEzICs0MywxMiBAQAogICAgICAgICB2b2lkIHNldE1l
ZXRPclNsaWNlKHVuc2lnbmVkIHNob3J0KTsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbWVldE9y
U2xpY2UoKSBjb25zdDsKICAgICAgICAgCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmdldENUTShm
bG9hdCBsb2dpY1gsIGZsb2F0IGxvZ2ljWSwKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGdldENU
TShmbG9hdCBsb2dpY1gsIGZsb2F0IGxvZ2ljWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZsb2F0IGxvZ2ljV2lkdGgsIGZsb2F0IGxvZ2ljSGVpZ2h0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgcGh5c1gsIGZsb2F0IHBoeXNZLCBmbG9hdCBwaHlzV2lkdGgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBwaHlzSGVpZ2h0KTsKIAotICAg
ICAgICAvLyBIZWxwZXIKLSAgICAgICAgdm9pZCBwYXJzZVByZXNlcnZlQXNwZWN0UmF0aW8oS0RP
TTo6RE9NU3RyaW5nSW1wbCAqc3RyaW5nKTsKKyAgICAgICAgdm9pZCBwYXJzZVByZXNlcnZlQXNw
ZWN0UmF0aW8oRE9NU3RyaW5nSW1wbCopOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB1bnNp
Z25lZCBzaG9ydCBtX2FsaWduOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZpdFRvVmlld0JveEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJbXBsLmNwcAkocmV2
aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHRml0VG9WaWV3Qm94SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDI5ICsyMiwyMSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYg
U1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgotCi0jaW5jbHVkZSA8a2RvbS9j
b3JlL0F0dHJJbXBsLmg+Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KKyNp
bmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBsLmgiCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zv
cm0uaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgiCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisj
aW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIKICNpbmNsdWRlICJTVkdSZWN0
SW1wbC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRSZWN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKLSNpbmNs
dWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwu
aD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NU3RyaW5nSW1wbC5oPgorI2luY2x1ZGUgPHFzdHJp
bmdsaXN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdGaXRUb1ZpZXdCb3hJbXBs
OjpTVkdGaXRUb1ZpZXdCb3hJbXBsKCkKLXsKLX0KLQotU1ZHRml0VG9WaWV3Qm94SW1wbDo6flNW
R0ZpdFRvVmlld0JveEltcGwoKQotewotfQotCiBTVkdBbmltYXRlZFJlY3RJbXBsICpTVkdGaXRU
b1ZpZXdCb3hJbXBsOjp2aWV3Qm94KCkgY29uc3QKIHsKICAgICBpZighbV92aWV3Qm94KQpAQCAt
ODIsMTEgKzc0LDExIEBACiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiV0FSTklORzogTWFsZm9y
bWVkIHZpZXdib3ggc3RyaW5nOiAlcyAobDogJWkpIiwgdmlld2JveC5hc2NpaSgpLCB2aWV3Ym94
Lmxlbmd0aCgpKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHRml0VG9WaWV3Qm94SW1wbDo6dmll
d0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0IHZpZXdIZWlnaHQpIGNv
bnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHRml0VG9WaWV3Qm94SW1wbDo6dmlld0JveFRvVmlld1Ry
YW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0IHZpZXdIZWlnaHQpIGNvbnN0CiB7CiAgICAg
U1ZHUmVjdEltcGwgKnZpZXdCb3hSZWN0ID0gdmlld0JveCgpLT5iYXNlVmFsKCk7CiAgICAgaWYo
dmlld0JveFJlY3QtPndpZHRoKCkgPT0gMCB8fCB2aWV3Qm94UmVjdC0+aGVpZ2h0KCkgPT0gMCkK
LSAgICAgICAgcmV0dXJuIFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsKKyAg
ICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogCiAgICAgcmV0dXJuIHByZXNlcnZlQXNw
ZWN0UmF0aW8oKS0+YmFzZVZhbCgpLT5nZXRDVE0odmlld0JveFJlY3QtPngoKSwKICAgICAgICAg
ICAgIHZpZXdCb3hSZWN0LT55KCksIHZpZXdCb3hSZWN0LT53aWR0aCgpLCB2aWV3Qm94UmVjdC0+
aGVpZ2h0KCksCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtTGlzdEltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0SW1wbC5jcHAJKHJldmlzaW9uIDEy
NDY3KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjIsMTEgKzIyLDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQ
UE9SVAotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1J
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFu
c2Zvcm1MaXN0SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBTVkdU
cmFuc2Zvcm1MaXN0SW1wbDo6U1ZHVHJhbnNmb3JtTGlzdEltcGwoY29uc3QgU1ZHU3R5bGVkRWxl
bWVudEltcGwgKmNvbnRleHQpCkBAIC0zNCwxMSArMzQsNyBAQAogewogfQogCi1TVkdUcmFuc2Zv
cm1MaXN0SW1wbDo6flNWR1RyYW5zZm9ybUxpc3RJbXBsKCkKLXsKLX0KLQotU1ZHVHJhbnNmb3Jt
SW1wbCAqU1ZHVHJhbnNmb3JtTGlzdEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4SW1wbCAqbWF0cml4KSBjb25zdAorU1ZHVHJhbnNmb3JtSW1wbCAqU1ZHVHJhbnNm
b3JtTGlzdEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBtYXRyaXgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1NWR0VsZW1lbnRJbXBsOjpj
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiB9CkBAIC02NSwxMiArNjEsMTEg
QEAKICAgICBpZighbGVuZ3RoKQogICAgICAgICByZXR1cm4gMDsKICAgICAgICAgCi0gICAgU1ZH
VHJhbnNmb3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR1RyYW5zZm9y
bSgpOwotICAgIFNWR01hdHJpeEltcGwgKm1hdHJpeCA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVh
dGVTVkdNYXRyaXgoKTsKLQorICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXg7CiAgICAgZm9yKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQotICAgICAgICBtYXRyaXgtPm11bHRp
cGx5KGdldEl0ZW0oaSktPm1hdHJpeCgpKTsKKyAgICAgICAgbWF0cml4ID0gZ2V0SXRlbShpKS0+
bWF0cml4KCkgKiBtYXRyaXg7CiAKKyAgICBTVkdUcmFuc2Zvcm1JbXBsICpvYmogPSBTVkdTVkdF
bGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAgICAgb2JqLT5zZXRNYXRyaXgobWF0
cml4KTsKICAgICByZXR1cm4gb2JqOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUlt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlSW1wbC5oCShyZXZpc2lv
biAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGVJbXBsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFz
IFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVj
dAogCkBAIC0yNCwxNiArMjUsMTQgQEAKICNkZWZpbmUgS1NWR19TVkdMb2NhdGFibGVJbXBsX0gK
ICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS1NWRwoteworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICBjbGFzcyBTVkdSZWN0SW1wbDsKLSAg
ICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR0VsZW1lbnRJbXBsOwogICAgIGNs
YXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsOwotICAgIGNsYXNzIFNWR0xvY2F0YWJsZUltcGwKLSAg
ICB7CisKKyAgICBjbGFzcyBTVkdMb2NhdGFibGVJbXBsIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IFNWR0xvY2F0YWJsZUltcGwoKTsKICAgICAgICAgdmlydHVhbCB+U1ZHTG9jYXRhYmxlSW1wbCgp
OwogCiAgICAgICAgIC8vICdTVkdMb2NhdGFibGUnIGZ1bmN0aW9ucwpAQCAtNDEsMTggKzQwLDE4
IEBACiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVt
ZW50KCkgY29uc3QgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgU1ZHUmVjdEltcGwgKmdldEJCb3go
KSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29u
c3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldFNjcmVlbkNUTSgpIGNv
bnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXhJbXBsICpnZXRUcmFuc2Zvcm1Ub0Vs
ZW1lbnQoU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEFm
ZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNv
bnN0ID0gMDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIFNWR0VsZW1lbnRJbXBs
ICpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICplbGVt
ZW50KTsKLSAgICAgICAgc3RhdGljIFNWR0VsZW1lbnRJbXBsICpmYXJ0aGVzdFZpZXdwb3J0RWxl
bWVudChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqZWxlbWVudCk7Ci0gICAgICAgIHN0YXRp
YyBTVkdSZWN0SW1wbCAqZ2V0QkJveChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqZWxlbWVu
dCk7Ci0gICAgICAgIHN0YXRpYyBTVkdNYXRyaXhJbXBsICpnZXRDVE0oY29uc3QgU1ZHRWxlbWVu
dEltcGwgKmVsZW1lbnQpOwotICAgICAgICBzdGF0aWMgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVu
Q1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICplbGVtZW50KTsKLSAgICB9OworICAgICAgICBzdGF0
aWMgU1ZHRWxlbWVudEltcGwqIG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoY29uc3QgU1ZHU3R5bGVk
RWxlbWVudEltcGwqKTsKKyAgICAgICAgc3RhdGljIFNWR0VsZW1lbnRJbXBsKiBmYXJ0aGVzdFZp
ZXdwb3J0RWxlbWVudChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCopOworICAgICAgICBzdGF0
aWMgU1ZHUmVjdEltcGwqIGdldEJCb3goY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwqKTsKKyAg
ICAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oY29uc3QgU1ZHRWxlbWVudEltcGwq
KTsKKyAgICAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oY29uc3QgU1ZH
RWxlbWVudEltcGwqKTsKIH07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcy
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDI1
ICsyNSwxOCBAQAogI2RlZmluZSBLU1ZHX1NWR1BhdHRlcm5FbGVtZW50SW1wbF9ICiAjaWYgU1ZH
X1NVUFBPUlQKIAotI2luY2x1ZGUgIlNWR1Rlc3RzSW1wbC5oIgotI2luY2x1ZGUgIlNWR0xhbmdT
cGFjZUltcGwuaCIKLSNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2VJbXBsLmgiCisjaW5jbHVkZSAi
S0NhbnZhc1Jlc291cmNlTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSW1wbC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKKyNpbmNs
dWRlICJTVkdMYW5nU3BhY2VJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbC5o
IgotCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oPgotI2luY2x1
ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlci5oPgotI2luY2x1ZGUgPGtj
YW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlclBhdHRlcm4uaD4KLQotY2xhc3MgS0Nh
bnZhc0ltYWdlOworI2luY2x1ZGUgIlNWR1Rlc3RzSW1wbC5oIgorI2luY2x1ZGUgIlNWR1VSSVJl
ZmVyZW5jZUltcGwuaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuLmgi
CiAKLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsOwot
ICAgIGNsYXNzIFNWR1BhdHRlcm5FbGVtZW50SW1wbDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbDsKLSAgICBjbGFzcyBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RJbXBsOworCiAgICAgY2xhc3MgU1ZHUGF0dGVybkVsZW1lbnRJbXBsIDog
cHVibGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2VJbXBsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUZXN0c0ltcGwsCkBAIC01Miw3ICs0Niw3
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEtDYW52YXNSZXNv
dXJjZUxpc3RlbmVyCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHUGF0dGVybkVsZW1l
bnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50
SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHUGF0dGVybkVsZW1lbnRJbXBsKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdQYXR0
ZXJuRWxlbWVudEltcGwoKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHNJbXBsOjppc1ZhbGlkKCk7IH0KQEAgLTY4LDE5ICs2
MiwxOSBAQAogICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwgKndpZHRoKCkgY29uc3Q7CiAg
ICAgICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqaGVpZ2h0KCkgY29uc3Q7CiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUlt
cGwgKmF0dHIpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFw
cGVkQXR0cmlidXRlSW1wbCopOwogCi0gICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBs
ICpwdXNoQXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqY29udGV4
dCk7CisgICAgICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsKiBwdXNoQXR0cmlidXRlQ29u
dGV4dChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCopOwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCByZXNvdXJjZU5vdGlmaWNhdGlvbigpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QXR0cmlidXRlQ2hhbmdlKCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopIHsgcmV0dXJuIHRydWU7IH0KLSAgICAg
ICAgdmlydHVhbCBraHRtbDo6UmVuZGVyT2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVu
ZGVyU3R5bGUqKTsKICAgICAgICAgdmlydHVhbCBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJu
ICpjYW52YXNSZXNvdXJjZSgpOwogCiAgICAgICAgIC8vICd2aXJ0dWFsIFNWR0xvY2F0YWJsZScg
ZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0Q1RNKCkgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTSgpIGNvbnN0OwogCiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aEltcGw+
IG1feDsKQEAgLTk5LDExICs5MywxMSBAQAogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAg
ICAvLyBub3RpZnlBdHRyaWJ1dGVDaGFuZ2UgaGVscGVyczoKLSAgICAgICAgdm9pZCBmaWxsQXR0
cmlidXRlc0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50SW1wbCAq
dGFyZ2V0LCBLQ2FudmFzTWF0cml4ICZwYXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdDsKLSAg
ICAgICAgdm9pZCBkcmF3UGF0dGVybkNvbnRlbnRJbnRvVGlsZShjb25zdCBTVkdQYXR0ZXJuRWxl
bWVudEltcGwgKnRhcmdldCwgY29uc3QgSW50U2l6ZSAmbmV3U2l6ZSwgS0NhbnZhc01hdHJpeCBw
YXR0ZXJuVHJhbnNmb3JtTWF0cml4KSBjb25zdDsKKyAgICAgICAgdm9pZCBmaWxsQXR0cmlidXRl
c0Zyb21SZWZlcmVuY2VQYXR0ZXJuKGNvbnN0IFNWR1BhdHRlcm5FbGVtZW50SW1wbCosIEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybU1hdHJpeCkgY29uc3Q7CisgICAgICAgIHZvaWQg
ZHJhd1BhdHRlcm5Db250ZW50SW50b1RpbGUoY29uc3QgU1ZHUGF0dGVybkVsZW1lbnRJbXBsKiwg
Y29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtTWF0cml4KSBjb25zdDsKICAgICAgICAgdm9pZCBub3RpZnlDbGllbnRzVG9SZXBhaW50
KCkgY29uc3Q7CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlm
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9pbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3Zn
L1NWR1BvaW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdQb2ludElt
cGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAg
ICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI2LDIwICsyNywyMSBAQAogCiAjaW5jbHVkZSAi
U2hhcmVkLmgiCiAKKy8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBhICJwbGFpbiBkYXRhIiBjbGFz
cywgaGFuZGxlZCBtb3JlIGxpa2UgU1ZHTWF0cml4LCB3aGVyZSB0aGUKKy8vIGJpbmRpbmcgc2lt
cGx5IG1hcHMgb24gdG9wIG9mIGEgYmFzZSBjbGFzcyAoaW4gdGhpcyBjYXNlLCBGbG9hdFBvaW50
KS4KKy8vIEFzIGZhciBhcyBJIGNhbiB0ZWxsIHRoZSBTVkcgRE9NIGRvZXMgKm5vdCogcmVxdWly
ZSBhIHBvaW50IG9iamVjdCB0aGF0IHlvdSBjYW4gbW9kaWZ5CisvLyB0aGF0IGR5bmFtaWNhbGx5
IGNoYW5nZXMgdGhlIHVuZGVybHlpbmcgZWxlbWVudC4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEludFBvaW50OwotfQotCi1uYW1lc3Bh
Y2UgS1NWRwotewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3MgU1ZHU3R5bGVk
RWxlbWVudEltcGw7CiAgICAgY2xhc3MgU1ZHUG9pbnRJbXBsIDogcHVibGljIFNoYXJlZDxTVkdQ
b2ludEltcGw+CiAgICAgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHUG9pbnRJbXBsKGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0ID0gMCk7CiAgICAgICAgIFNWR1BvaW50SW1w
bChmbG9hdCB4LCBmbG9hdCB5LCBjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqY29udGV4dCA9
IDApOwotICAgICAgICBTVkdQb2ludEltcGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgJnAsIGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0ID0gMCk7CisgICAgICAgIFNWR1BvaW50
SW1wbChjb25zdCBJbnRQb2ludCAmcCwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRl
eHQgPSAwKTsKICAgICAgICAgflNWR1BvaW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdQb2lu
dCcgZnVuY3Rpb25zCkBAIC00OSw3ICs1MSw3IEBACiAgICAgICAgIHZvaWQgc2V0WShmbG9hdCB5
KTsKICAgICAgICAgZmxvYXQgeSgpIGNvbnN0OwogCi0gICAgICAgIFNWR1BvaW50SW1wbCAqbWF0
cml4VHJhbnNmb3JtKFNWR01hdHJpeEltcGwgKm1hdHJpeCk7CisgICAgICAgIFNWR1BvaW50SW1w
bCogbWF0cml4VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgZmxvYXQgbV94OwpAQCAtNTcsNyArNTksNyBAQAogCiAgICAgICAgIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnRJbXBsICptX2NvbnRleHQ7CiAgICAgfTsKLX07Cit9CiAKICNlbmRp
ZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0SW1wbC5jcHAJKHJl
dmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSA8cXN0
cmluZ2xpc3QuaD4KIAotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdT
VkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RJbXBsLmgiCiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdQb2ludEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdQ
b2ludEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdQb2ludEltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw2IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNp
bmNsdWRlICJTVkdQb2ludEltcGwuaCIKIAotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNp
bmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAK
QEAgLTgxLDcgKzgwLDcgQEAKICAgICAgICAgbV9jb250ZXh0LT5ub3RpZnlBdHRyaWJ1dGVDaGFu
Z2UoKTsKIH0KIAotU1ZHUG9pbnRJbXBsICpTVkdQb2ludEltcGw6Om1hdHJpeFRyYW5zZm9ybShT
VkdNYXRyaXhJbXBsICogLyogbWF0cml4ICovKQorU1ZHUG9pbnRJbXBsICpTVkdQb2ludEltcGw6
Om1hdHJpeFRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIC8qIG1hdHJpeCAqLykKIHsK
ICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgbWUhCiAgICAgcmV0dXJuIDA7CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2
ZzIvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjIsMTUgKzIyLDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAot
I2luY2x1ZGUgPHFzdHJpbmcuaD4KLSNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgotCi0jaW5jbHVk
ZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4KKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvSW1wbC5oIgogCi0jaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgIlNWR01hdHJpeElt
cGwuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdTVkdFbGVt
ZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgiCisjaW5j
bHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+CisjaW5j
bHVkZSA8cXN0cmluZy5oPgorI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogCkBAIC0xMDgsMTAgKzEwNywxMCBAQAogICAgICAgICBtX2NvbnRleHQtPm5v
dGlmeUF0dHJpYnV0ZUNoYW5nZSgpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvSW1wbDo6Z2V0Q1RNKGZsb2F0IGxvZ2ljWCwgZmxvYXQgbG9naWNZLCBmbG9hdCBs
b2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hlaWdodCwKK0FmZmluZVRyYW5zZm9ybSBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvSW1wbDo6Z2V0Q1RNKGZsb2F0IGxvZ2ljWCwgZmxvYXQgbG9naWNZLCBmbG9h
dCBsb2dpY1dpZHRoLCBmbG9hdCBsb2dpY0hlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgLypwaHlzWCovLCBmbG9hdCAvKnBoeXNZ
Ki8sIGZsb2F0IHBoeXNXaWR0aCwgZmxvYXQgcGh5c0hlaWdodCkKIHsKLSAgICBTVkdNYXRyaXhJ
bXBsICp0ZW1wID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNWR01hdHJpeCgpOworICAgIEFm
ZmluZVRyYW5zZm9ybSB0ZW1wOwogCiAgICAgaWYoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19VTktOT1dOKQogICAgICAgICByZXR1cm4gdGVtcDsKQEAgLTEyMSwzMCArMTIwLDMw
IEBACiAKICAgICBpZihhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX05PTkUpCiAg
ICAgewotICAgICAgICB0ZW1wLT5zY2FsZU5vblVuaWZvcm0ocGh5c1dpZHRoIC8gbG9naWNXaWR0
aCwgcGh5c0hlaWdodCAvIGxvZ2ljSGVpZ2h0KTsKLSAgICAgICAgdGVtcC0+dHJhbnNsYXRlKC1s
b2dpY1gsIC1sb2dpY1kpOworICAgICAgICB0ZW1wLnNjYWxlKHBoeXNXaWR0aCAvIGxvZ2ljV2lk
dGgsIHBoeXNIZWlnaHQgLyBsb2dpY0hlaWdodCk7CisgICAgICAgIHRlbXAudHJhbnNsYXRlKC1s
b2dpY1gsIC1sb2dpY1kpOwogICAgIH0KICAgICBlbHNlIGlmKHZwYXIgPCBzdmdhciAmJiAobWVl
dE9yU2xpY2UoKSA9PSBTVkdfTUVFVE9SU0xJQ0VfTUVFVCkgfHwgdnBhciA+PSBzdmdhciAmJiAo
bWVldE9yU2xpY2UoKSA9PSBTVkdfTUVFVE9SU0xJQ0VfU0xJQ0UpKQogICAgIHsKLSAgICAgICAg
dGVtcC0+c2NhbGUocGh5c0hlaWdodCAvIGxvZ2ljSGVpZ2h0KTsKKyAgICAgICAgdGVtcC5zY2Fs
ZShwaHlzSGVpZ2h0IC8gbG9naWNIZWlnaHQpOwogCiAgICAgICAgIGlmKGFsaWduKCkgPT0gU1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVB
U1BFQ1RSQVRJT19YTUlOWU1JRCB8fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElP
X1hNSU5ZTUFYKQotICAgICAgICAgICAgdGVtcC0+dHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kp
OworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSk7CiAgICAgICAg
IGVsc2UgaWYoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JTiB8fCBh
bGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEIHx8IGFsaWduKCkgPT0g
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVgpCi0gICAgICAgICAgICB0ZW1wLT50cmFu
c2xhdGUoLWxvZ2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBw
aHlzSGVpZ2h0KSAvIDIsIC1sb2dpY1kpOworICAgICAgICAgICAgdGVtcC50cmFuc2xhdGUoLWxv
Z2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBwaHlzSGVpZ2h0
KSAvIDIsIC1sb2dpY1kpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0ZW1wLT50cmFuc2xh
dGUoLWxvZ2ljWCAtIChsb2dpY1dpZHRoIC0gcGh5c1dpZHRoICogbG9naWNIZWlnaHQgLyBwaHlz
SGVpZ2h0KSwgLWxvZ2ljWSk7CisgICAgICAgICAgICB0ZW1wLnRyYW5zbGF0ZSgtbG9naWNYIC0g
KGxvZ2ljV2lkdGggLSBwaHlzV2lkdGggKiBsb2dpY0hlaWdodCAvIHBoeXNIZWlnaHQpLCAtbG9n
aWNZKTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgdGVtcC0+c2NhbGUocGh5c1dp
ZHRoIC8gbG9naWNXaWR0aCk7CisgICAgICAgIHRlbXAuc2NhbGUocGh5c1dpZHRoIC8gbG9naWNX
aWR0aCk7CiAKICAgICAgICAgaWYoYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19Y
TUlOWU1JTiB8fCBhbGlnbigpID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlOIHx8
IGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU4pCi0gICAgICAgICAg
ICB0ZW1wLT50cmFuc2xhdGUoLWxvZ2ljWCwgLWxvZ2ljWSk7CisgICAgICAgICAgICB0ZW1wLnRy
YW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZKTsKICAgICAgICAgZWxzZSBpZihhbGlnbigpID09IFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlEIHx8IGFsaWduKCkgPT0gU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JRFlNSUQgfHwgYWxpZ24oKSA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJ
T19YTUFYWU1JRCkKLSAgICAgICAgICAgIHRlbXAtPnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZ
IC0gKGxvZ2ljSGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpIC8g
Mik7CisgICAgICAgICAgICB0ZW1wLnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZIC0gKGxvZ2lj
SGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpIC8gMik7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRlbXAtPnRyYW5zbGF0ZSgtbG9naWNYLCAtbG9naWNZIC0g
KGxvZ2ljSGVpZ2h0IC0gcGh5c0hlaWdodCAqIGxvZ2ljV2lkdGggLyBwaHlzV2lkdGgpKTsKKyAg
ICAgICAgICAgIHRlbXAudHJhbnNsYXRlKC1sb2dpY1gsIC1sb2dpY1kgLSAobG9naWNIZWlnaHQg
LSBwaHlzSGVpZ2h0ICogbG9naWNXaWR0aCAvIHBoeXNXaWR0aCkpOwogICAgIH0KIAogICAgIHJl
dHVybiB0ZW1wOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaAkocmV2aXNp
b24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAg
IDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAogCkBAIC0yNywyMCArMjgsMTAgQEAKICNpbmNsdWRlICJET01JbXBsZW1lbnRh
dGlvbkltcGwuaCIKICNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCi1uYW1lc3BhY2UgS0RPTQot
ewotICAgIGNsYXNzIERPTVN0cmluZzsKLSAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci0gICAgY2xh
c3MgRG9jdW1lbnRUeXBlSW1wbDsKLSAgICBjbGFzcyBDU1NTdHlsZVNoZWV0SW1wbDsKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBET01TdHJpbmdJbXBsOwogCi0gICAgdHlwZWRlZiBG
cmFtZVZpZXcgS0RPTVZpZXc7Ci19Ci0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgY2xhc3MgU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsIDogcHVibGljIERPTTo6RE9NSW1wbGVtZW50YXRpb25JbXBs
Ci0gICAgeworICAgIGNsYXNzIFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCA6IHB1YmxpYyBET01J
bXBsZW1lbnRhdGlvbkltcGwgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHRE9NSW1wbGVtZW50
YXRpb25JbXBsKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR0RPTUltcGxlbWVudGF0aW9uSW1wbCgp
OwpAQCAtNDgsMTQgKzM5LDE0IEBACiAgICAgICAgIHN0YXRpYyBTVkdET01JbXBsZW1lbnRhdGlv
bkltcGwgKnNlbGYoKTsKIAogICAgICAgICAvLyAnU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsJyBm
dW5jdGlvbnMKLSAgICAgICAgYm9vbCBoYXNGZWF0dXJlKEtET006OkRPTVN0cmluZ0ltcGwgKmZl
YXR1cmUsIEtET006OkRPTVN0cmluZ0ltcGwgKnZlcnNpb24pIGNvbnN0OwotICAgICAgICBLRE9N
OjpEb2N1bWVudFR5cGVJbXBsICpjcmVhdGVEb2N1bWVudFR5cGUoS0RPTTo6RE9NU3RyaW5nSW1w
bCAqcXVhbGlmaWVkTmFtZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHVibGljSWQsIEtET006OkRP
TVN0cmluZ0ltcGwgKnN5c3RlbUlkLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNvbnN0OwotICAgICAg
ICBLRE9NOjpEb2N1bWVudEltcGwgKmNyZWF0ZURvY3VtZW50KEtET006OkRPTVN0cmluZ0ltcGwg
Km5hbWVzcGFjZVVSSSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZSwgS0RPTTo6
RG9jdW1lbnRUeXBlSW1wbCAqZG9jdHlwZSwgaW50JiBleGNlcHRpb25jb2RlKSBjb25zdDsKLSAg
ICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudChLRE9NOjpET01TdHJpbmdJ
bXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWUsIEtE
T006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwgS0RP
TTo6S0RPTVZpZXcgKnZpZXcsIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3Q7CisgICAgICAgIGJv
b2wgaGFzRmVhdHVyZShET01TdHJpbmdJbXBsKiBmZWF0dXJlLCBET01TdHJpbmdJbXBsKiB2ZXJz
aW9uKSBjb25zdDsKKyAgICAgICAgRG9jdW1lbnRUeXBlSW1wbCogY3JlYXRlRG9jdW1lbnRUeXBl
KERPTVN0cmluZ0ltcGwqIHF1YWxpZmllZE5hbWUsIERPTVN0cmluZ0ltcGwqIHB1YmxpY0lkLCBE
T01TdHJpbmdJbXBsKiBzeXN0ZW1JZCwgaW50JiBleGNlcHRpb25jb2RlKSBjb25zdDsKKyAgICAg
ICAgRG9jdW1lbnRJbXBsKiBjcmVhdGVEb2N1bWVudChET01TdHJpbmdJbXBsKiBuYW1lc3BhY2VV
UkksIERPTVN0cmluZ0ltcGwqIHF1YWxpZmllZE5hbWUsIERvY3VtZW50VHlwZUltcGwqIGRvY3R5
cGUsIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3Q7CisgICAgICAgIERvY3VtZW50SW1wbCogY3Jl
YXRlRG9jdW1lbnQoRE9NU3RyaW5nSW1wbCogbmFtZXNwYWNlVVJJLCBET01TdHJpbmdJbXBsKiBx
dWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGVJbXBsKiBkb2N0eXBlLCBib29sIGNyZWF0ZURvY0Vs
ZW1lbnQsIEZyYW1lVmlldyosIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3Q7CiAKLSAgICAgICAg
dmlydHVhbCBLRE9NOjpDU1NTdHlsZVNoZWV0SW1wbCAqY3JlYXRlQ1NTU3R5bGVTaGVldChLRE9N
OjpET01TdHJpbmdJbXBsICp0aXRsZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqbWVkaWEpIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXRJbXBsKiBjcmVhdGVDU1NTdHlsZVNoZWV0
KERPTVN0cmluZ0ltcGwqIHRpdGxlLCBET01TdHJpbmdJbXBsKiBtZWRpYSkgY29uc3Q7CiAKLSAg
ICAgICAgdmlydHVhbCBLRE9NOjpEb2N1bWVudFR5cGVJbXBsICpkZWZhdWx0RG9jdW1lbnRUeXBl
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgRG9jdW1lbnRUeXBlSW1wbCogZGVmYXVsdERvY3Vt
ZW50VHlwZSgpIGNvbnN0OwogCiAgICAgICAgIGJvb2wgaW5BbmltYXRpb25Db250ZXh0KCkgY29u
c3Q7CiAgICAgICAgIHZvaWQgc2V0QW5pbWF0aW9uQ29udGV4dChib29sIHZhbHVlKTsKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHU3ltYm9sRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNiArMjIs
MTggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8
a2RvbS9ET01TdHJpbmcuaD4KLQotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNW
R1N5bWJvbEVsZW1lbnRJbXBsLmgiCisKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1wbC5oIgogI2luY2x1
ZGUgIlNWR0ZpdFRvVmlld0JveEltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNs
dWRlIDxrZG9tL0RPTVN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogU1ZHU3lt
Ym9sRWxlbWVudEltcGw6OlNWR1N5bWJvbEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50SW1wbCAqZG9jKQotOiBTVkdTdHlsZWRFbGVt
ZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR0ZpdFRvVmlld0JveEltcGwoKQorOiBTVkdTdHlsZWRF
bGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpCiB7CiB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHls
ZWRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50
SW1wbC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjUsMjUgKzI2LDE4IEBACiAjaWYgU1ZHX1NVUFBP
UlQKIAogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGFibGVJ
bXBsLmgiCiAKLSNpbmNsdWRlIDxxd21hdHJpeC5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZh
c1BhdGguaD4KLSNpbmNsdWRlICJyZW5kZXJfc3R5bGUuaCIKLQotY2xhc3MgUmVuZGVyUGF0aDsK
LWNsYXNzIEtSZW5kZXJpbmdEZXZpY2U7CitjbGFzcyBLQ2FudmFzUGF0aDsKIGNsYXNzIEtDYW52
YXNSZXNvdXJjZTsKIAotbmFtZXNwYWNlIFdlYkNvcmUKLXsKLSAgICBjbGFzcyBLQ2FudmFzUmVu
ZGVyaW5nU3R5bGU7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ1NTU3R5bGVEZWNs
YXJhdGlvbkltcGw7CiAgICAgY2xhc3MgUmVuZGVyQ2FudmFzOwotICAgIGNsYXNzIFNWR1N0eWxl
ZEVsZW1lbnRJbXBsIDogcHVibGljIFNWR0VsZW1lbnRJbXBsCi0gICAgeworICAgIGNsYXNzIFNW
R0FuaW1hdGVkU3RyaW5nSW1wbDsKKworICAgIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnRJbXBsIDog
cHVibGljIFNWR0VsZW1lbnRJbXBsICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdTdHlsZWRF
bGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1
bWVudEltcGwgKmRvYyk7CisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdT
dHlsZWRFbGVtZW50SW1wbCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5
bGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTIsMzQgKzQ2LDM0IEBACiAgICAgICAg
IHZpcnR1YWwgU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsICpjbGFzc05hbWUoKSBjb25zdDsKIAogICAg
ICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIGltcGxlbWVudGVkLgotICAgICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKikgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7
IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIEtDYW52YXNQYXRoKiB0b1BhdGhEYXRh
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgICAgICB2aXJ0dWFsIGtodG1sOjpSZW5kZXJPYmpl
Y3QgKmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwga2h0bWw6OlJlbmRlclN0eWxl
ICpzdHlsZSk7CisgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc1Jlc291
cmNlICpjYW52YXNSZXNvdXJjZSgpIHsgcmV0dXJuIDA7IH0KICAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBs
ICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBl
ZEF0dHJpYnV0ZUltcGwqKTsKIAogICAgICAgICBSZW5kZXJDYW52YXMgKmNhbnZhcygpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QXR0cmlidXRlQ2hhbmdlKCkgY29uc3Q7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEtET006OkF0dHJpYnV0ZUltcGwg
KmF0dHIsIGJvb2wgcHJlc2VydmVEZWNscyA9IGZhbHNlKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlSW1wbCosIGJvb2wgcHJlc2VydmVEZWNscyA9IGZh
bHNlKTsKIAogICAgICAgICAvLyBJbWFnaW5lIHdlJ3JlIGEgPHJlY3Q+IGluc2lkZSBvZiBhIDxw
YXR0ZXJuPiBzZWN0aW9uIHdpdGggcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdC
b3giCiAgICAgICAgIC8vIGFuZCBvdXIgJ3dpZHRoJyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDUwJS4g
V2hlbiB0aGUgcGF0dGVybiBnZXRzIHJlZmVyZW5jZWQgaXQga25vd3MgdGhlICJiYm94IgogICAg
ICAgICAvLyBvZiBpdCdzIHVzZXIgYW5kIGhhcyB0byBwdXNoIHRoZSAiYWN0aXZlIGNsaWVudCdz
IGJib3giIGFzIG5ldyBhdHRyaWJ1dGUgY29udGV4dCB0byBhbGwgYXR0cmlidXRlcwogICAgICAg
ICAvLyBvZiB0aGUgJ3JlY3QnLiBUaGlzIGZ1bmN0aW9uIGFsc28gcmV0dXJucyB0aGUgb2xkIGF0
dHJpYnV0ZSBjb250ZXh0LCB0byBiZSBhYmxlIHRvIHJlc3RvcmUgaXQuLi4KLSAgICAgICAgdmly
dHVhbCBjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29u
c3QgU1ZHU3R5bGVkRWxlbWVudEltcGwgKmNvbnRleHQpOworICAgICAgICB2aXJ0dWFsIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnRJbXBsKiBwdXNoQXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdTdHls
ZWRFbGVtZW50SW1wbCopOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIHVwZGF0ZUNh
bnZhc0l0ZW0oKTsgLy8gSGFuZGxlcyAicGF0aCBkYXRhIiBvYmplY3QgY2hhbmdlcy4uLiAobm90
IGZvciBzdHlsZS90cmFuc2Zvcm0hKQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8S0RPTTo6Q1NTU3R5bGVEZWNsYXJhdGlvbkltcGw+IG1fcGE7CisgICAgICAgIG11dGFi
bGUgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb25JbXBsPiBtX3BhOwogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZ0ltcGw+IG1fY2xhc3NOYW1lOwogCiAgICAgICAgIC8v
IE9wdGltaXplZCB1cGRhdGluZyBsb2dpYwogICAgICAgICBib29sIG1fdXBkYXRlVmVjdG9yaWFs
IDogMTsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdWaWV3RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdWaWV3RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2
Zy9TVkdWaWV3RWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsMTMg
QEAKICNpbmNsdWRlICJTVkdWaWV3RWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdGaXRUb1Zp
ZXdCb3hJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbkltcGwuaCIKKyNpbmNsdWRlICJT
VkdBbmltYXRlZFJlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvSW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogU1ZHVmlld0VsZW1lbnRJ
bXBsOjpTVkdWaWV3RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05h
bWUsIGRvYyksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksCi1TVkdGaXRUb1Zp
ZXdCb3hJbXBsKCksIFNWR1pvb21BbmRQYW5JbXBsKCkKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwo
dGFnTmFtZSwgZG9jKQogewogfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAog
I2luY2x1ZGUgImtzdmcuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hl
bHBlci5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtTGlzdEltcGwuaCIKQEAgLTM5LDkgKzM4LDkgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCiAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4K
LSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KICNpbmNsdWRlIDxrY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKQEAgLTEzMSw5ICsxMzAsOSBAQAogICAgIGZsb2F0
IF9meSA9IGZ5U2V0ID8gZnkoKS0+YmFzZVZhbCgpLT52YWx1ZSgpIDogX2N5OwogCiAgICAgS1Jl
bmRlcmluZ1BhaW50U2VydmVyUmFkaWFsR3JhZGllbnQgKmdyYWQgPSBzdGF0aWNfY2FzdDxLUmVu
ZGVyaW5nUGFpbnRTZXJ2ZXJSYWRpYWxHcmFkaWVudCAqPihfZ3JhZCk7Ci0gICAgS0NhbnZhc01h
dHJpeCBtYXQ7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1hdDsKICAgICBpZihncmFkaWVudFRyYW5z
Zm9ybSgpLT5iYXNlVmFsKCktPm51bWJlck9mSXRlbXMoKSA+IDApCi0gICAgICAgIG1hdCA9IEtD
YW52YXNNYXRyaXgoZ3JhZGllbnRUcmFuc2Zvcm0oKS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgp
LT5tYXRyaXgoKS0+cW1hdHJpeCgpKTsKKyAgICAgICAgbWF0ID0gZ3JhZGllbnRUcmFuc2Zvcm0o
KS0+YmFzZVZhbCgpLT5jb25zb2xpZGF0ZSgpLT5tYXRyaXgoKTsKIAogICAgIFFTdHJpbmcgcmVm
ID0gS0RPTTo6RE9NU3RyaW5nKGhyZWYoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCk7CiAgICAgS1Jl
bmRlcmluZ1BhaW50U2VydmVyICpwc2VydmVyID0gZ2V0UGFpbnRTZXJ2ZXJCeUlkKGdldERvY3Vt
ZW50KCksIHJlZi5taWQoMSkpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIzICsyMiwxOSBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9t
L2tkb20uaD4KLSNpbmNsdWRlICJTVkdSZWN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeElt
cGwuaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZExv
Y2F0YWJsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKIAor
I2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgi
CisjaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5o
IgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0l0ZW0uaD4KKyNpbmNsdWRlIDxrZG9tL2tkb20u
aD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJ
bXBsOjpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudEltcGwgKmRvYykKLTogU1ZHU3R5bGVkRWxlbWVu
dEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHTG9jYXRhYmxlSW1wbCgpCi17Ci19Ci0KLVNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnRJbXBsOjp+U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoKQor
OiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpCiB7CiB9CiAKQEAgLTU3LDIwICs1
MywyMCBAQAogICAgIHJldHVybiBTVkdMb2NhdGFibGVJbXBsOjpnZXRCQm94KHRoaXMpOwogfQog
Ci1TVkdNYXRyaXhJbXBsICpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0Q1RNKCkg
Y29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0
Q1RNKCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKHRoaXMp
OwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0
U2NyZWVuQ1RNKCkgY29uc3QKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRMb2NhdGFibGVFbGVt
ZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxl
SW1wbDo6Z2V0U2NyZWVuQ1RNKHRoaXMpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBs
ICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGw6
OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqKSBjb25zdAogewogICAgIC8v
IFRPRE8hCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogfQog
CiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3Zn
Mi9zdmcvU1ZHSGVscGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTcgKzIyLDE3IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgImtzdmcuaCIK
ICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdTdHJpbmdMaXN0SW1wbC5oIgot
I2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0
SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50SW1wbC5oIgotCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CiAKKyNpbmNsdWRl
ICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKKyNp
bmNsdWRlICJTVkdBbmltYXRlZFJlY3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNp
bmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RJbXBs
LmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2ls
ZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgog
CiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDQ0ICsy
NSw0MyBAQAogI2RlZmluZSBLU1ZHX1NWR1RleHRFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBP
UlQKIAorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIlNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIK
IAotbmFtZXNwYWNlIEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTVkdU
ZXh0RWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudEltcGwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1RyYW5zZm9ybWFibGVJbXBs
CiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVGV4dEVsZW1lbnRJbXBsKGNvbnN0IEtE
T006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50SW1wbCAqZG9jKTsKLSAg
ICAgICAgdmlydHVhbCB+U1ZHVGV4dEVsZW1lbnRJbXBsKCk7CisgICAgICAgIFNWR1RleHRFbGVt
ZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudEltcGwqKTsKIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0
cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsKik7CiAKICAgICAgICAgIC8vICdTVkdUZXh0RWxlbWVu
dCcgZnVuY3Rpb25zCiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKm5lYXJlc3RWaWV3
cG9ydEVsZW1lbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCAqZmFy
dGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIFNWR1JlY3RJ
bXBsICpnZXRCQm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0
Q1RNKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0U2NyZWVuQ1RN
KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAqZ2V0VHJhbnNmb3JtVG9F
bGVtZW50KFNWR0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdCB7IHJldHVybiAwOyB9Ci0KLSAg
ICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICop
IHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBraHRtbDo6UmVuZGVyT2JqZWN0ICpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5
bGUpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihET006
Ok5vZGVJbXBsICopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRD
VE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2NyZWVuQ1RN
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFRyYW5zZm9ybVRv
RWxlbWVudChTVkdFbGVtZW50SW1wbCopIGNvbnN0IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgp
OyB9CisKKyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUq
KSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVS
ZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGVJbXBsKikgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKTsKIAogICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEltcGwgKnRyYW5zZm9ybSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJp
eEltcGwgKmxvY2FsTWF0cml4KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtIGxvY2FsTWF0cml4KCkgY29uc3Q7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxvY2FsVHJhbnNmb3Jt
cyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2NhbFRyYW5zZm9ybShTVkdUcmFuc2Zv
cm1MaXN0SW1wbCopOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxTVkdNYXRyaXhJbXBsPiBtX2xvY2FsTWF0cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zv
cm0gbV9sb2NhbE1hdHJpeDsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbD4gbV90cmFuc2Zvcm07CiAgICAgfTsKLX07Cit9CiAKICNlbmRpZiAvLyBT
VkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50SW1wbC5jcHAJKHJl
dmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnRJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjIsMTUgKzIyLDE1IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
ZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotCi0jaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdDaXJj
bGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgogCisj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
TGVuZ3RoSW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVz
LmgiCiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2Fu
dmFzQ3JlYXRvci5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1c2luZyBu
YW1lc3BhY2UgS1NWRzsKIApJbmRleDoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHJldmlzaW9u
IDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUxpc3RJbXBsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtv
bGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJv
amVjdAogCkBAIC0yNSwyMyArMjYsMjMgQEAKICNpZiBTVkdfU1VQUE9SVAogCiAjaW5jbHVkZSAi
U1ZHTGlzdC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUltcGwuaCIKIAotbmFtZXNwYWNlIEtT
VkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Cisg
ICAgY2xhc3MgU1ZHVHJhbnNmb3JtSW1wbDsKKwogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3RJ
bXBsIDogcHVibGljIFNWR0xpc3Q8U1ZHVHJhbnNmb3JtSW1wbD4KICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1w
bCAqY29udGV4dCA9IDApOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1MaXN0SW1wbCgp
OworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbChjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1w
bCogPSAwKTsKIAotICAgICAgICBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zvcm1G
cm9tTWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCkgY29uc3Q7CisgICAgICAgIFNWR1RyYW5z
Zm9ybUltcGwqIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNm
b3JtJikgY29uc3Q7CiAgICAgICAgIFNWR1RyYW5zZm9ybUltcGwgKmNvbnNvbGlkYXRlKCk7CiAK
ICAgICAgICAgLy8gSW50ZXJuYWwgdXNlIG9ubHkKICAgICAgICAgU1ZHVHJhbnNmb3JtSW1wbCAq
Y29uY2F0ZW5hdGUoKSBjb25zdDsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdOdW1iZXJMaXN0SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR051bWJlckxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0Njcp
CisrKyBrc3ZnMi9zdmcvU1ZHTnVtYmVyTGlzdEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCw3ICsyNCw2IEBACiAjaWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgog
Ci0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR051bWJlckltcGwuaCIK
ICNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR051bWJlckxpc3RJ
bXBsLmgiCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjIgKzIyLDIxIEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkZWJ1
Zy5oPgotI2luY2x1ZGUgPHFyZWdleHAuaD4KLSNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgotCi0j
aW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52
YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNJdGVtLmg+CisjaW5jbHVkZSAiU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgiCiAKLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIK
LSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0SW1wbC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgorI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0l0ZW0uaD4KKyNpbmNsdWRl
IDxrZGVidWcuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlIDxx
cmVnZXhwLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtT
Vkc7CiAKQEAgLTU1LDI5ICs1NCwxNCBAQAogICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RJbXBsPihtX3RyYW5zZm9ybSwgdGhpcyk7CiB9CiAKLVNWR01hdHJp
eEltcGwgKlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6bG9jYWxNYXRyaXgoKSBj
b25zdAotewotICAgIHJldHVybiBsYXp5X2NyZWF0ZTxTVkdNYXRyaXhJbXBsPihtX2xvY2FsTWF0
cml4KTsKLX0KLQotU1ZHTWF0cml4SW1wbCAqU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJ
bXBsOjpnZXRDVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50SW1wbDo6Z2V0Q1RNKCkgY29uc3QKIHsKLSAgICBTVkdNYXRyaXhJbXBsICpjdG0g
PSBTVkdMb2NhdGFibGVJbXBsOjpnZXRDVE0odGhpcyk7Ci0KLSAgICBpZihtX2xvY2FsTWF0cml4
KQotICAgICAgICBjdG0tPm11bHRpcGx5KG1fbG9jYWxNYXRyaXguZ2V0KCkpOwotCi0gICAgcmV0
dXJuIGN0bTsKKyAgICByZXR1cm4gbV9sb2NhbE1hdHJpeCAqIFNWR0xvY2F0YWJsZUltcGw6Omdl
dENUTSh0aGlzKTsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAorQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKIHsKLSAgICBT
VkdNYXRyaXhJbXBsICpjdG0gPSBTVkdMb2NhdGFibGVJbXBsOjpnZXRTY3JlZW5DVE0odGhpcyk7
Ci0KLSAgICBpZihtX2xvY2FsTWF0cml4KQotICAgICAgICBjdG0tPm11bHRpcGx5KG1fbG9jYWxN
YXRyaXguZ2V0KCkpOwotCi0gICAgcmV0dXJuIGN0bTsKKyAgICByZXR1cm4gbV9sb2NhbE1hdHJp
eCAqIFNWR0xvY2F0YWJsZUltcGw6OmdldFNjcmVlbkNUTSh0aGlzKTsKIH0KIAogdm9pZCBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OnVwZGF0ZUxvY2FsVHJhbnNmb3JtKFNWR1Ry
YW5zZm9ybUxpc3RJbXBsICpsb2NhbFRyYW5zZm9ybXMpCkBAIC04Nyw3ICs3MSw3IEBACiAgICAg
aWYobG9jYWxUcmFuc2Zvcm0pIHsKICAgICAgICAgbV9sb2NhbE1hdHJpeCA9IGxvY2FsVHJhbnNm
b3JtLT5tYXRyaXgoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIHJl
bmRlcmVyKCktPnNldExvY2FsVHJhbnNmb3JtKG1fbG9jYWxNYXRyaXgtPnFtYXRyaXgoKSk7Cisg
ICAgICAgICAgICByZW5kZXJlcigpLT5zZXRMb2NhbFRyYW5zZm9ybShtX2xvY2FsTWF0cml4KTsK
ICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTIwLDE3ICsxMDQsMjIgQEAKICAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJs
ZUltcGw6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeEltcGwgKlNWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50SW1wbDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBs
ICopIGNvbnN0CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJ
bXBsOjpsb2NhbE1hdHJpeCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9jYWxNYXRyaXg7Cit9
CisKK0FmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6Omdl
dFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqKSBjb25zdAogewotICAgIHJldHVy
biAwOworICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIH0KIAogdm9pZCBTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudEltcGw6OmF0dGFjaCgpCiB7CiAgICAgU1ZHU3R5bGVkRWxlbWVu
dEltcGw6OmF0dGFjaCgpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkgJiYgbV9sb2NhbE1hdHJpeCkK
LSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeC0+cW1h
dHJpeCgpKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9j
YWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJpeCk7CiB9CiAKIApJbmRleDoga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDkgKzIyLDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgorI2luY2x1
ZGUgIlNWR1RyYW5zZm9ybUxpc3RJbXBsLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiBT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBs
KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxh
dGU8U1ZHVHJhbnNmb3JtTGlzdEltcGw+KGNvbnRleHQpCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVP
ZmZzZXRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjIgKzIyLDIxIEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmdsaXN0
Lmg+Ci0KLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdGRU9m
ZnNldEVsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzUmVzb3VyY2VzLmg+CiAjaW5jbHVk
ZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1Jl
c291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4K
ICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVudC5o
PgotCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIK
LSNpbmNsdWRlICJTVkdGRU9mZnNldEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWROdW1iZXJJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0
dHJJbXBsLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtT
Vkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
bXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMyArMjIsMTMgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2RvbS9jb3Jl
L0F0dHJJbXBsLmg+CisjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwu
aCIKIAotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5j
bHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKKyNpbmNs
dWRlICJTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUg
IlNWR05hbWVzLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmgJKHJldmlzaW9uIDEyNDY3KQor
Kysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFu
biA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0
LDI0ICsyNSwyMCBAQAogI2RlZmluZSBLU1ZHX1NWR1RyYW5zZm9ybUltcGxfSAogI2lmIFNWR19T
VVBQT1JUCiAKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTaGFyZWQu
aCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOworbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR1RyYW5zZm9ybUltcGwgOiBwdWJsaWMgU2hhcmVk
PFNWR1RyYW5zZm9ybUltcGw+CiAgICAgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHVHJhbnNm
b3JtSW1wbCgpOwotICAgICAgICB2aXJ0dWFsIH5TVkdUcmFuc2Zvcm1JbXBsKCk7Ci0KLSAgICAg
ICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpIGNvbnN0OwotCi0gICAgICAgIFNWR01hdHJpeEltcGwg
Km1hdHJpeCgpIGNvbnN0OwogICAgIAotICAgICAgICBkb3VibGUgYW5nbGUoKSBjb25zdDsKKyAg
ICAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAg
ICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0
cml4OyB9CisgICAgICAgIGRvdWJsZSBhbmdsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5nbGU7IH0K
IAotICAgICAgICB2b2lkIHNldE1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpOworICAgICAg
ICB2b2lkIHNldE1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICAgICAgdm9pZCBz
ZXRUcmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpOwogICAgICAgICB2b2lkIHNldFNjYWxl
KGRvdWJsZSBzeCwgZG91YmxlIHN5KTsKICAgICAgICAgdm9pZCBzZXRSb3RhdGUoZG91YmxlIGFu
Z2xlLCBkb3VibGUgY3gsIGRvdWJsZSBjeSk7CkBAIC00OSwxMSArNDYsMTEgQEAKICAgICAgICAg
dm9pZCBzZXRTa2V3WShkb3VibGUgYW5nbGUpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgZG91
YmxlIG1fYW5nbGU7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fdHlwZTsKLSAgICAgICAgUmVm
UHRyPFNWR01hdHJpeEltcGw+IG1fbWF0cml4OwotICAgIH07CisgICAgICAgIGRvdWJsZSBtX2Fu
Z2xlOworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRyaXg7CiB9OworfQogCiAjZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAog
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzMCArMjUs
MjggQEAKICNkZWZpbmUgS1NWR19TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGxfSAogI2lm
IFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KLQotI2lu
Y2x1ZGUgImtzdmcuaCIKKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJT
VkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgImtzdmcuaCIKIAotbmFtZXNwYWNl
IEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTVkdUcmFuc2Zvcm1JbXBs
OwotICAgIGNsYXNzIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdB
bmltYXRpb25FbGVtZW50SW1wbAotICAgIHsKKworICAgIGNsYXNzIFNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50SW1wbCB7CiAgICAgcHVi
bGljOgotICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwoY29uc3QgS0RPTTo6
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpOworICAgICAg
ICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnRJbXBsKik7CiAgICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50SW1wbCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShLRE9NOjpNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGltZXJFdmVudChkb3VibGUgdGltZVBlcmNlbnRhZ2UpOwog
CiAgICAgICAgIC8vIEhlbHBlcnMKLSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUltcGw+IHBh
cnNlVHJhbnNmb3JtVmFsdWUoY29uc3QgUVN0cmluZyAmZGF0YSkgY29uc3Q7Ci0gICAgICAgIHZv
aWQgY2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IFFXTWF0cml4ICZtYXRyaXgsIGRv
dWJsZSAmYW5nbGUsIGRvdWJsZSAmY3gsIGRvdWJsZSAmY3kpIGNvbnN0OworICAgICAgICBSZWZQ
dHI8U1ZHVHJhbnNmb3JtSW1wbD4gcGFyc2VUcmFuc2Zvcm1WYWx1ZShjb25zdCBRU3RyaW5nJikg
Y29uc3Q7CisgICAgICAgIHZvaWQgY2FsY3VsYXRlUm90YXRpb25Gcm9tTWF0cml4KGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYsIGRvdWJsZSYgYW5nbGUsIGRvdWJsZSYgY3gsIGRvdWJsZSYgY3kpIGNv
bnN0OwogCi0gICAgICAgIFNWR01hdHJpeEltcGwgKmluaXRpYWxNYXRyaXgoKSBjb25zdDsKLSAg
ICAgICAgU1ZHTWF0cml4SW1wbCAqdHJhbnNmb3JtTWF0cml4KCkgY29uc3Q7CisgICAgICAgIEFm
ZmluZVRyYW5zZm9ybSBpbml0aWFsTWF0cml4KCkgY29uc3Q7CisgICAgICAgIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgdHJhbnNmb3JtTWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm1N
YXRyaXg7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIGludCBtX2N1cnJlbnRJdGVtOwpAQCAt
NTcsMTMgKzU2LDEzIEBACiAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1JbXBsPiBtX2Zyb21U
cmFuc2Zvcm07CiAgICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1JbXBsPiBtX2luaXRpYWxUcmFu
c2Zvcm07CiAKLSAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fbGFzdE1hdHJpeDsKLSAg
ICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1fdHJhbnNmb3JtTWF0cml4OworICAgICAgICBB
ZmZpbmVUcmFuc2Zvcm0gbV9sYXN0TWF0cml4OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV90
cmFuc2Zvcm1NYXRyaXg7CiAKICAgICAgICAgbXV0YWJsZSBib29sIG1fcm90YXRlU3BlY2lhbENh
c2UgOiAxOwogICAgICAgICBib29sIG1fdG9Sb3RhdGVTcGVjaWFsQ2FzZSA6IDEsIG1fZnJvbVJv
dGF0ZVNwZWNpYWxDYXNlIDogMTsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQ
T1JUCiAjZW5kaWYKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5oCShyZXZpc2lv
biAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IHByb2plY3QKIApAQCAtMjQsNTUgKzI1LDQ4IEBACiAjZGVmaW5lIEtTVkdfU1ZHQW5pbWF0aW9u
RWxlbWVudEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlICJTVkdUZXN0c0ltcGwu
aCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKKyNp
bmNsdWRlICJTVkdUZXN0c0ltcGwuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBlbnVtIEVG
aWxsTW9kZQotICAgIHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBTVkdTdHJpbmdM
aXN0SW1wbDsKKworICAgIGVudW0gRUZpbGxNb2RlIHsKICAgICAgICAgRklMTF9SRU1PVkUgPSAw
LAogICAgICAgICBGSUxMX0ZSRUVaRQogICAgIH07CiAKLSAgICBlbnVtIEVBZGRpdGl2ZU1vZGUK
LSAgICB7CisgICAgZW51bSBFQWRkaXRpdmVNb2RlIHsKICAgICAgICAgQURESVRJVkVfUkVQTEFD
RSA9IDAsCiAgICAgICAgIEFERElUSVZFX1NVTQogICAgIH07CiAKLSAgICBlbnVtIEVBY2N1bXVs
YXRlTW9kZQotICAgIHsKKyAgICBlbnVtIEVBY2N1bXVsYXRlTW9kZSB7CiAgICAgICAgIEFDQ1VN
VUxBVEVfTk9ORSA9IDAsCiAgICAgICAgIEFDQ1VNVUxBVEVfU1VNCiAgICAgfTsKIAotICAgIGVu
dW0gRUNhbGNNb2RlCi0gICAgeworICAgIGVudW0gRUNhbGNNb2RlIHsKICAgICAgICAgQ0FMQ01P
REVfRElTQ1JFVEUgPSAwLAogICAgICAgICBDQUxDTU9ERV9MSU5FQVIsCiAgICAgICAgIENBTENN
T0RFX1BBQ0VELAogICAgICAgICBDQUxDTU9ERV9TUExJTkUKICAgICB9OwogCi0gICAgZW51bSBF
UmVzdGFydAotICAgIHsKKyAgICBlbnVtIEVSZXN0YXJ0IHsKICAgICAgICAgUkVTVEFSVF9BTFdB
WVMgPSAwLAogICAgICAgICBSRVNUQVJUX1dIRU5OT1RBQ1RJVkUsCiAgICAgICAgIFJFU1RBUlRf
TkVWRVIKICAgICB9OwogCi0gICAgZW51bSBFQXR0cmlidXRlVHlwZQotICAgIHsKKyAgICBlbnVt
IEVBdHRyaWJ1dGVUeXBlIHsKICAgICAgICAgQVRUUklCVVRFVFlQRV9DU1MgPSAwLAogICAgICAg
ICBBVFRSSUJVVEVUWVBFX1hNTCwKICAgICAgICAgQVRUUklCVVRFVFlQRV9BVVRPCiAgICAgfTsK
IAotICAgIGVudW0gRUFuaW1hdGlvbk1vZGUgLy8gaW50ZXJuYWwKLSAgICB7CisgICAgZW51bSBF
QW5pbWF0aW9uTW9kZSB7IC8vIGludGVybmFsCiAgICAgICAgIE5PX0FOSU1BVElPTiA9IDAsCiAg
ICAgICAgIFRPX0FOSU1BVElPTiwKICAgICAgICAgQllfQU5JTUFUSU9OLApAQCAtMTMwLDcgKzEy
NCw3IEBACiAgICAgICAgIGludCBjYWxjdWxhdGVDdXJyZW50VmFsdWVJdGVtKGRvdWJsZSB0aW1l
UGVyY2VudGFnZSk7CiAgICAgICAgIGRvdWJsZSBjYWxjdWxhdGVSZWxhdGl2ZVRpbWVQZXJjZW50
YWdlKGRvdWJsZSB0aW1lUGVyY2VudGFnZSwgaW50IGN1cnJlbnRJdGVtKTsKIAotICAgICAgICBk
b3VibGUgcmVwZWF0aW9ucygpIGNvbnN0OworICAgICAgICBkb3VibGUgcmVwZXRpdGlvbnMoKSBj
b25zdDsKICAgICAgICAgYm9vbCBpc0luZGVmaW5pdGUoZG91YmxlIHZhbHVlKSBjb25zdDsKIAog
ICAgIHByb3RlY3RlZDoKQEAgLTE2MSw3ICsxNTUsOCBAQAogICAgICAgICBkb3VibGUgbV9lbmQ7
CiAgICAgICAgIGRvdWJsZSBtX2JlZ2luOwogCi0gICAgICAgIGRvdWJsZSBtX3JlcGVhdGlvbnM7
CisgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBuZWVkIHRvIGJlIGludGVnZXJzIHJhdGhlciB0aGFu
IGZsb2F0aW5nIHBvaW50LgorICAgICAgICBkb3VibGUgbV9yZXBldGl0aW9uczsKICAgICAgICAg
ZG91YmxlIG1fcmVwZWF0Q291bnQ7CiAKICAgICAgICAgUmVmUHRyPFNWR1N0cmluZ0xpc3RJbXBs
PiBtX3ZhbHVlczsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmNwcAkocmV2
aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwyOCArMjIsMjggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8ZmxvYXQuaD4KKyNpbmNsdWRlICJTVkdBbmltYXRp
b25FbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSA8a2RvbS9rZG9tLmg+Ci0jaW5jbHVkZSA8a2Rv
bS9jb3JlL0F0dHJJbXBsLmg+Ci0jaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiY3NzX3ZhbHVlaW1wbC5oIgotI2lu
Y2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNs
dWRlICJTVkdVUklSZWZlcmVuY2VJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudElt
cGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNW
R1NWR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAi
S1NWR1RpbWVTY2hlZHVsZXIuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVy
LmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5o
IgorI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxl
bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2VJbXBsLmgiCisjaW5jbHVkZSAi
WExpbmtOYW1lcy5oIgorI2luY2x1ZGUgImNzc192YWx1ZWltcGwuaCIKICNpbmNsdWRlICJjc3Nw
cm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAia3N2Z2Nzc3Byb3BlcnRpZXMuaCIKLQotI2luY2x1ZGUg
IlhMaW5rTmFtZXMuaCIKLQogI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGZsb2F0Lmg+Cisj
aW5jbHVkZSA8a2RvbS9ET01TdHJpbmcuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwu
aD4KKyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNjQsNyArNjQsNyBAQAogICAgIG1fbWF4ID0gMC4wOwogICAg
IG1fYmVnaW4gPSAwLjA7CiAKLSAgICBtX3JlcGVhdGlvbnMgPSAwOworICAgIG1fcmVwZXRpdGlv
bnMgPSAwOwogICAgIG1fcmVwZWF0Q291bnQgPSAwOwogCiAgICAgbV9maWxsID0gRklMTF9SRU1P
VkU7CkBAIC01OTEsOSArNTkxLDkgQEAKICAgICAgICAgICAgIChlbmRUaW1lUGVyY2VudGFnZSAt
IGJlZ2luVGltZVBlcmNlbnRhZ2UpKTsKIH0KIAotZG91YmxlIFNWR0FuaW1hdGlvbkVsZW1lbnRJ
bXBsOjpyZXBlYXRpb25zKCkgY29uc3QKK2RvdWJsZSBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6
cmVwZXRpdGlvbnMoKSBjb25zdAogewotICAgIHJldHVybiBtX3JlcGVhdGlvbnM7CisgICAgcmV0
dXJuIG1fcmVwZXRpdGlvbnM7CiB9CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6Omlz
SW5kZWZpbml0ZShkb3VibGUgdmFsdWUpIGNvbnN0CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRWxlbWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuaAkocmV2aXNp
b24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMg
WmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
CiAKQEAgLTI0LDM3ICsyNSwzMCBAQAogI2RlZmluZSBLU1ZHX1NWR0VsZW1lbnRJbXBsX0gKICNp
ZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlIDxrZG9tL2Nv
cmUvWE1MRWxlbWVudEltcGwuaD4KKyNpbmNsdWRlICJkb21fZWxlbWVudGltcGwuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFNWR01hdHJpeEltcGw7CiAgICAgY2xhc3MgU1ZH
U1ZHRWxlbWVudEltcGw7Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudEltcGw7Ci0gICAgY2xh
c3MgRWNtYTsKLSAgICBjbGFzcyBEb2N1bWVudFB0cjsKLSAgICB0eXBlZGVmIFN0eWxlZEVsZW1l
bnRJbXBsIFhNTEVsZW1lbnRJbXBsOwogCi0gICAgY2xhc3MgU1ZHRWxlbWVudEltcGwgOiBwdWJs
aWMgS0RPTTo6WE1MRWxlbWVudEltcGwKKyAgICBjbGFzcyBTVkdFbGVtZW50SW1wbCA6IHB1Ymxp
YyBTdHlsZWRFbGVtZW50SW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0VsZW1l
bnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50
SW1wbCAqZG9jKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHRWxlbWVudEltcGwoKTsKKyAgICAgICAg
U1ZHRWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBs
Kik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWR0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1N1cHBvcnRlZChLRE9NOjpET01TdHJpbmdJ
bXBsICpmZWF0dXJlLCBLRE9NOjpET01TdHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBib29sIGlzU3VwcG9ydGVkKERPTVN0cmluZ0ltcGwqIGZlYXR1cmUsIERPTVN0
cmluZ0ltcGwqIHZlcnNpb24pIGNvbnN0OwogCiAgICAgICAgIFNWR1NWR0VsZW1lbnRJbXBsICpv
d25lclNWR0VsZW1lbnQoKSBjb25zdDsKICAgICAgICAgU1ZHRWxlbWVudEltcGwgKnZpZXdwb3J0
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgICAgIC8vIEhlbHBlciBtZXRob2RzIHRoYXQgcmV0dXJu
cyB0aGUgYXR0ciB2YWx1ZSBpZiBhdHRyIGlzIHNldCwgb3RoZXJ3aXNlIHRoZSBkZWZhdWx0IHZh
bHVlLgogICAgICAgICAvLyBJdCB0aHJvd3MgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIGlm
IHRoZSBlbGVtZW50IGlzIHJlYWQtb25seS4KLSAgICAgICAgS0RPTTo6QXRvbWljU3RyaW5nIHRy
eUdldEF0dHJpYnV0ZShjb25zdCBLRE9NOjpET01TdHJpbmcmIG5hbWUsIEtET006OkF0b21pY1N0
cmluZyBkZWZhdWx0VmFsdWUgPSBLRE9NOjpBdG9taWNTdHJpbmcoKSkgY29uc3Q7Ci0gICAgICAg
IEtET006OkF0b21pY1N0cmluZyB0cnlHZXRBdHRyaWJ1dGVOUyhjb25zdCBLRE9NOjpET01TdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgS0RPTTo6RE9NU3RyaW5nJiBsb2NhbE5hbWUsIEtET006
OkF0b21pY1N0cmluZyBkZWZhdWx0VmFsdWUgPSBLRE9NOjpBdG9taWNTdHJpbmcoKSkgY29uc3Q7
CisgICAgICAgIEF0b21pY1N0cmluZyB0cnlHZXRBdHRyaWJ1dGUoY29uc3QgRE9NU3RyaW5nJiBu
YW1lLCBBdG9taWNTdHJpbmcgZGVmYXVsdFZhbHVlID0gQXRvbWljU3RyaW5nKCkpIGNvbnN0Owor
ICAgICAgICBBdG9taWNTdHJpbmcgdHJ5R2V0QXR0cmlidXRlTlMoY29uc3QgRE9NU3RyaW5nJiBu
YW1lc3BhY2VVUkksIGNvbnN0IERPTVN0cmluZyYgbG9jYWxOYW1lLCBBdG9taWNTdHJpbmcgZGVm
YXVsdFZhbHVlID0gQXRvbWljU3RyaW5nKCkpIGNvbnN0OwogCiAgICAgICAgIC8vIEludGVybmFs
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShLRE9NOjpNYXBwZWRB
dHRyaWJ1dGVJbXBsICphdHRyKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKE1hcHBlZEF0dHJpYnV0ZUltcGwqKTsKIAotICAgICAgICAvLyBUbyBiZSBpbXBsZW1l
bnRlZCBieSBhbnkgZWxlbWVudCB3aGljaCBjYW4gZXN0YWJsaXNoIG5ldyB2aWV3cG9ydHMuLi4K
KyAgICAgICAgLy8gVG8gYmUgaW1wbGVtZW50ZWQgYnkgYW55IGVsZW1lbnQgd2hpY2ggY2FuIGVz
dGFibGlzaCBuZXcgdmlld3BvcnRzLgogICAgICAgICB2aXJ0dWFsIFFTdHJpbmcgYWRqdXN0Vmll
d3BvcnRDbGlwcGluZygpIGNvbnN0IHsgcmV0dXJuIFFTdHJpbmc6Om51bGw7IH0KICAgICAgICAg
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CkBAIC02OCw4ICs2Miw4IEBACiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlUmVu
ZGVyZXIoKSB7IG1fY2xvc2VkID0gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAg
ICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoRE9NOjpOb2RlSW1wbCAq
KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5
bGUqKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihOb2RlSW1wbCopIGNvbnN0OwogICAgICAgICAKICAgICAgICAgLy8gaGVs
cGVyOgogICAgICAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9jbG9zZWQ7IH0K
QEAgLTc4LDE2ICs3MiwxNCBAQAogICAgICAgICBib29sIG1fY2xvc2VkOwogICAgICAgICB2b2lk
IGFkZFNWR0V2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0
IEF0dHJpYnV0ZUltcGwqIGF0dHIpOwogICAgIH07Ci19OwogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0gICAgc3RhdGljIGlubGluZSBTVkdFbGVtZW50SW1wbCAqc3ZnX2R5bmFtaWNfY2FzdChLRE9N
OjpOb2RlSW1wbCAqbm9kZSkgewotICAgICAgICBTVkdFbGVtZW50SW1wbCAqc3ZnRWxlbWVudCA9
IE5VTEw7CisgICAgaW5saW5lIFNWR0VsZW1lbnRJbXBsKiBzdmdfZHluYW1pY19jYXN0KE5vZGVJ
bXBsICpub2RlKSB7CisgICAgICAgIFNWR0VsZW1lbnRJbXBsKiBzdmdFbGVtZW50ID0gMDsKICAg
ICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNTVkdFbGVtZW50KCkpCiAgICAgICAgICAgICBzdmdF
bGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudEltcGwgKj4obm9kZSk7CiAgICAgICAgIHJl
dHVybiBzdmdFbGVtZW50OwogICAgIH0KLX07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAog
I2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWF0cml4SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdNYXRyaXhJbXBsLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NW
R01hdHJpeEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
ICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI0LDgxICsyNSw0NSBAQAogI2Rl
ZmluZSBLU1ZHX1NWR01hdHJpeEltcGxfSAogI2lmIFNWR19TVVBQT1JUCiAKLSNpbmNsdWRlIDxx
bWF0cml4Lmg+Ci0KKyNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTaGFy
ZWQuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBTVkdNYXRyaXhJbXBsIDogcHVibGljIFNoYXJlZDxTVkdNYXRyaXhJbXBsPgogICAgIHsgCiAg
ICAgcHVibGljOgotICAgICAgICBTVkdNYXRyaXhJbXBsKCk7Ci0gICAgICAgIFNWR01hdHJpeElt
cGwoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBkb3Vi
bGUgZik7Ci0gICAgICAgIFNWR01hdHJpeEltcGwoUU1hdHJpeCBtYXQpOwotICAgICAgICB2aXJ0
dWFsIH5TVkdNYXRyaXhJbXBsKCk7Ci0KLSAgICAgICAgdm9pZCBzZXRBKGRvdWJsZSBhKTsKLSAg
ICAgICAgZG91YmxlIGEoKSBjb25zdDsKLQotICAgICAgICB2b2lkIHNldEIoZG91YmxlIGIpOwot
ICAgICAgICBkb3VibGUgYigpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7
Ci0gICAgICAgIGRvdWJsZSBjKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBzZXREKGRvdWJsZSBk
KTsKLSAgICAgICAgZG91YmxlIGQoKSBjb25zdDsKLQotICAgICAgICB2b2lkIHNldEUoZG91Ymxl
IGUpOwotICAgICAgICBkb3VibGUgZSgpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgc2V0Rihkb3Vi
bGUgZik7Ci0gICAgICAgIGRvdWJsZSBmKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBjb3B5KGNv
bnN0IFNWR01hdHJpeEltcGwgKm90aGVyKTsKLQotICAgICAgICBTVkdNYXRyaXhJbXBsICppbnZl
cnNlKCk7Ci0KLSAgICAgICAgLy8gUHJlLW11bHRpcGxpZWQgb3BlcmF0aW9ucywgYXMgcGVyIHRo
ZSBzcGVjcy4KLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqbXVsdGlwbHkoY29uc3QgU1ZHTWF0cml4
SW1wbCAqc2Vjb25kTWF0cml4KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqdHJhbnNsYXRlKGRv
dWJsZSB4LCBkb3VibGUgeSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnNjYWxlKGRvdWJsZSBz
Y2FsZUZhY3Rvcik7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnNjYWxlTm9uVW5pZm9ybShkb3Vi
bGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAgU1ZHTWF0cml4
SW1wbCAqcm90YXRlKGRvdWJsZSBhbmdsZSk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnJvdGF0
ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAq
ZmxpcFgoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqZmxpcFkoKTsKLSAgICAgICAgU1ZHTWF0
cml4SW1wbCAqc2tld1goZG91YmxlIGFuZ2xlKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqc2tl
d1koZG91YmxlIGFuZ2xlKTsKLQotICAgICAgICAvLyBQb3N0LW11bHRpcGxpZWQgb3BlcmF0aW9u
cwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0TXVsdGlwbHkoY29uc3QgU1ZHTWF0cml4SW1w
bCAqc2Vjb25kTWF0cml4KTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFRyYW5zbGF0ZShk
b3VibGUgeCwgZG91YmxlIHkpOwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0U2NhbGUoZG91
YmxlIHNjYWxlRmFjdG9yKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9zdFNjYWxlTm9uVW5p
Zm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKTsKLSAgICAgICAg
U1ZHTWF0cml4SW1wbCAqcG9zdFJvdGF0ZShkb3VibGUgYW5nbGUpOwotICAgICAgICBTVkdNYXRy
aXhJbXBsICpwb3N0Um90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHkpOwotICAgICAg
ICBTVkdNYXRyaXhJbXBsICpwb3N0RmxpcFgoKTsKLSAgICAgICAgU1ZHTWF0cml4SW1wbCAqcG9z
dEZsaXBZKCk7Ci0gICAgICAgIFNWR01hdHJpeEltcGwgKnBvc3RTa2V3WChkb3VibGUgYW5nbGUp
OwotICAgICAgICBTVkdNYXRyaXhJbXBsICpwb3N0U2tld1koZG91YmxlIGFuZ2xlKTsKLQotICAg
ICAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICAgICAgLy8gS1NWRyBoZWxwZXIgbWV0aG9kCi0gICAg
ICAgIFFNYXRyaXggJnFtYXRyaXgoKTsKLSAgICAgICAgY29uc3QgUU1hdHJpeCAmcW1hdHJpeCgp
IGNvbnN0OwotCi0gICAgICAgIC8vIERldGVybWluZSB0aGUgc2NhbGluZyBjb21wb25lbnQgb2Yg
dGhlIG1hdHJpeCBhbmQgZmFjdG9yIGl0IG91dC4gQWZ0ZXIKLSAgICAgICAgLy8gdGhpcyBvcGVy
YXRpb24sIHRoZSBtYXRyaXggaGFzIHggYW5kIHkgc2NhbGUgb2Ygb25lLgotICAgICAgICB2b2lk
IHJlbW92ZVNjYWxlKGRvdWJsZSAqeFNjYWxlLCBkb3VibGUgKnlTY2FsZSk7CisgICAgICAgIFNW
R01hdHJpeEltcGwoKSB7IH0KKyAgICAgICAgU1ZHTWF0cml4SW1wbChkb3VibGUgYSwgZG91Ymxl
IGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgICAgICAgICAg
OiBtX21hdHJpeChhLCBiLCBjLCBkLCBlLCBmKSB7IH0KKyAgICAgICAgU1ZHTWF0cml4SW1wbChj
b25zdCBTVkdNYXRyaXhJbXBsJiBvdGhlcikgOiBTaGFyZWQ8U1ZHTWF0cml4SW1wbD4oKSwgbV9t
YXRyaXgob3RoZXIubV9tYXRyaXgpIHsgfQorICAgICAgICBTVkdNYXRyaXhJbXBsKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgbWF0cml4KSA6IG1fbWF0cml4KG1hdHJpeCkgeyB9CisKKyAgICAgICAg
b3BlcmF0b3IgY29uc3QgQWZmaW5lVHJhbnNmb3JtJigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4
OyB9CisKKyAgICAgICAgZG91YmxlIGEoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5hKCk7IH0K
KyAgICAgICAgZG91YmxlIGIoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5iKCk7IH0KKyAgICAg
ICAgZG91YmxlIGMoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5jKCk7IH0KKyAgICAgICAgZG91
YmxlIGQoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5kKCk7IH0KKyAgICAgICAgZG91YmxlIGUo
KSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5lKCk7IH0KKyAgICAgICAgZG91YmxlIGYoKSBjb25z
dCB7IHJldHVybiBtX21hdHJpeC5mKCk7IH0KKworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gaW52
ZXJzZSgpIGNvbnN0OworCisgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtdWx0aXBseShjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0
ZShkb3VibGUgeCwgZG91YmxlIHkpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gc2Nh
bGUoZG91YmxlIHNjYWxlRmFjdG9yKSBjb25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHNj
YWxlTm9uVW5pZm9ybShkb3VibGUgc2NhbGVGYWN0b3JYLCBkb3VibGUgc2NhbGVGYWN0b3JZKSBj
b25zdDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHJvdGF0ZShkb3VibGUgYW5nbGUpIGNvbnN0
OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gcm90YXRlRnJvbVZlY3Rvcihkb3VibGUgeCwgZG91
YmxlIHkpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gZmxpcFgoKSBjb25zdDsKKyAg
ICAgICAgQWZmaW5lVHJhbnNmb3JtIGZsaXBZKCkgY29uc3Q7CisgICAgICAgIEFmZmluZVRyYW5z
Zm9ybSBza2V3WChkb3VibGUgYW5nbGUpIGNvbnN0OworICAgICAgICBBZmZpbmVUcmFuc2Zvcm0g
c2tld1koZG91YmxlIGFuZ2xlKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
c2V0TWF0cml4KFFNYXRyaXggbWF0KTsKLSAgICAgICAgUU1hdHJpeCBtX21hdDsKLSAgICB9Owor
ICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9tYXRyaXg7CiB9OworfQogCiAjZW5kaWYgLy8gU1ZH
X1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudElt
cGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVt
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMywxMiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudEltcGwuaCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgotI2luY2x1ZGUgImtk
b20vRE9NU3RyaW5nLmgiCisKICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJL
U1ZHVGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgot
CisjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdEltcGwuaCIKKyNpbmNsdWRlICJrZG9tL0RPTVN0cmlu
Zy5oIgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKQEAgLTIw
NCw3ICsyMDUsNyBAQAogICAgICAgICBiID0gbV9pbml0aWFsQ29sb3IuYmx1ZSgpOwogICAgIH0K
IAotICAgIGlmKGlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRpb25zKCkgIT0gMC4wKQorICAgIGlm
KGlzQWNjdW11bGF0ZWQoKSAmJiByZXBldGl0aW9ucygpICE9IDAuMCkKICAgICB7CiAgICAgICAg
IHIgKz0gbV9sYXN0Q29sb3IucmVkKCk7CiAgICAgICAgIGcgKz0gbV9sYXN0Q29sb3IuZ3JlZW4o
KTsKQEAgLTIxNywxMCArMjE4LDEwIEBACiAgICAgLy8gRW5kIGNvbmRpdGlvbi4KICAgICBpZih0
aW1lUGVyY2VudGFnZSA9PSAxLjApCiAgICAgewotICAgICAgICBpZigobV9yZXBlYXRDb3VudCA+
IDAgJiYgbV9yZXBlYXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEpIHx8IGlzSW5kZWZpbml0ZSht
X3JlcGVhdENvdW50KSkKKyAgICAgICAgaWYoKG1fcmVwZWF0Q291bnQgPiAwICYmIG1fcmVwZXRp
dGlvbnMgPCBtX3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmluaXRlKG1fcmVwZWF0Q291bnQp
KQogICAgICAgICB7CiAgICAgICAgICAgICBtX2xhc3RDb2xvciA9IG1fY3VycmVudENvbG9yOwot
ICAgICAgICAgICAgbV9yZXBlYXRpb25zKys7CisgICAgICAgICAgICBtX3JlcGV0aXRpb25zKys7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR0Vs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRWxlbWVudEltcGwuY3Bw
CShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDExICs0Niw3IEBACiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
dXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiAKLVNWR0VsZW1lbnRJbXBsOjpTVkdFbGVtZW50
SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudElt
cGwgKmRvYykgOiBLRE9NOjpYTUxFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBtX2Nsb3NlZChm
YWxzZSkKLXsKLX0KLQotU1ZHRWxlbWVudEltcGw6On5TVkdFbGVtZW50SW1wbCgpCitTVkdFbGVt
ZW50SW1wbDo6U1ZHRWxlbWVudEltcGwoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnRJbXBsICpkb2MpIDogU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgbV9jbG9z
ZWQoZmFsc2UpCiB7CiB9CiAKQEAgLTEzMiw3ICsxMjgsNyBAQAogICAgIGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbmJsdXJBdHRyKQogICAgICAgICBhZGRTVkdFdmVudExpc3RlbmVyKERPTUZv
Y3VzT3V0RXZlbnQsIGF0dHIpOwogICAgIGVsc2UKLSAgICAgICAgS0RPTTo6U3R5bGVkRWxlbWVu
dEltcGw6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworICAgICAgICBTdHlsZWRFbGVtZW50
SW1wbDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIGJvb2wgU1ZHRWxlbWVudElt
cGw6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoRE9NOjpOb2RlSW1wbCAqY2hpbGQpIGNvbnN0
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykK
KysrIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsMjYgKzIyLDI2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgotI2luY2x1ZGUgImNzc3N0eWxlc2Vs
ZWN0b3IuaCIKLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKLQotI2luY2x1ZGUgImtzdmcuaCIK
LSNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlNWR0hlbHBlci5oIgotI2luY2x1ZGUg
IlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdEltcGwu
aCIKICNpbmNsdWRlICJTVkdHcmFkaWVudEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRE9N
SW1wbGVtZW50YXRpb25JbXBsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwuaCIK
LSNpbmNsdWRlICJTVkdTdG9wRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgi
CisjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTVkdSZW5kZXJTdHlsZS5oIgotCisjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnRJbXBsLmgiCisj
aW5jbHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZUltcGwuaCIKKyNpbmNsdWRlICJjc3Nz
dHlsZXNlbGVjdG9yLmgiCisjaW5jbHVkZSAia3N2Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0Nh
bnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdy
YWRpZW50Lmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgor
I2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50Lmg+
CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZH
OwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
c3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMjQgKzIyLDI0IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20v
Y29yZS9BdHRySW1wbC5oPgotI2luY2x1ZGUgPGtkb20vZXZlbnRzL01vdXNlRXZlbnRJbXBsLmg+
Ci0jaW5jbHVkZSA8a2RvbS9ldmVudHMva2RvbWV2ZW50cy5oPgotI2luY2x1ZGUgPGtkb20vSGVs
cGVyLmg+Ci0jaW5jbHVkZSAieG1sL2RvbTJfZXZlbnRzaW1wbC5oIgotI2luY2x1ZGUgImNzc2hl
bHBlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgotCi0jaW5jbHVkZSA8a2NhbnZhcy9L
Q2FudmFzQ3JlYXRvci5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgot
I2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlICJT
VkdBRWxlbWVudEltcGwuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0FuaW1h
dGVkQm9vbGVhbkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKICNp
bmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgImNz
c2hlbHBlci5oIgorI2luY2x1ZGUgInhtbC9kb20yX2V2ZW50c2ltcGwuaCIKKyNpbmNsdWRlIDxr
Y2FudmFzL0tDYW52YXNDb250YWluZXIuaD4KKyNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVh
dG9yLmg+CisjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgorI2lu
Y2x1ZGUgPGtkb20vSGVscGVyLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Cisj
aW5jbHVkZSA8a2RvbS9ldmVudHMvTW91c2VFdmVudEltcGwuaD4KKyNpbmNsdWRlIDxrZG9tL2V2
ZW50cy9rZG9tZXZlbnRzLmg+CiAjaW5jbHVkZSA8a3N2ZzIvS1NWR1BhcnQuaD4KLSNpbmNsdWRl
ICJTVkdBRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3Zn
L1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApA
QCAtMjQsNTIgKzI1LDQyIEBACiAjZGVmaW5lIEtTVkdfU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3Jt
LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwuaCIKICNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgogCi1jbGFzcyBRTWF0cml4OwotCi1uYW1lc3BhY2Ug
S0RPTQotewotICAgIGNsYXNzIE5vZGVJbXBsOwotICAgIGNsYXNzIERPTVN0cmluZ0ltcGw7Ci0g
ICAgY2xhc3MgQXR0cmlidXRlSW1wbDsKLX07Ci0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgY2xh
c3MgU1ZHTWF0cml4SW1wbDsKK25hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTVkdUcmFu
c2Zvcm1MaXN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOwot
ICAgIGNsYXNzIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdT
dHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCwgcHVibGljIFNWR1RyYW5zZm9ybWFibGVJbXBsCi0g
ICAgeworCisgICAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsIDogcHVi
bGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLCBwdWJsaWMgU1ZHVHJhbnNmb3JtYWJs
ZUltcGwgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50
SW1wbCAqZG9jKTsKKyAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0
dWFsIH5TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudEltcGwoKTsKICAgICAgICAgCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZFRyYW5zZm9ybWFibGUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICAgICAgLy8gJ1NWR1RyYW5zZm9ybWFibGUnIGZ1bmN0aW9ucwogICAgICAg
ICB2aXJ0dWFsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwgKnRyYW5zZm9ybSgpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmxvY2FsTWF0cml4KCkgY29uc3Q7Cisg
ICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4KCkgY29uc3Q7CiAKICAg
ICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnU1ZHTG9jYXRhYmxlJwotICAgICAgICB2aXJ0dWFsIFNW
R01hdHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeElt
cGwgKmdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBnZXRDVE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2Ny
ZWVuQ1RNKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKm5lYXJlc3RW
aWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50SW1wbCAq
ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIFNWR1Jl
Y3RJbXBsICpnZXRCQm94KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4SW1wbCAq
Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnRJbXBsICplbGVtZW50KSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0Vs
ZW1lbnRJbXBsKikgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKEtET006Ok1hcHBlZEF0dHJpYnV0ZUltcGwgKmF0dHIpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlSW1wbCopOwogCi0gICAg
ICAgIHZvaWQgdXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmxvY2Fs
VHJhbnNmb3Jtcyk7CisgICAgICAgIHZvaWQgdXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNm
b3JtTGlzdEltcGwqKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsK
IAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHTWF0cml4SW1wbD4g
bV9sb2NhbE1hdHJpeDsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1fbG9jYWxNYXRyaXg7CiAg
ICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw+IG1fdHJh
bnNmb3JtOwogICAgIH07CiB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0
YWJsZUVsZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2Rl
Lm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNywxNiArMjgsMTAgQEAK
ICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0xvY2F0YWJs
ZUltcGwuaCIKIAotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBTVkdSZWN0SW1wbDsKLSAg
ICBjbGFzcyBTVkdNYXRyaXhJbXBsOwotICAgIGNsYXNzIFNWR0VsZW1lbnRJbXBsOwotICAgIGNs
YXNzIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsIDogcHVibGljIFNWR1N0eWxlZEVsZW1l
bnRJbXBsLCBwdWJsaWMgU1ZHTG9jYXRhYmxlSW1wbAotICAgIHsKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICBjbGFzcyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdT
dHlsZWRFbGVtZW50SW1wbCwgcHVibGljIFNWR0xvY2F0YWJsZUltcGwgewogICAgIHB1YmxpYzoK
LSAgICAgICAgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpOwotICAgICAgICB2aXJ0
dWFsIH5TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCgpOworICAgICAgICBTVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50SW1wbChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dEltcGwqKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZExvY2F0YWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApAQCAtNDUsMTEgKzQwLDExIEBACiAgICAgICAg
IHZpcnR1YWwgU1ZHRWxlbWVudEltcGwgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7
CiAKICAgICAgICAgdmlydHVhbCBTVkdSZWN0SW1wbCAqZ2V0QkJveCgpIGNvbnN0OwotICAgICAg
ICB2aXJ0dWFsIFNWR01hdHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFs
IFNWR01hdHJpeEltcGwgKmdldFNjcmVlbkNUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNW
R01hdHJpeEltcGwgKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50SW1wbCAqZWxlbWVu
dCkgY29uc3Q7Ci0gICAgfTsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RN
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTSgp
IGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRUcmFuc2Zvcm1Ub0Vs
ZW1lbnQoU1ZHRWxlbWVudEltcGwqKSBjb25zdDsKIH07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQ
UE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwuY3Bw
CShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTEgKzIyLDEyIEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgot
Ci0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHRkVNZXJnZU5vZGVFbGVtZW50
SW1wbC5oIgorCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHSGVscGVyLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwy
NCArMjIsMjMgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5j
bHVkZSA8cXN0cmluZ2xpc3QuaD4KLQotI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgor
I2luY2x1ZGUgIlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmgiCiAKKyNpbmNsdWRlICJTVkdB
bmltYXRlZEVudW1lcmF0aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkSW50ZWdlcklt
cGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckltcGwuaCIKKyNpbmNsdWRlICJTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKKyNpbmNsdWRl
ICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAia3N2
Zy5oIgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0Nh
bnZhc1Jlc291cmNlcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaD4KKyNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNSZXNvdXJjZXMuaD4KICNpbmNsdWRlIDxrY2FudmFzL2Rl
dmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRl
ICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXJJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZEludGVnZXJJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRp
b25JbXBsLmgiCisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8cXN0
cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1RyYW5z
Zm9ybWFibGVJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHVHJhbnNm
b3JtYWJsZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzNCArMjIsMjUgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8cXJlZ2V4cC5oPgot
I2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+Ci0jaW5jbHVkZSA8a3htbGNvcmUvUGFzc1JlZlB0ci5o
PgotCi0jaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+Ci0KLSNpbmNsdWRlIDxrY2FudmFz
L0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KKyNpbmNsdWRlICJT
VkdUcmFuc2Zvcm1hYmxlSW1wbC5oIgogCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRl
ICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRE9NSW1wbGVt
ZW50YXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTWF0
cml4SW1wbC5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGVJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUg
IlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEltcGwuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1JbXBsLmgiCiAjaW5jbHVkZSAi
a3N2Zy5oIgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgorI2luY2x1ZGUgPGtjYW52YXMv
UmVuZGVyUGF0aC5oPgorI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgorI2luY2x1ZGUg
PGt4bWxjb3JlL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDxxcmVnZXhwLmg+CisjaW5jbHVkZSA8
cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR1RyYW5zZm9ybWFi
bGVJbXBsOjpTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpIDogU1ZHTG9jYXRhYmxlSW1wbCgpCi17Ci19
Ci0KLVNWR1RyYW5zZm9ybWFibGVJbXBsOjp+U1ZHVHJhbnNmb3JtYWJsZUltcGwoKQotewotfQot
CiB2b2lkIFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShTVkdU
cmFuc2Zvcm1MaXN0SW1wbCAqbGlzdCwgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0cmFuc2Zv
cm0pCiB7CiAgICAgLy8gU3BsaXQgc3RyaW5nIGZvciBoYW5kbGluZyAxIHRyYW5zZm9ybSBzdGF0
ZW1lbnQgYXQgYSB0aW1lCkBAIC0xMDYsMTUgKzk3LDEzIEBACiAgICAgICAgICAgICB0LT5zZXRT
a2V3WChwYXJhbXNbMF0udG9Eb3VibGUoKSk7CiAgICAgICAgIGVsc2UgaWYgKHN1YnRyYW5zZm9y
bVswXSA9PSAic2tld3kiICYmIChwYXJhbXMuY291bnQoKSA9PSAxKSkKICAgICAgICAgICAgIHQt
PnNldFNrZXdZKHBhcmFtc1swXS50b0RvdWJsZSgpKTsKLSAgICAgICAgZWxzZSBpZiAoc3VidHJh
bnNmb3JtWzBdID09ICJtYXRyaXgiICYmIChwYXJhbXMuY291bnQoKSA9PSA2KSkgewotICAgICAg
ICAgICAgU1ZHTWF0cml4SW1wbCAqcmV0ID0gbmV3IFNWR01hdHJpeEltcGwocGFyYW1zWzBdLnRv
RG91YmxlKCksCisgICAgICAgIGVsc2UgaWYgKHN1YnRyYW5zZm9ybVswXSA9PSAibWF0cml4IiAm
JiAocGFyYW1zLmNvdW50KCkgPT0gNikpCisgICAgICAgICAgICB0LT5zZXRNYXRyaXgoQWZmaW5l
VHJhbnNmb3JtKHBhcmFtc1swXS50b0RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLnRvRG91YmxlKCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMl0udG9E
b3VibGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcmFtc1szXS50b0RvdWJsZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzRdLnRvRG91YmxlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbNV0udG9Eb3VibGUo
KSk7Ci0gICAgICAgICAgICB0LT5zZXRNYXRyaXgocmV0KTsKLSAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHBhcmFtc1s1XS50b0RvdWJsZSgpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAodC0+
dHlwZSgpID09IFNWR19UUkFOU0ZPUk1fVU5LTk9XTikKICAgICAgICAgICAgIGJyZWFrOyAvLyBm
YWlsZWQgdG8gcGFyc2UgYSB2YWxpZCB0cmFuc2Zvcm0sIGFib3J0LgpJbmRleDoga3N2ZzIvc3Zn
L1NWR01hcmtlckVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR01hcmtl
ckVsZW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
ICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzMSArMjUsMjQgQEAKICNkZWZp
bmUgS1NWR19TVkdNYXJrZXJFbGVtZW50SW1wbF9ICiAjaWYgU1ZHX1NVUFBPUlQKIAotI2luY2x1
ZGUgIlNWR0xhbmdTcGFjZUltcGwuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VzLmgiCisj
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKICNpbmNsdWRlICJT
VkdGaXRUb1ZpZXdCb3hJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogI2lu
Y2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwuaCIKLQotY2xhc3MgS0NhbnZhc01hcmtlcjsKIAotbmFtZXNwYWNl
IEtET00KLXsKLSAgICBjbGFzcyBEb2N1bWVudEltcGw7Ci19OwotCi1uYW1lc3BhY2UgS1NWRwot
eworbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0FuZ2xlSW1wbDsKICAgICBjbGFz
cyBTVkdBbmltYXRlZEFuZ2xlSW1wbDsKLSAgICBjbGFzcyBTVkdBbmltYXRlZExlbmd0aEltcGw7
CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGw7CisKICAgICBjbGFzcyBTVkdN
YXJrZXJFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50SW1wbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2VJbXBsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0Zp
dFRvVmlld0JveEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXJrZXJFbGVt
ZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVu
dEltcGwgKmRvYyk7CisgICAgICAgIFNWR01hcmtlckVsZW1lbnRJbXBsKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50SW1wbCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdNYXJr
ZXJFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdNYXJrZXJFbGVtZW50JyBmdW5jdGlv
bnMKQEAgLTYxLDEyICs1NSwxMiBAQAogICAgICAgICBTVkdBbmltYXRlZEFuZ2xlSW1wbCAqb3Jp
ZW50QW5nbGUoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHNldE9yaWVudFRvQXV0bygpOwotICAg
ICAgICB2b2lkIHNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGVJbXBsICphbmdsZSk7CisgICAgICAg
IHZvaWQgc2V0T3JpZW50VG9BbmdsZShTVkdBbmdsZUltcGwqKTsKIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0
cik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGVJbXBsKik7CiAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwg
a2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBr
aHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKTsKKyAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc01hcmtlciAqY2FudmFzUmVzb3VyY2UoKTsKIAogICAg
IHByaXZhdGU6CkBAIC03OSw3ICs3Myw3IEBACiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0Fu
aW1hdGVkQW5nbGVJbXBsPiBtX29yaWVudEFuZ2xlOwogICAgICAgICBLQ2FudmFzTWFya2VyICpt
X21hcmtlcjsKICAgICB9OwotfTsKK30KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCiAjZW5kaWYK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3Zn
Mi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3Zn
L1NWR1RyYW5zZm9ybUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94
QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAKICAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjIsNDMgKzIzLDE5
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtk
ZWJ1Zy5oPgotCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR1RyYW5z
Zm9ybUltcGwuaCIKKwogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAi
a3N2Zy5oIgorI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAot
U1ZHVHJhbnNmb3JtSW1wbDo6U1ZHVHJhbnNmb3JtSW1wbCgpIDogU2hhcmVkPFNWR1RyYW5zZm9y
bUltcGw+KCkKLXsKLSAgICBtX21hdHJpeCA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdN
YXRyaXgoKTsKLQotICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fVU5LTk9XTjsKLSAgICBtX2Fu
Z2xlID0gMDsKLX0KLQotU1ZHVHJhbnNmb3JtSW1wbDo6flNWR1RyYW5zZm9ybUltcGwoKQorU1ZH
VHJhbnNmb3JtSW1wbDo6U1ZHVHJhbnNmb3JtSW1wbCgpIDogbV90eXBlKFNWR19UUkFOU0ZPUk1f
VU5LTk9XTiksIG1fYW5nbGUoMCkKIHsKIH0KIAotdW5zaWduZWQgc2hvcnQgU1ZHVHJhbnNmb3Jt
SW1wbDo6dHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHlwZTsKLX0KLQotU1ZHTWF0cml4
SW1wbCAqU1ZHVHJhbnNmb3JtSW1wbDo6bWF0cml4KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9t
YXRyaXguZ2V0KCk7Ci19Ci0KLWRvdWJsZSBTVkdUcmFuc2Zvcm1JbXBsOjphbmdsZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fYW5nbGU7Ci19Ci0KLXZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0
TWF0cml4KFNWR01hdHJpeEltcGwgKm1hdHJpeCkKK3ZvaWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0
TWF0cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbWF0cml4KQogewogICAgIG1fdHlwZSA9IFNW
R19UUkFOU0ZPUk1fTUFUUklYOwogICAgIG1fYW5nbGUgPSAwOwpAQCAtNzEsOCArNDgsNyBAQAog
ICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFOwogICAgIG1fYW5nbGUgPSAwOwog
ICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgpOwotICAgIG1fbWF0cml4LT50cmFuc2xhdGUodHgs
IHR5KTsKKyAgICBtX21hdHJpeCA9IHRyYW5zbGF0aW9uTWF0cml4KHR4LCB0eSk7CiB9CiAKIHZv
aWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCkBAIC04
MCw4ICs1Niw3IEBACiAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TQ0FMRTsKICAgICBtX2Fu
Z2xlID0gMDsKICAgICAKLSAgICBtX21hdHJpeC0+cmVzZXQoKTsKLSAgICBtX21hdHJpeC0+c2Nh
bGVOb25Vbmlmb3JtKHN4LCBzeSk7CisgICAgbV9tYXRyaXggPSBzY2FsZU1hdHJpeChzeCwgc3kp
OwogfQogCiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNldFJvdGF0ZShkb3VibGUgYW5nbGUsIGRv
dWJsZSBjeCwgZG91YmxlIGN5KQpAQCAtOTAsMTAgKzY1LDkgQEAKICAgICBtX2FuZ2xlID0gYW5n
bGU7CiAgICAgCiAgICAgLy8gVE9ETzogdG9TdHJpbmcoKSBpbXBsZW1lbnRhdGlvbiwgd2hpY2gg
Y2FuIHNob3cgY3gsIGN5IChuZWVkIHRvIGJlIHN0b3JlZD8pCi0gICAgbV9tYXRyaXgtPnJlc2V0
KCk7Ci0gICAgbV9tYXRyaXgtPnRyYW5zbGF0ZShjeCwgY3kpOwotICAgIG1fbWF0cml4LT5yb3Rh
dGUoYW5nbGUpOwotICAgIG1fbWF0cml4LT50cmFuc2xhdGUoLWN4LCAtY3kpOworICAgIG1fbWF0
cml4ID0gdHJhbnNsYXRpb25NYXRyaXgoY3gsIGN5KTsKKyAgICBtX21hdHJpeC5yb3RhdGUocmFk
aWFucyhhbmdsZSkpOworICAgIG1fbWF0cml4LnRyYW5zbGF0ZSgtY3gsIC1jeSk7CiB9CiAKIHZv
aWQgU1ZHVHJhbnNmb3JtSW1wbDo6c2V0U2tld1goZG91YmxlIGFuZ2xlKQpAQCAtMTAxLDggKzc1
LDcgQEAKICAgICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1NLRVdYOwogICAgIG1fYW5nbGUgPSBh
bmdsZTsKICAgICAKLSAgICBtX21hdHJpeC0+cmVzZXQoKTsKLSAgICBtX21hdHJpeC0+c2tld1go
YW5nbGUpOworICAgIG1fbWF0cml4ID0gc2tld1hNYXRyaXgocmFkaWFucyhhbmdsZSkpOwogfQog
CiB2b2lkIFNWR1RyYW5zZm9ybUltcGw6OnNldFNrZXdZKGRvdWJsZSBhbmdsZSkKQEAgLTExMCwx
MCArODMsOCBAQAogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fU0tFV1k7CiAgICAgbV9hbmds
ZSA9IGFuZ2xlOwogICAgIAotICAgIG1fbWF0cml4LT5yZXNldCgpOwotICAgIG1fbWF0cml4LT5z
a2V3WShhbmdsZSk7CisgICAgbV9tYXRyaXggPSBza2V3WU1hdHJpeChyYWRpYW5zKGFuZ2xlKSk7
CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAotCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
U1ZHRWxlbWVudEltcGwuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZHU1ZHRWxl
bWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgog
ICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAg
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAKQEAgLTI1LDMwICsyNiwyMSBAQAogI2lmIFNW
R19TVVBQT1JUCiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgotCi0jaW5jbHVkZSAiU1ZHVGVzdHNJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgorI2luY2x1ZGUgIlNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94SW1w
bC5oIgotI2luY2x1ZGUgIlNWR1pvb21BbmRQYW5JbXBsLmgiCisjaW5jbHVkZSAiU1ZHTGFuZ1Nw
YWNlSW1wbC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBsLmgiCi0j
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKLQotbmFtZXNwYWNl
IEtET00KLXsKLSAgICBjbGFzcyBEb2N1bWVudFB0cjsKLX07CisjaW5jbHVkZSAiU1ZHVGVzdHNJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbkltcGwuaCIKIAogbmFtZXNwYWNlIEtTVkcK
IHsKLSAgICBjbGFzcyBTVkdSZWN0SW1wbDsKICAgICBjbGFzcyBTVkdBbmdsZUltcGw7CiAgICAg
Y2xhc3MgU1ZHUG9pbnRJbXBsOwogICAgIGNsYXNzIFNWR051bWJlckltcGw7CiAgICAgY2xhc3Mg
U1ZHTGVuZ3RoSW1wbDsKLSAgICBjbGFzcyBTVkdNYXRyaXhJbXBsOwogICAgIGNsYXNzIFNWR1Ry
YW5zZm9ybUltcGw7Ci0gICAgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsOwotICAgIGNsYXNz
IFRpbWVTY2hlZHVsZXI7CisKICAgICBjbGFzcyBTVkdTVkdFbGVtZW50SW1wbCA6IHB1YmxpYyBT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdUZXN0c0ltcGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dWJsaWMgU1ZHTGFuZ1NwYWNlSW1wbCwKQEAgLTU3LDggKzQ5LDcgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdab29tQW5kUGFuSW1wbAogICAgIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIFNWR1NWR0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIEtET006OkRvY3VtZW50SW1wbCAqZG9jKTsKLSAgICAgICAgdmlydHVhbCB+U1ZH
U1ZHRWxlbWVudEltcGwoKTsKKyAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnRJbXBsKik7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGlzU1ZHKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAKQEAgLTcwLDExICs2MSwx
MSBAQAogICAgICAgICBTVkdBbmltYXRlZExlbmd0aEltcGwgKndpZHRoKCkgY29uc3Q7CiAgICAg
ICAgIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqaGVpZ2h0KCkgY29uc3Q7CiAKLSAgICAgICAgS0RP
TTo6QXRvbWljU3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQg
c2V0Q29udGVudFNjcmlwdFR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKTsKKyAg
ICAgICAgQXRvbWljU3RyaW5nIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7CisgICAgICAgIHZv
aWQgc2V0Q29udGVudFNjcmlwdFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsKIAotICAg
ICAgICBLRE9NOjpBdG9taWNTdHJpbmcgY29udGVudFN0eWxlVHlwZSgpIGNvbnN0OwotICAgICAg
ICB2b2lkIHNldENvbnRlbnRTdHlsZVR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBl
KTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdDsKKyAgICAg
ICAgdm9pZCBzZXRDb250ZW50U3R5bGVUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSk7CiAK
ICAgICAgICAgU1ZHUmVjdEltcGwgKnZpZXdwb3J0KCkgY29uc3Q7CiAKQEAgLTk4LDM1ICs4OSwz
NSBAQAogICAgICAgICB2b2lkIHVuc3VzcGVuZFJlZHJhd0FsbCgpOwogICAgICAgICB2b2lkIGZv
cmNlUmVkcmF3KCk7CiAKLSAgICAgICAgS0RPTTo6Tm9kZUxpc3RJbXBsICpnZXRJbnRlcnNlY3Rp
b25MaXN0KFNWR1JlY3RJbXBsICpyZWN0LCBTVkdFbGVtZW50SW1wbCAqcmVmZXJlbmNlRWxlbWVu
dCk7Ci0gICAgICAgIEtET006Ok5vZGVMaXN0SW1wbCAqZ2V0RW5jbG9zdXJlTGlzdChTVkdSZWN0
SW1wbCAqcmVjdCwgU1ZHRWxlbWVudEltcGwgKnJlZmVyZW5jZUVsZW1lbnQpOwotICAgICAgICBi
b29sIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnRJbXBsICplbGVtZW50LCBTVkdSZWN0SW1w
bCAqcmVjdCk7Ci0gICAgICAgIGJvb2wgY2hlY2tFbmNsb3N1cmUoU1ZHRWxlbWVudEltcGwgKmVs
ZW1lbnQsIFNWR1JlY3RJbXBsICpyZWN0KTsKKyAgICAgICAgTm9kZUxpc3RJbXBsKiBnZXRJbnRl
cnNlY3Rpb25MaXN0KFNWR1JlY3RJbXBsKiwgU1ZHRWxlbWVudEltcGwqIHJlZmVyZW5jZUVsZW1l
bnQpOworICAgICAgICBOb2RlTGlzdEltcGwqIGdldEVuY2xvc3VyZUxpc3QoU1ZHUmVjdEltcGwq
LCBTVkdFbGVtZW50SW1wbCogcmVmZXJlbmNlRWxlbWVudCk7CisgICAgICAgIGJvb2wgY2hlY2tJ
bnRlcnNlY3Rpb24oU1ZHRWxlbWVudEltcGwqLCBTVkdSZWN0SW1wbCopOworICAgICAgICBib29s
IGNoZWNrRW5jbG9zdXJlKFNWR0VsZW1lbnRJbXBsKiwgU1ZHUmVjdEltcGwqKTsKICAgICAgICAg
dm9pZCBkZXNlbGVjdEFsbCgpOwogCiAgICAgICAgIHN0YXRpYyBTVkdOdW1iZXJJbXBsICpjcmVh
dGVTVkdOdW1iZXIoKTsKICAgICAgICAgc3RhdGljIFNWR0xlbmd0aEltcGwgKmNyZWF0ZVNWR0xl
bmd0aCgpOwogICAgICAgICBzdGF0aWMgU1ZHQW5nbGVJbXBsICpjcmVhdGVTVkdBbmdsZSgpOwot
ICAgICAgICBzdGF0aWMgU1ZHUG9pbnRJbXBsICpjcmVhdGVTVkdQb2ludChjb25zdCBJbnRQb2lu
dCAmcCA9IEludFBvaW50KCkpOwotICAgICAgICBzdGF0aWMgU1ZHTWF0cml4SW1wbCAqY3JlYXRl
U1ZHTWF0cml4KCk7CisgICAgICAgIHN0YXRpYyBTVkdQb2ludEltcGwqIGNyZWF0ZVNWR1BvaW50
KGNvbnN0IEludFBvaW50JiA9IEludFBvaW50KCkpOworICAgICAgICBzdGF0aWMgQWZmaW5lVHJh
bnNmb3JtIGNyZWF0ZVNWR01hdHJpeCgpOwogICAgICAgICBzdGF0aWMgU1ZHUmVjdEltcGwgKmNy
ZWF0ZVNWR1JlY3QoKTsKICAgICAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUltcGwgKmNyZWF0ZVNW
R1RyYW5zZm9ybSgpOwotICAgICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCAqY3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBsICptYXRyaXgpOworICAgICAgICBzdGF0
aWMgU1ZHVHJhbnNmb3JtSW1wbCogY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRlSW1wbCAqYXR0cik7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGVJbXBsICphdHRyKTsKIAog
ICAgICAgICAvLyAndmlydHVhbCBTVkdMb2NhdGFibGUnIGZ1bmN0aW9ucwotICAgICAgICB2aXJ0
dWFsIFNWR01hdHJpeEltcGwgKmdldENUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01h
dHJpeEltcGwgKmdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEFmZmluZVRy
YW5zZm9ybSBnZXRDVE0oKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0g
Z2V0U2NyZWVuQ1RNKCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmly
dHVhbCBraHRtbDo6UmVuZGVyT2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJl
bmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKIAogICAgICAgICAvLyAndmlydHVhbCBTVkdab29tQW5kUGFuIGZ1bmN0aW9ucwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUFuZFBhbih1bnNpZ25lZCBzaG9ydCB6b29tQW5kUGFu
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgYWRkU1ZHV2luZG93RXZlbnRMaXN0bmVy
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGVJbXBsKiBhdHRy
KTsgICAKKyAgICAgICAgdm9pZCBhZGRTVkdXaW5kb3dFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGVJbXBsKiBhdHRyKTsgICAKIAogICAg
ICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aEltcGw+IG1feDsKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsPiBtX3k7CkBAIC0xMzUsNyArMTI2
LDcgQEAKIAogICAgICAgICBib29sIG1fdXNlQ3VycmVudFZpZXc7CiAgICAgfTsKLX07Cit9CiAK
ICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmlt
bWVybWFubiA8d2lsZGZveEBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLgogCiAgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAK
QEAgLTI0LDE2ICsyNSwxMyBAQAogI2RlZmluZSBLU1ZHX1NWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi1uYW1lc3BhY2UgS0RPTQotewotICAgIGNs
YXNzIEF0dHJpYnV0ZUltcGw7Ci19OworI2luY2x1ZGUgPGt4bWxjb3JlL1JlZlB0ci5oPgogCi1u
YW1lc3BhY2UgS1NWRwoteworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIE1hcHBlZEF0
dHJpYnV0ZUltcGw7CiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuSW1wbDsKLSAgICBjbGFz
cyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbAotICAgIHsKKworICAgIGNsYXNzIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCk7CiAgICAgICAgIHZpcnR1YWwgflNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCk7CkBAIC00MSw3ICszOSw3IEBACiAgICAgICAg
IC8vICdTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJyBmdW5jdGlvbnMKICAgICAgICAgU1ZH
QW5pbWF0ZWRCb29sZWFuSW1wbCAqZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCgpIGNvbnN0Owog
Ci0gICAgICAgIGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoS0RPTTo6TWFwcGVkQXR0cmlidXRl
SW1wbCAqYXR0cik7CisgICAgICAgIGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlSW1wbCopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZH
QW5pbWF0ZWRCb29sZWFuSW1wbD4gbV9leHRlcm5hbDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdET01J
bXBsZW1lbnRhdGlvbkltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdET01JbXBs
ZW1lbnRhdGlvbkltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdET01J
bXBsZW1lbnRhdGlvbkltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMjIgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHRE9N
SW1wbGVtZW50YXRpb25JbXBsLmgiCiAKLSNpbmNsdWRlIDxrZG9tL2tkb20uaD4KLSNpbmNsdWRl
IDxrZG9tL0hlbHBlci5oPgotI2luY2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+Ci0jaW5jbHVkZSA8
a2RvbS9OYW1lc3BhY2UuaD4KLSNpbmNsdWRlIDxrZG9tL2NvcmUvRWxlbWVudEltcGwuaD4KICNp
bmNsdWRlICJEb2N1bWVudEltcGwuaCIKLSNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NRXhjZXB0aW9u
SW1wbC5oPgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZUltcGwuaCIKLSNpbmNsdWRlICJjc3Nfc3R5
bGVzaGVldGltcGwuaCIKLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJT
dHlsZS5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR05hbWVz
LmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50
SW1wbC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgorI2luY2x1ZGUg
ImNzc19zdHlsZXNoZWV0aW1wbC5oIgorI2luY2x1ZGUgImtzdmcuaCIKKyNpbmNsdWRlIDxrZG9t
L0RPTVN0cmluZy5oPgorI2luY2x1ZGUgPGtkb20vSGVscGVyLmg+CisjaW5jbHVkZSA8a2RvbS9O
YW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvRE9NRXhjZXB0aW9uSW1wbC5oPgorI2lu
Y2x1ZGUgPGtkb20vY29yZS9FbGVtZW50SW1wbC5oPgorI2luY2x1ZGUgPGtkb20va2RvbS5oPgog
CiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApAQCAtMTU5LDcgKzE1OSw3IEBACiAgICAgcmV0dXJu
IGNyZWF0ZURvY3VtZW50KG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZUltcGwsIGRvY3R5cGUs
IHRydWUsIDAsIGV4Y2VwdGlvbmNvZGUpOwogfQogCi1LRE9NOjpEb2N1bWVudEltcGwgKlNWR0RP
TUltcGxlbWVudGF0aW9uSW1wbDo6Y3JlYXRlRG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAq
bmFtZXNwYWNlVVJJSW1wbCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGws
IEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwg
S0RPTTo6S0RPTVZpZXcgKnZpZXcsIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3QKK0tET006OkRv
Y3VtZW50SW1wbCAqU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsOjpjcmVhdGVEb2N1bWVudChLRE9N
OjpET01TdHJpbmdJbXBsICpuYW1lc3BhY2VVUklJbXBsLCBLRE9NOjpET01TdHJpbmdJbXBsICpx
dWFsaWZpZWROYW1lSW1wbCwgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqZG9jdHlwZSwgYm9vbCBj
cmVhdGVEb2NFbGVtZW50LCBGcmFtZVZpZXcgKnZpZXcsIGludCYgZXhjZXB0aW9uY29kZSkgY29u
c3QKIHsKICAgICBLRE9NOjpET01TdHJpbmcgbmFtZXNwYWNlVVJJKG5hbWVzcGFjZVVSSUltcGwp
OwogICAgIEtET006OkRPTVN0cmluZyBxdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWVJbXBsKTsK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw0NyArMjIsNDIg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8a2Rv
bS9jb3JlL0F0dHJJbXBsLmg+Ci0jaW5jbHVkZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4K
LSNpbmNsdWRlIDxrZG9tL2NvcmUvTmFtZWRBdHRyTWFwSW1wbC5oPgotI2luY2x1ZGUgIkRvY3Vt
ZW50SW1wbC5oIgotCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5jbHVkZSA8a2Nh
bnZhcy9SZW5kZXJQYXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzTWF0cml4Lmg+Ci0j
aW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ3JlYXRvci5oPgotI2luY2x1ZGUgPGtjYW52YXMvS0Nh
bnZhc0NvbnRhaW5lci5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZp
Y2UuaD4KKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogCi0jaW5jbHVkZSAia3N2Zy5o
IgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHSGVscGVyLmgiCi0jaW5jbHVk
ZSAiU1ZHUmVjdEltcGwuaCIKKyNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgiCisjaW5jbHVk
ZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTVkdBbmdsZUltcGwuaCIKLSNpbmNs
dWRlICJTVkdQb2ludEltcGwuaCIKLSNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHTnVtYmVySW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbkltcGwuaCIK
KyNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW9JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0SW1w
bC5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgIlNWR0Zp
dFRvVmlld0JveEltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdM
ZW5ndGhJbXBsLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdOdW1iZXJJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb0ltcGwuaCIKKyNpbmNsdWRlICJTVkdSZWN0SW1wbC5oIgogI2luY2x1ZGUgIlNW
R1JlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiU1ZHWm9vbUV2ZW50SW1wbC5oIgogI2luY2x1ZGUg
IlNWR1RyYW5zZm9ybUltcGwuaCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgotI2lu
Y2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbkltcGwu
aCIKLSNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3hJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRSZWN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgotI2luY2x1
ZGUgIktDYW52YXNSZW5kZXJpbmdTdHlsZS5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1w
bC5oIgotI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotCisjaW5jbHVkZSAiU1ZH
Wm9vbUV2ZW50SW1wbC5oIgogI2luY2x1ZGUgImNzc3Byb3BlcnRpZXMuaCIKLQotI2luY2x1ZGUg
PHF0ZXh0c3RyZWFtLmg+Ci0KICNpbmNsdWRlICJodG1sbmFtZXMuaCIKLSNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCisjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5o
PgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgorI2luY2x1ZGUgPGtjYW52
YXMvS0NhbnZhc0NyZWF0b3IuaD4KKyNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KKyNp
bmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2Rv
bS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0RPTVN0cmluZ0ltcGwuaD4K
KyNpbmNsdWRlIDxrZG9tL2NvcmUvTmFtZWRBdHRyTWFwSW1wbC5oPgorI2luY2x1ZGUgPHF0ZXh0
c3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzcsMTAgKzcyLDYgQEAKICAg
ICBtX3VzZUN1cnJlbnRWaWV3ID0gZmFsc2U7CiB9CiAKLVNWR1NWR0VsZW1lbnRJbXBsOjp+U1ZH
U1ZHRWxlbWVudEltcGwoKQotewotfQotCiBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR1NWR0Vs
ZW1lbnRJbXBsOjp4KCkgY29uc3QKIHsKICAgICBjb25zdCBTVkdFbGVtZW50SW1wbCAqdmlld3Bv
cnQgPSBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMgPyB0aGlzIDog
dmlld3BvcnRFbGVtZW50KCk7CkBAIC0xMzksMTggKzEzMCwxNiBAQAogCiBTVkdSZWN0SW1wbCAq
U1ZHU1ZHRWxlbWVudEltcGw6OnZpZXdwb3J0KCkgY29uc3QKIHsKLSAgICBTVkdSZWN0SW1wbCAq
cmV0ID0gY3JlYXRlU1ZHUmVjdCgpOwotICAgIGRvdWJsZSBfeCA9IHgoKS0+YmFzZVZhbCgpLT52
YWx1ZSgpOwotICAgIGRvdWJsZSBfeSA9IHkoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgIGRv
dWJsZSB3ID0gd2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpOwogICAgIGRvdWJsZSBoID0gaGVp
Z2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKTsKLSAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gdmll
d0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0odywgaCk7Ci0gICAgdmlld0JveC0+cW1hdHJp
eCgpLm1hcChfeCwgX3ksICZfeCwgJl95KTsKLSAgICB2aWV3Qm94LT5xbWF0cml4KCkubWFwKHcs
IGgsICZ3LCAmaCk7Ci0gICAgcmV0LT5zZXRYKF94KTsKLSAgICByZXQtPnNldFkoX3kpOwotICAg
IHJldC0+c2V0V2lkdGgodyk7Ci0gICAgcmV0LT5zZXRIZWlnaHQoaCk7CisgICAgQWZmaW5lVHJh
bnNmb3JtIHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHcsIGgpOworICAgIEZsb2F0
UmVjdCByKHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCB5KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwg
dywgaCk7CisgICAgciA9IHZpZXdCb3gubWFwKHIpOworICAgIFNWR1JlY3RJbXBsICpyZXQgPSBj
cmVhdGVTVkdSZWN0KCk7CisgICAgcmV0LT5zZXRYKHIueCgpKTsKKyAgICByZXQtPnNldFkoci55
KCkpOworICAgIHJldC0+c2V0V2lkdGgoci53aWR0aCgpKTsKKyAgICByZXQtPnNldEhlaWdodChy
LmhlaWdodCgpKTsKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0yMjYsNyArMjE1LDcgQEAKICAg
ICAvL3JldHVybiBjcmVhdGVTVkdQb2ludChjYW52YXNWaWV3KCktPnBhbigpKTsKIH0KIAotdm9p
ZCBTVkdTVkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0bmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdHRyaWJ1dGVJbXBsKiBhdHRyKQordm9pZCBTVkdT
VkdFbGVtZW50SW1wbDo6YWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgY29uc3QgQXR0cmlidXRlSW1wbCogYXR0cikKIHsKICAgICAvLyBGSVhN
RTogTm9uZSBvZiB0aGVzZSBzaG91bGQgYmUgd2luZG93IGV2ZW50cyBsb25nIHRlcm0uCiAgICAg
Ly8gT25jZSB3ZSBwcm9wZXJ0bHkgc3VwcG9ydCBTVkdMb2FkLCBldGMuCkBAIC0yNDAsMTkgKzIy
OSwxOSBAQAogICAgIGlmICghbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpKSB7CiAgICAgICAgIC8v
IE9ubHkgaGFuZGxlIGV2ZW50cyBpZiB3ZSdyZSB0aGUgb3V0ZXJtb3N0IDxzdmc+IGVsZW1lbnQK
ICAgICAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmxvYWRBdHRyKQotICAgICAgICAgICAgYWRk
U1ZHV2luZG93RXZlbnRMaXN0bmVyKGxvYWRFdmVudCwgYXR0cik7CisgICAgICAgICAgICBhZGRT
VkdXaW5kb3dFdmVudExpc3RlbmVyKGxvYWRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbnVubG9hZEF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dF
dmVudExpc3RuZXIodW5sb2FkRXZlbnQsIGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93
RXZlbnRMaXN0ZW5lcih1bmxvYWRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbmFib3J0QXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlz
dG5lcihhYm9ydEV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlz
dGVuZXIoYWJvcnRFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBvbmVycm9yQXR0cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlzdG5lcihlcnJv
ckV2ZW50LCBhdHRyKTsKKyAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlzdGVuZXIoZXJy
b3JFdmVudCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnJlc2l6
ZUF0dHIpCi0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIocmVzaXplRXZlbnQs
IGF0dHIpOworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihyZXNpemVFdmVu
dCwgYXR0cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnNjcm9sbEF0dHIp
Ci0gICAgICAgICAgICBhZGRTVkdXaW5kb3dFdmVudExpc3RuZXIoc2Nyb2xsRXZlbnQsIGF0dHIp
OworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcihzY3JvbGxFdmVudCwgYXR0
cik7CiAgICAgICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6b256b29tQXR0
cikKLSAgICAgICAgICAgIGFkZFNWR1dpbmRvd0V2ZW50TGlzdG5lcih6b29tRXZlbnQsIGF0dHIp
OworICAgICAgICAgICAgYWRkU1ZHV2luZG93RXZlbnRMaXN0ZW5lcih6b29tRXZlbnQsIGF0dHIp
OwogICAgIH0KICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp4QXR0cikgewogICAg
ICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOwpAQCAt
MzU3LDE1ICszNDYsMTIgQEAKIAogU1ZHUG9pbnRJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Y3Jl
YXRlU1ZHUG9pbnQoY29uc3QgSW50UG9pbnQgJnApCiB7Ci0gICAgaWYocC5pc051bGwoKSkKLSAg
ICAgICAgcmV0dXJuIG5ldyBTVkdQb2ludEltcGwoKTsKLSAgICBlbHNlCiAgICAgICAgIHJldHVy
biBuZXcgU1ZHUG9pbnRJbXBsKHApOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdTVkdFbGVtZW50
SW1wbDo6Y3JlYXRlU1ZHTWF0cml4KCkKK0FmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50SW1w
bDo6Y3JlYXRlU1ZHTWF0cml4KCkKIHsKLSAgICByZXR1cm4gbmV3IFNWR01hdHJpeEltcGwoKTsK
KyAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiB9CiAKIFNWR1JlY3RJbXBsICpTVkdTVkdF
bGVtZW50SW1wbDo6Y3JlYXRlU1ZHUmVjdCgpCkBAIC0zNzgsNDMgKzM2NCwzMSBAQAogICAgIHJl
dHVybiBuZXcgU1ZHVHJhbnNmb3JtSW1wbCgpOwogfQogCi1TVkdUcmFuc2Zvcm1JbXBsICpTVkdT
VkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXhJbXBs
ICptYXRyaXgpCitTVkdUcmFuc2Zvcm1JbXBsKiBTVkdTVkdFbGVtZW50SW1wbDo6Y3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCkKIHsgICAg
CiAgICAgU1ZHVHJhbnNmb3JtSW1wbCAqb2JqID0gU1ZHU1ZHRWxlbWVudEltcGw6OmNyZWF0ZVNW
R1RyYW5zZm9ybSgpOwogICAgIG9iai0+c2V0TWF0cml4KG1hdHJpeCk7CiAgICAgcmV0dXJuIG9i
ajsKIH0KIAotU1ZHTWF0cml4SW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmdldENUTSgpIGNvbnN0
CitBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudEltcGw6OmdldENUTSgpIGNvbnN0CiB7Ci0g
ICAgU1ZHTWF0cml4SW1wbCAqbWF0ID0gY3JlYXRlU1ZHTWF0cml4KCk7Ci0gICAgaWYobWF0KQot
ICAgIHsKLSAgICAgICAgbWF0LT50cmFuc2xhdGUoeCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIHko
KS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0ID0gdHJhbnNs
YXRpb25NYXRyaXgoeCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIHkoKS0+YmFzZVZhbCgpLT52YWx1
ZSgpKTsKIAogICAgICAgICBpZihhdHRyaWJ1dGVzKCktPmdldE5hbWVkSXRlbShTVkdOYW1lczo6
dmlld0JveEF0dHIpKQotICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1w
bD4gdmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZhbCgpLT52
YWx1ZSgpLCBoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKLSAgICAgICAgICAgIG1hdC0+
bXVsdGlwbHkodmlld0JveC5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgICAgIG1hdCA9
IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBoZWln
aHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKSAqIG1hdDsKIAogICAgIHJldHVybiBtYXQ7CiB9CiAK
LVNWR01hdHJpeEltcGwgKlNWR1NWR0VsZW1lbnRJbXBsOjpnZXRTY3JlZW5DVE0oKSBjb25zdAot
ewotICAgIFNWR01hdHJpeEltcGwgKm1hdCA9IFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnRJbXBs
OjpnZXRTY3JlZW5DVE0oKTsKLSAgICBpZihtYXQpCitBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZHRWxl
bWVudEltcGw6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiAgICAgewotICAgICAgICBtYXQtPnRyYW5z
bGF0ZSh4KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgeSgpLT5iYXNlVmFsKCktPnZhbHVlKCkpOwor
ICAgIEFmZmluZVRyYW5zZm9ybSBtYXQgPSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50SW1wbDo6
Z2V0U2NyZWVuQ1RNKCk7CisKKyAgICBtYXQudHJhbnNsYXRlKHgoKS0+YmFzZVZhbCgpLT52YWx1
ZSgpLCB5KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7CiAKICAgICAgICAgaWYoYXR0cmlidXRlcygp
LT5nZXROYW1lZEl0ZW0oU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKSkKLSAgICAgICAgewotICAgICAg
ICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IHZpZXdCb3ggPSB2aWV3Qm94VG9WaWV3VHJhbnNm
b3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFs
dWUoKSk7Ci0gICAgICAgICAgICBtYXQtPm11bHRpcGx5KHZpZXdCb3guZ2V0KCkpOwotICAgICAg
ICB9Ci0gICAgfQorICAgICAgICBtYXQgPSBtYXQgKiB2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHdp
ZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VWYWwoKS0+dmFsdWUoKSk7
CiAKICAgICByZXR1cm4gbWF0OwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50SW1wbC5o
CShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnRJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwxNyArMjUsMTcgQEAKICNkZWZpbmUgS1NWR19TVkdH
cmFkaWVudEVsZW1lbnRJbXBsX0gKICNpZiBTVkdfU1VQUE9SVAogCi0jaW5jbHVkZSAiU1ZHVVJJ
UmVmZXJlbmNlSW1wbC5oIgotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKLQorI2luY2x1ZGUgIktD
YW52YXNSZXNvdXJjZXMuaCIKKyNpbmNsdWRlICJLQ2FudmFzUmVzb3VyY2VMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIktSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50LmgiCisjaW5jbHVkZSAiU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRFbGVt
ZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZUltcGwuaCIKIAotbmFtZXNwYWNl
IEtTVkcKLXsKLSAgICBjbGFzcyBTVkdHcmFkaWVudEVsZW1lbnRJbXBsOworbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIFNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsOwogICAgIGNsYXNz
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw7CisKICAgICBjbGFzcyBTVkdHcmFkaWVudEVs
ZW1lbnRJbXBsIDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnRJbXBsLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlSW1wbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLApAQCAtNjYsNyArNjcsNyBAQAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsPiBtX2dyYWRpZW50VHJhbnNmb3JtOwogICAgICAgICBt
dXRhYmxlIEtSZW5kZXJpbmdQYWludFNlcnZlckdyYWRpZW50ICptX3Jlc291cmNlOwogICAgIH07
Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRpZgpJbmRleDoga3N2ZzIvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIwICsyMiwyMCBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9t
L2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnRJbXBsLmgiCiAK
LSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNQ
YXRoLmg+Ci0jaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgotI2lu
Y2x1ZGUgImNzc3N0eWxlc2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKLQot
I2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkQm9vbGVhbkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1w
bC5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnRJbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkltcGwuaCIKKyNpbmNsdWRlICJj
c3NzdHlsZXNlbGVjdG9yLmgiCisjaW5jbHVkZSAia3N2Zy5oIgorI2luY2x1ZGUgPGtjYW52YXMv
S0NhbnZhcy5oPgorI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc1BhdGguaD4KKyNpbmNsdWRlIDxr
Y2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CisjaW5jbHVkZSA8a2RvbS9jb3JlL0F0
dHJJbXBsLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RkVUaWxlRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRVRpbGVF
bGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTkgKzIyLDE4IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPHFzdHJpbmdsaXN0Lmg+
Ci0KLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KKyNpbmNsdWRlICJTVkdGRVRpbGVF
bGVtZW50SW1wbC5oIgogCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHSGVscGVyLmgi
CisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRl
cnMuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+Ci0KLSNp
bmNsdWRlICJTVkdIZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgotI2luY2x1
ZGUgIlNWR0ZFVGlsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJ
bXBsLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCisjaW5jbHVkZSA8
a2RvbS9jb3JlL0F0dHJJbXBsLmg+CisjaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudEltcGwuY3BwCShy
ZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwyMiArMjIsMjEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSA8cXN0cmluZ2xpc3QuaD4KLQotI2luY2x1ZGUgPGtk
b20vY29yZS9BdHRySW1wbC5oPgotCi0jaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Ci0jaW5j
bHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgotI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNl
L0tSZW5kZXJpbmdEZXZpY2UuaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJTVkdI
ZWxwZXIuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0ZFTWVy
Z2VFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwuaCIK
KwogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRTdHJpbmdJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBs
LmgiCisjaW5jbHVkZSAiU1ZHRkVNZXJnZU5vZGVFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNW
R0hlbHBlci5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGUuaCIKKyNpbmNsdWRlICJrc3ZnLmgiCisjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzLmg+Cisj
aW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzRmlsdGVycy5oPgorI2luY2x1ZGUgPGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KKyNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4K
KyNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApJbmRl
eDoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2
Zy9TVkdMb2NhdGFibGVJbXBsLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9zdmcvU1ZH
TG9jYXRhYmxlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIxICsyMiwxOSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2tkb20u
aD4KLSNpbmNsdWRlICJTVkdSZWN0SW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIK
LSNpbmNsdWRlICJTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0xvY2F0YWJsZUltcGwu
aCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogCisjaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudElt
cGwuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgiCisj
aW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBh
dGguaD4KKyNpbmNsdWRlIDxrZG9tL2tkb20uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAK
LVNWR0xvY2F0YWJsZUltcGw6OlNWR0xvY2F0YWJsZUltcGwoKQotewotfQotCiBTVkdMb2NhdGFi
bGVJbXBsOjp+U1ZHTG9jYXRhYmxlSW1wbCgpCiB7CiB9CkBAIC04NCw2MyArODIsNDQgQEAKICAg
ICB7CiAgICAgICAgIEZsb2F0UmVjdCBiYm94UmVjdCA9IGUtPnJlbmRlcmVyKCktPnJlbGF0aXZl
QkJveChmYWxzZSk7CiAgICAgICAgIHJlY3QgPSBuZXcgU1ZHUmVjdEltcGwoMCk7Ci0gICAgICAg
IHJlY3QtPnNldFgoYmJveFJlY3QueCgpKTsKLSAgICAgICAgcmVjdC0+c2V0WShiYm94UmVjdC55
KCkpOwotICAgICAgICByZWN0LT5zZXRXaWR0aChiYm94UmVjdC53aWR0aCgpIC0gMSk7Ci0gICAg
ICAgIHJlY3QtPnNldEhlaWdodChiYm94UmVjdC5oZWlnaHQoKSAtIDEpOworICAgICAgICByZWN0
LT5zZXRYKGJib3hSZWN0LnkoKSk7CisgICAgICAgIHJlY3QtPnNldFkoYmJveFJlY3QueCgpKTsK
KyAgICAgICAgcmVjdC0+c2V0V2lkdGgoYmJveFJlY3Qud2lkdGgoKSAtIDEpOyAvLyBGSVhNRTog
V2h5IC0xPworICAgICAgICByZWN0LT5zZXRIZWlnaHQoYmJveFJlY3QuaGVpZ2h0KCkgLSAxKTsg
Ly8gRklYTUU6IFdoeSAtMT8KICAgICB9CiAKICAgICByZXR1cm4gcmVjdDsKIH0KIAotU1ZHTWF0
cml4SW1wbCAqU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0Q1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICpl
bGVtZW50KQorQWZmaW5lVHJhbnNmb3JtIFNWR0xvY2F0YWJsZUltcGw6OmdldENUTShjb25zdCBT
VkdFbGVtZW50SW1wbCAqZWxlbWVudCkKIHsKICAgICBpZighZWxlbWVudCkKLSAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICBTVkdNYXRyaXhJbXBsICpjdG0gPSBTVkdTVkdFbGVtZW50SW1wbDo6Y3Jl
YXRlU1ZHTWF0cml4KCk7CisgICAgICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIAogICAg
IEtET006Ok5vZGVJbXBsICpwYXJlbnQgPSBlbGVtZW50LT5wYXJlbnROb2RlKCk7Ci0gICAgaWYo
cGFyZW50ICYmIHBhcmVudC0+bm9kZVR5cGUoKSA9PSBLRE9NOjpFTEVNRU5UX05PREUpCi0gICAg
eworICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5ub2RlVHlwZSgpID09IEtET006OkVMRU1FTlRf
Tk9ERSkgewogICAgICAgICBTVkdFbGVtZW50SW1wbCAqcGFyZW50RWxlbWVudCA9IHN2Z19keW5h
bWljX2Nhc3QocGFyZW50KTsKICAgICAgICAgaWYocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVt
ZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQdHI8
U1ZHTWF0cml4SW1wbD4gcGFyZW50Q1RNID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdldENUTSgpOwotICAgICAgICAgICAgY3Rt
LT5tdWx0aXBseShwYXJlbnRDVE0uZ2V0KCkpOwotICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwgKj4ocGFyZW50RWxl
bWVudCktPmdldENUTSgpOwogICAgIH0KIAotICAgIHJldHVybiBjdG07CisgICAgcmV0dXJuIEFm
ZmluZVRyYW5zZm9ybSgpOwogfQogCi1TVkdNYXRyaXhJbXBsICpTVkdMb2NhdGFibGVJbXBsOjpn
ZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpCitBZmZpbmVUcmFuc2Zv
cm0gU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0U2NyZWVuQ1RNKGNvbnN0IFNWR0VsZW1lbnRJbXBsICpl
bGVtZW50KQogewogICAgIGlmKCFlbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFNW
R01hdHJpeEltcGwgKmN0bSA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdNYXRyaXgoKTsK
KyAgICAgICAgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOwogCiAgICAgS0RPTTo6Tm9kZUltcGwg
KnBhcmVudCA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsKLSAgICBpZihwYXJlbnQgJiYgcGFyZW50
LT5pc0VsZW1lbnROb2RlKCkpCi0gICAgeworICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0Vs
ZW1lbnROb2RlKCkpIHsKICAgICAgICAgU1ZHRWxlbWVudEltcGwgKnBhcmVudEVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxTVkdFbGVtZW50SW1wbCAqPihwYXJlbnQpOwogICAgICAgICBpZihwYXJlbnRF
bGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQ
dHI8U1ZHTWF0cml4SW1wbD4gcGFyZW50Q1RNID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudEltcGwgKj4ocGFyZW50RWxlbWVudCktPmdldFNjcmVlbkNUTSgpOwotICAgICAg
ICAgICAgY3RtLT5tdWx0aXBseShwYXJlbnRDVE0uZ2V0KCkpOwotICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudEltcGwgKj4o
cGFyZW50RWxlbWVudCktPmdldFNjcmVlbkNUTSgpOwogICAgIH0KIAotICAgIHJldHVybiBjdG07
Ci19Ci0vKgotU1ZHTWF0cml4SW1wbCAqU1ZHTG9jYXRhYmxlSW1wbDo6Z2V0VHJhbnNmb3JtVG9F
bGVtZW50KFNWR0VsZW1lbnRJbXBsICopIGNvbnN0Ci17Ci0gICAgLy8gVE9ETyEKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKCk7CiB9Ci0qLworCiAvLyB2aW06dHM9
NDpub2V0CiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLQpJbmRleDoga3N2ZzIvc3ZnL1NWR0N1cnNv
ckVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dEltcGwuY3BwCShyZXZpc2lvbiAxMjQ2NykKKysrIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE2ICsyMiwxNyBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaWYgU1ZHX1NVUFBPUlQKLSNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwu
aD4KLSNpbmNsdWRlICJEb2N1bWVudEltcGwuaCIKLSNpbmNsdWRlICJEb2NMb2FkZXIuaCIKLSNp
bmNsdWRlIDxrZGVidWcuaD4KLQotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU1ZH
SGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHQ3Vyc29yRWxlbWVudEltcGwuaCIKKworI2luY2x1ZGUg
IkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkQm9vbGVhbkltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aEltcGwuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJTVkdIZWxwZXIu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgPGtkZWJ1Zy5oPgorI2luY2x1ZGUg
PGtkb20vY29yZS9BdHRySW1wbC5oPgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIApJbmRleDog
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MSw3ICsx
OTEsNyBAQAogICAgIHsKICAgICB9CiAKLSAgICBpZihpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0
aW9ucygpICE9IDAuMCkKKyAgICBpZihpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZXRpdGlvbnMoKSAh
PSAwLjApCiAgICAgewogICAgIH0KIApAQCAtMjAwLDkgKzIwMCw5IEBACiAgICAgLy8gRW5kIGNv
bmRpdGlvbi4KICAgICBpZih0aW1lUGVyY2VudGFnZSA9PSAxLjApCiAgICAgewotICAgICAgICBp
ZigobV9yZXBlYXRDb3VudCA+IDAgJiYgbV9yZXBlYXRpb25zIDwgbV9yZXBlYXRDb3VudCAtIDEp
IHx8IGlzSW5kZWZpbml0ZShtX3JlcGVhdENvdW50KSkKKyAgICAgICAgaWYoKG1fcmVwZWF0Q291
bnQgPiAwICYmIG1fcmVwZXRpdGlvbnMgPCBtX3JlcGVhdENvdW50IC0gMSkgfHwgaXNJbmRlZmlu
aXRlKG1fcmVwZWF0Q291bnQpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX3JlcGVhdGlvbnMr
KzsKKyAgICAgICAgICAgIG1fcmVwZXRpdGlvbnMrKzsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCkluZGV4OiBrc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVyaW5nU3R5bGUuY3BwCShyZXZpc2lv
biAxMjQ2NykKKysrIGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaWYgU1ZH
X1NVUFBPUlQKKyNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKIAogI2luY2x1ZGUg
PHJlbmRlcl9vYmplY3QuaD4KIApAQCAtNDMsNyArNDQsNiBAQAogI2luY2x1ZGUgImtzdmcuaCIK
ICNpbmNsdWRlICJTVkdMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudElt
cGwuaCIKLSNpbmNsdWRlICJLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCIKICNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBrc3ZnMi9taXNjL0tT
VkdUaW1lU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9taXNjL0tTVkdUaW1lU2No
ZWR1bGVyLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTkgKzIzLDIwIEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgor
I2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudEltcGwu
aCIKLSNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVD
b2xvckVsZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oIgogI2luY2x1
ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgotI2luY2x1ZGUgIlNWR01hdHJpeEltcGwu
aCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBs
LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnRJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtSW1wbC5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNs
dWRlIDxrY2FudmFzL0tDYW52YXMuaD4KKyNpbmNsdWRlIDxxdGltZXIuaD4KIAogbmFtZXNwYWNl
IEtTVkcgewogCkBAIC04OSwxMiArOTAsMTIgQEAKICAgICByZXR1cm4gbV9zaW5nbGVTaG90Owog
fQogICAgICAgICAKLWRvdWJsZSBTVkdUaW1lcjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91
YmxlIGVsYXBzZWQsIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBk
b3VibGUgcmVwZWF0aW9ucykKK2RvdWJsZSBTVkdUaW1lcjo6Y2FsY3VsYXRlVGltZVBlcmNlbnRh
Z2UoZG91YmxlIGVsYXBzZWQsIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0
aW9uLCBkb3VibGUgcmVwZXRpdGlvbnMpCiB7CiAgICAgZG91YmxlIHBlcmNlbnRhZ2UgPSAwLjA7
CiAKLSAgICAvLyBUYWtlIGludG8gYWNjb3VudCByZXBlYXRpb25zLi4uCi0gICAgZG91YmxlIHVz
ZUVsYXBzZWQgPSBlbGFwc2VkIC0gKGR1cmF0aW9uICogcmVwZWF0aW9ucyk7CisgICAgLy8gVGFr
ZSBpbnRvIGFjY291bnQgcmVwZXRpdGlvbnMuLi4KKyAgICBkb3VibGUgdXNlRWxhcHNlZCA9IGVs
YXBzZWQgLSAoZHVyYXRpb24gKiByZXBldGl0aW9ucyk7CiAgICAgCiAgICAgaWYoZHVyYXRpb24g
PiAwLjAgJiYgZW5kID09IDAuMCkKICAgICAgICAgcGVyY2VudGFnZSA9IDEuMCAtICgoKHN0YXJ0
ICsgZHVyYXRpb24pIC0gdXNlRWxhcHNlZCkgLyBkdXJhdGlvbik7CkBAIC0xMDgsNyArMTA5LDcg
QEAKICAgICBlbHNlIGlmKGR1cmF0aW9uID09IDAuMCAmJiBlbmQgIT0gMC4wKQogICAgICAgICBw
ZXJjZW50YWdlID0gMS4wIC0gKCgoc3RhcnQgKyBlbmQpIC0gdXNlRWxhcHNlZCkgLyBlbmQpOwog
Ci0gICAgLy8ga2REZWJ1ZygpIDw8ICJSRVRVUk5JTkcgUEVSQ0VOVEFHRTogIiA8PCBwZXJjZW50
YWdlIDw8ICIgKGVsYXBzZWQ6ICIgPDwgZWxhcHNlZCA8PCAiIC0+ICIgPDwgdXNlRWxhcHNlZCA8
PCAiIHN0YXJ0OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCAiIGR1cjogIiA8PCBk
dXJhdGlvbiA8PCAiIHJlcDogIiA8PCByZXBlYXRpb25zIDw8ICIpIiA8PCBlbmRsOworICAgIC8v
IGtkRGVidWcoKSA8PCAiUkVUVVJOSU5HIFBFUkNFTlRBR0U6ICIgPDwgcGVyY2VudGFnZSA8PCAi
IChlbGFwc2VkOiAiIDw8IGVsYXBzZWQgPDwgIiAtPiAiIDw8IHVzZUVsYXBzZWQgPDwgIiBzdGFy
dDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgIiBkdXI6ICIgPDwgZHVyYXRpb24g
PDwgIiByZXA6ICIgPDwgcmVwZXRpdGlvbnMgPDwgIikiIDw8IGVuZGw7CiAgICAgcmV0dXJuIHBl
cmNlbnRhZ2U7CiB9CiAKQEAgLTE4OCw3ICsxODksNyBAQAogICAgICAgICAgICAgZG91YmxlIGVu
ZCA9IGFuaW1hdGlvbi0+Z2V0RW5kVGltZSgpOwogICAgICAgICAgICAgZG91YmxlIHN0YXJ0ID0g
YW5pbWF0aW9uLT5nZXRTdGFydFRpbWUoKTsKICAgICAgICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9
IGFuaW1hdGlvbi0+Z2V0U2ltcGxlRHVyYXRpb24oKTsKLSAgICAgICAgICAgIGRvdWJsZSByZXBl
YXRpb25zID0gYW5pbWF0aW9uLT5yZXBlYXRpb25zKCk7CisgICAgICAgICAgICBkb3VibGUgcmVw
ZXRpdGlvbnMgPSBhbmltYXRpb24tPnJlcGV0aXRpb25zKCk7CiAKICAgICAgICAgICAgIC8vIFZh
bGlkYXRlIGFuaW1hdGlvbiB0aW1pbmcgc2V0dGluZ3M6CiAgICAgICAgICAgICAvLyAjMSAoZHVy
YXRpb24gPiAwKSAtPiBmaW5lCkBAIC0xOTgsNyArMTk5LDcgQEAKICAgICAgICAgICAgICAgIChh
bmltYXRpb24tPmlzSW5kZWZpbml0ZShkdXJhdGlvbikgJiYgZW5kIDw9IDAuMCkpIC8vIElnbm9y
ZSBkdXI9IjAiIG9yIGR1cj0iLW5lZyIuLi4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgZmxvYXQgcGVyY2VudGFnZSA9IGNhbGN1bGF0ZVRpbWVQ
ZXJjZW50YWdlKGVsYXBzZWQsIHN0YXJ0LCBlbmQsIGR1cmF0aW9uLCByZXBlYXRpb25zKTsKKyAg
ICAgICAgICAgIGZsb2F0IHBlcmNlbnRhZ2UgPSBjYWxjdWxhdGVUaW1lUGVyY2VudGFnZShlbGFw
c2VkLCBzdGFydCwgZW5kLCBkdXJhdGlvbiwgcmVwZXRpdGlvbnMpOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgaWYocGVyY2VudGFnZSA8PSAxLjAgfHwgYW5pbWF0aW9uLT5jb25uZWN0
ZWQoKSkKICAgICAgICAgICAgICAgICBhbmltYXRpb24tPmhhbmRsZVRpbWVyRXZlbnQocGVyY2Vu
dGFnZSk7CkBAIC0yMTIsMzYgKzIxMywzMSBAQAogICAgICAgICAgICAgICAgIGlmKCFhbmltVHJh
bnNmb3JtKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAg
IFJlZlB0cjxTVkdNYXRyaXhJbXBsPiB0cmFuc2Zvcm1NYXRyaXggPSBhbmltVHJhbnNmb3JtLT50
cmFuc2Zvcm1NYXRyaXgoKTsKLSAgICAgICAgICAgICAgICBpZighdHJhbnNmb3JtTWF0cml4KQot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBBZmZpbmVUcmFu
c2Zvcm0gdHJhbnNmb3JtTWF0cml4ID0gYW5pbVRyYW5zZm9ybS0+dHJhbnNmb3JtTWF0cml4KCk7
CiAKLSAgICAgICAgICAgICAgICBSZWZQdHI8U1ZHTWF0cml4SW1wbD4gaW5pdGlhbE1hdHJpeCA9
IGFuaW1UcmFuc2Zvcm0tPmluaXRpYWxNYXRyaXgoKTsKKyAgICAgICAgICAgICAgICBBZmZpbmVU
cmFuc2Zvcm0gaW5pdGlhbE1hdHJpeCA9IGFuaW1UcmFuc2Zvcm0tPmluaXRpYWxNYXRyaXgoKTsK
ICAgICAgICAgICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtSW1wbD4gZGF0YSA9IG5ldyBTVkdU
cmFuc2Zvcm1JbXBsKCk7CiAKICAgICAgICAgICAgICAgICBpZighdGFyZ2V0VHJhbnNmb3Jtcykg
Ly8gbGF6eSBjcmVhdGlvbiwgb25seSBpZiBuZWVkZWQuCiAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICB0YXJnZXRUcmFuc2Zvcm1zID0gbmV3IFNWR1RyYW5zZm9ybUxpc3RJ
bXBsKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkg
JiYgaW5pdGlhbE1hdHJpeCkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgUmVmUHRyPFNWR01hdHJpeEltcGw+IG1hdHJpeCA9IG5ldyBTVkdNYXRyaXhJbXBs
KGluaXRpYWxNYXRyaXgtPnFtYXRyaXgoKSk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRy
YW5zZm9ybXMgPSBuZXcgU1ZHVHJhbnNmb3JtTGlzdEltcGw7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeChtYXRyaXguZ2V0
KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeChpbml0aWFsTWF0cml4KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFRyYW5zZm9ybXMtPmFwcGVuZEl0ZW0oZGF0
YS5nZXQoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBuZXcgU1ZHVHJhbnNm
b3JtSW1wbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG5ldyBTVkdUcmFuc2Zv
cm1JbXBsOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgaWYodGFyZ2V0VHJhbnNmb3Jtcy0+bnVtYmVyT2ZJdGVtcygpIDw9IDEpCi0g
ICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkp
OworICAgICAgICAgICAgICAgICAgICBkYXRhLT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsK
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICBpZighYW5pbWF0aW9uLT5pc0FkZGl0aXZlKCkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0YXJnZXRUcmFuc2Zvcm1zLT5jbGVhcigpOyAgICAKICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIGRhdGEtPnNldE1hdHJpeCh0cmFuc2Zvcm1NYXRyaXguZ2V0KCkp
OworICAgICAgICAgICAgICAgICAgICBkYXRhLT5zZXRNYXRyaXgodHJhbnNmb3JtTWF0cml4KTsK
ICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICB0YXJnZXRUcmFuc2Zvcm1zLT5h
cHBlbmRJdGVtKGRhdGEuZ2V0KCkpOwpJbmRleDoga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0ga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAJKHJldmlzaW9u
IDEyNDY3KQorKysga3N2ZzIvbWlzYy9TVkdJbWFnZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJTVkdJbWFnZUVsZW1lbnRJbXBsLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJp
bmdJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIktDYW52YXNS
ZW5kZXJpbmdTdHlsZS5oIgogCiAjaW5jbHVkZSAicmVuZGVyX2ltYWdlLmgiCkluZGV4OiBrc3Zn
Mi9taXNjL0tDYW52YXNSZW5kZXJpbmdTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2Mv
S0NhbnZhc1JlbmRlcmluZ1N0eWxlLmgJKHJldmlzaW9uIDEyNDY3KQorKysga3N2ZzIvbWlzYy9L
Q2FudmFzUmVuZGVyaW5nU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA2ICAgICAgIEFsZXhhbmRlciBLZWxsZXR0IDxseXBh
bm92QGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMjUsMzkg
KzI2LDM0IEBACiAjZGVmaW5lIEtTVkdfS0NhbnZhc1JlbmRlcmluZ1N0eWxlX0gKICNpZiBTVkdf
U1VQUE9SVAogCi0jaW5jbHVkZSAiY3NzX3ZhbHVlaW1wbC5oIgotI2luY2x1ZGUgPGtjYW52YXMv
S0NhbnZhc01hdHJpeC5oPgotI2luY2x1ZGUgPHF2YWx1ZWxpc3QuaD4KK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPiBjbGFzcyBRVmFsdWVMaXN0OwogCiAvLyBGSVhNRTogdGhlc2Ugc2hvdWxkIGJlIHJl
bW92ZWQsIHVzZSBLU1ZHIG9uZXMgaW5zdGVhZAotdHlwZWRlZiBlbnVtCi17CitlbnVtIEtDQ2Fw
U3R5bGUgewogICAgIENBUF9CVVRUID0gMSwKICAgICBDQVBfUk9VTkQgPSAyLAogICAgIENBUF9T
UVVBUkUgPSAzCi19IEtDQ2FwU3R5bGU7Cit9OwogCi10eXBlZGVmIGVudW0KLXsKK2VudW0gS0NK
b2luU3R5bGUgewogICAgIEpPSU5fTUlURVIgPSAxLAogICAgIEpPSU5fUk9VTkQgPSAyLAogICAg
IEpPSU5fQkVWRUwgPSAzCi19IEtDSm9pblN0eWxlOwotCit9OwogCiAvLyBTcGVjaWFsIHR5cGVz
Ci10eXBlZGVmIFEzVmFsdWVMaXN0PGZsb2F0PiBLQ0Rhc2hBcnJheTsKK3R5cGVkZWYgUVZhbHVl
TGlzdDxmbG9hdD4gS0NEYXNoQXJyYXk7CiAKIGNsYXNzIEtSZW5kZXJpbmdGaWxsUGFpbnRlcjsK
IGNsYXNzIEtSZW5kZXJpbmdTdHJva2VQYWludGVyOwogY2xhc3MgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyOwogCi1uYW1lc3BhY2UgV2ViQ29yZQoteworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNs
YXNzIENTU1ZhbHVlSW1wbDsKICAgICBjbGFzcyBSZW5kZXJTdHlsZTsKICAgICBjbGFzcyBSZW5k
ZXJPYmplY3Q7Ci0gICAgY2xhc3MgS1NWR1BhaW50ZXJGYWN0b3J5Ci0gICAgeworCisgICAgY2xh
c3MgS1NWR1BhaW50ZXJGYWN0b3J5IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBLUmVu
ZGVyaW5nRmlsbFBhaW50ZXIgZmlsbFBhaW50ZXIoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBS
ZW5kZXJPYmplY3QqKTsKICAgICAgICAgc3RhdGljIEtSZW5kZXJpbmdTdHJva2VQYWludGVyIHN0
cm9rZVBhaW50ZXIoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKQEAg
LTcwLDcgKzY2LDcgQEAKIAogICAgICAgICBzdGF0aWMgZG91YmxlIGNzc1ByaW1pdGl2ZVRvTGVu
Z3RoKGNvbnN0IFJlbmRlck9iamVjdCosIENTU1ZhbHVlSW1wbCosIGRvdWJsZSBkZWZhdWx0VmFs
dWUgPSAwLjApOwogICAgIH07Ci19OworfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKICNlbmRp
ZgpJbmRleDoga3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuaAkocmV2aXNpb24gMTI0NjcpCisrKyBrc3ZnMi9t
aXNjL0tTVkdUaW1lU2NoZWR1bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAog
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0yNCwzNCArMjUs
MjkgQEAKICNkZWZpbmUgS1NWR19UaW1lU2NoZWR1bGVyX0gKICNpZiBTVkdfU1VQUE9SVAogCi0j
aW5jbHVkZSA8cXRpbWVyLmg+CiAjaW5jbHVkZSA8cW9iamVjdC5oPgogI2luY2x1ZGUgPHEzdmFs
dWVsaXN0Lmg+CiAKLSNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIgorY2xhc3Mg
UVRpbWVyOwogCi1uYW1lc3BhY2UgS0RPTSB7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgRG9jdW1lbnRJbXBsOwotfQorICAgIGNsYXNzIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOwor
ICAgIGNsYXNzIFRpbWVTY2hlZHVsZXI7CiAKLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgdHlwZWRl
ZiBzdHJ1Y3QKLSAgICB7Ci0gICAgICAgIGJvb2wgZW5hYmxlZCA6IDE7CisgICAgc3RydWN0IFNW
R05vdGlmaWNhdGlvblN0cnVjdCB7CisgICAgICAgIGJvb2wgZW5hYmxlZDsKICAgICAgICAgU1ZH
QW5pbWF0aW9uRWxlbWVudEltcGwgKmFuaW1hdGlvbjsKLSAgICB9IFNWR05vdGlmaWNhdGlvblN0
cnVjdDsKKyAgICB9OwogICAgIAogICAgIHR5cGVkZWYgUTNWYWx1ZUxpc3Q8U1ZHTm90aWZpY2F0
aW9uU3RydWN0PiBTVkdOb3RpZnlMaXN0OwogCi0gICAgY2xhc3MgVGltZVNjaGVkdWxlcjsKLSAg
ICBjbGFzcyBTVkdUaW1lcgotICAgIHsKKyAgICBjbGFzcyBTVkdUaW1lciB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdUaW1lcihUaW1lU2NoZWR1bGVyICpzY2hlZHVsZXIsIHVuc2lnbmVkIGlu
dCBtcywgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgU1ZHVGltZXIoVGltZVNjaGVkdWxlcios
IHVuc2lnbmVkIGludCBtcywgYm9vbCBzaW5nbGVTaG90KTsKICAgICAgICAgflNWR1RpbWVyKCk7
CiAKLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFFUaW1lciAqdGltZXIpOworICAgICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgUVRpbWVyKik7CiAgICAgICAgIGNvbnN0IFFUaW1lciAq
cXRpbWVyKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBzdGFydChRT2JqZWN0ICpyZWNlaXZlciwg
Y29uc3QgY2hhciAqbWVtYmVyKTsKQEAgLTYzLDEzICs1OSwxMyBAQAogICAgICAgICBib29sIHNp
bmdsZVNob3QoKSBjb25zdDsKIAogICAgICAgICB2b2lkIG5vdGlmeUFsbCgpOwotICAgICAgICB2
b2lkIGFkZE5vdGlmeShTVkdBbmltYXRpb25FbGVtZW50SW1wbCAqZWxlbWVudCwgYm9vbCBlbmFi
bGVkID0gZmFsc2UpOwotICAgICAgICB2b2lkIHJlbW92ZU5vdGlmeShTVkdBbmltYXRpb25FbGVt
ZW50SW1wbCAqZWxlbWVudCk7CisgICAgICAgIHZvaWQgYWRkTm90aWZ5KFNWR0FuaW1hdGlvbkVs
ZW1lbnRJbXBsKiwgYm9vbCBlbmFibGVkID0gZmFsc2UpOworICAgICAgICB2b2lkIHJlbW92ZU5v
dGlmeShTVkdBbmltYXRpb25FbGVtZW50SW1wbCopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
ZG91YmxlIGNhbGN1bGF0ZVRpbWVQZXJjZW50YWdlKGRvdWJsZSBlbGFwc2VkLCBkb3VibGUgc3Rh
cnQsIGRvdWJsZSBlbmQsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIHJlcGVhdGlvbnMpOworICAg
ICAgICBkb3VibGUgY2FsY3VsYXRlVGltZVBlcmNlbnRhZ2UoZG91YmxlIGVsYXBzZWQsIGRvdWJs
ZSBzdGFydCwgZG91YmxlIGVuZCwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgcmVwZXRpdGlvbnMp
OwogCi0gICAgICAgIHVuc2lnbmVkIGludCBtX21zOworICAgICAgICB1bnNpZ25lZCBtX21zOwog
ICAgICAgICBib29sIG1faW52b2tlZCwgbV9zaW5nbGVTaG90OwogCiAgICAgICAgIFFUaW1lciAq
bV90aW1lcjsKQEAgLTc5LDE5ICs3NSwxOCBAQAogCiAgICAgdHlwZWRlZiBRM1ZhbHVlTGlzdDxT
VkdUaW1lciAqPiBTVkdUaW1lckxpc3Q7CiAKLSAgICBjbGFzcyBUaW1lU2NoZWR1bGVyIDogcHVi
bGljIFFPYmplY3QKLSAgICB7CisgICAgY2xhc3MgVGltZVNjaGVkdWxlciA6IHB1YmxpYyBRT2Jq
ZWN0IHsKICAgICBRX09CSkVDVAogICAgIHB1YmxpYzoKLSAgICAgICAgVGltZVNjaGVkdWxlcihL
RE9NOjpEb2N1bWVudEltcGwgKmRvYyk7CisgICAgICAgIFRpbWVTY2hlZHVsZXIoRG9jdW1lbnRJ
bXBsKik7CiAgICAgICAgIH5UaW1lU2NoZWR1bGVyKCk7CiAKICAgICAgICAgLy8gQWRkcyBzaW5n
bGVTaG90IFRpbWVycwotICAgICAgICB2b2lkIGFkZFRpbWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJ
bXBsICplbGVtZW50LCB1bnNpZ25lZCBpbnQgbXMpOworICAgICAgICB2b2lkIGFkZFRpbWVyKFNW
R0FuaW1hdGlvbkVsZW1lbnRJbXBsKiwgdW5zaWduZWQgaW50IG1zKTsKIAogICAgICAgICAvLyAo
RGlzLSlDb25uZWN0cyB0byBpbnRlcnZhbCB0aW1lciB3aXRoIG1zID0gJ3N0YXRpY1RpbWVySW50
ZXJ2YWwnCi0gICAgICAgIHZvaWQgY29ubmVjdEludGVydmFsVGltZXIoU1ZHQW5pbWF0aW9uRWxl
bWVudEltcGwgKmVsZW1lbnQpOwotICAgICAgICB2b2lkIGRpc2Nvbm5lY3RJbnRlcnZhbFRpbWVy
KFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsICplbGVtZW50KTsKKyAgICAgICAgdm9pZCBjb25uZWN0
SW50ZXJ2YWxUaW1lcihTVkdBbmltYXRpb25FbGVtZW50SW1wbCopOworICAgICAgICB2b2lkIGRp
c2Nvbm5lY3RJbnRlcnZhbFRpbWVyKFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKik7CiAKICAgICAg
ICAgdm9pZCBzdGFydEFuaW1hdGlvbnMoKTsKICAgICAgICAgdm9pZCB0b2dnbGVBbmltYXRpb25z
KCk7CkBAIC0xMDcsMTggKzEwMiwxNyBAQAogCiAgICAgcHJpdmF0ZTogLy8gSGVscGVyCiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBTVkdUaW1lcjsKLSAgICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpk
b2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICAgICAgRG9jdW1lbnRJ
bXBsKiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAotICAgIHByaXZh
dGU6CiAgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9uVGltZTsKICAgICAgICAgZG91YmxlIG1fc2F2
ZWRUaW1lOwogICAgICAgICAKICAgICAgICAgU1ZHVGltZXJMaXN0IG1fdGltZXJMaXN0OwogICAg
ICAgICAKICAgICAgICAgU1ZHVGltZXIgKm1faW50ZXJ2YWxUaW1lcjsKLSAgICAgICAgS0RPTTo6
RG9jdW1lbnRJbXBsICptX2RvY3VtZW50OwotICAgIH07CisgICAgICAgIERvY3VtZW50SW1wbCog
bV9kb2N1bWVudDsKIH07Cit9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogI2VuZGlmCkluZGV4
OiBGb3J3YXJkaW5nSGVhZGVycy9xbWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRm9yd2FyZGluZ0hl
YWRlcnMvcW1hdHJpeC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIEZvcndhcmRpbmdIZWFkZXJzL3Ft
YXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW1wb3J0ICJLV1FXTWF0cml4
LmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9xd21hdHJpeC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEZv
cndhcmRpbmdIZWFkZXJzL3F3bWF0cml4LmgJKHJldmlzaW9uIDEyNDY3KQorKysgRm9yd2FyZGlu
Z0hlYWRlcnMvcXdtYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi0jaW5jbHVk
ZSAiS1dRV01hdHJpeC5oIgpJbmRleDoga3dxL0tXUVdNYXRyaXguaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
d3EvS1dRV01hdHJpeC5oCShyZXZpc2lvbiAxMjQ2NykKKysrIGt3cS9LV1FXTWF0cml4LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBRV01BVFJJWF9IXwotI2RlZmluZSBRV01BVFJJWF9IXwotCi0jaWYgX19BUFBMRV9fCi0vLyBG
SVhNRTogSnVzdCBjb21tZW50IG91dCB0aGUgZW50aXJlIGZpbGUsIHNpbmNlIGl0cyBpbXBsZW1l
bnRhdGlvbiBpcyBjb21wbGV0ZWx5IENHLXNwZWNpZmljLgotCi0jaW5jbHVkZSA8QXBwbGljYXRp
b25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LSAgICBjbGFzcyBJbnRSZWN0OwotICAgIGNsYXNzIEZsb2F0UmVjdDsKLX0KLQotY2xhc3MgUU1h
dHJpeCB7Ci1wdWJsaWM6Ci0gICAgUU1hdHJpeCgpOwotICAgIFFNYXRyaXgoZG91YmxlIGEsIGRv
dWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKLSAgICBR
TWF0cml4KENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSk7Ci0KLSAgICB2b2lkIHNldE1hdHJp
eChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIHR4LCBkb3Vi
bGUgdHkpOwotICAgIHZvaWQgbWFwKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlICp4MiwgZG91
YmxlICp5MikgY29uc3Q7Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBRTWF0cml4OjptYXBSZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgUU1h
dHJpeDo6bWFwUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKLSAgICAKLSAg
ICBib29sIGlzSWRlbnRpdHkoKSBjb25zdDsKLSAgICAKLSAgICBkb3VibGUgbTExKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFuc2Zvcm0uYTsgfQotICAgIGRvdWJsZSBtMTIoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybS5iOyB9Ci0gICAgZG91YmxlIG0yMSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNmb3JtLmM7IH0KLSAgICBkb3VibGUgbTIyKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0u
ZDsgfQotICAgIGRvdWJsZSBkeCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLnR4OyB9Ci0g
ICAgZG91YmxlIGR5KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0udHk7IH0KLQotICAgIHZv
aWQgcmVzZXQoKTsKLSAgICAKLSAgICBRTWF0cml4ICZzY2FsZShkb3VibGUgc3gsIGRvdWJsZSBz
eSk7Ci0gICAgUU1hdHJpeCAmcm90YXRlKGRvdWJsZSBkKTsKLSAgICBRTWF0cml4ICZ0cmFuc2xh
dGUoZG91YmxlIHR4LCBkb3VibGUgdHkpOwotICAgIFFNYXRyaXggJnNoZWFyKGRvdWJsZSBzeCwg
ZG91YmxlIHN5KTsKLSAgICAKLSAgICBkb3VibGUgZGV0KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0lu
dmVydGlibGUoKSBjb25zdDsKLSAgICBRTWF0cml4IGludmVydCgpIGNvbnN0OwotCi0gICAgb3Bl
cmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25zdDsKLQotICAgIGJvb2wgb3BlcmF0b3I9PSAo
Y29uc3QgUU1hdHJpeCAmKSBjb25zdDsKLSAgICBRTWF0cml4ICZvcGVyYXRvcio9IChjb25zdCBR
TWF0cml4ICYpOwotICAgIFFNYXRyaXggb3BlcmF0b3IqIChjb25zdCBRTWF0cml4ICZtMik7Ci0g
ICAgCi1wcml2YXRlOgotICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fdHJhbnNmb3JtOwotfTsKLQot
I2RlZmluZSBRV01hdHJpeCBRTWF0cml4Ci0KLSNlbmRpZiAvLyBfX0FQUExFX18KLQotI2VuZGlm
CkluZGV4OiBrd3EvS1dRRmlsZUJ1dHRvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRRmlsZUJ1
dHRvbi5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBrd3EvS1dRRmlsZUJ1dHRvbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTA2LDEwICsxMDYsOCBAQAogewogICAgIE5TVmlldyA8V2ViQ29yZUZpbGVC
dXR0b24+ICpidXR0b24gPSBnZXRWaWV3KCk7CiAKLSAgICBOU1JlY3QgZnJhbWUgPSB7ezAsMH0s
ezAsMH19OwogICAgIEtXUV9CTE9DS19FWENFUFRJT05TOwotICAgIGZyYW1lID0gW2J1dHRvbiB2
aXN1YWxGcmFtZV07Ci0gICAgcmV0dXJuIEludFJlY3QoZnJhbWUpOworICAgIHJldHVybiBlbmNs
b3NpbmdJbnRSZWN0KFtidXR0b24gdmlzdWFsRnJhbWVdKTsKICAgICBLV1FfVU5CTE9DS19FWENF
UFRJT05TOwogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CkluZGV4OiBrd3EvS1dRQ29tYm9Cb3gu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpJbmRleDoga3dxL0tXUVBhaW50ZXIubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dx
L0tXUVBhaW50ZXIubW0JKHJldmlzaW9uIDEyNDY3KQorKysga3dxL0tXUVBhaW50ZXIubW0JKHdv
cmtpbmcgY29weSkKQEAgLTc0MCw3ICs3NDAsNyBAQAogCiB2b2lkIFFQYWludGVyOjpmaWxsUmVj
dChjb25zdCBJbnRSZWN0ICZyZWN0LCBjb25zdCBXZWJDb3JlOjpCcnVzaCAmYnJ1c2gpCiB7Ci0g
ICAgZmlsbFJlY3QocmVjdC5sZWZ0KCksIHJlY3QudG9wKCksIHJlY3Qud2lkdGgoKSwgcmVjdC5o
ZWlnaHQoKSwgYnJ1c2gpOworICAgIGZpbGxSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53
aWR0aCgpLCByZWN0LmhlaWdodCgpLCBicnVzaCk7CiB9CiAKIHZvaWQgUVBhaW50ZXI6OmFkZENs
aXAoY29uc3QgSW50UmVjdCAmcmVjdCkKQEAgLTc3NywxMiArNzc3LDEyIEBACiAgICAgLy8gbm9y
bWFsIHVzZSBjYXNlcyB0aGVzZSBlbGxpcHNlcyB3b24ndCBvdmVybGFwIG9uZSBhbm90aGVyIChv
ciB3aGVuIHRoZXkgZG8gdGhlIGN1cnZhdHVyZSBvZiBvbmUgd2lsbAogICAgIC8vIGJlIHN1YnN1
bWVkIGJ5IHRoZSBvdGhlcikuCiAgICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0
LCBDR1JlY3RNYWtlKHJlY3QueCgpLCByZWN0LnkoKSwgdG9wTGVmdC53aWR0aCgpICogMiwgdG9w
TGVmdC5oZWlnaHQoKSAqIDIpKTsKLSAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRl
eHQsIENHUmVjdE1ha2UocmVjdC54KCkgKyByZWN0LndpZHRoKCkgLSB0b3BSaWdodC53aWR0aCgp
ICogMiwgcmVjdC55KCksCisgICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0LCBD
R1JlY3RNYWtlKHJlY3QucmlnaHQoKSAtIHRvcFJpZ2h0LndpZHRoKCkgKiAyLCByZWN0LnkoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHQud2lkdGgoKSAqIDIsIHRvcFJpZ2h0LmhlaWdodCgpICogMikpOwotICAgIENHQ29udGV4dEFk
ZEVsbGlwc2VJblJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSwgcmVjdC55KCkgKyBy
ZWN0LmhlaWdodCgpIC0gYm90dG9tTGVmdC5oZWlnaHQoKSAqIDIsCisgICAgQ0dDb250ZXh0QWRk
RWxsaXBzZUluUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgpLCByZWN0LmJvdHRvbSgp
IC0gYm90dG9tTGVmdC5oZWlnaHQoKSAqIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQud2lkdGgoKSAqIDIsIGJvdHRvbUxlZnQu
aGVpZ2h0KCkgKiAyKSk7Ci0gICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjb250ZXh0LCBD
R1JlY3RNYWtlKHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gYm90dG9tUmlnaHQud2lkdGgoKSAq
IDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSAtIGJvdHRvbVJpZ2h0LmhlaWdodCgpICogMiwKKyAgICBD
R0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC5yaWdodCgp
IC0gYm90dG9tUmlnaHQud2lkdGgoKSAqIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlY3QuYm90dG9tKCkgLSBib3R0b21SaWdodC5oZWlnaHQo
KSAqIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvdHRvbVJpZ2h0LndpZHRoKCkgKiAyLCBib3R0b21SaWdodC5oZWlnaHQoKSAqIDIpKTsKICAg
ICAKICAgICAvLyBOb3cgYWRkIGZpdmUgcmVjdHMgKG9uZSBmb3IgZWFjaCBlZGdlIHJlY3QgaW4g
YmV0d2VlbiB0aGUgcm91bmRlZCBjb3JuZXJzIGFuZCBvbmUgZm9yIHRoZSBpbnRlcmlvcikuCkBA
IC03OTAsMTIgKzc5MCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWN0LndpZHRoKCkgLSB0b3BMZWZ0LndpZHRoKCkgLSB0b3BSaWdodC53aWR0aCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4KHRvcExlZnQuaGVp
Z2h0KCksIHRvcFJpZ2h0LmhlaWdodCgpKSkpOwogICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4
dCwgQ0dSZWN0TWFrZShyZWN0LngoKSArIGJvdHRvbUxlZnQud2lkdGgoKSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAt
IGtNYXgoYm90dG9tTGVmdC5oZWlnaHQoKSwgYm90dG9tUmlnaHQuaGVpZ2h0KCkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LmJvdHRvbSgpIC0ga01heChi
b3R0b21MZWZ0LmhlaWdodCgpLCBib3R0b21SaWdodC5oZWlnaHQoKSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Qud2lkdGgoKSAtIGJvdHRvbUxlZnQud2lk
dGgoKSAtIGJvdHRvbVJpZ2h0LndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtNYXgoYm90dG9tTGVmdC5oZWlnaHQoKSwgYm90dG9tUmlnaHQuaGVpZ2h0
KCkpKSk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBDR1JlY3RNYWtlKHJlY3QueCgp
LCByZWN0LnkoKSArIHRvcExlZnQuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtNYXgodG9wTGVmdC53aWR0aCgpLCBib3R0b21MZWZ0LndpZHRoKCkp
LCByZWN0LmhlaWdodCgpIC0gdG9wTGVmdC5oZWlnaHQoKSAtIGJvdHRvbUxlZnQuaGVpZ2h0KCkp
KTsKLSAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRleHQsIENHUmVjdE1ha2UocmVjdC54KCkgKyBy
ZWN0LndpZHRoKCkgLSBrTWF4KHRvcFJpZ2h0LndpZHRoKCksIGJvdHRvbVJpZ2h0LndpZHRoKCkp
LAorICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LnJpZ2h0KCkg
LSBrTWF4KHRvcFJpZ2h0LndpZHRoKCksIGJvdHRvbVJpZ2h0LndpZHRoKCkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIHRvcFJpZ2h0LmhlaWdo
dCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4KHRvcFJp
Z2h0LndpZHRoKCksIGJvdHRvbVJpZ2h0LndpZHRoKCkpLCByZWN0LmhlaWdodCgpIC0gdG9wUmln
aHQuaGVpZ2h0KCkgLSBib3R0b21SaWdodC5oZWlnaHQoKSkpOwogICAgIENHQ29udGV4dEFkZFJl
Y3QoY29udGV4dCwgQ0dSZWN0TWFrZShyZWN0LngoKSArIGtNYXgodG9wTGVmdC53aWR0aCgpLCBi
b3R0b21MZWZ0LndpZHRoKCkpLApJbmRleDoga3dxL0tXUUFwcGxpY2F0aW9uLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGt3cS9LV1FBcHBsaWNhdGlvbi5tbQkocmV2aXNpb24gMTI0NjcpCisrKyBrd3EvS1dR
QXBwbGljYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA0IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA0LiAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywy
MiArMjMsMTYgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIK
KyNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiS1dRQXBwbGljYXRpb24uaCIKLSNpbXBvcnQg
IktXUVN0eWxlLmgiCisKKyNpbXBvcnQgIkludFJlY3QuaCIKKyNpbXBvcnQgIktXUVdpZGdldC5o
IgogCiAvLyBUaGUgTlNTY3JlZW4gQ29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIHNob3VsZCBuZXZl
ciB0aHJvdywgc28KIC8vIHRoZXJlJ3Mgbm8gbmVlZCB0byBibG9jayBleGNlcHRpb25zLgogCi1p
bnQgUURlc2t0b3BXaWRnZXQ6OndpZHRoKCkKLXsKLSAgICByZXR1cm4gKGludClbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGZyYW1lXS5zaXplLndpZHRoOwotfQotICAgIAotaW50IFFEZXNrdG9wV2lk
Z2V0OjpoZWlnaHQoKQotewotICAgIHJldHVybiAoaW50KVtbTlNTY3JlZW4gbWFpblNjcmVlbl0g
ZnJhbWVdLnNpemUuaGVpZ2h0OwotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBGSVhNRTog
U29tZSBkYXkgd2UgbWF5IHdhbnQgdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB3aWRnZXQg
aXMgaW4gYSB3aW5kb3cgdGhhdCdzIG9uCiAvLyBhIGRpZmZlcmVudCBzY3JlZW4gZnJvbSB0aGUg
a2V5IHdpbmRvdyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGlzIHJ1bi4gSWYgc28sIGtlZXAgaW4g
bWluZApAQCAtNTEsMTMgKzQ1LDEzIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLUludFJlY3QgUURl
c2t0b3BXaWRnZXQ6OnNjcmVlbkdlb21ldHJ5KGludCBzY3JlZW5OdW1iZXIpCitJbnRSZWN0IFFE
ZXNrdG9wV2lkZ2V0OjpzY3JlZW5HZW9tZXRyeShpbnQpCiB7CiAgICAgLy8gSWdub3JlcyB0aGUg
c2NyZWVuIG51bWJlciwgYW5kIGFsd2F5cyByZXR1cm5zIHRoZSBnZW9tZXRyeSBvZiB0aGUgbWFp
biBzY3JlZW4sCiAgICAgLy8gd2hpY2ggaXMgdGhlIHNjcmVlbiB0aGF0IHRoZSBrZXkgd2luZG93
IGlzIG9uLgogICAgIE5TUmVjdCByZWN0ID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV07
CiAgICAgcmVjdC5vcmlnaW4ueSA9IE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RB
dEluZGV4OjBdIGZyYW1lXSkgLSBOU01heFkocmVjdCk7Ci0gICAgcmV0dXJuIEludFJlY3QocmVj
dCk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QocmVjdCk7CiB9CiAKIEludFJlY3QgUURl
c2t0b3BXaWRnZXQ6OmF2YWlsYWJsZUdlb21ldHJ5KFFXaWRnZXQgKndpZGdldCkKQEAgLTY3LDI2
ICs2MSwxMiBAQAogICAgICAgICBzY3JlZW4gPSBbTlNTY3JlZW4gbWFpblNjcmVlbl07CiAgICAg
TlNSZWN0IHJlY3QgPSBbc2NyZWVuIHZpc2libGVGcmFtZV07CiAgICAgcmVjdC5vcmlnaW4ueSA9
IE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1lXSkgLSBO
U01heFkocmVjdCk7Ci0gICAgcmV0dXJuIEludFJlY3QocmVjdCk7CisgICAgcmV0dXJuIGVuY2xv
c2luZ0ludFJlY3QocmVjdCk7CiB9CiAKLWludCBRRGVza3RvcFdpZGdldDo6c2NyZWVuRGVwdGgo
KSBjb25zdAoraW50IFFEZXNrdG9wV2lkZ2V0OjpzY3JlZW5EZXB0aChpbnQpCiB7CiAgICAgcmV0
dXJuIENHRGlzcGxheUJpdHNQZXJQaXhlbChrQ0dEaXJlY3RNYWluRGlzcGxheSk7CiB9CiAKLXZv
aWQgUUFwcGxpY2F0aW9uOjpzZXRPdmVycmlkZUN1cnNvcihjb25zdCBRQ3Vyc29yICZjKQotewot
ICAgIC8vIEZJWE1FOiBTaG91bGQgaW1wbGVtZW50IHRoaXMgc28gdGhhdCBmcmFtZSBib3JkZXIg
ZHJhZ2dpbmcgaGFzIHRoZSBwcm9wZXIgY3Vyc29yLgotfQotCi12b2lkIFFBcHBsaWNhdGlvbjo6
cmVzdG9yZU92ZXJyaWRlQ3Vyc29yKCkKLXsKLSAgICAvLyBGSVhNRTogU2hvdWxkIGltcGxlbWVu
dCB0aGlzIHNvIHRoYXQgZnJhbWUgYm9yZGVyIGRyYWdnaW5nIGhhcyB0aGUgcHJvcGVyIGN1cnNv
ci4KLX0KLQotUVN0eWxlICZRQXBwbGljYXRpb246OnN0eWxlKCkKLXsKLSAgICBzdGF0aWMgUVN0
eWxlIHN0eWxlOwotICAgIHJldHVybiBzdHlsZTsKIH0KSW5kZXg6IGt3cS9LV1FXaW5kb3dXaWRn
ZXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdpbmRvd1dpZGdldC5tbQkocmV2aXNpb24gMTI0
NjcpCisrKyBrd3EvS1dRV2luZG93V2lkZ2V0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw2IEBACiB2b2lkIEtXUVdpbmRvd1dpZGdldDo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCBJbnRS
ZWN0ICZyKQogewogICAgIC8vIEZJWE1FOiBDb3VsZCBkbyBzb21ldGhpbmcgdG8gbWFrZSBpdCBl
YXN5IGZvciB0aGUgYnJvd3NlciB0byBhdm9pZCBzYXZpbmcgdGhpcyBjaGFuZ2UuCi0gICAgW2Qt
PmJyaWRnZSBzZXRXaW5kb3dGcmFtZTpOU01ha2VSZWN0KHIueCgpLCBOU01heFkoW1tbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0pIC0gKHIueSgpICsgci5oZWlnaHQo
KSksCisgICAgW2QtPmJyaWRnZSBzZXRXaW5kb3dGcmFtZTpOU01ha2VSZWN0KHIueCgpLCBOU01h
eFkoW1tbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0pIC0gci5ib3R0
b20oKSwKICAgICAgICAgci53aWR0aCgpLCByLmhlaWdodCgpKV07CiB9CkluZGV4OiBrd3EvS1dR
QWNjT2JqZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FBY2NPYmplY3QubW0JKHJldmlzaW9u
IDEyNDY3KQorKysga3dxL0tXUUFjY09iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTM5LDcg
KzUzOSw3IEBACiAKIHN0YXRpYyBJbnRSZWN0IGJvdW5kaW5nQm94UmVjdChSZW5kZXJPYmplY3Qq
IG9iaikKIHsKLSAgICBJbnRSZWN0IHJlY3QoMCwwLDAsMCk7CisgICAgSW50UmVjdCByZWN0Owog
ICAgIGlmIChvYmopIHsKICAgICAgICAgaWYgKG9iai0+aXNJbmxpbmVDb250aW51YXRpb24oKSkK
ICAgICAgICAgICAgIG9iaiA9IG9iai0+ZWxlbWVudCgpLT5yZW5kZXJlcigpOwpAQCAtNTQ5LDcg
KzU0OSw3IEBACiAgICAgICAgIG9iai0+YWJzb2x1dGVSZWN0cyhyZWN0cywgeCwgeSk7CiAgICAg
ICAgIGZvciAoUVZhbHVlTGlzdDxJbnRSZWN0Pjo6Q29uc3RJdGVyYXRvciBpdCA9IHJlY3RzLmJl
Z2luKCk7IGl0ICE9IHJlY3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgICAgICBJbnRSZWN0IHIg
PSAqaXQ7Ci0gICAgICAgICAgICBpZiAoci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlmICgh
ci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAob2JqLT5zdHlsZSgpLT5oYXNBcHBl
YXJhbmNlKCkpCiAgICAgICAgICAgICAgICAgICAgIHRoZW1lKCktPmFkanVzdFJlcGFpbnRSZWN0
KG9iaiwgcik7CiAgICAgICAgICAgICAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQpAQCAtNTY2LDgg
KzU2Niw4IEBACiB7CiAgICAgSW50UmVjdCByZWN0ID0gbV9hcmVhRWxlbWVudCA/IG1fYXJlYUVs
ZW1lbnQtPmdldFJlY3QobV9yZW5kZXJlcikgOiBib3VuZGluZ0JveFJlY3QobV9yZW5kZXJlcik7
CiAgICAgCi0gICAgLy8gVGhlIENvY29hIGFjY2Vzc2liaWxpdHkgQVBJIHdhbnRzIHRoZSBsb3dl
ci1sZWZ0IGNvcm5lciwgbm90IHRoZSB1cHBlci1sZWZ0LCBzbyB3ZSBhZGQgaW4gb3VyIGhlaWdo
dC4KLSAgICBOU1BvaW50IHBvaW50ID0gTlNNYWtlUG9pbnQocmVjdC54KCksIHJlY3QueSgpICsg
cmVjdC5oZWlnaHQoKSk7CisgICAgLy8gVGhlIENvY29hIGFjY2Vzc2liaWxpdHkgQVBJIHdhbnRz
IHRoZSBsb3dlci1sZWZ0IGNvcm5lci4KKyAgICBOU1BvaW50IHBvaW50ID0gTlNNYWtlUG9pbnQo
cmVjdC54KCksIHJlY3QuYm90dG9tKCkpOwogICAgIGlmIChtX3JlbmRlcmVyICYmIG1fcmVuZGVy
ZXItPmNhbnZhcygpICYmIG1fcmVuZGVyZXItPmNhbnZhcygpLT52aWV3KCkpIHsKICAgICAgICAg
TlNWaWV3KiB2aWV3ID0gbV9yZW5kZXJlci0+Y2FudmFzKCktPnZpZXcoKS0+Z2V0RG9jdW1lbnRW
aWV3KCk7CiAgICAgICAgIHBvaW50ID0gW1t2aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVl
bjogW3ZpZXcgY29udmVydFBvaW50OiBwb2ludCB0b1ZpZXc6bmlsXV07CkBAIC0xMTA2LDcgKzEx
MDYsOCBAQAogICAgIC8vIHVzZSB0aGUgU2VsZWN0aW9uQ29udHJvbGxlciBjbGFzcyB0byBoZWxw
IGNhbGN1bGF0ZSB0aGUgY29ycmVzcG9uZGluZyByZWN0YW5nbGUKICAgICBJbnRSZWN0IHJlY3Qx
ID0gU2VsZWN0aW9uQ29udHJvbGxlcihzdGFydFZpc2libGVQb3NpdGlvbiwgc3RhcnRWaXNpYmxl
UG9zaXRpb24pLmNhcmV0UmVjdCgpOwogICAgIEludFJlY3QgcmVjdDIgPSBTZWxlY3Rpb25Db250
cm9sbGVyKGVuZFZpc2libGVQb3NpdGlvbiwgZW5kVmlzaWJsZVBvc2l0aW9uKS5jYXJldFJlY3Qo
KTsKLSAgICBJbnRSZWN0IG91cnJlY3QgPSByZWN0MS51bml0ZShyZWN0Mik7CisgICAgSW50UmVj
dCBvdXJyZWN0ID0gcmVjdDE7CisgICAgb3VycmVjdC51bml0ZShyZWN0Mik7CiAKICAgICAvLyB0
cnkgdG8gdXNlIHRoZSBkb2N1bWVudCB2aWV3IGZyb20gdGhlIHNlbGVjdGlvbiwgc28gdGhhdCBu
ZXN0ZWQgV2ViQXJlYXMgd29yaywKICAgICAvLyBidXQgZmFsbCBiYWNrIHRvIHRoZSB0b3AgbGV2
ZWwgZG9jIGlmIHdlIGRvIG5vdCBmaW5kIGl0IGVhc2lseQpAQCAtMTEyNCwxMiArMTEyNSwxMiBA
QAogICAgIC8vIGlmIHRoZSBzZWxlY3Rpb24gc3BhbnMgbGluZXMsIHRoZSByZWN0YW5nbGUgaXMg
dG8gZXh0ZW5kCiAgICAgLy8gYWNyb3NzIHRoZSB3aWR0aCBvZiB0aGUgdmlldwogICAgIGlmIChy
ZWN0MS5ib3R0b20oKSAhPSByZWN0Mi5ib3R0b20oKSkgewotICAgICAgICBvdXJyZWN0LnNldFgo
KGludClbdmlldyBmcmFtZV0ub3JpZ2luLngpOwotICAgICAgICBvdXJyZWN0LnNldFdpZHRoKChp
bnQpW3ZpZXcgZnJhbWVdLnNpemUud2lkdGgpOworICAgICAgICBvdXJyZWN0LnNldFgoc3RhdGlj
X2Nhc3Q8aW50PihbdmlldyBmcmFtZV0ub3JpZ2luLngpKTsKKyAgICAgICAgb3VycmVjdC5zZXRX
aWR0aChzdGF0aWNfY2FzdDxpbnQ+KFt2aWV3IGZyYW1lXS5zaXplLndpZHRoKSk7CiAgICAgfQog
IAogICAgIC8vIGNvbnZlcnQgb3VyIHJlY3RhbmdsZSB0byBzY3JlZW4gY29vcmRpbmF0ZXMKLSAg
ICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3Qob3VycmVjdC5sZWZ0KCksIG91cnJlY3QudG9wKCks
IG91cnJlY3Qud2lkdGgoKSwgb3VycmVjdC5oZWlnaHQoKSk7CisgICAgTlNSZWN0IHJlY3QgPSBv
dXJyZWN0OwogICAgIHJlY3QgPSBOU09mZnNldFJlY3QocmVjdCwgLWRvY1ZpZXctPmNvbnRlbnRz
WCgpLCAtZG9jVmlldy0+Y29udGVudHNZKCkpOwogICAgIHJlY3QgPSBbdmlldyBjb252ZXJ0UmVj
dDpyZWN0IHRvVmlldzpuaWxdOwogICAgIHJlY3Qub3JpZ2luID0gW1t2aWV3IHdpbmRvd10gY29u
dmVydEJhc2VUb1NjcmVlbjpyZWN0Lm9yaWdpbl07CkluZGV4OiBrd3EvS1dRUmVnaW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBrd3EvS1dRUmVnaW9uLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrd3Ev
S1dRUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNSArODgsNSBAQAogCiBJbnRSZWN0
IFFSZWdpb246OmJvdW5kaW5nUmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBhdGggPyBJbnRS
ZWN0KENHUGF0aEdldEJvdW5kaW5nQm94KHBhdGgpKSA6IEludFJlY3QoKTsKKyAgICByZXR1cm4g
cGF0aCA/IGVuY2xvc2luZ0ludFJlY3QoQ0dQYXRoR2V0Qm91bmRpbmdCb3gocGF0aCkpIDogSW50
UmVjdCgpOwogfQpJbmRleDoga3dxL0tXUUtXaW5Nb2R1bGUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dx
L0tXUUtXaW5Nb2R1bGUubW0JKHJldmlzaW9uIDEyNDY3KQorKysga3dxL0tXUUtXaW5Nb2R1bGUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDUgKzMyLDUgQEAKICAgICAvLyBObyBuZWVkIHRvIGJs
b2NrIGV4Y2VwdGlvbnMgYmVjYXVzZSB0aGVzZSBzaW1wbGUgTlNTY3JlZW4gY2FsbHMgbmV2ZXIg
dGhyb3cuCiAgICAgTlNSZWN0IHJlY3QgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIHZpc2libGVG
cmFtZV07CiAgICAgcmVjdC5vcmlnaW4ueSA9IE5TTWF4WShbW1tOU1NjcmVlbiBzY3JlZW5zXSBv
YmplY3RBdEluZGV4OjBdIGZyYW1lXSkgLSBOU01heFkocmVjdCk7Ci0gICAgcmV0dXJuIEludFJl
Y3QocmVjdCk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QocmVjdCk7CiB9CkluZGV4OiBr
d3EvS1dRUmVuZGVyVHJlZURlYnVnLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRUmVuZGVyVHJl
ZURlYnVnLmNwcAkocmV2aXNpb24gMTI0NjcpCisrKyBrd3EvS1dRUmVuZGVyVHJlZURlYnVnLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzE0LDExICszMTQsMTEgQEAKICAgICB0cyA8PCAibGF5ZXIi
OwogICAgIHRzIDw8ICIgIiA8PCBsYXllckJvdW5kczsKIAotICAgIGlmIChsYXllckJvdW5kcyAh
PSBsYXllckJvdW5kcy5pbnRlcnNlY3QoYmFja2dyb3VuZENsaXBSZWN0KSkKKyAgICBpZiAoIWJh
Y2tncm91bmRDbGlwUmVjdC5jb250YWlucyhsYXllckJvdW5kcykpCiAgICAgICAgIHRzIDw8ICIg
YmFja2dyb3VuZENsaXAgIiA8PCBiYWNrZ3JvdW5kQ2xpcFJlY3Q7Ci0gICAgaWYgKGxheWVyQm91
bmRzICE9IGxheWVyQm91bmRzLmludGVyc2VjdChjbGlwUmVjdCkpCisgICAgaWYgKCFjbGlwUmVj
dC5jb250YWlucyhsYXllckJvdW5kcykpCiAgICAgICAgIHRzIDw8ICIgY2xpcCAiIDw8IGNsaXBS
ZWN0OwotICAgIGlmIChsYXllckJvdW5kcyAhPSBsYXllckJvdW5kcy5pbnRlcnNlY3Qob3V0bGlu
ZUNsaXBSZWN0KSkKKyAgICBpZiAoIW91dGxpbmVDbGlwUmVjdC5jb250YWlucyhsYXllckJvdW5k
cykpCiAgICAgICAgIHRzIDw8ICIgb3V0bGluZUNsaXAgIiA8PCBvdXRsaW5lQ2xpcFJlY3Q7CiAK
ICAgICBpZiAobC5yZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDoga3dxL0tX
UUFwcGxpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUUFwcGxpY2F0aW9uLmgJKHJldmlz
aW9uIDEyNDY3KQorKysga3dxL0tXUUFwcGxpY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiwzMSArMjYsMjAgQEAKICNpZm5kZWYgUUFQUExJQ0FUSU9OX0hf
CiAjZGVmaW5lIFFBUFBMSUNBVElPTl9IXwogCi0jaW5jbHVkZSAiS1dRUGFsZXR0ZS5oIgotI2lu
Y2x1ZGUgIktXUVdpZGdldC5oIgorY2xhc3MgUVdpZGdldDsKIAotY2xhc3MgUURlc2t0b3BXaWRn
ZXQ7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFFBcHBsaWNhdGlvbiA6IHB1YmxpYyBR
T2JqZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUURlc2t0b3BXaWRnZXQgKmRlc2t0b3AoKSB7
IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIHZvaWQgc2V0T3ZlcnJpZGVDdXJzb3IoY29uc3QgUUN1
cnNvciAmKTsKLSAgICBzdGF0aWMgdm9pZCByZXN0b3JlT3ZlcnJpZGVDdXJzb3IoKTsKLSAgICBz
dGF0aWMgYm9vbCBzZW5kRXZlbnQoUU9iamVjdCAqbywgUUV2ZW50ICplKSB7IHJldHVybiBvLT5l
dmVudChlKTsgfQotICAgIHN0YXRpYyBRU3R5bGUgJnN0eWxlKCk7Ci0gICAgc3RhdGljIFFQYWxl
dHRlIHBhbGV0dGUoKSB7IHJldHVybiBRUGFsZXR0ZSgpOyB9Ci19OworY2xhc3MgSW50UmVjdDsK
IAotUUFwcGxpY2F0aW9uICogY29uc3QgcUFwcCA9IDA7Ci0KLWNsYXNzIFFEZXNrdG9wV2lkZ2V0
IDogcHVibGljIFFXaWRnZXQgeworY2xhc3MgUURlc2t0b3BXaWRnZXQgewogcHVibGljOgogICAg
IHN0YXRpYyBpbnQgc2NyZWVuTnVtYmVyKFFXaWRnZXQgKik7CiAgICAgc3RhdGljIEludFJlY3Qg
c2NyZWVuR2VvbWV0cnkoaW50IHNjcmVlbk51bWJlcik7Ci0gICAgaW50IHNjcmVlbkRlcHRoKCkg
Y29uc3Q7IC8vIEZJWE1FOiBEbyB3ZSByZWFsbHkgYWx3YXlzIGFzc3VtZSBtYWluIGRpc3BsYXkg
aGVyZT8gVGhhdCdzIGhvdyBpdCB1c2VkIHRvIHdvcmsgaW4gUVBhaW50RGV2aWNlTWV0cmljcy4K
KyAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoKGludCBzY3JlZW5OdW1iZXIpOwogICAgIHN0YXRp
YyBJbnRSZWN0IGF2YWlsYWJsZUdlb21ldHJ5KFFXaWRnZXQgKik7Ci0gICAgc3RhdGljIGludCB3
aWR0aCgpOwotICAgIHN0YXRpYyBpbnQgaGVpZ2h0KCk7CiB9OwogCit9CisKICNlbmRpZgpJbmRl
eDoga3dxL0tXUVdpZGdldC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRV2lkZ2V0Lm1tCShyZXZp
c2lvbiAxMjQ2NykKKysrIGt3cS9LV1FXaWRnZXQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzOCwy
MiArMTM4LDIyIEBACiAKIGludCBRV2lkZ2V0Ojp4KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJh
bWVHZW9tZXRyeSgpLnRvcExlZnQoKS54KCk7CisgICAgcmV0dXJuIGZyYW1lR2VvbWV0cnkoKS54
KCk7CiB9CiAKIGludCBRV2lkZ2V0Ojp5KCkgY29uc3QgCiB7Ci0gICAgcmV0dXJuIGZyYW1lR2Vv
bWV0cnkoKS50b3BMZWZ0KCkueSgpOworICAgIHJldHVybiBmcmFtZUdlb21ldHJ5KCkueSgpOwog
fQogCiBpbnQgUVdpZGdldDo6d2lkdGgoKSBjb25zdCAKIHsgCi0gICAgcmV0dXJuIGZyYW1lR2Vv
bWV0cnkoKS5zaXplKCkud2lkdGgoKTsKKyAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgpLndpZHRo
KCk7CiB9CiAKIGludCBRV2lkZ2V0OjpoZWlnaHQoKSBjb25zdCAKIHsKLSAgICByZXR1cm4gZnJh
bWVHZW9tZXRyeSgpLnNpemUoKS5oZWlnaHQoKTsKKyAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgp
LmhlaWdodCgpOwogfQogCiBJbnRTaXplIFFXaWRnZXQ6OnNpemUoKSBjb25zdCAKQEAgLTE2OCw3
ICsxNjgsNyBAQAogCiBJbnRQb2ludCBRV2lkZ2V0Ojpwb3MoKSBjb25zdCAKIHsKLSAgICByZXR1
cm4gZnJhbWVHZW9tZXRyeSgpLnRvcExlZnQoKTsKKyAgICByZXR1cm4gZnJhbWVHZW9tZXRyeSgp
LmxvY2F0aW9uKCk7CiB9CiAKIHZvaWQgUVdpZGdldDo6bW92ZShpbnQgeCwgaW50IHkpIApAQCAt
MTgzLDEwICsxODMsOCBAQAogCiBJbnRSZWN0IFFXaWRnZXQ6OmZyYW1lR2VvbWV0cnkoKSBjb25z
dAogewotICAgIEludFJlY3QgcmVjdDsKICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKLSAgICBy
ZWN0ID0gSW50UmVjdChbZ2V0T3V0ZXJWaWV3KCkgZnJhbWVdKTsKLSAgICByZXR1cm4gcmVjdDsK
KyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbZ2V0T3V0ZXJWaWV3KCkgZnJhbWVdKTsKICAg
ICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CkluZGV4
OiBrd3EvS1dRRm9udE1ldHJpY3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUUZvbnRNZXRyaWNz
Lm1tCShyZXZpc2lvbiAxMjQ2NykKKysrIGt3cS9LV1FGb250TWV0cmljcy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBACiAgICAgZ2VvbWV0cnkuc2VsZWN0aW9uWSA9IHk7CiAg
ICAgZ2VvbWV0cnkuc2VsZWN0aW9uSGVpZ2h0ID0gaDsKICAgICBnZW9tZXRyeS51c2VGb250TWV0
cmljc0ZvclNlbGVjdGlvbllBbmRIZWlnaHQgPSBmYWxzZTsKLSAgICByZXR1cm4gSW50UmVjdChb
ZGF0YS0+Z2V0UmVuZGVyZXIoKSBzZWxlY3Rpb25SZWN0Rm9yUnVuOiZydW4gc3R5bGU6JnN0eWxl
IGdlb21ldHJ5OiZnZW9tZXRyeV0pOworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFtkYXRh
LT5nZXRSZW5kZXJlcigpIHNlbGVjdGlvblJlY3RGb3JSdW46JnJ1biBzdHlsZTomc3R5bGUgZ2Vv
bWV0cnk6Jmdlb21ldHJ5XSk7CiB9CiAKIGludCBRRm9udE1ldHJpY3M6OmNoZWNrU2VsZWN0aW9u
UG9pbnQoUUNoYXIgKnMsIGludCBzbGVuLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQgdG9BZGQsIGlu
dCB0YWJXaWR0aCwgaW50IHhwb3MsIGludCBsZXR0ZXJTcGFjaW5nLCBpbnQgd29yZFNwYWNpbmcs
IGJvb2wgc21hbGxDYXBzLCBpbnQgeCwgYm9vbCByZXZlcnNlZCwgYm9vbCBkaXJPdmVycmlkZSwg
Ym9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3QKQEAgLTI5Nyw3ICsyOTcsNyBAQAogSW50
UmVjdCBRRm9udE1ldHJpY3M6OmJvdW5kaW5nUmVjdChpbnQgeCwgaW50IHksIGludCB3aWR0aCwg
aW50IGhlaWdodCwgaW50IGZsYWdzLCBjb25zdCBRU3RyaW5nICZzdHIsIGludCB0YWJXaWR0aCwg
aW50IHhwb3MpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IG5lZWQgdG8gc3VwcG9ydCB3b3JkIHdy
YXBwaW5nPwotICAgIHJldHVybiBJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpLmludGVyc2Vj
dChib3VuZGluZ1JlY3Qoc3RyLCB0YWJXaWR0aCwgeHBvcykpOworICAgIHJldHVybiBpbnRlcnNl
Y3Rpb24oSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSwgYm91bmRpbmdSZWN0KHN0ciwgdGFi
V2lkdGgsIHhwb3MpKTsKIH0KIAogSW50U2l6ZSBRRm9udE1ldHJpY3M6OnNpemUoaW50LCBjb25z
dCBRU3RyaW5nICZxc3RyaW5nLCBpbnQgdGFiV2lkdGgsIGludCB4cG9zKSBjb25zdApJbmRleDog
a3dxL0tXUVBhaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRUGFpbnRlci5oCShyZXZpc2lv
biAxMjQ2NykKKysrIGt3cS9LV1FQYWludGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsy
NiwxNiBAQAogI2lmbmRlZiBRUEFJTlRFUl9IXwogI2RlZmluZSBRUEFJTlRFUl9IXwogCi0jaW5j
bHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJQZW4uaCIKICNpbmNsdWRlICJCcnVzaC5oIgogI2lu
Y2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiS1dRRm9udE1ldHJpY3MuaCIKLSNpbmNsdWRlICJL
V1FOYW1lc3BhY2UuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUGVuLmgiCiAK
ICNpZiBfX0FQUExFX18KICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9u
U2VydmljZXMuaD4KICNlbmRpZgogCiBjbGFzcyBRRm9udDsKK2NsYXNzIFFGb250TWV0cmljczsK
IGNsYXNzIFFTdHJpbmc7CiBjbGFzcyBRV2lkZ2V0OwogCkBAIC00OSw3ICs0Niw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSW1hZ2U7CitjbGFzcyBJbnRQb2ludDsKK2NsYXNz
IEludFBvaW50QXJyYXk7CiBjbGFzcyBRUGFpbnRlclByaXZhdGU7CiAKIGNsYXNzIFFQYWludGVy
IDogcHVibGljIFF0IHsKQEAgLTcwLDkgKzY4LDkgQEAKICAgICB2b2lkIHNldFBlbihQZW46OlBl
blN0eWxlKTsKICAgICB2b2lkIHNldFBlbihSR0JBMzIpOwogICAgIAotICAgIGNvbnN0IFdlYkNv
cmU6OkJydXNoICZRUGFpbnRlcjo6YnJ1c2goKSBjb25zdDsKLSAgICB2b2lkIHNldEJydXNoKGNv
bnN0IFdlYkNvcmU6OkJydXNoICYpOwotICAgIHZvaWQgc2V0QnJ1c2goV2ViQ29yZTo6QnJ1c2g6
OkJydXNoU3R5bGUpOworICAgIGNvbnN0IEJydXNoJiBicnVzaCgpIGNvbnN0OworICAgIHZvaWQg
c2V0QnJ1c2goY29uc3QgQnJ1c2gmKTsKKyAgICB2b2lkIHNldEJydXNoKEJydXNoOjpCcnVzaFN0
eWxlKTsKICAgICB2b2lkIHNldEJydXNoKFJHQkEzMik7CiAKICAgICBJbnRSZWN0IHhGb3JtKGNv
bnN0IEludFJlY3QgJikgY29uc3Q7CkBAIC04NiwyMCArODQsMjMgQEAKICAgICB2b2lkIGRyYXdB
cmMoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCk7CiAgICAgdm9pZCBkcmF3Q29udmV4UG9s
eWdvbihjb25zdCBJbnRQb2ludEFycmF5ICYpOwogCi0gICAgdm9pZCBmaWxsUmVjdChpbnQsIGlu
dCwgaW50LCBpbnQsIGNvbnN0IFdlYkNvcmU6OkJydXNoICYpOwotICAgIHZvaWQgZmlsbFJlY3Qo
Y29uc3QgSW50UmVjdCAmLCBjb25zdCBXZWJDb3JlOjpCcnVzaCAmKTsKKyAgICB2b2lkIGZpbGxS
ZWN0KGludCwgaW50LCBpbnQsIGludCwgY29uc3QgQnJ1c2gmKTsKKyAgICB2b2lkIGZpbGxSZWN0
KGNvbnN0IEludFJlY3QmLCBjb25zdCBCcnVzaCYpOwogCi0gICAgdm9pZCBkcmF3SW1hZ2VBdFBv
aW50KGNvbnN0IEltYWdlJiwgY29uc3QgSW50UG9pbnQmLCBJbWFnZTo6Q29tcG9zaXRlT3BlcmF0
b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBJbWFnZTo6Q29tcG9zaXRlU291cmNlT3Zlcik7Ci0gICAg
dm9pZCBkcmF3SW1hZ2VJblJlY3QoY29uc3QgSW1hZ2UmLCBjb25zdCBJbnRSZWN0JiwgSW1hZ2U6
OkNvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gSW1hZ2U6OkNvbXBvc2l0ZVNv
dXJjZU92ZXIpOworICAgIHZvaWQgZHJhd0ltYWdlQXRQb2ludChjb25zdCBJbWFnZSYsIGNvbnN0
IEludFBvaW50JiwgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yID0gSW1hZ2U6OkNvbXBvc2l0ZVNv
dXJjZU92ZXIpOworICAgIHZvaWQgZHJhd0ltYWdlSW5SZWN0KGNvbnN0IEltYWdlJiwgY29uc3Qg
SW50UmVjdCYsIEltYWdlOjpDb21wb3NpdGVPcGVyYXRvciA9IEltYWdlOjpDb21wb3NpdGVTb3Vy
Y2VPdmVyKTsKIAogICAgIHZvaWQgZHJhd0ltYWdlKGNvbnN0IEltYWdlICYsIGludCB4LCBpbnQg
eSwgCi0gICAgICAgICAgICAgICAgICAgaW50IHN4PTAsIGludCBzeT0wLCBpbnQgc3c9LTEsIGlu
dCBzaD0tMSwgSW1hZ2U6OkNvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gSW1h
Z2U6OkNvbXBvc2l0ZVNvdXJjZU92ZXIsIAorICAgICAgICBpbnQgc3ggPSAwLCBpbnQgc3kgPSAw
LCBpbnQgc3cgPSAtMSwgaW50IHNoID0gLTEsCisgICAgICAgIEltYWdlOjpDb21wb3NpdGVPcGVy
YXRvciA9IEltYWdlOjpDb21wb3NpdGVTb3VyY2VPdmVyLCAKICAgICAgICAgICAgICAgICAgICB2
b2lkKiBuYXRpdmVEYXRhID0gMCk7CiAgICAgdm9pZCBkcmF3SW1hZ2UoY29uc3QgSW1hZ2UmLCBp
bnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwKLSAgICAgICAgICAgICAgICAgICBpbnQgc3g9MCwg
aW50IHN5PTAsIGludCBzdz0tMSwgaW50IHNoPS0xLCBJbWFnZTo6Q29tcG9zaXRlT3BlcmF0b3Ig
Y29tcG9zaXRlT3BlcmF0b3IgPSBJbWFnZTo6Q29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAgICAg
aW50IHN4ID0gMCwgaW50IHN5ID0gMCwgaW50IHN3ID0gLTEsIGludCBzaCA9IC0xLAorICAgICAg
ICBJbWFnZTo6Q29tcG9zaXRlT3BlcmF0b3IgPSBJbWFnZTo6Q29tcG9zaXRlU291cmNlT3Zlciwg
CiAgICAgICAgICAgICAgICAgICAgdm9pZCogbmF0aXZlRGF0YSA9IDApOwogICAgIHZvaWQgZHJh
d0Zsb2F0SW1hZ2UoY29uc3QgSW1hZ2UmLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3LCBmbG9h
dCBoLAotICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc3g9MCwgZmxvYXQgc3k9MCwgZmxv
YXQgc3c9LTEsIGZsb2F0IHNoPS0xLCBJbWFnZTo6Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3BlcmF0b3IgPSBJbWFnZTo6Q29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAgICAgZmxvYXQgc3gg
PSAwLCBmbG9hdCBzeSA9IDAsIGZsb2F0IHN3ID0gLTEsIGZsb2F0IHNoID0gLTEsCisgICAgICAg
IEltYWdlOjpDb21wb3NpdGVPcGVyYXRvciA9IEltYWdlOjpDb21wb3NpdGVTb3VyY2VPdmVyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIG5hdGl2ZURhdGEgPSAwKTsKICAgICB2b2lk
IGRyYXdUaWxlZEltYWdlKGNvbnN0IEltYWdlJiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQgc3g9
MCwgaW50IHN5PTAsIHZvaWQqIG5hdGl2ZURhdGEgPSAwKTsKICAgICB2b2lkIGRyYXdTY2FsZWRB
bmRUaWxlZEltYWdlKGNvbnN0IEltYWdlICYsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQs
IGludCwgaW50LCAKQEAgLTEwNyw4ICsxMDgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdm9pZCogbmF0aXZlRGF0YSA9IDApOwogCiAgICAgdm9pZCBhZGRDbGlwKGNvbnN0
IEludFJlY3QgJik7Ci0gICAgdm9pZCBhZGRSb3VuZGVkUmVjdENsaXAoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29u
c3QgSW50U2l6ZSYgYm90dG9tUmlnaHQpOworICAgIHZvaWQgYWRkUm91bmRlZFJlY3RDbGlwKGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BS
aWdodCwgY29uc3QgSW50U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmln
aHQpOwogCiAgICAgUmFzdGVyT3AgcmFzdGVyT3AoKSBjb25zdDsKICAgICB2b2lkIHNldFJhc3Rl
ck9wKFJhc3Rlck9wKTsKQEAgLTExNiwxMCArMTE2LDExIEBACiAgICAgdm9pZCBkcmF3VGV4dChp
bnQgeCwgaW50IHksIGludCB0YWJXaWR0aCwgaW50IHhwb3MsIGludCwgaW50LCBpbnQgYWxpZ25t
ZW50RmxhZ3MsIGNvbnN0IFFTdHJpbmcgJik7CiAgICAgdm9pZCBkcmF3SGlnaGxpZ2h0Rm9yVGV4
dChpbnQgeCwgaW50IHksIGludCBoLCBpbnQgdGFiV2lkdGgsIGludCB4cG9zLAogICAgICAgICAg
ICAgICAgICAgY29uc3QgUUNoYXIgKiwgaW50IGxlbmd0aCwgaW50IGZyb20sIGludCB0bywgaW50
IHRvQWRkLAotICAgICAgICAgICAgICAgICAgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvciwg
UVBhaW50ZXI6OlRleHREaXJlY3Rpb24gZCwgYm9vbCB2aXN1YWxseU9yZGVyZWQsCisgICAgICAg
IGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIFRleHREaXJlY3Rpb24sIGJvb2wgdmlzdWFs
bHlPcmRlcmVkLAogICAgICAgICAgICAgICAgICAgaW50IGxldHRlclNwYWNpbmcsIGludCB3b3Jk
U3BhY2luZywgYm9vbCBzbWFsbENhcHMpOwotICAgIHZvaWQgZHJhd1RleHQoaW50IHgsIGludCB5
LCBpbnQgdGFiV2lkdGgsIGludCB4cG9zLCBjb25zdCBRQ2hhciAqLCBpbnQgbGVuZ3RoLCBpbnQg
ZnJvbSwgaW50IHRvLCBpbnQgdG9BZGQsCi0gICAgICAgICAgICAgICAgICBjb25zdCBDb2xvciYg
YmFja2dyb3VuZENvbG9yLCBRUGFpbnRlcjo6VGV4dERpcmVjdGlvbiBkLCBib29sIHZpc3VhbGx5
T3JkZXJlZCwKKyAgICB2b2lkIGRyYXdUZXh0KGludCB4LCBpbnQgeSwgaW50IHRhYldpZHRoLCBp
bnQgeHBvcywKKyAgICAgICAgY29uc3QgUUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQgZnJvbSwgaW50
IHRvLCBpbnQgdG9BZGQsCisgICAgICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIFRl
eHREaXJlY3Rpb24sIGJvb2wgdmlzdWFsbHlPcmRlcmVkLAogICAgICAgICAgICAgICAgICAgaW50
IGxldHRlclNwYWNpbmcsIGludCB3b3JkU3BhY2luZywgYm9vbCBzbWFsbENhcHMpOwogICAgIHZv
aWQgZHJhd0xpbmVGb3JUZXh0KGludCB4LCBpbnQgeSwgaW50IHlPZmZzZXQsIGludCB3aWR0aCk7
CiAgICAgdm9pZCBkcmF3TGluZUZvck1pc3NwZWxsaW5nKGludCB4LCBpbnQgeSwgaW50IHdpZHRo
KTsKQEAgLTEzNywxNyArMTM4LDIxIEBACiAgICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpOwogICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIAotICAg
IHZvaWQgc2V0U2hhZG93KGludCB4LCBpbnQgeSwgaW50IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xv
cik7CisgICAgdm9pZCBzZXRTaGFkb3coaW50IHgsIGludCB5LCBpbnQgYmx1ciwgY29uc3QgQ29s
b3ImKTsKICAgICB2b2lkIGNsZWFyU2hhZG93KCk7CiAKICAgICB2b2lkIGluaXRGb2N1c1Jpbmco
aW50IHdpZHRoLCBpbnQgb2Zmc2V0KTsKLSAgICB2b2lkIGluaXRGb2N1c1JpbmcoaW50IHdpZHRo
LCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpOworICAgIHZvaWQgaW5pdEZvY3VzUmlu
ZyhpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBhZGRGb2N1
c1JpbmdSZWN0KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICAgICB2b2lk
IGRyYXdGb2N1c1JpbmcoKTsKICAgICB2b2lkIGNsZWFyRm9jdXNSaW5nKCk7CiAgICAgCiAjaWYg
X19BUFBMRV9fCiAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250ZXh0KCk7CisKKyAgICBzdGF0
aWMgaW50IGdldENvbXBvc2l0ZU9wZXJhdGlvbihDR0NvbnRleHRSZWYpOworICAgIHN0YXRpYyB2
b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbihDR0NvbnRleHRSZWYsIGNvbnN0IFFTdHJpbmcmIG9w
ZXJhdGlvbik7CisgICAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENHQ29udGV4
dFJlZiwgaW50IG9wZXJhdGlvbik7CiAjZW5kaWYKIAogI2lmIFNWR19TVVBQT1JUCkBAIC0xNTUs
MTIgKzE2MCw2IEBACiAgICAgc3RhdGljIEtSZW5kZXJpbmdEZXZpY2UgKnJlbmRlcmluZ0Rldmlj
ZSgpOwogI2VuZGlmCiAgICAgCi0jaWYgX19BUFBMRV9fCi0gICAgc3RhdGljIGludCBnZXRDb21w
b3NpdGVPcGVyYXRpb24oQ0dDb250ZXh0UmVmIGNvbnRleHQpOwotICAgIHN0YXRpYyB2b2lkIHNl
dENvbXBvc2l0ZU9wZXJhdGlvbiAoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFFTdHJpbmcg
Jm9wZXJhdGlvbik7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9uIChDR0Nv
bnRleHRSZWYgY29udGV4dCwgaW50IG9wZXJhdGlvbik7Ci0jZW5kaWYKLQogICAgIGJvb2wgcHJp
bnRpbmcoKSBjb25zdCB7IHJldHVybiBfaXNGb3JQcmludGluZzsgfQogCiBwcml2YXRlOgpAQCAt
MTcxLDcgKzE3MCw3IEBACiAgICAgdm9pZCBfc2V0Q29sb3JGcm9tQnJ1c2goKTsKICAgICB2b2lk
IF9zZXRDb2xvckZyb21QZW4oKTsKIAotICAgIHZvaWQgX2ZpbGxSZWN0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHcsIGZsb2F0IGgsIGNvbnN0IENvbG9yJiBjb2xvcik7CisgICAgdm9pZCBfZmls
bFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgdywgZmxvYXQgaCwgY29uc3QgQ29sb3ImKTsK
ICAgICAKICAgICB2b2lkIF91cGRhdGVSZW5kZXJlcigpOwogCkluZGV4OiBrd3EvS1dRV01hdHJp
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0ga3dxL0tXUVdNYXRyaXguY3BwCShyZXZpc2lvbiAxMjQ2NykK
KysrIGt3cS9LV1FXTWF0cml4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxNDAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIktXUVdN
YXRyaXguaCIKLQotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotCi1zdGF0aWMgY29uc3QgZG91Ymxl
IGRlZzJyYWQgPSAwLjAxNzQ1MzI5MjUxOTk0MzI5NTc2OTsgLy8gcGkvMTgwCi0KLVFNYXRyaXg6
OlFNYXRyaXgoKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eTsKLX0KLQotUU1hdHJpeDo6UU1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBk
b3VibGUgZCwgZG91YmxlIHR4LCBkb3VibGUgdHkpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0Fm
ZmluZVRyYW5zZm9ybU1ha2UoYSxiLGMsZCx0eCx0eSk7Ci19Ci0KLVFNYXRyaXg6OlFNYXRyaXgo
Q0dBZmZpbmVUcmFuc2Zvcm0gdCkgewotICAgIG1fdHJhbnNmb3JtID0gdDsKLX0KLQotdm9pZCBR
TWF0cml4OjpzZXRNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQs
IGRvdWJsZSB0eCwgZG91YmxlIHR5KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFu
c2Zvcm1NYWtlKGEsYixjLGQsdHgsdHkpOwotfQotCi12b2lkIFFNYXRyaXg6Om1hcChkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSAqeDIsIGRvdWJsZSAqeTIpIGNvbnN0Ci17Ci0gICAgQ0dQb2lu
dCByZXN1bHQgPSBDR1BvaW50QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dQb2ludE1ha2UoeCx5KSxt
X3RyYW5zZm9ybSk7Ci0gICAgKngyID0gcmVzdWx0Lng7Ci0gICAgKnkyID0gcmVzdWx0Lnk7Ci19
Ci0KLUludFJlY3QgUU1hdHJpeDo6bWFwUmVjdChjb25zdCBJbnRSZWN0ICZyZWN0KSBjb25zdAot
ewotICAgIHJldHVybiBJbnRSZWN0KENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKENHUmVjdChy
ZWN0KSwgbV90cmFuc2Zvcm0pKTsKLX0KLQotRmxvYXRSZWN0IFFNYXRyaXg6Om1hcFJlY3QoY29u
c3QgRmxvYXRSZWN0ICZyZWN0KSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFJlY3QoQ0dSZWN0
QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dSZWN0KHJlY3QpLCBtX3RyYW5zZm9ybSkpOwotfQotCi1i
b29sIFFNYXRyaXg6OmlzSWRlbnRpdHkoKSBjb25zdAotewotICAgIHJldHVybiBDR0FmZmluZVRy
YW5zZm9ybUlzSWRlbnRpdHkobV90cmFuc2Zvcm0pOwotfQotCi12b2lkIFFNYXRyaXg6OnJlc2V0
KCkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7Ci19Ci0K
LVFNYXRyaXggJlFNYXRyaXg6OnNjYWxlKGRvdWJsZSBzeCwgZG91YmxlIHN5KQotewotICAgIG1f
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZShtX3RyYW5zZm9ybSwgc3gsIHN5KTsK
LSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6OnJvdGF0ZShkb3VibGUg
ZCkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtUm90YXRlKG1fdHJhbnNm
b3JtLCBkICogZGVnMnJhZCk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1RTWF0cml4ICZRTWF0
cml4Ojp0cmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpCi17Ci0gICAgbV90cmFuc2Zvcm0g
PSBDR0FmZmluZVRyYW5zZm9ybVRyYW5zbGF0ZShtX3RyYW5zZm9ybSwgdHgsIHR5KTsKLSAgICBy
ZXR1cm4gKnRoaXM7Ci19Ci0KLVFNYXRyaXggJlFNYXRyaXg6OnNoZWFyKGRvdWJsZSBzeCwgZG91
YmxlIHN5KQotewotICAgIENHQWZmaW5lVHJhbnNmb3JtIHNoZWFyID0gQ0dBZmZpbmVUcmFuc2Zv
cm1NYWtlKDEsIHN5LCBzeCwgMSwgMCwgMCk7Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRy
YW5zZm9ybUNvbmNhdChzaGVhcixtX3RyYW5zZm9ybSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQot
Ci1kb3VibGUgUU1hdHJpeDo6ZGV0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFuc2Zvcm0u
YSAqIG1fdHJhbnNmb3JtLmQgLSBtX3RyYW5zZm9ybS5iICogbV90cmFuc2Zvcm0uYzsKLX0KLQot
Ym9vbCBRTWF0cml4Ojppc0ludmVydGlibGUoKSBjb25zdAotewotICAgIHJldHVybiBkZXQoKSAh
PSAwLjA7Ci19Ci0KLVFNYXRyaXggUU1hdHJpeDo6aW52ZXJ0KCkgY29uc3QKLXsKLSAgICBpZiAo
aXNJbnZlcnRpYmxlKCkpCi0gICAgICAgIHJldHVybiBRTWF0cml4KENHQWZmaW5lVHJhbnNmb3Jt
SW52ZXJ0KG1fdHJhbnNmb3JtKSk7Ci0gICAgcmV0dXJuIFFNYXRyaXgoKTsKLX0KLQotUU1hdHJp
eDo6b3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25zdAotewotICAgIHJldHVybiBtX3Ry
YW5zZm9ybTsKLX0KLQotYm9vbCBRTWF0cml4OjpvcGVyYXRvcj09IChjb25zdCBRTWF0cml4ICZt
MikgY29uc3QKLXsKLSAgICByZXR1cm4gQ0dBZmZpbmVUcmFuc2Zvcm1FcXVhbFRvVHJhbnNmb3Jt
KG1fdHJhbnNmb3JtLCBDR0FmZmluZVRyYW5zZm9ybShtMikpOwotfQotCi1RTWF0cml4ICZRTWF0
cml4OjpvcGVyYXRvcio9IChjb25zdCBRTWF0cml4ICZtMikKLXsKLSAgICBtX3RyYW5zZm9ybSA9
IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG1fdHJhbnNmb3JtLCBDR0FmZmluZVRyYW5zZm9ybSht
MikpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotUU1hdHJpeCBRTWF0cml4OjpvcGVyYXRvciog
KGNvbnN0IFFNYXRyaXggJm0yKQotewotICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9ybUNvbmNh
dChtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0obTIpKTsKLX0KSW5kZXg6IGxvYWRlci9D
YWNoZWRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9hZGVyL0NhY2hlZEltYWdlLmNwcAkocmV2
aXNpb24gMTI0NjcpCisrKyBsb2FkZXIvQ2FjaGVkSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw4ICs1Nyw3IEBACiB7CiAgICAgQ2FjaGVkT2JqZWN0OjpyZWYoYyk7CiAKLSAgICAvLyBm
b3IgbW91c2VvdmVycywgZHluYW1pYyBjaGFuZ2VzCi0gICAgaWYgKCFkZWNvZGVkUmVjdCgpLmlz
TnVsbCgpKQorICAgIGlmICghZGVjb2RlZFJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIGMtPmlt
YWdlQ2hhbmdlZCh0aGlzLCBkZWNvZGVkUmVjdCgpKTsKIAogICAgIGlmICghbV9sb2FkaW5nKQpJ
bmRleDogcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWVWaWV3LmNw
cAkocmV2aXNpb24gMTI0NjcpCisrKyBwYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgyNCwxMCArODI0LDEwIEBACiAgICAgZC0+c2Nyb2xsaW5nU2VsZiA9IHRydWU7IC8vIHNv
IHNjcm9sbCBldmVudHMgZ2V0IGlnbm9yZWQKIAogICAgIGludCB4LCB5LCB4ZSwgeWU7Ci0gICAg
eCA9IGJvdW5kcy5sZWZ0KCk7Ci0gICAgeSA9IGJvdW5kcy50b3AoKTsKLSAgICB4ZSA9IGJvdW5k
cy5yaWdodCgpOwotICAgIHllID0gYm91bmRzLmJvdHRvbSgpOworICAgIHggPSBib3VuZHMueCgp
OworICAgIHkgPSBib3VuZHMueSgpOworICAgIHhlID0gYm91bmRzLnJpZ2h0KCkgLSAxOworICAg
IHllID0gYm91bmRzLmJvdHRvbSgpIC0gMTsKICAgICAKICAgICBpbnQgZGVsdGF4OwogICAgIGlu
dCBkZWx0YXk7CkBAIC04NjIsMTAgKzg2Miw4IEBACiAgICAgaW50IG1heHggPSBjdXJXaWR0aC1k
LT5ib3JkZXJYOwogICAgIGludCBtYXh5ID0gY3VySGVpZ2h0LWQtPmJvcmRlclk7CiAKLSAgICBp
bnQgc2Nyb2xsWCxzY3JvbGxZOwotCi0gICAgc2Nyb2xsWCA9IGRlbHRheCA+IDAgPyAoZGVsdGF4
ID4gbWF4eCA/IG1heHggOiBkZWx0YXgpIDogZGVsdGF4ID09IDAgPyAwIDogKGRlbHRheD4tbWF4
eCA/IGRlbHRheCA6IC1tYXh4KTsKLSAgICBzY3JvbGxZID0gZGVsdGF5ID4gMCA/IChkZWx0YXkg
PiBtYXh5ID8gbWF4eSA6IGRlbHRheSkgOiBkZWx0YXkgPT0gMCA/IDAgOiAoZGVsdGF5Pi1tYXh5
ID8gZGVsdGF5IDogLW1heHkpOworICAgIGludCBzY3JvbGxYID0gZGVsdGF4ID4gMCA/IChkZWx0
YXggPiBtYXh4ID8gbWF4eCA6IGRlbHRheCkgOiBkZWx0YXggPT0gMCA/IDAgOiAoZGVsdGF4ID4g
LW1heHggPyBkZWx0YXggOiAtbWF4eCk7CisgICAgaW50IHNjcm9sbFkgPSBkZWx0YXkgPiAwID8g
KGRlbHRheSA+IG1heHkgPyBtYXh5IDogZGVsdGF5KSA6IGRlbHRheSA9PSAwID8gMCA6IChkZWx0
YXkgPiAtbWF4eSA/IGRlbHRheSA6IC1tYXh5KTsKIAogICAgIGlmIChjb250ZW50c1goKSArIHNj
cm9sbFggPCAwKQogCXNjcm9sbFggPSAtY29udGVudHNYKCk7CkBAIC04ODcsMTAgKzg4NSw3IEBA
CiAKICAgICBkLT5zY3JvbGxpbmdTZWxmID0gZmFsc2U7CiAKLSAgICBpZiAoIChzY3JvbGxYIT1t
YXh4KSAmJiAoc2Nyb2xsWSE9bWF4eSkgKQotCXJldHVybiB0cnVlOwotICAgIGVsc2UgcmV0dXJu
IGZhbHNlOwotCisgICAgcmV0dXJuIHNjcm9sbFggIT0gbWF4eCAmJiBzY3JvbGxZICE9IG1heHk7
CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpmb2N1c05leHRQcmV2Tm9kZShib29sIG5leHQpCkBAIC05
MTYsMTMgKzkxMSwxMCBAQAogICAgICAgICBib29sIHZpc2libGUgPSBmYWxzZTsKICAgICAgICAg
Tm9kZUltcGwgKnRvRm9jdXMgPSBuZXdGb2N1c05vZGU7CiAgICAgICAgIHdoaWxlICghdmlzaWJs
ZSAmJiB0b0ZvY3VzKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IGZvY3VzTm9kZVJlY3QgPSB0b0Zv
Y3VzLT5nZXRSZWN0KCk7Ci0gICAgICAgICAgICBpZiAoKGZvY3VzTm9kZVJlY3QubGVmdCgpID4g
Y29udGVudHNYKCkpICYmIChmb2N1c05vZGVSZWN0LnJpZ2h0KCkgPCBjb250ZW50c1goKSArIHZp
c2libGVXaWR0aCgpKSAmJgotICAgICAgICAgICAgICAgIChmb2N1c05vZGVSZWN0LnRvcCgpID4g
Y29udGVudHNZKCkpICYmIChmb2N1c05vZGVSZWN0LmJvdHRvbSgpIDwgY29udGVudHNZKCkgKyB2
aXNpYmxlSGVpZ2h0KCkpKSB7CisgICAgICAgICAgICBpZiAodG9Gb2N1cy0+Z2V0UmVjdCgpLmlu
dGVyc2VjdHMoSW50UmVjdChjb250ZW50c1goKSwgY29udGVudHNZKCksIHZpc2libGVXaWR0aCgp
LCB2aXNpYmxlSGVpZ2h0KCkpKSkgewogICAgICAgICAgICAgICAgIC8vIHRvRm9jdXMgaXMgdmlz
aWJsZSBpbiB0aGUgY29udGVudHMgYXJlYQogICAgICAgICAgICAgICAgIHZpc2libGUgPSB0cnVl
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIC8vIHRvRm9jdXMgaXMgX25vdF8gdmlzaWJsZSBpbiB0aGUgY29u
dGVudHMgYXJlYSwgcGljayB0aGUgbmV4dCBub2RlCiAgICAgICAgICAgICAgICAgaWYgKG5leHQp
CiAgICAgICAgICAgICAgICAgICAgIHRvRm9jdXMgPSBkb2MtPm5leHRGb2N1c05vZGUodG9Gb2N1
cyk7CkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAko
cmV2aXNpb24gMTI0NjcpCisrKyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI1
Myw3ICszMjUzLDcgQEAKICAgICAgICAgZmlsbFdpdGhSZWQgPSB0cnVlOwogICAgIAogICAgIGlm
IChmaWxsV2l0aFJlZCkKLSAgICAgICAgcC0+ZmlsbFJlY3QocmVjdC54KCksIHJlY3QueSgpLCBy
ZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCksIENvbG9yKDB4RkYsIDAsIDApKTsKKyAgICAgICAg
cC0+ZmlsbFJlY3QocmVjdCwgQ29sb3IoMHhGRiwgMCwgMCkpOwogI2VuZGlmCiAgICAgCiAgICAg
aWYgKHJlbmRlcmVyKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27399</attachid>
            <date>2009-02-06 08:22:46 -0800</date>
            <delta_ts>2009-02-06 15:23:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>6868.patch</filename>
            <type>text/plain</type>
            <size>440188</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDcxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTI3IEBACisyMDA5LTAyLTA2ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2OAorCisgICAgICAgIEkg
aGF2ZSBub3Qgb25seSBtYWRlIFRyYW5zZm9ybWF0aW9uTWF0cml4IHBsYXRmb3JtIGluZGVwZW5k
ZW50CisgICAgICAgIGJ1dCBJJ3ZlIGFsc28gYWRkZWQgM0QgbWV0aG9kcywgd2hpY2ggd2lsbCBi
ZSB1c2VkIHdoZW4gSSB1cGRhdGUKKyAgICAgICAgV2ViS2l0Q1NTTWF0cml4IHRvIGluY2x1ZGUg
M0QgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2ODkpLgor
ICAgICAgICBJIGFtIG5vdyBrZWVwaW5nIGEgZnVsbCA0eDQgbWF0cml4IGluIFRyYW5zZm9ybWF0
aW9uTWF0cml4LiBJJ20gYWxzbyBkb2luZyBhbGwKKyAgICAgICAgdGhlIG1hdGggYXMgZG91Ymxl
cyByYXRoZXIgdGhhbiBmbG9hdHMuIFRoaXMgbWFrZXMgYSBUcmFuc2Zvcm1hdGlvbk1hdHJpeAor
ICAgICAgICBnbyBmcm9tIDI0IGJ5dGVzIHRvIDEyOCBieXRlcywgYnV0IEkgZG9uJ3QgdGhpbmsg
dGhpcyBjbGFzcyBpcyB1c2VkIGVub3VnaCB0bworICAgICAgICBtYWtlIHRoaXMgb3ZlcmhlYWQg
d2lsbCBiZSBzaWduaWZpY2FudC4KKworICAgICAgICBUaGUgY2hhbmdlIGZyb20gZmxvYXRzIHRv
IGRvdWJsZXMgaGFzIGNhdXNlZCBzb21lIGRpZmZlcmVuY2VzIGluIHJvdW5kaW5nIGFuZAorICAg
ICAgICBkaXNwbGF5IChzb21ldGltZXMgdGhpbmdzIHRoYXQgZGlzcGxheWVkIGFzIC0wLjAgbm93
IGRpc3BsYXkgYXMgMC4wIG9yIHZpY2UgdmVyc2EpLAorICAgICAgICBzbyBJJ3ZlIGhhZCB0byBj
aGFuZ2Ugc29tZSBMYXlvdXRUZXN0IHJlc3VsdHMgaW4gdGhlIFNWRyB0ZXN0cy4KKworICAgICAg
ICBOT1RFOiBUaGlzIHBhdGNoIGlzIG9ubHkgdGVzdGVkIG9uIE1hYy4gT3RoZXIgcGxhdGZvcm1z
IHdpbGwgbGlrZWx5IGhhdmUgYnVpbGQgaXNzdWVzLgorICAgICAgICBJIHdpbGwgZml4IHRoZXNl
IG9uIFdpbmRvd3MsIGJ1dCBJIGNhbid0IHRlc3Qgb24gdGhlIG90aGVyIHBsYXRmb3Jtcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Z2V0Q1RNKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9UcmFuc2Zvcm1hdGlvbk1hdHJpeENHLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpvcGVyYXRvciBDR0FmZmluZVRyYW5zZm9ybSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXQyeDIpOgorICAgICAgICAoV2ViQ29yZTo6
ZGV0M3gzKToKKyAgICAgICAgKFdlYkNvcmU6OmRldDR4NCk6CisgICAgICAgIChXZWJDb3JlOjph
ZGpvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6
dHJhbnNwb3NlTWF0cml4NCk6CisgICAgICAgIChXZWJDb3JlOjp2NE11bFBvaW50QnlNYXRyaXgp
OgorICAgICAgICAoV2ViQ29yZTo6djNMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6djNTY2Fs
ZSk6CisgICAgICAgIChXZWJDb3JlOjp2M0RvdCk6CisgICAgICAgIChXZWJDb3JlOjp2M0NvbWJp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6djNDcm9zcyk6CisgICAgICAgIChXZWJDb3JlOjpkZWNv
bXBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6c2xlcnApOgorICAgICAgICAoV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXg6OmFmZmluZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpt
YWtlTWFwQmV0d2VlblJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4Ojpwcm9qZWN0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXg6Om1hcFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
YXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjptYXBRdWFk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2NhbGUzZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlM2QpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6dHJhbnNsYXRlM2QpOgorICAgICAgICAoV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXg6OnNrZXcpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXg6OmFwcGx5UGVyc3BlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6Om11bHRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4OjptdWx0VmVjTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4Ojppc0ludmVydGlibGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGbG9hdCk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YmxlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OmRlY29tcG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjb21wb3NlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6VHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAo
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6b3BlcmF0b3IgPSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFrZUlkZW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0lkZW50aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4OjptYXApOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXg6Om0xMSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
c2V0TTExKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMTIpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0xMik6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTEzKToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMTMpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtYXRpb25NYXRyaXg6Om0xNCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6c2V0TTE0KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
MjEpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0yMSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTIyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMjIpOgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0yMyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6c2V0TTIzKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4OjptMjQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0y
NCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTMxKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzEpOgorICAgICAgICAoV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zMik6CisgICAgICAgIChXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTMyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4OjptMzMpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6
OnNldE0zMyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTM0KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzQpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om00MSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTQxKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjptNDIpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg6OnNldE00Mik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bTQzKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNNDMpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om00NCk6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTQ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXRBKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
OjpiKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRCKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpjKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRDKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4OjpzZXREKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjplKToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRFKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpmKToKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4OjpzZXRGKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6bXVsdGlwbHkpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnJv
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tld1gpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNrZXdZKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpoYXNQZXJzcGVjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6KToKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4Ojppc0FmZmluZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6b3BlcmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6b3BlcmF0b3IqKToKKwogMjAwOS0wMi0wNiAgU2ltb24gSGF1c21hbm4gIDxzaW1v
bi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVz
dGLDuC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCShyZXZpc2lvbiA0MDY5OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDcsNyAr
OTA3LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNvbmNhdENUTShjb25zdCBUcgogCiBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBHcmFwaGljc0NvbnRleHQ6OmdldENUTSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIENHQ29udGV4dEdldENUTShwbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQ0dBZmZpbmVU
cmFuc2Zvcm0gdCA9IENHQ29udGV4dEdldENUTShwbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgcmV0
dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4KHQuYSwgdC5iLCB0LmMsIHQuZCwgdC50eCwgdC50eSk7
CiB9CiAKIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1RyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwCShyZXZpc2lvbiA0MDY5OCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRpb25NYXRyaXhDRy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE4NyArMjgsMTkgQEAKIAogI2lmIFBMQVRGT1JNKENH
KQogCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVk
ZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAi
SW50UmVjdC5oIgotCi0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeDo6VHJhbnNmb3JtYXRpb25NYXRyaXgoKQot
ICAgIDogbV90cmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eSkKLXsKLX0KLQotVHJh
bnNmb3JtYXRpb25NYXRyaXg6OlRyYW5zZm9ybWF0aW9uTWF0cml4KGRvdWJsZSBhLCBkb3VibGUg
YiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUgdHgsIGRvdWJsZSB0eSkKLXsKLSAgICBtX3Ry
YW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZShuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQo
YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lz
aW9uVG9DR0Zsb2F0KGIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChjKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoZCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KHR4KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQcmVjaXNpb25U
b0NHRmxvYXQodHkpKTsKLX0KLQotVHJhbnNmb3JtYXRpb25NYXRyaXg6OlRyYW5zZm9ybWF0aW9u
TWF0cml4KGNvbnN0IFBsYXRmb3JtVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCi0gICAgOiBtX3Ry
YW5zZm9ybSh0KQotewotfQotCi12b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNYXRyaXgo
ZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91Ymxl
IHR5KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKG5hcnJvd1By
ZWNpc2lvblRvQ0dGbG9hdChhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoYiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGMpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChk
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQcmVjaXNp
b25Ub0NHRmxvYXQodHgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCh0eSkpOwotfQotCi12b2lkIFRyYW5zZm9ybWF0aW9u
TWF0cml4OjptYXAoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgKngyLCBkb3VibGUgKnkyKSBj
b25zdAotewotICAgIENHUG9pbnQgcmVzdWx0ID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3Jt
KENHUG9pbnRNYWtlKG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCh4KSwgbmFycm93UHJlY2lzaW9u
VG9DR0Zsb2F0KHkpKSwgbV90cmFuc2Zvcm0pOwotICAgICp4MiA9IHJlc3VsdC54OwotICAgICp5
MiA9IHJlc3VsdC55OwotfQotCi1JbnRSZWN0IFRyYW5zZm9ybWF0aW9uTWF0cml4OjptYXBSZWN0
KGNvbnN0IEludFJlY3QgJnJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJl
Y3QoQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dSZWN0KHJlY3QpLCBtX3RyYW5zZm9ybSkp
OwotfQotCi1GbG9hdFJlY3QgVHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcFJlY3QoY29uc3QgRmxv
YXRSZWN0ICZyZWN0KSBjb25zdAotewotICAgIHJldHVybiBGbG9hdFJlY3QoQ0dSZWN0QXBwbHlB
ZmZpbmVUcmFuc2Zvcm0oQ0dSZWN0KHJlY3QpLCBtX3RyYW5zZm9ybSkpOwotfQotCi1ib29sIFRy
YW5zZm9ybWF0aW9uTWF0cml4Ojppc0lkZW50aXR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ0dB
ZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KG1fdHJhbnNmb3JtKTsKLX0KLQotZG91YmxlIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjphKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFuc2Zvcm0uYTsK
LX0KLQotdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0QShkb3VibGUgYSkKLXsKLSAgICBt
X3RyYW5zZm9ybS5hID0gbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGEpOwotfQotCi1kb3VibGUg
VHJhbnNmb3JtYXRpb25NYXRyaXg6OmIoKSBjb25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9y
bS5iOwotfQotCi12b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRCKGRvdWJsZSBiKQotewot
ICAgIG1fdHJhbnNmb3JtLmIgPSBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoYik7Ci19Ci0KLWRv
dWJsZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJh
bnNmb3JtLmM7Ci19Ci0KLXZvaWQgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldEMoZG91YmxlIGMp
Ci17Ci0gICAgbV90cmFuc2Zvcm0uYyA9IG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChjKTsKLX0K
LQotZG91YmxlIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV90cmFuc2Zvcm0uZDsKLX0KLQotdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0RChkb3Vi
bGUgZCkKLXsKLSAgICBtX3RyYW5zZm9ybS5kID0gbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGQp
OwotfQotCi1kb3VibGUgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmUoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3RyYW5zZm9ybS50eDsKLX0KLQotdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0
RShkb3VibGUgZSkKLXsKLSAgICBtX3RyYW5zZm9ybS50eCA9IG5hcnJvd1ByZWNpc2lvblRvQ0dG
bG9hdChlKTsKLX0KLQotZG91YmxlIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpmKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV90cmFuc2Zvcm0udHk7Ci19Ci0KLXZvaWQgVHJhbnNmb3JtYXRpb25NYXRy
aXg6OnNldEYoZG91YmxlIGYpCi17Ci0gICAgbV90cmFuc2Zvcm0udHkgPSBuYXJyb3dQcmVjaXNp
b25Ub0NHRmxvYXQoZik7Ci19Ci0KLXZvaWQgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnJlc2V0KCkK
LXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7Ci19Ci0KLVRy
YW5zZm9ybWF0aW9uTWF0cml4ICZUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2NhbGUoZG91YmxlIHN4
LCBkb3VibGUgc3kpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxl
KG1fdHJhbnNmb3JtLCBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoc3gpLCBuYXJyb3dQcmVjaXNp
b25Ub0NHRmxvYXQoc3kpKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVRyYW5zZm9ybWF0aW9u
TWF0cml4ICZUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlKGRvdWJsZSBkKQotewotICAgIG1f
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Sb3RhdGUobV90cmFuc2Zvcm0sIG5hcnJvd1By
ZWNpc2lvblRvQ0dGbG9hdChkZWcycmFkKGQpKSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1U
cmFuc2Zvcm1hdGlvbk1hdHJpeCAmVHJhbnNmb3JtYXRpb25NYXRyaXg6OnRyYW5zbGF0ZShkb3Vi
bGUgdHgsIGRvdWJsZSB0eSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3Jt
VHJhbnNsYXRlKG1fdHJhbnNmb3JtLCBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQodHgpLCBuYXJy
b3dQcmVjaXNpb25Ub0NHRmxvYXQodHkpKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVRyYW5z
Zm9ybWF0aW9uTWF0cml4ICZUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2hlYXIoZG91YmxlIHN4LCBk
b3VibGUgc3kpCi17Ci0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gc2hlYXIgPSBDR0FmZmluZVRyYW5z
Zm9ybU1ha2UoMS4wZiwgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KHN5KSwgbmFycm93UHJlY2lz
aW9uVG9DR0Zsb2F0KHN4KSwgMS4wZiwgMC4wZiwgMC4wZik7Ci0gICAgbV90cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybUNvbmNhdChzaGVhciwgbV90cmFuc2Zvcm0pOwotICAgIHJldHVybiAq
dGhpczsKLX0KLQotZG91YmxlIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpkZXQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3RyYW5zZm9ybS5hICogbV90cmFuc2Zvcm0uZCAtIG1fdHJhbnNmb3JtLmIg
KiBtX3RyYW5zZm9ybS5jOwotfQotCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6aW52ZXJzZSgpIGNvbnN0Ci17Ci0gICAgaWYgKGlzSW52ZXJ0aWJsZSgpKQotICAg
ICAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgoQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQo
bV90cmFuc2Zvcm0pKTsKLSAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgoKTsKLX0KLQot
VHJhbnNmb3JtYXRpb25NYXRyaXg6Om9wZXJhdG9yIFBsYXRmb3JtVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSBjb25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9ybTsKLX0KLQotYm9vbCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6b3BlcmF0b3I9PSAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXggJm0y
KSBjb25zdAotewotICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9ybUVxdWFsVG9UcmFuc2Zvcm0o
bV90cmFuc2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7Ci19Ci0KLVRyYW5zZm9ybWF0aW9u
TWF0cml4ICZUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6b3BlcmF0b3IqPSAoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXggJm0yKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1D
b25jYXQobV90cmFuc2Zvcm0sIENHQWZmaW5lVHJhbnNmb3JtKG0yKSk7Ci0gICAgcmV0dXJuICp0
aGlzOwotfQotCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6b3Bl
cmF0b3IqIChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCAmbTIpCitUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6b3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25zdAogewotICAgIHJldHVybiBD
R0FmZmluZVRyYW5zZm9ybUNvbmNhdChtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0obTIp
KTsKKyAgICByZXR1cm4gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKG5hcnJvd1ByZWNpc2lvblRvQ0dG
bG9hdChtX21hdHJpeFswXVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQobV9tYXRyaXhbMF1bMV0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KG1fbWF0cml4WzFdWzBd
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dG
bG9hdChtX21hdHJpeFsxXVsxXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQobV9tYXRyaXhbM11bMF0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KG1fbWF0cml4WzNdWzFd
KSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAkocmV2aXNpb24gNDA2
OTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRp
b25NYXRyaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKIAorI2luY2x1ZGUg
IkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTM0LDY2ICszNSw0NzEgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9pZCBhZmZpbmVUcmFuc2Zvcm1EZWNvbXBvc2Uo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZG91YmxlIHNyWzldKQorLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIFN1cHBvcnRpbmcgTWF0aCBGdW5jdGlvbnMgLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gVGhpcyBpcyBhIHNldCBv
ZiBmdW5jdGlvbiBmcm9tIHZhcmlvdXMgcGxhY2VzIChhdHRyaWJ1dGVkIGlubGluZSkgdG8gZG8g
dGhpbmdzIGxpa2UKKy8vIGludmVyc2lvbiBhbmQgZGVjb21wb3NpdGlvbiBvZiBhIDR4NCBtYXRy
aXguIFRoZXkgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgY29kZQorLy8KKy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLworLy8gQWRhcHRlZCBmcm9tIE1hdHJpeCBJ
bnZlcnNpb24gYnkgUmljaGFyZCBDYXJsaW5nLCBHcmFwaGljcyBHZW1zIDxodHRwOi8vdG9nLmFj
bS5vcmcvR3JhcGhpY3NHZW1zL2luZGV4Lmh0bWw+LgorCisvLyBFVUxBOiBUaGUgR3JhcGhpY3Mg
R2VtcyBjb2RlIGlzIGNvcHlyaWdodC1wcm90ZWN0ZWQuIEluIG90aGVyIHdvcmRzLCB5b3UgY2Fu
bm90IGNsYWltIHRoZSB0ZXh0IG9mIHRoZSBjb2RlIAorLy8gYXMgeW91ciBvd24gYW5kIHJlc2Vs
bCBpdC4gVXNpbmcgdGhlIGNvZGUgaXMgcGVybWl0dGVkIGluIGFueSBwcm9ncmFtLCBwcm9kdWN0
LCBvciBsaWJyYXJ5LCBub24tY29tbWVyY2lhbCAKKy8vIG9yIGNvbW1lcmNpYWwuIEdpdmluZyBj
cmVkaXQgaXMgbm90IHJlcXVpcmVkLCB0aG91Z2ggaXMgYSBuaWNlIGdlc3R1cmUuIFRoZSBjb2Rl
IGNvbWVzIGFzLWlzLCBhbmQgaWYgdGhlcmUgCisvLyBhcmUgYW55IGZsYXdzIG9yIHByb2JsZW1z
IHdpdGggYW55IEdlbXMgY29kZSwgbm9ib2R5IGludm9sdmVkIHdpdGggR2VtcyAtIGF1dGhvcnMs
IGVkaXRvcnMsIHB1Ymxpc2hlcnMsIG9yIAorLy8gd2VibWFzdGVycyAtIGFyZSB0byBiZSBoZWxk
IHJlc3BvbnNpYmxlLiBCYXNpY2FsbHksIGRvbid0IGJlIGEgamVyaywgYW5kIHJlbWVtYmVyIHRo
YXQgYW55dGhpbmcgZnJlZSBjb21lcyAKKy8vIHdpdGggbm8gZ3VhcmFudGVlLgorCit0eXBlZGVm
IGRvdWJsZSBWZWN0b3I0WzRdOwordHlwZWRlZiBkb3VibGUgVmVjdG9yM1szXTsKKworI2RlZmlu
ZSBTTUFMTF9OVU1CRVIgICAgMS5lLTgKKworLy8gICAgaW52ZXJzZSggb3JpZ2luYWxfbWF0cml4
LCBpbnZlcnNlX21hdHJpeCApCisvLyAgCisvLyAgICAgY2FsY3VsYXRlIHRoZSBpbnZlcnNlIG9m
IGEgNHg0IG1hdHJpeAorLy8gCisvLyAgICAgIC0xICAgICAKKy8vICAgICAgQSAgPSBfX18xX18g
YWRqb2ludCBBCisvLyAgICAgICAgICBkZXQgQQorCisvLyAgZG91YmxlID0gZGV0MngyKCBkb3Vi
bGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCApCisvLyAgCisvLyAgY2FsY3VsYXRl
IHRoZSBkZXRlcm1pbmFudCBvZiBhIDJ4MiBtYXRyaXguCisKK3N0YXRpYyBkb3VibGUgZGV0Mngy
KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkKQogewotICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IG0obWF0cml4KTsKKyAgICBkb3VibGUgYW5zOworICAgIGFucyA9IGEgKiBk
IC0gYiAqIGM7CisgICAgcmV0dXJuIGFuczsKK30KIAotICAgIC8vIENvbXB1dGUgc2NhbGluZyBm
YWN0b3JzCi0gICAgZG91YmxlIHN4ID0gc3FydChtLmEoKSAqIG0uYSgpICsgbS5iKCkgKiBtLmIo
KSk7Ci0gICAgZG91YmxlIHN5ID0gc3FydChtLmMoKSAqIG0uYygpICsgbS5kKCkgKiBtLmQoKSk7
CisvLyAgZG91YmxlID0gZGV0M3gzKCAgYTEsIGEyLCBhMywgYjEsIGIyLCBiMywgYzEsIGMyLCBj
MyApCisvLyAgCisvLyAgY2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudCBvZiBhIDN4MyBtYXRyaXgK
Ky8vICBpbiB0aGUgZm9ybQorLy8gCisvLyAgICAgIHwgYTEsICBiMSwgIGMxIHwKKy8vICAgICAg
fCBhMiwgIGIyLCAgYzIgfAorLy8gICAgICB8IGEzLCAgYjMsICBjMyB8CiAKLSAgICAvKiBDb21w
dXRlIGNyb3NzIHByb2R1Y3Qgb2YgdHJhbnNmb3JtZWQgdW5pdCB2ZWN0b3JzLiBJZiBuZWdhdGl2
ZSwKLSAgICAgICAgb25lIGF4aXMgd2FzIGZsaXBwZWQuICovCitzdGF0aWMgZG91YmxlIGRldDN4
Myhkb3VibGUgYTEsIGRvdWJsZSBhMiwgZG91YmxlIGEzLCBkb3VibGUgYjEsIGRvdWJsZSBiMiwg
ZG91YmxlIGIzLCBkb3VibGUgYzEsIGRvdWJsZSBjMiwgZG91YmxlIGMzKQoreworICAgIHJldHVy
biBhMSAqIGRldDJ4MihiMiwgYjMsIGMyLCBjMykKKyAgICAgICAgIC0gYjEgKiBkZXQyeDIoYTIs
IGEzLCBjMiwgYzMpCisgICAgICAgICArIGMxICogZGV0MngyKGEyLCBhMywgYjIsIGIzKTsKK30K
IAotICAgIGlmIChtLmEoKSAqIG0uZCgpIC0gbS5jKCkgKiBtLmIoKSA8IDAuMCkgewotICAgICAg
ICAvLyBGbGlwIGF4aXMgd2l0aCBtaW5pbXVtIHVuaXQgdmVjdG9yIGRvdCBwcm9kdWN0CisvLyAg
ZG91YmxlID0gZGV0NHg0KCBtYXRyaXggKQorLy8gIAorLy8gIGNhbGN1bGF0ZSB0aGUgZGV0ZXJt
aW5hbnQgb2YgYSA0eDQgbWF0cml4LgogCi0gICAgICAgIGlmIChtLmEoKSA8IG0uZCgpKQotICAg
ICAgICAgICAgc3ggPSAtc3g7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN5ID0gLXN5Owot
ICAgIH0KK3N0YXRpYyBkb3VibGUgZGV0NHg0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4OjpN
YXRyaXg0JiBtKQoreworICAgIGRvdWJsZSBhbnM7CisgICAgZG91YmxlIGExLCBhMiwgYTMsIGE0
LCBiMSwgYjIsIGIzLCBiNCwgYzEsIGMyLCBjMywgYzQsIGQxLCBkMiwgZDMsIGQ0OworCisgICAg
Ly8gYXNzaWduIHRvIGluZGl2aWR1YWwgdmFyaWFibGUgbmFtZXMgdG8gYWlkIHNlbGVjdGluZwor
ICAgIC8vIGNvcnJlY3QgZWxlbWVudHMKKworICAgIGExID0gbVswXVswXTsgYjEgPSBtWzBdWzFd
OyAKKyAgICBjMSA9IG1bMF1bMl07IGQxID0gbVswXVszXTsKKworICAgIGEyID0gbVsxXVswXTsg
YjIgPSBtWzFdWzFdOyAKKyAgICBjMiA9IG1bMV1bMl07IGQyID0gbVsxXVszXTsKKworICAgIGEz
ID0gbVsyXVswXTsgYjMgPSBtWzJdWzFdOyAKKyAgICBjMyA9IG1bMl1bMl07IGQzID0gbVsyXVsz
XTsKKworICAgIGE0ID0gbVszXVswXTsgYjQgPSBtWzNdWzFdOyAKKyAgICBjNCA9IG1bM11bMl07
IGQ0ID0gbVszXVszXTsKKworICAgIGFucyA9IGExICogZGV0M3gzKGIyLCBiMywgYjQsIGMyLCBj
MywgYzQsIGQyLCBkMywgZDQpCisgICAgICAgIC0gYjEgKiBkZXQzeDMoYTIsIGEzLCBhNCwgYzIs
IGMzLCBjNCwgZDIsIGQzLCBkNCkKKyAgICAgICAgKyBjMSAqIGRldDN4MyhhMiwgYTMsIGE0LCBi
MiwgYjMsIGI0LCBkMiwgZDMsIGQ0KQorICAgICAgICAtIGQxICogZGV0M3gzKGEyLCBhMywgYTQs
IGIyLCBiMywgYjQsIGMyLCBjMywgYzQpOworICAgIHJldHVybiBhbnM7Cit9CisKKy8vICAgYWRq
b2ludCggb3JpZ2luYWxfbWF0cml4LCBpbnZlcnNlX21hdHJpeCApCisvLyAKKy8vICAgICBjYWxj
dWxhdGUgdGhlIGFkam9pbnQgb2YgYSA0eDQgbWF0cml4CisvLyAKKy8vICAgICAgTGV0ICBhICAg
ZGVub3RlIHRoZSBtaW5vciBkZXRlcm1pbmFudCBvZiBtYXRyaXggQSBvYnRhaW5lZCBieQorLy8g
ICAgICAgICAgIGlqCisvLyAKKy8vICAgICAgZGVsZXRpbmcgdGhlIGl0aCByb3cgYW5kIGp0aCBj
b2x1bW4gZnJvbSBBLgorLy8gCisvLyAgICAgICAgICAgICAgICAgICAgaStqCisvLyAgICAgTGV0
ICBiICAgPSAoLTEpICAgIGEKKy8vICAgICAgICAgIGlqICAgICAgICAgICAgamkKKy8vIAorLy8g
ICAgVGhlIG1hdHJpeCBCID0gKGIgICkgaXMgdGhlIGFkam9pbnQgb2YgQQorLy8gICAgICAgICAg
ICAgICAgICAgICBpagorCitzdGF0aWMgdm9pZCBhZGpvaW50KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4OjpNYXRyaXg0JiBzcmNNYXRyaXgsIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpNYXRyaXg0
JiBvdXRNYXRyaXgpCit7CisgICAgZG91YmxlIGExLCBhMiwgYTMsIGE0LCBiMSwgYjIsIGIzLCBi
NDsKKyAgICBkb3VibGUgYzEsIGMyLCBjMywgYzQsIGQxLCBkMiwgZDMsIGQ0OworCisgICAgLy8g
UnNzaWduIHRvIGluZGl2aWR1YWwgdmFyaWFibGUgbmFtZXMgdG8gYWlkCisgICAgLy8gc2VsZWN0
aW5nIGNvcnJlY3QgdmFsdWVzCisKKyAgICBhMSA9IHNyY01hdHJpeFswXVswXTsgYjEgPSBzcmNN
YXRyaXhbMF1bMV07IAorICAgIGMxID0gc3JjTWF0cml4WzBdWzJdOyBkMSA9IHNyY01hdHJpeFsw
XVszXTsKKworICAgIGEyID0gc3JjTWF0cml4WzFdWzBdOyBiMiA9IHNyY01hdHJpeFsxXVsxXTsg
CisgICAgYzIgPSBzcmNNYXRyaXhbMV1bMl07IGQyID0gc3JjTWF0cml4WzFdWzNdOworCisgICAg
YTMgPSBzcmNNYXRyaXhbMl1bMF07IGIzID0gc3JjTWF0cml4WzJdWzFdOworICAgIGMzID0gc3Jj
TWF0cml4WzJdWzJdOyBkMyA9IHNyY01hdHJpeFsyXVszXTsKKworICAgIGE0ID0gc3JjTWF0cml4
WzNdWzBdOyBiNCA9IHNyY01hdHJpeFszXVsxXTsgCisgICAgYzQgPSBzcmNNYXRyaXhbM11bMl07
IGQ0ID0gc3JjTWF0cml4WzNdWzNdOwogCi0gICAgLy8gUmVtb3ZlIHNjYWxlIGZyb20gbWF0cml4
CiAKLSAgICBtLnNjYWxlKDEuMCAvIHN4LCAxLjAgLyBzeSk7CisgICAgLy8gUm93IGNvbHVtbiBs
YWJlbGluZyByZXZlcnNlZCBzaW5jZSB3ZSB0cmFuc3Bvc2Ugcm93cyAmIGNvbHVtbnMKIAotICAg
IC8vIENvbXB1dGUgcm90YXRpb24KKyAgICBvdXRNYXRyaXhbMF1bMF0gID0gICBkZXQzeDMoIGIy
LCBiMywgYjQsIGMyLCBjMywgYzQsIGQyLCBkMywgZDQpOworICAgIG91dE1hdHJpeFsxXVswXSAg
PSAtIGRldDN4MyggYTIsIGEzLCBhNCwgYzIsIGMzLCBjNCwgZDIsIGQzLCBkNCk7CisgICAgb3V0
TWF0cml4WzJdWzBdICA9ICAgZGV0M3gzKCBhMiwgYTMsIGE0LCBiMiwgYjMsIGI0LCBkMiwgZDMs
IGQ0KTsKKyAgICBvdXRNYXRyaXhbM11bMF0gID0gLSBkZXQzeDMoIGEyLCBhMywgYTQsIGIyLCBi
MywgYjQsIGMyLCBjMywgYzQpOworICAgICAgICAKKyAgICBvdXRNYXRyaXhbMF1bMV0gID0gLSBk
ZXQzeDMoIGIxLCBiMywgYjQsIGMxLCBjMywgYzQsIGQxLCBkMywgZDQpOworICAgIG91dE1hdHJp
eFsxXVsxXSAgPSAgIGRldDN4MyggYTEsIGEzLCBhNCwgYzEsIGMzLCBjNCwgZDEsIGQzLCBkNCk7
CisgICAgb3V0TWF0cml4WzJdWzFdICA9IC0gZGV0M3gzKCBhMSwgYTMsIGE0LCBiMSwgYjMsIGI0
LCBkMSwgZDMsIGQ0KTsKKyAgICBvdXRNYXRyaXhbM11bMV0gID0gICBkZXQzeDMoIGExLCBhMywg
YTQsIGIxLCBiMywgYjQsIGMxLCBjMywgYzQpOworICAgICAgICAKKyAgICBvdXRNYXRyaXhbMF1b
Ml0gID0gICBkZXQzeDMoIGIxLCBiMiwgYjQsIGMxLCBjMiwgYzQsIGQxLCBkMiwgZDQpOworICAg
IG91dE1hdHJpeFsxXVsyXSAgPSAtIGRldDN4MyggYTEsIGEyLCBhNCwgYzEsIGMyLCBjNCwgZDEs
IGQyLCBkNCk7CisgICAgb3V0TWF0cml4WzJdWzJdICA9ICAgZGV0M3gzKCBhMSwgYTIsIGE0LCBi
MSwgYjIsIGI0LCBkMSwgZDIsIGQ0KTsKKyAgICBvdXRNYXRyaXhbM11bMl0gID0gLSBkZXQzeDMo
IGExLCBhMiwgYTQsIGIxLCBiMiwgYjQsIGMxLCBjMiwgYzQpOworICAgICAgICAKKyAgICBvdXRN
YXRyaXhbMF1bM10gID0gLSBkZXQzeDMoIGIxLCBiMiwgYjMsIGMxLCBjMiwgYzMsIGQxLCBkMiwg
ZDMpOworICAgIG91dE1hdHJpeFsxXVszXSAgPSAgIGRldDN4MyggYTEsIGEyLCBhMywgYzEsIGMy
LCBjMywgZDEsIGQyLCBkMyk7CisgICAgb3V0TWF0cml4WzJdWzNdICA9IC0gZGV0M3gzKCBhMSwg
YTIsIGEzLCBiMSwgYjIsIGIzLCBkMSwgZDIsIGQzKTsKKyAgICBvdXRNYXRyaXhbM11bM10gID0g
ICBkZXQzeDMoIGExLCBhMiwgYTMsIGIxLCBiMiwgYjMsIGMxLCBjMiwgYzMpOworfQorCisvLyBS
ZXR1cm5zIGZhbHNlIGlmIHRoZSBtYXRyaXggaXMgbm90IGludmVydGlibGUKK3N0YXRpYyBib29s
IGludmVyc2UoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIHNyY01hdHJpeCwg
VHJhbnNmb3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIG91dE1hdHJpeCkKK3sKKyAgICAvLyBDYWxj
dWxhdGUgdGhlIGFkam9pbnQgbWF0cml4CisKKyAgICBhZGpvaW50KHNyY01hdHJpeCwgb3V0TWF0
cml4KTsKKworICAgIC8vIENhbGN1bGF0ZSB0aGUgNHg0IGRldGVybWluYW50CisgICAgLy8gSWYg
dGhlIGRldGVybWluYW50IGlzIHplcm8sIAorICAgIC8vIHRoZW4gdGhlIGludmVyc2UgbWF0cml4
IGlzIG5vdCB1bmlxdWUuCisKKyAgICBkb3VibGUgZGV0ID0gZGV0NHg0KHNyY01hdHJpeCk7CisK
KyAgICBpZiAoZmFicyhkZXQpIDwgU01BTExfTlVNQkVSKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBkb3VibGUgYW5nbGUgPSBhdGFuMihtLmIoKSwgbS5hKCkpOworICAgIC8vIFNjYWxl
IHRoZSBhZGpvaW50IG1hdHJpeCB0byBnZXQgdGhlIGludmVyc2UKIAotICAgIC8vIFJlbW92ZSBy
b3RhdGlvbiBmcm9tIG1hdHJpeAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQorICAg
ICAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykKKyAgICAgICAgICAgIG91dE1hdHJpeFtp
XVtqXSA9IG91dE1hdHJpeFtpXVtqXSAvIGRldDsKIAotICAgIG0ucm90YXRlKHJhZDJkZWcoLWFu
Z2xlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEVuZCBvZiBjb2RlIGFkYXB0ZWQgZnJv
bSBNYXRyaXggSW52ZXJzaW9uIGJ5IFJpY2hhcmQgQ2FybGluZwogCi0gICAgLy8gUmV0dXJuIHJl
c3VsdHMKKy8vIFBlcmZvcm0gYSBkZWNvbXBvc2l0aW9uIG9uIHRoZSBwYXNzZWQgbWF0cml4LCBy
ZXR1cm4gZmFsc2UgaWYgdW5zdWNjZXNzZnVsCisvLyBGcm9tIEdyYXBoaWNzIEdlbXM6IHVubWF0
cml4LmMKIAotICAgIHNyWzBdID0gc3g7IHNyWzFdID0gc3k7IHNyWzJdID0gYW5nbGU7Ci0gICAg
c3JbM10gPSBtLmEoKTsgc3JbNF0gPSBtLmIoKTsKLSAgICBzcls1XSA9IG0uYygpOyBzcls2XSA9
IG0uZCgpOwotICAgIHNyWzddID0gbS5lKCk7IHNyWzhdID0gbS5mKCk7CisvLyBUcmFuc3Bvc2Ug
cm90YXRpb24gcG9ydGlvbiBvZiBtYXRyaXggYSwgcmV0dXJuIGIKK3N0YXRpYyB2b2lkIHRyYW5z
cG9zZU1hdHJpeDQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIGEsIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpNYXRyaXg0JiBiKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
NDsgaSsrKQorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykKKyAgICAgICAgICAg
IGJbaV1bal0gPSBhW2pdW2ldOwogfQogCi1zdGF0aWMgdm9pZCBhZmZpbmVUcmFuc2Zvcm1Db21w
b3NlKFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtLCBjb25zdCBkb3VibGUgc3JbOV0pCisvLyBNdWx0
aXBseSBhIGhvbW9nZW5lb3VzIHBvaW50IGJ5IGEgbWF0cml4IGFuZCByZXR1cm4gdGhlIHRyYW5z
Zm9ybWVkIHBvaW50CitzdGF0aWMgdm9pZCB2NE11bFBvaW50QnlNYXRyaXgoVmVjdG9yNCBwaW4s
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4OjpNYXRyaXg0JiBtLCBWZWN0b3I0IHBvdXQpCiB7
Ci0gICAgbS5zZXRBKHNyWzNdKTsKLSAgICBtLnNldEIoc3JbNF0pOwotICAgIG0uc2V0Qyhzcls1
XSk7Ci0gICAgbS5zZXREKHNyWzZdKTsKLSAgICBtLnNldEUoc3JbN10pOwotICAgIG0uc2V0Rihz
cls4XSk7Ci0gICAgbS5yb3RhdGUocmFkMmRlZyhzclsyXSkpOwotICAgIG0uc2NhbGUoc3JbMF0s
IHNyWzFdKTsKKyAgICBwb3V0WzBdID0gKHBpblswXSAqIG1bMF1bMF0pICsgKHBpblsxXSAqIG1b
MV1bMF0pICsKKyAgICAgICAgICAgICAgKHBpblsyXSAqIG1bMl1bMF0pICsgKHBpblszXSAqIG1b
M11bMF0pOworICAgIHBvdXRbMV0gPSAocGluWzBdICogbVswXVsxXSkgKyAocGluWzFdICogbVsx
XVsxXSkgKworICAgICAgICAgICAgICAocGluWzJdICogbVsyXVsxXSkgKyAocGluWzNdICogbVsz
XVsxXSk7CisgICAgcG91dFsyXSA9IChwaW5bMF0gKiBtWzBdWzJdKSArIChwaW5bMV0gKiBtWzFd
WzJdKSArCisgICAgICAgICAgICAgIChwaW5bMl0gKiBtWzJdWzJdKSArIChwaW5bM10gKiBtWzNd
WzJdKTsKKyAgICBwb3V0WzNdID0gKHBpblswXSAqIG1bMF1bM10pICsgKHBpblsxXSAqIG1bMV1b
M10pICsKKyAgICAgICAgICAgICAgKHBpblsyXSAqIG1bMl1bM10pICsgKHBpblszXSAqIG1bM11b
M10pOwogfQogCi1ib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0ludmVydGlibGUoKSBjb25z
dAorc3RhdGljIGRvdWJsZSB2M0xlbmd0aChWZWN0b3IzIGEpIAogewotICAgIHJldHVybiBkZXQo
KSAhPSAwLjA7CisgICAgcmV0dXJuIHNxcnQoKGFbMF0gKiBhWzBdKSsoYVsxXSAqIGFbMV0pKyhh
WzJdICogYVsyXSkpOwogfQogCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25N
YXRyaXg6Om11bHRpcGx5KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvdGhlcikKK3N0YXRp
YyB2b2lkIHYzU2NhbGUoVmVjdG9yMyB2LCBkb3VibGUgbmV3bGVuKSAKIHsKLSAgICByZXR1cm4g
KCp0aGlzKSAqPSBvdGhlcjsKKyAgICBkb3VibGUgbGVuID0gdjNMZW5ndGgodik7CisgICAgaWYg
KGxlbiAhPSAwLjApIHsKKyAgICAgICAgZG91YmxlIGwgPSBuZXdsZW4gLyBsZW47CisgICAgICAg
IHZbMF0gKj0gbDsKKyAgICAgICAgdlsxXSAqPSBsOworICAgICAgICB2WzJdICo9IGw7CisgICAg
fQorfQorCitzdGF0aWMgZG91YmxlIHYzRG90KFZlY3RvcjMgYSwgVmVjdG9yMyBiKSAKK3sKKyAg
ICByZXR1cm4gKGFbMF0gKiBiWzBdKSArIChhWzFdICogYlsxXSkgKyAoYVsyXSAqIGJbMl0pOwor
fQorCisvLyBNYWtlIGEgbGluZWFyIGNvbWJpbmF0aW9uIG9mIHR3byB2ZWN0b3JzIGFuZCByZXR1
cm4gdGhlIHJlc3VsdC4KKy8vIHJlc3VsdCA9IChhICogYXNjbCkgKyAoYiAqIGJzY2wpCitzdGF0
aWMgdm9pZCB2M0NvbWJpbmUgKFZlY3RvcjMgYSwgVmVjdG9yMyBiLCBWZWN0b3IzIHJlc3VsdCwg
ZG91YmxlIGFzY2wsIGRvdWJsZSBic2NsKSAKK3sKKyAgICByZXN1bHRbMF0gPSAoYXNjbCAqIGFb
MF0pICsgKGJzY2wgKiBiWzBdKTsKKyAgICByZXN1bHRbMV0gPSAoYXNjbCAqIGFbMV0pICsgKGJz
Y2wgKiBiWzFdKTsKKyAgICByZXN1bHRbMl0gPSAoYXNjbCAqIGFbMl0pICsgKGJzY2wgKiBiWzJd
KTsKK30KKworLy8gUmV0dXJuIHRoZSBjcm9zcyBwcm9kdWN0IGMgPSBhIGNyb3NzIGIgKi8KK3N0
YXRpYyB2b2lkIHYzQ3Jvc3MoVmVjdG9yMyBhLCBWZWN0b3IzIGIsIFZlY3RvcjMgYykKK3sKKyAg
ICBjWzBdID0gKGFbMV0gKiBiWzJdKSAtIChhWzJdICogYlsxXSk7CisgICAgY1sxXSA9IChhWzJd
ICogYlswXSkgLSAoYVswXSAqIGJbMl0pOworICAgIGNbMl0gPSAoYVswXSAqIGJbMV0pIC0gKGFb
MV0gKiBiWzBdKTsKK30KKworc3RhdGljIGJvb2wgZGVjb21wb3NlKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4OjpNYXRyaXg0JiBtYXQsIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpEZWNvbXBvc2Vk
VHlwZSYgcmV0KQoreworICAgIGludCBpLCBqOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXg6
Ok1hdHJpeDQgbG9jbWF0OworICAgIG1lbWNweShsb2NtYXQsIG1hdCwgc2l6ZW9mKFRyYW5zZm9y
bWF0aW9uTWF0cml4OjpNYXRyaXg0KSk7CisKKyAgICAvLyBOb3JtYWxpemUgdGhlIG1hdHJpeC4K
KyAgICBpZiAobG9jbWF0WzNdWzNdID09IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgIGZvciAoaiA9IDA7IGogPCA0OyBqKysp
CisgICAgICAgICAgICBsb2NtYXRbaV1bal0gLz0gbG9jbWF0WzNdWzNdOworCisgICAgLy8gcG1h
dCBpcyB1c2VkIHRvIHNvbHZlIGZvciBwZXJzcGVjdGl2ZSwgYnV0IGl0IGFsc28gcHJvdmlkZXMK
KyAgICAvLyBhbiBlYXN5IHdheSB0byB0ZXN0IGZvciBzaW5ndWxhcml0eSBvZiB0aGUgdXBwZXIg
M3gzIGNvbXBvbmVudC4KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6TWF0cml4NCBwbWF0Owor
ICAgIG1lbWNweShwbWF0LCBsb2NtYXQsIHNpemVvZihUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6TWF0
cml4NCkpOworICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspCisgICAgICAgIHBtYXRbaV1bM10g
PSAwOworICAgIHBtYXRbM11bM10gPSAxOworCisgICAgaWYgKGRldDR4NChwbWF0KSA9PSAwLjAp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZpcnN0LCBpc29sYXRlIHBlcnNwZWN0
aXZlLiAgVGhpcyBpcyB0aGUgbWVzc2llc3QuCisgICAgaWYgKGxvY21hdFswXVszXSAhPSAwIHx8
IGxvY21hdFsxXVszXSAhPSAwIHx8IGxvY21hdFsyXVszXSAhPSAwKSB7CisgICAgICAgIC8vIHBy
aHMgaXMgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGUgZXF1YXRpb24uCisgICAgICAgIFZlY3Rv
cjQgcHJoczsKKyAgICAgICAgcHJoc1swXSA9IGxvY21hdFswXVszXTsKKyAgICAgICAgcHJoc1sx
XSA9IGxvY21hdFsxXVszXTsKKyAgICAgICAgcHJoc1syXSA9IGxvY21hdFsyXVszXTsKKyAgICAg
ICAgcHJoc1szXSA9IGxvY21hdFszXVszXTsKKworICAgICAgICAvLyBTb2x2ZSB0aGUgZXF1YXRp
b24gYnkgaW52ZXJ0aW5nIHBtYXQgYW5kIG11bHRpcGx5aW5nCisgICAgICAgIC8vIHByaHMgYnkg
dGhlIGludmVyc2UuICAoVGhpcyBpcyB0aGUgZWFzaWVzdCB3YXksIG5vdAorICAgICAgICAvLyBu
ZWNlc3NhcmlseSB0aGUgYmVzdC4pCisgICAgICAgIC8vIGludmVyc2UgZnVuY3Rpb24gKGFuZCBk
ZXQ0eDQsIGFib3ZlKSBmcm9tIHRoZSBNYXRyaXgKKyAgICAgICAgLy8gSW52ZXJzaW9uIGdlbSBp
biB0aGUgZmlyc3Qgdm9sdW1lLgorICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6TWF0cml4
NCBpbnZwbWF0LCB0aW52cG1hdDsKKyAgICAgICAgaW52ZXJzZShwbWF0LCBpbnZwbWF0KTsKKyAg
ICAgICAgdHJhbnNwb3NlTWF0cml4NChpbnZwbWF0LCB0aW52cG1hdCk7CisKKyAgICAgICAgVmVj
dG9yNCBwc29sOworICAgICAgICB2NE11bFBvaW50QnlNYXRyaXgocHJocywgdGludnBtYXQsIHBz
b2wpOworIAorICAgICAgICAvLyBTdHVmZiB0aGUgYW5zd2VyIGF3YXkuCisgICAgICAgIHJldC5w
ZXJzcGVjdGl2ZVggPSBwc29sWzBdOworICAgICAgICByZXQucGVyc3BlY3RpdmVZID0gcHNvbFsx
XTsKKyAgICAgICAgcmV0LnBlcnNwZWN0aXZlWiA9IHBzb2xbMl07CisgICAgICAgIHJldC5wZXJz
cGVjdGl2ZVcgPSBwc29sWzNdOworICAgICAgICAvKiBDbGVhciB0aGUgcGVyc3BlY3RpdmUgcGFy
dGl0aW9uLiAqLworICAgICAgICBsb2NtYXRbMF1bM10gPSBsb2NtYXRbMV1bM10gPSBsb2NtYXRb
Ml1bM10gPSAwOworICAgICAgICBsb2NtYXRbM11bM10gPSAxOworICAgIH0gZWxzZSB7CisgICAg
ICAgIC8vIE5vIHBlcnNwZWN0aXZlLgorICAgICAgICByZXQucGVyc3BlY3RpdmVYID0gcmV0LnBl
cnNwZWN0aXZlWSA9IHJldC5wZXJzcGVjdGl2ZVogPSAwOworICAgICAgICByZXQucGVyc3BlY3Rp
dmVXID0gMTsKKyAgICB9CisgICAgCisgICAgLy8gTmV4dCB0YWtlIGNhcmUgb2YgdHJhbnNsYXRp
b24gKGVhc3kpLgorICAgIHJldC50cmFuc2xhdGVYID0gbG9jbWF0WzNdWzBdOworICAgIGxvY21h
dFszXVswXSA9IDA7CisgICAgcmV0LnRyYW5zbGF0ZVkgPSBsb2NtYXRbM11bMV07CisgICAgbG9j
bWF0WzNdWzFdID0gMDsKKyAgICByZXQudHJhbnNsYXRlWiA9IGxvY21hdFszXVsyXTsKKyAgICBs
b2NtYXRbM11bMl0gPSAwOworCisgICAgLy8gVmVjdG9yNCB0eXBlIGFuZCBmdW5jdGlvbnMgbmVl
ZCB0byBiZSBhZGRlZCB0byB0aGUgY29tbW9uIHNldC4KKyAgICBWZWN0b3IzIHJvd1szXSwgcGR1
bTM7CisKKyAgICAvLyBOb3cgZ2V0IHNjYWxlIGFuZCBzaGVhci4KKyAgICBmb3IgKGkgPSAwOyBp
IDwgMzsgaSsrKSB7CisgICAgICAgIHJvd1tpXVswXSA9IGxvY21hdFtpXVswXTsKKyAgICAgICAg
cm93W2ldWzFdID0gbG9jbWF0W2ldWzFdOworICAgICAgICByb3dbaV1bMl0gPSBsb2NtYXRbaV1b
Ml07CisgICAgfQorCisgICAgLy8gQ29tcHV0ZSBYIHNjYWxlIGZhY3RvciBhbmQgbm9ybWFsaXpl
IGZpcnN0IHJvdy4KKyAgICByZXQuc2NhbGVYID0gdjNMZW5ndGgocm93WzBdKTsKKyAgICB2M1Nj
YWxlKHJvd1swXSwgMS4wKTsKKworICAgIC8vIENvbXB1dGUgWFkgc2hlYXIgZmFjdG9yIGFuZCBt
YWtlIDJuZCByb3cgb3J0aG9nb25hbCB0byAxc3QuCisgICAgcmV0LnNrZXdYWSA9IHYzRG90KHJv
d1swXSwgcm93WzFdKTsKKyAgICB2M0NvbWJpbmUocm93WzFdLCByb3dbMF0sIHJvd1sxXSwgMS4w
LCAtcmV0LnNrZXdYWSk7CisKKyAgICAvLyBOb3csIGNvbXB1dGUgWSBzY2FsZSBhbmQgbm9ybWFs
aXplIDJuZCByb3cuCisgICAgcmV0LnNjYWxlWSA9IHYzTGVuZ3RoKHJvd1sxXSk7CisgICAgdjNT
Y2FsZShyb3dbMV0sIDEuMCk7CisgICAgcmV0LnNrZXdYWSAvPSByZXQuc2NhbGVZOworCisgICAg
Ly8gQ29tcHV0ZSBYWiBhbmQgWVogc2hlYXJzLCBvcnRob2dvbmFsaXplIDNyZCByb3cuCisgICAg
cmV0LnNrZXdYWiA9IHYzRG90KHJvd1swXSwgcm93WzJdKTsKKyAgICB2M0NvbWJpbmUocm93WzJd
LCByb3dbMF0sIHJvd1syXSwgMS4wLCAtcmV0LnNrZXdYWik7CisgICAgcmV0LnNrZXdZWiA9IHYz
RG90KHJvd1sxXSwgcm93WzJdKTsKKyAgICB2M0NvbWJpbmUocm93WzJdLCByb3dbMV0sIHJvd1sy
XSwgMS4wLCAtcmV0LnNrZXdZWik7CisKKyAgICAvLyBOZXh0LCBnZXQgWiBzY2FsZSBhbmQgbm9y
bWFsaXplIDNyZCByb3cuCisgICAgcmV0LnNjYWxlWiA9IHYzTGVuZ3RoKHJvd1syXSk7CisgICAg
djNTY2FsZShyb3dbMl0sIDEuMCk7CisgICAgcmV0LnNrZXdYWiAvPSByZXQuc2NhbGVaOworICAg
IHJldC5za2V3WVogLz0gcmV0LnNjYWxlWjsKKyAKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUg
bWF0cml4IChpbiByb3dzW10pIGlzIG9ydGhvbm9ybWFsLgorICAgIC8vIENoZWNrIGZvciBhIGNv
b3JkaW5hdGUgc3lzdGVtIGZsaXAuICBJZiB0aGUgZGV0ZXJtaW5hbnQKKyAgICAvLyBpcyAtMSwg
dGhlbiBuZWdhdGUgdGhlIG1hdHJpeCBhbmQgdGhlIHNjYWxpbmcgZmFjdG9ycy4KKyAgICB2M0Ny
b3NzKHJvd1sxXSwgcm93WzJdLCBwZHVtMyk7CisgICAgaWYgKHYzRG90KHJvd1swXSwgcGR1bTMp
IDwgMCkgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgICAgICBy
ZXQuc2NhbGVYICo9IC0xOworICAgICAgICAgICAgcm93W2ldWzBdICo9IC0xOworICAgICAgICAg
ICAgcm93W2ldWzFdICo9IC0xOworICAgICAgICAgICAgcm93W2ldWzJdICo9IC0xOworICAgICAg
ICB9CisgICAgfQorIAorICAgIC8vIE5vdywgZ2V0IHRoZSByb3RhdGlvbnMgb3V0LCBhcyBkZXNj
cmliZWQgaW4gdGhlIGdlbS4KKyAgICAKKyAgICAvLyBGSVhNRSAtIFdlIHJldHVybiByb3RhdGlv
biB2YWx1ZXMgYXMgcXVhdGVybmlvbnMgYmVjYXVzZSB0aGV5IGFyZSBlYXNpZXIKKyAgICAvLyB0
byByZWNvbXBvc2UgbGF0ZXIuIEJ1dCB3aGVuIHdlIGFkZCBkZWNvbXBvc2l0aW9uIHRvIENTU01h
dHJpeCB3ZSB3aWxsIAorICAgIC8vIHdhbnQgdG8gcmV0dXJuIHRoZSByb3RhdGlvbiB2YWx1ZXMg
YXMgcngsIHJ5LCBhbmQgcnogdmFsdWVzIGJlY2F1c2UgdGhleSAKKyAgICAvLyBhcmUgbXVjaCBl
YXNpZXIgdG8gZGVhbCB3aXRoIGZvciB0aGUgYXV0aG9yLiBUaGUgY29tbWVudGVkIG91dCBjb2Rl
IGJlbG93IAorICAgIC8vIGRvZXMgdGhhdC4gVWx0aW1hdGVseSB3ZSB3aWxsIHdhbnQgdG8gcGFz
cyBpbiBhIGZsYWcgdG8gY2hvb3NlIHdoaWNoIHRvCisgICAgLy8gcmV0dXJuLgorCisgICAgLy8g
cmV0LnJvdGF0ZVkgPSBhc2luKC1yb3dbMF1bMl0pOworICAgIC8vIGlmIChjb3MocmV0LnJvdGF0
ZVkpICE9IDApIHsKKyAgICAvLyAgICAgcmV0LnJvdGF0ZVggPSBhdGFuMihyb3dbMV1bMl0sIHJv
d1syXVsyXSk7CisgICAgLy8gICAgIHJldC5yb3RhdGVaID0gYXRhbjIocm93WzBdWzFdLCByb3db
MF1bMF0pOworICAgIC8vIH0gZWxzZSB7CisgICAgLy8gICAgIHJldC5yb3RhdGVYID0gYXRhbjIo
LXJvd1syXVswXSwgcm93WzFdWzFdKTsKKyAgICAvLyAgICAgcmV0LnJvdGF0ZVogPSAwOworICAg
IC8vIH0KKyAgICAKKyAgICBkb3VibGUgVCwgUywgeCwgeSwgeiwgdzsKKworICAgIFQgPSByb3db
MF1bMF0gKyByb3dbMV1bMV0gKyByb3dbMl1bMl0gKyAxLjA7CisKKyAgICBpZiAoVCA+IDFlLTQp
IHsKKyAgICAgICAgUyA9IDAuNSAvIHNxcnQoVCk7CisgICAgICAgIHcgPSAwLjI1IC8gUzsKKyAg
ICAgICAgeCA9IChyb3dbMl1bMV0gLSByb3dbMV1bMl0pICogUzsKKyAgICAgICAgeSA9IChyb3db
MF1bMl0gLSByb3dbMl1bMF0pICogUzsKKyAgICAgICAgeiA9IChyb3dbMV1bMF0gLSByb3dbMF1b
MV0pICogUzsKKyAgICB9IGVsc2UgaWYgKHJvd1swXVswXSA+IHJvd1sxXVsxXSAmJiByb3dbMF1b
MF0gPiByb3dbMl1bMl0pIHsgCisgICAgICAgIFMgPSBzcXJ0ICgxLjAgKyByb3dbMF1bMF0gLSBy
b3dbMV1bMV0gLSByb3dbMl1bMl0pICogMi4wOyAvLyBTPTQqcXggCisgICAgICAgIHggPSAwLjI1
ICogUzsKKyAgICAgICAgeSA9IChyb3dbMF1bMV0gKyByb3dbMV1bMF0pIC8gUzsgCisgICAgICAg
IHogPSAocm93WzBdWzJdICsgcm93WzJdWzBdKSAvIFM7IAorICAgICAgICB3ID0gKHJvd1syXVsx
XSAtIHJvd1sxXVsyXSkgLyBTOworICAgIH0gZWxzZSBpZiAocm93WzFdWzFdID4gcm93WzJdWzJd
KSB7IAorICAgICAgICBTID0gc3FydCAoMS4wICsgcm93WzFdWzFdIC0gcm93WzBdWzBdIC0gcm93
WzJdWzJdKSAqIDIuMDsgLy8gUz00KnF5CisgICAgICAgIHggPSAocm93WzBdWzFdICsgcm93WzFd
WzBdKSAvIFM7IAorICAgICAgICB5ID0gMC4yNSAqIFM7CisgICAgICAgIHogPSAocm93WzFdWzJd
ICsgcm93WzJdWzFdKSAvIFM7IAorICAgICAgICB3ID0gKHJvd1swXVsyXSAtIHJvd1syXVswXSkg
LyBTOworICAgIH0gZWxzZSB7IAorICAgICAgICBTID0gc3FydCgxLjAgKyByb3dbMl1bMl0gLSBy
b3dbMF1bMF0gLSByb3dbMV1bMV0pICogMi4wOyAvLyBTPTQqcXoKKyAgICAgICAgeCA9IChyb3db
MF1bMl0gKyByb3dbMl1bMF0pIC8gUzsKKyAgICAgICAgeSA9IChyb3dbMV1bMl0gKyByb3dbMl1b
MV0pIC8gUzsgCisgICAgICAgIHogPSAwLjI1ICogUzsKKyAgICAgICAgdyA9IChyb3dbMV1bMF0g
LSByb3dbMF1bMV0pIC8gUzsKKyAgICB9CisKKyAgICByZXQucXVhdGVybmlvblggPSB4OworICAg
IHJldC5xdWF0ZXJuaW9uWSA9IHk7CisgICAgcmV0LnF1YXRlcm5pb25aID0gejsKKyAgICByZXQu
cXVhdGVybmlvblcgPSB3OworICAgIAorICAgIHJldHVybiB0cnVlOworfQorCisvLyBDb3BpZWQg
ZnJvbSBDb3JlIEFuaW1hdGlvbgorc3RhdGljIHZvaWQgc2xlcnAoZG91YmxlIHFhWzRdLCBjb25z
dCBkb3VibGUgcWJbNF0sIGRvdWJsZSB0KQoreworICAgIGRvdWJsZSBheCwgYXksIGF6LCBhdzsK
KyAgICBkb3VibGUgYngsIGJ5LCBieiwgYnc7CisgICAgZG91YmxlIGN4LCBjeSwgY3osIGN3Owor
ICAgIGRvdWJsZSBhbmdsZTsKKyAgICBkb3VibGUgdGgsIGludnRoLCBzY2FsZSwgaW52c2NhbGU7
CisKKyAgICBheCA9IHFhWzBdOyBheSA9IHFhWzFdOyBheiA9IHFhWzJdOyBhdyA9IHFhWzNdOwor
ICAgIGJ4ID0gcWJbMF07IGJ5ID0gcWJbMV07IGJ6ID0gcWJbMl07IGJ3ID0gcWJbM107CisKKyAg
ICBhbmdsZSA9IGF4ICogYnggKyBheSAqIGJ5ICsgYXogKiBieiArIGF3ICogYnc7CisKKyAgICBp
ZiAoYW5nbGUgPCAwLjApIHsKKyAgICAgICAgYXggPSAtYXg7IGF5ID0gLWF5OworICAgICAgICBh
eiA9IC1hejsgYXcgPSAtYXc7CisgICAgICAgIGFuZ2xlID0gLWFuZ2xlOworICAgIH0KKworICAg
IGlmIChhbmdsZSArIDEuMCA+IC4wNSkgeworICAgICAgICBpZiAoMS4wIC0gYW5nbGUgPj0gLjA1
KSB7CisgICAgICAgICAgICB0aCA9IGFjb3MgKGFuZ2xlKTsKKyAgICAgICAgICAgIGludnRoID0g
MS4wIC8gc2luICh0aCk7CisgICAgICAgICAgICBzY2FsZSA9IHNpbiAodGggKiAoMS4wIC0gdCkp
ICogaW52dGg7CisgICAgICAgICAgICBpbnZzY2FsZSA9IHNpbiAodGggKiB0KSAqIGludnRoOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2NhbGUgPSAxLjAgLSB0OworICAgICAgICAg
ICAgaW52c2NhbGUgPSB0OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYnggPSAt
YXk7CisgICAgICAgIGJ5ID0gYXg7CisgICAgICAgIGJ6ID0gLWF3OworICAgICAgICBidyA9IGF6
OworICAgICAgICBzY2FsZSA9IHNpbihNX1BJICogKC41IC0gdCkpOworICAgICAgICBpbnZzY2Fs
ZSA9IHNpbiAoTV9QSSAqIHQpOworICAgIH0KKworICAgIGN4ID0gYXggKiBzY2FsZSArIGJ4ICog
aW52c2NhbGU7CisgICAgY3kgPSBheSAqIHNjYWxlICsgYnkgKiBpbnZzY2FsZTsKKyAgICBjeiA9
IGF6ICogc2NhbGUgKyBieiAqIGludnNjYWxlOworICAgIGN3ID0gYXcgKiBzY2FsZSArIGJ3ICog
aW52c2NhbGU7CisKKyAgICBxYVswXSA9IGN4OyBxYVsxXSA9IGN5OyBxYVsyXSA9IGN6OyBxYVsz
XSA9IGN3OworfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEVuZCBvZiBTdXBwb3J0
aW5nIE1hdGggRnVuY3Rpb25zIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
VHJhbnNmb3JtYXRpb25NYXRyaXggVHJhbnNmb3JtYXRpb25NYXRyaXg6OmFmZmluZVRyYW5zZm9y
bSgpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoaXMgdGhyb3dzIGF3YXkgdGhlIHotYXhp
cworICAgIC8vIEZJWE1FOiBpbmRpY2F0ZSB3aGVuIHRoaXMgbG9zZXMgZGF0YSBzb21laG93Cisg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKG1fbWF0cml4WzBdWzBdLCBtX21hdHJp
eFswXVsxXSwgbV9tYXRyaXhbMV1bMF0sIG1fbWF0cml4WzFdWzFdLCBtX21hdHJpeFszXVswXSwg
bV9tYXRyaXhbM11bMV0pOworICAgIHJldHVybiB0cmFuc2Zvcm07CiB9CiAKIFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2NhbGUoZG91YmxlIHMpCkBAIC0xMjEs
ODUgKzUyNyw1MTkgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cgog
ICAgIHJldHVybiBzY2FsZSgxLjBmLCAtMS4wZik7CiB9CiAKLVRyYW5zZm9ybWF0aW9uTWF0cml4
JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tldyhkb3VibGUgYW5nbGVYLCBkb3VibGUgYW5nbGVZ
KQorVHJhbnNmb3JtYXRpb25NYXRyaXggbWFrZU1hcEJldHdlZW5SZWN0cyhjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQogewotICAgIHJldHVybiBzaGVhcih0
YW4oZGVnMnJhZChhbmdsZVgpKSwgdGFuKGRlZzJyYWQoYW5nbGVZKSkpOworICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICB0cmFuc2Zvcm0udHJhbnNsYXRlKGRlc3QueCgp
IC0gc291cmNlLngoKSwgZGVzdC55KCkgLSBzb3VyY2UueSgpKTsKKyAgICB0cmFuc2Zvcm0uc2Nh
bGUoZGVzdC53aWR0aCgpIC8gc291cmNlLndpZHRoKCksIGRlc3QuaGVpZ2h0KCkgLyBzb3VyY2Uu
aGVpZ2h0KCkpOworICAgIHJldHVybiB0cmFuc2Zvcm07CiB9CiAKLVRyYW5zZm9ybWF0aW9uTWF0
cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tld1goZG91YmxlIGFuZ2xlKQorRmxvYXRQb2lu
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cHJvamVjdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIHAp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNoZWFyKHRhbihkZWcycmFkKGFuZ2xlKSksIDAuMGYpOwor
ICAgIC8vIFRoaXMgaXMgYmFzaWNhbGx5IHJheXRyYWNpbmcuIFdlIGhhdmUgYSBwb2ludCBpbiB0
aGUgZGVzdGluYXRpb24KKyAgICAvLyBwbGFuZSB3aXRoIHo9MCwgYW5kIHdlIGNhc3QgYSByYXkg
cGFyYWxsZWwgdG8gdGhlIHotYXhpcyBmcm9tIHRoYXQKKyAgICAvLyBwb2ludCB0byBmaW5kIHRo
ZSB6LXBvc2l0aW9uIGF0IHdoaWNoIGl0IGludGVyc2VjdHMgdGhlIHo9MCBwbGFuZQorICAgIC8v
IHdpdGggdGhlIHRyYW5zZm9ybSBhcHBsaWVkLiBPbmNlIHdlIGhhdmUgdGhhdCBwb2ludCB3ZSBh
cHBseSB0aGUKKyAgICAvLyBpbnZlcnNlIHRyYW5zZm9ybSB0byBmaW5kIHRoZSBjb3JyZXNwb25k
aW5nIHBvaW50IGluIHRoZSBzb3VyY2UKKyAgICAvLyBzcGFjZS4KKyAgICAvLyAKKyAgICAvLyBH
aXZlbiBhIHBsYW5lIHdpdGggbm9ybWFsIFBuLCBhbmQgYSByYXkgc3RhcnRpbmcgYXQgcG9pbnQg
UjAgYW5kCisgICAgLy8gd2l0aCBkaXJlY3Rpb24gZGVmaW5lZCBieSB0aGUgdmVjdG9yIFJkLCB3
ZSBjYW4gZmluZCB0aGUKKyAgICAvLyBpbnRlcnNlY3Rpb24gcG9pbnQgYXMgYSBkaXN0YW5jZSBk
IGZyb20gUjAgaW4gdW5pdHMgb2YgUmQgYnk6CisgICAgLy8gCisgICAgLy8gZCA9IC1kb3QgKFBu
JywgUjApIC8gZG90IChQbicsIFJkKQorICAgIAorICAgIGRvdWJsZSB4ID0gcC54KCk7CisgICAg
ZG91YmxlIHkgPSBwLnkoKTsKKyAgICBkb3VibGUgeiA9IC0obTEzKCkgKiB4ICsgbTIzKCkgKiB5
ICsgbTQzKCkpIC8gbTMzKCk7CisKKyAgICBkb3VibGUgb3V0WCA9IHggKiBtMTEoKSArIHkgKiBt
MjEoKSArIHogKiBtMzEoKSArIG00MSgpOworICAgIGRvdWJsZSBvdXRZID0geCAqIG0xMigpICsg
eSAqIG0yMigpICsgeiAqIG0zMigpICsgbTQyKCk7CisKKyAgICBkb3VibGUgdyA9IHggKiBtMTQo
KSArIHkgKiBtMjQoKSArIHogKiBtMzQoKSArIG00NCgpOworICAgIGlmICh3ICE9IDEgJiYgdyAh
PSAwKSB7CisgICAgICAgIG91dFggLz0gdzsKKyAgICAgICAgb3V0WSAvPSB3OworICAgIH0KKwor
ICAgIHJldHVybiBGbG9hdFBvaW50KHN0YXRpY19jYXN0PGZsb2F0PihvdXRYKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG91dFkpKTsKIH0KIAotVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0
aW9uTWF0cml4Ojpza2V3WShkb3VibGUgYW5nbGUpCitGbG9hdFBvaW50IFRyYW5zZm9ybWF0aW9u
TWF0cml4OjptYXBQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKSBjb25zdAogewotICAgIHJldHVy
biBzaGVhcigwLjBmLCB0YW4oZGVnMnJhZChhbmdsZSkpKTsKKyAgICBkb3VibGUgeCwgeTsKKyAg
ICBtdWx0VmVjTWF0cml4KHAueCgpLCBwLnkoKSwgeCwgeSk7CisgICAgcmV0dXJuIEZsb2F0UG9p
bnQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHgpLCBzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOwogfQogCi1U
cmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWtlTWFwQmV0d2VlblJlY3RzKGNvbnN0IEZsb2F0UmVjdCYg
c291cmNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCitGbG9hdFBvaW50M0QgVHJhbnNmb3JtYXRp
b25NYXRyaXg6Om1hcFBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYgcCkgY29uc3QKIHsKLSAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShk
ZXN0LngoKSAtIHNvdXJjZS54KCksIGRlc3QueSgpIC0gc291cmNlLnkoKSk7Ci0gICAgdHJhbnNm
b3JtLnNjYWxlKGRlc3Qud2lkdGgoKSAvIHNvdXJjZS53aWR0aCgpLCBkZXN0LmhlaWdodCgpIC8g
c291cmNlLmhlaWdodCgpKTsKLSAgICByZXR1cm4gdHJhbnNmb3JtOworICAgIGRvdWJsZSB4LCB5
LCB6OworICAgIG11bHRWZWNNYXRyaXgocC54KCksIHAueSgpLCBwLnooKSwgeCwgeSwgeik7Cisg
ICAgcmV0dXJuIEZsb2F0UG9pbnQzRChzdGF0aWNfY2FzdDxmbG9hdD4oeCksIHN0YXRpY19jYXN0
PGZsb2F0Pih5KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHopKTsKIH0KIAogSW50UG9pbnQgVHJhbnNm
b3JtYXRpb25NYXRyaXg6Om1hcFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsK
LSAgICBkb3VibGUgeDIsIHkyOwotICAgIG1hcChwb2ludC54KCksIHBvaW50LnkoKSwgJngyLCAm
eTIpOworICAgIGRvdWJsZSB4LCB5OworICAgIG11bHRWZWNNYXRyaXgocG9pbnQueCgpLCBwb2lu
dC55KCksIHgsIHkpOwogCiAgICAgLy8gUm91bmQgdGhlIHBvaW50LgotICAgIHJldHVybiBJbnRQ
b2ludChscm91bmQoeDIpLCBscm91bmQoeTIpKTsKKyAgICByZXR1cm4gSW50UG9pbnQobHJvdW5k
KHgpLCBscm91bmQoeSkpOwogfQogCi1GbG9hdFBvaW50IFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
YXBQb2ludChjb25zdCBGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKK0ludFJlY3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6Om1hcFJlY3QoY29uc3QgSW50UmVjdCAmcmVjdCkgY29uc3QKIHsKLSAgICBk
b3VibGUgeDIsIHkyOwotICAgIG1hcChwb2ludC54KCksIHBvaW50LnkoKSwgJngyLCAmeTIpOwor
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KG1hcFJlY3QoRmxvYXRSZWN0KHJlY3QpKSk7Cit9
CiAKLSAgICByZXR1cm4gRmxvYXRQb2ludChzdGF0aWNfY2FzdDxmbG9hdD4oeDIpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oeTIpKTsKK0Zsb2F0UmVjdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVj
dChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0Cit7CisgICAgRmxvYXRRdWFkIHJlc3VsdFF1YWQg
PSBtYXBRdWFkKEZsb2F0UXVhZChyKSk7CisgICAgcmV0dXJuIHJlc3VsdFF1YWQuYm91bmRpbmdC
b3goKTsKIH0KIAotRmxvYXRRdWFkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjptYXBRdWFkKGNvbnN0
IEZsb2F0UXVhZCYgcXVhZCkgY29uc3QKK0Zsb2F0UXVhZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bWFwUXVhZChjb25zdCBGbG9hdFF1YWQmIHEpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IGF2b2lk
IDQgc2VwZXJhdGUgbGlicmFyeSBjYWxscy4gUG9pbnQgbWFwcGluZyByZWFsbHkgbmVlZHMKLSAg
ICAvLyB0byBiZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBjb2RlLgotICAgIHJldHVybiBGbG9hdFF1
YWQobWFwUG9pbnQocXVhZC5wMSgpKSwKLSAgICAgICAgICAgICAgICAgICAgIG1hcFBvaW50KHF1
YWQucDIoKSksCi0gICAgICAgICAgICAgICAgICAgICBtYXBQb2ludChxdWFkLnAzKCkpLAotICAg
ICAgICAgICAgICAgICAgICAgbWFwUG9pbnQocXVhZC5wNCgpKSk7CisgICAgRmxvYXRRdWFkIHJl
c3VsdDsKKyAgICByZXN1bHQuc2V0UDEobWFwUG9pbnQocS5wMSgpKSk7CisgICAgcmVzdWx0LnNl
dFAyKG1hcFBvaW50KHEucDIoKSkpOworICAgIHJlc3VsdC5zZXRQMyhtYXBQb2ludChxLnAzKCkp
KTsKKyAgICByZXN1bHQuc2V0UDQobWFwUG9pbnQocS5wNCgpKSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotdm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YmxlbmQoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIGZyb20sIGRvdWJsZSBwcm9ncmVzcykKK1RyYW5zZm9ybWF0aW9uTWF0cml4
JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2NhbGUoZG91YmxlIHN4LCBkb3VibGUgc3kpCiB7Ci0g
ICAgZG91YmxlIHNyQVs5XSwgc3JCWzldOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsK
KyAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSBzeDsKKyAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSBz
eTsKIAotICAgIGFmZmluZVRyYW5zZm9ybURlY29tcG9zZShmcm9tLCBzckEpOwotICAgIGFmZmlu
ZVRyYW5zZm9ybURlY29tcG9zZSgqdGhpcywgc3JCKTsKKyAgICBtdWx0TGVmdChtYXQpOworICAg
IHJldHVybiAqdGhpczsKK30KKworVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9u
TWF0cml4OjpzY2FsZTNkKGRvdWJsZSBzeCwgZG91YmxlIHN5LCBkb3VibGUgc3opCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbWF0OworICAgIG1hdC5tX21hdHJpeFswXVswXSA9IHN4Owor
ICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IHN5OworICAgIG1hdC5tX21hdHJpeFsyXVsyXSA9IHN6
OwogCi0gICAgLy8gSWYgeC1heGlzIG9mIG9uZSBpcyBmbGlwcGVkLCBhbmQgeS1heGlzIG9mIHRo
ZSBvdGhlciwgY29udmVydCB0byBhbiB1bmZsaXBwZWQgcm90YXRpb24uCi0gICAgaWYgKChzckFb
MF0gPCAwLjAgJiYgc3JCWzFdIDwgMC4wKSB8fCAoc3JBWzFdIDwgMC4wICYmICBzckJbMF0gPCAw
LjApKSB7Ci0gICAgICAgIHNyQVswXSA9IC1zckFbMF07Ci0gICAgICAgIHNyQVsxXSA9IC1zckFb
MV07Ci0gICAgICAgIHNyQVsyXSArPSBzckFbMl0gPCAwID8gcGlEb3VibGUgOiAtcGlEb3VibGU7
CisgICAgbXVsdExlZnQobWF0KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1RyYW5zZm9ybWF0
aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlM2QoZG91YmxlIHgsIGRvdWJs
ZSB5LCBkb3VibGUgeiwgZG91YmxlIGFuZ2xlKQoreworICAgIC8vIGFuZ2xlcyBhcmUgaW4gZGVn
cmVlcy4gU3dpdGNoIHRvIHJhZGlhbnMKKyAgICBhbmdsZSA9IGFuZ2xlIC8gMzYwLjAgKiBNX1BJ
ICogMi4wOworICAgIAorICAgIGFuZ2xlIC89IDIuMGY7CisgICAgZG91YmxlIHNpbkEgPSBzaW4o
YW5nbGUpOworICAgIGRvdWJsZSBjb3NBID0gY29zKGFuZ2xlKTsKKyAgICBkb3VibGUgc2luQTIg
PSBzaW5BICogc2luQTsKKyAgICAKKyAgICAvLyBub3JtYWxpemUKKyAgICBkb3VibGUgbGVuZ3Ro
ID0gc3FydCh4KngreSp5K3oqeik7CisgICAgaWYgKGxlbmd0aCA9PSAwKSB7CisgICAgICAgIC8v
IGJhZCB2ZWN0b3IsIGp1c3QgdXNlIHNvbWV0aGluZyByZWFzb25hYmxlCisgICAgICAgIHggPSAw
OworICAgICAgICB5ID0gMDsKKyAgICAgICAgeiA9IDE7CisgICAgfSBlbHNlIGlmIChsZW5ndGgg
IT0gMSkgeworICAgICAgICB4IC89IGxlbmd0aDsKKyAgICAgICAgeSAvPSBsZW5ndGg7CisgICAg
ICAgIHogLz0gbGVuZ3RoOwogICAgIH0KKyAgICAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBt
YXQ7CiAKLSAgICAvLyBEb24ndCByb3RhdGUgdGhlIGxvbmcgd2F5IGFyb3VuZC4KLSAgICBzckFb
Ml0gPSBmbW9kKHNyQVsyXSwgMi4wICogcGlEb3VibGUpOwotICAgIHNyQlsyXSA9IGZtb2Qoc3JC
WzJdLCAyLjAgKiBwaURvdWJsZSk7CisgICAgLy8gb3B0aW1pemUgY2FzZSB3aGVyZSBheGlzIGlz
IGFsb25nIG1ham9yIGF4aXMKKyAgICBpZiAoeCA9PSAxLjBmICYmIHkgPT0gMC4wZiAmJiB6ID09
IDAuMGYpIHsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZjsKKyAgICAgICAgbWF0
Lm1fbWF0cml4WzBdWzFdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzJdID0gMC4w
ZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzBdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0
cml4WzFdWzFdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFd
WzJdID0gMi4wZiAqIHNpbkEgKiBjb3NBOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMF0gPSAw
LjBmOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMV0gPSAtMi4wZiAqIHNpbkEgKiBjb3NBOwor
ICAgICAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOworICAgICAg
ICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9tYXRyaXhb
Ml1bM10gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9tYXRyaXhb
M11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhb
M11bM10gPSAxLjBmOworICAgIH0gZWxzZSBpZiAoeCA9PSAwLjBmICYmIHkgPT0gMS4wZiAmJiB6
ID09IDAuMGYpIHsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZiAtIDIuMGYgKiBz
aW5BMjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzFdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1f
bWF0cml4WzBdWzJdID0gLTIuMGYgKiBzaW5BICogY29zQTsKKyAgICAgICAgbWF0Lm1fbWF0cml4
WzFdWzBdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzFdID0gMS4wZjsKKyAgICAg
ICAgbWF0Lm1fbWF0cml4WzFdWzJdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzBd
ID0gMi4wZiAqIHNpbkEgKiBjb3NBOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMV0gPSAwLjBm
OworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOworICAg
ICAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9tYXRy
aXhbMl1bM10gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9tYXRy
aXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRy
aXhbM11bM10gPSAxLjBmOworICAgIH0gZWxzZSBpZiAoeCA9PSAwLjBmICYmIHkgPT0gMC4wZiAm
JiB6ID09IDEuMGYpIHsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZiAtIDIuMGYg
KiBzaW5BMjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzFdID0gMi4wZiAqIHNpbkEgKiBjb3NB
OworICAgICAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRy
aXhbMV1bMF0gPSAtMi4wZiAqIHNpbkEgKiBjb3NBOworICAgICAgICBtYXQubV9tYXRyaXhbMV1b
MV0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOworICAgICAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSAw
LjBmOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMF0gPSAwLjBmOworICAgICAgICBtYXQubV9t
YXRyaXhbMl1bMV0gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmOwor
ICAgICAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9t
YXRyaXhbMl1bM10gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9t
YXRyaXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOworICAgICAgICBtYXQubV9t
YXRyaXhbM11bM10gPSAxLjBmOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvdWJsZSB4MiA9IHgq
eDsKKyAgICAgICAgZG91YmxlIHkyID0geSp5OworICAgICAgICBkb3VibGUgejIgPSB6Kno7Cisg
ICAgCisgICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGYgLSAyLjBmICogKHkyICsgejIp
ICogc2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVsxXSA9IDIuMGYgKiAoeCAqIHkgKiBz
aW5BMiArIHogKiBzaW5BICogY29zQSk7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVsyXSA9IDIu
MGYgKiAoeCAqIHogKiBzaW5BMiAtIHkgKiBzaW5BICogY29zQSk7CisgICAgICAgIG1hdC5tX21h
dHJpeFsxXVswXSA9IDIuMGYgKiAoeSAqIHggKiBzaW5BMiAtIHogKiBzaW5BICogY29zQSk7Cisg
ICAgICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogKHoyICsgeDIpICogc2lu
QTI7CisgICAgICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IDIuMGYgKiAoeSAqIHogKiBzaW5BMiAr
IHggKiBzaW5BICogY29zQSk7CisgICAgICAgIG1hdC5tX21hdHJpeFsyXVswXSA9IDIuMGYgKiAo
eiAqIHggKiBzaW5BMiArIHkgKiBzaW5BICogY29zQSk7CisgICAgICAgIG1hdC5tX21hdHJpeFsy
XVsxXSA9IDIuMGYgKiAoeiAqIHkgKiBzaW5BMiAtIHggKiBzaW5BICogY29zQSk7CisgICAgICAg
IG1hdC5tX21hdHJpeFsyXVsyXSA9IDEuMGYgLSAyLjBmICogKHgyICsgeTIpICogc2luQTI7Cisg
ICAgICAgIG1hdC5tX21hdHJpeFswXVszXSA9IG1hdC5tX21hdHJpeFsxXVszXSA9IG1hdC5tX21h
dHJpeFsyXVszXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21hdHJpeFszXVswXSA9IG1hdC5tX21h
dHJpeFszXVsxXSA9IG1hdC5tX21hdHJpeFszXVsyXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21h
dHJpeFszXVszXSA9IDEuMGY7CisgICAgfQorICAgIG11bHRMZWZ0KG1hdCk7CisgICAgcmV0dXJu
ICp0aGlzOworfQorCitUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6
OnJvdGF0ZTNkKGRvdWJsZSByeCwgZG91YmxlIHJ5LCBkb3VibGUgcnopCit7CisgICAgLy8gYW5n
bGVzIGFyZSBpbiBkZWdyZWVzLiBTd2l0Y2ggdG8gcmFkaWFucworICAgIHJ4ID0gcnggLyAzNjAu
MCAqIE1fUEkgKiAyLjA7CisgICAgcnkgPSByeSAvIDM2MC4wICogTV9QSSAqIDIuMDsKKyAgICBy
eiA9IHJ6IC8gMzYwLjAgKiBNX1BJICogMi4wOworICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1hdDsKKyAgICAKKyAgICByeiAvPSAyLjBmOworICAgIGRvdWJsZSBzaW5BID0gc2luKHJ6
KTsKKyAgICBkb3VibGUgY29zQSA9IGNvcyhyeik7CisgICAgZG91YmxlIHNpbkEyID0gc2luQSAq
IHNpbkE7CisgICAgCisgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZiAtIDIuMGYgKiBzaW5B
MjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAyLjBmICogc2luQSAqIGNvc0E7CisgICAgbWF0
Lm1fbWF0cml4WzBdWzJdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMV1bMF0gPSAtMi4wZiAq
IHNpbkEgKiBjb3NBOworICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogc2lu
QTI7CisgICAgbWF0Lm1fbWF0cml4WzFdWzJdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMl1b
MF0gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFsyXVsxXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0
cml4WzJdWzJdID0gMS4wZjsKKyAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhb
MV1bM10gPSBtYXQubV9tYXRyaXhbMl1bM10gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFszXVsw
XSA9IG1hdC5tX21hdHJpeFszXVsxXSA9IG1hdC5tX21hdHJpeFszXVsyXSA9IDAuMGY7CisgICAg
bWF0Lm1fbWF0cml4WzNdWzNdID0gMS4wZjsKKyAgICAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBybWF0KG1hdCk7CisgICAgCisgICAgcnkgLz0gMi4wZjsKKyAgICBzaW5BID0gc2luKHJ5KTsK
KyAgICBjb3NBID0gY29zKHJ5KTsKKyAgICBzaW5BMiA9IHNpbkEgKiBzaW5BOworICAgIAorICAg
IG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgbWF0Lm1fbWF0
cml4WzBdWzFdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAtMi4wZiAqIHNpbkEg
KiBjb3NBOworICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4
WzFdWzFdID0gMS4wZjsKKyAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSAwLjBmOworICAgIG1hdC5t
X21hdHJpeFsyXVswXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICBtYXQubV9tYXRyaXhbMl1b
MV0gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFsyXVsyXSA9IDEuMGYgLSAyLjBmICogc2luQTI7
CisgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4WzFdWzNdID0gbWF0Lm1fbWF0
cml4WzJdWzNdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9tYXRyaXhb
M11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFszXVsz
XSA9IDEuMGY7CisgICAgCisgICAgcm1hdC5tdWx0TGVmdChtYXQpOworCisgICAgcnggLz0gMi4w
ZjsKKyAgICBzaW5BID0gc2luKHJ4KTsKKyAgICBjb3NBID0gY29zKHJ4KTsKKyAgICBzaW5BMiA9
IHNpbkEgKiBzaW5BOworICAgIAorICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGY7CisgICAg
bWF0Lm1fbWF0cml4WzBdWzFdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAwLjBm
OworICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4WzFdWzFd
ID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSAyLjBmICog
c2luQSAqIGNvc0E7CisgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gMC4wZjsKKyAgICBtYXQubV9t
YXRyaXhbMl1bMV0gPSAtMi4wZiAqIHNpbkEgKiBjb3NBOworICAgIG1hdC5tX21hdHJpeFsyXVsy
XSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1f
bWF0cml4WzFdWzNdID0gbWF0Lm1fbWF0cml4WzJdWzNdID0gMC4wZjsKKyAgICBtYXQubV9tYXRy
aXhbM11bMF0gPSBtYXQubV9tYXRyaXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBm
OworICAgIG1hdC5tX21hdHJpeFszXVszXSA9IDEuMGY7CisgICAgCisgICAgcm1hdC5tdWx0TGVm
dChtYXQpOworCisgICAgbXVsdExlZnQocm1hdCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnRyYW5zbGF0ZShkb3Vi
bGUgdHgsIGRvdWJsZSB0eSkKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXQ7CisgICAg
bWF0Lm1fbWF0cml4WzNdWzBdID0gdHg7CisgICAgbWF0Lm1fbWF0cml4WzNdWzFdID0gdHk7CisK
KyAgICBtdWx0TGVmdChtYXQpOworICAgIHJldHVybiAqdGhpczsKK30KKworVHJhbnNmb3JtYXRp
b25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojp0cmFuc2xhdGUzZChkb3VibGUgdHgsIGRv
dWJsZSB0eSwgZG91YmxlIHR6KQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsKKyAg
ICBtYXQubV9tYXRyaXhbM11bMF0gPSB0eDsKKyAgICBtYXQubV9tYXRyaXhbM11bMV0gPSB0eTsK
KyAgICBtYXQubV9tYXRyaXhbM11bMl0gPSB0ejsKKworICAgIG11bHRMZWZ0KG1hdCk7CisgICAg
cmV0dXJuICp0aGlzOworfQorCitUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25N
YXRyaXg6OnNrZXcoZG91YmxlIHN4LCBkb3VibGUgc3kpCit7CisgICAgLy8gYW5nbGVzIGFyZSBp
biBkZWdyZWVzLiBTd2l0Y2ggdG8gcmFkaWFucworICAgIHN4ID0gc3ggLyAzNjAuMCAqIE1fUEkg
KiAyLjA7CisgICAgc3kgPSBzeSAvIDM2MC4wICogTV9QSSAqIDIuMDsKKyAgICAKKyAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBtYXQ7CisgICAgbWF0Lm1fbWF0cml4WzBdWzFdID0gdGFuKHN5KTsg
Ly8gbm90ZSB0aGF0IHRoZSB5IHNoZWFyIGdvZXMgaW4gdGhlIGZpcnN0IHJvdworICAgIG1hdC5t
X21hdHJpeFsxXVswXSA9IHRhbihzeCk7IC8vIGFuZCB0aGUgeCBzaGVhciBpbiB0aGUgc2Vjb25k
IHJvdworCisgICAgbXVsdExlZnQobWF0KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1RyYW5z
Zm9ybWF0aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YXBwbHlQZXJzcGVjdGl2ZShk
b3VibGUgcCkKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXQ7CisgICAgaWYgKHAgIT0g
MCkKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzNdID0gLTEvcDsKKworICAgIG11bHRMZWZ0KG1h
dCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCisvLworLy8gbXVsdGlwbGllcyBtYXRyaXggYnkg
Z2l2ZW4gbWF0cml4IG9uIHRoZSByaWdodAorLy8KK1RyYW5zZm9ybWF0aW9uTWF0cml4JiBUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6bXVsdExlZnQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1h
dCkKK3sKKyAgICBkb3VibGUgdG1wWzRdWzRdOworICAgIAorICAgIHRtcFswXVswXSA9IChtYXQu
bV9tYXRyaXhbMF1bMF0gKiBtX21hdHJpeFswXVswXSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1f
bWF0cml4WzFdWzBdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0
cml4WzJdWzBdICsgbWF0Lm1fbWF0cml4WzBdWzNdICogbV9tYXRyaXhbM11bMF0pOworICAgIHRt
cFswXVsxXSA9IChtYXQubV9tYXRyaXhbMF1bMF0gKiBtX21hdHJpeFswXVsxXSArIG1hdC5tX21h
dHJpeFswXVsxXSAqIG1fbWF0cml4WzFdWzFdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJp
eFswXVsyXSAqIG1fbWF0cml4WzJdWzFdICsgbWF0Lm1fbWF0cml4WzBdWzNdICogbV9tYXRyaXhb
M11bMV0pOworICAgIHRtcFswXVsyXSA9IChtYXQubV9tYXRyaXhbMF1bMF0gKiBtX21hdHJpeFsw
XVsyXSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1fbWF0cml4WzFdWzJdCisgICAgICAgICAgICAg
ICArIG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0cml4WzJdWzJdICsgbWF0Lm1fbWF0cml4WzBd
WzNdICogbV9tYXRyaXhbM11bMl0pOworICAgIHRtcFswXVszXSA9IChtYXQubV9tYXRyaXhbMF1b
MF0gKiBtX21hdHJpeFswXVszXSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1fbWF0cml4WzFdWzNd
CisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0cml4WzJdWzNdICsg
bWF0Lm1fbWF0cml4WzBdWzNdICogbV9tYXRyaXhbM11bM10pOworCisgICAgdG1wWzFdWzBdID0g
KG1hdC5tX21hdHJpeFsxXVswXSAqIG1fbWF0cml4WzBdWzBdICsgbWF0Lm1fbWF0cml4WzFdWzFd
ICogbV9tYXRyaXhbMV1bMF0KKyAgICAgICAgICAgICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICog
bV9tYXRyaXhbMl1bMF0gKyBtYXQubV9tYXRyaXhbMV1bM10gKiBtX21hdHJpeFszXVswXSk7Cisg
ICAgdG1wWzFdWzFdID0gKG1hdC5tX21hdHJpeFsxXVswXSAqIG1fbWF0cml4WzBdWzFdICsgbWF0
Lm1fbWF0cml4WzFdWzFdICogbV9tYXRyaXhbMV1bMV0KKyAgICAgICAgICAgICAgICsgbWF0Lm1f
bWF0cml4WzFdWzJdICogbV9tYXRyaXhbMl1bMV0gKyBtYXQubV9tYXRyaXhbMV1bM10gKiBtX21h
dHJpeFszXVsxXSk7CisgICAgdG1wWzFdWzJdID0gKG1hdC5tX21hdHJpeFsxXVswXSAqIG1fbWF0
cml4WzBdWzJdICsgbWF0Lm1fbWF0cml4WzFdWzFdICogbV9tYXRyaXhbMV1bMl0KKyAgICAgICAg
ICAgICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICogbV9tYXRyaXhbMl1bMl0gKyBtYXQubV9tYXRy
aXhbMV1bM10gKiBtX21hdHJpeFszXVsyXSk7CisgICAgdG1wWzFdWzNdID0gKG1hdC5tX21hdHJp
eFsxXVswXSAqIG1fbWF0cml4WzBdWzNdICsgbWF0Lm1fbWF0cml4WzFdWzFdICogbV9tYXRyaXhb
MV1bM10KKyAgICAgICAgICAgICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICogbV9tYXRyaXhbMl1b
M10gKyBtYXQubV9tYXRyaXhbMV1bM10gKiBtX21hdHJpeFszXVszXSk7CisKKyAgICB0bXBbMl1b
MF0gPSAobWF0Lm1fbWF0cml4WzJdWzBdICogbV9tYXRyaXhbMF1bMF0gKyBtYXQubV9tYXRyaXhb
Ml1bMV0gKiBtX21hdHJpeFsxXVswXQorICAgICAgICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1b
Ml0gKiBtX21hdHJpeFsyXVswXSArIG1hdC5tX21hdHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzBd
KTsKKyAgICB0bXBbMl1bMV0gPSAobWF0Lm1fbWF0cml4WzJdWzBdICogbV9tYXRyaXhbMF1bMV0g
KyBtYXQubV9tYXRyaXhbMl1bMV0gKiBtX21hdHJpeFsxXVsxXQorICAgICAgICAgICAgICAgKyBt
YXQubV9tYXRyaXhbMl1bMl0gKiBtX21hdHJpeFsyXVsxXSArIG1hdC5tX21hdHJpeFsyXVszXSAq
IG1fbWF0cml4WzNdWzFdKTsKKyAgICB0bXBbMl1bMl0gPSAobWF0Lm1fbWF0cml4WzJdWzBdICog
bV9tYXRyaXhbMF1bMl0gKyBtYXQubV9tYXRyaXhbMl1bMV0gKiBtX21hdHJpeFsxXVsyXQorICAg
ICAgICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1bMl0gKiBtX21hdHJpeFsyXVsyXSArIG1hdC5t
X21hdHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzJdKTsKKyAgICB0bXBbMl1bM10gPSAobWF0Lm1f
bWF0cml4WzJdWzBdICogbV9tYXRyaXhbMF1bM10gKyBtYXQubV9tYXRyaXhbMl1bMV0gKiBtX21h
dHJpeFsxXVszXQorICAgICAgICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1bMl0gKiBtX21hdHJp
eFsyXVszXSArIG1hdC5tX21hdHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzNdKTsKKworICAgIHRt
cFszXVswXSA9IChtYXQubV9tYXRyaXhbM11bMF0gKiBtX21hdHJpeFswXVswXSArIG1hdC5tX21h
dHJpeFszXVsxXSAqIG1fbWF0cml4WzFdWzBdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJp
eFszXVsyXSAqIG1fbWF0cml4WzJdWzBdICsgbWF0Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhb
M11bMF0pOworICAgIHRtcFszXVsxXSA9IChtYXQubV9tYXRyaXhbM11bMF0gKiBtX21hdHJpeFsw
XVsxXSArIG1hdC5tX21hdHJpeFszXVsxXSAqIG1fbWF0cml4WzFdWzFdCisgICAgICAgICAgICAg
ICArIG1hdC5tX21hdHJpeFszXVsyXSAqIG1fbWF0cml4WzJdWzFdICsgbWF0Lm1fbWF0cml4WzNd
WzNdICogbV9tYXRyaXhbM11bMV0pOworICAgIHRtcFszXVsyXSA9IChtYXQubV9tYXRyaXhbM11b
MF0gKiBtX21hdHJpeFswXVsyXSArIG1hdC5tX21hdHJpeFszXVsxXSAqIG1fbWF0cml4WzFdWzJd
CisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFszXVsyXSAqIG1fbWF0cml4WzJdWzJdICsg
bWF0Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhbM11bMl0pOworICAgIHRtcFszXVszXSA9ICht
YXQubV9tYXRyaXhbM11bMF0gKiBtX21hdHJpeFswXVszXSArIG1hdC5tX21hdHJpeFszXVsxXSAq
IG1fbWF0cml4WzFdWzNdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFszXVsyXSAqIG1f
bWF0cml4WzJdWzNdICsgbWF0Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhbM11bM10pOworICAg
IAorICAgIHNldE1hdHJpeChyZWludGVycHJldF9jYXN0PGRvdWJsZSo+KHRtcCkpOworICAgIHJl
dHVybiAqdGhpczsKK30KKwordm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bXVsdFZlY01hdHJp
eChkb3VibGUgaW54LCBkb3VibGUgaW55LCBkb3VibGUmIG91dHgsIGRvdWJsZSYgb3V0eSkgY29u
c3QKK3sKKyAgICBvdXR4ID0gbV9tYXRyaXhbM11bMF0gKyBpbnggKiBtX21hdHJpeFswXVswXSAr
IGlueSAqIG1fbWF0cml4WzFdWzBdOworICAgIG91dHkgPSBtX21hdHJpeFszXVsxXSArIGlueCAq
IG1fbWF0cml4WzBdWzFdICsgaW55ICogbV9tYXRyaXhbMV1bMV07CisgICAgZG91YmxlIHcgPSBt
X21hdHJpeFszXVszXSArIGlueCAqIG1fbWF0cml4WzBdWzNdICsgaW55ICogbV9tYXRyaXhbMV1b
M107CisgICAgaWYgKHcgIT0gMSAmJiB3ICE9IDApIHsKKyAgICAgICAgb3V0eCAvPSB3OworICAg
ICAgICBvdXR5IC89IHc7CisgICAgfQorfQorCit2b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
dWx0VmVjTWF0cml4KGRvdWJsZSBpbngsIGRvdWJsZSBpbnksIGRvdWJsZSBpbnosIGRvdWJsZSYg
b3V0eCwgZG91YmxlJiBvdXR5LCBkb3VibGUmIG91dHopIGNvbnN0Cit7CisgICAgb3V0eCA9IG1f
bWF0cml4WzNdWzBdICsgaW54ICogbV9tYXRyaXhbMF1bMF0gKyBpbnkgKiBtX21hdHJpeFsxXVsw
XSArIGlueiAqIG1fbWF0cml4WzJdWzBdOworICAgIG91dHkgPSBtX21hdHJpeFszXVsxXSArIGlu
eCAqIG1fbWF0cml4WzBdWzFdICsgaW55ICogbV9tYXRyaXhbMV1bMV0gKyBpbnogKiBtX21hdHJp
eFsyXVsxXTsKKyAgICBvdXR6ID0gbV9tYXRyaXhbM11bMl0gKyBpbnggKiBtX21hdHJpeFswXVsy
XSArIGlueSAqIG1fbWF0cml4WzFdWzJdICsgaW56ICogbV9tYXRyaXhbMl1bMl07CisgICAgZG91
YmxlIHcgPSBtX21hdHJpeFszXVszXSArIGlueCAqIG1fbWF0cml4WzBdWzNdICsgaW55ICogbV9t
YXRyaXhbMV1bM10gKyBpbnogKiBtX21hdHJpeFsyXVszXTsKKyAgICBpZiAodyAhPSAxICYmIHcg
IT0gMCkgeworICAgICAgICBvdXR4IC89IHc7CisgICAgICAgIG91dHkgLz0gdzsKKyAgICAgICAg
b3V0eiAvPSB3OworICAgIH0KK30KKworYm9vbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnZl
cnRpYmxlKCkgY29uc3QKK3sKKyAgICBkb3VibGUgZGV0ID0gV2ViQ29yZTo6ZGV0NHg0KG1fbWF0
cml4KTsKIAotICAgIGlmIChmYWJzKHNyQVsyXSAtIHNyQlsyXSkgPiBwaURvdWJsZSkgewotICAg
ICAgICBpZiAoc3JBWzJdID4gc3JCWzJdKQotICAgICAgICAgICAgc3JBWzJdIC09IHBpRG91Ymxl
ICogMi4wOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzckJbMl0gLT0gcGlEb3VibGUgKiAy
LjA7CisgICAgaWYgKGZhYnMoZGV0KSA8IFNNQUxMX05VTUJFUikKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vCisvLyByZXR1cm5zIGludmVyc2Ugb2Yg
bWF0cml4CisvLworVHJhbnNmb3JtYXRpb25NYXRyaXggVHJhbnNmb3JtYXRpb25NYXRyaXg6Omlu
dmVyc2UoKSBjb25zdCAKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZNYXQ7CisgICAg
CisgICAgYm9vbCBpbnZlcnRlZCA9IFdlYkNvcmU6OmludmVyc2UobV9tYXRyaXgsIGludk1hdC5t
X21hdHJpeCk7CisgICAgaWYgKCFpbnZlcnRlZCkgeworICAgICAgICAvLyBGSVhNRTogaW5kaWNh
dGUgZmFpbHVyZSBzb21laG93CisgICAgICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
OwogICAgIH0KKyAgICAKKyAgICByZXR1cm4gaW52TWF0OworfQogCi0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCA5OyBpKyspCi0gICAgICAgIHNyQVtpXSA9IHNyQVtpXSArIHByb2dyZXNzICogKHNy
QltpXSAtIHNyQVtpXSk7CitzdGF0aWMgaW5saW5lIHZvaWQgYmxlbmRGbG9hdChkb3VibGUmIGZy
b20sIGRvdWJsZSB0bywgZG91YmxlIHByb2dyZXNzKQoreworICAgIGlmIChmcm9tICE9IHRvKQor
ICAgICAgICBmcm9tID0gZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3M7Cit9CiAKLSAgICBh
ZmZpbmVUcmFuc2Zvcm1Db21wb3NlKCp0aGlzLCBzckEpOwordm9pZCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6YmxlbmQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGZyb20sIGRvdWJsZSBwcm9n
cmVzcykKK3sKKyAgICBpZiAoZnJvbS5pc0lkZW50aXR5KCkgJiYgaXNJZGVudGl0eSgpKQorICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgIC8vIGRlY29tcG9zZQorICAgIERlY29tcG9zZWRU
eXBlIGZyb21EZWNvbXA7CisgICAgRGVjb21wb3NlZFR5cGUgdG9EZWNvbXA7CisgICAgZnJvbS5k
ZWNvbXBvc2UoZnJvbURlY29tcCk7CisgICAgZGVjb21wb3NlKHRvRGVjb21wKTsKKworICAgIC8v
IGludGVycG9sYXRlCisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21wLnNjYWxlWCwgdG9EZWNvbXAu
c2NhbGVYLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21wLnNjYWxlWSwgdG9E
ZWNvbXAuc2NhbGVZLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21wLnNjYWxl
WiwgdG9EZWNvbXAuc2NhbGVaLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21w
LnNrZXdYWSwgdG9EZWNvbXAuc2tld1hZLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9t
RGVjb21wLnNrZXdYWiwgdG9EZWNvbXAuc2tld1haLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9h
dChmcm9tRGVjb21wLnNrZXdZWiwgdG9EZWNvbXAuc2tld1laLCBwcm9ncmVzcyk7CisgICAgYmxl
bmRGbG9hdChmcm9tRGVjb21wLnRyYW5zbGF0ZVgsIHRvRGVjb21wLnRyYW5zbGF0ZVgsIHByb2dy
ZXNzKTsKKyAgICBibGVuZEZsb2F0KGZyb21EZWNvbXAudHJhbnNsYXRlWSwgdG9EZWNvbXAudHJh
bnNsYXRlWSwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29tcC50cmFuc2xhdGVa
LCB0b0RlY29tcC50cmFuc2xhdGVaLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVj
b21wLnBlcnNwZWN0aXZlWCwgdG9EZWNvbXAucGVyc3BlY3RpdmVYLCBwcm9ncmVzcyk7CisgICAg
YmxlbmRGbG9hdChmcm9tRGVjb21wLnBlcnNwZWN0aXZlWSwgdG9EZWNvbXAucGVyc3BlY3RpdmVZ
LCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21wLnBlcnNwZWN0aXZlWiwgdG9E
ZWNvbXAucGVyc3BlY3RpdmVaLCBwcm9ncmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21w
LnBlcnNwZWN0aXZlVywgdG9EZWNvbXAucGVyc3BlY3RpdmVXLCBwcm9ncmVzcyk7CisgICAgCisg
ICAgc2xlcnAoJmZyb21EZWNvbXAucXVhdGVybmlvblgsICZ0b0RlY29tcC5xdWF0ZXJuaW9uWCwg
cHJvZ3Jlc3MpOworICAgICAgICAKKyAgICAvLyByZWNvbXBvc2UKKyAgICByZWNvbXBvc2UoZnJv
bURlY29tcCk7Cit9CisKK2Jvb2wgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmRlY29tcG9zZShEZWNv
bXBvc2VkVHlwZSYgZGVjb21wKSBjb25zdAoreworICAgIGlmIChpc0lkZW50aXR5KCkpIHsKKyAg
ICAgICAgbWVtc2V0KCZkZWNvbXAsIDAsIHNpemVvZihkZWNvbXApKTsKKyAgICAgICAgZGVjb21w
LnBlcnNwZWN0aXZlVyA9IDE7CisgICAgICAgIGRlY29tcC5zY2FsZVggPSAxOworICAgICAgICBk
ZWNvbXAuc2NhbGVZID0gMTsKKyAgICAgICAgZGVjb21wLnNjYWxlWiA9IDE7CisgICAgfQorICAg
IAorICAgIGlmICghV2ViQ29yZTo6ZGVjb21wb3NlKG1fbWF0cml4LCBkZWNvbXApKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVHJhbnNmb3JtYXRp
b25NYXRyaXg6OnJlY29tcG9zZShjb25zdCBEZWNvbXBvc2VkVHlwZSYgZGVjb21wKQoreworICAg
IG1ha2VJZGVudGl0eSgpOworICAgIAorICAgIC8vIGZpcnN0IGFwcGx5IHBlcnNwZWN0aXZlCisg
ICAgbV9tYXRyaXhbMF1bM10gPSAoZmxvYXQpIGRlY29tcC5wZXJzcGVjdGl2ZVg7CisgICAgbV9t
YXRyaXhbMV1bM10gPSAoZmxvYXQpIGRlY29tcC5wZXJzcGVjdGl2ZVk7CisgICAgbV9tYXRyaXhb
Ml1bM10gPSAoZmxvYXQpIGRlY29tcC5wZXJzcGVjdGl2ZVo7CisgICAgbV9tYXRyaXhbM11bM10g
PSAoZmxvYXQpIGRlY29tcC5wZXJzcGVjdGl2ZVc7CisgICAgCisgICAgLy8gbm93IHRyYW5zbGF0
ZQorICAgIHRyYW5zbGF0ZTNkKChmbG9hdCkgZGVjb21wLnRyYW5zbGF0ZVgsIChmbG9hdCkgZGVj
b21wLnRyYW5zbGF0ZVksIChmbG9hdCkgZGVjb21wLnRyYW5zbGF0ZVopOworICAgIAorICAgIC8v
IGFwcGx5IHJvdGF0aW9uCisgICAgZmxvYXQgeHgsIHh5LCB4eiwgeHcsIHl5LCB5eiwgeXcsIHp6
LCB6dzsKKworICAgIHh4ID0gKGZsb2F0KSAoZGVjb21wLnF1YXRlcm5pb25YICogZGVjb21wLnF1
YXRlcm5pb25YKTsKKyAgICB4eSA9IChmbG9hdCkgKGRlY29tcC5xdWF0ZXJuaW9uWCAqIGRlY29t
cC5xdWF0ZXJuaW9uWSk7CisgICAgeHogPSAoZmxvYXQpIChkZWNvbXAucXVhdGVybmlvblggKiBk
ZWNvbXAucXVhdGVybmlvblopOworICAgIHh3ID0gKGZsb2F0KSAoZGVjb21wLnF1YXRlcm5pb25Y
ICogZGVjb21wLnF1YXRlcm5pb25XKTsKKyAgICB5eSA9IChmbG9hdCkgKGRlY29tcC5xdWF0ZXJu
aW9uWSAqIGRlY29tcC5xdWF0ZXJuaW9uWSk7CisgICAgeXogPSAoZmxvYXQpIChkZWNvbXAucXVh
dGVybmlvblkgKiBkZWNvbXAucXVhdGVybmlvblopOworICAgIHl3ID0gKGZsb2F0KSAoZGVjb21w
LnF1YXRlcm5pb25ZICogZGVjb21wLnF1YXRlcm5pb25XKTsKKyAgICB6eiA9IChmbG9hdCkgKGRl
Y29tcC5xdWF0ZXJuaW9uWiAqIGRlY29tcC5xdWF0ZXJuaW9uWik7CisgICAgencgPSAoZmxvYXQp
IChkZWNvbXAucXVhdGVybmlvblogKiBkZWNvbXAucXVhdGVybmlvblcpOworICAgIAorICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IHUoMSAtIDIgKiAoeXkgKyB6eiksIDIgKiAoeHkgLSB6dyksIDIg
KiAoeHogKyB5dyksIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiAoeHkgKyB6dyks
IDEgLSAyICogKHh4ICsgenopLCAyICogKHl6IC0geHcpLCAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIDIgKiAoeHogLSB5dyksIDIgKiAoeXogKyB4dyksIDEgLSAyICogKHh4ICsgeXkpLCAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDEpOworICAgIAorICAgIG11bHRM
ZWZ0KHUpOworICAgIAorICAgIC8vIG5vdyBhcHBseSBza2V3CisgICAgaWYgKGRlY29tcC5za2V3
WVopIHsKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG1wOworICAgICAgICB0bXAuc2V0
TTMyKChmbG9hdCkgZGVjb21wLnNrZXdZWik7CisgICAgICAgIG11bHRMZWZ0KHRtcCk7CisgICAg
fQorICAgIAorICAgIGlmIChkZWNvbXAuc2tld1haKSB7CisgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IHRtcDsKKyAgICAgICAgdG1wLnNldE0zMSgoZmxvYXQpIGRlY29tcC5za2V3WFopOwor
ICAgICAgICBtdWx0TGVmdCh0bXApOworICAgIH0KKyAgICAKKyAgICBpZiAoZGVjb21wLnNrZXdY
WSkgeworICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0bXA7CisgICAgICAgIHRtcC5zZXRN
MjEoKGZsb2F0KSBkZWNvbXAuc2tld1hZKTsKKyAgICAgICAgbXVsdExlZnQodG1wKTsKKyAgICB9
CisgICAgCisgICAgLy8gZmluYWxseSwgYXBwbHkgc2NhbGUKKyAgICBzY2FsZTNkKChmbG9hdCkg
ZGVjb21wLnNjYWxlWCwgKGZsb2F0KSBkZWNvbXAuc2NhbGVZLCAoZmxvYXQpIGRlY29tcC5zY2Fs
ZVopOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNmb3JtYXRpb25NYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAkocmV2aXNpb24gNDA2OTgp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25N
YXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjEgKzI3LDcgQEAKICNkZWZpbmUgVHJhbnNm
b3JtYXRpb25NYXRyaXhfaAogCiAjaWYgUExBVEZPUk0oQ0cpCi0jaW5jbHVkZSA8Q29yZUdyYXBo
aWNzL0NHQWZmaW5lVHJhbnNmb3JtLmg+Ci10eXBlZGVmIENHQWZmaW5lVHJhbnNmb3JtIFBsYXRm
b3JtVHJhbnNmb3JtYXRpb25NYXRyaXg7Ci0jZWxpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxR
TWF0cml4PgotdHlwZWRlZiBRTWF0cml4IFBsYXRmb3JtVHJhbnNmb3JtYXRpb25NYXRyaXg7Ci0j
ZWxpZiBQTEFURk9STShDQUlSTykKLSNpbmNsdWRlIDxjYWlyby5oPgotdHlwZWRlZiBjYWlyb19t
YXRyaXhfdCBQbGF0Zm9ybVRyYW5zZm9ybWF0aW9uTWF0cml4OwotI2VsaWYgUExBVEZPUk0oU0tJ
QSkKLSNpbmNsdWRlICJTa01hdHJpeC5oIgotdHlwZWRlZiBTa01hdHJpeCBQbGF0Zm9ybVRyYW5z
Zm9ybWF0aW9uTWF0cml4OwotI2VsaWYgUExBVEZPUk0oV1gpICYmIFVTRShXWEdDKQotI2luY2x1
ZGUgPHd4L2RlZnMuaD4KLSNpbmNsdWRlIDx3eC9ncmFwaGljcy5oPgotdHlwZWRlZiB3eEdyYXBo
aWNzTWF0cml4IFBsYXRmb3JtVHJhbnNmb3JtYXRpb25NYXRyaXg7Cit0eXBlZGVmIHN0cnVjdCBD
R0FmZmluZVRyYW5zZm9ybSBDR0FmZmluZVRyYW5zZm9ybTsKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00OSwyNSArMzUsNzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
SW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZsb2F0
UG9pbnQzRDsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZsb2F0UXVhZDsKIAogY2xhc3MgVHJh
bnNmb3JtYXRpb25NYXRyaXggewogcHVibGljOgotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KCk7
Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywg
ZG91YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUgZik7Ci0jaWYgIVBMQVRGT1JNKFdYKSB8fCBVU0Uo
V1hHQykKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBQbGF0Zm9ybVRyYW5zZm9ybWF0
aW9uTWF0cml4Jik7Ci0jZW5kaWYKKyAgICB0eXBlZGVmIGRvdWJsZSBNYXRyaXg0WzRdWzRdOwog
Ci0gICAgdm9pZCBzZXRNYXRyaXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91Ymxl
IGQsIGRvdWJsZSBlLCBkb3VibGUgZik7Ci0gICAgdm9pZCBtYXAoZG91YmxlIHgsIGRvdWJsZSB5
LCBkb3VibGUgKngyLCBkb3VibGUgKnkyKSBjb25zdDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgpIHsgbWFrZUlkZW50aXR5KCk7IH0KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgeyAqdGhpcyA9IHQ7IH0KKyAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUgZCwgZG91YmxlIGUs
IGRvdWJsZSBmKSB7IHNldE1hdHJpeChhLCBiLCBjLCBkLCBlLCBmKTsgfQorICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4KGRvdWJsZSBtMTEsIGRvdWJsZSBtMTIsIGRvdWJsZSBtMTMsIGRvdWJsZSBt
MTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG0yMSwgZG91YmxlIG0yMiwgZG91
YmxlIG0yMywgZG91YmxlIG0yNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTMx
LCBkb3VibGUgbTMyLCBkb3VibGUgbTMzLCBkb3VibGUgbTM0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGRvdWJsZSBtNDEsIGRvdWJsZSBtNDIsIGRvdWJsZSBtNDMsIGRvdWJsZSBtNDQpCisg
ICAgeworICAgICAgICBzZXRNYXRyaXgobTExLCBtMTIsIG0xMywgbTE0LCBtMjEsIG0yMiwgbTIz
LCBtMjQsIG0zMSwgbTMyLCBtMzMsIG0zNCwgbTQxLCBtNDIsIG00MywgbTQ0KTsKKyAgICB9CisK
KyAgICB2b2lkIHNldE1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUg
ZCwgZG91YmxlIGUsIGRvdWJsZSBmKQorICAgIHsKKyAgICAgICAgbV9tYXRyaXhbMF1bMF0gPSBh
OyBtX21hdHJpeFswXVsxXSA9IGI7IG1fbWF0cml4WzBdWzJdID0gMDsgbV9tYXRyaXhbMF1bM10g
PSAwOyAKKyAgICAgICAgbV9tYXRyaXhbMV1bMF0gPSBjOyBtX21hdHJpeFsxXVsxXSA9IGQ7IG1f
bWF0cml4WzFdWzJdID0gMDsgbV9tYXRyaXhbMV1bM10gPSAwOyAKKyAgICAgICAgbV9tYXRyaXhb
Ml1bMF0gPSAwOyBtX21hdHJpeFsyXVsxXSA9IDA7IG1fbWF0cml4WzJdWzJdID0gMTsgbV9tYXRy
aXhbMl1bM10gPSAwOyAKKyAgICAgICAgbV9tYXRyaXhbM11bMF0gPSBlOyBtX21hdHJpeFszXVsx
XSA9IGY7IG1fbWF0cml4WzNdWzJdID0gMDsgbV9tYXRyaXhbM11bM10gPSAxOworICAgIH0KKyAg
ICAKKyAgICB2b2lkIHNldE1hdHJpeChkb3VibGUgbTExLCBkb3VibGUgbTEyLCBkb3VibGUgbTEz
LCBkb3VibGUgbTE0LAorICAgICAgICAgICAgICAgICAgIGRvdWJsZSBtMjEsIGRvdWJsZSBtMjIs
IGRvdWJsZSBtMjMsIGRvdWJsZSBtMjQsCisgICAgICAgICAgICAgICAgICAgZG91YmxlIG0zMSwg
ZG91YmxlIG0zMiwgZG91YmxlIG0zMywgZG91YmxlIG0zNCwKKyAgICAgICAgICAgICAgICAgICBk
b3VibGUgbTQxLCBkb3VibGUgbTQyLCBkb3VibGUgbTQzLCBkb3VibGUgbTQ0KQorICAgIHsKKyAg
ICAgICAgbV9tYXRyaXhbMF1bMF0gPSBtMTE7IG1fbWF0cml4WzBdWzFdID0gbTEyOyBtX21hdHJp
eFswXVsyXSA9IG0xMzsgbV9tYXRyaXhbMF1bM10gPSBtMTQ7IAorICAgICAgICBtX21hdHJpeFsx
XVswXSA9IG0yMTsgbV9tYXRyaXhbMV1bMV0gPSBtMjI7IG1fbWF0cml4WzFdWzJdID0gbTIzOyBt
X21hdHJpeFsxXVszXSA9IG0yNDsgCisgICAgICAgIG1fbWF0cml4WzJdWzBdID0gbTMxOyBtX21h
dHJpeFsyXVsxXSA9IG0zMjsgbV9tYXRyaXhbMl1bMl0gPSBtMzM7IG1fbWF0cml4WzJdWzNdID0g
bTM0OyAKKyAgICAgICAgbV9tYXRyaXhbM11bMF0gPSBtNDE7IG1fbWF0cml4WzNdWzFdID0gbTQy
OyBtX21hdHJpeFszXVsyXSA9IG00MzsgbV9tYXRyaXhbM11bM10gPSBtNDQ7CisgICAgfQorICAg
IAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvcGVyYXRvciA9KGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4ICZ0KQorICAgIHsKKyAgICAgICAgc2V0TWF0cml4KHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgZG91YmxlKj4odC5tX21hdHJpeCkpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
fQorCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1ha2VJZGVudGl0eSgpCisgICAgeworICAg
ICAgICBzZXRNYXRyaXgoMSwgMCwgMCwgMCwgIDAsIDEsIDAsIDAsICAwLCAwLCAxLCAwLCAgMCwg
MCwgMCwgMSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBib29sIGlzSWRl
bnRpdHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWF0cml4WzBdWzBdID09IDEg
JiYgbV9tYXRyaXhbMF1bMV0gPT0gMCAmJiBtX21hdHJpeFswXVsyXSA9PSAwICYmIG1fbWF0cml4
WzBdWzNdID09IDAgJiYKKyAgICAgICAgICAgICAgIG1fbWF0cml4WzFdWzBdID09IDAgJiYgbV9t
YXRyaXhbMV1bMV0gPT0gMSAmJiBtX21hdHJpeFsxXVsyXSA9PSAwICYmIG1fbWF0cml4WzFdWzNd
ID09IDAgJiYKKyAgICAgICAgICAgICAgIG1fbWF0cml4WzJdWzBdID09IDAgJiYgbV9tYXRyaXhb
Ml1bMV0gPT0gMCAmJiBtX21hdHJpeFsyXVsyXSA9PSAxICYmIG1fbWF0cml4WzJdWzNdID09IDAg
JiYKKyAgICAgICAgICAgICAgIG1fbWF0cml4WzNdWzBdID09IDAgJiYgbV9tYXRyaXhbM11bMV0g
PT0gMCAmJiBtX21hdHJpeFszXVsyXSA9PSAwICYmIG1fbWF0cml4WzNdWzNdID09IDE7CisgICAg
fQogCi0gICAgLy8gUm91bmRzIHRoZSBtYXBwZWQgcG9pbnQgdG8gdGhlIG5lYXJlc3QgaW50ZWdl
ciB2YWx1ZS4KLSAgICBJbnRQb2ludCBtYXBQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0Owor
ICAgIC8vIFRoaXMgZm9ybSBwcmVzZXJ2ZXMgdGhlIGRvdWJsZSBtYXRoIGZyb20gaW5wdXQgdG8g
b3V0cHV0CisgICAgdm9pZCBtYXAoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgKngyLCBkb3Vi
bGUgKnkyKSBjb25zdCB7IG11bHRWZWNNYXRyaXgoeCwgeSwgKngyLCAqeTIpOyB9CisKKyAgICAv
LyBNYXAgYSAzRCBwb2ludCB0aHJvdWdoIHRoZSB0cmFuc2Zvcm0sIHJldHVybmluZyBhIDNEIHBv
aW50LgorICAgIEZsb2F0UG9pbnQzRCBtYXBQb2ludChjb25zdCBGbG9hdFBvaW50M0QmKSBjb25z
dDsKIAorICAgIC8vIE1hcCBhIDJEIHBvaW50IHRocm91Z2ggdGhlIHRyYW5zZm9ybSwgcmV0dXJu
aW5nIGEgMkQgcG9pbnQuCisgICAgLy8gTm90ZSB0aGF0IHRoaXMgaWdub3JlcyB0aGUgeiBjb21w
b25lbnQuCiAgICAgRmxvYXRQb2ludCBtYXBQb2ludChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7
CiAKKyAgICAvLyBMaWtlIHRoZSB2ZXJzaW9uIGFib3ZlLCBleGNlcHQgdGhhdCBpdCByb3VuZHMg
dGhlIG1hcHBlZCBwb2ludCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHZhbHVlLgorICAgIEludFBv
aW50IG1hcFBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisKICAgICAvLyBSb3VuZHMgdGhl
IHJlc3VsdGluZyBtYXBwZWQgcmVjdGFuZ2xlIG91dC4gVGhpcyBpcyBoZWxwZnVsIGZvciBib3Vu
ZGluZwogICAgIC8vIGJveCBjb21wdXRhdGlvbnMgYnV0IG1heSBub3QgYmUgd2hhdCBpcyB3YW50
ZWQgaW4gb3RoZXIgY29udGV4dHMuCiAgICAgSW50UmVjdCBtYXBSZWN0KGNvbnN0IEludFJlY3Qm
KSBjb25zdDsKQEAgLTc2LDY0ICsxMTQsMTc2IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UXVhZCBt
YXBRdWFkKGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwogCi0gICAgYm9vbCBpc0lkZW50aXR5KCkg
Y29uc3Q7Ci0KLSAgICBkb3VibGUgYSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QShkb3VibGUgYSk7
Ci0KLSAgICBkb3VibGUgYigpIGNvbnN0OwotICAgIHZvaWQgc2V0Qihkb3VibGUgYik7Ci0KLSAg
ICBkb3VibGUgYygpIGNvbnN0OwotICAgIHZvaWQgc2V0Qyhkb3VibGUgYyk7Ci0KLSAgICBkb3Vi
bGUgZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0RChkb3VibGUgZCk7Ci0KLSAgICBkb3VibGUgZSgp
IGNvbnN0OwotICAgIHZvaWQgc2V0RShkb3VibGUgZSk7Ci0KLSAgICBkb3VibGUgZigpIGNvbnN0
OwotICAgIHZvaWQgc2V0Rihkb3VibGUgZik7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbXVsdGlwbHkoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
KTsKKyAgICAvLyBNYXAgYSBwb2ludCBvbiB0aGUgej0wIHBsYW5lIGludG8gYSBwb2ludCBvbgor
ICAgIC8vIHRoZSBwbGFuZSB3aXRoIHdpdGggdGhlIHRyYW5zZm9ybSBhcHBsaWVkLCBieSBleHRl
bmRpbmcKKyAgICAvLyBhIHJheSBwZXJwZW5kaWN1bGFyIHRvIHRoZSBzb3VyY2UgcGxhbmUgYW5k
IGNvbXB1dGluZworICAgIC8vIHRoZSBsb2NhbCB4LHkgcG9zaXRpb24gb2YgdGhlIHBvaW50IHdo
ZXJlIHRoYXQgcmF5IGludGVyc2VjdHMKKyAgICAvLyB3aXRoIHRoZSBkZXN0aW5hdGlvbiBwbGFu
ZS4KKyAgICBGbG9hdFBvaW50IHByb2plY3RQb2ludChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7
CisKKyAgICBkb3VibGUgbTExKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMF1bMF07IH0KKyAg
ICB2b2lkIHNldE0xMShkb3VibGUgZikgeyBtX21hdHJpeFswXVswXSA9IGY7IH0KKyAgICBkb3Vi
bGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMF1bMV07IH0KKyAgICB2b2lkIHNldE0x
Mihkb3VibGUgZikgeyBtX21hdHJpeFswXVsxXSA9IGY7IH0KKyAgICBkb3VibGUgbTEzKCkgY29u
c3QgeyByZXR1cm4gbV9tYXRyaXhbMF1bMl07IH0KKyAgICB2b2lkIHNldE0xMyhkb3VibGUgZikg
eyBtX21hdHJpeFswXVsyXSA9IGY7IH0KKyAgICBkb3VibGUgbTE0KCkgY29uc3QgeyByZXR1cm4g
bV9tYXRyaXhbMF1bM107IH0KKyAgICB2b2lkIHNldE0xNChkb3VibGUgZikgeyBtX21hdHJpeFsw
XVszXSA9IGY7IH0KKyAgICBkb3VibGUgbTIxKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMV1b
MF07IH0KKyAgICB2b2lkIHNldE0yMShkb3VibGUgZikgeyBtX21hdHJpeFsxXVswXSA9IGY7IH0K
KyAgICBkb3VibGUgbTIyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMV1bMV07IH0KKyAgICB2
b2lkIHNldE0yMihkb3VibGUgZikgeyBtX21hdHJpeFsxXVsxXSA9IGY7IH0KKyAgICBkb3VibGUg
bTIzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMV1bMl07IH0KKyAgICB2b2lkIHNldE0yMyhk
b3VibGUgZikgeyBtX21hdHJpeFsxXVsyXSA9IGY7IH0KKyAgICBkb3VibGUgbTI0KCkgY29uc3Qg
eyByZXR1cm4gbV9tYXRyaXhbMV1bM107IH0KKyAgICB2b2lkIHNldE0yNChkb3VibGUgZikgeyBt
X21hdHJpeFsxXVszXSA9IGY7IH0KKyAgICBkb3VibGUgbTMxKCkgY29uc3QgeyByZXR1cm4gbV9t
YXRyaXhbMl1bMF07IH0KKyAgICB2b2lkIHNldE0zMShkb3VibGUgZikgeyBtX21hdHJpeFsyXVsw
XSA9IGY7IH0KKyAgICBkb3VibGUgbTMyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMl1bMV07
IH0KKyAgICB2b2lkIHNldE0zMihkb3VibGUgZikgeyBtX21hdHJpeFsyXVsxXSA9IGY7IH0KKyAg
ICBkb3VibGUgbTMzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMl1bMl07IH0KKyAgICB2b2lk
IHNldE0zMyhkb3VibGUgZikgeyBtX21hdHJpeFsyXVsyXSA9IGY7IH0KKyAgICBkb3VibGUgbTM0
KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMl1bM107IH0KKyAgICB2b2lkIHNldE0zNChkb3Vi
bGUgZikgeyBtX21hdHJpeFsyXVszXSA9IGY7IH0KKyAgICBkb3VibGUgbTQxKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXRyaXhbM11bMF07IH0KKyAgICB2b2lkIHNldE00MShkb3VibGUgZikgeyBtX21h
dHJpeFszXVswXSA9IGY7IH0KKyAgICBkb3VibGUgbTQyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRy
aXhbM11bMV07IH0KKyAgICB2b2lkIHNldE00Mihkb3VibGUgZikgeyBtX21hdHJpeFszXVsxXSA9
IGY7IH0KKyAgICBkb3VibGUgbTQzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbM11bMl07IH0K
KyAgICB2b2lkIHNldE00Myhkb3VibGUgZikgeyBtX21hdHJpeFszXVsyXSA9IGY7IH0KKyAgICBk
b3VibGUgbTQ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbM11bM107IH0KKyAgICB2b2lkIHNl
dE00NChkb3VibGUgZikgeyBtX21hdHJpeFszXVszXSA9IGY7IH0KKyAgICAKKyAgICBkb3VibGUg
YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzBdWzBdOyB9CisgICAgdm9pZCBzZXRBKGRvdWJs
ZSBhKSB7IG1fbWF0cml4WzBdWzBdID0gYTsgfQorCisgICAgZG91YmxlIGIoKSBjb25zdCB7IHJl
dHVybiBtX21hdHJpeFswXVsxXTsgfQorICAgIHZvaWQgc2V0Qihkb3VibGUgYikgeyBtX21hdHJp
eFswXVsxXSA9IGI7IH0KKworICAgIGRvdWJsZSBjKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhb
MV1bMF07IH0KKyAgICB2b2lkIHNldEMoZG91YmxlIGMpIHsgbV9tYXRyaXhbMV1bMF0gPSBjOyB9
CisKKyAgICBkb3VibGUgZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzFdWzFdOyB9CisgICAg
dm9pZCBzZXREKGRvdWJsZSBkKSB7IG1fbWF0cml4WzFdWzFdID0gZDsgfQorCisgICAgZG91Ymxl
IGUoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFszXVswXTsgfQorICAgIHZvaWQgc2V0RShkb3Vi
bGUgZSkgeyBtX21hdHJpeFszXVswXSA9IGU7IH0KKworICAgIGRvdWJsZSBmKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXRyaXhbM11bMV07IH0KKyAgICB2b2lkIHNldEYoZG91YmxlIGYpIHsgbV9tYXRy
aXhbM11bMV0gPSBmOyB9CisKKyAgICB2b2lkIHJlc2V0KCkgeyBtYWtlSWRlbnRpdHkoKTsgfQor
CisgICAgLy8gdGhpcyA9IHRoaXMgKiBtYXQKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbXVs
dGlwbHkoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgcmV0dXJuICp0aGlzICo9IHQ7
IH0KKworICAgIC8vIHRoaXMgPSBtYXQgKiB0aGlzCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IG11bHRMZWZ0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXQpOworICAgIAogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBzY2FsZShkb3VibGUpOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBzY2FsZShkb3VibGUgc3gsIGRvdWJsZSBzeSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHNjYWxlM2QoZG91YmxlIHN4LCBkb3VibGUgc3ksIGRvdWJsZSBzeik7CiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHNjYWxlTm9uVW5pZm9ybShkb3VibGUgc3gsIGRvdWJsZSBzeSk7Ci0g
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHJvdGF0ZShkb3VibGUgZCk7CisgICAgCisgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHJvdGF0ZShkb3VibGUgZCkgeyByZXR1cm4gcm90YXRlM2QoMCwg
MCwgZCk7IH0KICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcm90YXRlRnJvbVZlY3Rvcihkb3Vi
bGUgeCwgZG91YmxlIHkpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiByb3RhdGUzZChkb3Vi
bGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUgYW5nbGUpOworICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4JiByb3RhdGUzZChkb3VibGUgcngsIGRvdWJsZSByeSwgZG91YmxlIHJ6KTsKKyAg
ICAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91Ymxl
IHR5KTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2hlYXIoZG91YmxlIHN4LCBkb3VibGUg
c3kpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2xhdGUzZChkb3VibGUgdHgsIGRv
dWJsZSB0eSwgZG91YmxlIHR6KTsKKyAgICAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZmxp
cFgoKTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZmxpcFkoKTsKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgc2tldyhkb3VibGUgYW5nbGVYLCBkb3VibGUgYW5nbGVZKTsKLSAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgc2tld1goZG91YmxlIGFuZ2xlKTsKLSAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgc2tld1koZG91YmxlIGFuZ2xlKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
c2tld1goZG91YmxlIGFuZ2xlKSB7IHJldHVybiBza2V3KGFuZ2xlLCAwKTsgfQorICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBza2V3WShkb3VibGUgYW5nbGUpIHsgcmV0dXJuIHNrZXcoMCwgYW5n
bGUpOyB9CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgYXBwbHlQZXJzcGVjdGl2ZShkb3Vi
bGUgcCk7CisgICAgYm9vbCBoYXNQZXJzcGVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4
WzJdWzNdICE9IDAuMGY7IH0KIAotICAgIGRvdWJsZSBkZXQoKSBjb25zdDsKICAgICBib29sIGlz
SW52ZXJ0aWJsZSgpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGludmVyc2UoKSBj
b25zdDsKIAorICAgIC8vIGRlY29tcG9zZSB0aGUgbWF0cml4IGludG8gaXRzIGNvbXBvbmVudCBw
YXJ0cworICAgIHR5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgZG91YmxlIHNjYWxlWCwgc2NhbGVZ
LCBzY2FsZVo7CisgICAgICAgIGRvdWJsZSBza2V3WFksIHNrZXdYWiwgc2tld1laOworICAgICAg
ICBkb3VibGUgcXVhdGVybmlvblgsIHF1YXRlcm5pb25ZLCBxdWF0ZXJuaW9uWiwgcXVhdGVybmlv
blc7CisgICAgICAgIGRvdWJsZSB0cmFuc2xhdGVYLCB0cmFuc2xhdGVZLCB0cmFuc2xhdGVaOwor
ICAgICAgICBkb3VibGUgcGVyc3BlY3RpdmVYLCBwZXJzcGVjdGl2ZVksIHBlcnNwZWN0aXZlWiwg
cGVyc3BlY3RpdmVXOworICAgIH0gRGVjb21wb3NlZFR5cGU7CisgICAgCisgICAgYm9vbCBkZWNv
bXBvc2UoRGVjb21wb3NlZFR5cGUmIGRlY29tcCkgY29uc3Q7CisgICAgdm9pZCByZWNvbXBvc2Uo
Y29uc3QgRGVjb21wb3NlZFR5cGUmIGRlY29tcCk7CisgICAgCiAgICAgdm9pZCBibGVuZChjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZnJvbSwgZG91YmxlIHByb2dyZXNzKTsKIAotI2lmICFQ
TEFURk9STShXWCkgfHwgVVNFKFdYR0MpCi0gICAgb3BlcmF0b3IgUGxhdGZvcm1UcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpIGNvbnN0OwotI2VuZGlmCisgICAgYm9vbCBpc0FmZmluZSgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gKG0xMygpID09IDAgJiYgbTE0KCkgPT0gMCAmJiBtMjMoKSA9
PSAwICYmIG0yNCgpID09IDAgJiYgCisgICAgICAgICAgICAgICAgbTMxKCkgPT0gMCAmJiBtMzIo
KSA9PSAwICYmIG0zMygpID09IDEgJiYgbTM0KCkgPT0gMCAmJiBtNDMoKSA9PSAwICYmIG00NCgp
ID09IDEpOworICAgIH0KKworICAgIC8vIHJldHVybiBhbiBhZmZpbmUgdHJhbnNmb3JtIChsb3Nz
eSEpCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWZmaW5lVHJhbnNmb3JtKCkgY29uc3Q7CisK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG0yKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX21hdHJpeFswXVswXSA9PSBtMi5tX21hdHJpeFsw
XVswXSAmJgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzBdWzFdID09IG0yLm1fbWF0cml4WzBd
WzFdICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMF1bMl0gPT0gbTIubV9tYXRyaXhbMF1b
Ml0gJiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFswXVszXSA9PSBtMi5tX21hdHJpeFswXVsz
XSAmJgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzFdWzBdID09IG0yLm1fbWF0cml4WzFdWzBd
ICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMV1bMV0gPT0gbTIubV9tYXRyaXhbMV1bMV0g
JiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFsxXVsyXSA9PSBtMi5tX21hdHJpeFsxXVsyXSAm
JgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzFdWzNdID09IG0yLm1fbWF0cml4WzFdWzNdICYm
CisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMl1bMF0gPT0gbTIubV9tYXRyaXhbMl1bMF0gJiYK
KyAgICAgICAgICAgICAgICBtX21hdHJpeFsyXVsxXSA9PSBtMi5tX21hdHJpeFsyXVsxXSAmJgor
ICAgICAgICAgICAgICAgIG1fbWF0cml4WzJdWzJdID09IG0yLm1fbWF0cml4WzJdWzJdICYmCisg
ICAgICAgICAgICAgICAgbV9tYXRyaXhbMl1bM10gPT0gbTIubV9tYXRyaXhbMl1bM10gJiYKKyAg
ICAgICAgICAgICAgICBtX21hdHJpeFszXVswXSA9PSBtMi5tX21hdHJpeFszXVswXSAmJgorICAg
ICAgICAgICAgICAgIG1fbWF0cml4WzNdWzFdID09IG0yLm1fbWF0cml4WzNdWzFdICYmCisgICAg
ICAgICAgICAgICAgbV9tYXRyaXhbM11bMl0gPT0gbTIubV9tYXRyaXhbM11bMl0gJiYKKyAgICAg
ICAgICAgICAgICBtX21hdHJpeFszXVszXSA9PSBtMi5tX21hdHJpeFszXVszXSk7CisgICAgfQog
Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3Q7
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KLSAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgb3BlcmF0b3IqPShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG9wZXJhdG9yKihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwor
ICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvcGVyYXRvcio9KGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAqIHQ7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
b3BlcmF0b3IqKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQorICAgIHsKKyAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggcmVzdWx0ID0gdDsKKyAgICAgICAgcmVzdWx0Lm11bHRMZWZ0
KCp0aGlzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKLXByaXZhdGU6Ci0jaWYg
IVBMQVRGT1JNKFdYKSB8fCBVU0UoV1hHQykKLSAgICBQbGF0Zm9ybVRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fdHJhbnNmb3JtOworI2lmIFBMQVRGT1JNKENHKQorICAgIG9wZXJhdG9yIENHQWZmaW5l
VHJhbnNmb3JtKCkgY29uc3Q7CiAjZW5kaWYKLX07CiAKLVRyYW5zZm9ybWF0aW9uTWF0cml4IG1h
a2VNYXBCZXR3ZWVuUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdCk7Citwcml2YXRlOgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1ha2VNYXBCZXR3
ZWVuUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCk7
CisKKyAgICAvLyBtdWx0aXBseSBwYXNzZWQgMkQgcG9pbnQgYnkgbWF0cml4IChhc3N1bWUgej0w
KQorICAgIHZvaWQgbXVsdFZlY01hdHJpeChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSYgZHN0
WCwgZG91YmxlJiBkc3RZKSBjb25zdDsKKyAgICAKKyAgICAvLyBtdWx0aXBseSBwYXNzZWQgM0Qg
cG9pbnQgYnkgbWF0cml4CisgICAgdm9pZCBtdWx0VmVjTWF0cml4KGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHosIGRvdWJsZSYgZHN0WCwgZG91YmxlJiBkc3RZLCBkb3VibGUmIGRzdFopIGNv
bnN0OworICAgIAorICAgIHZvaWQgc2V0TWF0cml4KGNvbnN0IGRvdWJsZSogbSkKKyAgICB7Cisg
ICAgICAgIGlmIChtICYmIG0gIT0gcmVpbnRlcnByZXRfY2FzdDxkb3VibGUqPihtX21hdHJpeCkp
CisgICAgICAgICAgICBtZW1jcHkobV9tYXRyaXgsIG0sIDE2ICogc2l6ZW9mKGRvdWJsZSkpOwor
ICAgIH0KKyAgICAKKyAgICBNYXRyaXg0IG1fbWF0cml4OworfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MDcxOCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDA5LTAyLTA2ICBDaHJpcyBN
YXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njg2OAorCisgICAgICAgIFRoZXNlIHRlc3RzIHN0YXJ0ZWQgZmFpbGluZyB3aGVuIEkgY2hh
bmdlZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeAorICAgICAgICB0byBiZSBwbGF0Zm9ybSBpbmRlcGVu
ZGVudC4gVGhpcyBpcyBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzCisgICAgICAgIGluIHJvdW5k
aW5nIGJlY2F1c2UgSSBhbSBub3cgdXNpbmcgZG91YmxlcyByYXRoZXIgdGhhbiBmbG9hdHMKKyAg
ICAgICAgdG8gZG8gdGhlIG1hdHJpeCBvcGVyYXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tMzAtdC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tMzYtdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRl
LWVsZW0tODAtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0Mt
U1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODItdC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDEtYi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29y
ZHMtdHJhbnMtMDItdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdmlld2F0dHItMDEtYi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAx
LXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEv
Zm9udHMtZWxlbS0wMi10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDMtYi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTA0LWItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wNy1iLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50
aW5nLW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1mLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDUtdC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA2
LXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEv
cGF0aHMtZGF0YS0wNy10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDktdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTE1LXQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0wOS1i
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3Bz
ZXJ2ZXJzLWdyYWQtMTItYi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTE3LWItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWZyYWctMDItdC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9zdHJ1Y3QtZnJhZy0w
My10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4x
L3N0cnVjdC1ncm91cC0wMy10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
c3ZnL2JhdGlrL3RleHQvdGV4dEdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dFByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0
aWNhbFRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvYmF0aWsv
dGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvY2FydG8ubmV0L3NsaWRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy9jYXJ0by5uZXQvdGFiZ3JvdXAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL2dseXBoLXNlbGVjdGlvbi1sYW5nLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vaW52YWxpZC1jc3Mt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2pzLWxhdGUt
bWFya2VyLWFuZC1vYmplY3QtY3JlYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL2pzLWxhdGUtbWFya2VyLWNyZWF0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9wcmVzZXJ2ZS1hc3BlY3QtcmF0aW8t
c3ludGF4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9z
aGFwZXMtc3VwcG9ydGluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvc3ZnL2N1c3RvbS91c2UtY3NzLW5vLWVmZmVjdC1vbi1zaGFkb3ctdHJlZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdmlld2JveC1zeW50YXgt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDct
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LWFsaWdu
LTAxLWItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0
LWFsaWduLTA1LWItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4
dC90ZXh0LWZvbnRzLTAxLXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9z
dmcvdGV4dC90ZXh0LXRleHQtMDQtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNS10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA2LXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRyZWYtMDEtYi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3ZnOgorCiAyMDA5LTAyLTA1
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzND
LVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMwLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMwLXQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMwLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC05LDcgKzksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAg
IFJlbmRlclBhdGgge3BvbHlsaW5lfSBhdCAoMjExLjY2LDIxNi40Nikgc2l6ZSA0OS44N3g1OS45
OSBbdHJhbnNmb3JtPXttPSgoMC45NywwLjI2KSgtMC4yNiwwLjk3KSkgdD0oMC4wMCwwLjAwKX1d
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF0gW3N0cm9rZSB3aWR0aD05LjAw
XX1dIFtkYXRhPSJNMjAwLjAwLDEyMC4wMCBMMjAwLjAwLDE0MC4wMCBMMjIwLjAwLDE0MC4wMCBM
MjIwLjAwLDE2MC4wMCJdCiAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNDQuMjYsMTIuMTMp
IHNpemUgMjkuNDl4NTMuNzQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XSBb
c3Ryb2tlIHdpZHRoPTMuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTTQwLjAwLDUwLjAwIEwyMC4wMCwxMC4wMCJdCiAgICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoMTIzLjEzLDExLjI2KSBzaXplIDEwNS43NHg1NS40OSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNCNEI0QjRdIFtzdHJva2Ugd2lkdGg9My4wMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTYwLjAwLDUwLjAwIEw4MC4wMCwxMC4w
MCJdCi0gICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTksMzguMzUpIHNpemUgMTE3LjAweDEu
MzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMC4wMCwzMC4wMCBMMTIwLjAwLDMwLjAw
Il0KKyAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1OSwzOC4zNSkgc2l6ZSAxMTd4MS4zMCBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTMwLjAwLDMwLjAwIEwxMjAuMDAsMzAuMDAiXQog
ICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE2MywzNS4xMCkgc2l6ZSAxM3g3LjgwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdfV0gW2RhdGE9Ik0xMjAuMDAsMzAuMDAgTDEx
MC4wMCwzMy4wMCBMMTEwLjAwLDI3LjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQg
KDExMSw5MC4zNSkgc2l6ZSA5Ny41MHgxLjMwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0I0QjRCNF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
NzAuMDAsNzAuMDAgTDE0NS4wMCw3MC4wMCJdCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MzEuNzAsNzYuNzApIHNpemUgODAuNjB4MjguNjAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jQjRCNEI0XSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0I0QjRCNF19XSBbZGF0YT0iTTEwLjAwLDYwLjAwIEw3MC4wMCw2MC4wMCBMNzAuMDAsODAu
MDAgTDEwLjAwLDgwLjAwIFoiXQpAQCAtMjEsMTIgKzIxLDEyIEBAIGxheWVyIGF0ICgwLDApIHNp
emUgNDgweDM2MAogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDEyNS4zMCwyMjQuOTApIHNp
emUgMTEuNzB4MTUuNjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0
YT0iTTkwLjAwLDE4NS4wMCBMODcuMDAsMTczLjAwIEw4MS4wMCwxNzguMDAgWiJdCiAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDA4LjcwLDExLjcwKSBzaXplIDI4LjYweDI4LjYwIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdfV0gW2RhdGE9Ik0zMDAuMDAsMTAuMDAg
TDMyMC4wMCwxMC4wMCBMMzIwLjAwLDMwLjAwIEwzMDAuMDAsMzAuMDAgWiJdCiAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoNDA4LjcwLDIxOS43MCkgc2l6ZSAyOC42MHg1NC42MCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtkYXRhPSJNMzAwLjAwLDE3MC4wMCBM
MzIwLjAwLDE3MC4wMCBMMzIwLjAwLDIxMC4wMCBMMzAwLjAwLDIxMC4wMCBaIl0KLSAgICAgIFJl
bmRlclBhdGgge2xpbmV9IGF0ICg0MjIuMzUsMzkpIHNpemUgMS4zMHgxODIgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0zMTAuMDAsMzAuMDAgTDMxMC4wMCwxNzAuMDAiXQotICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDQxOS4xMCwyMDgpIHNpemUgNy44MHgxMyBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtkYXRhPSJNMzEwLjAwLDE3MC4wMCBMMzA3LjAwLDE2
MC4wMCBMMzEzLjAwLDE2MC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg0MjIu
MzUsMzkpIHNpemUgMS4zMHgxODIuMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRC
NEI0XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMTAu
MDAsMzAuMDAgTDMxMC4wMCwxNzAuMDAiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDQx
OS4xMCwyMDgpIHNpemUgNy44MHgxMy4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRC
NEI0XX1dIFtkYXRhPSJNMzEwLjAwLDE3MC4wMCBMMzA3LjAwLDE2MC4wMCBMMzEzLjAwLDE2MC4w
MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzMTksOS43NSkgc2l6ZSA1Mng5Ljc1
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdfV0gW2RhdGE9Ik0yMzAuMDAsNy41
MCBMMjcwLjAwLDcuNTAgTDI3MC4wMCwxNS4wMCBMMjMwLjAwLDE1LjAwIFoiXQogICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDMxOSwyMjEuMDApIHNpemUgNTJ4MzkgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTIzMC4wMCwxNzAuMDAgTDI3MC4wMCwxNzAu
MDAgTDI3MC4wMCwyMDAuMDAgTDIzMC4wMCwyMDAuMDAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoMzQ0LjM1LDEzKSBzaXplIDEuMzB4MjA4IFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0I0QjRCNF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtk
YXRhPSJNMjUwLjAwLDEwLjAwIEwyNTAuMDAsMTcwLjAwIl0KLSAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgzNDEuMTAsMjA4KSBzaXplIDcuODB4MTMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0I0QjRCNF19XSBbZGF0YT0iTTI1MC4wMCwxNzAuMDAgTDI0Ny4wMCwxNjAuMDAgTDI1My4w
MCwxNjAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMzQ0LjM1LDEzKSBzaXpl
IDEuMzB4MjA4LjAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMjUwLjAwLDEwLjAwIEwy
NTAuMDAsMTcwLjAwIl0KKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzNDEuMTAsMjA4KSBz
aXplIDcuODB4MTMuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0
YT0iTTI1MC4wMCwxNzAuMDAgTDI0Ny4wMCwxNjAuMDAgTDI1My4wMCwxNjAuMDAgWiJdCiAgICAg
ICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg4LjY2LDkuMzMpIHNpemUgMjIuNjh4NDEuMzQgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMTA1RDhDXSBbc3Ryb2tlIHdpZHRoPTMuMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTMwLjAwLDUwLjAw
IEwxMC4wMCwxMC4wMCJdCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0
ICgwLDApIHNpemUgMHgwCkBAIC01NCw4ICs1NCw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgw
eDM2MAogICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0MDguNzAsMTEuNzApIHNp
emUgMjguNjB4MjguNjAKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDA4Ljcw
LDExLjcwKSBzaXplIDI4LjYweDI4LjYwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDYwLjAwLC0xMC4wMCl9XQogICAgICAgICAgIFJlbmRlclBhdGgge3BvbHlnb259
IGF0ICg0MDguNzAsMTEuNzApIHNpemUgMjguNjB4MjguNjAgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTI0MC4wMCwyMC4wMCBMMjQwLjAwLDQwLjAwIEwy
NjAuMDAsNDAuMDAgTDI2MC4wMCwyMC4wMCBaIl0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
dXNlfSBhdCAoMzE5LDEuNjIpIHNpemUgNTJ4MjYgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwwLjI1KSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDMxOSwxLjYyKSBzaXplIDUyeDI2CisgICAgICBSZW5kZXJTVkdDb250YWluZXIge3Vz
ZX0gYXQgKDMxOSwxLjYyKSBzaXplIDUyeDI2LjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMC4yNSkpIHQ9KDAuMDAsMC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgzMTksMS42Mikgc2l6ZSA1MngyNi4wMAogICAgICAgICAgIFJlbmRlckltYWdlIHtp
bWFnZX0gYXQgKDAsMCkgc2l6ZSA0MHg4MAogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgx
MCwzNDApIHNpemUgMjY0eDQ2IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS0zNi10LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkct
MS4xL2FuaW1hdGUtZWxlbS0zNi10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS0zNi10
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsOSArMTYsOSBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDQ4MHgzNjAKICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5LjUw
LDU5LjUwKSBzaXplIDYxeDk0LjUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDYwLjAwLDkwLjAwKX1dCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDI5LjUwLDU5LjUwKSBzaXplIDYxeDYxCiAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDU5LjUwLDU5LjUwKSBzaXplIDMxeDMxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
QjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4w
MCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCww
LjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDU5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4w
MCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAs
MC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgyOS41MCw4OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTEuMDAsLTAuMDApKDAu
MDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAw
LDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMjkuNTAsNTkuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKDAuMDAsLTEuMDApKDEu
MDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAs
MC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICg1OS41MCw4OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4w
MCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
QjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4w
MCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCww
LjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDI5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMS4wMCwwLjAwKSgtMC4w
MCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAs
MC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgyOS41MCw1OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEu
MDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAw
LDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoNDQuNTAsNzQuNTApIHNpemUgMzF4MzEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0t
MTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJd
CiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtMTMsNjApIHNpemUgMjZ4MTggY29u
dGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBh
dCAoMCwtMTQpIHNpemUgMjZ4MTgKQEAgLTI5LDMzICsyOSwzMyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDQ4MHgzNjAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE0Ny44
MCw2Ny44MCkgc2l6ZSAyNC40MHgyNC40MAogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgxNDcuODAsNjcuODApIHNpemUgMjQuNDB4MjQuNDAKICAgICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTU5LjgwLDY3LjgwKSBzaXplIDEyLjQweDEyLjQwIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAu
MDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0g
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE1OS44MCw3OS44MCkgc2l6ZSAx
Mi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSgw
LjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAw
LDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAu
MDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTQ3Ljgw
LDc5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4w
MCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAs
MC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgxNDcuODAsNjcuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKDAu
MDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19
XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBD
MC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgxNTkuODAsNzkuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5z
Zm9ybT17bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNDcuODAsNzkuODApIHNpemUgMTIuNDB4
MTIuNDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCww
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAw
LDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAu
MDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE0Ny44MCw2Ny44
MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAu
MDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAs
LTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMTUzLjgwLDczLjgwKSBzaXplIDEyLjQweDEyLjQwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtk
YXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1
LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMTQ3LjgwLDk3
LjgwKSBzaXplIDI0LjQweDI0LjQwIFt0cmFuc2Zvcm09e209KCgwLjQwLDAuMDApKDAuMDAsMC40
MCkpIHQ9KC0yMC4wMCwwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgxNDcuODAsOTcuODApIHNpemUgMjQuNDB4MjQuNDAKICAgICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMTQ3LjgwLDk3LjgwKSBzaXplIDI0LjQweDI0LjQwCiAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE1OS44MCw5Ny44MCkgc2l6ZSAxMi40
MHgxMi40MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4w
MCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCww
LjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNTkuODAsMTA5
LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwt
MC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAs
MC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4w
MCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9
IGF0ICgxNDcuODAsMTA5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMS4w
MCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19
XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBD
MC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgxNDcuODAsOTcuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5z
Zm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNTkuODAsMTA5LjgwKSBzaXplIDEyLjQw
eDEyLjQwIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSgwLjAwLDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAs
MzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4w
MCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTQ3LjgwLDEwOS44
MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEu
MDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAs
LTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMTQ3LjgwLDk3LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwt
MS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBb
ZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4w
MCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQogICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgxNTMuODAsMTAzLjgwKSBzaXplIDEyLjQweDEyLjQwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwx
NS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNl
fSBhdCAoMTg3LjgwLDY3LjgwKSBzaXplIDI0LjQweDI0LjQwIFt0cmFuc2Zvcm09e209KCgwLjQw
LDAuMDApKDAuMDAsMC40MCkpIHQ9KDIwLjAwLC0zMC4wMCl9XQogICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMTg3LjgwLDY3LjgwKSBzaXplIDI0LjQweDI0LjQwCiAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE4Ny44MCw2Ny44MCkgc2l6ZSAy
NC40MHgyNC40MAogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxOTkuODAs
NjcuODApIHNpemUgMTIuNDB4MTIuNDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZC
NDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAw
LDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAu
MDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMTk5LjgwLDc5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMC4w
MCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19
XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBD
MC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgxODcuODAsNzkuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5z
Zm9ybT17bT0oKC0xLjAwLC0wLjAwKSgwLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAs
MzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Ny44MCw2Ny44MCkgc2l6ZSAxMi40
MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMC4wMCww
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAw
LDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAu
MDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE5OS44MCw3OS44
MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAw
KSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0z
MC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDE4Ny44MCw3OS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTEuMDAsMC4w
MCkoLTAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAs
LTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMTg3LjgwLDY3LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09
e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAw
LC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQogICAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxOTMuODAsNzMuODApIHNpemUgMTIuNDB4MTIu
NDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUu
MDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHt1c2V9IGF0ICgxODcuODAsOTcuODApIHNpemUgMjQuNDB4MjQuNDAgW3RyYW5zZm9y
bT17bT0oKDAuNDAsMC4wMCkoMC4wMCwwLjQwKSkgdD0oMjAuMDAsMC4wMCl9XQogICAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTg3LjgwLDk3LjgwKSBzaXplIDI0LjQweDI0
LjQwCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE4Ny44MCw5Ny44
MCkgc2l6ZSAyNC40MHgyNC40MAogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgxOTkuODAsOTcuODApIHNpemUgMTIuNDB4MTIuNDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAs
LTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMTk5LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3Jt
PXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4w
MCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTg3LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgx
Mi40MCBbdHJhbnNmb3JtPXttPSgoLTEuMDAsLTAuMDApKDAuMDAsLTEuMDApKSB0PSgwLjAwLDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAs
MzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4w
MCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTg3LjgwLDk3Ljgw
KSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDAp
KSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
QzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMw
LjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
MTk5LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAw
KSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0z
MC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cGF0aH0gYXQgKDE4Ny44MCwxMDkuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17
bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAs
LTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Ny44MCw5Ny44MCkgc2l6ZSAxMi40MHgxMi40
MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDAp
fV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAu
MDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBa
Il0KICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTkzLjgwLDEwMy44MCkg
c2l6ZSAxMi40MHgxMi40MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTS0xNS4wMCwtMTUu
MDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAg
UmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC0yMCw0MCkgc2l6ZSA0MHgxOCBjb250YWlucyAxIGNo
dW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkg
c2l6ZSA0MHgxOApAQCAtNjksOSArNjksOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAK
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtzd2l0Y2h9IGF0ICgzODkuNTAsNTkuNTApIHNp
emUgNjF4NjEKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzODkuNTAsNTku
NTApIHNpemUgNjF4NjEKICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0MTkuNTAs
NTkuNTApIHNpemUgMzF4MzEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
QzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMw
LjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0MTku
NTAsODkuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKC0wLjAwLDEuMDApKC0xLjAwLC0w
LjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQw
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCww
LjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAw
LC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
Mzg5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4w
MCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAs
MC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDM4OS41MCw1OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCko
MS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4w
MCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoNDE5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDAp
KC0xLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMw
LjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgzODkuNTAsODkuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAu
MDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtk
YXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAw
LC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMzg5LjUwLDU5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMC4w
MCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19
XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBD
MC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQogICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDQwNC41MCw3NC41MCkgc2l6ZSAzMXgzMSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZF
Nl19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0x
NS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC0zMCw2MCkg
c2l6ZSA2MHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA2MHgxOApAQCAtODAsOSArODAsOSBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHthfSBh
dCAoMjkuNTAsMTg5LjUwKSBzaXplIDYxeDYxCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjkuNTAsMTg5LjUwKSBzaXplIDYxeDYxCiAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoNTkuNTAsMTg5LjUwKSBzaXplIDMxeDMxIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMw
LjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoNTkuNTAsMjE5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgt
MC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZF
Nl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4w
MCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDI5LjUwLDIxOS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXtt
PSgoLTEuMDAsLTAuMDApKDAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNF
NkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwt
MzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAg
IFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOS41MCwxODkuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9y
bT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAw
LC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDU5LjUwLDIxOS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNm
b3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAu
MDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjkuNTAsMjE5LjUwKSBzaXplIDMxeDMxIFt0cmFu
c2Zvcm09e209KCgtMS4wMCwwLjAwKSgtMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAw
LDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5LjUwLDE4OS41MCkgc2l6ZSAzMXgzMSBb
dHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0g
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAs
MC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0K
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0NC41MCwyMDQuNTApIHNpemUgMzF4
MzEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUu
MDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgtMTMsNjApIHNpemUgMjZ4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAg
ICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjZ4MTgKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVt
LTgwLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgwLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5p
bWF0ZS1lbGVtLTgwLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMyw5
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtsaW5lfSBhdCAoMTUsODkuNTApIHNpemUgOTB4MSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNDMEMwQzBdfV0gW2RhdGE9Ik0tNDUuMDAsMC4wMCBMNDUuMDAsMC4wMCJdCiAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1OS41MCw0NSkgc2l6ZSAxeDkwIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBbZGF0YT0iTTAuMDAsLTQ1LjAwIEwwLjAw
LDQ1LjAwIl0KICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDYwLDkwKSBzaXplIDB4MCBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBd
IFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjAsOTApIHNpemUgMHgw
IFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUu
MDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjAsOTApIHNpemUg
MHgwIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9
MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjAsOTApIHNp
emUgMHgwIFt0cmFuc2Zvcm09e209KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDApKSB0PSgwLjAwLDAu
MDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRo
PTE1LjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDYwLDkwKSBz
aXplIDB4MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMC4wMCww
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0
aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9IiJdCisgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MCw5MCkg
c2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4w
MCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3
aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9IiJdCisgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MCw5
MCkgc2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKC0wLjAwLC0xLjAwKSgxLjAwLC0wLjAwKSkgdD0o
MC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9r
ZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1
NSw4NSkgc2l6ZSA1MHgxMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDODUwNTBdIFtz
dHJva2Ugd2lkdGg9MTAuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEw0MC4wMCwwLjAwIl0KICAgICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC0zNiw2MCkgc2l6ZSA3MngxOCBjb250YWlucyAx
IGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0x
NCkgc2l6ZSA3MngxOApAQCAtNjcsOSArNjcsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgz
NjAKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDE1LDIxOS41MCkgc2l6ZSA5
MHgxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBbZGF0YT0iTS00NS4w
MCwwLjAwIEw0NS4wMCwwLjAwIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQg
KDU5LjUwLDE3NSkgc2l6ZSAxeDkwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBD
MF19XSBbZGF0YT0iTTAuMDAsLTQ1LjAwIEwwLjAwLDQ1LjAwIl0KICAgICAgICAgUmVuZGVyUGF0
aCB7bGluZX0gYXQgKDIwLDE4MCkgc2l6ZSAweDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRoPTE1LjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iIl0KLSAgICAgICAgUmVuZGVy
UGF0aCB7bGluZX0gYXQgKDEwMCwxODApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwx
LjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRoPTE1LjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iIl0KLSAgICAgICAg
UmVuZGVyUGF0aCB7bGluZX0gYXQgKDEwMCwyNjApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgt
MS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDgwLjAwLDgwLjAwKX1dIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJP
VU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCi0g
ICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyMCwyNjApIHNpemUgMHgwIFt0cmFuc2Zvcm09
e209KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDApKSB0PSgtMC4wMCw4MC4wMCl9XSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNh
cD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIi
XQorICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTAwLDE4MCkgc2l6ZSAweDAgW3RyYW5z
Zm9ybT17bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4wMCkpIHQ9KDgwLjAwLC0wLjAwKX1dIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xp
bmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9IiJdCisgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgxMDAsMjYwKSBzaXplIDB4MCBb
dHJhbnNmb3JtPXttPSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSg4MC4wMCw4MC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUu
MDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSIiXQorICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMjAsMjYwKSBzaXpl
IDB4MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSgwLjAwLDgw
LjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0
aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9IiJdCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1NSwyMTUp
IHNpemUgNTB4MTAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQzg1MDUwXSBbc3Ryb2tl
IHdpZHRoPTEwLjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTQwLjAwLDQwLjAwIEw4MC4wMCw0MC4wMCJdCiAgICAgICAg
IFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg0LDEwMCkgc2l6ZSA3MngxOCBjb250YWlucyAxIGNo
dW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkg
c2l6ZSA3MngxOApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEu
MS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDcgKzIzLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgICAg
ICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNTIuMDAsNjAuMDApIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDEwNC4wMDogImFkZGl0aXZlPXJlcGxhY2Ui
CiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjYuMzcsNTYpIHNpemUgMTA3LjI2
eDk4IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE4MC4wMCw5MC4w
MCl9XQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTUzLjE5LDczKSBzaXplIDUzLjYz
eDM0IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuNTgsMS4wMCkpIHQ9KDAuMDAsMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAw
LC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQotICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTI2LjM3LDU2KSBzaXplIDEwNy4yNng2OCBbdHJh
bnNmb3JtPXttPSgoMS4xNSwyLjAwKSgtMi4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBb
ZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwx
NS4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEyNi4zNyw1Nikgc2l6ZSAx
MDcuMjZ4NjggW3RyYW5zZm9ybT17bT0oKDEuMTUsMi4wMCkoLTIuMDAsMC4wMCkpIHQ9KDAuMDAs
MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdIFtzdHJva2Ugd2lk
dGg9NC4wMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUu
MDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC00
Myw2MCkgc2l6ZSA4NngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA4NngxOAogICAgICAgICAgICAgY2h1
bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTQyLjUwLDYwLjAwKSBzdGFydE9m
ZnNldCAwIGVuZE9mZnNldCAxMiB3aWR0aCA4NS4wMDogImFkZGl0aXZlPXN1bSIKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgyLXQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
VzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgyLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5
OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1l
bGVtLTgyLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MzUuOTYsNjUuOTYpIHNpemUgNDguMDh4NDguMDggW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSko
LTAuNzEsMC43MSkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwx
NS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzUu
OTYsNjUuOTYpIHNpemUgNDguMDh4NDguMDggW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAu
NzEsMC43MSkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkI0MDBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAw
LC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDM5Ljc1LDY5Ljc1KSBzaXplIDQwLjUweDQwLjUwIFt0cmFuc2Zvcm09e209
KCgwLjM4LDAuOTIpKC0wLjkyLDAuMzgpKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1
LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQotICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNDQuNTAsNzQuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKC0wLjAwLDEu
MDApKC0xLjAwLC0wLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUu
MDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDQ0LjUwLDc0LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAw
LDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZC
NDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBM
LTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTQyLDYw
KSBzaXplIDg0eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDg0eDE4CiAgICAgICAgICAgICBjaHVuayAx
IChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNDIuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0
IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDg0LjAwOiAic2FtZSByb3RhdGlvbiIKQEAgLTMwLDcgKzMw
LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgxNTUuOTYsNjUuOTYpIHNpemUgNDguMDh4NDguMDggW3RyYW5zZm9ybT17bT0oKDAu
NzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAw
IEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMTU1Ljk2LDY1Ljk2KSBzaXplIDQ4LjA4eDQ4LjA4IFt0cmFuc2Zvcm09e209KCgwLjcx
LDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkZCNDAwXSBbc3Ryb2tlIHdpZHRoPTQuMDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1
LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCiAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNDguMTksNzIuMDUpIHNpemUgNDAuNTB4NDAuNTAgW3Ry
YW5zZm9ybT17bT0oKDAuMzgsMC45MikoLTAuOTIsMC4zOCkpIHQ9KC0xMS41NiwyLjMwKX1dIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUu
MDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KLSAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEzNC41MCw3NC41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3Jt
PXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSgtMzAuMDAsLTAuMDApfV0gW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBM
MTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQorICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTM0LjUwLDc0LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209
KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSgtMzAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwt
MTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1Rl
eHQge3RleHR9IGF0ICgtNTMsNjApIHNpemUgMTA2eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDEwNngx
OAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTUy
LjUwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxOCB3aWR0aCAxMDUuMDA6ICJkaWZm
ZXJlbnQgcm90YXRpb24iCkBAIC03Miw4ICs3Miw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgw
eDM2MAogICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjU1LDIwMykgc2l6ZSAxMjAu
NTB4MTMyLjUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDMwMC4w
MCwyMjAuMDApfV0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI4MywyMDMpIHNpemUg
MzR4MzQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODA4MDgwXSBbc3Ryb2tlIHdpZHRo
PTQuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTS0x
NS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0K
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI4MywyMDMpIHNpemUgMzR4MzQgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXSBbc3Ryb2tlIHdpZHRoPTQuMDBdfV0gW2Rh
dGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUu
MDAgWiJdCi0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyODkuNTAsMjA5LjUwKSBzaXpl
IDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDUuMDAs
NS4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2RhdGE9Ik0t
MTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJd
Ci0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDQuNTAsMzA0LjUwKSBzaXplIDMxeDMx
IFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDYwLjAwLDEwMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2RhdGE9Ik0tMTUu
MDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCisg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyODkuNTAsMjA5LjUwKSBzaXplIDMxeDMxIFt0
cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSg1LjAwLDUuMDApfV0gW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4w
MCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQorICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzQ0LjUwLDMwNC41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3Jt
PXttPSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSg2MC4wMCwxMDAuMDApfV0gW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBM
MTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTQ1LDc1KSBzaXplIDkweDE4IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXpl
IDkweDE4CiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0
ICgtNDQuNTAsNzUuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE0IHdpZHRoIDg5LjAwOiAi
cGFjZWQgcm90YXRpb24iCkBAIC04MSw3ICs4MSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgw
eDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDAzLDIwMykgc2l6ZSAzNHgzNCBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0x
NS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDAzLDIwMykgc2l6ZSAzNHgzNCBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZGF0YT0iTS0x
NS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0K
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM3OS41NCwyMDIuODMpIHNpemUgNDMuODR4
NDMuODQgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KC0xOC41NCw0
Ljc1KX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0x
NS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0K
LSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ2NC41MCwzMDQuNTApIHNpemUgMzF4MzEg
W3RyYW5zZm9ybT17bT0oKC0xLjAwLC0wLjAwKSgwLjAwLC0xLjAwKSkgdD0oNjAuMDAsMTAwLjAw
KX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4w
MCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KKyAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ2NC41MCwzMDQuNTApIHNpemUgMzF4MzEgW3Ry
YW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oNjAuMDAsMTAwLjAwKX1d
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwt
MTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC00NCw3NSkgc2l6ZSA4OHgxOCBjb250YWlucyAx
IGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0x
NCkgc2l6ZSA4OHgxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBy
dW4gMSBhdCAoLTQzLjUwLDc1LjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxNSB3aWR0aCA4
Ny4wMDogImxpbmVhciByb3RhdGlvbiIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAxLWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5z
LTAxLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAxLWItZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2
MAogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUwLDkwKSBzaXplIDIweDIw
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDUwLjAwLDUwLjAwKX1d
CiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTAsOTApIHNpemUgMjB4MiBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMC4w
MCwwLjAwIEwyMC4wMCwyLjAwIEwwLjAwLDIuMDAgWiJdCiAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoNTAsOTApIHNpemUgMngyMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyLjAwLDAuMDAgTDIuMDAsMjAuMDAgTDAuMDAs
MjAuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTUwLDkwKSBz
aXplIDIweDIwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDE1
MC4wMCw3MC4wMCl9XQorICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE1MCw5
MCkgc2l6ZSAyMHgyMCBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0o
MTUwLjAwLDcwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTUwLDkw
KSBzaXplIDJ4MjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMjAuMDAsMC4wMCBMMjAuMDAsMi4wMCBMMC4wMCwyLjAwIFoiXQogICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDE1MCwxMDgpIHNpemUgMjB4MiBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyLjAwLDAuMDAg
TDIuMDAsMjAuMDAgTDAuMDAsMjAuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjUwLDkwKSBzaXplIDQweDIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDEu
MDAsMS4wMCkpIHQ9KDI1MC4wMCw1MC4wMCl9XQpAQCAtMTI3LDggKzEyNyw4IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMDgs
MTk4KSBzaXplIDV4NSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRh
PSJNMjA4LjAwLDE1OC4wMCBMMjEzLjAwLDE1OC4wMCBMMjEzLjAwLDE2My4wMCBMMjA4LjAwLDE2
My4wMCBaIl0KICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQwLDIxNikgc2l6ZSA0
MDJ4NjcKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAsMjQwKSBzaXplIDI2
MHg0MAotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUwLDI0MCkgc2l6ZSA2
MHg0MCBbdHJhbnNmb3JtPXttPSgoMy4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSg1MC4wMCwyMTAu
MDApfV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1MCwyNDApIHNpemUgNjB4
MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEwyMC4wMCwwLjAwIEwyMC4wMCwxLjAwIEwwLjAwLDEuMDAgWiJdCisgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAsMjQwKSBzaXplIDYwLjAweDQwIFt0cmFuc2Zvcm09e209
KCgzLjAwLDAuMDApKDAuMDAsMi4wMCkpIHQ9KDUwLjAwLDIxMC4wMCl9XQorICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDUwLDI0MCkgc2l6ZSA2MC4wMHgyIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIwLjAwLDAuMDAgTDIw
LjAwLDEuMDAgTDAuMDAsMS4wMCBaIl0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICg1MCwyNDApIHNpemUgMi4wMXg0MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjY3LDAuMDAgTDAuNjcsMjAuMDAgTDAuMDAsMjAuMDAg
WiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjUwLDI0MCkgc2l6ZSA2
MHg0MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMDAuMDAsMC4w
MCl9XQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjUwLDI0MCkgc2l6
ZSA2MHg0MCBbdHJhbnNmb3JtPXttPSgoMy4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSgwLjAwLDAu
MDApfV0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29v
cmRzLXRyYW5zLTAyLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAyLXQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvY29vcmRzLXRyYW5zLTAyLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04
LDcgKzgsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg5NSwxNjUpIHNpemUgNTB4NTAgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsNTAuMDApfV0KICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICg5NSwxNjUpIHNpemUgNTB4NSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMC4wMCwwLjAwIEwyMC4wMCwyLjAw
IEwwLjAwLDIuMDAgWiJdCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoOTUsMTY1
KSBzaXplIDV4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMi4wMCwwLjAwIEwyLjAwLDIwLjAwIEwwLjAwLDIwLjAwIFoiXQotICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0NSwxNjUpIHNpemUgNTB4NTAgW3RyYW5z
Zm9ybT17bT0oKC0wLjAwLC0xLjAwKSgxLjAwLC0wLjAwKSkgdD0oMTUwLjAwLDcwLjAwKX1dCisg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzQ1LDE2NSkgc2l6ZSA1MHg1MCBb
dHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMTUwLjAwLDcwLjAwKX1d
CiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzQ1LDE2NSkgc2l6ZSA1eDUwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIw
LjAwLDAuMDAgTDIwLjAwLDIuMDAgTDAuMDAsMi4wMCBaIl0KICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgzNDUsMjEwKSBzaXplIDUweDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMi4wMCwwLjAwIEwyLjAwLDIwLjAwIEww
LjAwLDIwLjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg3MCwxMDUp
IHNpemUgNDE1eDExNy41MCBbdHJhbnNmb3JtPXttPSgoMi41MCwwLjAwKSgwLjAwLDIuNTApKSB0
PSgtMzAuMDAsMC4wMCl9XQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0Mt
U1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTksNyArOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjMsMTA1KSBzaXplIDE1MHgxMDAgW3Ry
YW5zZm9ybT17bT0oKDcuNTAsMC4wMCkoMC4wMCw1LjAwKSkgdD0oMC4wMCwwLjAwKX1dCiAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIzLDEwNSkgc2l6ZSAxNTB4MTAw
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE2LjY3LDEwNS4wMCl9
XQogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMywxMDUpIHNpemUgMTUw
eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTAuMDAsMC4w
MCBMMjAuMDAsMC4wMCBMMjAuMDAsMS4wMCBMMC4wMCwxLjAwIFoiXQotICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMywxMDUpIHNpemUgNS4wM3gxMDAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC42NywwLjAwIEww
LjY3LDIwLjAwIEwwLjAwLDIwLjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgyMywxMDUpIHNpemUgNS4wMngxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC42NywwLjAwIEwwLjY3LDIwLjAwIEwwLjAw
LDIwLjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDQ1KSBzaXpl
IDUwNXgxNjcuNTAgW3RyYW5zZm9ybT17bT0oKDIuNTAsMC4wMCkoMC4wMCwyLjUwKSkgdD0oLTYw
MC4wMCwtNDUwLjAwKX1dCiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDI0MCwy
MDApIHNpemUgMjAyeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjAyeDE4CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2Nvb3Jkcy12aWV3YXR0ci0wMS1iLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1cz
Qy1TVkctMS4xL2Nvb3Jkcy12aWV3YXR0ci0wMS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2
OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2Nvb3Jkcy12
aWV3YXR0ci0wMS1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDggKzE4MSw4
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoMzAwLDIyOC4zMykgc2l6ZSA1MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAg
WiJdCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwOC4zMywyNDUp
IHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oMC4wMCw1LjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAo
MzA4LjMzLDI0NSkgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBM
MjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1
LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4z
NyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIw
LjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwy
NC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTgg
TDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41
MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMu
NzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEs
MjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUu
OTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcg
TDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMu
NzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUs
MTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEs
OC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2
LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4x
Myw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwx
Ni4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1Ljcw
IEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3
LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40
NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45
MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJd
Ci0gICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzE3LjUwLDI1NC4xNykg
c2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEz
LjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwx
Mi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIg
TDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4w
MywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMu
MzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwx
Mi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEs
MTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQz
IEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEu
MTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEy
Ljk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBM
MTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUx
LDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44
MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEw
LjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwx
MS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkg
TDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41
NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAu
NTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwx
Mi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIs
MTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkx
IEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMu
MzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDEx
LjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQotICAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDMyNS44MywyNTQuMTcpIHNpemUgNXg1IFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBM
MTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQz
LDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44
MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3
Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwx
My4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcg
TDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44
MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMu
MzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwx
Ni4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzks
MTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1
IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUu
NTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDEx
LjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBM
MTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1Ljkx
LDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43
MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2
LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwx
MC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUg
TDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44
MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAu
OTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwx
OC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcs
MTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KKyAgICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtjaXJjbGV9IGF0ICgzMTcuNTAsMjU0LjE3KSBzaXplIDV4NS4wMCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEy
LjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBM
MTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIx
LDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4x
NiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEy
LjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwx
My40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkg
TDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4z
NiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMu
MTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwx
MC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcs
MTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5
IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAu
NTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDEx
LjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBM
MTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4
LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41
NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEy
LjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40Niwx
MC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMg
TDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4x
NiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEu
MzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwx
My40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoMzI1LjgzLDI1NC4xNykgc2l6ZSA1eDUuMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTgu
NDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEy
LjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBM
MTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4
LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4z
OSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3
LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43Miwx
My40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYg
TDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45
NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIu
ODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwx
NS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAs
MTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYz
IEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUu
NzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEw
LjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBM
MTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2Ljcy
LDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41
MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3
LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwx
MC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQg
TDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4z
OSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEu
ODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgzMTUuNjMsMjY3LjAzKSBzaXplIDE4Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAw
LDE5LjAwIl0KICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsMzQwKSBzaXplIDI2NHg0
NiBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsLTM2KSBzaXplIDI2NHg0NgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAxLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMS10
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDEtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExLDcgKzExLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMCwxMzApIHNpemUgMTA1eDIyIGNvbnRhaW5z
IDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
LTE3KSBzaXplIDEwNXgyMgogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgzMC4w
MCwxMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDEwNS4wMDogIlBsYWNl
ZCBHbHlwaHMiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2NC4yNyw4MS40
MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKC0wLjAwLC0x
LjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2MS4xMyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQogICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICgxNjUsMTM5LjUwKSBzaXplIDIxMHgxIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODg4OF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTAuMDAsMC4wMCJdCiAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDIxMS4xN3gxNjEuMTMgW3RyYW5z
Zm9ybT17bT0oKDAuMDMsMC4wMCkoMC4wMCwwLjAzKSkgdD0oMC4wMCwwLjAwKX1dCiAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDEuNDZ4MTYxLjEz
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODg4OF0gW3N0cm9rZSB3aWR0aD01MC4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwt
MzUwMC4wMCBMMC4wMCwyMDAwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMi10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDIt
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAyLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDcsMTMwKSBzaXplIDEzMHgyMiBjb250YWlucyAx
IGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTcp
IHNpemUgMTMweDIyCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg3LjAwLDEzMC4w
MCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTUgd2lkdGggMTMwLjAwOiAiU1ZHIG92ZXIgR2x5
cGhzIgotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY4Ljg0LDg1LjYyKSBzaXpl
IDIwMy40NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgtMC4wMCwtMS4wMCkpIHQ9
KDE2NS4wMCwxNDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2OC44
NCw4NS42Mikgc2l6ZSAyMDMuNDR4NzEuMzQgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwtMS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTY4Ljg0LDg1LjYyKSBzaXplIDIwMy40NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgo
MC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0PSgwLjAwLDAuMDApfV0KICAgICAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMTY4Ljg0LDk2LjcwKSBzaXplIDM1Ljc3eDQ0LjE4IFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0xMjUwLjAwLC0zMC4wMCBDMTE4OC42
NywtMzAuMDAsMTEzNS4zMyw0OC42NywxMDkwLjAwLDIwNi4wMCBDMTA3Mi42NywyNjYuMDAsMTA1
MS4wMCwzNzEuMDAsMTAyNS4wMCw1MjEuMDAgQzk1Ny4wMCw1MTEuNjcsODY4LjAwLDQ5NS4wMCw3
NTguMDAsNDcxLjAwIEw0OTIuMDAsNDE2LjAwIEM0NTguNjcsMzI4LjY3LDQwMS42NywyMDEuMDAs
MzIxLjAwLDMzLjAwIEMyOTkuNjcsLTQuMzMsMjcwLjY3LC0yMy4wMCwyMzQuMDAsLTIzLjAwIEMy
MDcuMzMsLTIzLjAwLDE4My42NywtMTMuMzMsMTYzLjAwLDYuMDAgQzE0Mi4zMywyNS4zMywxMzEu
NjcsNDkuMzMsMTMxLjAwLDc4LjAwIEMxMzEuMDAsMTEwLjAwLDE4MS4zMywyMzEuNjcsMjgyLjAw
LDQ0My4wMCBDMjcwLjY3LDQ2MC4zMywyNjUuMDAsNDgwLjMzLDI2NS4wMCw1MDMuMDAgQzI2NS4w
MCw1NTcuMDAsMjk3LjY3LDU5MS42NywzNjMuMDAsNjA3LjAwIEM0MzkuMDAsNzQ5LjY3LDUzNS4w
MCw5MTMuNjcsNjUxLjAwLDEwOTkuMDAgQzgwOS4wMCwxMzUxLjY3LDkwNy4zMywxNDc4LjAwLDk0
Ni4wMCwxNDc4LjAwIEM5OTguNjcsMTQ3OC4wMCwxMDM0LjY3LDE0NDEuMzMsMTA1NC4wMCwxMzY4
LjAwIEwxMTE3LjAwLDEwMzIuMDAgTDEyNjYuMDAsMzM3LjAwIEwxMzIzLjAwLDE3OS4wMCBDMTM0
Mi4zMywxMjUuMDAsMTM1Mi4wMCw4OS4wMCwxMzUyLjAwLDcxLjAwIEMxMzUyLjAwLDQyLjMzLDEz
NDEuNjcsMTguMzMsMTMyMS4wMCwtMS4wMCBDMTMwMC4zMywtMjAuMzMsMTI3Ni42NywtMzAuMDAs
MTI1MC4wMCwtMzAuMDAgWiBNODk3LjAwLDExMTMuMDAgTDYxMS4wMCw2NTIuMDAgQzY5MS42Nyw2
NzIuNjcsODE0LjAwLDY5Ny42Nyw5NzguMDAsNzI3LjAwIEw4OTcuMDAsMTExMy4wMCBaIl0KICAg
ICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjA4Ljc3LDEwOS41Mykgc2l6ZSAzMC4xMng0
Ny40MyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNDk4LjAwLDAu
MDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTEwMTEu
MDAsODkyLjAwIEw2NjUuMDAsMTQ0LjAwIEM1NzkuNjcsLTM4LjAwLDUxNC4zMywtMTkwLjMzLDQ2
OS4wMCwtMzEzLjAwIEw0MDMuMDAsLTUwNy4wMCBDMzg1LjY3LC01NTUuMDAsMzU1LjY3LC01Nzku
MDAsMzEzLjAwLC01NzkuMDAgQzI4NS4wMCwtNTc5LjAwLDI2MS4wMCwtNTcwLjAwLDI0MS4wMCwt
NTUyLjAwIEMyMjEuMDAsLTUzNC4wMCwyMTAuNjcsLTUxMS4wMCwyMTAuMDAsLTQ4My4wMCBDMjEw
LjAwLC00MTYuMzMsMjgyLjAwLC0yMjMuMzMsNDI2LjAwLDk2LjAwIEw2OC4wMCw3ODUuMDAgTDIz
LjAwLDg1OC4wMCBDNS4wMCw4ODguNjcsLTQuMDAsOTE0LjMzLC00LjAwLDkzNS4wMCBDLTQuMDAs
OTYyLjMzLDYuMzMsOTg2LjMzLDI3LjAwLDEwMDcuMDAgQzQ3LjY3LDEwMjcuNjcsNzEuMzMsMTAz
OC4wMCw5OC4wMCwxMDM4LjAwIEMxMjguNjcsMTAzOC4wMCwxNTIuMzMsMTAyNi4zMywxNjkuMDAs
MTAwMy4wMCBDMjgyLjMzLDg0NS42Nyw0MDQuMDAsNjIxLjY3LDUzNC4wMCwzMzEuMDAgTDY4Mi4w
MCw2NzYuMDAgQzczNS4zMyw3OTUuMzMsNzg2LjY3LDg5OC4wMCw4MzYuMDAsOTg0LjAwIEM4NTcu
MzMsMTAyMS4zMyw4ODUuMzMsMTA0MC4wMCw5MjAuMDAsMTA0MC4wMCBDOTQ3LjMzLDEwNDAuMDAs
OTcxLjMzLDEwMzAuMzMsOTkyLjAwLDEwMTEuMDAgQzEwMTIuNjcsOTkxLjY3LDEwMjMuMzMsOTY4
LjY3LDEwMjQuMDAsOTQyLjAwIEMxMDI0LjAwLDkyNy4zMywxMDE5LjY3LDkxMC42NywxMDExLjAw
LDg5Mi4wMCBaIl0KQEAgLTI5LDcgKzI5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYw
CiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLDApIHNpemUgMjEweDgzIGNvbnRh
aW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQg
KDAsLTY2KSBzaXplIDIxMHg4MwogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgw
LjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDUgd2lkdGggMjA5LjcxOiAiQXlceHtE
Nn1AXHh7RTd9IgotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY4Ljg0LDE1NS42
Mikgc2l6ZSAyMDMuNDR4NzEuMzQgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoLTAuMDAsLTEu
MDApKSB0PSgxNjUuMDAsMjEwLjAwKX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgxNjguODQsMTU1LjYyKSBzaXplIDIwMy40NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDIxMC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgxNjguODQsMTU1LjYyKSBzaXplIDIwMy40NHg3MS4zNCBbdHJhbnNm
b3JtPXttPSgoMC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0PSgwLjAwLDAuMDApfV0KICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTY4Ljg0LDE2Ni43MCkgc2l6ZSAzNS43N3g0NC4xOCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTI1MC4wMCwtMzAu
MDAgQzExODguNjcsLTMwLjAwLDExMzUuMzMsNDguNjcsMTA5MC4wMCwyMDYuMDAgQzEwNzIuNjcs
MjY2LjAwLDEwNTEuMDAsMzcxLjAwLDEwMjUuMDAsNTIxLjAwIEM5NTcuMDAsNTExLjY3LDg2OC4w
MCw0OTUuMDAsNzU4LjAwLDQ3MS4wMCBMNDkyLjAwLDQxNi4wMCBDNDU4LjY3LDMyOC42Nyw0MDEu
NjcsMjAxLjAwLDMyMS4wMCwzMy4wMCBDMjk5LjY3LC00LjMzLDI3MC42NywtMjMuMDAsMjM0LjAw
LC0yMy4wMCBDMjA3LjMzLC0yMy4wMCwxODMuNjcsLTEzLjMzLDE2My4wMCw2LjAwIEMxNDIuMzMs
MjUuMzMsMTMxLjY3LDQ5LjMzLDEzMS4wMCw3OC4wMCBDMTMxLjAwLDExMC4wMCwxODEuMzMsMjMx
LjY3LDI4Mi4wMCw0NDMuMDAgQzI3MC42Nyw0NjAuMzMsMjY1LjAwLDQ4MC4zMywyNjUuMDAsNTAz
LjAwIEMyNjUuMDAsNTU3LjAwLDI5Ny42Nyw1OTEuNjcsMzYzLjAwLDYwNy4wMCBDNDM5LjAwLDc0
OS42Nyw1MzUuMDAsOTEzLjY3LDY1MS4wMCwxMDk5LjAwIEM4MDkuMDAsMTM1MS42Nyw5MDcuMzMs
MTQ3OC4wMCw5NDYuMDAsMTQ3OC4wMCBDOTk4LjY3LDE0NzguMDAsMTAzNC42NywxNDQxLjMzLDEw
NTQuMDAsMTM2OC4wMCBMMTExNy4wMCwxMDMyLjAwIEwxMjY2LjAwLDMzNy4wMCBMMTMyMy4wMCwx
NzkuMDAgQzEzNDIuMzMsMTI1LjAwLDEzNTIuMDAsODkuMDAsMTM1Mi4wMCw3MS4wMCBDMTM1Mi4w
MCw0Mi4zMywxMzQxLjY3LDE4LjMzLDEzMjEuMDAsLTEuMDAgQzEzMDAuMzMsLTIwLjMzLDEyNzYu
NjcsLTMwLjAwLDEyNTAuMDAsLTMwLjAwIFogTTg5Ny4wMCwxMTEzLjAwIEw2MTEuMDAsNjUyLjAw
IEM2OTEuNjcsNjcyLjY3LDgxNC4wMCw2OTcuNjcsOTc4LjAwLDcyNy4wMCBMODk3LjAwLDExMTMu
MDAgWiJdCiAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIwOC43NywxNzkuNTMpIHNp
emUgMzAuMTJ4NDcuNDMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MTQ5OC4wMCwwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xMDExLjAwLDg5Mi4wMCBMNjY1LjAwLDE0NC4wMCBDNTc5LjY3LC0zOC4wMCw1MTQuMzMs
LTE5MC4zMyw0NjkuMDAsLTMxMy4wMCBMNDAzLjAwLC01MDcuMDAgQzM4NS42NywtNTU1LjAwLDM1
NS42NywtNTc5LjAwLDMxMy4wMCwtNTc5LjAwIEMyODUuMDAsLTU3OS4wMCwyNjEuMDAsLTU3MC4w
MCwyNDEuMDAsLTU1Mi4wMCBDMjIxLjAwLC01MzQuMDAsMjEwLjY3LC01MTEuMDAsMjEwLjAwLC00
ODMuMDAgQzIxMC4wMCwtNDE2LjMzLDI4Mi4wMCwtMjIzLjMzLDQyNi4wMCw5Ni4wMCBMNjguMDAs
Nzg1LjAwIEwyMy4wMCw4NTguMDAgQzUuMDAsODg4LjY3LC00LjAwLDkxNC4zMywtNC4wMCw5MzUu
MDAgQy00LjAwLDk2Mi4zMyw2LjMzLDk4Ni4zMywyNy4wMCwxMDA3LjAwIEM0Ny42NywxMDI3LjY3
LDcxLjMzLDEwMzguMDAsOTguMDAsMTAzOC4wMCBDMTI4LjY3LDEwMzguMDAsMTUyLjMzLDEwMjYu
MzMsMTY5LjAwLDEwMDMuMDAgQzI4Mi4zMyw4NDUuNjcsNDA0LjAwLDYyMS42Nyw1MzQuMDAsMzMx
LjAwIEw2ODIuMDAsNjc2LjAwIEM3MzUuMzMsNzk1LjMzLDc4Ni42Nyw4OTguMDAsODM2LjAwLDk4
NC4wMCBDODU3LjMzLDEwMjEuMzMsODg1LjMzLDEwNDAuMDAsOTIwLjAwLDEwNDAuMDAgQzk0Ny4z
MywxMDQwLjAwLDk3MS4zMywxMDMwLjMzLDk5Mi4wMCwxMDExLjAwIEMxMDEyLjY3LDk5MS42Nywx
MDIzLjMzLDk2OC42NywxMDI0LjAwLDk0Mi4wMCBDMTAyNC4wMCw5MjcuMzMsMTAxOS42Nyw5MTAu
NjcsMTAxMS4wMCw4OTIuMDAgWiJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDMtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAzLWIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMy1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTEsNyArMTEsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDMxLDEzMCkgc2l6ZSAxMDV4MjIgY29udGFpbnMg
MSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwt
MTcpIHNpemUgMTA1eDIyCiAgICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDMxLjAw
LDEzMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTMgd2lkdGggMTA1LjAwOiAiUGxhY2Vk
IEdseXBocyIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQx
KSBzaXplIDIxMS4xN3gxNjEuMTMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoLTAuMDAsLTEu
MDApKSB0PSgxNjUuMDAsMTQwLjAwKX1dCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsLTEuMDApKSB0PSgxNjUuMDAsMTQwLjAwKX1dCiAgICAgICAgICAgUmVuZGVy
UGF0aCB7bGluZX0gYXQgKDE2NSwxMzkuNTApIHNpemUgMjEweDEgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jODg4ODg4XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxMC4wMCwwLjAwIl0KICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2MS4xMyBbdHJhbnNm
b3JtPXttPSgoMC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0PSgwLjAwLDAuMDApfV0KICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMS40NngxNjEuMTMg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4ODg4XSBbc3Ryb2tlIHdpZHRoPTUwLjAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLC0z
NTAwLjAwIEwwLjAwLDIwMDAuMDAiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTA0LWItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wNC1i
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDQtYi1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExLDcgKzExLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMSwxMzApIHNpemUgMTA1eDIyIGNvbnRhaW5z
IDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
LTE3KSBzaXplIDEwNXgyMgogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgzMS4w
MCwxMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDEwNS4wMDogIlBsYWNl
ZCBHbHlwaHMiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2NC4yNyw4MS40
MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKC0wLjAwLC0x
LjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2MS4xMyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQogICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICgxNjUsMTM5LjUwKSBzaXplIDIxMHgxIFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODg4OF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTAuMDAsMC4wMCJdCiAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDIxMS4xN3gxNjEuMTMgW3RyYW5z
Zm9ybT17bT0oKDAuMDMsMC4wMCkoMC4wMCwwLjAzKSkgdD0oMC4wMCwwLjAwKX1dCiAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDEuNDZ4MTYxLjEz
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODg4OF0gW3N0cm9rZSB3aWR0aD01MC4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwt
MzUwMC4wMCBMMC4wMCwyMDAwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wNy1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDct
Yi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTA3LWItZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAg
ICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMzAsMTMwKSBzaXplIDEwNXgyMiBjb250YWlu
cyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgw
LC0xNykgc2l6ZSAxMDV4MjIKICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMzAu
MDAsMTMwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxMyB3aWR0aCAxMDUuMDA6ICJQbGFj
ZWQgR2x5cGhzIgotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjQuMjcsODEu
NDEpIHNpemUgMjExLjE3eDE2MS4xMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgtMC4wMCwt
MS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDIxMS4xN3gxNjEuMTMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KICAgICAgICAgICBSZW5k
ZXJQYXRoIHtsaW5lfSBhdCAoMTY1LDEzOS41MCkgc2l6ZSAyMTB4MSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSM4ODg4ODhdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjEwLjAwLDAuMDAiXQogICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFu
c2Zvcm09e209KCgwLjAzLDAuMDApKDAuMDAsMC4wMykpIHQ9KDAuMDAsMC4wMCl9XQogICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAxLjQ2eDE2MS4x
MyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4ODhdIFtzdHJva2Ugd2lkdGg9NTAu
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAs
LTM1MDAuMDAgTDAuMDAsMjAwMC4wMCJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5n
LW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMS1mLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDQ4MHgzNjAKICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjQyLDIyMikgc2l6
ZSAxNngxNiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNNS4w
MCwwLjAwIEwxMC4wMCwxMC4wMCBMMC4wMCwxMC4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMjg4LjY5LDIxOC42OSkgc2l6ZSAyMi42M3gyMi42MyBbdHJhbnNmb3Jt
PXttPSgoMS4xMywxLjEzKSgtMS4xMywxLjEzKSkgdD0oMTgwLjAwLDIxOC42OSl9XQogICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyODguNjksMjE4LjY5KSBzaXplIDIyLjYzeDIyLjYz
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik01LjAwLDAuMDAg
TDEwLjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgyOTIsMjcyKSBzaXplIDE2eDE2IFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjYwKSgt
MS42MCwtMC4wMCkpIHQ9KDE4OC4wMCwyNzIuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjkyLDI3Mikgc2l6ZSAxNngxNiBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjYw
KSgtMS42MCwwLjAwKSkgdD0oMTg4LjAwLDI3Mi4wMCl9XQogICAgICAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgyOTIsMjcyKSBzaXplIDE2eDE2IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwRkZdfV0gW2RhdGE9Ik01LjAwLDAuMDAgTDEwLjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoi
XQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwzNDApIHNpemUgMjY0eDQ2IGNvbnRh
aW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwt
MzYpIHNpemUgMjY0eDQ2CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1mLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0w
Mi1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1mLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiBsYXllciBhdCAoMCwwKSBzaXpl
IDQ4MHgzNjAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoLTAuODAsLTAuODApIHNpemUgNDgw
LjMweDM2MC4zMAotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKC0wLjgwLC0wLjgwKSBz
aXplIDQ1Mi4wMHgyNzIuODAKKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgtMC44MCwt
MC44MCkgc2l6ZSA0NTJ4MjcyLjgwCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2Rl
ZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTI1
LDMwKSBzaXplIDE4NHgxNiBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTMpIHNpemUgMTg0eDE2CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDUtdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEu
MS9wYXRocy1kYXRhLTA1LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0wNS10LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwOCw5NS40MCkgc2l6
ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0i
TTYwLjAwLDIwMy4wMCBMNjQuMDAsMjAzLjAwIEw2NC4wMCwyMDcuMDAgTDYwLjAwLDIwNy4wMCBa
Il0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDE3OC4xNSwyMTYuOTApIHNpemUgNy4y
MHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik05OC45
NywyNzAuNTAgTDEwMi45NywyNzAuNTAgTDEwMi45NywyNzQuNTAgTDk4Ljk3LDI3NC41MCBaIl0K
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM3Ljg1LDIxNi45MCkgc2l6ZSA3LjIweDcu
MjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTIxLjAzLDI3
MC41MCBMMjUuMDMsMjcwLjUwIEwyNS4wMywyNzQuNTAgTDIxLjAzLDI3NC41MCBaIl0KLSAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIyNS4wNyw3Mi4wMCkgc2l6ZSAxODcuMDZ4MTYyIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMEMwMDBdIFtmaWxsIHJ1bGU9RVZFTi1PRERdfV0g
W2RhdGE9Ik0xNzcuMDAsMTkwLjAwIEwyMjguOTYsMjgwLjAwIEwxMjUuMDQsMjgwLjAwIEwxNzcu
MDAsMTkwLjAwIFogTTE3Ny4wMCwyMDUuMDAgTDIxNS45NywyNzIuNTAgTDEzOC4wNiwyNzIuNTAg
TDE3Ny4wMywyMDUuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMjUuMDcs
NzIpIHNpemUgMTg3LjA2eDE2MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBDMDAwXSBb
ZmlsbCBydWxlPUVWRU4tT0REXX1dIFtkYXRhPSJNMTc3LjAwLDE5MC4wMCBMMjI4Ljk2LDI4MC4w
MCBMMTI1LjA0LDI4MC4wMCBMMTc3LjAwLDE5MC4wMCBaIE0xNzcuMDAsMjA1LjAwIEwyMTUuOTcs
MjcyLjUwIEwxMzguMDYsMjcyLjUwIEwxNzcuMDMsMjA1LjAwIFoiXQogICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoMzE1LDY4LjQwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMTc1LjAwLDE4OC4wMCBMMTc5LjAwLDE4OC4w
MCBMMTc5LjAwLDE5Mi4wMCBMMTc1LjAwLDE5Mi4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDQwOC41MywyMzAuNDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0yMjYuOTYsMjc4LjAwIEwyMzAuOTYsMjc4LjAw
IEwyMzAuOTYsMjgyLjAwIEwyMjYuOTYsMjgyLjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMjIxLjQ3LDIzMC40MCkgc2l6ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTEyMy4wNCwyNzguMDAgTDEyNy4wNCwyNzguMDAg
TDEyNy4wNCwyODIuMDAgTDEyMy4wNCwyODIuMDAgWiJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDYtdC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRo
cy1kYXRhLTA2LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0wNi10LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4
MHgzNjAKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIzMC40MCwyMDUuMjApIHNpemUg
Ny4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0z
MjguMDAsMTE0LjAwIEwzMzIuMDAsMTE0LjAwIEwzMzIuMDAsMTE4LjAwIEwzMjguMDAsMTE4LjAw
IFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjMwLjQwLDI1OS4yMCkgc2l6ZSA3
LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTMy
OC4wMCwxNDQuMDAgTDMzMi4wMCwxNDQuMDAgTDMzMi4wMCwxNDguMDAgTDMyOC4wMCwxNDguMDAg
WiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2OC40MCwyNTkuMjApIHNpemUgNy4y
MHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yMzgu
MDAsMTQ0LjAwIEwyNDIuMDAsMTQ0LjAwIEwyNDIuMDAsMTQ4LjAwIEwyMzguMDAsMTQ4LjAwIFoi
XQotICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjcwLjAwLDEwMC44MCkgc2l6ZSAxNjJ4
MTYyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0zNTAuMDAs
NTYuMDAgTDM4MC4wMCw1Ni4wMCBMMzgwLjAwLDg2LjAwIEw0MTAuMDAsODYuMDAgTDQxMC4wMCwx
MTYuMDAgTDQ0MC4wMCwxMTYuMDAgTDQ0MC4wMCwxNDYuMDAgTDM1MC4wMCwxNDYuMDAgTDM1MC4w
MCw1Ni4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI3MCwxMDAuODApIHNp
emUgMTYyeDE2MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJN
MzUwLjAwLDU2LjAwIEwzODAuMDAsNTYuMDAgTDM4MC4wMCw4Ni4wMCBMNDEwLjAwLDg2LjAwIEw0
MTAuMDAsMTE2LjAwIEw0NDAuMDAsMTE2LjAwIEw0NDAuMDAsMTQ2LjAwIEwzNTAuMDAsMTQ2LjAw
IEwzNTAuMDAsNTYuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjYuNDAs
OTcuMjApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBd
fV0gW2RhdGE9Ik0zNDguMDAsNTQuMDAgTDM1Mi4wMCw1NC4wMCBMMzUyLjAwLDU4LjAwIEwzNDgu
MDAsNTguMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzMjAuNDAsOTcuMjAp
IHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2Rh
dGE9Ik0zNzguMDAsNTQuMDAgTDM4Mi4wMCw1NC4wMCBMMzgyLjAwLDU4LjAwIEwzNzguMDAsNTgu
MDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzMjAuNDAsMTUxLjIwKSBzaXpl
IDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJN
Mzc4LjAwLDg0LjAwIEwzODIuMDAsODQuMDAgTDM4Mi4wMCw4OC4wMCBMMzc4LjAwLDg4LjAwIFoi
XQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1k
YXRhLTA3LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0wNy10LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3Bh
dGhzLWRhdGEtMDctdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyMzAuNDAsMTc2LjQwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMzI4LjAwLDI0OC4wMCBMMzMyLjAwLDI0OC4wMCBMMzMy
LjAwLDI1Mi4wMCBMMzI4LjAwLDI1Mi4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDIzMC40MCwyMzAuNDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0zMjguMDAsMjc4LjAwIEwzMzIuMDAsMjc4LjAwIEwzMzIu
MDAsMjgyLjAwIEwzMjguMDAsMjgyLjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoNjguNDAsMjMwLjQwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMEZGXX1dIFtkYXRhPSJNMjM4LjAwLDI3OC4wMCBMMjQyLjAwLDI3OC4wMCBMMjQyLjAw
LDI4Mi4wMCBMMjM4LjAwLDI4Mi4wMCBaIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDI3MC4wMCw3Mi4wMCkgc2l6ZSAxNjJ4MTYyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkZGMDBdfV0gW2RhdGE9Ik0zNTAuMDAsMTkwLjAwIEwzODAuMDAsMTkwLjAwIEwzODAuMDAsMjIw
LjAwIEw0MTAuMDAsMjIwLjAwIEw0MTAuMDAsMjUwLjAwIEw0NDAuMDAsMjUwLjAwIEw0NDAuMDAs
MjgwLjAwIEwzNTAuMDAsMjgwLjAwIEwzNTAuMDAsMTkwLjAwIFoiXQorICAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMjcwLDcyKSBzaXplIDE2MngxNjIgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTM1MC4wMCwxOTAuMDAgTDM4MC4wMCwxOTAuMDAgTDM4
MC4wMCwyMjAuMDAgTDQxMC4wMCwyMjAuMDAgTDQxMC4wMCwyNTAuMDAgTDQ0MC4wMCwyNTAuMDAg
TDQ0MC4wMCwyODAuMDAgTDM1MC4wMCwyODAuMDAgTDM1MC4wMCwxOTAuMDAgWiJdCiAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjYuNDAsNjguNDApIHNpemUgNy4yMHg3LjIwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0zNDguMDAsMTg4LjAwIEwz
NTIuMDAsMTg4LjAwIEwzNTIuMDAsMTkyLjAwIEwzNDguMDAsMTkyLjAwIFoiXQogICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzIwLjQwLDY4LjQwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMzc4LjAwLDE4OC4wMCBMMzgy
LjAwLDE4OC4wMCBMMzgyLjAwLDE5Mi4wMCBMMzc4LjAwLDE5Mi4wMCBaIl0KICAgICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDMyMC40MCwxMjIuNDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0zNzguMDAsMjE4LjAwIEwzODIu
MDAsMjE4LjAwIEwzODIuMDAsMjIyLjAwIEwzNzguMDAsMjIyLjAwIFoiXQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA5LXQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvcGF0aHMtZGF0YS0wOS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDktdC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDcgKzE3LDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMDgsOTUuNDAp
IHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Rh
dGE9Ik02MC4wMCwyMDMuMDAgTDY0LjAwLDIwMy4wMCBMNjQuMDAsMjA3LjAwIEw2MC4wMCwyMDcu
MDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNzguMTUsMjE2LjkwKSBzaXpl
IDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJN
OTguOTcsMjcwLjUwIEwxMDIuOTcsMjcwLjUwIEwxMDIuOTcsMjc0LjUwIEw5OC45NywyNzQuNTAg
WiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNy44NSwyMTYuOTApIHNpemUgNy4y
MHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0yMS4w
MywyNzAuNTAgTDI1LjAzLDI3MC41MCBMMjUuMDMsMjc0LjUwIEwyMS4wMywyNzQuNTAgWiJdCi0g
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMjUuMDcsNzIuMDApIHNpemUgMTg3LjA2eDE2
MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBDMDAwXSBbZmlsbCBydWxlPUVWRU4tT0RE
XX1dIFtkYXRhPSJNMTc3LjAwLDE5MC4wMCBMMjI4Ljk2LDI4MC4wMCBMMTI1LjA0LDI4MC4wMCBM
MTc3LjAwLDE5MC4wMCBaIE0xNzcuMDAsMjA1LjAwIEwyMTUuOTcsMjcyLjUwIEwxMzguMDYsMjcy
LjUwIEwxNzcuMDMsMjA1LjAwIFoiXQorICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjI1
LjA3LDcyKSBzaXplIDE4Ny4wNngxNjIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwQzAw
MF0gW2ZpbGwgcnVsZT1FVkVOLU9ERF19XSBbZGF0YT0iTTE3Ny4wMCwxOTAuMDAgTDIyOC45Niwy
ODAuMDAgTDEyNS4wNCwyODAuMDAgTDE3Ny4wMCwxOTAuMDAgWiBNMTc3LjAwLDIwNS4wMCBMMjE1
Ljk3LDI3Mi41MCBMMTM4LjA2LDI3Mi41MCBMMTc3LjAzLDIwNS4wMCBaIl0KICAgICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDMxNSw2OC40MCkgc2l6ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTE3NS4wMCwxODguMDAgTDE3OS4wMCwx
ODguMDAgTDE3OS4wMCwxOTIuMDAgTDE3NS4wMCwxOTIuMDAgWiJdCiAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICg0MDguNTMsMjMwLjQwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMjI2Ljk2LDI3OC4wMCBMMjMwLjk2LDI3
OC4wMCBMMjMwLjk2LDI4Mi4wMCBMMjI2Ljk2LDI4Mi4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDIyMS40NywyMzAuNDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0xMjMuMDQsMjc4LjAwIEwxMjcuMDQsMjc4
LjAwIEwxMjcuMDQsMjgyLjAwIEwxMjMuMDQsMjgyLjAwIFoiXQpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTE1LXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEv
cGF0aHMtZGF0YS0xNS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMTUtdC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUg
NDgweDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNzEuMTUsMTExLjI1KSBzaXpl
IDMyNS43MXgyOS40OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdIFtzdHJv
a2Ugd2lkdGg9My4wMF19XSBbZGF0YT0iTTIwLjAwLDIwLjAwIEM0MC4wMCwxMy4zMyw2MC4wMCwx
My4zMyw4MC4wMCwyMC4wMCBDMTAwLjAwLDI2LjY3LDEyMC4wMCwyNi42NywxNDAuMDAsMjAuMDAg
QzE2MC4wMCwxMy4zMywxODAuMDAsMTMuMzMsMjAwLjAwLDIwLjAwIl0KICAgICAgICAgUmVuZGVy
UGF0aCB7cGF0aH0gYXQgKDcyLDE3Ny4zMCkgc2l6ZSAxMDh4NS40MCBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lkdGg9My4wMF19XSBbZGF0YT0iTTIwLjAw
LDUwLjAwIEMyMC4wMCw1MC4wMCwzMC4wMCw1MC4wMCw1MC4wMCw1MC4wMCBDNzAuMDAsNTAuMDAs
ODAuMDAsNTAuMDAsODAuMDAsNTAuMDAiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NzEuMTAsMTc5LjEwKSBzaXplIDl4OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTIwLjAw
LDUwLjAwIEwyNC4wMCw1MC4wMCBMMjQuMDAsNTQuMDAgTDIwLjAwLDU0LjAwIFoiXQotICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTI1LjEwLDE3OS4xMCkgc2l6ZSA5eDkgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwRkZdfV0gW2RhdGE9Ik01MC4wMCw1MC4wMCBMNTQuMDAsNTAuMDAgTDU0LjAwLDU0LjAw
IEw1MC4wMCw1NC4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEyNS4xMCwx
NzkuMTApIHNpemUgOS4wMHg5IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNNTAuMDAsNTAu
MDAgTDU0LjAwLDUwLjAwIEw1NC4wMCw1NC4wMCBMNTAuMDAsNTQuMDAgWiJdCiAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgxNzkuMTAsMTc5LjEwKSBzaXplIDl4OSBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDBGRl19XSBbZGF0YT0iTTgwLjAwLDUwLjAwIEw4NC4wMCw1MC4wMCBMODQuMDAsNTQuMDAgTDgw
LjAwLDU0LjAwIFoiXQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwzNDApIHNpemUg
MjY0eDQ2IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMDktYi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wc2VydmVy
cy1ncmFkLTA5LWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0wOS1iLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0
ODB4MzYwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiBsYXllciBhdCAoMCww
KSBzaXplIDQ4MHgzNjAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMC41MCwwLjUwKSBzaXpl
IDQ3OXgzNTkKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMC4wMCwxMSkgc2l6ZSA0
MzB4MjgyCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTAsMTEpIHNpemUgNDMweDI4
MgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDI1KSBzaXplIDE5NHgxNyBjb250
YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAo
MCwtMTQpIHNpemUgMTk0eDE3CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4w
MCwyNS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMzEgd2lkdGggMTk0LjAwOiAiVGVzdGlu
ZyBncmFkaWVudFVuaXRzIGF0dHJpYnV0ZSIKQEAgLTMyLDcgKzMyLDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA0ODB4MzYwCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2xpbmVhckdy
YWRpZW50fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3Ag
e3N0b3B9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclNWR0dyYWRpZW50U3RvcCB7
c3RvcH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMC4w
MCwyMTAuMDApIHNpemUgNDMweDUwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwt
MC4wMCkpIHQ9KDEwLjAwLDI2MC4wMCl9XSBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5UXSBb
c3RvcHM9WygwLjAwLCNGRjAwMDApLCAoMS4wMCwjMDAwMEZGKV1dIFtib3VuZGluZyBib3ggbW9k
ZT0wXSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDAsNDMwKV19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNTAu
MDAsMC4wMCBMNTAuMDAsNDMwLjAwIEwwLjAwLDQzMC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgxMCwyMTApIHNpemUgNDMweDUwIFt0cmFuc2Zvcm09e209KCgwLjAwLC0xLjAw
KSgxLjAwLDAuMDApKSB0PSgxMC4wMCwyNjAuMDApfV0gW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFE
SUVOVF0gW3N0b3BzPVsoMC4wMCwjRkYwMDAwKSwgKDEuMDAsIzAwMDBGRildXSBbYm91bmRpbmcg
Ym94IG1vZGU9MF0gW3N0YXJ0PSgwLDApXSBbZW5kPSgwLDQzMCldfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgTDUwLjAwLDAuMDAgTDUwLjAwLDQzMC4wMCBMMC4wMCw0MzAuMDAgWiJdCiAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsMjc1KSBzaXplIDE3N3gxNCBjb250YWlucyAxIGNodW5r
KHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTEpIHNpemUg
MTc3eDE0CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwyNzUuMDApIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDI4IHdpZHRoIDE3Ny4wMDogImdyYWRpZW50VW5pdHM9dXNl
clNwYWNlT25Vc2UiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkct
MS4xL3BzZXJ2ZXJzLWdyYWQtMTItYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTEyLWItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0xMi1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNSw3ICs1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAK
ICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMC41MCwwLjUwKSBzaXplIDQ3OXgzNTkKLSAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMC4wMCwxMSkgc2l6ZSA0NjB4MjgyCisgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTAsMTEpIHNpemUgNDYweDI4MgogICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDI1KSBzaXplIDE5NHgxNyBjb250YWlucyAxIGNodW5rKHMp
CiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMTk0
eDE3CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwyNS4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgMzEgd2lkdGggMTk0LjAwOiAiVGVzdGluZyBncmFkaWVudFVuaXRz
IGF0dHJpYnV0ZSIKQEAgLTMyLDcgKzMyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYw
CiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge3JhZGlhbEdyYWRpZW50fSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3Age3N0b3B9IGF0ICgwLDAp
IHNpemUgMHgwCiAgICAgICAgIFJlbmRlclNWR0dyYWRpZW50U3RvcCB7c3RvcH0gYXQgKDAsMCkg
c2l6ZSAweDAKLSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMC4wMCwyMTAuMDApIHNpemUg
NDYweDUwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDEwLjAw
LDI2MC4wMCl9XSBbZmlsbD17W3R5cGU9UkFESUFMLUdSQURJRU5UXSBbc3RvcHM9WygwLjAwLCNG
RjAwMDApLCAoMS4wMCwjMDAwMEZGKV1dIFtib3VuZGluZyBib3ggbW9kZT0wXSBbY2VudGVyPSgy
NSwyMTUpXSBbZm9jYWw9KDI1LDIxNSldIFtyYWRpdXM9MjUuMDBdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgTDUwLjAwLDAuMDAgTDUwLjAwLDQ2MC4wMCBMMC4wMCw0NjAuMDAgWiJdCisgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTAsMjEwKSBzaXplIDQ2MHg1MCBbdHJhbnNmb3JtPXttPSgoMC4w
MCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMTAuMDAsMjYwLjAwKX1dIFtmaWxsPXtbdHlwZT1SQURJ
QUwtR1JBRElFTlRdIFtzdG9wcz1bKDAuMDAsI0ZGMDAwMCksICgxLjAwLCMwMDAwRkYpXV0gW2Jv
dW5kaW5nIGJveCBtb2RlPTBdIFtjZW50ZXI9KDI1LDIxNSldIFtmb2NhbD0oMjUsMjE1KV0gW3Jh
ZGl1cz0yNS4wMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNTAuMDAsMC4wMCBMNTAuMDAsNDYwLjAw
IEwwLjAwLDQ2MC4wMCBaIl0KICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwyNzUp
IHNpemUgMTc3eDE0IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0xMSkgc2l6ZSAxNzd4MTQKICAgICAgICAgICBjaHVuayAxIHRl
eHQgcnVuIDEgYXQgKDEwLjAwLDI3NS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMjggd2lk
dGggMTc3LjAwOiAiZ3JhZGllbnRVbml0cz11c2VyU3BhY2VPblVzZSIKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0xNy1iLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xL3BzZXJ2ZXJzLWdyYWQtMTctYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFk
LTE3LWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDku
ODUsODEuODUpIHNpemUgMTQ0LjMweDE0NC4zMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLC02MC4wMCBMNDgwLjAwLC02MC4wMCBMNDgwLjAwLDQy
MC4wMCBMMC4wMCw0MjAuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1MCwx
NTEpIHNpemUgMTQ0eDYgW3N0cm9rZT17W3R5cGU9TElORUFSLUdSQURJRU5UXSBbc3RvcHM9Wygw
LjAwLCMwMDAwMDApLCAoMS4wMCwjRkZGRkZGKV1dIFtzdGFydD0oMCwwKV0gW2VuZD0oMSwwKV0g
W3N0cm9rZSB3aWR0aD0yMC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMC4wMCwxODAuMDAgTDQ4MC4wMCwxODAuMDAiXQogICAgICAgICBSZW5kZXJQ
YXRoIHtsaW5lfSBhdCAoNjguOTcsMTAwLjk3KSBzaXplIDEwNi4wN3gxMDYuMDcgW3RyYW5zZm9y
bT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDE5Ny41NywtMTE2Ljk4KX1dIFtzdHJv
a2U9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0b3BzPVsoMC4wMCwjMDAwMDAwKSwgKDEuMDAs
I0ZGRkZGRildXSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMCldIFtzdHJva2Ugd2lkdGg9MjAuMDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTgw
LjAwIEw0ODAuMDAsMTgwLjAwIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDExOS4w
MCw4Mikgc2l6ZSA2eDE0NCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDAp
KSB0PSg0MjAuMDAsLTYwLjAwKX1dIFtzdHJva2U9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0
b3BzPVsoMC4wMCwjMDAwMDAwKSwgKDEuMDAsI0ZGRkZGRildXSBbc3RhcnQ9KDAsMCldIFtlbmQ9
KDEsMCldIFtzdHJva2Ugd2lkdGg9MjAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTgwLjAwIEw0ODAuMDAsMTgwLjAwIl0KKyAgICAgICAg
UmVuZGVyUGF0aCB7bGluZX0gYXQgKDExOSw4Mikgc2l6ZSA2eDE0NCBbdHJhbnNmb3JtPXttPSgo
MC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oNDIwLjAwLC02MC4wMCl9XSBbc3Ryb2tlPXtbdHlw
ZT1MSU5FQVItR1JBRElFTlRdIFtzdG9wcz1bKDAuMDAsIzAwMDAwMCksICgxLjAwLCNGRkZGRkYp
XV0gW3N0YXJ0PSgwLDApXSBbZW5kPSgxLDApXSBbc3Ryb2tlIHdpZHRoPTIwLjAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLDE4MC4wMCBMNDgw
LjAwLDE4MC4wMCJdCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2OC44OCwxMDAuODgp
IHNpemUgMTA2LjI0eDEwNi4yNCBbc3Ryb2tlPXtbdHlwZT1MSU5FQVItR1JBRElFTlRdIFtzdG9w
cz1bKDAuMDAsIzAwMDAwMCksICgxLjAwLCNGRkZGRkYpXV0gW3N0YXJ0PSgwLDApXSBbZW5kPSgx
LDApXSBbc3Ryb2tlIHdpZHRoPTIwLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik00MTAuMDAsMTAuMDAgTDcwLjAwLDM1MC4wMCJdCiAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoODQsMjUwKSBzaXplIDcyeDE4IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3
MngxOApAQCAtMjEsNyArMjEsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI3OS44NSw4MS44NSkgc2l6ZSAxNDQuMzB4MTQ0LjMw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsLTYw
LjAwIEw0ODAuMDAsLTYwLjAwIEw0ODAuMDAsNDIwLjAwIEwwLjAwLDQyMC4wMCBaIl0KICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI4MCwxNTEpIHNpemUgMTQ0eDYgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAsMTcw
LjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDI5OC45NywxMDAuOTcpIHNpemUgMTA2LjA3eDEwNi4wNyBbdHJhbnNmb3JtPXtt
PSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTk3LjU3LC0xMTYuOTgpfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAs
MTcwLjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4wMCBaIl0KLSAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDM0OSw4Mikgc2l6ZSA2eDE0NCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4w
MCkoLTEuMDAsLTAuMDApKSB0PSg0MjAuMDAsLTYwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLDE3MC4wMCBMNDgwLjAwLDE3MC4wMCBMNDgw
LjAwLDE5MC4wMCBMMC4wMCwxOTAuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgzNDksODIpIHNpemUgNngxNDQgW3RyYW5zZm9ybT17bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4w
MCkpIHQ9KDQyMC4wMCwtNjAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAsMTcwLjAwIEw0ODAuMDAsMTkwLjAwIEww
LjAwLDE5MC4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI5OC45NywxMDAu
OTcpIHNpemUgMTA2LjA3eDEwNi4wNyBbdHJhbnNmb3JtPXttPSgoMC43MSwtMC43MSkoMC43MSww
LjcxKSkgdD0oLTU2Ljk4LDIyMi40Myl9XSBbZmlsbD17W3R5cGU9TElORUFSLUdSQURJRU5UXSBb
c3RvcHM9WygwLjAwLCMwMDAwMDApLCAoMS4wMCwjRkZGRkZGKV1dIFtzdGFydD0oMCwwKV0gW2Vu
ZD0oMSwwKV19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAsMTcwLjAwIEw0ODAuMDAsMTkw
LjAwIEwwLjAwLDE5MC4wMCBaIl0KICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMTQs
MjUwKSBzaXplIDcyeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOApJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9zdHJ1Y3QtZnJhZy0wMi10LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4x
L3N0cnVjdC1mcmFnLTAyLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWZyYWctMDItdC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgNDgweDM2MAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgtMi40MCwtMS44MCkgc2l6ZSA0
ODQuODB4MzYzLjYwCiAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDQ4
MHgzNjAKICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMjQweDE4MCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jREMxNDNDXX1dIFtkYXRhPSJNMTAwLjAwLDEwMC4wMCBM
MTUwLjAwLDEwMC4wMCBMMTUwLjAwLDE1MC4wMCBMMTAwLjAwLDE1MC4wMCBaIl0KLSAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgyNDAsMTgwLjAwKSBzaXplIDI0MHgxODAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0RDMTQzQ119XSBbZGF0YT0iTTE1MC4wMCwxNTAuMDAgTDIwMC4wMCwx
NTAuMDAgTDIwMC4wMCwyMDAuMDAgTDE1MC4wMCwyMDAuMDAgWiJdCi0gICAgICBSZW5kZXJQYXRo
IHtjaXJjbGV9IGF0ICgwLDE4MC4wMCkgc2l6ZSAyNDB4MTgwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRkQ3MDBdfV0gW2RhdGE9Ik0xNTAuMDAsMTc1LjAwIEwxNDkuOTUsMTc2LjU3IEwx
NDkuODAsMTc4LjEzIEwxNDkuNTYsMTc5LjY4IEwxNDkuMjEsMTgxLjIyIEwxNDguNzgsMTgyLjcz
IEwxNDguMjQsMTg0LjIwIEwxNDcuNjIsMTg1LjY0IEwxNDYuOTEsMTg3LjA0IEwxNDYuMTEsMTg4
LjQwIEwxNDUuMjMsMTg5LjY5IEwxNDQuMjYsMTkwLjk0IEwxNDMuMjIsMTkyLjExIEwxNDIuMTEs
MTkzLjIyIEwxNDAuOTQsMTk0LjI2IEwxMzkuNjksMTk1LjIzIEwxMzguNDAsMTk2LjExIEwxMzcu
MDQsMTk2LjkxIEwxMzUuNjQsMTk3LjYyIEwxMzQuMjAsMTk4LjI0IEwxMzIuNzMsMTk4Ljc4IEwx
MzEuMjIsMTk5LjIxIEwxMjkuNjgsMTk5LjU2IEwxMjguMTMsMTk5LjgwIEwxMjYuNTcsMTk5Ljk1
IEwxMjUuMDAsMjAwLjAwIEwxMjMuNDMsMTk5Ljk1IEwxMjEuODcsMTk5LjgwIEwxMjAuMzIsMTk5
LjU2IEwxMTguNzgsMTk5LjIxIEwxMTcuMjcsMTk4Ljc4IEwxMTUuODAsMTk4LjI0IEwxMTQuMzYs
MTk3LjYyIEwxMTIuOTYsMTk2LjkxIEwxMTEuNjAsMTk2LjExIEwxMTAuMzEsMTk1LjIzIEwxMDku
MDYsMTk0LjI2IEwxMDcuODksMTkzLjIyIEwxMDYuNzgsMTkyLjExIEwxMDUuNzQsMTkwLjk0IEwx
MDQuNzcsMTg5LjY5IEwxMDMuODksMTg4LjQwIEwxMDMuMDksMTg3LjA0IEwxMDIuMzgsMTg1LjY0
IEwxMDEuNzYsMTg0LjIwIEwxMDEuMjIsMTgyLjczIEwxMDAuNzksMTgxLjIyIEwxMDAuNDQsMTc5
LjY4IEwxMDAuMjAsMTc4LjEzIEwxMDAuMDUsMTc2LjU3IEwxMDAuMDAsMTc1LjAwIEwxMDAuMDUs
MTczLjQzIEwxMDAuMjAsMTcxLjg3IEwxMDAuNDQsMTcwLjMyIEwxMDAuNzksMTY4Ljc4IEwxMDEu
MjIsMTY3LjI3IEwxMDEuNzYsMTY1LjgwIEwxMDIuMzgsMTY0LjM2IEwxMDMuMDksMTYyLjk2IEwx
MDMuODksMTYxLjYwIEwxMDQuNzcsMTYwLjMxIEwxMDUuNzQsMTU5LjA2IEwxMDYuNzgsMTU3Ljg5
IEwxMDcuODksMTU2Ljc4IEwxMDkuMDYsMTU1Ljc0IEwxMTAuMzEsMTU0Ljc3IEwxMTEuNjAsMTUz
Ljg5IEwxMTIuOTYsMTUzLjA5IEwxMTQuMzYsMTUyLjM4IEwxMTUuODAsMTUxLjc2IEwxMTcuMjcs
MTUxLjIyIEwxMTguNzgsMTUwLjc5IEwxMjAuMzIsMTUwLjQ0IEwxMjEuODcsMTUwLjIwIEwxMjMu
NDMsMTUwLjA1IEwxMjUuMDAsMTUwLjAwIEwxMjYuNTcsMTUwLjA1IEwxMjguMTMsMTUwLjIwIEwx
MjkuNjgsMTUwLjQ0IEwxMzEuMjIsMTUwLjc5IEwxMzIuNzMsMTUxLjIyIEwxMzQuMjAsMTUxLjc2
IEwxMzUuNjQsMTUyLjM4IEwxMzcuMDQsMTUzLjA5IEwxMzguNDAsMTUzLjg5IEwxMzkuNjksMTU0
Ljc3IEwxNDAuOTQsMTU1Ljc0IEwxNDIuMTEsMTU2Ljc4IEwxNDMuMjIsMTU3Ljg5IEwxNDQuMjYs
MTU5LjA2IEwxNDUuMjMsMTYwLjMxIEwxNDYuMTEsMTYxLjYwIEwxNDYuOTEsMTYyLjk2IEwxNDcu
NjIsMTY0LjM2IEwxNDguMjQsMTY1LjgwIEwxNDguNzgsMTY3LjI3IEwxNDkuMjEsMTY4Ljc4IEwx
NDkuNTYsMTcwLjMyIEwxNDkuODAsMTcxLjg3IEwxNDkuOTUsMTczLjQzIFoiXQorICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDI0MCwxODApIHNpemUgMjQweDE4MCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jREMxNDNDXX1dIFtkYXRhPSJNMTUwLjAwLDE1MC4wMCBMMjAwLjAwLDE1MC4w
MCBMMjAwLjAwLDIwMC4wMCBMMTUwLjAwLDIwMC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge2Np
cmNsZX0gYXQgKDAsMTgwKSBzaXplIDI0MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGRDcwMF19XSBbZGF0YT0iTTE1MC4wMCwxNzUuMDAgTDE0OS45NSwxNzYuNTcgTDE0OS44MCwx
NzguMTMgTDE0OS41NiwxNzkuNjggTDE0OS4yMSwxODEuMjIgTDE0OC43OCwxODIuNzMgTDE0OC4y
NCwxODQuMjAgTDE0Ny42MiwxODUuNjQgTDE0Ni45MSwxODcuMDQgTDE0Ni4xMSwxODguNDAgTDE0
NS4yMywxODkuNjkgTDE0NC4yNiwxOTAuOTQgTDE0My4yMiwxOTIuMTEgTDE0Mi4xMSwxOTMuMjIg
TDE0MC45NCwxOTQuMjYgTDEzOS42OSwxOTUuMjMgTDEzOC40MCwxOTYuMTEgTDEzNy4wNCwxOTYu
OTEgTDEzNS42NCwxOTcuNjIgTDEzNC4yMCwxOTguMjQgTDEzMi43MywxOTguNzggTDEzMS4yMiwx
OTkuMjEgTDEyOS42OCwxOTkuNTYgTDEyOC4xMywxOTkuODAgTDEyNi41NywxOTkuOTUgTDEyNS4w
MCwyMDAuMDAgTDEyMy40MywxOTkuOTUgTDEyMS44NywxOTkuODAgTDEyMC4zMiwxOTkuNTYgTDEx
OC43OCwxOTkuMjEgTDExNy4yNywxOTguNzggTDExNS44MCwxOTguMjQgTDExNC4zNiwxOTcuNjIg
TDExMi45NiwxOTYuOTEgTDExMS42MCwxOTYuMTEgTDExMC4zMSwxOTUuMjMgTDEwOS4wNiwxOTQu
MjYgTDEwNy44OSwxOTMuMjIgTDEwNi43OCwxOTIuMTEgTDEwNS43NCwxOTAuOTQgTDEwNC43Nywx
ODkuNjkgTDEwMy44OSwxODguNDAgTDEwMy4wOSwxODcuMDQgTDEwMi4zOCwxODUuNjQgTDEwMS43
NiwxODQuMjAgTDEwMS4yMiwxODIuNzMgTDEwMC43OSwxODEuMjIgTDEwMC40NCwxNzkuNjggTDEw
MC4yMCwxNzguMTMgTDEwMC4wNSwxNzYuNTcgTDEwMC4wMCwxNzUuMDAgTDEwMC4wNSwxNzMuNDMg
TDEwMC4yMCwxNzEuODcgTDEwMC40NCwxNzAuMzIgTDEwMC43OSwxNjguNzggTDEwMS4yMiwxNjcu
MjcgTDEwMS43NiwxNjUuODAgTDEwMi4zOCwxNjQuMzYgTDEwMy4wOSwxNjIuOTYgTDEwMy44OSwx
NjEuNjAgTDEwNC43NywxNjAuMzEgTDEwNS43NCwxNTkuMDYgTDEwNi43OCwxNTcuODkgTDEwNy44
OSwxNTYuNzggTDEwOS4wNiwxNTUuNzQgTDExMC4zMSwxNTQuNzcgTDExMS42MCwxNTMuODkgTDEx
Mi45NiwxNTMuMDkgTDExNC4zNiwxNTIuMzggTDExNS44MCwxNTEuNzYgTDExNy4yNywxNTEuMjIg
TDExOC43OCwxNTAuNzkgTDEyMC4zMiwxNTAuNDQgTDEyMS44NywxNTAuMjAgTDEyMy40MywxNTAu
MDUgTDEyNS4wMCwxNTAuMDAgTDEyNi41NywxNTAuMDUgTDEyOC4xMywxNTAuMjAgTDEyOS42OCwx
NTAuNDQgTDEzMS4yMiwxNTAuNzkgTDEzMi43MywxNTEuMjIgTDEzNC4yMCwxNTEuNzYgTDEzNS42
NCwxNTIuMzggTDEzNy4wNCwxNTMuMDkgTDEzOC40MCwxNTMuODkgTDEzOS42OSwxNTQuNzcgTDE0
MC45NCwxNTUuNzQgTDE0Mi4xMSwxNTYuNzggTDE0My4yMiwxNTcuODkgTDE0NC4yNiwxNTkuMDYg
TDE0NS4yMywxNjAuMzEgTDE0Ni4xMSwxNjEuNjAgTDE0Ni45MSwxNjIuOTYgTDE0Ny42MiwxNjQu
MzYgTDE0OC4yNCwxNjUuODAgTDE0OC43OCwxNjcuMjcgTDE0OS4yMSwxNjguNzggTDE0OS41Niwx
NzAuMzIgTDE0OS44MCwxNzEuODcgTDE0OS45NSwxNzMuNDMgWiJdCiAgICAgICBSZW5kZXJQYXRo
IHtjaXJjbGV9IGF0ICgyNDAsMCkgc2l6ZSAyNDB4MTgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkQ3MDBdfV0gW2RhdGE9Ik0yMDAuMDAsMTI1LjAwIEwxOTkuOTUsMTI2LjU3IEwxOTku
ODAsMTI4LjEzIEwxOTkuNTYsMTI5LjY4IEwxOTkuMjEsMTMxLjIyIEwxOTguNzgsMTMyLjczIEwx
OTguMjQsMTM0LjIwIEwxOTcuNjIsMTM1LjY0IEwxOTYuOTEsMTM3LjA0IEwxOTYuMTEsMTM4LjQw
IEwxOTUuMjMsMTM5LjY5IEwxOTQuMjYsMTQwLjk0IEwxOTMuMjIsMTQyLjExIEwxOTIuMTEsMTQz
LjIyIEwxOTAuOTQsMTQ0LjI2IEwxODkuNjksMTQ1LjIzIEwxODguNDAsMTQ2LjExIEwxODcuMDQs
MTQ2LjkxIEwxODUuNjQsMTQ3LjYyIEwxODQuMjAsMTQ4LjI0IEwxODIuNzMsMTQ4Ljc4IEwxODEu
MjIsMTQ5LjIxIEwxNzkuNjgsMTQ5LjU2IEwxNzguMTMsMTQ5LjgwIEwxNzYuNTcsMTQ5Ljk1IEwx
NzUuMDAsMTUwLjAwIEwxNzMuNDMsMTQ5Ljk1IEwxNzEuODcsMTQ5LjgwIEwxNzAuMzIsMTQ5LjU2
IEwxNjguNzgsMTQ5LjIxIEwxNjcuMjcsMTQ4Ljc4IEwxNjUuODAsMTQ4LjI0IEwxNjQuMzYsMTQ3
LjYyIEwxNjIuOTYsMTQ2LjkxIEwxNjEuNjAsMTQ2LjExIEwxNjAuMzEsMTQ1LjIzIEwxNTkuMDYs
MTQ0LjI2IEwxNTcuODksMTQzLjIyIEwxNTYuNzgsMTQyLjExIEwxNTUuNzQsMTQwLjk0IEwxNTQu
NzcsMTM5LjY5IEwxNTMuODksMTM4LjQwIEwxNTMuMDksMTM3LjA0IEwxNTIuMzgsMTM1LjY0IEwx
NTEuNzYsMTM0LjIwIEwxNTEuMjIsMTMyLjczIEwxNTAuNzksMTMxLjIyIEwxNTAuNDQsMTI5LjY4
IEwxNTAuMjAsMTI4LjEzIEwxNTAuMDUsMTI2LjU3IEwxNTAuMDAsMTI1LjAwIEwxNTAuMDUsMTIz
LjQzIEwxNTAuMjAsMTIxLjg3IEwxNTAuNDQsMTIwLjMyIEwxNTAuNzksMTE4Ljc4IEwxNTEuMjIs
MTE3LjI3IEwxNTEuNzYsMTE1LjgwIEwxNTIuMzgsMTE0LjM2IEwxNTMuMDksMTEyLjk2IEwxNTMu
ODksMTExLjYwIEwxNTQuNzcsMTEwLjMxIEwxNTUuNzQsMTA5LjA2IEwxNTYuNzgsMTA3Ljg5IEwx
NTcuODksMTA2Ljc4IEwxNTkuMDYsMTA1Ljc0IEwxNjAuMzEsMTA0Ljc3IEwxNjEuNjAsMTAzLjg5
IEwxNjIuOTYsMTAzLjA5IEwxNjQuMzYsMTAyLjM4IEwxNjUuODAsMTAxLjc2IEwxNjcuMjcsMTAx
LjIyIEwxNjguNzgsMTAwLjc5IEwxNzAuMzIsMTAwLjQ0IEwxNzEuODcsMTAwLjIwIEwxNzMuNDMs
MTAwLjA1IEwxNzUuMDAsMTAwLjAwIEwxNzYuNTcsMTAwLjA1IEwxNzguMTMsMTAwLjIwIEwxNzku
NjgsMTAwLjQ0IEwxODEuMjIsMTAwLjc5IEwxODIuNzMsMTAxLjIyIEwxODQuMjAsMTAxLjc2IEwx
ODUuNjQsMTAyLjM4IEwxODcuMDQsMTAzLjA5IEwxODguNDAsMTAzLjg5IEwxODkuNjksMTA0Ljc3
IEwxOTAuOTQsMTA1Ljc0IEwxOTIuMTEsMTA2Ljc4IEwxOTMuMjIsMTA3Ljg5IEwxOTQuMjYsMTA5
LjA2IEwxOTUuMjMsMTEwLjMxIEwxOTYuMTEsMTExLjYwIEwxOTYuOTEsMTEyLjk2IEwxOTcuNjIs
MTE0LjM2IEwxOTguMjQsMTE1LjgwIEwxOTguNzgsMTE3LjI3IEwxOTkuMjEsMTE4Ljc4IEwxOTku
NTYsMTIwLjMyIEwxOTkuODAsMTIxLjg3IEwxOTkuOTUsMTIzLjQzIFoiXQogICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICgxMDUsMTk1KSBzaXplIDY4eDEzIGNvbnRhaW5zIDEgY2h1bmsocykK
ICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTApIHNpemUgNjh4MTMK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWZy
YWctMDMtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9zdHJ1Y3QtZnJhZy0wMy10LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3N0
cnVjdC1mcmFnLTAzLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDExICsyLDEx
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNDgweDM2MAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgIFJlbmRlclNWR1Jvb3Qg
e3N2Z30gYXQgKDU4LjIwLC0xLjgwKSBzaXplIDM2My42MHgzNjMuNjAKLSAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg2MC4wMCwwKSBzaXplIDM2MHgzNjAKLSAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICg2MC4wMCwwKSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0RDMTQzQ119XSBbZGF0YT0iTTEwMC4wMCwxMDAuMDAgTDE1MC4wMCwxMDAuMDAgTDE1MC4w
MCwxNTAuMDAgTDEwMC4wMCwxNTAuMDAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MjQwLjAwLDE4MC4wMCkgc2l6ZSAxODB4MTgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNE
QzE0M0NdfV0gW2RhdGE9Ik0xNTAuMDAsMTUwLjAwIEwyMDAuMDAsMTUwLjAwIEwyMDAuMDAsMjAw
LjAwIEwxNTAuMDAsMjAwLjAwIFoiXQotICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNjAu
MDAsMTgwLjAwKSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRDcw
MF19XSBbZGF0YT0iTTE1MC4wMCwxNzUuMDAgTDE0OS45NSwxNzYuNTcgTDE0OS44MCwxNzguMTMg
TDE0OS41NiwxNzkuNjggTDE0OS4yMSwxODEuMjIgTDE0OC43OCwxODIuNzMgTDE0OC4yNCwxODQu
MjAgTDE0Ny42MiwxODUuNjQgTDE0Ni45MSwxODcuMDQgTDE0Ni4xMSwxODguNDAgTDE0NS4yMywx
ODkuNjkgTDE0NC4yNiwxOTAuOTQgTDE0My4yMiwxOTIuMTEgTDE0Mi4xMSwxOTMuMjIgTDE0MC45
NCwxOTQuMjYgTDEzOS42OSwxOTUuMjMgTDEzOC40MCwxOTYuMTEgTDEzNy4wNCwxOTYuOTEgTDEz
NS42NCwxOTcuNjIgTDEzNC4yMCwxOTguMjQgTDEzMi43MywxOTguNzggTDEzMS4yMiwxOTkuMjEg
TDEyOS42OCwxOTkuNTYgTDEyOC4xMywxOTkuODAgTDEyNi41NywxOTkuOTUgTDEyNS4wMCwyMDAu
MDAgTDEyMy40MywxOTkuOTUgTDEyMS44NywxOTkuODAgTDEyMC4zMiwxOTkuNTYgTDExOC43OCwx
OTkuMjEgTDExNy4yNywxOTguNzggTDExNS44MCwxOTguMjQgTDExNC4zNiwxOTcuNjIgTDExMi45
NiwxOTYuOTEgTDExMS42MCwxOTYuMTEgTDExMC4zMSwxOTUuMjMgTDEwOS4wNiwxOTQuMjYgTDEw
Ny44OSwxOTMuMjIgTDEwNi43OCwxOTIuMTEgTDEwNS43NCwxOTAuOTQgTDEwNC43NywxODkuNjkg
TDEwMy44OSwxODguNDAgTDEwMy4wOSwxODcuMDQgTDEwMi4zOCwxODUuNjQgTDEwMS43NiwxODQu
MjAgTDEwMS4yMiwxODIuNzMgTDEwMC43OSwxODEuMjIgTDEwMC40NCwxNzkuNjggTDEwMC4yMCwx
NzguMTMgTDEwMC4wNSwxNzYuNTcgTDEwMC4wMCwxNzUuMDAgTDEwMC4wNSwxNzMuNDMgTDEwMC4y
MCwxNzEuODcgTDEwMC40NCwxNzAuMzIgTDEwMC43OSwxNjguNzggTDEwMS4yMiwxNjcuMjcgTDEw
MS43NiwxNjUuODAgTDEwMi4zOCwxNjQuMzYgTDEwMy4wOSwxNjIuOTYgTDEwMy44OSwxNjEuNjAg
TDEwNC43NywxNjAuMzEgTDEwNS43NCwxNTkuMDYgTDEwNi43OCwxNTcuODkgTDEwNy44OSwxNTYu
NzggTDEwOS4wNiwxNTUuNzQgTDExMC4zMSwxNTQuNzcgTDExMS42MCwxNTMuODkgTDExMi45Niwx
NTMuMDkgTDExNC4zNiwxNTIuMzggTDExNS44MCwxNTEuNzYgTDExNy4yNywxNTEuMjIgTDExOC43
OCwxNTAuNzkgTDEyMC4zMiwxNTAuNDQgTDEyMS44NywxNTAuMjAgTDEyMy40MywxNTAuMDUgTDEy
NS4wMCwxNTAuMDAgTDEyNi41NywxNTAuMDUgTDEyOC4xMywxNTAuMjAgTDEyOS42OCwxNTAuNDQg
TDEzMS4yMiwxNTAuNzkgTDEzMi43MywxNTEuMjIgTDEzNC4yMCwxNTEuNzYgTDEzNS42NCwxNTIu
MzggTDEzNy4wNCwxNTMuMDkgTDEzOC40MCwxNTMuODkgTDEzOS42OSwxNTQuNzcgTDE0MC45NCwx
NTUuNzQgTDE0Mi4xMSwxNTYuNzggTDE0My4yMiwxNTcuODkgTDE0NC4yNiwxNTkuMDYgTDE0NS4y
MywxNjAuMzEgTDE0Ni4xMSwxNjEuNjAgTDE0Ni45MSwxNjIuOTYgTDE0Ny42MiwxNjQuMzYgTDE0
OC4yNCwxNjUuODAgTDE0OC43OCwxNjcuMjcgTDE0OS4yMSwxNjguNzggTDE0OS41NiwxNzAuMzIg
TDE0OS44MCwxNzEuODcgTDE0OS45NSwxNzMuNDMgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgyNDAuMDAsMCkgc2l6ZSAxODB4MTgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkQ3MDBdfV0gW2RhdGE9Ik0yMDAuMDAsMTI1LjAwIEwxOTkuOTUsMTI2LjU3IEwxOTkuODAs
MTI4LjEzIEwxOTkuNTYsMTI5LjY4IEwxOTkuMjEsMTMxLjIyIEwxOTguNzgsMTMyLjczIEwxOTgu
MjQsMTM0LjIwIEwxOTcuNjIsMTM1LjY0IEwxOTYuOTEsMTM3LjA0IEwxOTYuMTEsMTM4LjQwIEwx
OTUuMjMsMTM5LjY5IEwxOTQuMjYsMTQwLjk0IEwxOTMuMjIsMTQyLjExIEwxOTIuMTEsMTQzLjIy
IEwxOTAuOTQsMTQ0LjI2IEwxODkuNjksMTQ1LjIzIEwxODguNDAsMTQ2LjExIEwxODcuMDQsMTQ2
LjkxIEwxODUuNjQsMTQ3LjYyIEwxODQuMjAsMTQ4LjI0IEwxODIuNzMsMTQ4Ljc4IEwxODEuMjIs
MTQ5LjIxIEwxNzkuNjgsMTQ5LjU2IEwxNzguMTMsMTQ5LjgwIEwxNzYuNTcsMTQ5Ljk1IEwxNzUu
MDAsMTUwLjAwIEwxNzMuNDMsMTQ5Ljk1IEwxNzEuODcsMTQ5LjgwIEwxNzAuMzIsMTQ5LjU2IEwx
NjguNzgsMTQ5LjIxIEwxNjcuMjcsMTQ4Ljc4IEwxNjUuODAsMTQ4LjI0IEwxNjQuMzYsMTQ3LjYy
IEwxNjIuOTYsMTQ2LjkxIEwxNjEuNjAsMTQ2LjExIEwxNjAuMzEsMTQ1LjIzIEwxNTkuMDYsMTQ0
LjI2IEwxNTcuODksMTQzLjIyIEwxNTYuNzgsMTQyLjExIEwxNTUuNzQsMTQwLjk0IEwxNTQuNzcs
MTM5LjY5IEwxNTMuODksMTM4LjQwIEwxNTMuMDksMTM3LjA0IEwxNTIuMzgsMTM1LjY0IEwxNTEu
NzYsMTM0LjIwIEwxNTEuMjIsMTMyLjczIEwxNTAuNzksMTMxLjIyIEwxNTAuNDQsMTI5LjY4IEwx
NTAuMjAsMTI4LjEzIEwxNTAuMDUsMTI2LjU3IEwxNTAuMDAsMTI1LjAwIEwxNTAuMDUsMTIzLjQz
IEwxNTAuMjAsMTIxLjg3IEwxNTAuNDQsMTIwLjMyIEwxNTAuNzksMTE4Ljc4IEwxNTEuMjIsMTE3
LjI3IEwxNTEuNzYsMTE1LjgwIEwxNTIuMzgsMTE0LjM2IEwxNTMuMDksMTEyLjk2IEwxNTMuODks
MTExLjYwIEwxNTQuNzcsMTEwLjMxIEwxNTUuNzQsMTA5LjA2IEwxNTYuNzgsMTA3Ljg5IEwxNTcu
ODksMTA2Ljc4IEwxNTkuMDYsMTA1Ljc0IEwxNjAuMzEsMTA0Ljc3IEwxNjEuNjAsMTAzLjg5IEwx
NjIuOTYsMTAzLjA5IEwxNjQuMzYsMTAyLjM4IEwxNjUuODAsMTAxLjc2IEwxNjcuMjcsMTAxLjIy
IEwxNjguNzgsMTAwLjc5IEwxNzAuMzIsMTAwLjQ0IEwxNzEuODcsMTAwLjIwIEwxNzMuNDMsMTAw
LjA1IEwxNzUuMDAsMTAwLjAwIEwxNzYuNTcsMTAwLjA1IEwxNzguMTMsMTAwLjIwIEwxNzkuNjgs
MTAwLjQ0IEwxODEuMjIsMTAwLjc5IEwxODIuNzMsMTAxLjIyIEwxODQuMjAsMTAxLjc2IEwxODUu
NjQsMTAyLjM4IEwxODcuMDQsMTAzLjA5IEwxODguNDAsMTAzLjg5IEwxODkuNjksMTA0Ljc3IEwx
OTAuOTQsMTA1Ljc0IEwxOTIuMTEsMTA2Ljc4IEwxOTMuMjIsMTA3Ljg5IEwxOTQuMjYsMTA5LjA2
IEwxOTUuMjMsMTEwLjMxIEwxOTYuMTEsMTExLjYwIEwxOTYuOTEsMTEyLjk2IEwxOTcuNjIsMTE0
LjM2IEwxOTguMjQsMTE1LjgwIEwxOTguNzgsMTE3LjI3IEwxOTkuMjEsMTE4Ljc4IEwxOTkuNTYs
MTIwLjMyIEwxOTkuODAsMTIxLjg3IEwxOTkuOTUsMTIzLjQzIFoiXQorICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDYwLDApIHNpemUgMzYweDM2MAorICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDYwLDApIHNpemUgMTgweDE4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jREMx
NDNDXX1dIFtkYXRhPSJNMTAwLjAwLDEwMC4wMCBMMTUwLjAwLDEwMC4wMCBMMTUwLjAwLDE1MC4w
MCBMMTAwLjAwLDE1MC4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNDAsMTgw
KSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0RDMTQzQ119XSBbZGF0
YT0iTTE1MC4wMCwxNTAuMDAgTDIwMC4wMCwxNTAuMDAgTDIwMC4wMCwyMDAuMDAgTDE1MC4wMCwy
MDAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg2MCwxODApIHNpemUgMTgw
eDE4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZENzAwXX1dIFtkYXRhPSJNMTUwLjAw
LDE3NS4wMCBMMTQ5Ljk1LDE3Ni41NyBMMTQ5LjgwLDE3OC4xMyBMMTQ5LjU2LDE3OS42OCBMMTQ5
LjIxLDE4MS4yMiBMMTQ4Ljc4LDE4Mi43MyBMMTQ4LjI0LDE4NC4yMCBMMTQ3LjYyLDE4NS42NCBM
MTQ2LjkxLDE4Ny4wNCBMMTQ2LjExLDE4OC40MCBMMTQ1LjIzLDE4OS42OSBMMTQ0LjI2LDE5MC45
NCBMMTQzLjIyLDE5Mi4xMSBMMTQyLjExLDE5My4yMiBMMTQwLjk0LDE5NC4yNiBMMTM5LjY5LDE5
NS4yMyBMMTM4LjQwLDE5Ni4xMSBMMTM3LjA0LDE5Ni45MSBMMTM1LjY0LDE5Ny42MiBMMTM0LjIw
LDE5OC4yNCBMMTMyLjczLDE5OC43OCBMMTMxLjIyLDE5OS4yMSBMMTI5LjY4LDE5OS41NiBMMTI4
LjEzLDE5OS44MCBMMTI2LjU3LDE5OS45NSBMMTI1LjAwLDIwMC4wMCBMMTIzLjQzLDE5OS45NSBM
MTIxLjg3LDE5OS44MCBMMTIwLjMyLDE5OS41NiBMMTE4Ljc4LDE5OS4yMSBMMTE3LjI3LDE5OC43
OCBMMTE1LjgwLDE5OC4yNCBMMTE0LjM2LDE5Ny42MiBMMTEyLjk2LDE5Ni45MSBMMTExLjYwLDE5
Ni4xMSBMMTEwLjMxLDE5NS4yMyBMMTA5LjA2LDE5NC4yNiBMMTA3Ljg5LDE5My4yMiBMMTA2Ljc4
LDE5Mi4xMSBMMTA1Ljc0LDE5MC45NCBMMTA0Ljc3LDE4OS42OSBMMTAzLjg5LDE4OC40MCBMMTAz
LjA5LDE4Ny4wNCBMMTAyLjM4LDE4NS42NCBMMTAxLjc2LDE4NC4yMCBMMTAxLjIyLDE4Mi43MyBM
MTAwLjc5LDE4MS4yMiBMMTAwLjQ0LDE3OS42OCBMMTAwLjIwLDE3OC4xMyBMMTAwLjA1LDE3Ni41
NyBMMTAwLjAwLDE3NS4wMCBMMTAwLjA1LDE3My40MyBMMTAwLjIwLDE3MS44NyBMMTAwLjQ0LDE3
MC4zMiBMMTAwLjc5LDE2OC43OCBMMTAxLjIyLDE2Ny4yNyBMMTAxLjc2LDE2NS44MCBMMTAyLjM4
LDE2NC4zNiBMMTAzLjA5LDE2Mi45NiBMMTAzLjg5LDE2MS42MCBMMTA0Ljc3LDE2MC4zMSBMMTA1
Ljc0LDE1OS4wNiBMMTA2Ljc4LDE1Ny44OSBMMTA3Ljg5LDE1Ni43OCBMMTA5LjA2LDE1NS43NCBM
MTEwLjMxLDE1NC43NyBMMTExLjYwLDE1My44OSBMMTEyLjk2LDE1My4wOSBMMTE0LjM2LDE1Mi4z
OCBMMTE1LjgwLDE1MS43NiBMMTE3LjI3LDE1MS4yMiBMMTE4Ljc4LDE1MC43OSBMMTIwLjMyLDE1
MC40NCBMMTIxLjg3LDE1MC4yMCBMMTIzLjQzLDE1MC4wNSBMMTI1LjAwLDE1MC4wMCBMMTI2LjU3
LDE1MC4wNSBMMTI4LjEzLDE1MC4yMCBMMTI5LjY4LDE1MC40NCBMMTMxLjIyLDE1MC43OSBMMTMy
LjczLDE1MS4yMiBMMTM0LjIwLDE1MS43NiBMMTM1LjY0LDE1Mi4zOCBMMTM3LjA0LDE1My4wOSBM
MTM4LjQwLDE1My44OSBMMTM5LjY5LDE1NC43NyBMMTQwLjk0LDE1NS43NCBMMTQyLjExLDE1Ni43
OCBMMTQzLjIyLDE1Ny44OSBMMTQ0LjI2LDE1OS4wNiBMMTQ1LjIzLDE2MC4zMSBMMTQ2LjExLDE2
MS42MCBMMTQ2LjkxLDE2Mi45NiBMMTQ3LjYyLDE2NC4zNiBMMTQ4LjI0LDE2NS44MCBMMTQ4Ljc4
LDE2Ny4yNyBMMTQ5LjIxLDE2OC43OCBMMTQ5LjU2LDE3MC4zMiBMMTQ5LjgwLDE3MS44NyBMMTQ5
Ljk1LDE3My40MyBaIl0KKyAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDI0MCwwKSBzaXpl
IDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRDcwMF19XSBbZGF0YT0iTTIw
MC4wMCwxMjUuMDAgTDE5OS45NSwxMjYuNTcgTDE5OS44MCwxMjguMTMgTDE5OS41NiwxMjkuNjgg
TDE5OS4yMSwxMzEuMjIgTDE5OC43OCwxMzIuNzMgTDE5OC4yNCwxMzQuMjAgTDE5Ny42MiwxMzUu
NjQgTDE5Ni45MSwxMzcuMDQgTDE5Ni4xMSwxMzguNDAgTDE5NS4yMywxMzkuNjkgTDE5NC4yNiwx
NDAuOTQgTDE5My4yMiwxNDIuMTEgTDE5Mi4xMSwxNDMuMjIgTDE5MC45NCwxNDQuMjYgTDE4OS42
OSwxNDUuMjMgTDE4OC40MCwxNDYuMTEgTDE4Ny4wNCwxNDYuOTEgTDE4NS42NCwxNDcuNjIgTDE4
NC4yMCwxNDguMjQgTDE4Mi43MywxNDguNzggTDE4MS4yMiwxNDkuMjEgTDE3OS42OCwxNDkuNTYg
TDE3OC4xMywxNDkuODAgTDE3Ni41NywxNDkuOTUgTDE3NS4wMCwxNTAuMDAgTDE3My40MywxNDku
OTUgTDE3MS44NywxNDkuODAgTDE3MC4zMiwxNDkuNTYgTDE2OC43OCwxNDkuMjEgTDE2Ny4yNywx
NDguNzggTDE2NS44MCwxNDguMjQgTDE2NC4zNiwxNDcuNjIgTDE2Mi45NiwxNDYuOTEgTDE2MS42
MCwxNDYuMTEgTDE2MC4zMSwxNDUuMjMgTDE1OS4wNiwxNDQuMjYgTDE1Ny44OSwxNDMuMjIgTDE1
Ni43OCwxNDIuMTEgTDE1NS43NCwxNDAuOTQgTDE1NC43NywxMzkuNjkgTDE1My44OSwxMzguNDAg
TDE1My4wOSwxMzcuMDQgTDE1Mi4zOCwxMzUuNjQgTDE1MS43NiwxMzQuMjAgTDE1MS4yMiwxMzIu
NzMgTDE1MC43OSwxMzEuMjIgTDE1MC40NCwxMjkuNjggTDE1MC4yMCwxMjguMTMgTDE1MC4wNSwx
MjYuNTcgTDE1MC4wMCwxMjUuMDAgTDE1MC4wNSwxMjMuNDMgTDE1MC4yMCwxMjEuODcgTDE1MC40
NCwxMjAuMzIgTDE1MC43OSwxMTguNzggTDE1MS4yMiwxMTcuMjcgTDE1MS43NiwxMTUuODAgTDE1
Mi4zOCwxMTQuMzYgTDE1My4wOSwxMTIuOTYgTDE1My44OSwxMTEuNjAgTDE1NC43NywxMTAuMzEg
TDE1NS43NCwxMDkuMDYgTDE1Ni43OCwxMDcuODkgTDE1Ny44OSwxMDYuNzggTDE1OS4wNiwxMDUu
NzQgTDE2MC4zMSwxMDQuNzcgTDE2MS42MCwxMDMuODkgTDE2Mi45NiwxMDMuMDkgTDE2NC4zNiwx
MDIuMzggTDE2NS44MCwxMDEuNzYgTDE2Ny4yNywxMDEuMjIgTDE2OC43OCwxMDAuNzkgTDE3MC4z
MiwxMDAuNDQgTDE3MS44NywxMDAuMjAgTDE3My40MywxMDAuMDUgTDE3NS4wMCwxMDAuMDAgTDE3
Ni41NywxMDAuMDUgTDE3OC4xMywxMDAuMjAgTDE3OS42OCwxMDAuNDQgTDE4MS4yMiwxMDAuNzkg
TDE4Mi43MywxMDEuMjIgTDE4NC4yMCwxMDEuNzYgTDE4NS42NCwxMDIuMzggTDE4Ny4wNCwxMDMu
MDkgTDE4OC40MCwxMDMuODkgTDE4OS42OSwxMDQuNzcgTDE5MC45NCwxMDUuNzQgTDE5Mi4xMSwx
MDYuNzggTDE5My4yMiwxMDcuODkgTDE5NC4yNiwxMDkuMDYgTDE5NS4yMywxMTAuMzEgTDE5Ni4x
MSwxMTEuNjAgTDE5Ni45MSwxMTIuOTYgTDE5Ny42MiwxMTQuMzYgTDE5OC4yNCwxMTUuODAgTDE5
OC43OCwxMTcuMjcgTDE5OS4yMSwxMTguNzggTDE5OS41NiwxMjAuMzIgTDE5OS44MCwxMjEuODcg
TDE5OS45NSwxMjMuNDMgWiJdCiAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwNSwxOTUp
IHNpemUgNjh4MTMgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4
dCB7I3RleHR9IGF0ICgwLC0xMCkgc2l6ZSA2OHgxMwogICAgICAgICBjaHVuayAxIHRleHQgcnVu
IDEgYXQgKDEwNS4wMCwxOTUuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDY4
LjAwOiAiJFJldmlzaW9uOiAxLjggJCIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvc3RydWN0LWdyb3VwLTAzLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWdyb3Vw
LTAzLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWdyb3VwLTAzLXQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAK
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKIGxheWVyIGF0ICgwLDApIHNpemUg
NDgweDM2MAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLjUwLDAuNTApIHNpemUgNDc5eDM1
OQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU1LjUwLDQzLjAwKSBzaXplIDM3NXgy
MTIuNTAKLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU1LjUwLDQ0LjUwKSBzaXpl
IDM3NXgyMTEgW3RyYW5zZm9ybT17bT0oKC0wLjAwLC0xLjAwKSgxLjAwLC0wLjAwKSkgdD0oNzAu
MDAsMTUwLjAwKX1dCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTUuNTAsNDMpIHNp
emUgMzc1eDIxMi41MAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTUuNTAsNDQu
NTApIHNpemUgMzc1eDIxMSBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkg
dD0oNzAuMDAsMTUwLjAwKX1dCiAgICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVm
c30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoLTUu
NTAsLTE0LjUwKSBzaXplIDExMXgyMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2RhdGE9Ik0tNS4wMCwtMTQuMDAgTDEwNS4wMCwtMTQuMDAgTDEwNS4wMCw4LjAwIEwt
NS4wMCw4LjAwIFoiXQogICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgtNS41MCwtMTQu
NTApIHNpemUgNTF4MjMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtk
YXRhPSJNLTUuMDAsLTE0LjAwIEw0NS4wMCwtMTQuMDAgTDQ1LjAwLDguMDAgTC01LjAwLDguMDAg
WiJdCkBAIC0xNjIsNyArMTYyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg0MDcuNTAsMjA0LjUwKSBzaXplIDIz
eDUxCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MDcuNTAsMjA0LjUw
KSBzaXplIDIzeDUxIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAu
MDAsMzUyLjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0MDcuNTAs
MjA0LjUwKSBzaXplIDIzeDUxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTS01LjAwLC0xNC4wMCBMNDUuMDAsLTE0LjAwIEw0NS4wMCw4LjAwIEwtNS4wMCw4
LjAwIFoiXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTYuMDAsNDMuMDApIHNp
emUgMzcweDEwNyBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSg3
MC4wMCwxNTAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU2LDQzKSBz
aXplIDM3MHgxMDcgW3RyYW5zZm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDcw
LjAwLDE1MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwwKSBzaXpl
IDMyeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDMyeDE4CiAgICAgICAgICAgICBjaHVuayAxIHRleHQg
cnVuIDEgYXQgKDAuMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNSB3aWR0aCAzMi4w
MDogImNvbG9yIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0
L3RleHRHbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRHbHlwaE9yaWVu
dGF0aW9uSG9yaXpvbnRhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRHbHlwaE9yaWVudGF0aW9uSG9y
aXpvbnRhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAzIGF0ICg4NS45MywyNS44OSkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNSB3aWR0aCA2NS4w
MDogIiBHb29kIgogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDUwLDEyOSkgc2l6ZSAzNTB4
MiBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lkdGg9Mi4w
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNNTAuMDAs
MTMwLjAwIEw0MDAuMDAsMTMwLjAwIl0KLSAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg1
OCwxMjUpIHNpemUgMzUxeDIwIGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgtMTEsLTE1KSBzaXplIDM1MXgyMAorICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDU4LDEyNSkgc2l6ZSAzNTB4MjAgY29udGFpbnMgMSBjaHVuayhz
KQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKC0xMCwtMTUpIHNpemUg
MzUweDIwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1OC4wMCwxMjUuMDApIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDE0Mi4wMDogIkJhdGlrIGlzIEdvb2QiCiAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MCwxNDYpIHNpemUgMzMweDU1LjUyIFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDMwLjAwLDE1MC4wMCl9XQog
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDQ5LjU1LDE1OC40OCkgc2l6ZSAz
MjAuNDV4NDMuMDUKQEAgLTQ4LDggKzQ4LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAw
CiAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAzIGF0ICgyMzcuMzMsMjIuNjQpIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDUgd2lkdGggNjUuMDA6ICIgR29vZCIKICAgICAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg1MCwyMzkpIHNpemUgMTUweDIgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTUwLjAwLDI0MC4wMCBMMjAwLjAwLDI0MC4wMCJd
Ci0gICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTgsMjQwKSBzaXplIDE0M3gyOSBjb250
YWlucyAxIGNodW5rKHMpCi0gICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAo
LTksLTIzKSBzaXplIDE0M3gyOQorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDU4LDI0
MCkgc2l6ZSAxNDJ4MjcgY29udGFpbnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKC04LC0yMikgc2l6ZSAxNDJ4MjcKICAgICAgICAgICBjaHVuayAx
IHRleHQgcnVuIDEgYXQgKDU4LjAwLDI0MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTMg
d2lkdGggMTQyLjAwOiAiQmF0aWsgaXMgR29vZCIKICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIyNCwyMDQpIHNpemUgMTc2eDcwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDIyMC4wMCwyMjAuMDApfV0KICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHt1c2V9IGF0ICgyMzkuMjksMjI4LjQyKSBzaXplIDE2MC43MXg0My4xNgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRQcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3Rl
eHQvdGV4dFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC90ZXh0UHJvcGVydGllcy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTc4LDkgKzc4LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA0NTB4NTAwCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTMp
IHNpemUgMTY0eDE3CiAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4g
MSBhdCAoMTQzLjUwLDI4MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMjUgd2lkdGggMTYz
LjAwOiAiVGV4dCBSZW5kZXJpbmcgUHJvcGVydGllcyIKICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDI0LDI5Nykgc2l6ZSAxNTJ4NDIgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMTAwLjAwLDMwNS4wMCl9XQotICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICg1OC4wMCwyOTcpIHNpemUgODR4MzYgW3RyYW5zZm9ybT17bT0oKC0xLjAwLC0w
LjAwKSgwLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHt1c2V9IGF0ICg1OC4wMCwyOTcpIHNpemUgODR4MzYKLSAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDU4LjAwLDI5Nykgc2l6ZSA4NHgzNgorICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg1OCwyOTcpIHNpemUgODR4MzYgW3RyYW5zZm9ybT17bT0o
KC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dCisgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1OCwyOTcpIHNpemUgODR4MzYKKyAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU4LDI5Nykgc2l6ZSA4NHgzNgogICAgICAgICAg
ICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTQyLDApIHNpemUgODR4MzYgY29udGFpbnMg
MSBjaHVuayhzKQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBh
dCAoMCwtMjgpIHNpemUgODR4MzYKICAgICAgICAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBh
bmNob3IpIHRleHQgcnVuIDEgYXQgKC00Mi4wMCwwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCA2IHdpZHRoIDg0LjAwOiAic2FtcGxlIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9iYXRpay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9iYXRpay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDIwICsyNiwyMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDI5OS41MCw3NSkgc2l6ZSAxeDM3NSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTMwMC4wMCw3NS4wMCBMMzAwLjAwLDQ1MC4wMCJdCiAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICgzNDkuNTAsNzUpIHNpemUgMXgzNzUgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0zNTAuMDAsNzUuMDAgTDM1MC4wMCw0NTAuMDAiXQogICAgICAgICBSZW5kZXJQ
YXRoIHtsaW5lfSBhdCAoMzk5LjUwLDc1KSBzaXplIDF4Mzc1IFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSJNNDAwLjAwLDc1LjAwIEw0MDAuMDAsNDUwLjAwIl0KLSAgICAgIFJlbmRlclNWR1Rl
eHQge3RleHR9IGF0ICgzMyw3OSkgc2l6ZSAxOHgxNjUgY29udGFpbnMgMSBjaHVuayhzKQotICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDgsMCkgc2l6ZSAxOHgxNjUKKyAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMyw3OSkgc2l6ZSAxN3gxNjUgY29udGFpbnMg
MSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDksMCkg
c2l6ZSAxN3gxNjUKICAgICAgICAgICBjaHVuayAxICh2ZXJ0aWNhbCkgdGV4dCBydW4gMSBhdCAo
MzMuMDAsNzkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIzIGhlaWdodCAzOTEuMDA6ICJX
cml0aW5nIHRvcCB0byBib3R0b21ceHs3NTNCfVx4ezUwQ0Z9IgotICAgICAgUmVuZGVyU1ZHVGV4
dCB7dGV4dH0gYXQgKDgzLDc5KSBzaXplIDE4eDE3NCBjb250YWlucyAxIGNodW5rKHMpCi0gICAg
ICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoOCwwKSBzaXplIDE4eDE3NAorICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDgzLDc5KSBzaXplIDE3eDE3NCBjb250YWlucyAx
IGNodW5rKHMpCisgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoOSwwKSBz
aXplIDE3eDE3NAogICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAxIGF0ICg4
My4wMCw3OS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMjQgaGVpZ2h0IDQwOC4wMDogIkds
eXBoIE9yaWVudGF0aW9uOmF1dG9ceHs3NTNCfVx4ezUwQ0Z9IgogICAgICAgUmVuZGVyU1ZHVGV4
dCB7dGV4dH0gYXQgKDE0Miw4OCkgc2l6ZSAxNngzNTcgY29udGFpbnMgMSBjaHVuayhzKQogICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTEzKSBzaXplIDE2eDM1Nwog
ICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAxIGF0ICgxNDIuNTAsODguMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIxIGhlaWdodCAzNTcuMDA6ICJHbHlwaCBPcmllbnRh
dGlvbjowXHh7NzUzQn1ceHs1MENGfSIKLSAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgx
ODMsNzkpIHNpemUgMTh4MTYzIGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICg4LDApIHNpemUgMTh4MTYzCisgICAgICBSZW5kZXJTVkdU
ZXh0IHt0ZXh0fSBhdCAoMTgzLDc5KSBzaXplIDE3eDE2MyBjb250YWlucyAxIGNodW5rKHMpCisg
ICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoOSwwKSBzaXplIDE3eDE2Mwog
ICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAxIGF0ICgxODMuMDAsNzkuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIyIGhlaWdodCAzNzQuMDA6ICJHbHlwaCBPcmllbnRh
dGlvbjo5MFx4ezc1M0J9XHh7NTBDRn0iCi0gICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
MjUwLDg4KSBzaXplIDE2eDM5MiBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoLTgsLTE0KSBzaXplIDE2eDM5MgorICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDI1MCw4OCkgc2l6ZSAxNngzOTEgY29udGFpbnMgMSBjaHVuayhz
KQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKC04LC0xMykgc2l6ZSAx
NngzOTEKICAgICAgICAgICBjaHVuayAxICh2ZXJ0aWNhbCkgdGV4dCBydW4gMSBhdCAoMjUwLjAw
LDg4LjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAyMyBoZWlnaHQgMzkxLjAwOiAiR2x5cGgg
T3JpZW50YXRpb246MTgwXHh7NzUzQn1ceHs1MENGfSIKICAgICAgIFJlbmRlclNWR1RleHQge3Rl
eHR9IGF0ICgzMTcsNzkpIHNpemUgMTd4MTcxIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAg
UmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgtMjYsMCkgc2l6ZSAxN3gxNzEKQEAgLTUy
LDEzICs1MiwxMyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ1MHg1MDAKICAgICAgICAgICAgIGNo
dW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAyIGF0ICgzMzMuMDAsMTUwLjAwKSBzdGFydE9mZnNl
dCAwIGVuZE9mZnNldCA3IGhlaWdodCAxMTkuMDA6ICI8dHNwYW4+IgogICAgICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDksMTIwKSBzaXplIDE3eDUzCiAgICAgICAgICAgY2h1
bmsgMSAodmVydGljYWwpIHRleHQgcnVuIDMgYXQgKDMzMy4wMCwxOTkuMDApIHN0YXJ0T2Zmc2V0
IDAgZW5kT2Zmc2V0IDggaGVpZ2h0IDEzNi4wMDogIiBlbGVtZW50IgotICAgICAgUmVuZGVyU1ZH
VGV4dCB7dGV4dH0gYXQgKDM4Myw3OSkgc2l6ZSAxOHgyOTQgY29udGFpbnMgMSBjaHVuayhzKQot
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDgsMCkgc2l6ZSAxOHg3MQor
ICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDM4Myw3OSkgc2l6ZSAxN3gyOTQgY29udGFp
bnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDks
MCkgc2l6ZSAxN3g3MQogICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAxIGF0
ICgzODMuMDAsNzkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDkgaGVpZ2h0IDE1My4wMDog
IkVtYmVkZGVkICIKICAgICAgICAgUmVuZGVyU1ZHVFNwYW4ge3RzcGFufSBhdCAoMCwwKSBzaXpl
IDh4MTcwCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgxMyw2Nykg
c2l6ZSA4eDE3MAogICAgICAgICAgICAgY2h1bmsgMSAodmVydGljYWwpIHRleHQgcnVuIDIgYXQg
KDM5Ni4wMCwxNTkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEwIGhlaWdodCAxNzAuMDA6
ICJvcmllbnRhdGVkIgotICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDgs
MjQxKSBzaXplIDE4eDUzCisgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAo
OSwyNDEpIHNpemUgMTd4NTMKICAgICAgICAgICBjaHVuayAxICh2ZXJ0aWNhbCkgdGV4dCBydW4g
MyBhdCAoMzgzLjAwLDMyMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgOCBoZWlnaHQgMTM2
LjAwOiAiIGVsZW1lbnQiCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MSw0NTUp
IHNpemUgMzE5LjExeDM2IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDQwLjAwLDQ1MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDU0
Ljg5LDQ1Ny4yOSkgc2l6ZSAzMTUuMjF4MzAuNDMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNh
bFRleHRPblBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNyArMjc1LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA0NTB4NTAwCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMDIuMjcs
MzcwLjUwKSBzaXplIDY3Ljk1eDM3CiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgyMDIuMjcsMzcwLjUwKSBzaXplIDY3Ljk1eDM3IFt0cmFuc2Zvcm09e209KCgwLjMwLDAuMDAp
KDAuMDAsMC41MCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwRkZdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZGF0YT0iTTEwMC4wMCwxMDAuMDAgQzEw
MC4wMCwwLjAwLDQwMC4wMCwwLjAwLDQwMC4wMCwxMDAuMDAiXQogICAgICAgICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICgtMTMsLTE1KSBzaXplIDkyeDEyMSBjb250YWlucyAxIGNodW5rKHMp
Ci0gICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDEyLDApIHNpemUg
MjR4OTgKKyAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMTIsMCkg
c2l6ZSAyNHg5NwogICAgICAgICAgICAgICBjaHVuayAxICh2ZXJ0aWNhbCkgdGV4dCBydW4gMSBh
dCAoLTEzLjAwLC0xNS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTIgaGVpZ2h0IDI3Ni4w
MDogImJlZm9yZSBwYXRoICIKICAgICAgICAgICAgIFJlbmRlclNWR1RleHRQYXRoIHt0ZXh0UGF0
aH0gYXQgKDAsMCkgc2l6ZSA2NngzOQogICAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDM2LDE0KSBzaXplIDY2eDM5CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL2NhcnRvLm5ldC9zbGlkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY2FydG8ubmV0L3NsaWRlci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jYXJ0by5u
ZXQvc2xpZGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg1NDYuODgsNDQuOTIpIHNpemUgMTUuNjJ4ODkuODQKICAgICAgIFJlbmRlclBhdGgge2xpbmV9
IGF0ICg1NDguODMsNDQuOTIpIHNpemUgMTEuNzJ4ODkuODQgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbb3BhY2l0eT0wLjAwXSBbc3Ryb2tlIHdpZHRoPTE1LjAwXSBbbGlu
ZSBjYXA9U1FVQVJFXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtvcGFj
aXR5PTAuMDBdfV0gW2RhdGE9Ik03MTAuMDAsNjUuMDAgTDcxMC4wMCwxNjUuMDAiXQogICAgICAg
UmVuZGVyUGF0aCB7bGluZX0gYXQgKDU1My41Miw1MC43OCkgc2l6ZSAyLjM0eDc4LjEyIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzY5Njk2OV0gW3N0cm9rZSB3aWR0aD0zLjAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik03MTAuMDAsNjUuMDAg
TDcxMC4wMCwxNjUuMDAiXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1NDYu
ODgsODcuODkpIHNpemUgMTUuNjJ4My45MSBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEu
MDAsLTAuMDApKSB0PSg3MTAuMDAsMTE1LjAwKX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e3VzZX0gYXQgKDU0Ni44OCw4Ny44OSkgc2l6ZSAxNS42MngzLjkxIFt0cmFuc2Zvcm09e209KCgw
LjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSg3MTAuMDAsMTE1LjAwKX1dCiAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDU0Ni44OCw4Ny44OSkgc2l6ZSAxNS42MngzLjkxCiAgICAg
ICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDU0Ni44OCw4Ny44OSkg
c2l6ZSAxNS42MngzLjkxCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTQ2Ljg4
LDg3Ljg5KSBzaXplIDE1LjYyeDMuOTEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jNjk2
OTY5XSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTAuMDAsLTEwLjAwIEwwLjAwLDEwLjAwIl0KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY2FydG8ubmV0L3RhYmdyb3VwLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2NhcnRvLm5ldC90YWJncm91
cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jYXJ0by5uZXQvdGFiZ3JvdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTk1LjMxLDcuODEpIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAw
KSgtMS4wMCwtMC4wMCkpIHQ9KDI1MC4wMCwxMC4wMCl9XQorICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDE5NS4zMSw3LjgxKSBzaXplIDB4MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAw
KSgtMS4wMCwwLjAwKSkgdD0oMjUwLjAwLDEwLjAwKX1dCiAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAs
MCkgc2l6ZSAweDAKICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgw
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9nbHlwaC1zZWxlY3Rp
b24tbGFuZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2dseXBoLXNlbGVjdGlvbi1sYW5nLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vZ2x5cGgtc2VsZWN0aW9uLWxhbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg1MCwzMzApIHNpemUgMjV4NTAgY29u
dGFpbnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQg
KDAsLTQwKSBzaXplIDI1eDUwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1MC4w
MCwzMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMjUuMDA6ICJhIgotICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MC4wMCwxNi42Nykgc2l6ZSA0MS42N3g1NTAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDAuMDApfV0K
KyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTAsMTYuNjcpIHNpemUgNDEuNjd4NTUw
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwMC4wMCwwLjAwKX1d
CiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTAsNTApIHNpemUgMjV4NTAgY29udGFp
bnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
LTQwKSBzaXplIDI1eDUwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1MC4wMCw1
MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAyNS4wMDogImEiCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9pbnZhbGlkLWNzcy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vaW52
YWxpZC1jc3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL2ludmFsaWQtY3NzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTYsNyArMTYsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBS
ZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwzMykgc2l6ZSAxNjd4MTggY29udGFpbnMgMSBjaHVu
ayhzKQogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSAx
Njd4MTgKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDMzLjAwKSBzdGFydE9m
ZnNldCAwIGVuZE9mZnNldCAyNSB3aWR0aCAxNjcuMDA6ICJubyBtYXJrZXJzIGFuZCBubyBkYXNo
ZXMuIgotICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0OS4xNyw2NS44Mykgc2l6ZSA4NXg4NSBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTMwLjAwLDQwLjAwIEw4MC4wMCw0MC4wMCBMODAu
MDAsOTAuMDAgTDMwLjAwLDkwLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0OS4x
Nyw2NS44Mykgc2l6ZSA4NXg4NS4wMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTMwLjAw
LDQwLjAwIEw4MC4wMCw0MC4wMCBMODAuMDAsOTAuMDAgTDMwLjAwLDkwLjAwIFoiXQogICAgIFJl
bmRlclBhdGgge2NpcmNsZX0gYXQgKDI2NS44Myw2NS44Mykgc2l6ZSA2OC4zM3g2OC4zMyBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPUxJTkVBUi1H
UkFESUVOVF0gW3N0b3BzPVsoMC4wMCwjMDA4MDAwKV1dIFtzdGFydD0oMCwwKV0gW2VuZD0oMSww
KV19XSBbZGF0YT0iTTIwMC4wMCw2MC4wMCBMMTk5Ljk2LDYxLjI2IEwxOTkuODQsNjIuNTEgTDE5
OS42NSw2My43NSBMMTk5LjM3LDY0Ljk3IEwxOTkuMDIsNjYuMTggTDE5OC42MCw2Ny4zNiBMMTk4
LjEwLDY4LjUyIEwxOTcuNTMsNjkuNjQgTDE5Ni44OSw3MC43MiBMMTk2LjE4LDcxLjc2IEwxOTUu
NDEsNzIuNzUgTDE5NC41OCw3My42OSBMMTkzLjY5LDc0LjU4IEwxOTIuNzUsNzUuNDEgTDE5MS43
Niw3Ni4xOCBMMTkwLjcyLDc2Ljg5IEwxODkuNjQsNzcuNTMgTDE4OC41Miw3OC4xMCBMMTg3LjM2
LDc4LjYwIEwxODYuMTgsNzkuMDIgTDE4NC45Nyw3OS4zNyBMMTgzLjc1LDc5LjY1IEwxODIuNTEs
NzkuODQgTDE4MS4yNiw3OS45NiBMMTgwLjAwLDgwLjAwIEwxNzguNzQsNzkuOTYgTDE3Ny40OSw3
OS44NCBMMTc2LjI1LDc5LjY1IEwxNzUuMDMsNzkuMzcgTDE3My44Miw3OS4wMiBMMTcyLjY0LDc4
LjYwIEwxNzEuNDgsNzguMTAgTDE3MC4zNiw3Ny41MyBMMTY5LjI4LDc2Ljg5IEwxNjguMjQsNzYu
MTggTDE2Ny4yNSw3NS40MSBMMTY2LjMxLDc0LjU4IEwxNjUuNDIsNzMuNjkgTDE2NC41OSw3Mi43
NSBMMTYzLjgyLDcxLjc2IEwxNjMuMTEsNzAuNzIgTDE2Mi40Nyw2OS42NCBMMTYxLjkwLDY4LjUy
IEwxNjEuNDAsNjcuMzYgTDE2MC45OCw2Ni4xOCBMMTYwLjYzLDY0Ljk3IEwxNjAuMzUsNjMuNzUg
TDE2MC4xNiw2Mi41MSBMMTYwLjA0LDYxLjI2IEwxNjAuMDAsNjAuMDAgTDE2MC4wNCw1OC43NCBM
MTYwLjE2LDU3LjQ5IEwxNjAuMzUsNTYuMjUgTDE2MC42Myw1NS4wMyBMMTYwLjk4LDUzLjgyIEwx
NjEuNDAsNTIuNjQgTDE2MS45MCw1MS40OCBMMTYyLjQ3LDUwLjM2IEwxNjMuMTEsNDkuMjggTDE2
My44Miw0OC4yNCBMMTY0LjU5LDQ3LjI1IEwxNjUuNDIsNDYuMzEgTDE2Ni4zMSw0NS40MiBMMTY3
LjI1LDQ0LjU5IEwxNjguMjQsNDMuODIgTDE2OS4yOCw0My4xMSBMMTcwLjM2LDQyLjQ3IEwxNzEu
NDgsNDEuOTAgTDE3Mi42NCw0MS40MCBMMTczLjgyLDQwLjk4IEwxNzUuMDMsNDAuNjMgTDE3Ni4y
NSw0MC4zNSBMMTc3LjQ5LDQwLjE2IEwxNzguNzQsNDAuMDQgTDE4MC4wMCw0MC4wMCBMMTgxLjI2
LDQwLjA0IEwxODIuNTEsNDAuMTYgTDE4My43NSw0MC4zNSBMMTg0Ljk3LDQwLjYzIEwxODYuMTgs
NDAuOTggTDE4Ny4zNiw0MS40MCBMMTg4LjUyLDQxLjkwIEwxODkuNjQsNDIuNDcgTDE5MC43Miw0
My4xMSBMMTkxLjc2LDQzLjgyIEwxOTIuNzUsNDQuNTkgTDE5My42OSw0NS40MiBMMTk0LjU4LDQ2
LjMxIEwxOTUuNDEsNDcuMjUgTDE5Ni4xOCw0OC4yNCBMMTk2Ljg5LDQ5LjI4IEwxOTcuNTMsNTAu
MzYgTDE5OC4xMCw1MS40OCBMMTk4LjYwLDUyLjY0IEwxOTkuMDIsNTMuODIgTDE5OS4zNyw1NS4w
MyBMMTk5LjY1LDU2LjI1IEwxOTkuODQsNTcuNDkgTDE5OS45Niw1OC43NCBaIl0KICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwxMTApIHNpemUgMjc4eDE4IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjc4
eDE4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1h
cmtlci1hbmQtb2JqZWN0LWNyZWF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1hcmtlci1hbmQtb2JqZWN0
LWNyZWF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1hcmtlci1hbmQtb2JqZWN0LWNyZWF0aW9u
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgS0NhbnZhc1Jlc291
cmNlIHtpZD0ibWFya2VyTWlkZGxlIiBbdHlwZQogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6ZSA5
MHg5MAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXplIDkwLjAw
eDkwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4
MAogICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge21hcmtlcn0gYXQgKDAsMCkgc2l6
ZSAyeDIKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAyeDIgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMTAuMDAs
MC4wMCBMMTAuMDAsMTAuMDAgTDAuMDAsMTAuMDAgWiJdCkBAIC0xMiw1ICsxMiw1IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMCww
KSBzaXplIDJ4MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJN
NS4wMCwwLjAwIEwxMC4wMCwxMC4wMCBMMC4wMCwxMC4wMCBaIl0KICAgICAgIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyIHttYXJrZXJ9IGF0ICgwLDApIHNpemUgMngyCiAgICAgICAgIFJlbmRl
clBhdGgge2NpcmNsZX0gYXQgKDAsMCkgc2l6ZSAyeDIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbZGF0YT0iTTEwLjAwLDUuMDAgTDkuOTksNS4zMSBMOS45Niw1LjYzIEw5
LjkxLDUuOTQgTDkuODQsNi4yNCBMOS43Niw2LjU1IEw5LjY1LDYuODQgTDkuNTIsNy4xMyBMOS4z
OCw3LjQxIEw5LjIyLDcuNjggTDkuMDUsNy45NCBMOC44NSw4LjE5IEw4LjY0LDguNDIgTDguNDIs
OC42NCBMOC4xOSw4Ljg1IEw3Ljk0LDkuMDUgTDcuNjgsOS4yMiBMNy40MSw5LjM4IEw3LjEzLDku
NTIgTDYuODQsOS42NSBMNi41NSw5Ljc2IEw2LjI0LDkuODQgTDUuOTQsOS45MSBMNS42Myw5Ljk2
IEw1LjMxLDkuOTkgTDUuMDAsMTAuMDAgTDQuNjksOS45OSBMNC4zNyw5Ljk2IEw0LjA2LDkuOTEg
TDMuNzYsOS44NCBMMy40NSw5Ljc2IEwzLjE2LDkuNjUgTDIuODcsOS41MiBMMi41OSw5LjM4IEwy
LjMyLDkuMjIgTDIuMDYsOS4wNSBMMS44MSw4Ljg1IEwxLjU4LDguNjQgTDEuMzYsOC40MiBMMS4x
NSw4LjE5IEwwLjk1LDcuOTQgTDAuNzgsNy42OCBMMC42Miw3LjQxIEwwLjQ4LDcuMTMgTDAuMzUs
Ni44NCBMMC4yNCw2LjU1IEwwLjE2LDYuMjQgTDAuMDksNS45NCBMMC4wNCw1LjYzIEwwLjAxLDUu
MzEgTDAuMDAsNS4wMCBMMC4wMSw0LjY5IEwwLjA0LDQuMzcgTDAuMDksNC4wNiBMMC4xNiwzLjc2
IEwwLjI0LDMuNDUgTDAuMzUsMy4xNiBMMC40OCwyLjg3IEwwLjYyLDIuNTkgTDAuNzgsMi4zMiBM
MC45NSwyLjA2IEwxLjE1LDEuODEgTDEuMzYsMS41OCBMMS41OCwxLjM2IEwxLjgxLDEuMTUgTDIu
MDYsMC45NSBMMi4zMiwwLjc4IEwyLjU5LDAuNjIgTDIuODcsMC40OCBMMy4xNiwwLjM1IEwzLjQ1
LDAuMjQgTDMuNzYsMC4xNiBMNC4wNiwwLjA5IEw0LjM3LDAuMDQgTDQuNjksMC4wMSBMNS4wMCww
LjAwIEw1LjMxLDAuMDEgTDUuNjMsMC4wNCBMNS45NCwwLjA5IEw2LjI0LDAuMTYgTDYuNTUsMC4y
NCBMNi44NCwwLjM1IEw3LjEzLDAuNDggTDcuNDEsMC42MiBMNy42OCwwLjc4IEw3Ljk0LDAuOTUg
TDguMTksMS4xNSBMOC40MiwxLjM2IEw4LjY0LDEuNTggTDguODUsMS44MSBMOS4wNSwyLjA2IEw5
LjIyLDIuMzIgTDkuMzgsMi41OSBMOS41MiwyLjg3IEw5LjY1LDMuMTYgTDkuNzYsMy40NSBMOS44
NCwzLjc2IEw5LjkxLDQuMDYgTDkuOTYsNC4zNyBMOS45OSw0LjY5IFoiXQotICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDIxNi42NywyMTguMzMpIHNpemUgOTB4OTAKLSAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXplIDkweDkwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD04LjAwXX1dIFtzdGFydCBtYXJr
ZXI9bWFya2VyU3RhcnRdIFttaWRkbGUgbWFya2VyPW1hcmtlck1pZGRsZV0gW2VuZCBtYXJrZXI9
bWFya2VyRW5kXSBbZGF0YT0iTTEzMC4wMCwxMzUuMDAgTDE4MC4wMCwxMzUuMDAgTDE4MC4wMCwx
ODUuMDAiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxNi42NywyMTguMzMpIHNp
emUgOTAuMDB4OTAKKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMTYuNjcsMjE4LjMzKSBz
aXplIDkwLjAweDkwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9r
ZSB3aWR0aD04LjAwXX1dIFtzdGFydCBtYXJrZXI9bWFya2VyU3RhcnRdIFttaWRkbGUgbWFya2Vy
PW1hcmtlck1pZGRsZV0gW2VuZCBtYXJrZXI9bWFya2VyRW5kXSBbZGF0YT0iTTEzMC4wMCwxMzUu
MDAgTDE4MC4wMCwxMzUuMDAgTDE4MC4wMCwxODUuMDAiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vanMtbGF0ZS1tYXJrZXItY3JlYXRpb24tZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2pzLWxh
dGUtbWFya2VyLWNyZWF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1hcmtlci1jcmVhdGlvbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIEtDYW52YXNSZXNvdXJj
ZSB7aWQ9Im1hcmtlck1pZGRsZSIgW3R5cGUKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDIxNi42NywyMTguMzMpIHNpemUgOTB4
OTAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6ZSA5MC4wMHg5
MAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAK
ICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHttYXJrZXJ9IGF0ICgwLDApIHNpemUg
MngyCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMngyIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEwLjAwLDAu
MDAgTDEwLjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoiXQpAQCAtMTIsNSArMTIsNSBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkg
c2l6ZSAyeDIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTUu
MDAsMC4wMCBMMTAuMDAsMTAuMDAgTDAuMDAsMTAuMDAgWiJdCiAgICAgICBSZW5kZXJTVkdWaWV3
cG9ydENvbnRhaW5lciB7bWFya2VyfSBhdCAoMCwwKSBzaXplIDJ4MgogICAgICAgICBSZW5kZXJQ
YXRoIHtjaXJjbGV9IGF0ICgwLDApIHNpemUgMngyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW2RhdGE9Ik0xMC4wMCw1LjAwIEw5Ljk5LDUuMzEgTDkuOTYsNS42MyBMOS45
MSw1Ljk0IEw5Ljg0LDYuMjQgTDkuNzYsNi41NSBMOS42NSw2Ljg0IEw5LjUyLDcuMTMgTDkuMzgs
Ny40MSBMOS4yMiw3LjY4IEw5LjA1LDcuOTQgTDguODUsOC4xOSBMOC42NCw4LjQyIEw4LjQyLDgu
NjQgTDguMTksOC44NSBMNy45NCw5LjA1IEw3LjY4LDkuMjIgTDcuNDEsOS4zOCBMNy4xMyw5LjUy
IEw2Ljg0LDkuNjUgTDYuNTUsOS43NiBMNi4yNCw5Ljg0IEw1Ljk0LDkuOTEgTDUuNjMsOS45NiBM
NS4zMSw5Ljk5IEw1LjAwLDEwLjAwIEw0LjY5LDkuOTkgTDQuMzcsOS45NiBMNC4wNiw5LjkxIEwz
Ljc2LDkuODQgTDMuNDUsOS43NiBMMy4xNiw5LjY1IEwyLjg3LDkuNTIgTDIuNTksOS4zOCBMMi4z
Miw5LjIyIEwyLjA2LDkuMDUgTDEuODEsOC44NSBMMS41OCw4LjY0IEwxLjM2LDguNDIgTDEuMTUs
OC4xOSBMMC45NSw3Ljk0IEwwLjc4LDcuNjggTDAuNjIsNy40MSBMMC40OCw3LjEzIEwwLjM1LDYu
ODQgTDAuMjQsNi41NSBMMC4xNiw2LjI0IEwwLjA5LDUuOTQgTDAuMDQsNS42MyBMMC4wMSw1LjMx
IEwwLjAwLDUuMDAgTDAuMDEsNC42OSBMMC4wNCw0LjM3IEwwLjA5LDQuMDYgTDAuMTYsMy43NiBM
MC4yNCwzLjQ1IEwwLjM1LDMuMTYgTDAuNDgsMi44NyBMMC42MiwyLjU5IEwwLjc4LDIuMzIgTDAu
OTUsMi4wNiBMMS4xNSwxLjgxIEwxLjM2LDEuNTggTDEuNTgsMS4zNiBMMS44MSwxLjE1IEwyLjA2
LDAuOTUgTDIuMzIsMC43OCBMMi41OSwwLjYyIEwyLjg3LDAuNDggTDMuMTYsMC4zNSBMMy40NSww
LjI0IEwzLjc2LDAuMTYgTDQuMDYsMC4wOSBMNC4zNywwLjA0IEw0LjY5LDAuMDEgTDUuMDAsMC4w
MCBMNS4zMSwwLjAxIEw1LjYzLDAuMDQgTDUuOTQsMC4wOSBMNi4yNCwwLjE2IEw2LjU1LDAuMjQg
TDYuODQsMC4zNSBMNy4xMywwLjQ4IEw3LjQxLDAuNjIgTDcuNjgsMC43OCBMNy45NCwwLjk1IEw4
LjE5LDEuMTUgTDguNDIsMS4zNiBMOC42NCwxLjU4IEw4Ljg1LDEuODEgTDkuMDUsMi4wNiBMOS4y
MiwyLjMyIEw5LjM4LDIuNTkgTDkuNTIsMi44NyBMOS42NSwzLjE2IEw5Ljc2LDMuNDUgTDkuODQs
My43NiBMOS45MSw0LjA2IEw5Ljk2LDQuMzcgTDkuOTksNC42OSBaIl0KLSAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXplIDkweDkwCi0gICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6ZSA5MHg5MCBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9OC4wMF19XSBbc3RhcnQgbWFya2Vy
PW1hcmtlclN0YXJ0XSBbbWlkZGxlIG1hcmtlcj1tYXJrZXJNaWRkbGVdIFtlbmQgbWFya2VyPW1h
cmtlckVuZF0gW2RhdGE9Ik0xMzAuMDAsMTM1LjAwIEwxODAuMDAsMTM1LjAwIEwxODAuMDAsMTg1
LjAwIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXpl
IDkwLjAweDkwCisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6
ZSA5MC4wMHg5MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ug
d2lkdGg9OC4wMF19XSBbc3RhcnQgbWFya2VyPW1hcmtlclN0YXJ0XSBbbWlkZGxlIG1hcmtlcj1t
YXJrZXJNaWRkbGVdIFtlbmQgbWFya2VyPW1hcmtlckVuZF0gW2RhdGE9Ik0xMzAuMDAsMTM1LjAw
IEwxODAuMDAsMTM1LjAwIEwxODAuMDAsMTg1LjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL3ByZXNlcnZlLWFzcGVjdC1yYXRpby1zeW50YXgtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3By
ZXNlcnZlLWFzcGVjdC1yYXRpby1zeW50YXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3ByZXNlcnZlLWFzcGVjdC1y
YXRpby1zeW50YXgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03LDkyICs3LDkyIEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMCwzMCkgc2l6ZSA0NjV4MTAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtOCkgc2l6ZSA0NjV4MTAKICAgICAgICAg
ICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMC4wMCwzMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRP
ZmZzZXQgMTIwIHdpZHRoIDQ2NS4wMDogIkFsbCBzdmdzIGJlbG93IHNob3VsZCBsb29rIHRoZSBz
YW1lLCBzaW5jZSBhbGwgaGF2ZSBwcmVzZXJ2ZUFzcGVjdFJhdGlvIHdpdGggc3ludGF4IGVycm9y
cyBhbmQgZGVmYXVsdCBzaG91bGQgYmUgY2hvc2VuLiIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMCw4My4zMykgc2l6ZSA1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1MC4wMCl9XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdw
b3J0Q29udGFpbmVyIHtzdmd9IGF0ICgwLDgzLjMzKSBzaXplIDUweDEwMAotICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsODMuMzMpIHNpemUgNTB4MTAwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwz
OS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDguMzMsMTA4
LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg4
LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZG
RjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQu
ODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5
LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBM
MjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2
LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41
MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1
LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwy
NC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYg
TDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEu
ODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUs
MTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUu
MDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUg
TDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAu
NzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4x
NSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0
IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1
LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4y
NSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwx
OS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5
IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5
LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBM
MjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCisg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsODMuMzMpIHNpemUgNTB4MTAwLjAw
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNTAuMDApfV0K
KyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMCw4My4zMykg
c2l6ZSA1MHgxMDAuMDAKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDgzLjMz
KSBzaXplIDUweDEwMC4wMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBM
MjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCisgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KKyAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoOC4zMywxMDguMzMpIHNpemUgMzMuMzN4
NTAuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAw
LDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40
OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIz
LjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwy
Mi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYg
TDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44
NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQu
OTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwx
MS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIz
LjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2Ljkx
LDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1
LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYz
IEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEy
LjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2
LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3
LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIs
NS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQu
MzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBM
MTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4y
NCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjks
OC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0
LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44Miwx
My4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtjaXJjbGV9IGF0ICgxNy41MCwxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkg
TDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4z
OSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIu
ODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwx
Mi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUs
MTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5
IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEu
NzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEz
LjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBM
MTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjcz
LDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40
NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEw
LjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwx
MS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjgg
TDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45
NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAu
NjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwx
MS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDks
MTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3
IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIu
ODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDEx
LjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBM
MTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5
LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xl
fSBhdCAoMjUuODMsMTIyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFtkYXRhPSJNMTguNTAsMTIuMDAgTDE4LjUwLDEyLjA5IEwxOC40OSwxMi4x
OSBMMTguNDcsMTIuMjggTDE4LjQ1LDEyLjM3IEwxOC40MywxMi40NiBMMTguMzksMTIuNTUgTDE4
LjM2LDEyLjY0IEwxOC4zMSwxMi43MiBMMTguMjcsMTIuODAgTDE4LjIxLDEyLjg4IEwxOC4xNiwx
Mi45NiBMMTguMDksMTMuMDMgTDE4LjAzLDEzLjA5IEwxNy45NiwxMy4xNiBMMTcuODgsMTMuMjEg
TDE3LjgwLDEzLjI3IEwxNy43MiwxMy4zMSBMMTcuNjQsMTMuMzYgTDE3LjU1LDEzLjM5IEwxNy40
NiwxMy40MyBMMTcuMzcsMTMuNDUgTDE3LjI4LDEzLjQ3IEwxNy4xOSwxMy40OSBMMTcuMDksMTMu
NTAgTDE3LjAwLDEzLjUwIEwxNi45MSwxMy41MCBMMTYuODEsMTMuNDkgTDE2LjcyLDEzLjQ3IEwx
Ni42MywxMy40NSBMMTYuNTQsMTMuNDMgTDE2LjQ1LDEzLjM5IEwxNi4zNiwxMy4zNiBMMTYuMjgs
MTMuMzEgTDE2LjIwLDEzLjI3IEwxNi4xMiwxMy4yMSBMMTYuMDQsMTMuMTYgTDE1Ljk3LDEzLjA5
IEwxNS45MSwxMy4wMyBMMTUuODQsMTIuOTYgTDE1Ljc5LDEyLjg4IEwxNS43MywxMi44MCBMMTUu
NjksMTIuNzIgTDE1LjY0LDEyLjY0IEwxNS42MSwxMi41NSBMMTUuNTcsMTIuNDYgTDE1LjU1LDEy
LjM3IEwxNS41MywxMi4yOCBMMTUuNTEsMTIuMTkgTDE1LjUwLDEyLjA5IEwxNS41MCwxMi4wMCBM
MTUuNTAsMTEuOTEgTDE1LjUxLDExLjgxIEwxNS41MywxMS43MiBMMTUuNTUsMTEuNjMgTDE1LjU3
LDExLjU0IEwxNS42MSwxMS40NSBMMTUuNjQsMTEuMzYgTDE1LjY5LDExLjI4IEwxNS43MywxMS4y
MCBMMTUuNzksMTEuMTIgTDE1Ljg0LDExLjA0IEwxNS45MSwxMC45NyBMMTUuOTcsMTAuOTEgTDE2
LjA0LDEwLjg0IEwxNi4xMiwxMC43OSBMMTYuMjAsMTAuNzMgTDE2LjI4LDEwLjY5IEwxNi4zNiwx
MC42NCBMMTYuNDUsMTAuNjEgTDE2LjU0LDEwLjU3IEwxNi42MywxMC41NSBMMTYuNzIsMTAuNTMg
TDE2LjgxLDEwLjUxIEwxNi45MSwxMC41MCBMMTcuMDAsMTAuNTAgTDE3LjA5LDEwLjUwIEwxNy4x
OSwxMC41MSBMMTcuMjgsMTAuNTMgTDE3LjM3LDEwLjU1IEwxNy40NiwxMC41NyBMMTcuNTUsMTAu
NjEgTDE3LjY0LDEwLjY0IEwxNy43MiwxMC42OSBMMTcuODAsMTAuNzMgTDE3Ljg4LDEwLjc5IEwx
Ny45NiwxMC44NCBMMTguMDMsMTAuOTEgTDE4LjA5LDEwLjk3IEwxOC4xNiwxMS4wNCBMMTguMjEs
MTEuMTIgTDE4LjI3LDExLjIwIEwxOC4zMSwxMS4yOCBMMTguMzYsMTEuMzYgTDE4LjM5LDExLjQ1
IEwxOC40MywxMS41NCBMMTguNDUsMTEuNjMgTDE4LjQ3LDExLjcyIEwxOC40OSwxMS44MSBMMTgu
NTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNS42Mywx
NDEuMzgpIHNpemUgMTguNzV4MTUuMTUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTEwLjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAuMDAsMTkuMDAiXQot
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4My4zMyw4My4zMykgc2l6ZSA1MHgx
MDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsNTAuMDAp
fV0KLSAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoODMuMzMs
ODMuMzMpIHNpemUgNTB4MTAwCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoODMu
MzMsODMuMzMpIHNpemUgNTB4MTAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCww
LjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KLSAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDkxLjY3LDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KLSAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoOTEuNjcsMTA4LjMzKSBzaXplIDMz
LjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4w
MCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcu
NDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwy
My40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUs
MjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2
IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYu
ODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0
Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBM
MTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwy
My4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45
MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBM
NS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42
MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwx
Mi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41
Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMs
Ny4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMy
LDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0
LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTgg
TDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYu
MjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5
LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwy
NC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIs
MTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoODMuMzMsODMuMzMpIHNpemUgNTAuMDB4MTAwLjAwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDUwLjAwLDUwLjAwKX1dCisgICAgICAgICAg
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDgzLjMzLDgzLjMzKSBzaXplIDUw
LjAweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDgzLjMzLDgzLjMz
KSBzaXplIDUwLjAweDEwMC4wMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41
MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCisgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg5MS42NywxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCisg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDkxLjY3LDEwOC4zMykgc2l6ZSAz
My4zM3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJN
MjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5
LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44
MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIx
Ljg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44Miwy
My43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkg
TDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4z
NywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQu
NTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDku
MTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcg
TDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTgu
NjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIs
MTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUu
MzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTgg
TDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4
LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwx
MS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4
IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1
LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44
Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwy
Mi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4x
OCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0
LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge2NpcmNsZX0gYXQgKDEwMC44MywxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAs
MTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2
IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMu
MjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEz
LjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBM
MTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5
LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40
OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDEx
LjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwx
My4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODgg
TDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41
NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIu
MDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwx
MC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjks
MTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3
IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEu
MjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEw
LjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBM
MTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2
LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43
MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEz
LjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwx
MS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIg
TDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoMTA5LjE3LDEyMi4wOCkgc2l6ZSA1eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTgu
NDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEy
LjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBM
MTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4
LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4z
OSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3
LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43Miwx
My40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYg
TDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45
NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIu
ODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwx
NS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAs
MTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYz
IEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUu
NzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEw
LjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBM
MTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2Ljcy
LDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41
MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3
LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwx
MC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQg
TDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4z
OSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEu
ODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
OTguOTYsMTQxLjM4KSBzaXplIDE4Ljc1eDE1LjE1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5
LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY2LjY3LDgzLjMzKSBz
aXplIDUweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAu
MDAsNTAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBh
dCAoMTY2LjY3LDgzLjMzKSBzaXplIDUweDEwMAotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDE2Ni42Nyw4My4zMykgc2l6ZSA1MHgxMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQot
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTc1LjAwLDEwOC4zMykgc2l6
ZSAzMy4zM3g1MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAw
LDUuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTc1LjAwLDEw
OC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1d
IFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYu
ODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwy
My43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjks
MjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0
IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcu
NDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1
LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBM
MTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQs
MjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcu
MjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYg
TDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYu
MjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgs
MTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYu
MjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4x
NSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43
NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwx
My43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4
IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1
Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44
NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwy
My43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjks
MTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCisgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2Ni42Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDUwLjAwKX1d
CisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDE2Ni42Nyw4
My4zMykgc2l6ZSA1MHgxMDAuMDAKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgx
NjYuNjcsODMuMzMpIHNpemUgNTB4MTAwLjAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
MC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KKyAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE3NSwxMDguMzMpIHNpemUgMzMuMzN4
NTAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAw
KX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE3NSwxMDguMzMpIHNp
emUgMzMuMzN4NTAuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0
YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwy
NC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYs
MTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1
IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTku
ODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0
LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBM
MTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkx
LDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0
IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIx
LjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1Ljcw
LDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1
LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEz
IEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEw
LjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43
MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45
NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUs
NS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYu
ODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBM
MTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43
MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYs
MTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUx
IEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxODQuMTcsMTIyLjA4KSBzaXplIDV4Ny41MCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEz
LjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40Mywx
Mi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAg
TDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45
NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMu
MzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwx
Mi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEs
MTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5
IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEu
MDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEy
Ljg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBM
MTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUw
LDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43
MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEw
LjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwx
MC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMg
TDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42
MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAu
NTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwx
Mi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAs
MTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3
IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMu
MzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDEx
LjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge2NpcmNsZX0gYXQgKDE5Mi41MCwxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkg
TDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4z
OSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIu
ODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwx
Ny44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUs
MTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5
IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYu
NzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEz
LjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBM
MTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1Ljcz
LDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40
NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1
LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwx
MS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjgg
TDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45
NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAu
NjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwx
Ni43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDks
MTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3
IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcu
ODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDEx
LjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBM
MTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5
LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDE4Mi4yOSwxNDEuMzgpIHNpemUgMTguNzV4MTUuMTUgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEwLjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAu
MDAsMTkuMDAiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTAsODMuMzMp
IHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1
MC4wMCw1MC4wMCl9XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9
IGF0ICgyNTAsODMuMzMpIHNpemUgNTB4MTAwCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMjUwLDgzLjMzKSBzaXplIDUweDEwMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCi0gICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTguMzMsMTA4LjMzKSBzaXplIDMz
LjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4w
MCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNTguMzMsMTA4LjMz
KSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2Rh
dGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBM
MjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2
LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44
NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5
LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwy
NC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAg
TDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45
MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40
NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwy
MS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43
MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBM
NS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4x
MyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwx
MC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcu
NzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUu
OTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1
LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2
Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUg
TDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcu
NzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2
LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41
MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KKyAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjUwLDgzLjMzKSBzaXplIDUweDEwMC4wMCBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNTAuMDAsNTAuMDApfV0KKyAgICAg
ICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMjUwLDgzLjMzKSBzaXpl
IDUweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI1MCw4My4zMykg
c2l6ZSA1MHgxMDAuMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5
LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQorICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMjU4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KKyAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMjU4LjMzLDEwOC4zMykgc2l6ZSAzMy4z
M3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUu
MDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3
LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBM
MjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1
LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43
NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2
Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywy
NC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEg
TDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIs
MjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYu
OTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjgg
TDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUu
NjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEs
MTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYu
NTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYz
LDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4z
Miw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwx
NC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4
IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2
LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4y
OSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBM
MjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0Ljgy
LDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2NpcmNsZX0gYXQgKDI2Ny41MCwxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIu
MDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwx
My4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEs
MTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2
IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIu
NTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEz
LjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBM
MTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2
LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4x
NiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODggTDEw
LjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41Nywx
Mi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkg
TDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41
NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEu
MjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwx
MC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgs
MTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1
IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIu
MDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEw
LjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBM
MTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2
LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4z
NiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEz
LjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2ly
Y2xlfSBhdCAoMjc1LjgzLDEyMi4wOCkgc2l6ZSA1eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDks
MTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1
IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTgu
MTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEz
LjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBM
MTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5
LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40
NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2
LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45Nywx
My4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAg
TDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41
NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIu
MDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwx
NS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMs
MTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkx
IEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYu
MzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEw
LjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBM
MTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1
LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43
OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4
LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwx
MS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEuODEg
TDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjY1
LjYzLDE0MS4zOCkgc2l6ZSAxOC43NXgxNS4xNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4w
MCJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMzMy4zMyw4My4zMykgc2l6
ZSA1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAwLjAw
LDUwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQg
KDMzMy4zMyw4My4zMykgc2l6ZSA1MHgxMDAKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgzMzMuMzMsODMuMzMpIHNpemUgNTB4MTAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRh
PSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KLSAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0MS42NywxMDguMzMpIHNpemUg
MzMuMzN4NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1
LjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDM0MS42NywxMDgu
MzMpIHNpemUgMzMuMzN4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBb
ZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3
IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMu
NzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIx
Ljg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBM
MTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5
LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4w
MCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDEx
LjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIz
LjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5
LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1
LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1
IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEz
LjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0
LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUs
Ny43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQs
NS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMu
NzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBM
MTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45
NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUs
Ny43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMu
NzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEy
LjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQorICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMzMuMzMsODMuMzMpIHNpemUgNTB4MTAwLjAwIFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwMC4wMCw1MC4wMCl9XQor
ICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgzMzMuMzMsODMu
MzMpIHNpemUgNTB4MTAwLjAwCisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzMz
LjMzLDgzLjMzKSBzaXplIDUweDEwMC4wMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAu
NTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCisgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDEuNjcsMTA4LjMzKSBzaXplIDMzLjMz
eDUwLjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4w
MCl9XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgzNDEuNjcsMTA4LjMz
KSBzaXplIDMzLjMzeDUwLjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0g
W2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44
NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIz
Ljc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwy
MS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQg
TDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40
OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUu
MDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwx
MS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwy
My40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4y
OSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBM
NS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4y
NSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwx
My4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4y
NCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1
LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0
LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEz
Ljc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDgg
TDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUu
OTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1
LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIz
Ljc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwx
Mi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzUwLjgzLDEyMi4wOCkgc2l6ZSA1eDcuNTAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAw
IEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMu
NDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEy
LjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBM
MTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0
LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40
NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDEx
LjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwx
My4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEg
TDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43
OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIu
NTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwx
MC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMs
MTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2
IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAu
OTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEw
LjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBM
MTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAw
LDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41
NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEy
LjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwx
MC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjgg
TDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40
NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtjaXJjbGV9IGF0ICgzNTkuMTcsMTIyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTguNTAsMTIuMDAgTDE4LjUwLDEy
LjA5IEwxOC40OSwxMi4xOSBMMTguNDcsMTIuMjggTDE4LjQ1LDEyLjM3IEwxOC40MywxMi40NiBM
MTguMzksMTIuNTUgTDE4LjM2LDEyLjY0IEwxOC4zMSwxMi43MiBMMTguMjcsMTIuODAgTDE4LjIx
LDEyLjg4IEwxOC4xNiwxMi45NiBMMTguMDksMTMuMDMgTDE4LjAzLDEzLjA5IEwxNy45NiwxMy4x
NiBMMTcuODgsMTMuMjEgTDE3LjgwLDEzLjI3IEwxNy43MiwxMy4zMSBMMTcuNjQsMTMuMzYgTDE3
LjU1LDEzLjM5IEwxNy40NiwxMy40MyBMMTcuMzcsMTMuNDUgTDE3LjI4LDEzLjQ3IEwxNy4xOSwx
My40OSBMMTcuMDksMTMuNTAgTDE3LjAwLDEzLjUwIEwxNi45MSwxMy41MCBMMTYuODEsMTMuNDkg
TDE2LjcyLDEzLjQ3IEwxNi42MywxMy40NSBMMTYuNTQsMTMuNDMgTDE2LjQ1LDEzLjM5IEwxNi4z
NiwxMy4zNiBMMTYuMjgsMTMuMzEgTDE2LjIwLDEzLjI3IEwxNi4xMiwxMy4yMSBMMTYuMDQsMTMu
MTYgTDE1Ljk3LDEzLjA5IEwxNS45MSwxMy4wMyBMMTUuODQsMTIuOTYgTDE1Ljc5LDEyLjg4IEwx
NS43MywxMi44MCBMMTUuNjksMTIuNzIgTDE1LjY0LDEyLjY0IEwxNS42MSwxMi41NSBMMTUuNTcs
MTIuNDYgTDE1LjU1LDEyLjM3IEwxNS41MywxMi4yOCBMMTUuNTEsMTIuMTkgTDE1LjUwLDEyLjA5
IEwxNS41MCwxMi4wMCBMMTUuNTAsMTEuOTEgTDE1LjUxLDExLjgxIEwxNS41MywxMS43MiBMMTUu
NTUsMTEuNjMgTDE1LjU3LDExLjU0IEwxNS42MSwxMS40NSBMMTUuNjQsMTEuMzYgTDE1LjY5LDEx
LjI4IEwxNS43MywxMS4yMCBMMTUuNzksMTEuMTIgTDE1Ljg0LDExLjA0IEwxNS45MSwxMC45NyBM
MTUuOTcsMTAuOTEgTDE2LjA0LDEwLjg0IEwxNi4xMiwxMC43OSBMMTYuMjAsMTAuNzMgTDE2LjI4
LDEwLjY5IEwxNi4zNiwxMC42NCBMMTYuNDUsMTAuNjEgTDE2LjU0LDEwLjU3IEwxNi42MywxMC41
NSBMMTYuNzIsMTAuNTMgTDE2LjgxLDEwLjUxIEwxNi45MSwxMC41MCBMMTcuMDAsMTAuNTAgTDE3
LjA5LDEwLjUwIEwxNy4xOSwxMC41MSBMMTcuMjgsMTAuNTMgTDE3LjM3LDEwLjU1IEwxNy40Niwx
MC41NyBMMTcuNTUsMTAuNjEgTDE3LjY0LDEwLjY0IEwxNy43MiwxMC42OSBMMTcuODAsMTAuNzMg
TDE3Ljg4LDEwLjc5IEwxNy45NiwxMC44NCBMMTguMDMsMTAuOTEgTDE4LjA5LDEwLjk3IEwxOC4x
NiwxMS4wNCBMMTguMjEsMTEuMTIgTDE4LjI3LDExLjIwIEwxOC4zMSwxMS4yOCBMMTguMzYsMTEu
MzYgTDE4LjM5LDExLjQ1IEwxOC40MywxMS41NCBMMTguNDUsMTEuNjMgTDE4LjQ3LDExLjcyIEwx
OC40OSwxMS44MSBMMTguNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgzNDguOTYsMTQxLjM4KSBzaXplIDE4Ljc1eDE1LjE1IFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAg
TDIwLjAwLDE5LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDE2LjY3
LDgzLjMzKSBzaXplIDUweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgyNTAuMDAsNTAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciB7c3ZnfSBhdCAoNDE2LjY3LDgzLjMzKSBzaXplIDUweDEwMAotICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDQxNi42Nyw4My4zMykgc2l6ZSA1MHgxMDAgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5
LjUwIFoiXQotICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDI1LDEwOC4z
Mykgc2l6ZSAzMy4zM3g1MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgwLjAwLDUuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNDI1
LDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAw
XX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIs
MTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2
IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIu
MjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIz
LjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBM
MTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAw
LDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42
OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDku
NjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUg
TDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTku
MjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgs
MTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUu
MTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQg
TDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBM
OC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwx
MC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4
IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1
LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4y
Niw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwy
MS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0
IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQu
NjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCisgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxNi42Nyw4My4zMykgc2l6ZSA1MHgxMDAu
MDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjUwLjAwLDUwLjAw
KX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDQxNi42
Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICg0MTYuNjcsODMuMzMpIHNpemUgNTB4MTAwLjAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRh
PSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KKyAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQyNSwxMDguMzMpIHNpemUgMzMu
MzN4NTAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1
LjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDQyNSwxMDguMzMp
IHNpemUgMzMuMzN4NTAuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBb
ZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3
IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMu
NzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIx
Ljg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBM
MTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5
LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4w
MCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDEx
LjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIz
LjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5
LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1
LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1
IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEz
LjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0
LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUs
Ny43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQs
NS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMu
NzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBM
MTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45
NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUs
Ny43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMu
NzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEy
LjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg0MzQuMTcsMTIyLjA4KSBzaXplIDV4Ny41MCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAg
TDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40
MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIu
ODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwx
Mi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQs
MTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3
IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEu
ODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEz
LjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBM
MTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5
LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41
NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEw
LjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41Mywx
MS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYg
TDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45
MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAu
NzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwx
MS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAs
MTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1
IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIu
ODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEw
Ljk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBM
MTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3
LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2NpcmNsZX0gYXQgKDQ0Mi41MCwxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIu
MDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwx
OC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEs
MTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2
IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcu
NTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEz
LjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBM
MTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2
LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4x
NiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1
LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41Nywx
Mi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkg
TDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41
NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEu
MjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwx
NS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgs
MTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1
IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcu
MDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEw
LjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBM
MTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2
LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4z
NiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4
LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDQzMi4yOSwxNDEuMzgpIHNpemUgMTguNzV4MTUuMTUgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEwLjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBM
MjAuMDAsMTkuMDAiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MDAsODMu
MzMpIHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDMwMC4wMCw1MC4wMCl9XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtz
dmd9IGF0ICg1MDAsODMuMzMpIHNpemUgNTB4MTAwCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNTAwLDgzLjMzKSBzaXplIDUweDEwMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0
YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCi0g
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MDguMzMsMTA4LjMzKSBzaXpl
IDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAs
NS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg1MDguMzMsMTA4
LjMzKSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0g
W2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44
NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIz
Ljc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwy
MS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQg
TDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40
OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUu
MDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwx
MS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwy
My40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4y
OSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBM
NS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4y
NSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwx
My4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4y
NCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1
LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0
LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEz
Ljc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDgg
TDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUu
OTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1
LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIz
Ljc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwx
Mi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KKyAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAwLDgzLjMzKSBzaXplIDUweDEwMC4wMCBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzMDAuMDAsNTAuMDApfV0KKyAg
ICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNTAwLDgzLjMzKSBz
aXplIDUweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDUwMCw4My4z
Mykgc2l6ZSA1MHgxMDAuMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAg
TDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQorICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTA4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KKyAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNTA4LjMzLDEwOC4zMykgc2l6ZSAz
My4zM3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJN
MjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5
LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44
MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIx
Ljg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44Miwy
My43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkg
TDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4z
NywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQu
NTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDku
MTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcg
TDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTgu
NjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIs
MTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUu
MzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTgg
TDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4
LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwx
MS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4
IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1
LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44
Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwy
Mi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4x
OCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0
LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge2NpcmNsZX0gYXQgKDUxNy41MCwxMjIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAs
MTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2
IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMu
MjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEz
LjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBM
MTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5
LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40
OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDEx
LjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwx
My4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODgg
TDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41
NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIu
MDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwx
MC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjks
MTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3
IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEu
MjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEw
LjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBM
MTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2
LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43
MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEz
LjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwx
MS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIg
TDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoNTI1LjgzLDEyMi4wOCkgc2l6ZSA1eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTgu
NDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEy
LjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBM
MTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4
LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4z
OSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3
LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43Miwx
My40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYg
TDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45
NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIu
ODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwx
NS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAs
MTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYz
IEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUu
NzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEw
LjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBM
MTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2Ljcy
LDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41
MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3
LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwx
MC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQg
TDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4z
OSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEu
ODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
NTE1LjYzLDE0MS4zOCkgc2l6ZSAxOC43NXgxNS4xNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwx
OS4wMCJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLDE5MCkgc2l6ZSAyODB4
MTAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtOCkgc2l6ZSAyODB4MTAKICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4g
MSBhdCAoMC4wMCwxOTAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDcyIHdpZHRoIDI4MC4w
MDogIkFsbCBzdmdzIGJlbG93IHNob3VsZCBsb29rIHRoZSBzYW1lLCBhbGwgaGF2ZSB2YWxpZCBw
cmVzZXJ2ZUFzcGVjdFJhdGlvLiIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MCwzNTAuMDApIHNpemUgNTB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMC4wMCwyMDAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lciB7c3ZnfSBhdCAoMCwzNTAuMDApIHNpemUgNTB4NjYuNjcKLSAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgwLDM1MC4wMCkgc2l6ZSA1MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzku
NTAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMzUwKSBzaXplIDUw
eDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMjAw
LjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDAs
MzUwKSBzaXplIDUweDY2LjY3CisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwz
NTApIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAg
TDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQogICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoOC4zMywzNjYuNjcpIHNpemUgMzMuMzN4MzMuMzMgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCiAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDguMzMsMzY2LjY3KSBzaXplIDMzLjMz
eDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4w
MCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcu
NDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwy
My40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUs
MjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2
IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYu
ODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0
Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBM
MTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwy
My4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45
MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBM
NS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42
MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwx
Mi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41
Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMs
Ny4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMy
LDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0
LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTgg
TDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYu
MjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5
LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwy
NC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIs
MTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KICAgICAgICAgICAgICAgUmVuZGVy
UGF0aCB7Y2lyY2xlfSBhdCAoMTcuNTAsMzc1LjgzKSBzaXplIDV4NSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwx
My40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzks
MTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4
IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIu
ODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEz
LjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBM
MTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcy
LDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4z
NiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEw
Ljk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43Mywx
Mi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYg
TDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41
MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEu
NjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwx
MC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcs
MTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5
IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEu
NzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEw
LjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBM
MTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4
LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4w
NCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEz
LjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwx
MS44MSBMMTMuNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0g
YXQgKDI1LjgzLDM3NS44Mykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4
LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwx
Mi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYg
TDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44
MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMu
NDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwx
Ny4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMs
MTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMx
IEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUu
OTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEy
LjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBM
MTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUw
LDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41
NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1
Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwx
MC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQg
TDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44
MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAu
NTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwx
Ny42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYs
MTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEy
IEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTgu
NDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDEx
LjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTUuNjMsMzg4Ljcw
KSBzaXplIDE4Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0g
W3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KLSAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoODMuMzMsMzUwLjAwKSBzaXplIDUweDY2LjY3
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDUwLjAwLDIwMC4wMCl9
XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg4My4zMywz
NTAuMDApIHNpemUgNTB4NjYuNjcKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg4
My4zMywzNTAuMDApIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0w
LjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQorICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4My4zMywzNTApIHNpemUgNTAuMDB4NjYuNjcg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsMjAwLjAwKX1d
CisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDgzLjMzLDM1
MCkgc2l6ZSA1MC4wMHg2Ni42NworICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDgz
LjMzLDM1MCkgc2l6ZSA1MC4wMHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAu
NTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCiAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg5MS42NywzNjYuNjcpIHNpemUgMzMuMzN4
MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAw
KX1dCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDkxLjY3LDM2Ni42Nykg
c2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtk
YXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcg
TDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43
NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEu
ODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwx
OS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDks
MjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAw
IEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEu
OTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMu
NDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjks
MjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUu
NzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUg
TDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMu
MTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQs
MTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3
LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1
Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43
NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwx
Ni44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1
IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3
LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43
NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIu
NTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDEwMC44MywzNzUuODMpIHNpemUgNXg1IFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMu
NTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEy
LjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBM
MTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2
LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4z
NiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEy
LjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwx
My40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkg
TDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4w
NCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIu
ODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwx
MC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAs
MTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcy
IEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAu
NjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEw
Ljk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBM
MTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYz
LDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41
MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEy
LjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwx
MC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcg
TDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4z
NiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEu
NzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7Y2lyY2xlfSBhdCAoMTA5LjE3LDM3NS44Mykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTgu
NDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEy
LjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBM
MTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4
LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4z
OSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3
LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43Miwx
My40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYg
TDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45
NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIu
ODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwx
NS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAs
MTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYz
IEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUu
NzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEw
LjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBM
MTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2Ljcy
LDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41
MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3
LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwx
MC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQg
TDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4z
OSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEu
ODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
OTguOTYsMzg4LjcwKSBzaXplIDE4Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5
LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY2LjY3LDM1MC4wMCkg
c2l6ZSA1MHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgx
MDAuMDAsMjAwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2
Z30gYXQgKDE2Ni42NywzNTAuMDApIHNpemUgNTB4NjYuNjcKLSAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgxNjYuNjcsMzUwLjAwKSBzaXplIDUweDY2LjY3IFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwz
OS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE3NS4wMCwz
NjYuNjcpIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMC4wMCw1LjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0g
YXQgKDE3NS4wMCwzNjYuNjcpIHNpemUgMzMuMzN4MzMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIs
MTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4
IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIu
NzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIz
LjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBM
MTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYz
LDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44
MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEw
LjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5
IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5
LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4
LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1
LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMy
IEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYz
IEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBM
MTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4z
MSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMs
NS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTgu
NjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBM
MjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4x
MiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQu
NTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0
LjM3IFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjYuNjcsMzUwKSBz
aXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEw
MC4wMCwyMDAuMDApfV0KKyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3Zn
fSBhdCAoMTY2LjY3LDM1MCkgc2l6ZSA1MHg2Ni42NworICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDE2Ni42NywzNTApIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0g
W2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoi
XQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTc1LDM2Ni42Nykgc2l6
ZSAzMy4zM3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgw
LjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTc1LDM2
Ni42Nykgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAw
XX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIs
MTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2
IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIu
MjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIz
LjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBM
MTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAw
LDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42
OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDku
NjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUg
TDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTku
MjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgs
MTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUu
MTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQg
TDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBM
OC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwx
MC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4
IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1
LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4y
Niw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwy
MS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0
IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQu
NjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE4NC4xNywzNzUuODMpIHNpemUgNXg1
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4w
MCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEz
LjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywx
Mi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkg
TDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42
NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMu
NDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwx
MS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUs
MTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIx
IEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAu
NzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEy
LjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBM
MTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUz
LDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4z
NiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEw
LjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwx
MC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcg
TDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4w
MCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAu
NTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwx
Mi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDks
MTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4
IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMu
NDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTkyLjUwLDM3NS44Mykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4w
OSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4
LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwx
Mi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYg
TDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41
NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMu
NDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwx
Ni43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYs
MTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2
IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUu
NzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEy
LjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBM
MTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1
LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4y
OCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1
Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwx
MC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUg
TDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4w
OSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAu
NTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwx
Ny44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYs
MTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2
IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTgu
NDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMTgyLjI5LDM4OC43MCkgc2l6ZSAxOC43NXgxMC4xMCBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwy
MC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MCwzNTAu
MDApIHNpemUgNTB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oMTUwLjAwLDIwMC4wMCl9XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IHtzdmd9IGF0ICgyNTAsMzUwLjAwKSBzaXplIDUweDY2LjY3Ci0gICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoMjUwLDM1MC4wMCkgc2l6ZSA1MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzku
NTAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MCwzNTApIHNpemUg
NTB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUwLjAw
LDIwMC4wMCl9XQorICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0
ICgyNTAsMzUwKSBzaXplIDUweDY2LjY3CisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMjUwLDM1MCkgc2l6ZSA1MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAu
NTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCiAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTguMzMsMzY2LjY3KSBzaXplIDMzLjMz
eDMzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4w
MCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNTguMzMsMzY2LjY3
KSBzaXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0g
W2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44
NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIz
Ljc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwy
MS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQg
TDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40
OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUu
MDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwx
MS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwy
My40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4y
OSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBM
NS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4y
NSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwx
My4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4y
NCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1
LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0
LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEz
Ljc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDgg
TDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUu
OTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1
LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIz
Ljc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwx
Mi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMjY3LjUwLDM3NS44Mykgc2l6ZSA1eDUgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwx
My41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMs
MTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgw
IEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIu
OTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEz
LjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBM
MTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgx
LDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4z
OSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDEx
LjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwx
Mi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUg
TDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41
MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEu
NzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwx
MC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEs
MTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjcz
IEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEu
NjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEw
LjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBM
MTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgw
LDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45
NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEz
LjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40Nywx
MS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vc2hhcGVzLXN1cHBvcnRpbmctbWFya2Vycy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2hh
cGVzLXN1cHBvcnRpbmctbWFya2Vycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2hhcGVzLXN1cHBvcnRpbmctbWFy
a2Vycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5LDQgKzE5LDQgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoLTAuODMs
MjAwKSBzaXplIDEuNjd4ODMuMzMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtzdGFydCBtYXJrZXI9bWFya10gW21pZGRsZSBtYXJrZXI9bWFya10gW2VuZCBtYXJrZXI9
bWFya10gW2RhdGE9Ik0wLjAwLDEyMC4wMCBMMC4wMCwxNzAuMDAiXQogICAgICAgUmVuZGVyUGF0
aCB7cG9seWxpbmV9IGF0ICg1MCwxOTkuMTcpIHNpemUgODQuNjh4ODQuNTQgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtzdGFydCBtYXJrZXI9bWFya10gW21pZGRsZSBt
YXJrZXI9bWFya10gW2VuZCBtYXJrZXI9bWFya10gW2RhdGE9Ik0zMC4wMCwxMjAuMDAgTDgwLjAw
LDEyMC4wMCBMNTUuMDAsMTcwLjAwIl0KICAgICAgIFJlbmRlclBhdGgge3BvbHlnb259IGF0ICgx
NjUuMzIsMTk5LjE3KSBzaXplIDg2LjAzeDg2LjAzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbc3RhcnQgbWFya2VyPW1hcmtdIFttaWRkbGUgbWFya2VyPW1hcmtdIFtl
bmQgbWFya2VyPW1hcmtdIFtkYXRhPSJNMTAwLjAwLDEyMC4wMCBMMTUwLjAwLDEyMC4wMCBMMTI1
LjAwLDE3MC4wMCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyODIuNTAsMTk5LjE3
KSBzaXplIDg1LjUyeDg1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBb
c3RhcnQgbWFya2VyPW1hcmtdIFttaWRkbGUgbWFya2VyPW1hcmtdIFtlbmQgbWFya2VyPW1hcmtd
IFtkYXRhPSJNMTcwLjAwLDEyMC4wMCBMMjIwLjAwLDEyMC4wMCBMMTk1LjAwLDE3MC4wMCBDMTg1
LjAwLDE3MC4wMCwxNzAuMDAsMTQwLjAwLDE3MC4wMCwxMjAuMDAiXQorICAgICAgUmVuZGVyUGF0
aCB7cGF0aH0gYXQgKDI4Mi41MCwxOTkuMTcpIHNpemUgODUuNTJ4ODUuMDAgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtzdGFydCBtYXJrZXI9bWFya10gW21pZGRsZSBt
YXJrZXI9bWFya10gW2VuZCBtYXJrZXI9bWFya10gW2RhdGE9Ik0xNzAuMDAsMTIwLjAwIEwyMjAu
MDAsMTIwLjAwIEwxOTUuMDAsMTcwLjAwIEMxODUuMDAsMTcwLjAwLDE3MC4wMCwxNDAuMDAsMTcw
LjAwLDEyMC4wMCJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91
c2UtY3NzLW5vLWVmZmVjdC1vbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLWNzcy1uby1lZmZlY3Qt
b24tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1jc3Mtbm8tZWZmZWN0LW9uLXNoYWRvdy10
cmVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiBsYXllciBhdCAoMCwwKSBzaXplIDQ1M3gxMTMKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
LTAuMDcsLTAuNTYpIHNpemUgNDUzLjEzeDExNC4xMworICBSZW5kZXJTVkdSb290IHtzdmd9IGF0
ICgtMC4wNiwtMC41Nikgc2l6ZSA0NTMuMTN4MTE0LjEzCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDMwMCw0OS41MCkgc2l6ZSA2MDAuNTB4MjAxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF0gW29wYWNpdHk9MC41MF0gW21pdGVyIGxpbWl0PTEwLjAwXSBbbGluZSBqb2lu
PUJFVkVMXSBbZGFzaCBhcnJheT17MzAwLjAwLCAxMDAuMDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMDAuMDAsNTAuMDAgTDkwMC4wMCw1MC4wMCBM
OTAwLjAwLDI1MC4wMCBMMzAwLjAwLDI1MC4wMCJdCi0gICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KC0wLjA3LC0wLjU2KSBzaXplIDQ1My4xM3gxMTQuMTMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTMuMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEy
MDAuMDAsMC4wMCBMMTIwMC4wMCwzMDAuMDAgTDAuMDAsMzAwLjAwIFoiXQorICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgtMC4wNiwtMC41Nikgc2l6ZSA0NTMuMTN4MTE0LjEzIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl0gW3N0cm9rZSB3aWR0aD0zLjAwXX1dIFtkYXRhPSJN
MC4wMCwwLjAwIEwxMjAwLjAwLDAuMDAgTDEyMDAuMDAsMzAwLjAwIEwwLjAwLDMwMC4wMCBaIl0K
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMDUuOTcsMTEuMzApIHNpemUgMjQxLjA3
eDkwLjQwCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDEwNS45NywxMS4zMCkg
c2l6ZSAyNDEuMDd4OTAuNDAKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTA1
Ljk3LDExLjMwKSBzaXplIDI0MS4wN3g5MC40MApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9jdXN0b20vdmlld2JveC1zeW50YXgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3ZpZXdib3gtc3ludGF4LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS92aWV3Ym94LXN5bnRheC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDkgKzI1LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge2NpcmNsZX0gYXQgKDE3LjUwLDEwOS4xNykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4w
OSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEz
LjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwx
Mi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYg
TDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41
NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMu
NDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwx
MS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYs
MTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2
IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAu
NzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEy
LjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBM
MTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1
LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4y
OCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEw
Ljk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwx
MC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUg
TDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4w
OSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAu
NTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwx
Mi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYs
MTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2
IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMu
NDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgyNS44MywxMDkuMTcpIHNpemUgNXg1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5
IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTgu
MzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEy
Ljk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBM
MTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2
LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41
MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2
LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwx
My4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkg
TDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42
OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIu
MzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwx
NS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcs
MTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIw
IEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYu
MDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEw
LjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBM
MTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5
LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42
MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3
Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwx
MS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUg
TDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41
MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE1LjYzLDEy
Mi4wMykgc2l6ZSAxOC43NXgxMC4xMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCi0g
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDgzLjMzLDgzLjMzKSBzaXplIDUweDY2
LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDUwLjAwLDUwLjAw
KX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDgzLjMz
LDgzLjMzKSBzaXplIDUweDY2LjY3Ci0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
ODMuMzMsODMuMzMpIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0w
LjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQorICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4My4zMyw4My4zMykgc2l6ZSA1MC4wMHg2Ni42
NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg1MC4wMCw1MC4wMCl9
XQorICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg4My4zMyw4
My4zMykgc2l6ZSA1MC4wMHg2Ni42NworICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDgzLjMzLDgzLjMzKSBzaXplIDUwLjAweDY2LjY3IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRh
PSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDkxLjY3LDEwMCkgc2l6ZSAzMy4z
M3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUu
MDApfV0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoOTEuNjcsMTAwKSBz
aXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2Rh
dGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBM
MjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2
LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44
NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5
LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwy
NC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAg
TDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45
MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40
NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwy
MS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43
MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBM
NS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4x
MyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwx
MC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcu
NzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUu
OTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1
LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2
Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUg
TDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcu
NzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2
LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41
MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTAwLjgzLDEwOS4xNykgc2l6ZSA1eDUgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41
MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIu
NDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwx
My4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYs
MTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2
IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIu
MTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEz
LjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBM
MTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0
LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44
OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEw
LjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwx
Mi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIg
TDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42
OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAu
OTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwx
MS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMs
MTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUw
IEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIu
NDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEw
LjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBM
MTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2
LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43
MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQpAQCAtMzYsOCArMzYsOCBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MTY2LjY3LDgzLjMzKSBzaXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDEwMC4wMCw1MC4wMCl9XQogICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0
Q29udGFpbmVyIHtzdmd9IGF0ICgxNjYuNjcsODMuMzMpIHNpemUgNTB4NjYuNjcKICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNjYuNjcsODMuMzMpIHNpemUgNTB4NjYuNjcgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5
LjUwIEwwLjUwLDM5LjUwIFoiXQotICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoMTc1LjAwLDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoMTc1LjAwLDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwy
NC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAs
MTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4
IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAu
ODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0
LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBM
MTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEz
LDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4w
NSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUs
MjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYu
MjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkg
TDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQu
MzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAs
MTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5
LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2
LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41
MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwx
NS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5
IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2
LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4w
OSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMy
IEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQu
OTgsMTQuMzcgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNzUs
MTAwKSBzaXplIDMzLjMzeDMzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDAuMDAsNS4wMCl9XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0
ICgxNzUsMTAwKSBzaXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwy
NC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUs
MTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3
IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAu
MzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0
LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBM
MTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUx
LDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43
NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwy
MS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45
NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBM
NS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43
NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwx
MC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4
LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYu
MjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEz
LDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2
LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAg
TDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcu
MjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0
LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkx
IEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0K
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTg0LjE3LDEwOS4xNykgc2l6
ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUw
LDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4z
NyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEz
LjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywx
My4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEg
TDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4y
OCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMu
NTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwx
MS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIs
MTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2
IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAu
NjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEy
LjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBM
MTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0
LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4w
NCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDEx
LjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwx
MC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAg
TDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4z
NywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAu
NjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwx
My4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEs
MTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYz
IEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxOTIuNTAsMTA5LjE3KSBzaXplIDV4NSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTguNTAsMTIuMDAgTDE4LjUw
LDEyLjA5IEwxOC40OSwxMi4xOSBMMTguNDcsMTIuMjggTDE4LjQ1LDEyLjM3IEwxOC40MywxMi40
NiBMMTguMzksMTIuNTUgTDE4LjM2LDEyLjY0IEwxOC4zMSwxMi43MiBMMTguMjcsMTIuODAgTDE4
LjIxLDEyLjg4IEwxOC4xNiwxMi45NiBMMTguMDksMTMuMDMgTDE4LjAzLDEzLjA5IEwxNy45Niwx
My4xNiBMMTcuODgsMTMuMjEgTDE3LjgwLDEzLjI3IEwxNy43MiwxMy4zMSBMMTcuNjQsMTMuMzYg
TDE3LjU1LDEzLjM5IEwxNy40NiwxMy40MyBMMTcuMzcsMTMuNDUgTDE3LjI4LDEzLjQ3IEwxNy4x
OSwxMy40OSBMMTcuMDksMTMuNTAgTDE3LjAwLDEzLjUwIEwxNi45MSwxMy41MCBMMTYuODEsMTMu
NDkgTDE2LjcyLDEzLjQ3IEwxNi42MywxMy40NSBMMTYuNTQsMTMuNDMgTDE2LjQ1LDEzLjM5IEwx
Ni4zNiwxMy4zNiBMMTYuMjgsMTMuMzEgTDE2LjIwLDEzLjI3IEwxNi4xMiwxMy4yMSBMMTYuMDQs
MTMuMTYgTDE1Ljk3LDEzLjA5IEwxNS45MSwxMy4wMyBMMTUuODQsMTIuOTYgTDE1Ljc5LDEyLjg4
IEwxNS43MywxMi44MCBMMTUuNjksMTIuNzIgTDE1LjY0LDEyLjY0IEwxNS42MSwxMi41NSBMMTUu
NTcsMTIuNDYgTDE1LjU1LDEyLjM3IEwxNS41MywxMi4yOCBMMTUuNTEsMTIuMTkgTDE1LjUwLDEy
LjA5IEwxNS41MCwxMi4wMCBMMTUuNTAsMTEuOTEgTDE1LjUxLDExLjgxIEwxNS41MywxMS43MiBM
MTUuNTUsMTEuNjMgTDE1LjU3LDExLjU0IEwxNS42MSwxMS40NSBMMTUuNjQsMTEuMzYgTDE1LjY5
LDExLjI4IEwxNS43MywxMS4yMCBMMTUuNzksMTEuMTIgTDE1Ljg0LDExLjA0IEwxNS45MSwxMC45
NyBMMTUuOTcsMTAuOTEgTDE2LjA0LDEwLjg0IEwxNi4xMiwxMC43OSBMMTYuMjAsMTAuNzMgTDE2
LjI4LDEwLjY5IEwxNi4zNiwxMC42NCBMMTYuNDUsMTAuNjEgTDE2LjU0LDEwLjU3IEwxNi42Mywx
MC41NSBMMTYuNzIsMTAuNTMgTDE2LjgxLDEwLjUxIEwxNi45MSwxMC41MCBMMTcuMDAsMTAuNTAg
TDE3LjA5LDEwLjUwIEwxNy4xOSwxMC41MSBMMTcuMjgsMTAuNTMgTDE3LjM3LDEwLjU1IEwxNy40
NiwxMC41NyBMMTcuNTUsMTAuNjEgTDE3LjY0LDEwLjY0IEwxNy43MiwxMC42OSBMMTcuODAsMTAu
NzMgTDE3Ljg4LDEwLjc5IEwxNy45NiwxMC44NCBMMTguMDMsMTAuOTEgTDE4LjA5LDEwLjk3IEwx
OC4xNiwxMS4wNCBMMTguMjEsMTEuMTIgTDE4LjI3LDExLjIwIEwxOC4zMSwxMS4yOCBMMTguMzYs
MTEuMzYgTDE4LjM5LDExLjQ1IEwxOC40MywxMS41NCBMMTguNDUsMTEuNjMgTDE4LjQ3LDExLjcy
IEwxOC40OSwxMS44MSBMMTguNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgxODIuMjksMTIyLjAzKSBzaXplIDE4Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMu
MDAgTDIwLjAwLDE5LjAwIl0KQEAgLTg0LDggKzg0LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY2Ni42Nyw4My4zMykg
c2l6ZSA1MHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0
MDAuMDAsNTAuMDApfV0KICAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3Zn
fSBhdCAoNjY2LjY3LDgzLjMzKSBzaXplIDUweDY2LjY3CiAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoNjY2LjY3LDgzLjMzKSBzaXplIDUweDY2LjY3IFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41
MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3NS4wMCwxMDAp
IHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oMC4wMCw1LjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDY3
NS4wMCwxMDApIHNpemUgMzMuMzN4MzMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
RkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0
LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwx
OS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcg
TDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4z
NiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQu
NTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwx
NS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEs
MjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2
IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIx
Ljg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1
LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1
LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1
IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEw
Ljc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDgu
MTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4y
NCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMs
NS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYu
MjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBM
MTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4y
OSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQs
OS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEg
TDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQor
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjc1LDEwMCkgc2l6ZSAzMy4z
M3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUu
MDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNjc1LDEwMCkgc2l6
ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRh
PSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0
LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43Niwx
OS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUg
TDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44
MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQu
NjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwx
NC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEs
MjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQg
TDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEu
MzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAs
MTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUu
MDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMg
TDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAu
MTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3Ljcx
IEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1
IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1
LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44
Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwx
OS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3Ljcx
IEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43Niwx
MC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEg
TDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDY4NC4xNywxMDkuMTcpIHNpemUgNXg1IFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAs
MTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2
IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMu
MjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEz
LjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBM
MTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5
LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40
OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDEx
LjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwx
My4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODgg
TDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41
NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIu
MDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwx
MC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjks
MTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3
IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEu
MjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEw
LjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBM
MTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2
LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43
MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEz
LjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwx
MS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIg
TDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoNjkyLjUwLDEwOS4xNykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDks
MTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1
IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTgu
MTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEz
LjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBM
MTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5
LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40
NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2
LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45Nywx
My4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAg
TDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41
NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIu
MDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwx
NS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMs
MTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkx
IEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYu
MzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEw
LjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBM
MTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1
LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43
OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4
LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwx
MS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEuODEg
TDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNjgy
LjI5LDEyMi4wMykgc2l6ZSAxOC43NXgxMC4xMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4w
MCJdCkBAIC0xMDgsOSArMTA4LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE3LjUwLDM3Mi4wOCkgc2l6ZSA1eDcu
NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEy
LjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBM
MTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3
LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4w
OSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEy
LjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwx
My40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAg
TDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40
NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMu
MjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwx
MC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEs
MTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5
IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAu
NTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDEx
LjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBM
MTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIw
LDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41
NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEy
LjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywx
MC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkg
TDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4w
OSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEu
MjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwx
My40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNS44MywzNzIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAs
MTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2
IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTgu
MjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEz
LjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBM
MTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5
LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40
OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2
LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwx
My4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODgg
TDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41
NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIu
MDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwx
NS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjks
MTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3
IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYu
MjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEw
LjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBM
MTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2
LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43
MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4
LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwx
MS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIg
TDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDE1LjYzLDM5MS4zOCkgc2l6ZSAxOC43NXgxNS4xNSBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAw
IEwyMC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDgzLjMz
LDMzMy4zMykgc2l6ZSA1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oNTAuMDAsMjAwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIge3N2Z30gYXQgKDgzLjMzLDMzMy4zMykgc2l6ZSA1MHgxMDAKLSAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICg4My4zMywzMzMuMzMpIHNpemUgNTB4MTAwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41MCwz
OS41MCBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoODMuMzMsMzMzLjMz
KSBzaXplIDUwLjAweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSg1MC4wMCwyMDAuMDApfV0KKyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7
c3ZnfSBhdCAoODMuMzMsMzMzLjMzKSBzaXplIDUwLjAweDEwMAorICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDgzLjMzLDMzMy4zMykgc2l6ZSA1MC4wMHgxMDAgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUw
LDM5LjUwIFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoOTEuNjcs
MzU4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0
ICg5MS42NywzNTguMzMpIHNpemUgMzMuMzN4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUg
TDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4w
NSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEu
MzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwy
MC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDks
MjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4
IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIu
NTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIz
Ljc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3Ljcx
LDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1
Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3
IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEz
Ljc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1
LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3Ljcx
LDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgs
Ni4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMu
MTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBM
MTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43
MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcs
Ny4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMu
NDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEu
OTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoi
XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxMDAuODMsMzcyLjA4KSBz
aXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
MTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1
LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43
MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEz
LjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43Miwx
My4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUg
TDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45
MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMu
NDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwx
MS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQs
MTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0
IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAu
NTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDEx
LjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBM
MTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0
LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43
OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDEx
LjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwx
MC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMg
TDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43
MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAu
OTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwx
My4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUs
MTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCkBAIC0xMTks
OCArMTE5LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDE2Ni42NywzMzMuMzMpIHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwMC4wMCwyMDAuMDApfV0KICAgICAgICAg
ICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMTY2LjY3LDMzMy4zMykgc2l6
ZSA1MHgxMDAKICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNjYuNjcsMzMzLjMz
KSBzaXplIDUweDEwMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjku
NTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCi0gICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgxNzUuMDAsMzU4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQotICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxNzUuMDAsMzU4LjMzKSBzaXplIDMzLjMzeDUw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4w
MCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0
LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwy
MC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkg
TDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4y
NiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQu
ODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwx
My43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIs
MjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBM
OC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44
OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwx
OC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4w
MCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBM
NS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0
IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBM
OS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAg
TDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUu
MDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5
LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIw
LjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUg
TDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwx
MC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMg
TDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDE3NSwzNTguMzMpIHNpemUgMzMuMzN4NTAgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCisgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2NpcmNsZX0gYXQgKDE3NSwzNTguMzMpIHNpemUgMzMuMzN4NTAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42
MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0
LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwy
MC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEg
TDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42
OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQu
OTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwx
My4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQs
MjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4
LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2
IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3
LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAy
LDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1
LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBM
Ny4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDku
NjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBM
MTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4w
MCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDks
NS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAu
ODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBM
MjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwx
MS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUg
TDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgx
ODQuMTcsMzcyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMu
NDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEy
LjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBM
MTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgw
LDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40
MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEy
LjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42Mywx
My40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEg
TDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45
MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIu
NzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwx
MC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAs
MTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0
IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAu
NzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEw
Ljg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBM
MTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgx
LDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41
MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEy
LjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45Niwx
MC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIg
TDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40
MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEu
OTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE5Mi41MCwzNzIu
MDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBM
MTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMx
LDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4w
MyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3
LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywx
My40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAg
TDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41
NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMu
MjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwx
NS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQs
MTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4
IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUu
NTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDEx
LjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBM
MTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEy
LDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42
MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2
LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwx
MC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQg
TDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4w
MywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEu
MjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwx
OC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Mi4yOSwzOTEuMzgpIHNpemUgMTgu
NzV4MTUuMTUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdp
ZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTEwLjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAuMDAsMTkuMDAiXQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9oaXhpZS9wZXJmLzAwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9oaXhpZS9wZXJmLzAwMS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9o
aXhpZS9wZXJmLzAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMjQzLjgwLDQxNC4wMCkgc2l6ZSAzNy4yMHgyMiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTIwLjIwLDIxOC44MCBDLTIwLjIwLDIxOC44MCwtMTkuMDAs
MjE0LjAwLC0yMS44MCwyMTQuODAgQy0yMy44MCwyMTQuODAsLTUwLjIwLDIyNi40MCwtNTYuMjAs
MjM2LjAwIEMtNTYuMjAsMjM2LjAwLC0yNi42MCwyMTQuNDAsLTIwLjIwLDIxOC44MCBaIl0KICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNTUuNDAsNDE5LjYwKSBzaXplIDEzNC4wMHg4Ny4y
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTM0LjYwLDI2
Ni40MCBMLTQ0LjYwLDI3NC4wMCBDLTQ0LjYwLDI3NC4wMCwtMzQuMjAsMjY2LjQwLC0zMC42MCwy
NjcuNjAgQy0zMC42MCwyNjcuNjAsLTM3LjQwLDI3OC44MCwtMzguMjAsMjg0LjAwIEMtMzguMjAs
Mjg0LjAwLC0yNy44MCwyNzEuMjAsLTIyLjIwLDI3MS42MCBDLTIyLjIwLDI3MS42MCwtMTQuNjAs
MjcyLjAwLC0xNC42MCwyODIuODAgQy0xNC42MCwyODIuODAsLTkuMDAsMjcyLjQwLC01LjgwLDI3
Mi44MCBDLTUuODAsMjcyLjgwLC00LjYwLDI3OS4yMCwtNS44MCwyODYuMDAgQy01LjgwLDI4Ni4w
MCwtMS44MCwyNzguNDAsMi4yMCwyODAuMDAgQzIuMjAsMjgwLjAwLDguNjAsMjc4LjAwLDcuODAs
Mjg5LjYwIEM3LjgwLDI4OS42MCw3LjgwLDMwMC4wMCw3LjAwLDMwMi44MCBDNy4wMCwzMDIuODAs
MTIuNjAsMjc2LjQwLDE1LjAwLDI3Ni4wMCBDMTUuMDAsMjc2LjAwLDIzLjAwLDI3NC44MCwyNy44
MCwyODMuNjAgQzI3LjgwLDI4My42MCwyMy44MCwyNzYuMDAsMjguNjAsMjc4LjAwIEMyOC42MCwy
NzguMDAsMzkuNDAsMjc5LjYwLDQyLjYwLDI4Ni40MCBDNDIuNjAsMjg2LjQwLDM1LjgwLDI3NC40
MCw0MS40MCwyNzcuNjAgQzQxLjQwLDI3Ny42MCw0OC4yMCwyNzcuNjAsNDkuNDAsMjg0LjAwIEM0
OS40MCwyODQuMDAsNTcuODAsMzA1LjIwLDU5LjgwLDMwNi44MCBDNTkuODAsMzA2LjgwLDUyLjIw
LDI4NS4yMCw1My44MCwyODUuMjAgQzUzLjgwLDI4NS4yMCw1MS44MCwyNzMuMjAsNTcuMDAsMjg4
LjAwIEM1Ny4wMCwyODguMDAsNTMuODAsMjc0LjAwLDU5LjQwLDI3NC44MCBDNjUuMDAsMjc1LjYw
LDY5LjQwLDI4NS42MCw3Ny44MCwyODMuMjAgQzc3LjgwLDI4My4yMCw4Ny40MCwyODguODAsODku
NDAsMjE5LjYwIEwtMzQuNjAsMjY2LjQwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDI1OC42MCwzNDkuMjApIHNpemUgMTQ0LjAweDEyNy42MCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNLTI5LjgwLDE3My42MCBDLTI5LjgwLDE3My42MCwtMTUu
MDAsMTY3LjYwLDI1LjAwLDE3My42MCBDMjUuMDAsMTczLjYwLDMyLjIwLDE3NC4wMCwzOS4wMCwx
NjUuMjAgQzQ1LjgwLDE1Ni40MCw3Mi42MCwxNDkuMjAsNzkuMDAsMTUxLjIwIEw4OC42MCwxNTcu
NjAgTDg5LjQwLDE1OC44MCBDODkuNDAsMTU4LjgwLDEwMS44MCwxNjkuMjAsMTAyLjIwLDE3Ni44
MCBDMTAyLjYwLDE4NC40MCw4Ny44MCwyMzIuNDAsNzguMjAsMjQ4LjQwIEM2OC42MCwyNjQuNDAs
NTkuMDAsMjc2LjgwLDM5LjgwLDI3NC40MCBDMzkuODAsMjc0LjQwLDE5LjAwLDI3MC40MCwtNi42
MCwyNzQuNDAgQy02LjYwLDI3NC40MCwtMzUuODAsMjcyLjgwLC0zOC42MCwyNjQuODAgQy00MS40
MCwyNTYuODAsLTI3LjQwLDI0MS42MCwtMjcuNDAsMjQxLjYwIEMtMjcuNDAsMjQxLjYwLC0yMy4w
MCwyMzMuMjAsLTI0LjIwLDIxOC44MCBDLTI1LjQwLDIwNC40MCwtMjUuMDAsMTc2LjQwLC0yOS44
MCwxNzMuNjAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjY5LDM3NS42MCkgc2l6
ZSAxMjIuODB4OTEuMjUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U1NjY4Q119XSBbZGF0
YT0iTS03LjgwLDE3NS42MCBDMC42MCwxOTQuMDAsLTI5LjAwLDI1OS4yMCwtMjkuMDAsMjU5LjIw
IEMtMzEuMDAsMjYwLjgwLC0xNi4zNCwyNjYuODUsLTYuMjAsMjY0LjQwIEM0Ljc1LDI2MS43Niw0
NS4wMCwyNjYuMDAsNDUuMDAsMjY2LjAwIEM2OC42MCwyNTAuNDAsODEuNDAsMjA2LjAwLDgxLjQw
LDIwNi4wMCBDODEuNDAsMjA2LjAwLDkxLjgwLDE4Mi4wMCw3NC4yMCwxNzguODAgQzU2LjYwLDE3
NS42MCwtNy44MCwxNzUuNjAsLTcuODAsMTc1LjYwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDI2OSwzNzUuNjApIHNpemUgMTIyLjgweDkxLjI0IFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNFNTY2OENdfV0gW2RhdGE9Ik0tNy44MCwxNzUuNjAgQzAuNjAsMTk0LjAwLC0yOS4w
MCwyNTkuMjAsLTI5LjAwLDI1OS4yMCBDLTMxLjAwLDI2MC44MCwtMTYuMzQsMjY2Ljg1LC02LjIw
LDI2NC40MCBDNC43NSwyNjEuNzYsNDUuMDAsMjY2LjAwLDQ1LjAwLDI2Ni4wMCBDNjguNjAsMjUw
LjQwLDgxLjQwLDIwNi4wMCw4MS40MCwyMDYuMDAgQzgxLjQwLDIwNi4wMCw5MS44MCwxODIuMDAs
NzQuMjAsMTc4LjgwIEM1Ni42MCwxNzUuNjAsLTcuODAsMTc1LjYwLC03LjgwLDE3NS42MCBaIl0K
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOTAuMTcsMzUzLjMzKSBzaXplIDk0LjYzeDU0
LjY4IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCMjMyNTldfV0gW2RhdGE9Ik0tOS44Mywy
MDYuNTAgQy02LjUxLDE5My43MSwtNC45MiwxODEuOTEsLTcuODAsMTc1LjYwIEMtNy44MCwxNzUu
NjAsNTQuNjAsMTgyLjAwLDY1LjgwLDE2MS4yMCBDNzAuMDQsMTUzLjMzLDg0LjgwLDE4NC4wMCw4
NC40MCwxOTMuNjAgQzg0LjQwLDE5My42MCwyMS40MCwyMDguMDAsNi42MCwxOTYuODAgTC05Ljgz
LDIwNi41MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOTEuNDAsNDE0LjQwKSBz
aXplIDcyLjQweDM2LjgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNBNTI2NENdfV0gW2Rh
dGE9Ik0tNS40MCwyMjIuODAgQy01LjQwLDIyMi44MCwtMy40MCwyMzAuMDAsLTUuODAsMjM0LjAw
IEMtNS44MCwyMzQuMDAsLTcuNDAsMjM0LjgwLC04LjYwLDIzNS4yMCBDLTguNjAsMjM1LjIwLC03
LjQwLDIzOC44MCwtMS40MCwyNDAuNDAgQy0xLjQwLDI0MC40MCwwLjYwLDI0NC44MCwzLjAwLDI0
NS4yMCBDNS40MCwyNDUuNjAsMTAuMjAsMjUxLjIwLDE0LjIwLDI1MC4wMCBDMTguMjAsMjQ4Ljgw
LDI5LjQwLDI0NC44MCwyOS40MCwyNDQuODAgQzI5LjQwLDI0NC44MCwzNS4wMCwyNDEuNjAsNDMu
ODAsMjQ1LjIwIEM0My44MCwyNDUuMjAsNDYuMTcsMjQ0LjQwLDQ2LjYwLDI0MC40MCBDNDcuMTAs
MjM1LjcwLDUwLjIwLDIzMi4wMCw1Mi4yMCwyMzAuMDAgQzU0LjIwLDIyOC4wMCw2My44MCwyMTUu
MjAsNjIuNjAsMjE0LjgwIEM2MS40MCwyMTQuNDAsLTUuNDAsMjIyLjgwLC01LjQwLDIyMi44MCBa
Il0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyODguNTIsMzU3LjI4KSBzaXplIDg4Ljg2
eDg0LjQyIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkY3MjdGXX1dIFtkYXRhPSJNLTkuODAsMTc0LjQwIEMtOS44MCwx
NzQuNDAsLTEyLjYwLDE5Ni44MCwtOS40MCwyMDUuMjAgQy02LjIwLDIxMy42MCwtNy4wMCwyMTUu
NjAsLTcuODAsMjE5LjYwIEMtOC42MCwyMjMuNjAsLTQuMjAsMjMzLjYwLDEuNDAsMjM5LjYwIEwx
My40MCwyNDEuMjAgQzEzLjQwLDI0MS4yMCwyOC42MCwyMzcuNjAsMzcuODAsMjQwLjQwIEMzNy44
MCwyNDAuNDAsNDYuNzksMjQxLjc0LDUwLjIwLDIyNi44MCBDNTAuMjAsMjI2LjgwLDU1LjAwLDIy
MC40MCw2Mi4yMCwyMTcuNjAgQzY5LjQwLDIxNC44MCw3Ni42MCwxNzMuMjAsNzIuNjAsMTY1LjIw
IEM2OC42MCwxNTcuMjAsNTQuMjAsMTUyLjgwLDM4LjIwLDE2OC40MCBDMjIuMjAsMTg0LjAwLDIw
LjIwLDE2Ny4yMCwtOS44MCwxNzQuNDAgWiJdCkBAIC0xMzEsMTIgKzEzMSwxMiBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMzMuNDcs
MjA2LjQ2KSBzaXplIDIuMjZ4NS4wOSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNLTY1LjQwLDExLjU1IEMtNjYuMDMsMTEuNTUsLTY2LjUzLDEwLjQxLC02Ni41
Myw5LjAwIEMtNjYuNTMsNy41OSwtNjYuMDMsNi40NSwtNjUuNDAsNi40NSBDLTY0Ljc4LDYuNDUs
LTY0LjI3LDcuNTksLTY0LjI3LDkuMDAgQy02NC4yNywxMC40MSwtNjQuNzgsMTEuNTUsLTY1LjQw
LDExLjU1IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIzNC42MCwyMDkpIHNpemUg
MHgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tNjUuNDAs
OS4wMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNzguMTUsMjk1LjUwKSBzaXpl
IDg0LjI1eDYyLjQyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik0tMTExLjAwLDEwOS42MCBDLTExMS4wMCwxMDkuNjAsLTExNi42MCwxMTkuNjAsLTkxLjgwLDEx
My42MCBDLTkxLjgwLDExMy42MCwtNzcuODAsMTEyLjQwLC03NS40MCwxMTAuMDAgQy03NC4yMCwx
MTAuODAsLTY1LjgzLDExMy43MywtNjMuMDAsMTE0LjQwIEMtNTYuMjAsMTE2LjAwLC00Ny44MCwx
MDYuMDAsLTQ3LjgwLDEwNi4wMCBDLTQ3LjgwLDEwNi4wMCwtNDMuMjAsOTUuNTAsLTQwLjQwLDk1
LjUwIEMtMzcuNjAsOTUuNTAsLTQwLjgwLDk3LjEwLC00MC44MCw5Ny4xMCBDLTQwLjgwLDk3LjEw
LC00Ny40MCwxMDcuMjAsLTQ3LjAwLDEwOC44MCBDLTQ3LjAwLDEwOC44MCwtNTIuMjAsMTI4Ljgw
LC02OC4yMCwxMjkuNjAgQy02OC4yMCwxMjkuNjAsLTg0LjM1LDEzMC41NSwtODMuMDAsMTM2LjQw
IEMtODMuMDAsMTM2LjQwLC03NC4yMCwxMzQuMDAsLTcxLjgwLDEzNi40MCBDLTcxLjgwLDEzNi40
MCwtNjEuMDAsMTM2LjAwLC02OS4wMCwxNDIuNDAgTC03NS44MCwxNTQuMDAgQy03NS44MCwxNTQu
MDAsLTc1LjY2LDE1Ny45MiwtODUuODAsMTU0LjQwIEMtOTUuNjAsMTUxLjAwLC0xMDUuOTAsMTM4
LjEwLC0xMDUuOTAsMTM4LjEwIEMtMTA1LjkwLDEzOC4xMCwtMTIxLjg1LDEyMy41NSwtMTExLjAw
LDEwOS42MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxODUuODAsMzEyLjgwKSBz
aXplIDYwLjAweDQzLjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNTk5OTldfV0gW2Rh
dGE9Ik0tMTEyLjIwLDExMy42MCBDLTExMi4yMCwxMTMuNjAsLTExNC4yMCwxMjMuMjAsLTc3LjQw
LDExMi44MCBDLTc3LjQwLDExMi44MCwtNzMuMDAsMTEyLjgwLC03MC42MCwxMTMuNjAgQy02OC4y
MCwxMTQuNDAsLTU2LjIwLDExNy4yMCwtNTQuMjAsMTE2LjAwIEMtNTQuMjAsMTE2LjAwLC02MS40
MCwxMjkuNjAsLTczLjAwLDEyOC4wMCBDLTczLjAwLDEyOC4wMCwtODYuMjAsMTI5LjYwLC04NS44
MCwxMzQuNDAgQy04NS44MCwxMzQuNDAsLTgxLjgwLDE0MS42MCwtNzcuMDAsMTQ0LjAwIEMtNzcu
MDAsMTQ0LjAwLC03NC4yMCwxNDYuNDAsLTc0LjYwLDE0OS42MCBDLTc1LjAwLDE1Mi44MCwtNzcu
ODAsMTU0LjQwLC03OS44MCwxNTUuMjAgQy04MS44MCwxNTYuMDAsLTg1LjAwLDE1Mi44MCwtODYu
NjAsMTUyLjgwIEMtODguMjAsMTUyLjgwLC05Ni42MCwxNDYuNDAsLTEwMS4wMCwxNDEuNjAgQy0x
MDUuNDAsMTM2LjgwLC0xMTMuODAsMTI0LjgwLC0xMTMuNDAsMTIyLjAwIEMtMTEzLjAwLDExOS4y
MCwtMTEyLjIwLDExMy42MCwtMTEyLjIwLDExMy42MCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgxODUuODAsMzEyLjgwKSBzaXplIDYweDQzLjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNFNTk5OTldfV0gW2RhdGE9Ik0tMTEyLjIwLDExMy42MCBDLTExMi4yMCwxMTMuNjAs
LTExNC4yMCwxMjMuMjAsLTc3LjQwLDExMi44MCBDLTc3LjQwLDExMi44MCwtNzMuMDAsMTEyLjgw
LC03MC42MCwxMTMuNjAgQy02OC4yMCwxMTQuNDAsLTU2LjIwLDExNy4yMCwtNTQuMjAsMTE2LjAw
IEMtNTQuMjAsMTE2LjAwLC02MS40MCwxMjkuNjAsLTczLjAwLDEyOC4wMCBDLTczLjAwLDEyOC4w
MCwtODYuMjAsMTI5LjYwLC04NS44MCwxMzQuNDAgQy04NS44MCwxMzQuNDAsLTgxLjgwLDE0MS42
MCwtNzcuMDAsMTQ0LjAwIEMtNzcuMDAsMTQ0LjAwLC03NC4yMCwxNDYuNDAsLTc0LjYwLDE0OS42
MCBDLTc1LjAwLDE1Mi44MCwtNzcuODAsMTU0LjQwLC03OS44MCwxNTUuMjAgQy04MS44MCwxNTYu
MDAsLTg1LjAwLDE1Mi44MCwtODYuNjAsMTUyLjgwIEMtODguMjAsMTUyLjgwLC05Ni42MCwxNDYu
NDAsLTEwMS4wMCwxNDEuNjAgQy0xMDUuNDAsMTM2LjgwLC0xMTMuODAsMTI0LjgwLC0xMTMuNDAs
MTIyLjAwIEMtMTEzLjAwLDExOS4yMCwtMTEyLjIwLDExMy42MCwtMTEyLjIwLDExMy42MCBaIl0K
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxOTEsMzI2LjAwKSBzaXplIDM0LjgweDMwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCMjY1NjVdfV0gW2RhdGE9Ik0tMTA5LjAwLDEzMS4w
NSBDLTEwNi40MCwxMzUuMDAsLTEwMy4yMCwxMzkuMjAsLTEwMS4wMCwxNDEuNjAgQy05Ni42MCwx
NDYuNDAsLTg4LjIwLDE1Mi44MCwtODYuNjAsMTUyLjgwIEMtODUuMDAsMTUyLjgwLC04MS44MCwx
NTYuMDAsLTc5LjgwLDE1NS4yMCBDLTc3LjgwLDE1NC40MCwtNzUuMDAsMTUyLjgwLC03NC42MCwx
NDkuNjAgQy03NC4yMCwxNDYuNDAsLTc3LjAwLDE0NC4wMCwtNzcuMDAsMTQ0LjAwIEMtODAuMDcs
MTQyLjQ3LC04Mi44MSwxMzguOTgsLTg0LjM5LDEzNi42NSBDLTg0LjM5LDEzNi42NSwtODQuMjAs
MTM5LjIwLC04OS40MCwxMzguNDAgQy05NC42MCwxMzcuNjAsLTk5LjgwLDEzNC44MCwtMTAxLjQw
LDEzMS42MCBDLTEwMy4wMCwxMjguNDAsLTEwNS40MCwxMjYuMDAsLTEwMy44MCwxMjkuNjAgQy0x
MDIuMjAsMTMzLjIwLC05OS44MCwxMzYuODAsLTk4LjIwLDEzNy4yMCBDLTk2LjYwLDEzNy42MCwt
OTcuMDAsMTM4LjgwLC05OS40MCwxMzguNDAgQy0xMDEuODAsMTM4LjAwLC0xMDQuNjAsMTM3LjYw
LC0xMDkuMDAsMTMyLjQwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4NS44MCwy
MDkuNjMpIHNpemUgNTcuOTB4MTA0LjE3IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM5OTI2
MDBdfV0gW2RhdGE9Ik0tMTExLjYwLDExMC4wMCBDLTExMS42MCwxMTAuMDAsLTEwOS44MCw5Ni40
MCwtMTA4LjYwLDkyLjQwIEMtMTA4LjYwLDkyLjQwLC0xMDkuNDAsODUuNjAsLTEwNy4wMCw4MS40
MCBDLTEwNC42MCw3Ny4yMCwtMTAyLjYwLDcxLjAwLC05OS42MCw2NS42MCBDLTk2LjYwLDYwLjIw
LC05Ni40MCw1Ni4yMCwtOTIuNDAsNTQuNjAgQy04OC40MCw1My4wMCwtODIuNDAsNDQuNDAsLTc5
LjYwLDQzLjQwIEMtNzYuODAsNDIuNDAsLTc3LjAwLDQzLjIwLC03Ny4wMCw0My4yMCBDLTc3LjAw
LDQzLjIwLC03MC4yMCwyOC40MCwtNTYuNjAsMzIuNDAgQy01Ni42MCwzMi40MCwtNzIuODAsMjku
NjAsLTU3LjAwLDIwLjIwIEMtNTcuMDAsMjAuMjAsLTYxLjgwLDIxLjMwLC01OC41MCwxNC4zMCBD
LTU2LjMwLDkuNjMsLTU2LjgwLDE2LjQwLC02Ny44MCwyOC4yMCBDLTY3LjgwLDI4LjIwLC03Mi44
MCwzNi44MCwtNzguMDAsMzkuODAgQy04My4yMCw0Mi44MCwtOTUuMjAsNDkuODAsLTk2LjQwLDUz
LjYwIEMtOTcuNjAsNTcuNDAsLTEwMC44MCw2My4yMCwtMTAyLjgwLDY0LjgwIEMtMTA0LjgwLDY2
LjQwLC0xMDcuNjAsNzAuNjAsLTEwOC4wMCw3NC4wMCBDLTEwOC4wMCw3NC4wMCwtMTA5LjIwLDc4
LjAwLC0xMTAuNjAsNzkuMjAgQy0xMTIuMDAsODAuNDAsLTExMi4yMCw4My42MCwtMTEyLjIwLDg1
LjYwIEMtMTEyLjIwLDg3LjYwLC0xMTQuMjAsOTAuNDAsLTExNC4wMCw5Mi44MCBDLTExNC4wMCw5
Mi44MCwtMTEzLjIwLDExMS44MCwtMTEzLjYwLDExMy44MCBMLTExMS42MCwxMTAuMDAgWiJdCiAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTczLjQwLDMxMy4yMCkgc2l6ZSA4LjQweDQwLjQw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9Ik0tMTIwLjIwLDEx
NC42MCBDLTEyMC4yMCwxMTQuNjAsLTEyMi4yMCwxMTMuMjAsLTEyNi42MCwxMTkuMjAgQy0xMjYu
NjAsMTE5LjIwLC0xMTkuMzAsMTUyLjIwLC0xMTkuMzAsMTUzLjYwIEMtMTE5LjMwLDE1My42MCwt
MTE4LjIwLDE1MS41MCwtMTE5LjUwLDE0NC4zMCBDLTEyMC44MCwxMzcuMTAsLTEyMS43MCwxMjQu
NDAsLTEyMS43MCwxMjQuNDAgTC0xMjAuMjAsMTE0LjYwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDE2Ni42MCwyNTEuMjApIHNpemUgMzkuMzB4NjQuNTAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izk5MjYwMF19XSBbZGF0YT0iTS05OC42MCw1NC4wMCBDLTk4LjYwLDU0LjAw
LC0xMTYuMjAsNTcuMjAsLTExNS44MCw4Ni40MCBMLTExNi42MCwxMTEuMjAgQy0xMTYuNjAsMTEx
LjIwLC0xMTcuODAsODUuNjAsLTExOS4wMCw4NC4wMCBDLTEyMC4yMCw4Mi40MCwtMTE2LjIwLDcx
LjIwLC0xMTkuNDAsNzcuMjAgQy0xMTkuNDAsNzcuMjAsLTEzMy40MCw5MS4yMCwtMTI1LjQwLDEx
Mi40MCBDLTEyNS40MCwxMTIuNDAsLTEyMy45MCwxMTUuNzAsLTEyNi45MCwxMTEuMTAgQy0xMjYu
OTAsMTExLjEwLC0xMzEuNTAsOTguNTAsLTEzMC40MCw5Mi4xMCBDLTEzMC40MCw5Mi4xMCwtMTMw
LjIwLDg5LjkwLC0xMjguMzAsODcuMTAgQy0xMjguMzAsODcuMTAsLTExOS43MCw3NS40MCwtMTE3
LjAwLDczLjEwIEMtMTE3LjAwLDczLjEwLC0xMTUuMjAsNTguNzAsLTk5LjgwLDUzLjUwIEMtOTku
ODAsNTMuNTAsLTk0LjEwLDUxLjIwLC05OC42MCw1NC4wMCBaIl0KLSAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgzMjAuMDQsMTYyLjQyKSBzaXplIDI1Ljc3eDQ4LjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik00MC44MCwtMTIuMjAgQzQxLjQ2LC0xMi41
NSw0MS40NSwtMTMuNTIsNDIuMDMsLTEzLjcwIEM0My4xOCwtMTQuMDQsNDMuMzQsLTE1LjExLDQz
Ljg2LC0xNS44OSBDNDQuNzQsLTE3LjIxLDQ0LjkzLC0xOC43NCw0NS41MSwtMjAuMjQgQzQ1Ljc4
LC0yMC45Myw0NS44MSwtMjEuODksNDUuNTAsLTIyLjU1IEM0NC4zMiwtMjUuMDMsNDMuNjIsLTI3
LjQ4LDQyLjE4LC0yOS45MSBDNDEuOTEsLTMwLjM2LDQxLjY1LC0zMS4xNSw0MS40NSwtMzEuNzUg
QzQwLjk4LC0zMy4xMywzOS43MywtMzQuMTIsMzguODcsLTM1LjQ0IEMzOC41OCwtMzUuODgsMzku
MTAsLTM2LjgxLDM4LjM5LC0zNi44OSBDMzcuNDksLTM3LjAwLDM2LjA0LC0zNy41OCwzNS44MSwt
MzYuNTUgQzM1LjIyLC0zMy45NywzNi4yMywtMzEuNDQsMzcuMjAsLTI5LjAwIEMzNi40MiwtMjgu
MzEsMzYuNzUsLTI3LjM5LDM2LjkwLC0yNi42MiBDMzcuNjEsLTIzLjAxLDM2LjQyLC0xOS42Niwz
NS42NSwtMTYuMTkgQzM1LjYzLC0xNi4wOCwzNS45NywtMTUuODksMzUuOTUsLTE1LjgyIEMzNC43
MiwtMTMuMTQsMzMuMjcsLTEwLjY5LDMxLjQ1LC04LjMxIEMzMC42OSwtNy4zMiwyOS44MiwtNi40
MCwyOS4zMywtNS4zNCBDMjguOTYsLTQuNTUsMjguNTUsLTMuNTksMjguODAsLTIuNjAgQzI1LjM2
LDAuMTgsMjMuMTEsNC4wMywyMC41MCw3Ljg3IEMyMC4wNCw4LjU1LDIwLjMzLDkuNzYsMjAuODgs
MTAuMDMgQzIxLjcwLDEwLjQzLDIyLjY1LDkuNDAsMjMuMTIsOC41NiBDMjMuNTEsNy44NiwyMy44
Niw3LjIxLDI0LjM2LDYuNTcgQzI0LjQ5LDYuMzksMjQuMzEsNS45NywyNC40NCw1Ljg1IEMyNy4w
OCwzLjUwLDI4Ljc1LDAuNTcsMzEuMjAsLTEuODAgQzMzLjE1LC0yLjEzLDM0LjY5LC0zLjEzLDM2
LjQ0LC00LjE0IEMzNi43NCwtNC4zMiwzNy4yNywtNC4wNywzNy41NiwtNC4yNiBDMzkuMzEsLTUu
NDQsMzkuMzEsLTcuNDgsMzkuNDEsLTkuMzkgQzM5LjQ2LC0xMC4yNywzOS42NiwtMTEuNTksNDAu
ODAsLTEyLjIwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDMyMC4wNCwxNjIuNDIp
IHNpemUgMjUuNzd4NDguMDEgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBb
ZGF0YT0iTTQwLjgwLC0xMi4yMCBDNDEuNDYsLTEyLjU1LDQxLjQ1LC0xMy41Miw0Mi4wMywtMTMu
NzAgQzQzLjE4LC0xNC4wNCw0My4zNCwtMTUuMTEsNDMuODYsLTE1Ljg5IEM0NC43NCwtMTcuMjEs
NDQuOTMsLTE4Ljc0LDQ1LjUxLC0yMC4yNCBDNDUuNzgsLTIwLjkzLDQ1LjgxLC0yMS44OSw0NS41
MCwtMjIuNTUgQzQ0LjMyLC0yNS4wMyw0My42MiwtMjcuNDgsNDIuMTgsLTI5LjkxIEM0MS45MSwt
MzAuMzYsNDEuNjUsLTMxLjE1LDQxLjQ1LC0zMS43NSBDNDAuOTgsLTMzLjEzLDM5LjczLC0zNC4x
MiwzOC44NywtMzUuNDQgQzM4LjU4LC0zNS44OCwzOS4xMCwtMzYuODEsMzguMzksLTM2Ljg5IEMz
Ny40OSwtMzcuMDAsMzYuMDQsLTM3LjU4LDM1LjgxLC0zNi41NSBDMzUuMjIsLTMzLjk3LDM2LjIz
LC0zMS40NCwzNy4yMCwtMjkuMDAgQzM2LjQyLC0yOC4zMSwzNi43NSwtMjcuMzksMzYuOTAsLTI2
LjYyIEMzNy42MSwtMjMuMDEsMzYuNDIsLTE5LjY2LDM1LjY1LC0xNi4xOSBDMzUuNjMsLTE2LjA4
LDM1Ljk3LC0xNS44OSwzNS45NSwtMTUuODIgQzM0LjcyLC0xMy4xNCwzMy4yNywtMTAuNjksMzEu
NDUsLTguMzEgQzMwLjY5LC03LjMyLDI5LjgyLC02LjQwLDI5LjMzLC01LjM0IEMyOC45NiwtNC41
NSwyOC41NSwtMy41OSwyOC44MCwtMi42MCBDMjUuMzYsMC4xOCwyMy4xMSw0LjAzLDIwLjUwLDcu
ODcgQzIwLjA0LDguNTUsMjAuMzMsOS43NiwyMC44OCwxMC4wMyBDMjEuNzAsMTAuNDMsMjIuNjUs
OS40MCwyMy4xMiw4LjU2IEMyMy41MSw3Ljg2LDIzLjg2LDcuMjEsMjQuMzYsNi41NyBDMjQuNDks
Ni4zOSwyNC4zMSw1Ljk3LDI0LjQ0LDUuODUgQzI3LjA4LDMuNTAsMjguNzUsMC41NywzMS4yMCwt
MS44MCBDMzMuMTUsLTIuMTMsMzQuNjksLTMuMTMsMzYuNDQsLTQuMTQgQzM2Ljc0LC00LjMyLDM3
LjI3LC00LjA3LDM3LjU2LC00LjI2IEMzOS4zMSwtNS40NCwzOS4zMSwtNy40OCwzOS40MSwtOS4z
OSBDMzkuNDYsLTEwLjI3LDM5LjY2LC0xMS41OSw0MC44MCwtMTIuMjAgWiJdCiAgICAgICBSZW5k
ZXJQYXRoIHtwYXRofSBhdCAoMzI3LjUwLDE2Mi4xOSkgc2l6ZSA3Ljk4eDIyLjQ5IFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMS45NiwtMTYuNjcgQzMyLjA4
LC0xNi43NCwzMS45MywtMTcuMTcsMzIuMDQsLTE3LjM4IEMzMi4yMCwtMTcuNzEsMzIuNjAsLTE3
Ljg5LDMyLjc2LC0xOC4yMiBDMzIuODcsLTE4LjQzLDMyLjcxLC0xOC44MSwzMi44NSwtMTguOTYg
QzM1LjE4LC0yMS40MCwzNS40NCwtMjQuNDMsMzQuNDAsLTI3LjQwIEMzNS40MiwtMjguMDIsMzUu
NDksLTI5LjI4LDM1LjA2LC0zMC4xMyBDMzQuMjEsLTMxLjgzLDM0LjAxLC0zMy43NiwzMy4wNCwt
MzUuMzAgQzMyLjI0LC0zNi41NywzMC42NiwtMzcuODEsMjkuMjksLTM2LjUxIEMyOC44NywtMzYu
MTEsMjguNTUsLTM1LjMyLDI4LjgyLC0zNC42MSBDMjguODksLTM0LjQ1LDI5LjE3LC0zNC4zMCwy
OS4xNSwtMzQuMjIgQzI5LjA0LC0zMy44OSwyOC40OSwtMzMuNjcsMjguNDksLTMzLjQwIEMyOC40
NiwtMzEuOTAsMjcuNTAsLTMwLjM5LDI4LjEzLC0yOS4wNiBDMjguOTEsLTI3LjQzLDI5LjcyLC0y
NS41OCwzMC40MCwtMjMuODAgQzI5LjE3LC0yMS42OCwzMC4yMCwtMTkuMjQsMjguNDUsLTE3LjM2
IEMyOC4zMSwtMTcuMjEsMjguMzIsLTE2LjgzLDI4LjQ0LC0xNi42MiBDMjguNzMsLTE2LjE0LDI5
LjE0LC0xNS43MywyOS42MiwtMTUuNDQgQzI5LjgzLC0xNS4zMiwzMC4xNywtMTUuMzIsMzAuMzgs
LTE1LjQ0IEMzMC45NSwtMTUuODAsMzEuMzUsLTE2LjI5LDMxLjk2LC0xNi42NyBaIl0KICAgICAg
IFJlbmRlclBhdGgge3BhdGh9IGF0ICgzODcuNjEsMTQzLjk3KSBzaXplIDIwLjQzeDM4LjM0IFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik05NC43NywtMjYuOTgg
Qzk2LjE2LC0yNS4xOCw5Ni40NSwtMjIuMzksOTQuNDAsLTIxLjAwIEM5NC45NSwtMTcuNjksOTgu
MzAsLTE5LjY3LDEwMC40MCwtMjAuMjAgQzEwMC4yOSwtMjAuNTksMTAwLjUyLC0yMC45MywxMDAu
ODAsLTIwLjk0IEMxMDEuODYsLTIwLjk1LDEwMi41NCwtMjEuOTgsMTAzLjYwLC0yMS44MCBDMTA0
LjA0LC0yMy4zNiwxMDUuNjcsLTI0LjA2LDEwNi4zMiwtMjUuNDQgQzEwOC4wNCwtMjkuMTMsMTA3
LjQ1LC0zMy40MSwxMDQuODcsLTM2LjY1IEMxMDQuNjcsLTM2LjkxLDEwNC44OCwtMzcuNDIsMTA0
Ljc2LC0zNy43OSBDMTA0LjAwLC00MC4wMCwxMDEuOTMsLTQwLjMxLDEwMC4wMCwtNDEuMDAgQzk4
LjgyLC00NC44OCw5OC4xNiwtNDguOTEsOTYuNDAsLTUyLjYwIEM5NC43OSwtNTIuODUsOTQuMDks
LTU0LjU5LDkyLjc1LC01NS4zMSBDOTEuNDIsLTU2LjAzLDkwLjg1LC01NC40NSw5MC44OSwtNTMu
NDAgQzkwLjkwLC01My4yMCw5MS4zNSwtNTIuOTcsOTEuMTgsLTUyLjYxIEM5MS4xMSwtNTIuNDQs
OTAuODUsLTUyLjMzLDkwLjg1LC01Mi4yMCBDOTAuODUsLTUyLjA2LDkxLjA3LC01MS45Myw5MS4y
MCwtNTEuODAgQzkwLjI4LC01MC45OCw4OC44NiwtNTAuNTAsODguNTcsLTQ5LjM2IEM4Ny42MSwt
NDUuNjUsOTAuMTgsLTQyLjUyLDkxLjg1LC0zOS4zMiBDOTIuNDQsLTM4LjE5LDkxLjcxLC0zNi45
Miw5MC45NSwtMzUuNzEgQzkwLjUxLC0zNS4wMSw5MC42MiwtMzMuODksOTAuODksLTMzLjAzIEM5
MS42NCwtMzAuNzAsOTMuMjQsLTI4Ljk2LDk0Ljc3LC0yNi45OCBaIl0KICAgICAgIFJlbmRlclBh
dGgge3BhdGh9IGF0ICgzMzcuMDYsMTUwLjAzKSBzaXplIDU0LjQ0eDQ3Ljg2IFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik01Ny42MSwtOC41OSBDNTYuMTIsLTYu
NzQsNTIuNzEsLTQuMTcsNTUuNjMsLTIuMjQgQzU1LjgyLC0yLjExLDU2LjE5LC0yLjExLDU2LjM3
LC0yLjI0IEM1OC4zOSwtMy44MSw2MC4zOSwtNC43MSw2Mi44MywtNS4yOSBDNjIuOTUsLTUuMzIs
NjMuMjIsLTQuODYsNjMuNTksLTUuMDIgQzY1LjIxLC01LjcyLDY3LjIyLC01LjY2LDY4LjQwLC03
LjAwIEM3Mi4xNywtNi43OCw3NS43MywtNy44OSw3OS4xMiwtOS4yMCBDODAuMjgsLTkuNjUsODEu
NTUsLTEwLjIxLDgyLjc1LC0xMC43MSBDODQuMTMsLTExLjI4LDg1LjMzLC0xMi4yMSw4Ni40NSwt
MTMuMzUgQzg2LjU4LC0xMy40OSw4Ni45MywtMTMuNDAsODcuMjAsLTEzLjQwIEM4Ny4xNiwtMTQu
MjYsODguMTIsLTE0LjM5LDg4LjM3LC0xNS4wMSBDODguNDYsLTE1LjI0LDg4LjMxLC0xNS42NCw4
OC40NCwtMTUuNzQgQzkwLjU4LC0xNy4zNyw5MS41MCwtMTkuMzksOTAuMzMsLTIxLjc3IEM5MC4w
NSwtMjIuMzQsODkuODAsLTIyLjk2LDg5LjIzLC0yMy40NCBDODguMTUsLTI0LjM1LDg3LjA1LC0y
My41MCw4Ni4wMCwtMjMuODAgQzg1Ljg0LC0yMy4xNyw4NS4xMSwtMjMuMzQsODQuNzMsLTIzLjE1
IEM4My44NywtMjIuNzEsODIuNTMsLTIzLjI5LDgxLjY4LC0yMi44NSBDODAuMzEsLTIyLjE2LDc5
LjA3LC0yMS45OSw3Ny42NSwtMjEuNjEgQzc3LjM0LC0yMS41Myw3Ni41NiwtMjEuNjMsNzYuNDAs
LTIxLjAwIEM3Ni4yNywtMjEuMTMsNzYuMTIsLTIxLjM3LDc2LjAxLC0yMS4zNSBDNzQuMTAsLTIw
Ljk1LDcyLjg0LC0yMC43NCw3MS41NCwtMTkuMDQgQzcxLjQ0LC0xOC45MSw3MS4wMCwtMTkuMDks
NzAuODQsLTE4Ljk1IEM2OS44OCwtMTguMTUsNjkuNDgsLTE2LjkxLDY4LjM4LC0xNi4yNCBDNjgu
MTgsLTE2LjEyLDY3LjgyLC0xNi4yOSw2Ny42MywtMTYuMTYgQzY2Ljk4LC0xNS43Myw2Ni42Miwt
MTUuMDksNjUuOTcsLTE0LjY0IEM2NS42NCwtMTQuNDEsNjUuMjUsLTE0LjczLDY1LjI4LC0xNC45
OSBDNjUuNTIsLTE2Ljk0LDY2LjE4LC0xOC43Miw2NS42MCwtMjAuNjAgQzY3LjY4LC0yMy4xMiw3
MC4xOSwtMjUuMDcsNzIuMDAsLTI3LjgwIEM3Mi4wMSwtMjkuOTcsNzIuNzEsLTMyLjExLDcyLjU5
LC0zNC4xOSBDNzIuNTgsLTM0LjM4LDcyLjMwLC0zNS4xMiw3Mi4xNywtMzUuNDYgQzcxLjg2LC0z
Ni4zMiw3Mi43NiwtMzcuMzgsNzEuOTIsLTM4LjExIEM3MC41MiwtMzkuMzEsNjkuMjIsLTM4LjQz
LDY4LjQwLC0zNy4wMCBDNjYuNTYsLTM2LjYxLDY0LjUwLC0zNS45Miw2Mi45MiwtMzcuMTUgQzYx
LjkxLC0zNy45NCw2MS4zMywtMzguODQsNjAuNTMsLTM5LjkwIEM1OS41NSwtNDEuMjAsNTkuODgs
LTQyLjY0LDU5Ljk1LC00NC4yMCBDNTkuOTYsLTQ0LjMzLDU5LjY1LC00NC40Nyw1OS42NSwtNDQu
NjAgQzU5LjY1LC00NC43NCw1OS44NywtNDQuODcsNjAuMDAsLTQ1LjAwIEM1OS4yOSwtNDUuNjMs
NTkuMDIsLTQ2LjY4LDU4LjAwLC00Ny4wMCBDNTguMzEsLTQ4LjA5LDU3LjYzLC00OC45OCw1Ni43
NiwtNDkuMjggQzU0Ljc2LC00OS45Nyw1My4wOSwtNDguMDYsNTEuMTksLTQ3Ljk4IEM1MC42OCwt
NDcuOTcsNTAuMjEsLTQ5LjAwLDQ5LjU2LC00OS4zMyBDNDkuMTMsLTQ5LjU0LDQ4LjQzLC00OS41
OCw0OC4wNywtNDkuMzEgQzQ3LjM4LC00OC44MSw0Ni43OSwtNDguNjksNDYuMDMsLTQ4LjQ5IEM0
NC40MSwtNDguMDUsNDMuMTQsLTQ2Ljk2LDQxLjY2LC00Ni4xMCBDNDAuMTcsLTQ1LjI1LDM5LjIy
LC00My44MSwzOC4xNCwtNDIuNDkgQzM3LjE5LC00MS4zNCwzNy4wNiwtMzguOTIsMzguNDgsLTM4
LjQyIEM0MC4zMiwtMzcuNzcsNDEuNjMsLTQwLjQ4LDQzLjU5LC00MC4xNSBDNDMuOTAsLTQwLjEw
LDQ0LjExLC0zOS43OSw0NC4wMCwtMzkuNDAgQzQ0LjM5LC0zOS4yOSw0NC42MSwtMzkuNTIsNDQu
ODAsLTM5LjgwIEM0NS42NiwtMzguNzgsNDYuODIsLTM4LjQ0LDQ3Ljc2LC0zNy41NyBDNDguNzMs
LTM2LjY3LDUwLjQ4LC0zNy4wOCw1MS40OSwtMzYuMDkgQzUzLjAyLC0zNC41OSw1Mi40NiwtMzEu
OTEsNTQuNDAsLTMwLjYwIEM1My44MSwtMjkuMjksNTMuMjEsLTI4LjAxLDUyLjg3LC0yNi41OCBD
NTIuNTksLTI1LjM4LDUzLjU4LC0yNC4xOCw1NC43OSwtMjQuMjcgQzU2LjA1LC0yNC4zNiw1Ni4z
MSwtMjUuMTIsNTYuODAsLTI2LjIwIEM1Ny4wNywtMjUuOTMsNTcuNTQsLTI1LjY0LDU3LjQ5LC0y
NS40MiBDNTcuMDQsLTIzLjAzLDU2LjAxLC0yMS4wNCw1NS41NSwtMTguNjEgQzU1LjQ5LC0xOC4y
OSw1NS4xOSwtMTguMDksNTQuODAsLTE4LjIwIEM1NC4zMywtMTQuMDUsNTAuMjgsLTExLjY2LDQ3
Ljc0LC04LjQ5IEM0Ny4zMywtNy45OSw0Ny4zMywtNi43NCw0Ny43NCwtNi4zNCBDNDkuMTQsLTQu
OTUsNTEuMTAsLTYuNTAsNTIuODAsLTcuMDAgQzUzLjAxLC04LjIxLDUzLjg3LC05LjE1LDU1LjIw
LC05LjA5IEM1NS40NiwtOS4wOCw1NS42OSwtOS42Miw1Ni4wMiwtOS43NSBDNTYuMzcsLTkuODks
NTYuODcsLTkuNjcsNTcuMTUsLTkuODcgQzU4Ljg4LC0xMS4wNiw2MC4yOSwtMTIuMTcsNjIuMDMs
LTEzLjM2IEM2Mi4yMiwtMTMuNDksNjIuNTcsLTEzLjMzLDYyLjc4LC0xMy40NCBDNjMuMTEsLTEz
LjYwLDYzLjI5LC0xMy45OCw2My42MiwtMTQuMTcgQzYzLjk3LC0xNC4zNyw2NC4yMSwtMTQuMDgs
NjQuNDAsLTEzLjgwIEM2My43NSwtMTMuNDUsNjMuNzUsLTEyLjQ5LDYzLjE3LC0xMi4yOSBDNjIu
MzksLTEyLjAyLDYxLjgzLC0xMS41MSw2MS4xNiwtMTEuMDYgQzYwLjg3LC0xMC44Nyw2MC4yMSwt
MTEuMTIsNjAuMTAsLTEwLjk0IEM1OS41MSwtOS45MSw1OC4zMiwtOS40Nyw1Ny42MSwtOC41OSBa
Il0KQEAgLTIzNSwxMSArMjM1LDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDM0Ni4yMCw1MTUuODApIHNpemUgMTQuNDB4MzIuODAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTTQ2LjIwLDM0Ny40
MCBDNDYuMjAsMzQ3LjQwLDUzLjYwLDMyNy4wMCw0OS4yMCwzMTUuODAgQzQ5LjIwLDMxNS44MCw2
MC42MCwzMzcuNDAsNTYuMDAsMzQ4LjYwIEM1Ni4wMCwzNDguNjAsNTUuNjAsMzM4LjIwLDUxLjYw
LDMzMy4yMCBDNTEuNjAsMzMzLjIwLDQ3LjYwLDM0Ni4wMCw0Ni4yMCwzNDcuNDAgWiJdCiAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzIxLjIwLDUxNy42MCkgc2l6ZSAxNS42MHgzMS40MCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMzEuNDAsMzQ0Ljgw
IEMzMS40MCwzNDQuODAsMzYuODAsMzM2LjAwLDI4LjgwLDMxNy42MCBDMjguODAsMzE3LjYwLDI4
LjAwLDMzOC4wMCwyMS4yMCwzNDkuMDAgQzIxLjIwLDM0OS4wMCwzNS40MCwzMjguODAsMzEuNDAs
MzQ0LjgwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDMwNy42MCw1MTkuODApIHNp
emUgMTQuNDB4MjYuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0
YT0iTTIxLjQwLDM0Mi44MCBDMjEuNDAsMzQyLjgwLDIxLjIwLDMyMi44MCwyMS42MCwzMTkuODAg
QzIxLjYwLDMxOS44MCwxNy44MCwzMzYuNDAsNy42MCwzNDYuMDAgQzcuNjAsMzQ2LjAwLDIyLjAw
LDMzNC4wMCwyMS40MCwzNDIuODAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzA3
LjgwLDUxMC44MCkgc2l6ZSAxMC4wMHgzMiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNMTEuODAsMzEwLjgwIEMxMS44MCwzMTAuODAsMTcuODAsMzI0LjQwLDcu
ODAsMzQyLjgwIEM3LjgwLDM0Mi44MCwxNC4yMCwzMzAuNjAsOS40MCwzMjMuNjAgQzkuNDAsMzIz
LjYwLDEyLjAwLDMyMC4yMCwxMS44MCwzMTAuODAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMzA3LjgwLDUxMC44MCkgc2l6ZSAxMHgzMiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMTEuODAsMzEwLjgwIEMxMS44MCwzMTAuODAsMTcuODAsMzI0
LjQwLDcuODAsMzQyLjgwIEM3LjgwLDM0Mi44MCwxNC4yMCwzMzAuNjAsOS40MCwzMjMuNjAgQzku
NDAsMzIzLjYwLDEyLjAwLDMyMC4yMCwxMS44MCwzMTAuODAgWiJdCiAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMjkxLjYwLDUxMS4wMCkgc2l6ZSAxMy42MHgzMS42MCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTcuNDAsMzQyLjQwIEMtNy40MCwzNDIu
NDAsLTguNDAsMzI2LjgwLC02LjYwLDMyNC42MCBDLTYuNjAsMzI0LjYwLC02LjQwLDMxOC4yMCwt
Ni44MCwzMTcuMjAgQy02LjgwLDMxNy4yMCwtMi44MCwzMTEuMDAsLTIuNjAsMzE4LjQwIEMtMi42
MCwzMTguNDAsLTEuMjAsMzI2LjIwLDEuNjAsMzMwLjgwIEMxLjYwLDMzMC44MCw1LjIwLDMzNi4y
MCw1LjAwLDM0Mi42MCBDNS4wMCwzNDIuNjAsLTUuMDAsMzEyLjQwLC03LjQwLDM0Mi40MCBaIl0K
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNzkuMjAsNTA4LjYwKSBzaXplIDkuODB4MzYg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTS0xMS4wMCwzMTQu
ODAgQy0xMS4wMCwzMTQuODAsLTE3LjYwLDMyNS42MCwtMTkuNDAsMzQ0LjYwIEMtMTkuNDAsMzQ0
LjYwLC0yMC44MCwzMzguNDAsLTE3LjAwLDMyNC4wMCBDLTE3LjAwLDMyNC4wMCwtMTIuODAsMzA4
LjYwLC0xMS4wMCwzMTQuODAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjYyLjgw
LDUwOC40MCkgc2l6ZSAxNC40MHgyNi4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNLTMyLjgwLDMzNC42MCBDLTMyLjgwLDMzNC42MCwtMjcuODAsMzI5LjIw
LC0yNi40MCwzMjQuMjAgQy0yNi40MCwzMjQuMjAsLTIyLjgwLDMwOC40MCwtMjkuMjAsMzE3LjAw
IEMtMjkuMjAsMzE3LjAwLC0yOS4wMCwzMjUuMDAsLTM3LjIwLDMzMi40MCBDLTM3LjIwLDMzMi40
MCwtMzIuNDAsMzMwLjAwLC0zMi44MCwzMzQuNjAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMjUxLjgwLDUwOC4wMCkgc2l6ZSAxNS42MHgyOSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTM4LjYwLDMyOS42MCBDLTM4LjYwLDMyOS42MCwtMzUu
MjAsMzEyLjIwLC0zNC40MCwzMTEuNDAgQy0zNC40MCwzMTEuNDAsLTMyLjYwLDMwOC4wMCwtMzUu
NDAsMzExLjIwIEMtMzUuNDAsMzExLjIwLC00NC4yMCwzMzAuNDAsLTQ4LjIwLDMzNy4wMCBDLTQ4
LjIwLDMzNy4wMCwtNDAuMjAsMzI3LjgwLC0zOC42MCwzMjkuNjAgWiJdCisgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMjUxLjgwLDUwOC4wMCkgc2l6ZSAxNS42MHgyOS4wMCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTM4LjYwLDMyOS42MCBDLTM4LjYw
LDMyOS42MCwtMzUuMjAsMzEyLjIwLC0zNC40MCwzMTEuNDAgQy0zNC40MCwzMTEuNDAsLTMyLjYw
LDMwOC4wMCwtMzUuNDAsMzExLjIwIEMtMzUuNDAsMzExLjIwLC00NC4yMCwzMzAuNDAsLTQ4LjIw
LDMzNy4wMCBDLTQ4LjIwLDMzNy4wMCwtNDAuMjAsMzI3LjgwLC0zOC42MCwzMjkuNjAgWiJdCiAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjQ1LjQwLDQ5MC42MCkgc2l6ZSAyMS44MHgyNS44
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTQ0LjQwLDMx
My4wMCBDLTQ0LjQwLDMxMy4wMCwtMzIuODAsMjkwLjYwLC01NC42MCwzMTYuNDAgQy01NC42MCwz
MTYuNDAsLTQzLjYwLDMwNi42MCwtNDQuNDAsMzEzLjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDI0MC4yMCw0NzAuODApIHNpemUgMTUuNjB4MzAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTS01OS44MCwyOTguNDAgQy01OS44MCwyOTguNDAs
LTU1LjAwLDI3OS42MCwtNTIuNDAsMjc5LjgwIEMtNTIuNDAsMjc5LjgwLC00NC4yMCwyNzAuODAs
LTUwLjgwLDI4MS40MCBDLTUwLjgwLDI4MS40MCwtNTYuODAsMjkxLjAwLC01Ni4yMCwzMDAuODAg
Qy01Ni4yMCwzMDAuODAsLTU2LjgwLDI5MS4yMCwtNTkuODAsMjk4LjQwIFoiXQogICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDU1Niw0NzMuNTApIHNpemUgMTZ4MjUuNTAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTTI3MC41MCwyODcuMDAgQzI3MC41MCwy
ODcuMDAsMjU4LjUwLDI3Ny4wMCwyNTYuMDAsMjczLjUwIEMyNTYuMDAsMjczLjUwLDI2OS41MCwy
OTIuMDAsMjY5LjUwLDI5OS4wMCBDMjY5LjUwLDI5OS4wMCwyNzIuMDAsMjkxLjUwLDI3MC41MCwy
ODcuMDAgWiJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2hpeGllL3BlcmYv
MDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2hpeGllL3BlcmYvMDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2hpeGllL3BlcmYvMDAyLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNDMuODAsNDE0LjAwKSBzaXplIDM3LjIweDIy
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tMjAuMjAsMjE4
LjgwIEMtMjAuMjAsMjE4LjgwLC0xOS4wMCwyMTQuMDAsLTIxLjgwLDIxNC44MCBDLTIzLjgwLDIx
NC44MCwtNTAuMjAsMjI2LjQwLC01Ni4yMCwyMzYuMDAgQy01Ni4yMCwyMzYuMDAsLTI2LjYwLDIx
NC40MCwtMjAuMjAsMjE4LjgwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI1NS40
MCw0MTkuNjApIHNpemUgMTM0LjAweDg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSND
Q0NDQ0NdfV0gW2RhdGE9Ik0tMzQuNjAsMjY2LjQwIEwtNDQuNjAsMjc0LjAwIEMtNDQuNjAsMjc0
LjAwLC0zNC4yMCwyNjYuNDAsLTMwLjYwLDI2Ny42MCBDLTMwLjYwLDI2Ny42MCwtMzcuNDAsMjc4
LjgwLC0zOC4yMCwyODQuMDAgQy0zOC4yMCwyODQuMDAsLTI3LjgwLDI3MS4yMCwtMjIuMjAsMjcx
LjYwIEMtMjIuMjAsMjcxLjYwLC0xNC42MCwyNzIuMDAsLTE0LjYwLDI4Mi44MCBDLTE0LjYwLDI4
Mi44MCwtOS4wMCwyNzIuNDAsLTUuODAsMjcyLjgwIEMtNS44MCwyNzIuODAsLTQuNjAsMjc5LjIw
LC01LjgwLDI4Ni4wMCBDLTUuODAsMjg2LjAwLC0xLjgwLDI3OC40MCwyLjIwLDI4MC4wMCBDMi4y
MCwyODAuMDAsOC42MCwyNzguMDAsNy44MCwyODkuNjAgQzcuODAsMjg5LjYwLDcuODAsMzAwLjAw
LDcuMDAsMzAyLjgwIEM3LjAwLDMwMi44MCwxMi42MCwyNzYuNDAsMTUuMDAsMjc2LjAwIEMxNS4w
MCwyNzYuMDAsMjMuMDAsMjc0LjgwLDI3LjgwLDI4My42MCBDMjcuODAsMjgzLjYwLDIzLjgwLDI3
Ni4wMCwyOC42MCwyNzguMDAgQzI4LjYwLDI3OC4wMCwzOS40MCwyNzkuNjAsNDIuNjAsMjg2LjQw
IEM0Mi42MCwyODYuNDAsMzUuODAsMjc0LjQwLDQxLjQwLDI3Ny42MCBDNDEuNDAsMjc3LjYwLDQ4
LjIwLDI3Ny42MCw0OS40MCwyODQuMDAgQzQ5LjQwLDI4NC4wMCw1Ny44MCwzMDUuMjAsNTkuODAs
MzA2LjgwIEM1OS44MCwzMDYuODAsNTIuMjAsMjg1LjIwLDUzLjgwLDI4NS4yMCBDNTMuODAsMjg1
LjIwLDUxLjgwLDI3My4yMCw1Ny4wMCwyODguMDAgQzU3LjAwLDI4OC4wMCw1My44MCwyNzQuMDAs
NTkuNDAsMjc0LjgwIEM2NS4wMCwyNzUuNjAsNjkuNDAsMjg1LjYwLDc3LjgwLDI4My4yMCBDNzcu
ODAsMjgzLjIwLDg3LjQwLDI4OC44MCw4OS40MCwyMTkuNjAgTC0zNC42MCwyNjYuNDAgWiJdCiAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjU4LjYwLDM0OS4yMCkgc2l6ZSAxNDQuMDB4MTI3
LjYwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tMjkuODAs
MTczLjYwIEMtMjkuODAsMTczLjYwLC0xNS4wMCwxNjcuNjAsMjUuMDAsMTczLjYwIEMyNS4wMCwx
NzMuNjAsMzIuMjAsMTc0LjAwLDM5LjAwLDE2NS4yMCBDNDUuODAsMTU2LjQwLDcyLjYwLDE0OS4y
MCw3OS4wMCwxNTEuMjAgTDg4LjYwLDE1Ny42MCBMODkuNDAsMTU4LjgwIEM4OS40MCwxNTguODAs
MTAxLjgwLDE2OS4yMCwxMDIuMjAsMTc2LjgwIEMxMDIuNjAsMTg0LjQwLDg3LjgwLDIzMi40MCw3
OC4yMCwyNDguNDAgQzY4LjYwLDI2NC40MCw1OS4wMCwyNzYuODAsMzkuODAsMjc0LjQwIEMzOS44
MCwyNzQuNDAsMTkuMDAsMjcwLjQwLC02LjYwLDI3NC40MCBDLTYuNjAsMjc0LjQwLC0zNS44MCwy
NzIuODAsLTM4LjYwLDI2NC44MCBDLTQxLjQwLDI1Ni44MCwtMjcuNDAsMjQxLjYwLC0yNy40MCwy
NDEuNjAgQy0yNy40MCwyNDEuNjAsLTIzLjAwLDIzMy4yMCwtMjQuMjAsMjE4LjgwIEMtMjUuNDAs
MjA0LjQwLC0yNS4wMCwxNzYuNDAsLTI5LjgwLDE3My42MCBaIl0KLSAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgyNjksMzc1LjYwKSBzaXplIDEyMi44MHg5MS4yNSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRTU2NjhDXX1dIFtkYXRhPSJNLTcuODAsMTc1LjYwIEMwLjYwLDE5NC4wMCwt
MjkuMDAsMjU5LjIwLC0yOS4wMCwyNTkuMjAgQy0zMS4wMCwyNjAuODAsLTE2LjM0LDI2Ni44NSwt
Ni4yMCwyNjQuNDAgQzQuNzUsMjYxLjc2LDQ1LjAwLDI2Ni4wMCw0NS4wMCwyNjYuMDAgQzY4LjYw
LDI1MC40MCw4MS40MCwyMDYuMDAsODEuNDAsMjA2LjAwIEM4MS40MCwyMDYuMDAsOTEuODAsMTgy
LjAwLDc0LjIwLDE3OC44MCBDNTYuNjAsMTc1LjYwLC03LjgwLDE3NS42MCwtNy44MCwxNzUuNjAg
WiJdCisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjY5LDM3NS42MCkgc2l6ZSAxMjIuODB4
OTEuMjQgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U1NjY4Q119XSBbZGF0YT0iTS03Ljgw
LDE3NS42MCBDMC42MCwxOTQuMDAsLTI5LjAwLDI1OS4yMCwtMjkuMDAsMjU5LjIwIEMtMzEuMDAs
MjYwLjgwLC0xNi4zNCwyNjYuODUsLTYuMjAsMjY0LjQwIEM0Ljc1LDI2MS43Niw0NS4wMCwyNjYu
MDAsNDUuMDAsMjY2LjAwIEM2OC42MCwyNTAuNDAsODEuNDAsMjA2LjAwLDgxLjQwLDIwNi4wMCBD
ODEuNDAsMjA2LjAwLDkxLjgwLDE4Mi4wMCw3NC4yMCwxNzguODAgQzU2LjYwLDE3NS42MCwtNy44
MCwxNzUuNjAsLTcuODAsMTc1LjYwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5
MC4xNywzNTMuMzMpIHNpemUgOTQuNjN4NTQuNjggW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0IyMzI1OV19XSBbZGF0YT0iTS05LjgzLDIwNi41MCBDLTYuNTEsMTkzLjcxLC00LjkyLDE4MS45
MSwtNy44MCwxNzUuNjAgQy03LjgwLDE3NS42MCw1NC42MCwxODIuMDAsNjUuODAsMTYxLjIwIEM3
MC4wNCwxNTMuMzMsODQuODAsMTg0LjAwLDg0LjQwLDE5My42MCBDODQuNDAsMTkzLjYwLDIxLjQw
LDIwOC4wMCw2LjYwLDE5Ni44MCBMLTkuODMsMjA2LjUwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDI5MS40MCw0MTQuNDApIHNpemUgNzIuNDB4MzYuODAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0E1MjY0Q119XSBbZGF0YT0iTS01LjQwLDIyMi44MCBDLTUuNDAsMjIyLjgw
LC0zLjQwLDIzMC4wMCwtNS44MCwyMzQuMDAgQy01LjgwLDIzNC4wMCwtNy40MCwyMzQuODAsLTgu
NjAsMjM1LjIwIEMtOC42MCwyMzUuMjAsLTcuNDAsMjM4LjgwLC0xLjQwLDI0MC40MCBDLTEuNDAs
MjQwLjQwLDAuNjAsMjQ0LjgwLDMuMDAsMjQ1LjIwIEM1LjQwLDI0NS42MCwxMC4yMCwyNTEuMjAs
MTQuMjAsMjUwLjAwIEMxOC4yMCwyNDguODAsMjkuNDAsMjQ0LjgwLDI5LjQwLDI0NC44MCBDMjku
NDAsMjQ0LjgwLDM1LjAwLDI0MS42MCw0My44MCwyNDUuMjAgQzQzLjgwLDI0NS4yMCw0Ni4xNywy
NDQuNDAsNDYuNjAsMjQwLjQwIEM0Ny4xMCwyMzUuNzAsNTAuMjAsMjMyLjAwLDUyLjIwLDIzMC4w
MCBDNTQuMjAsMjI4LjAwLDYzLjgwLDIxNS4yMCw2Mi42MCwyMTQuODAgQzYxLjQwLDIxNC40MCwt
NS40MCwyMjIuODAsLTUuNDAsMjIyLjgwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDI4OC41MiwzNTcuMjgpIHNpemUgODguODZ4ODQuNDIgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjcyN0ZdfV0gW2Rh
dGE9Ik0tOS44MCwxNzQuNDAgQy05LjgwLDE3NC40MCwtMTIuNjAsMTk2LjgwLC05LjQwLDIwNS4y
MCBDLTYuMjAsMjEzLjYwLC03LjAwLDIxNS42MCwtNy44MCwyMTkuNjAgQy04LjYwLDIyMy42MCwt
NC4yMCwyMzMuNjAsMS40MCwyMzkuNjAgTDEzLjQwLDI0MS4yMCBDMTMuNDAsMjQxLjIwLDI4LjYw
LDIzNy42MCwzNy44MCwyNDAuNDAgQzM3LjgwLDI0MC40MCw0Ni43OSwyNDEuNzQsNTAuMjAsMjI2
LjgwIEM1MC4yMCwyMjYuODAsNTUuMDAsMjIwLjQwLDYyLjIwLDIxNy42MCBDNjkuNDAsMjE0Ljgw
LDc2LjYwLDE3My4yMCw3Mi42MCwxNjUuMjAgQzY4LjYwLDE1Ny4yMCw1NC4yMCwxNTIuODAsMzgu
MjAsMTY4LjQwIEMyMi4yMCwxODQuMDAsMjAuMjAsMTY3LjIwLC05LjgwLDE3NC40MCBaIl0KQEAg
LTEzMSwxMiArMTMxLDEyIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDIzMy40NywyMDYuNDYpIHNpemUgMi4yNng1LjA5IFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tNjUuNDAsMTEuNTUgQy02Ni4w
MywxMS41NSwtNjYuNTMsMTAuNDEsLTY2LjUzLDkuMDAgQy02Ni41Myw3LjU5LC02Ni4wMyw2LjQ1
LC02NS40MCw2LjQ1IEMtNjQuNzgsNi40NSwtNjQuMjcsNy41OSwtNjQuMjcsOS4wMCBDLTY0LjI3
LDEwLjQxLC02NC43OCwxMS41NSwtNjUuNDAsMTEuNTUgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtw
YXRofSBhdCAoMjM0LjYwLDIwOSkgc2l6ZSAweDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF19XSBbZGF0YT0iTS02NS40MCw5LjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDE3OC4xNSwyOTUuNTApIHNpemUgODQuMjV4NjIuNDIgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS0xMTEuMDAsMTA5LjYwIEMtMTExLjAwLDEwOS42
MCwtMTE2LjYwLDExOS42MCwtOTEuODAsMTEzLjYwIEMtOTEuODAsMTEzLjYwLC03Ny44MCwxMTIu
NDAsLTc1LjQwLDExMC4wMCBDLTc0LjIwLDExMC44MCwtNjUuODMsMTEzLjczLC02My4wMCwxMTQu
NDAgQy01Ni4yMCwxMTYuMDAsLTQ3LjgwLDEwNi4wMCwtNDcuODAsMTA2LjAwIEMtNDcuODAsMTA2
LjAwLC00My4yMCw5NS41MCwtNDAuNDAsOTUuNTAgQy0zNy42MCw5NS41MCwtNDAuODAsOTcuMTAs
LTQwLjgwLDk3LjEwIEMtNDAuODAsOTcuMTAsLTQ3LjQwLDEwNy4yMCwtNDcuMDAsMTA4LjgwIEMt
NDcuMDAsMTA4LjgwLC01Mi4yMCwxMjguODAsLTY4LjIwLDEyOS42MCBDLTY4LjIwLDEyOS42MCwt
ODQuMzUsMTMwLjU1LC04My4wMCwxMzYuNDAgQy04My4wMCwxMzYuNDAsLTc0LjIwLDEzNC4wMCwt
NzEuODAsMTM2LjQwIEMtNzEuODAsMTM2LjQwLC02MS4wMCwxMzYuMDAsLTY5LjAwLDE0Mi40MCBM
LTc1LjgwLDE1NC4wMCBDLTc1LjgwLDE1NC4wMCwtNzUuNjYsMTU3LjkyLC04NS44MCwxNTQuNDAg
Qy05NS42MCwxNTEuMDAsLTEwNS45MCwxMzguMTAsLTEwNS45MCwxMzguMTAgQy0xMDUuOTAsMTM4
LjEwLC0xMjEuODUsMTIzLjU1LC0xMTEuMDAsMTA5LjYwIFoiXQotICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDE4NS44MCwzMTIuODApIHNpemUgNjAuMDB4NDMuMjAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0U1OTk5OV19XSBbZGF0YT0iTS0xMTIuMjAsMTEzLjYwIEMtMTEyLjIwLDEx
My42MCwtMTE0LjIwLDEyMy4yMCwtNzcuNDAsMTEyLjgwIEMtNzcuNDAsMTEyLjgwLC03My4wMCwx
MTIuODAsLTcwLjYwLDExMy42MCBDLTY4LjIwLDExNC40MCwtNTYuMjAsMTE3LjIwLC01NC4yMCwx
MTYuMDAgQy01NC4yMCwxMTYuMDAsLTYxLjQwLDEyOS42MCwtNzMuMDAsMTI4LjAwIEMtNzMuMDAs
MTI4LjAwLC04Ni4yMCwxMjkuNjAsLTg1LjgwLDEzNC40MCBDLTg1LjgwLDEzNC40MCwtODEuODAs
MTQxLjYwLC03Ny4wMCwxNDQuMDAgQy03Ny4wMCwxNDQuMDAsLTc0LjIwLDE0Ni40MCwtNzQuNjAs
MTQ5LjYwIEMtNzUuMDAsMTUyLjgwLC03Ny44MCwxNTQuNDAsLTc5LjgwLDE1NS4yMCBDLTgxLjgw
LDE1Ni4wMCwtODUuMDAsMTUyLjgwLC04Ni42MCwxNTIuODAgQy04OC4yMCwxNTIuODAsLTk2LjYw
LDE0Ni40MCwtMTAxLjAwLDE0MS42MCBDLTEwNS40MCwxMzYuODAsLTExMy44MCwxMjQuODAsLTEx
My40MCwxMjIuMDAgQy0xMTMuMDAsMTE5LjIwLC0xMTIuMjAsMTEzLjYwLC0xMTIuMjAsMTEzLjYw
IFoiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4NS44MCwzMTIuODApIHNpemUgNjB4
NDMuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U1OTk5OV19XSBbZGF0YT0iTS0xMTIu
MjAsMTEzLjYwIEMtMTEyLjIwLDExMy42MCwtMTE0LjIwLDEyMy4yMCwtNzcuNDAsMTEyLjgwIEMt
NzcuNDAsMTEyLjgwLC03My4wMCwxMTIuODAsLTcwLjYwLDExMy42MCBDLTY4LjIwLDExNC40MCwt
NTYuMjAsMTE3LjIwLC01NC4yMCwxMTYuMDAgQy01NC4yMCwxMTYuMDAsLTYxLjQwLDEyOS42MCwt
NzMuMDAsMTI4LjAwIEMtNzMuMDAsMTI4LjAwLC04Ni4yMCwxMjkuNjAsLTg1LjgwLDEzNC40MCBD
LTg1LjgwLDEzNC40MCwtODEuODAsMTQxLjYwLC03Ny4wMCwxNDQuMDAgQy03Ny4wMCwxNDQuMDAs
LTc0LjIwLDE0Ni40MCwtNzQuNjAsMTQ5LjYwIEMtNzUuMDAsMTUyLjgwLC03Ny44MCwxNTQuNDAs
LTc5LjgwLDE1NS4yMCBDLTgxLjgwLDE1Ni4wMCwtODUuMDAsMTUyLjgwLC04Ni42MCwxNTIuODAg
Qy04OC4yMCwxNTIuODAsLTk2LjYwLDE0Ni40MCwtMTAxLjAwLDE0MS42MCBDLTEwNS40MCwxMzYu
ODAsLTExMy44MCwxMjQuODAsLTExMy40MCwxMjIuMDAgQy0xMTMuMDAsMTE5LjIwLC0xMTIuMjAs
MTEzLjYwLC0xMTIuMjAsMTEzLjYwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE5
MSwzMjYuMDApIHNpemUgMzQuODB4MzAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0IyNjU2
NV19XSBbZGF0YT0iTS0xMDkuMDAsMTMxLjA1IEMtMTA2LjQwLDEzNS4wMCwtMTAzLjIwLDEzOS4y
MCwtMTAxLjAwLDE0MS42MCBDLTk2LjYwLDE0Ni40MCwtODguMjAsMTUyLjgwLC04Ni42MCwxNTIu
ODAgQy04NS4wMCwxNTIuODAsLTgxLjgwLDE1Ni4wMCwtNzkuODAsMTU1LjIwIEMtNzcuODAsMTU0
LjQwLC03NS4wMCwxNTIuODAsLTc0LjYwLDE0OS42MCBDLTc0LjIwLDE0Ni40MCwtNzcuMDAsMTQ0
LjAwLC03Ny4wMCwxNDQuMDAgQy04MC4wNywxNDIuNDcsLTgyLjgxLDEzOC45OCwtODQuMzksMTM2
LjY1IEMtODQuMzksMTM2LjY1LC04NC4yMCwxMzkuMjAsLTg5LjQwLDEzOC40MCBDLTk0LjYwLDEz
Ny42MCwtOTkuODAsMTM0LjgwLC0xMDEuNDAsMTMxLjYwIEMtMTAzLjAwLDEyOC40MCwtMTA1LjQw
LDEyNi4wMCwtMTAzLjgwLDEyOS42MCBDLTEwMi4yMCwxMzMuMjAsLTk5LjgwLDEzNi44MCwtOTgu
MjAsMTM3LjIwIEMtOTYuNjAsMTM3LjYwLC05Ny4wMCwxMzguODAsLTk5LjQwLDEzOC40MCBDLTEw
MS44MCwxMzguMDAsLTEwNC42MCwxMzcuNjAsLTEwOS4wMCwxMzIuNDAgWiJdCiAgICAgICBSZW5k
ZXJQYXRoIHtwYXRofSBhdCAoMTg1LjgwLDIwOS42Mykgc2l6ZSA1Ny45MHgxMDQuMTcgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5MjYwMF19XSBbZGF0YT0iTS0xMTEuNjAsMTEwLjAwIEMt
MTExLjYwLDExMC4wMCwtMTA5LjgwLDk2LjQwLC0xMDguNjAsOTIuNDAgQy0xMDguNjAsOTIuNDAs
LTEwOS40MCw4NS42MCwtMTA3LjAwLDgxLjQwIEMtMTA0LjYwLDc3LjIwLC0xMDIuNjAsNzEuMDAs
LTk5LjYwLDY1LjYwIEMtOTYuNjAsNjAuMjAsLTk2LjQwLDU2LjIwLC05Mi40MCw1NC42MCBDLTg4
LjQwLDUzLjAwLC04Mi40MCw0NC40MCwtNzkuNjAsNDMuNDAgQy03Ni44MCw0Mi40MCwtNzcuMDAs
NDMuMjAsLTc3LjAwLDQzLjIwIEMtNzcuMDAsNDMuMjAsLTcwLjIwLDI4LjQwLC01Ni42MCwzMi40
MCBDLTU2LjYwLDMyLjQwLC03Mi44MCwyOS42MCwtNTcuMDAsMjAuMjAgQy01Ny4wMCwyMC4yMCwt
NjEuODAsMjEuMzAsLTU4LjUwLDE0LjMwIEMtNTYuMzAsOS42MywtNTYuODAsMTYuNDAsLTY3Ljgw
LDI4LjIwIEMtNjcuODAsMjguMjAsLTcyLjgwLDM2LjgwLC03OC4wMCwzOS44MCBDLTgzLjIwLDQy
LjgwLC05NS4yMCw0OS44MCwtOTYuNDAsNTMuNjAgQy05Ny42MCw1Ny40MCwtMTAwLjgwLDYzLjIw
LC0xMDIuODAsNjQuODAgQy0xMDQuODAsNjYuNDAsLTEwNy42MCw3MC42MCwtMTA4LjAwLDc0LjAw
IEMtMTA4LjAwLDc0LjAwLC0xMDkuMjAsNzguMDAsLTExMC42MCw3OS4yMCBDLTExMi4wMCw4MC40
MCwtMTEyLjIwLDgzLjYwLC0xMTIuMjAsODUuNjAgQy0xMTIuMjAsODcuNjAsLTExNC4yMCw5MC40
MCwtMTE0LjAwLDkyLjgwIEMtMTE0LjAwLDkyLjgwLC0xMTMuMjAsMTExLjgwLC0xMTMuNjAsMTEz
LjgwIEwtMTExLjYwLDExMC4wMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNzMu
NDAsMzEzLjIwKSBzaXplIDguNDB4NDAuNDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
RkZGRl19XSBbZGF0YT0iTS0xMjAuMjAsMTE0LjYwIEMtMTIwLjIwLDExNC42MCwtMTIyLjIwLDEx
My4yMCwtMTI2LjYwLDExOS4yMCBDLTEyNi42MCwxMTkuMjAsLTExOS4zMCwxNTIuMjAsLTExOS4z
MCwxNTMuNjAgQy0xMTkuMzAsMTUzLjYwLC0xMTguMjAsMTUxLjUwLC0xMTkuNTAsMTQ0LjMwIEMt
MTIwLjgwLDEzNy4xMCwtMTIxLjcwLDEyNC40MCwtMTIxLjcwLDEyNC40MCBMLTEyMC4yMCwxMTQu
NjAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTY2LjYwLDI1MS4yMCkgc2l6ZSAz
OS4zMHg2NC41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jOTkyNjAwXX1dIFtkYXRhPSJN
LTk4LjYwLDU0LjAwIEMtOTguNjAsNTQuMDAsLTExNi4yMCw1Ny4yMCwtMTE1LjgwLDg2LjQwIEwt
MTE2LjYwLDExMS4yMCBDLTExNi42MCwxMTEuMjAsLTExNy44MCw4NS42MCwtMTE5LjAwLDg0LjAw
IEMtMTIwLjIwLDgyLjQwLC0xMTYuMjAsNzEuMjAsLTExOS40MCw3Ny4yMCBDLTExOS40MCw3Ny4y
MCwtMTMzLjQwLDkxLjIwLC0xMjUuNDAsMTEyLjQwIEMtMTI1LjQwLDExMi40MCwtMTIzLjkwLDEx
NS43MCwtMTI2LjkwLDExMS4xMCBDLTEyNi45MCwxMTEuMTAsLTEzMS41MCw5OC41MCwtMTMwLjQw
LDkyLjEwIEMtMTMwLjQwLDkyLjEwLC0xMzAuMjAsODkuOTAsLTEyOC4zMCw4Ny4xMCBDLTEyOC4z
MCw4Ny4xMCwtMTE5LjcwLDc1LjQwLC0xMTcuMDAsNzMuMTAgQy0xMTcuMDAsNzMuMTAsLTExNS4y
MCw1OC43MCwtOTkuODAsNTMuNTAgQy05OS44MCw1My41MCwtOTQuMTAsNTEuMjAsLTk4LjYwLDU0
LjAwIFoiXQotICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDMyMC4wNCwxNjIuNDIpIHNpemUg
MjUuNzd4NDguMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTQwLjgwLC0xMi4yMCBDNDEuNDYsLTEyLjU1LDQxLjQ1LC0xMy41Miw0Mi4wMywtMTMuNzAgQzQz
LjE4LC0xNC4wNCw0My4zNCwtMTUuMTEsNDMuODYsLTE1Ljg5IEM0NC43NCwtMTcuMjEsNDQuOTMs
LTE4Ljc0LDQ1LjUxLC0yMC4yNCBDNDUuNzgsLTIwLjkzLDQ1LjgxLC0yMS44OSw0NS41MCwtMjIu
NTUgQzQ0LjMyLC0yNS4wMyw0My42MiwtMjcuNDgsNDIuMTgsLTI5LjkxIEM0MS45MSwtMzAuMzYs
NDEuNjUsLTMxLjE1LDQxLjQ1LC0zMS43NSBDNDAuOTgsLTMzLjEzLDM5LjczLC0zNC4xMiwzOC44
NywtMzUuNDQgQzM4LjU4LC0zNS44OCwzOS4xMCwtMzYuODEsMzguMzksLTM2Ljg5IEMzNy40OSwt
MzcuMDAsMzYuMDQsLTM3LjU4LDM1LjgxLC0zNi41NSBDMzUuMjIsLTMzLjk3LDM2LjIzLC0zMS40
NCwzNy4yMCwtMjkuMDAgQzM2LjQyLC0yOC4zMSwzNi43NSwtMjcuMzksMzYuOTAsLTI2LjYyIEMz
Ny42MSwtMjMuMDEsMzYuNDIsLTE5LjY2LDM1LjY1LC0xNi4xOSBDMzUuNjMsLTE2LjA4LDM1Ljk3
LC0xNS44OSwzNS45NSwtMTUuODIgQzM0LjcyLC0xMy4xNCwzMy4yNywtMTAuNjksMzEuNDUsLTgu
MzEgQzMwLjY5LC03LjMyLDI5LjgyLC02LjQwLDI5LjMzLC01LjM0IEMyOC45NiwtNC41NSwyOC41
NSwtMy41OSwyOC44MCwtMi42MCBDMjUuMzYsMC4xOCwyMy4xMSw0LjAzLDIwLjUwLDcuODcgQzIw
LjA0LDguNTUsMjAuMzMsOS43NiwyMC44OCwxMC4wMyBDMjEuNzAsMTAuNDMsMjIuNjUsOS40MCwy
My4xMiw4LjU2IEMyMy41MSw3Ljg2LDIzLjg2LDcuMjEsMjQuMzYsNi41NyBDMjQuNDksNi4zOSwy
NC4zMSw1Ljk3LDI0LjQ0LDUuODUgQzI3LjA4LDMuNTAsMjguNzUsMC41NywzMS4yMCwtMS44MCBD
MzMuMTUsLTIuMTMsMzQuNjksLTMuMTMsMzYuNDQsLTQuMTQgQzM2Ljc0LC00LjMyLDM3LjI3LC00
LjA3LDM3LjU2LC00LjI2IEMzOS4zMSwtNS40NCwzOS4zMSwtNy40OCwzOS40MSwtOS4zOSBDMzku
NDYsLTEwLjI3LDM5LjY2LC0xMS41OSw0MC44MCwtMTIuMjAgWiJdCisgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMzIwLjA0LDE2Mi40Mikgc2l6ZSAyNS43N3g0OC4wMSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNNDAuODAsLTEyLjIwIEM0MS40NiwtMTIu
NTUsNDEuNDUsLTEzLjUyLDQyLjAzLC0xMy43MCBDNDMuMTgsLTE0LjA0LDQzLjM0LC0xNS4xMSw0
My44NiwtMTUuODkgQzQ0Ljc0LC0xNy4yMSw0NC45MywtMTguNzQsNDUuNTEsLTIwLjI0IEM0NS43
OCwtMjAuOTMsNDUuODEsLTIxLjg5LDQ1LjUwLC0yMi41NSBDNDQuMzIsLTI1LjAzLDQzLjYyLC0y
Ny40OCw0Mi4xOCwtMjkuOTEgQzQxLjkxLC0zMC4zNiw0MS42NSwtMzEuMTUsNDEuNDUsLTMxLjc1
IEM0MC45OCwtMzMuMTMsMzkuNzMsLTM0LjEyLDM4Ljg3LC0zNS40NCBDMzguNTgsLTM1Ljg4LDM5
LjEwLC0zNi44MSwzOC4zOSwtMzYuODkgQzM3LjQ5LC0zNy4wMCwzNi4wNCwtMzcuNTgsMzUuODEs
LTM2LjU1IEMzNS4yMiwtMzMuOTcsMzYuMjMsLTMxLjQ0LDM3LjIwLC0yOS4wMCBDMzYuNDIsLTI4
LjMxLDM2Ljc1LC0yNy4zOSwzNi45MCwtMjYuNjIgQzM3LjYxLC0yMy4wMSwzNi40MiwtMTkuNjYs
MzUuNjUsLTE2LjE5IEMzNS42MywtMTYuMDgsMzUuOTcsLTE1Ljg5LDM1Ljk1LC0xNS44MiBDMzQu
NzIsLTEzLjE0LDMzLjI3LC0xMC42OSwzMS40NSwtOC4zMSBDMzAuNjksLTcuMzIsMjkuODIsLTYu
NDAsMjkuMzMsLTUuMzQgQzI4Ljk2LC00LjU1LDI4LjU1LC0zLjU5LDI4LjgwLC0yLjYwIEMyNS4z
NiwwLjE4LDIzLjExLDQuMDMsMjAuNTAsNy44NyBDMjAuMDQsOC41NSwyMC4zMyw5Ljc2LDIwLjg4
LDEwLjAzIEMyMS43MCwxMC40MywyMi42NSw5LjQwLDIzLjEyLDguNTYgQzIzLjUxLDcuODYsMjMu
ODYsNy4yMSwyNC4zNiw2LjU3IEMyNC40OSw2LjM5LDI0LjMxLDUuOTcsMjQuNDQsNS44NSBDMjcu
MDgsMy41MCwyOC43NSwwLjU3LDMxLjIwLC0xLjgwIEMzMy4xNSwtMi4xMywzNC42OSwtMy4xMywz
Ni40NCwtNC4xNCBDMzYuNzQsLTQuMzIsMzcuMjcsLTQuMDcsMzcuNTYsLTQuMjYgQzM5LjMxLC01
LjQ0LDM5LjMxLC03LjQ4LDM5LjQxLC05LjM5IEMzOS40NiwtMTAuMjcsMzkuNjYsLTExLjU5LDQw
LjgwLC0xMi4yMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMjcuNTAsMTYyLjE5
KSBzaXplIDcuOTh4MjIuNDkgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBb
ZGF0YT0iTTMxLjk2LC0xNi42NyBDMzIuMDgsLTE2Ljc0LDMxLjkzLC0xNy4xNywzMi4wNCwtMTcu
MzggQzMyLjIwLC0xNy43MSwzMi42MCwtMTcuODksMzIuNzYsLTE4LjIyIEMzMi44NywtMTguNDMs
MzIuNzEsLTE4LjgxLDMyLjg1LC0xOC45NiBDMzUuMTgsLTIxLjQwLDM1LjQ0LC0yNC40MywzNC40
MCwtMjcuNDAgQzM1LjQyLC0yOC4wMiwzNS40OSwtMjkuMjgsMzUuMDYsLTMwLjEzIEMzNC4yMSwt
MzEuODMsMzQuMDEsLTMzLjc2LDMzLjA0LC0zNS4zMCBDMzIuMjQsLTM2LjU3LDMwLjY2LC0zNy44
MSwyOS4yOSwtMzYuNTEgQzI4Ljg3LC0zNi4xMSwyOC41NSwtMzUuMzIsMjguODIsLTM0LjYxIEMy
OC44OSwtMzQuNDUsMjkuMTcsLTM0LjMwLDI5LjE1LC0zNC4yMiBDMjkuMDQsLTMzLjg5LDI4LjQ5
LC0zMy42NywyOC40OSwtMzMuNDAgQzI4LjQ2LC0zMS45MCwyNy41MCwtMzAuMzksMjguMTMsLTI5
LjA2IEMyOC45MSwtMjcuNDMsMjkuNzIsLTI1LjU4LDMwLjQwLC0yMy44MCBDMjkuMTcsLTIxLjY4
LDMwLjIwLC0xOS4yNCwyOC40NSwtMTcuMzYgQzI4LjMxLC0xNy4yMSwyOC4zMiwtMTYuODMsMjgu
NDQsLTE2LjYyIEMyOC43MywtMTYuMTQsMjkuMTQsLTE1LjczLDI5LjYyLC0xNS40NCBDMjkuODMs
LTE1LjMyLDMwLjE3LC0xNS4zMiwzMC4zOCwtMTUuNDQgQzMwLjk1LC0xNS44MCwzMS4zNSwtMTYu
MjksMzEuOTYsLTE2LjY3IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDM4Ny42MSwx
NDMuOTcpIHNpemUgMjAuNDN4MzguMzQgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTk0Ljc3LC0yNi45OCBDOTYuMTYsLTI1LjE4LDk2LjQ1LC0yMi4zOSw5NC40
MCwtMjEuMDAgQzk0Ljk1LC0xNy42OSw5OC4zMCwtMTkuNjcsMTAwLjQwLC0yMC4yMCBDMTAwLjI5
LC0yMC41OSwxMDAuNTIsLTIwLjkzLDEwMC44MCwtMjAuOTQgQzEwMS44NiwtMjAuOTUsMTAyLjU0
LC0yMS45OCwxMDMuNjAsLTIxLjgwIEMxMDQuMDQsLTIzLjM2LDEwNS42NywtMjQuMDYsMTA2LjMy
LC0yNS40NCBDMTA4LjA0LC0yOS4xMywxMDcuNDUsLTMzLjQxLDEwNC44NywtMzYuNjUgQzEwNC42
NywtMzYuOTEsMTA0Ljg4LC0zNy40MiwxMDQuNzYsLTM3Ljc5IEMxMDQuMDAsLTQwLjAwLDEwMS45
MywtNDAuMzEsMTAwLjAwLC00MS4wMCBDOTguODIsLTQ0Ljg4LDk4LjE2LC00OC45MSw5Ni40MCwt
NTIuNjAgQzk0Ljc5LC01Mi44NSw5NC4wOSwtNTQuNTksOTIuNzUsLTU1LjMxIEM5MS40MiwtNTYu
MDMsOTAuODUsLTU0LjQ1LDkwLjg5LC01My40MCBDOTAuOTAsLTUzLjIwLDkxLjM1LC01Mi45Nyw5
MS4xOCwtNTIuNjEgQzkxLjExLC01Mi40NCw5MC44NSwtNTIuMzMsOTAuODUsLTUyLjIwIEM5MC44
NSwtNTIuMDYsOTEuMDcsLTUxLjkzLDkxLjIwLC01MS44MCBDOTAuMjgsLTUwLjk4LDg4Ljg2LC01
MC41MCw4OC41NywtNDkuMzYgQzg3LjYxLC00NS42NSw5MC4xOCwtNDIuNTIsOTEuODUsLTM5LjMy
IEM5Mi40NCwtMzguMTksOTEuNzEsLTM2LjkyLDkwLjk1LC0zNS43MSBDOTAuNTEsLTM1LjAxLDkw
LjYyLC0zMy44OSw5MC44OSwtMzMuMDMgQzkxLjY0LC0zMC43MCw5My4yNCwtMjguOTYsOTQuNzcs
LTI2Ljk4IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDMzNy4wNiwxNTAuMDMpIHNp
emUgNTQuNDR4NDcuODYgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0
YT0iTTU3LjYxLC04LjU5IEM1Ni4xMiwtNi43NCw1Mi43MSwtNC4xNyw1NS42MywtMi4yNCBDNTUu
ODIsLTIuMTEsNTYuMTksLTIuMTEsNTYuMzcsLTIuMjQgQzU4LjM5LC0zLjgxLDYwLjM5LC00Ljcx
LDYyLjgzLC01LjI5IEM2Mi45NSwtNS4zMiw2My4yMiwtNC44Niw2My41OSwtNS4wMiBDNjUuMjEs
LTUuNzIsNjcuMjIsLTUuNjYsNjguNDAsLTcuMDAgQzcyLjE3LC02Ljc4LDc1LjczLC03Ljg5LDc5
LjEyLC05LjIwIEM4MC4yOCwtOS42NSw4MS41NSwtMTAuMjEsODIuNzUsLTEwLjcxIEM4NC4xMywt
MTEuMjgsODUuMzMsLTEyLjIxLDg2LjQ1LC0xMy4zNSBDODYuNTgsLTEzLjQ5LDg2LjkzLC0xMy40
MCw4Ny4yMCwtMTMuNDAgQzg3LjE2LC0xNC4yNiw4OC4xMiwtMTQuMzksODguMzcsLTE1LjAxIEM4
OC40NiwtMTUuMjQsODguMzEsLTE1LjY0LDg4LjQ0LC0xNS43NCBDOTAuNTgsLTE3LjM3LDkxLjUw
LC0xOS4zOSw5MC4zMywtMjEuNzcgQzkwLjA1LC0yMi4zNCw4OS44MCwtMjIuOTYsODkuMjMsLTIz
LjQ0IEM4OC4xNSwtMjQuMzUsODcuMDUsLTIzLjUwLDg2LjAwLC0yMy44MCBDODUuODQsLTIzLjE3
LDg1LjExLC0yMy4zNCw4NC43MywtMjMuMTUgQzgzLjg3LC0yMi43MSw4Mi41MywtMjMuMjksODEu
NjgsLTIyLjg1IEM4MC4zMSwtMjIuMTYsNzkuMDcsLTIxLjk5LDc3LjY1LC0yMS42MSBDNzcuMzQs
LTIxLjUzLDc2LjU2LC0yMS42Myw3Ni40MCwtMjEuMDAgQzc2LjI3LC0yMS4xMyw3Ni4xMiwtMjEu
MzcsNzYuMDEsLTIxLjM1IEM3NC4xMCwtMjAuOTUsNzIuODQsLTIwLjc0LDcxLjU0LC0xOS4wNCBD
NzEuNDQsLTE4LjkxLDcxLjAwLC0xOS4wOSw3MC44NCwtMTguOTUgQzY5Ljg4LC0xOC4xNSw2OS40
OCwtMTYuOTEsNjguMzgsLTE2LjI0IEM2OC4xOCwtMTYuMTIsNjcuODIsLTE2LjI5LDY3LjYzLC0x
Ni4xNiBDNjYuOTgsLTE1LjczLDY2LjYyLC0xNS4wOSw2NS45NywtMTQuNjQgQzY1LjY0LC0xNC40
MSw2NS4yNSwtMTQuNzMsNjUuMjgsLTE0Ljk5IEM2NS41MiwtMTYuOTQsNjYuMTgsLTE4LjcyLDY1
LjYwLC0yMC42MCBDNjcuNjgsLTIzLjEyLDcwLjE5LC0yNS4wNyw3Mi4wMCwtMjcuODAgQzcyLjAx
LC0yOS45Nyw3Mi43MSwtMzIuMTEsNzIuNTksLTM0LjE5IEM3Mi41OCwtMzQuMzgsNzIuMzAsLTM1
LjEyLDcyLjE3LC0zNS40NiBDNzEuODYsLTM2LjMyLDcyLjc2LC0zNy4zOCw3MS45MiwtMzguMTEg
QzcwLjUyLC0zOS4zMSw2OS4yMiwtMzguNDMsNjguNDAsLTM3LjAwIEM2Ni41NiwtMzYuNjEsNjQu
NTAsLTM1LjkyLDYyLjkyLC0zNy4xNSBDNjEuOTEsLTM3Ljk0LDYxLjMzLC0zOC44NCw2MC41Mywt
MzkuOTAgQzU5LjU1LC00MS4yMCw1OS44OCwtNDIuNjQsNTkuOTUsLTQ0LjIwIEM1OS45NiwtNDQu
MzMsNTkuNjUsLTQ0LjQ3LDU5LjY1LC00NC42MCBDNTkuNjUsLTQ0Ljc0LDU5Ljg3LC00NC44Nyw2
MC4wMCwtNDUuMDAgQzU5LjI5LC00NS42Myw1OS4wMiwtNDYuNjgsNTguMDAsLTQ3LjAwIEM1OC4z
MSwtNDguMDksNTcuNjMsLTQ4Ljk4LDU2Ljc2LC00OS4yOCBDNTQuNzYsLTQ5Ljk3LDUzLjA5LC00
OC4wNiw1MS4xOSwtNDcuOTggQzUwLjY4LC00Ny45Nyw1MC4yMSwtNDkuMDAsNDkuNTYsLTQ5LjMz
IEM0OS4xMywtNDkuNTQsNDguNDMsLTQ5LjU4LDQ4LjA3LC00OS4zMSBDNDcuMzgsLTQ4LjgxLDQ2
Ljc5LC00OC42OSw0Ni4wMywtNDguNDkgQzQ0LjQxLC00OC4wNSw0My4xNCwtNDYuOTYsNDEuNjYs
LTQ2LjEwIEM0MC4xNywtNDUuMjUsMzkuMjIsLTQzLjgxLDM4LjE0LC00Mi40OSBDMzcuMTksLTQx
LjM0LDM3LjA2LC0zOC45MiwzOC40OCwtMzguNDIgQzQwLjMyLC0zNy43Nyw0MS42MywtNDAuNDgs
NDMuNTksLTQwLjE1IEM0My45MCwtNDAuMTAsNDQuMTEsLTM5Ljc5LDQ0LjAwLC0zOS40MCBDNDQu
MzksLTM5LjI5LDQ0LjYxLC0zOS41Miw0NC44MCwtMzkuODAgQzQ1LjY2LC0zOC43OCw0Ni44Miwt
MzguNDQsNDcuNzYsLTM3LjU3IEM0OC43MywtMzYuNjcsNTAuNDgsLTM3LjA4LDUxLjQ5LC0zNi4w
OSBDNTMuMDIsLTM0LjU5LDUyLjQ2LC0zMS45MSw1NC40MCwtMzAuNjAgQzUzLjgxLC0yOS4yOSw1
My4yMSwtMjguMDEsNTIuODcsLTI2LjU4IEM1Mi41OSwtMjUuMzgsNTMuNTgsLTI0LjE4LDU0Ljc5
LC0yNC4yNyBDNTYuMDUsLTI0LjM2LDU2LjMxLC0yNS4xMiw1Ni44MCwtMjYuMjAgQzU3LjA3LC0y
NS45Myw1Ny41NCwtMjUuNjQsNTcuNDksLTI1LjQyIEM1Ny4wNCwtMjMuMDMsNTYuMDEsLTIxLjA0
LDU1LjU1LC0xOC42MSBDNTUuNDksLTE4LjI5LDU1LjE5LC0xOC4wOSw1NC44MCwtMTguMjAgQzU0
LjMzLC0xNC4wNSw1MC4yOCwtMTEuNjYsNDcuNzQsLTguNDkgQzQ3LjMzLC03Ljk5LDQ3LjMzLC02
Ljc0LDQ3Ljc0LC02LjM0IEM0OS4xNCwtNC45NSw1MS4xMCwtNi41MCw1Mi44MCwtNy4wMCBDNTMu
MDEsLTguMjEsNTMuODcsLTkuMTUsNTUuMjAsLTkuMDkgQzU1LjQ2LC05LjA4LDU1LjY5LC05LjYy
LDU2LjAyLC05Ljc1IEM1Ni4zNywtOS44OSw1Ni44NywtOS42Nyw1Ny4xNSwtOS44NyBDNTguODgs
LTExLjA2LDYwLjI5LC0xMi4xNyw2Mi4wMywtMTMuMzYgQzYyLjIyLC0xMy40OSw2Mi41NywtMTMu
MzMsNjIuNzgsLTEzLjQ0IEM2My4xMSwtMTMuNjAsNjMuMjksLTEzLjk4LDYzLjYyLC0xNC4xNyBD
NjMuOTcsLTE0LjM3LDY0LjIxLC0xNC4wOCw2NC40MCwtMTMuODAgQzYzLjc1LC0xMy40NSw2My43
NSwtMTIuNDksNjMuMTcsLTEyLjI5IEM2Mi4zOSwtMTIuMDIsNjEuODMsLTExLjUxLDYxLjE2LC0x
MS4wNiBDNjAuODcsLTEwLjg3LDYwLjIxLC0xMS4xMiw2MC4xMCwtMTAuOTQgQzU5LjUxLC05Ljkx
LDU4LjMyLC05LjQ3LDU3LjYxLC04LjU5IFoiXQpAQCAtMjM1LDExICsyMzUsMTEgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzQ2LjIw
LDUxNS44MCkgc2l6ZSAxNC40MHgzMi44MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNNDYuMjAsMzQ3LjQwIEM0Ni4yMCwzNDcuNDAsNTMuNjAsMzI3LjAwLDQ5
LjIwLDMxNS44MCBDNDkuMjAsMzE1LjgwLDYwLjYwLDMzNy40MCw1Ni4wMCwzNDguNjAgQzU2LjAw
LDM0OC42MCw1NS42MCwzMzguMjAsNTEuNjAsMzMzLjIwIEM1MS42MCwzMzMuMjAsNDcuNjAsMzQ2
LjAwLDQ2LjIwLDM0Ny40MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMjEuMjAs
NTE3LjYwKSBzaXplIDE1LjYweDMxLjQwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0ND
Q0NdfV0gW2RhdGE9Ik0zMS40MCwzNDQuODAgQzMxLjQwLDM0NC44MCwzNi44MCwzMzYuMDAsMjgu
ODAsMzE3LjYwIEMyOC44MCwzMTcuNjAsMjguMDAsMzM4LjAwLDIxLjIwLDM0OS4wMCBDMjEuMjAs
MzQ5LjAwLDM1LjQwLDMyOC44MCwzMS40MCwzNDQuODAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtw
YXRofSBhdCAoMzA3LjYwLDUxOS44MCkgc2l6ZSAxNC40MHgyNi4yMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMjEuNDAsMzQyLjgwIEMyMS40MCwzNDIuODAs
MjEuMjAsMzIyLjgwLDIxLjYwLDMxOS44MCBDMjEuNjAsMzE5LjgwLDE3LjgwLDMzNi40MCw3LjYw
LDM0Ni4wMCBDNy42MCwzNDYuMDAsMjIuMDAsMzM0LjAwLDIxLjQwLDM0Mi44MCBaIl0KLSAgICAg
IFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMDcuODAsNTEwLjgwKSBzaXplIDEwLjAweDMyIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0xMS44MCwzMTAuODAgQzEx
LjgwLDMxMC44MCwxNy44MCwzMjQuNDAsNy44MCwzNDIuODAgQzcuODAsMzQyLjgwLDE0LjIwLDMz
MC42MCw5LjQwLDMyMy42MCBDOS40MCwzMjMuNjAsMTIuMDAsMzIwLjIwLDExLjgwLDMxMC44MCBa
Il0KKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMDcuODAsNTEwLjgwKSBzaXplIDEweDMy
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0xMS44MCwzMTAu
ODAgQzExLjgwLDMxMC44MCwxNy44MCwzMjQuNDAsNy44MCwzNDIuODAgQzcuODAsMzQyLjgwLDE0
LjIwLDMzMC42MCw5LjQwLDMyMy42MCBDOS40MCwzMjMuNjAsMTIuMDAsMzIwLjIwLDExLjgwLDMx
MC44MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOTEuNjAsNTExLjAwKSBzaXpl
IDEzLjYweDMxLjYwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9
Ik0tNy40MCwzNDIuNDAgQy03LjQwLDM0Mi40MCwtOC40MCwzMjYuODAsLTYuNjAsMzI0LjYwIEMt
Ni42MCwzMjQuNjAsLTYuNDAsMzE4LjIwLC02LjgwLDMxNy4yMCBDLTYuODAsMzE3LjIwLC0yLjgw
LDMxMS4wMCwtMi42MCwzMTguNDAgQy0yLjYwLDMxOC40MCwtMS4yMCwzMjYuMjAsMS42MCwzMzAu
ODAgQzEuNjAsMzMwLjgwLDUuMjAsMzM2LjIwLDUuMDAsMzQyLjYwIEM1LjAwLDM0Mi42MCwtNS4w
MCwzMTIuNDAsLTcuNDAsMzQyLjQwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI3
OS4yMCw1MDguNjApIHNpemUgOS44MHgzNiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNLTExLjAwLDMxNC44MCBDLTExLjAwLDMxNC44MCwtMTcuNjAsMzI1LjYw
LC0xOS40MCwzNDQuNjAgQy0xOS40MCwzNDQuNjAsLTIwLjgwLDMzOC40MCwtMTcuMDAsMzI0LjAw
IEMtMTcuMDAsMzI0LjAwLC0xMi44MCwzMDguNjAsLTExLjAwLDMxNC44MCBaIl0KICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgyNjIuODAsNTA4LjQwKSBzaXplIDE0LjQweDI2LjIwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tMzIuODAsMzM0LjYwIEMt
MzIuODAsMzM0LjYwLC0yNy44MCwzMjkuMjAsLTI2LjQwLDMyNC4yMCBDLTI2LjQwLDMyNC4yMCwt
MjIuODAsMzA4LjQwLC0yOS4yMCwzMTcuMDAgQy0yOS4yMCwzMTcuMDAsLTI5LjAwLDMyNS4wMCwt
MzcuMjAsMzMyLjQwIEMtMzcuMjAsMzMyLjQwLC0zMi40MCwzMzAuMDAsLTMyLjgwLDMzNC42MCBa
Il0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNTEuODAsNTA4LjAwKSBzaXplIDE1LjYw
eDI5IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tMzguNjAs
MzI5LjYwIEMtMzguNjAsMzI5LjYwLC0zNS4yMCwzMTIuMjAsLTM0LjQwLDMxMS40MCBDLTM0LjQw
LDMxMS40MCwtMzIuNjAsMzA4LjAwLC0zNS40MCwzMTEuMjAgQy0zNS40MCwzMTEuMjAsLTQ0LjIw
LDMzMC40MCwtNDguMjAsMzM3LjAwIEMtNDguMjAsMzM3LjAwLC00MC4yMCwzMjcuODAsLTM4LjYw
LDMyOS42MCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNTEuODAsNTA4LjAwKSBz
aXplIDE1LjYweDI5LjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2Rh
dGE9Ik0tMzguNjAsMzI5LjYwIEMtMzguNjAsMzI5LjYwLC0zNS4yMCwzMTIuMjAsLTM0LjQwLDMx
MS40MCBDLTM0LjQwLDMxMS40MCwtMzIuNjAsMzA4LjAwLC0zNS40MCwzMTEuMjAgQy0zNS40MCwz
MTEuMjAsLTQ0LjIwLDMzMC40MCwtNDguMjAsMzM3LjAwIEMtNDguMjAsMzM3LjAwLC00MC4yMCwz
MjcuODAsLTM4LjYwLDMyOS42MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNDUu
NDAsNDkwLjYwKSBzaXplIDIxLjgweDI1LjgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSND
Q0NDQ0NdfV0gW2RhdGE9Ik0tNDQuNDAsMzEzLjAwIEMtNDQuNDAsMzEzLjAwLC0zMi44MCwyOTAu
NjAsLTU0LjYwLDMxNi40MCBDLTU0LjYwLDMxNi40MCwtNDMuNjAsMzA2LjYwLC00NC40MCwzMTMu
MDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjQwLjIwLDQ3MC44MCkgc2l6ZSAx
NS42MHgzMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTU5
LjgwLDI5OC40MCBDLTU5LjgwLDI5OC40MCwtNTUuMDAsMjc5LjYwLC01Mi40MCwyNzkuODAgQy01
Mi40MCwyNzkuODAsLTQ0LjIwLDI3MC44MCwtNTAuODAsMjgxLjQwIEMtNTAuODAsMjgxLjQwLC01
Ni44MCwyOTEuMDAsLTU2LjIwLDMwMC44MCBDLTU2LjIwLDMwMC44MCwtNTYuODAsMjkxLjIwLC01
OS44MCwyOTguNDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNTU2LDQ3My41MCkg
c2l6ZSAxNngyNS41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRh
PSJNMjcwLjUwLDI4Ny4wMCBDMjcwLjUwLDI4Ny4wMCwyNTguNTAsMjc3LjAwLDI1Ni4wMCwyNzMu
NTAgQzI1Ni4wMCwyNzMuNTAsMjY5LjUwLDI5Mi4wMCwyNjkuNTAsMjk5LjAwIEMyNjkuNTAsMjk5
LjAwLDI3Mi4wMCwyOTEuNTAsMjcwLjUwLDI4Ny4wMCBaIl0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvaGl4aWUv
cGVyZi8wMDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5LDcgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
NDkxLjYyLDI3My40NCkgc2l6ZSAyMi45M3gzMC44NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJNNDkzLjA0LDIwNC4yNiBMNDkxLjgyLDIwMi40OSBMNDkx
Ljc5LDIwMS41NSBMNDkxLjc2LDIwMC4xMiBMNDkxLjcyLDE5OC4wOCBMNDkxLjcyLDE5Ny4wNiBM
NDkxLjcyLDE5Ni42MiBMNDkxLjczLDE5NS43OCBMNDkxLjc0LDE5NC41NiBMNDkxLjc0LDE5NC4w
NSBMNDkzLjM5LDE5MS41OSBMNDkzLjg0LDE5MS4wOCBMNDk0LjE1LDE5MC45OCBMNDk1LjM2LDE5
MC45MCBMNDk1LjcwLDE5MC43OCBMNDk1Ljk5LDE5MC4zNiBMNDk2LjUwLDE4OS44NiBMNDk2Ljg5
LDE4OS42NSBMNDk3LjQ1LDE4OS40MyBMNDk4LjA3LDE4OS4zNCBMNDk5Ljc3LDE4OS4zOSBMNTAw
LjU3LDE4OS4zOCBMNTAxLjM4LDE4OC40OCBMNTAyLjk0LDE4Ni43OSBMNTA3LjAzLDE4Mi41OCBM
NTA2Ljc5LDE4Mi40MyBMNTA0LjkyLDE4Mi40NyBMNTAzLjQ3LDE4MS45OSBMNDk5LjIxLDE4MC41
NSBMNDk4LjY3LDE4MC4zNCBMNDk4LjA0LDE4MC4wMiBMNDk3LjQ0LDE3OS40NyBMNDk2LjcxLDE3
OC42NyBMNDk2LjEyLDE3Ny44MyBMNDk1LjY5LDE3Ny4xMCBMNDk1LjYxLDE3Ni42OSBMNDk1Ljk3
LDE3NS44OCBMNDk2LjMxLDE3NS4zMSBMNDk2LjY4LDE3NC44NSBMNDk2LjgwLDE3NC41OSBMNDk2
Ljk1LDE3NC42MyBMNDk3Ljg5LDE3NS43NyBMNDk4LjQ3LDE3Ni4zOSBMNDk4LjcxLDE3Ni43NyBM
NDk4Ljk4LDE3Ni45OCBMNDk5LjM1LDE3Ni45MSBMNDk5Ljc3LDE3Ni45MSBMNTAwLjIzLDE3Ni45
NCBMNTAwLjYxLDE3Ni44NyBMNTAxLjE4LDE3Ni42MCBMNTAyLjAxLDE3Ni4xNyBMNTAyLjYwLDE3
Ni4wMiBMNTAzLjAwLDE3Ni4xMSBMNTAzLjc2LDE3Ni4zOCBMNTA0LjMwLDE3Ni4zMSBMNTA0Ljg2
LDE3NS45OCBMNTA1LjY0LDE3NS40MiBMNTA1Ljg5LDE3NS4yOSBMNTA2LjM0LDE3NS4zMyBMNTA2
LjgyLDE3NS40MyBMNTA3LjI0LDE3NS4zOSBMNTA4LjQzLDE3NC45MCBMNTA4LjcyLDE3NC45MyBM
NTA5LjQwLDE3NS4xMyBMNTEwLjE0LDE3NS4xMCBMNTEwLjkwLDE3NC45MSBMNTExLjg3LDE3NC41
OSBMNTEyLjc3LDE3My45MiBMNTEzLjI0LDE3My41NCBMNTEzLjg0LDE3My42OSBMNTE0LjIzLDE3
My45MCBMNTE0LjMxLDE3My45MiBMNTE0LjQ2LDE3NC4xOCBMNTE0LjA1LDE3NS4xMCBMNTE0LjA3
LDE3NS42NyBMNTE0LjIwLDE3Ni4yOSBMNTE0LjAzLDE3Ni43NCBMNTEzLjY2LDE3Ny4yNSBMNTEz
LjYzLDE3Ny45MyBMNTEzLjU5LDE3OC43NiBMNTEzLjQyLDE3OS4yNyBMNTEyLjE2LDE4MS41MyBM
NTExLjMyLDE4Mi4zMiBMNTExLjE5LDE4Mi42MyBMNTExLjMwLDE4Mi45OSBMNTEwLjQwLDE4NC41
NiBMNTA5LjU3LDE4NS44MyBMNTA5LjM2LDE4Ni43NyBMNTA5LjAwLDE4Ny40MSBMNTA4LjI5LDE4
OC41MyBMNTA3LjQyLDE4OS43MiBMNTA2LjI2LDE5MS4yMSBMNTA1Ljg4LDE5MS42NSBMNTAzLjYw
LDE5NC4xNiBMNTAxLjc4LDE5NS43MSBMNDk5LjYyLDE5Ni44NCBMNDk5LjAyLDE5Ny4yMiBMNDk3
Ljc0LDE5OC4zMSBMNDk2LjAwLDIwMC4wNiBMNDk1Ljk0LDIwMC4xMiBMNDk0Ljg5LDIwMS4yMiBM
NDkzLjY1LDIwMi43OSBMNDkzLjA0LDIwMy42MyBMNDkzLjE0LDIwMy45OCBMNDkzLjA1LDIwNC4y
NiBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNjIuNjEsMjc1LjkzKSBzaXplIDIu
MjV4MS45NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lk
dGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJN
MjY0Ljc3LDE3Ni4wNCBMMjY0LjY0LDE3Ni4yNiBMMjY0LjUyLDE3Ni4zMyBMMjY0LjUwLDE3Ni40
NyBMMjY0LjU0LDE3Ni43MiBMMjY0LjQ4LDE3Ni44MCBMMjY0LjYwLDE3Ny4xOCBMMjY0LjU2LDE3
Ny42MCBMMjY0LjExLDE3Ny43NiBMMjYzLjk4LDE3Ny43NSBMMjYzLjgzLDE3Ny43OSBMMjYzLjM1
LDE3Ny43NSBMMjYzLjE2LDE3Ny43OSBMMjYzLjA3LDE3Ny43NCBMMjYyLjcxLDE3Ny43NCBMMjYy
LjY5LDE3Ny42OCBMMjYyLjczLDE3Ny42MSBMMjYyLjkzLDE3Ny41OCBMMjYzLjE2LDE3Ny40NSBM
MjYzLjE4LDE3Ny4zNiBMMjYzLjI4LDE3Ny4zOCBMMjYzLjQ0LDE3Ny4zOSBMMjYzLjU3LDE3Ny4y
NSBMMjYzLjQ4LDE3Ni45NyBMMjYzLjUyLDE3Ni44NCBMMjYzLjU1LDE3Ni42NiBMMjYzLjQ4LDE3
Ni41MyBMMjYzLjM5LDE3Ni40MCBMMjYzLjExLDE3Ni4zNSBMMjYzLjIzLDE3Ni4yNiBMMjYzLjM5
LDE3Ni4yNCBMMjYzLjYyLDE3Ni4yMSBMMjYzLjczLDE3Ni4xMiBMMjY0LjEyLDE3Ni4xNCBMMjY0
LjIzLDE3Ni4xMCBMMjY0LjUyLDE3Ni4wMyBMMjY0Ljc3LDE3Ni4wNCBaIl0KICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICg2NTMuOTksMjg4Ljg0KSBzaXplIDIuNjB4Mi40NCBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJNNjU0LjA4LDE5MC4xOSBMNjU0
LjI4LDE5MC4wNiBMNjU0LjkxLDE4OS45NSBMNjU1LjU3LDE4OS4wMSBMNjU1LjgxLDE4OC45NCBM
NjU1Ljc0LDE4OS4yMSBMNjU1Ljg2LDE4OS4yOSBMNjU2LjA1LDE4OS4yNSBMNjU2LjE2LDE4OS40
MiBMNjU2LjMxLDE4OS44NyBMNjU2LjI4LDE4OS45OCBMNjU2LjI3LDE5MC4yMyBMNjU2LjQ3LDE5
MC40MiBMNjU2LjQ5LDE5MC41MSBMNjU1LjI2LDE5MC45MyBMNjU0Ljg3LDE5MS4yMCBMNjU0LjU3
LDE5MC45MyBMNjU0LjQ1LDE5MC42NyBMNjU0LjIyLDE5MC42OCBMNjU0LjE2LDE5MC4zMSBMNjU0
LjA3LDE5MC4xOCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0NzQuNDEsMjg5Ljgy
KSBzaXplIDE5LjA2eDIxLjEyIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzgwODA4MF0g
W3N0cm9rZSB3aWR0aD0wLjIwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBd
fV0gW2RhdGE9Ik00OTMuMDQsMjA0LjI2IEw0OTIuNDQsMjA0LjY1IEw0OTEuODksMjA0LjgyIEw0
OTEuNTAsMjA0LjcxIEw0OTEuNDEsMjA1LjQ4IEw0OTEuMTMsMjA1Ljg1IEw0OTAuNDYsMjA1Ljk2
IEw0OTAuMDcsMjA2LjM1IEw0ODkuOTgsMjA2LjgzIEw0ODkuOTksMjA3LjE4IEw0ODkuNjMsMjA3
LjgwIEw0ODguNjcsMjA5LjE2IEw0ODguNzYsMjA5LjcwIEw0ODguNDIsMjEwLjM1IEw0ODguMTcs
MjEwLjYwIEw0ODcuODQsMjEwLjcwIEw0ODcuNzUsMjEwLjg1IEw0ODYuNjksMjEwLjA1IEw0ODQu
MjYsMjA4LjI5IEw0ODQuMTksMjA4LjA1IEw0ODQuMzAsMjA3LjUwIEw0ODQuMTcsMjA3LjEyIEw0
ODAuNjEsMjA1LjE0IEw0NzUuOTUsMjAyLjU3IEw0NzQuNTAsMjAyLjYwIEw0NzUuNjUsMjAwLjEy
IEw0NzUuNzUsMTk5LjkwIEw0NzYuNDEsMTk5LjA2IEw0NzcuMzksMTk4LjEyIEw0NzcuODcsMTk3
LjYwIEw0NzguMzAsMTk2LjkwIEw0NzguNDQsMTk2LjM0IEw0NzguNDAsMTk1LjY3IEw0NzguMTcs
MTk1LjA3IEw0NzcuOTUsMTk0LjcxIEw0NzcuMjIsMTkzLjY1IEw0NzcuMDQsMTkzLjE4IEw0Nzcu
MDIsMTkyLjMyIEw0NzYuODksMTkyLjA5IEw0NzYuNDEsMTkxLjYzIEw0NzYuMTEsMTkxLjE0IEw0
NzYuNzksMTkwLjM0IEw0NzcuMDgsMTkwLjAxIEw0NzcuNzUsMTkwLjA3IEw0NzguNTgsMTkwLjA2
IEw0NzkuNTksMTg5LjkzIEw0ODAuMDYsMTg5LjkxIEw0ODAuMTQsMTg5Ljk0IEw0ODAuNDYsMTkw
LjAxIEw0ODEuNTEsMTkwLjE2IEw0ODIuMjYsMTkwLjM1IEw0ODIuODYsMTkwLjY0IEw0ODUuMjIs
MTkyLjE3IEw0ODUuNTUsMTkyLjIxIEw0ODYuOTIsMTkyLjM0IEw0ODcuNTksMTkyLjU0IEw0ODgu
NDQsMTkyLjYzIEw0ODguNjAsMTkyLjUyIEw0ODkuMzEsMTkxLjc2IEw0ODkuNTcsMTkxLjU2IEw0
OTAuMjQsMTkxLjIyIEw0OTEuMTAsMTkwLjg2IEw0OTEuMzcsMTkwLjk2IEw0OTEuODMsMTkxLjMw
IEw0OTIuMjksMTkxLjQ4IEw0OTMuMzksMTkxLjU4IEw0OTEuNzQsMTk0LjA1IEw0OTEuNzQsMTk0
LjU2IEw0OTEuNzQsMTk1Ljc3IEw0OTEuNzIsMTk2LjYyIEw0OTEuNzIsMTk3LjA2IEw0OTEuNzIs
MTk4LjA4IEw0OTEuNzcsMjAwLjEyIEw0OTEuODAsMjAxLjU1IEw0OTEuODIsMjAyLjQ4IEw0OTMu
MDUsMjA0LjI2IFoiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDQ3NC40MSwyODkuODIp
IHNpemUgMTkuMDZ4MjEuMTEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODA4MDgwXSBb
c3Ryb2tlIHdpZHRoPTAuMjBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19
XSBbZGF0YT0iTTQ5My4wNCwyMDQuMjYgTDQ5Mi40NCwyMDQuNjUgTDQ5MS44OSwyMDQuODIgTDQ5
MS41MCwyMDQuNzEgTDQ5MS40MSwyMDUuNDggTDQ5MS4xMywyMDUuODUgTDQ5MC40NiwyMDUuOTYg
TDQ5MC4wNywyMDYuMzUgTDQ4OS45OCwyMDYuODMgTDQ4OS45OSwyMDcuMTggTDQ4OS42MywyMDcu
ODAgTDQ4OC42NywyMDkuMTYgTDQ4OC43NiwyMDkuNzAgTDQ4OC40MiwyMTAuMzUgTDQ4OC4xNywy
MTAuNjAgTDQ4Ny44NCwyMTAuNzAgTDQ4Ny43NSwyMTAuODUgTDQ4Ni42OSwyMTAuMDUgTDQ4NC4y
NiwyMDguMjkgTDQ4NC4xOSwyMDguMDUgTDQ4NC4zMCwyMDcuNTAgTDQ4NC4xNywyMDcuMTIgTDQ4
MC42MSwyMDUuMTQgTDQ3NS45NSwyMDIuNTcgTDQ3NC41MCwyMDIuNjAgTDQ3NS42NSwyMDAuMTIg
TDQ3NS43NSwxOTkuOTAgTDQ3Ni40MSwxOTkuMDYgTDQ3Ny4zOSwxOTguMTIgTDQ3Ny44NywxOTcu
NjAgTDQ3OC4zMCwxOTYuOTAgTDQ3OC40NCwxOTYuMzQgTDQ3OC40MCwxOTUuNjcgTDQ3OC4xNywx
OTUuMDcgTDQ3Ny45NSwxOTQuNzEgTDQ3Ny4yMiwxOTMuNjUgTDQ3Ny4wNCwxOTMuMTggTDQ3Ny4w
MiwxOTIuMzIgTDQ3Ni44OSwxOTIuMDkgTDQ3Ni40MSwxOTEuNjMgTDQ3Ni4xMSwxOTEuMTQgTDQ3
Ni43OSwxOTAuMzQgTDQ3Ny4wOCwxOTAuMDEgTDQ3Ny43NSwxOTAuMDcgTDQ3OC41OCwxOTAuMDYg
TDQ3OS41OSwxODkuOTMgTDQ4MC4wNiwxODkuOTEgTDQ4MC4xNCwxODkuOTQgTDQ4MC40NiwxOTAu
MDEgTDQ4MS41MSwxOTAuMTYgTDQ4Mi4yNiwxOTAuMzUgTDQ4Mi44NiwxOTAuNjQgTDQ4NS4yMiwx
OTIuMTcgTDQ4NS41NSwxOTIuMjEgTDQ4Ni45MiwxOTIuMzQgTDQ4Ny41OSwxOTIuNTQgTDQ4OC40
NCwxOTIuNjMgTDQ4OC42MCwxOTIuNTIgTDQ4OS4zMSwxOTEuNzYgTDQ4OS41NywxOTEuNTYgTDQ5
MC4yNCwxOTEuMjIgTDQ5MS4xMCwxOTAuODYgTDQ5MS4zNywxOTAuOTYgTDQ5MS44MywxOTEuMzAg
TDQ5Mi4yOSwxOTEuNDggTDQ5My4zOSwxOTEuNTggTDQ5MS43NCwxOTQuMDUgTDQ5MS43NCwxOTQu
NTYgTDQ5MS43NCwxOTUuNzcgTDQ5MS43MiwxOTYuNjIgTDQ5MS43MiwxOTcuMDYgTDQ5MS43Miwx
OTguMDggTDQ5MS43NywyMDAuMTIgTDQ5MS44MCwyMDEuNTUgTDQ5MS44MiwyMDIuNDggTDQ5My4w
NSwyMDQuMjYgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNDY2LjExLDI5MS4wNykg
c2l6ZSAxMi40M3gxMi41NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtz
dHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXX1d
IFtkYXRhPSJNNDY2LjIwLDIwMy4yNyBMNDY2LjM4LDIwMi45OCBMNDY2LjQ2LDIwMi43MSBMNDY2
LjQwLDIwMS45NiBMNDY2LjQzLDIwMS4yMyBMNDY2LjQxLDIwMC42MyBMNDY2LjUxLDIwMC4xMiBM
NDY2LjczLDE5OS4xMCBMNDY3LjEzLDE5OC40MiBMNDY3LjM4LDE5OC4xNCBMNDY4LjYyLDE5Ny4x
NCBMNDY5LjgyLDE5Ni4wOCBMNDcwLjAxLDE5NS42MiBMNDY5LjkwLDE5NS4zMiBMNDY5LjYzLDE5
NS4xMyBMNDY5LjE1LDE5NS4wOSBMNDY4Ljk2LDE5NS4wNyBMNDY4LjgzLDE5NC44MSBMNDY5LjA5
LDE5Mi45MyBMNDY5LjExLDE5Mi41MSBMNDY4Ljk1LDE5Mi4zMyBMNDY4Ljg4LDE5Mi4zMCBMNDY5
LjM4LDE5Mi4wNyBMNDY5Ljg0LDE5MS45OCBMNDcwLjM0LDE5MS45OSBMNDcxLjI4LDE5Mi4yMyBM
NDcyLjE5LDE5Mi4xOCBMNDczLjA3LDE5MS44NSBMNDczLjk1LDE5MS43MiBMNDc0LjI2LDE5MS44
MSBMNDc0LjU2LDE5Mi4wMSBMNDc0LjkzLDE5MS45OSBMNDc1LjU1LDE5MS42OCBMNDc2LjExLDE5
MS4xNCBMNDc2LjQyLDE5MS42MyBMNDc2Ljg5LDE5Mi4xMCBMNDc3LjAyLDE5Mi4zMiBMNDc3LjA1
LDE5My4xOCBMNDc3LjIyLDE5My42NSBMNDc3Ljk1LDE5NC43MiBMNDc4LjE3LDE5NS4wNyBMNDc4
LjQwLDE5NS42OCBMNDc4LjQ1LDE5Ni4zNCBMNDc4LjMwLDE5Ni45MCBMNDc3Ljg3LDE5Ny42MCBM
NDc3LjQwLDE5OC4xMiBMNDc2LjQxLDE5OS4wNiBMNDc1Ljc2LDE5OS45MCBMNDc1LjY1LDIwMC4x
MyBMNDc0LjUxLDIwMi42MSBMNDY5Ljg1LDIwMi42MSBMNDY4LjU3LDIwMi42NiBMNDY4LjI1LDIw
Mi42NyBMNDY3LjcwLDIwMy4wNyBMNDY3LjI0LDIwMy41MCBMNDY2LjgxLDIwMy41NCBMNDY2LjI2
LDIwMy4zMiBMNDY2LjIwLDIwMy4yOCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg2
MTIuMDIsMjg3LjYyKSBzaXplIDEwMS45MXgzNS42MyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAzNTAwXX1dIFtkYXRhPSJNNzEzLjYyLDIwNi4zMCBMNzEzLjc5LDIxNC4yNiBMNzEz
LjM1LDIxNS4wOSBMNzEzLjc4LDIxNi40NSBMNzEzLjgzLDIxNy4yNiBMNzEzLjgwLDIyMC43MCBM
NzEzLjI4LDIyMC4xOCBMNzEyLjM1LDIxOS4zMCBMNzExLjY0LDIxOC40MCBMNzExLjIzLDIxOC4z
NCBMNzEwLjQ2LDIxOC40NCBMNzA5LjcyLDIxOC41OCBMNzA5LjI4LDIxOC41NyBMNzA5LjM3LDIx
OC4xOSBMNzA5LjgxLDIxNy41NCBMNzA5LjgyLDIxNy4yNiBMNzA5LjI1LDIxNi43MyBMNzA4LjY5
LDIxNS45NiBMNzA4LjcyLDIxNS43MyBMNzA5LjE2LDIxNS44NCBMNzA5LjQwLDIxNS44MCBMNzA5
LjUzLDIxNS42OSBMNzA5LjA2LDIxNS4yOCBMNzA4LjQ3LDIxNC44NyBMNzA4LjE4LDIxNC40OSBM
NzA3LjkxLDIxMy44NCBMNzA2Ljg1LDIxMi4xNSBMNzA2LjM0LDIxMS43NiBMNzA1Ljg4LDIxMS40
NyBMNzA1LjI3LDIxMS4yOCBMNzAzLjI5LDIxMC42OCBMNzAyLjAzLDIxMC4zMCBMNzAxLjQyLDIx
MC4yMyBMNzAwLjcxLDIwOS45OSBMNzAwLjA4LDIwOS42NyBMNzAwLjE2LDIwOS4zMyBMNzAwLjA2
LDIwOS4wNiBMNjk5Ljg2LDIwOS4wMyBMNjk5LjI1LDIwOS4xMyBMNjk4Ljg2LDIwOS4wNiBMNjk4
LjQ1LDIwOC44NyBMNjk4LjA0LDIwOC40NyBMNjk3LjgzLDIwNy44OSBMNjk3Ljk2LDIwNy40MCBM
Njk3LjgxLDIwNy4xNyBMNjk3LjYyLDIwNy4yOCBMNjk3LjM5LDIwNy42OCBMNjk3LjI2LDIwOC4z
NCBMNjk3LjAxLDIwOC45NSBMNjk2LjY4LDIwOS4yMiBMNjk1Ljk4LDIwOS41NyBMNjk1LjgzLDIw
OS40MSBMNjk1LjUwLDIwOC43MyBMNjk1LjUyLDIwOC41NyBMNjk1LjkwLDIwOC4zMCBMNjk1Ljc1
LDIwNy44OCBMNjk1LjU4LDIwNy42NCBMNjk1LjAxLDIwNy4yNSBMNjk0LjMxLDIwNi44NSBMNjkz
Ljk3LDIwNi44MCBMNjkzLjkxLDIwNi41OCBMNjkzLjk1LDIwNi4zNiBMNjk0LjM2LDIwNi4zMSBM
Njk0Ljc1LDIwNi40MCBMNjk1LjM1LDIwNi42NCBMNjk1LjUxLDIwNi42MSBMNjk1Ljg4LDIwNi4y
NyBMNjk2LjQwLDIwNS44NiBMNjk2LjU1LDIwNS45MSBMNjk2Ljg1LDIwNi4xOCBMNjk3Ljg3LDIw
Ni4xNCBMNjk4LjAxLDIwNi4wMSBMNjk4LjEwLDIwNS40OSBMNjk4LjA0LDIwNS4wOCBMNjk3Ljgw
LDIwNS4xMSBMNjk3LjQ1LDIwNS4zMSBMNjk2Ljg1LDIwNS4zOCBMNjk2LjE5LDIwNS4zNCBMNjk1
LjQzLDIwNS4zOCBMNjk0LjQwLDIwNS4zMCBMNjkzLjk5LDIwNC45OSBMNjkzLjg1LDIwNC43OSBM
NjkzLjcxLDIwNC4xMyBMNjkzLjUxLDIwMy43OSBMNjkzLjA5LDIwMy42MyBMNjkxLjg0LDIwMy41
MSBMNjkyLjEwLDIwMy4yMSBMNjkyLjE2LDIwMi45NiBMNjkyLjE2LDIwMi4zNyBMNjkyLjYzLDIw
Mi4zNCBMNjkzLjU1LDIwMS45MyBMNjk0LjA0LDIwMS41NCBMNjk0LjQ4LDIwMS4yNiBMNjk0Ljgz
LDIwMS4yOSBMNjk1LjIzLDIwMS4zNSBMNjk2LjczLDIwMi4wMCBMNjk3LjI0LDIwMi4xNyBMNjk4
LjE1LDIwMi4zMiBMNjk4LjU0LDIwMy4wMyBMNjk4LjY3LDIwMy40MiBMNjk4LjM5LDIwNC4xNyBM
Njk4LjMyLDIwNC41NSBMNjk4LjU0LDIwNC45MyBMNjk4LjY2LDIwNS40MyBMNjk4Ljc4LDIwNS45
MSBMNjk4Ljk5LDIwNi40MyBMNjk5LjE4LDIwNi42MyBMNjk5LjM3LDIwNi43NSBMNjk5LjYwLDIw
Ni4xMCBMNjk5LjY4LDIwNi4yMiBMNjk5Ljc3LDIwNi4zNiBMNzAwLjA4LDIwNy40MyBMNzAwLjI1
LDIwNy42MCBMNzAwLjQ4LDIwNy43OCBMNzAwLjc4LDIwNy45MCBMNzAxLjEzLDIwNy45NSBMNzAx
LjcxLDIwNy43NSBMNzAyLjIyLDIwNy4zMSBMNzAzLjQxLDIwNS40NiBMNzAzLjc2LDIwNS40NSBM
NzA0Ljg0LDIwNS4yMyBMNzA1LjIyLDIwNS4wOSBMNzA1LjI2LDIwNS4wMCBMNzA1LjI3LDIwNC40
OSBMNzA1LjQ5LDIwNC4zMiBMNzA2LjU5LDIwMy43MiBMNzA2LjkzLDIwMy42NyBMNzA4LjY2LDIw
NC40MyBMNzEwLjc5LDIwNS4zNyBMNzEyLjMzLDIwNS44OSBMNzEzLjYzLDIwNi4zMCBaIE02OTEu
MjEsMjA4LjcxIEw2OTAuODIsMjA4LjY0IEw2OTAuMTMsMjA4LjI2IEw2ODkuMjgsMjA3LjYxIEw2
ODguOTgsMjA3LjQ3IEw2ODguNTcsMjA3LjUwIEw2ODguNTEsMjA3LjYwIEw2ODguNTMsMjA4LjA1
IEw2ODguMzMsMjA4LjA4IEw2ODcuMzEsMjA3LjY3IEw2ODcuMDUsMjA3LjMyIEw2ODYuNDcsMjA3
LjUyIEw2ODYuMTgsMjA3Ljc5IEw2ODUuODYsMjA3Ljk3IEw2ODUuNjcsMjA3Ljc5IEw2ODUuMzYs
MjA3LjM0IEw2ODUuMTEsMjA2Ljg4IEw2ODUuMzYsMjA2LjY5IEw2ODUuNjYsMjA2LjY2IEw2ODUu
OTQsMjA2LjcxIEw2ODcuMDQsMjA2Ljc1IEw2ODcuNjEsMjA3LjA2IEw2ODcuOTMsMjA3LjA1IEw2
ODguNDgsMjA2LjcyIEw2ODguODksMjA2LjcxIEw2ODkuNDIsMjA2LjgzIEw2OTAuMjgsMjA3LjA0
IEw2OTAuNzgsMjA3LjQ0IEw2OTEuMDcsMjA3LjgzIEw2OTEuMjUsMjA4LjQ2IEw2OTEuMjAsMjA4
LjcxIFogTTY4Mi4wNCwyMDguNzAgTDY4MS42MywyMDguNjQgTDY4MC45MSwyMDguMTUgTDY4MC42
OCwyMDcuNzAgTDY4MC44MywyMDcuNDIgTDY4MS40MywyMDcuMzIgTDY4Mi4xOSwyMDcuMjcgTDY4
Mi40NCwyMDcuNDAgTDY4Mi43MCwyMDcuNzEgTDY4My4wMSwyMDcuOTEgTDY4My4xMiwyMDguMTMg
TDY4My4wNSwyMDguMzYgTDY4Mi45MiwyMDguNDEgTDY4Mi4wNSwyMDguNzAgWiBNNzA3LjY0LDIx
OS4xMCBMNzA2LjUzLDIxOC44OSBMNzA3LjExLDIxNy44NSBMNzA3LjY3LDIxNy4xNSBMNzA4LjA4
LDIxNi44OCBMNzA4LjUxLDIxNi44MCBMNzA5LjAzLDIxNy4xNCBMNzA5LjIzLDIxNy4zOCBMNzA5
LjEyLDIxNy41NyBMNzA4LjgwLDIxOC4yMCBMNzA4LjU0LDIxOC4zNyBMNzA3LjkxLDIxOS4wNyBM
NzA3LjY0LDIxOS4xMCBaIE02NzMuODAsMjE4LjcwIEw2NzMuMjMsMjE4Ljk2IEw2NzMuMjcsMjE5
LjE5IEw2NzIuMzgsMjE5LjUyIEw2NzEuODAsMjE5Ljc5IEw2NzEuNDYsMjE5Ljc1IEw2NzEuMDEs
MjIwLjA4IEw2NzAuNTEsMjIwLjAxIEw2NzAuMDgsMjE5LjkwIEw2NjkuNzAsMjIwLjE1IEw2Njku
NDAsMjIwLjIxIEw2NjkuMDQsMjIwLjE0IEw2NjguNDYsMjE5Ljk0IEw2NjcuNDIsMjE5LjkwIEw2
NjcuMTAsMjE5Ljk1IEw2NjYuODksMjE5LjM4IEw2NjYuOTIsMjE5LjE0IEw2NjcuMzAsMjE4Ljk0
IEw2NjcuOTcsMjE4Ljc0IEw2NjguNTAsMjE4LjczIEw2NjkuNjQsMjE5LjE0IEw2NzAuMDksMjE5
LjQ2IEw2NzAuNDIsMjE5LjQ3IEw2NzAuNzUsMjE5LjE4IEw2NzEuMjEsMjE5LjE2IEw2NzEuNjQs
MjE5LjA5IEw2NzIuMDYsMjE5LjI4IEw2NzIuNTIsMjE5LjE2IEw2NzIuNDUsMjE4Ljk0IEw2NzIu
ODcsMjE4Ljc1IEw2NzMuMjgsMjE4LjUyIEw2NzMuMzcsMjE4LjM3IEw2NzMuMjksMjE4LjI1IEw2
NzMuMTEsMjE4LjI3IEw2NzMuMjMsMjE4LjA3IEw2NzMuMzksMjE4LjA5IEw2NzMuNjEsMjE4LjE4
IEw2NzMuNzgsMjE4LjQwIEw2NzMuODAsMjE4LjcxIFogTTY2Mi42NiwyMTkuMDcgTDY2Mi4zNSwy
MTguOTcgTDY2Mi4xNSwyMTguODQgTDY2Mi4wOCwyMTguNjcgTDY2Mi4xMSwyMTguNDYgTDY2Mi4z
NywyMTguMjYgTDY2Mi42OCwyMTguMjIgTDY2Mi44NSwyMTguMzIgTDY2Mi45MSwyMTguNTMgTDY2
My4wOSwyMTguNjMgTDY2My40MCwyMTguNDggTDY2My43MywyMTguNTkgTDY2My44NCwyMTguNzQg
TDY2My44MywyMTkuMTkgTDY2NC4wMSwyMTkuMDQgTDY2NC4xNywyMTguNzQgTDY2NC40OSwyMTgu
NzEgTDY2NC43MiwyMTguOTMgTDY2NC43NCwyMTkuMzYgTDY2NC45MiwyMTkuMzIgTDY2NC45OCwy
MTkuNDMgTDY2NC45NiwyMTkuODIgTDY2NC42NCwyMTkuNjEgTDY2NC4zMywyMTkuNTUgTDY2NC4x
OSwyMTkuNjEgTDY2NC4yNiwyMTkuNzcgTDY2My40MSwyMTkuOTIgTDY2My4yNywyMTkuODMgTDY2
My4zNiwyMTkuNTYgTDY2My4yOCwyMTkuNTEgTDY2Mi45NywyMTkuNzcgTDY2Mi43NCwyMjAuMDMg
TDY2Mi40NSwyMTkuOTggTDY2MS44MiwyMjAuMjEgTDY2MS4xOSwyMjAuNDEgTDY2MC44NCwyMjAu
MzYgTDY2MC41MywyMjAuNDggTDY2MC4xMywyMjAuNDEgTDY2MC4wMywyMjAuMzQgTDY1OS44Mywy
MjAuMjIgTDY1OS43NywyMTkuOTQgTDY1OS45MSwyMTkuNjggTDY1OS44MywyMTkuNDIgTDY2MC4w
MiwyMTkuMzEgTDY2MC4yNSwyMTkuMjAgTDY2MC40OCwyMTkuMDQgTDY2MC43MSwyMTkuMTEgTDY2
MS4zMiwyMTkuMTIgTDY2MS43MiwyMTkuMjMgTDY2MS44MSwyMTkuNTEgTDY2Mi4xMCwyMTkuNjIg
TDY2Mi4zOSwyMTkuNjcgTDY2Mi41OCwyMTkuNDEgTDY2Mi44NywyMTkuNDAgTDY2Mi45MiwyMTku
MjEgTDY2Mi42NiwyMTkuMDYgWiBNNjU2LjI5LDIxOS42MCBMNjU1LjkwLDIxOS4zMiBMNjU1LjA1
LDIxOC44NyBMNjU0LjkzLDIxOC42MCBMNjU1LjM0LDIxOC42MCBMNjU1Ljg2LDIxOC40MiBMNjU2
LjMyLDIxOC4zOSBMNjU3LjI1LDIxOC45MSBMNjU2LjkxLDIxOS4wOCBMNjU2LjY4LDIxOS4xOCBM
NjU2LjI5LDIxOS42MCBaIE02MzEuMDUsMjAwLjEyIEw2MzAuOTksMjAwLjM1IEw2MzAuNTgsMjAw
Ljc5IEw2MzAuMzgsMjAxLjIwIEw2MjkuOTksMjAxLjU1IEw2MzAuMTYsMjAxLjkxIEw2MzAuMzIs
MjAyLjA3IEw2MzEuMTMsMjAyLjU3IEw2MzEuOTYsMjAyLjYyIEw2MzIuMjAsMjAyLjc0IEw2MzIu
MzUsMjAzLjEyIEw2MzIuNDgsMjAzLjg4IEw2MzIuNDcsMjA0LjI5IEw2MzIuNzQsMjA0LjcxIEw2
MzIuOTUsMjA0Ljg0IEw2MzMuNDksMjA0Ljg4IEw2MzMuMDQsMjA1LjgxIEw2MzMuMjAsMjA2LjAy
IEw2MzMuOTAsMjA1LjU3IEw2MzQuNzIsMjA1LjgyIEw2MzQuOTAsMjA1Ljg3IEw2MzUuMTYsMjA2
LjEyIEw2MzUuMzEsMjA2LjU2IEw2MzYuMDEsMjA3LjIzIEw2MzUuNDksMjA5LjIxIEw2MzUuNDUs
MjA5LjY2IEw2MzUuNjgsMjEwLjYxIEw2MzUuNjYsMjExLjA1IEw2MzUuNjgsMjExLjcxIEw2MzUu
NjgsMjExLjk4IEw2MzUuNTMsMjEzLjA0IEw2MzUuNDQsMjEzLjIwIEw2MzUuMzQsMjEzLjI3IEw2
MzQuOTcsMjEzLjAxIEw2MzQuNTksMjEyLjQ5IEw2MzQuMzMsMjEyLjQxIEw2MzQuMDcsMjEyLjg5
IEw2MzMuOTgsMjEzLjE2IEw2MzIuOTQsMjEyLjU0IEw2MzIuNzIsMjEyLjYyIEw2MzMuMTIsMjEz
LjM3IEw2MzIuOTUsMjEzLjU4IEw2MzIuNzUsMjEzLjM5IEw2MzEuNDEsMjExLjk2IEw2MzAuNjMs
MjExLjIwIEw2MjkuNjIsMjEwLjM0IEw2MjguMjcsMjA5LjM4IEw2MjcuODgsMjA4LjkzIEw2Mjcu
NjgsMjA4LjQ0IEw2MjcuNDksMjA4LjEwIEw2MjYuNDksMjA3LjQ3IEw2MjUuNzksMjA2Ljc5IEw2
MjQuNjAsMjA1LjI4IEw2MjQuNTMsMjA0LjkzIEw2MjQuNTcsMjA0LjU5IEw2MjQuMjUsMjAzLjcx
IEw2MjMuNDEsMjAyLjI1IEw2MjIuNzQsMjAxLjIwIEw2MjIuMTMsMjAwLjQzIEw2MjEuNzYsMjAw
LjEzIEw2MjEuNDcsMTk5Ljg5IEw2MjAuODMsMTk5LjYwIEw2MjAuNTgsMTk4Ljg1IEw2MTkuODks
MTk3LjA0IEw2MTkuOTYsMTk2LjgwIEw2MTkuODUsMTk2LjQ5IEw2MTkuNjksMTk2LjMwIEw2MTku
MDMsMTk1Ljc5IEw2MTguMzIsMTk1LjQwIEw2MTcuNzgsMTk1LjE5IEw2MTcuNDYsMTk1LjA5IEw2
MTcuMzQsMTk0LjczIEw2MTcuMjcsMTk0LjAwIEw2MTcuMDksMTkzLjU5IEw2MTYuNzAsMTkzLjEx
IEw2MTUuODgsMTkyLjI4IEw2MTUuNTEsMTkxLjg2IEw2MTQuNzksMTkxLjk5IEw2MTQuMTgsMTkx
LjMxIEw2MTMuNTMsMTkwLjcwIEw2MTIuOTQsMTkwLjAxIEw2MTIuMzgsMTg5LjA3IEw2MTIuMTUs
MTg4LjQzIEw2MTIuMTEsMTg4LjA3IEw2MTIuMTcsMTg3Ljg3IEw2MTIuMzIsMTg3Ljc2IEw2MTIu
NzIsMTg3LjcxIEw2MTMuMDksMTg3LjgxIEw2MTMuMzQsMTg3Ljk0IEw2MTMuOTcsMTg4LjUwIEw2
MTQuMzMsMTg4LjY1IEw2MTUuMjUsMTg4LjgxIEw2MTUuNTksMTg4Ljg0IEw2MTYuMTMsMTg4Ljc0
IEw2MTYuNTksMTg4LjU5IEw2MTYuOTksMTg4LjU4IEw2MTcuMzEsMTg4Ljg5IEw2MTguMjMsMTkw
LjA0IEw2MTguNzQsMTkwLjM1IEw2MTguODAsMTkwLjUxIEw2MTguNjgsMTkxLjA1IEw2MTkuNzUs
MTkxLjk2IEw2MjAuNDksMTkyLjQ2IEw2MjEuNjcsMTkzLjE0IEw2MjIuMzUsMTkzLjQ3IEw2MjIu
NDksMTkzLjY0IEw2MjIuNTIsMTk0LjIzIEw2MjIuNTAsMTk0LjM4IEw2MjMuMDcsMTk0LjQ0IEw2
MjMuODIsMTk1LjM4IEw2MjQuNDMsMTk1LjkzIEw2MjQuNzAsMTk1LjkyIEw2MjQuNzAsMTk1Ljcy
IEw2MjQuNTgsMTk1LjQ5IEw2MjQuNjUsMTk1LjI1IEw2MjUuMTYsMTk1LjQ2IEw2MjUuNjMsMTk2
LjI3IEw2MjYuMDgsMTk2LjY1IEw2MjYuNTIsMTk2LjcwIEw2MjYuOTUsMTk2LjkwIEw2MjcuMjYs
MTk3LjI3IEw2MjcuNTQsMTk4LjAwIEw2MjcuODYsMTk4LjQ0IEw2MjguMjksMTk4LjcxIEw2Mjgu
ODAsMTk4LjgzIEw2MjkuNTcsMTk4LjkxIEw2MzAuMDAsMTk5LjA3IEw2MzAuNDksMTk5LjQ1IEw2
MzEuMDcsMjAwLjA1IEw2MzEuMDUsMjAwLjEzIFogTTY4NC4yMCwyMDAuMTIgTDY4NC4xOSwxOTku
OTUgTDY4My43OCwxOTguOTAgTDY4My45NiwxOTguMzQgTDY4My44OCwxOTguMjAgTDY4My43NCwx
OTcuOTEgTDY4My43OCwxOTcuNTggTDY4NC4wNiwxOTYuNjkgTDY4NC41OCwxOTUuODcgTDY4NC44
NCwxOTYuMjQgTDY4NC45OSwxOTYuNTkgTDY4NC45NCwxOTYuODggTDY4NC42OSwxOTcuMjcgTDY4
NC4zMywxOTguMDMgTDY4NC4zOSwxOTguMzYgTDY4NC41OCwxOTguNTAgTDY4NC42OCwxOTguMzYg
TDY4NS4xMSwxOTcuOTUgTDY4NS4yNSwxOTcuNDMgTDY4NS40MywxOTcuMjggTDY4Ni4yMywxOTYu
ODcgTDY4Ni4zOCwxOTcuMDEgTDY4Ni4zMiwxOTcuMjcgTDY4Ni40MywxOTcuODIgTDY4Ni4wNywx
OTguMDMgTDY4NS42MSwxOTguMzggTDY4NS40NSwxOTguNjkgTDY4NS42MCwxOTguNzkgTDY4Ni4w
NSwxOTguOTIgTDY4Ni40NSwxOTkuMTMgTDY4Ni40MywxOTkuMjcgTDY4Ni41OSwxOTkuNjIgTDY4
NS45MCwxOTkuNDcgTDY4NS40NywxOTkuMzIgTDY4NS4xMCwxOTkuMjcgTDY4NC44MCwxOTkuNDMg
TDY4NC43MiwxOTkuODcgTDY4NC43NywyMDAuMTMgTDY4NC45MCwyMDAuODEgTDY4NS4yNCwyMDEu
NDMgTDY4NS42NSwyMDEuODcgTDY4NS44NCwyMDIuMTUgTDY4NS42OSwyMDIuMzcgTDY4NS40Mywy
MDIuMTUgTDY4NC43NiwyMDEuNTEgTDY4NC4yMSwyMDAuNzcgTDY4NC4yMSwyMDAuMzggTDY4NC4y
MCwyMDAuMTMgWiBNNjM3LjM2LDIwNy4xNCBMNjM2LjUwLDIwNi43NSBMNjM2LjEyLDIwNi41MSBM
NjM1LjkyLDIwNi4xNCBMNjM1Ljg3LDIwNS43OCBMNjM1LjcyLDIwNS4zOCBMNjM1LjIxLDIwNC45
OSBMNjM0LjkyLDIwNC44OSBMNjM0LjQ3LDIwNC45MiBMNjM0LjM1LDIwNC43OCBMNjM0LjYzLDIw
NC4xMyBMNjM0Ljg2LDIwMy44OSBMNjM1LjM3LDIwNC40NCBMNjM1LjUyLDIwMy45NyBMNjM1Ljgz
LDIwMy43MCBMNjM1LjkwLDIwNC4xMCBMNjM2LjIxLDIwNC45OSBMNjM2Ljg2LDIwNS44MCBMNjM3
LjU2LDIwNi4xMSBMNjM3LjI5LDIwNi4zMCBMNjM3LjE4LDIwNi41OCBMNjM3LjM2LDIwNy4xNCBa
IE02MzQuMzIsMjE1LjM1IEw2MzQuMjMsMjE1LjE2IEw2MzQuNTUsMjE1LjEzIEw2MzQuOTUsMjE1
LjIzIEw2MzUuMzIsMjE1LjEwIEw2MzUuMzksMjE0LjU3IEw2MzUuNDAsMjE0LjQzIEw2MzUuNzEs
MjE0LjQ5IEw2MzUuNjcsMjEzLjk5IEw2MzUuODksMjEzLjc2IEw2MzUuOTgsMjEzLjQ4IEw2MzYu
MTksMjEzLjYwIEw2MzYuODIsMjEzLjcxIEw2MzcuMjksMjEzLjY3IEw2MzcuNTMsMjE0LjExIEw2
MzguMDUsMjE0LjAyIEw2MzguMjEsMjEzLjcyIEw2MzguMjMsMjEzLjQ4IEw2MzguNDksMjEzLjYw
IEw2MzkuMTEsMjEzLjc2IEw2MzkuNTIsMjE0LjIwIEw2MzkuODYsMjE0LjE1IEw2NDAuMDYsMjE0
LjQzIEw2NDAuNTEsMjE0LjQwIEw2NDAuOTYsMjE0LjIxIEw2NDEuMjYsMjE0LjQyIEw2NDEuNjMs
MjE0Ljk1IEw2NDEuODEsMjE1LjQ3IEw2NDIuNzAsMjE1LjUxIEw2NDMuMTYsMjE1LjcwIEw2NDMu
NjUsMjE1LjYyIEw2NDUuMDgsMjE1Ljc0IEw2NDUuNTYsMjE1LjcxIEw2NDUuOTAsMjE1LjU0IEw2
NDYuMTEsMjE0Ljg5IEw2NDYuMzksMjE0LjYyIEw2NDYuODMsMjE0LjYxIEw2NDcuMDUsMjE0Ljgy
IEw2NDcuMzQsMjE1LjMxIEw2NDcuOTgsMjE1LjQ0IEw2NDguNTEsMjE1LjQ3IEw2NDkuMjgsMjE1
LjU1IEw2NTAuMDgsMjE1LjcwIEw2NTAuMzcsMjE1Ljk0IEw2NTAuNjYsMjE2LjIzIEw2NTAuNTgs
MjE2LjY4IEw2NTAuODUsMjE3LjE0IEw2NTAuOTcsMjE3LjI0IEw2NTEuODUsMjE3LjU5IEw2NTIu
MjcsMjE3LjY2IEw2NTIuOTMsMjE3LjY3IEw2NTMuMzgsMjE3LjQ5IEw2NTMuNzksMjE3LjQ3IEw2
NTQuNDIsMjE3LjcxIEw2NTQuNDcsMjE3LjkxIEw2NTQuMjIsMjE4LjMzIEw2NTQuMDYsMjE4Ljgz
IEw2NTQuNjQsMjE5LjYwIEw2NTQuMTQsMjE5LjM5IEw2NTMuMzQsMjE5LjIwIEw2NTIuNzQsMjE4
Ljk0IEw2NTEuODUsMjE4LjYzIEw2NTEuMzIsMjE4LjY0IEw2NTAuNzMsMjE4Ljg5IEw2NTAuMzks
MjE4Ljk1IEw2NDkuNjcsMjE4Ljg1IEw2NDguMjIsMjE4LjcxIEw2NDYuNzUsMjE4LjU3IEw2NDUu
OTQsMjE4LjMyIEw2NDUuMTAsMjE3Ljg0IEw2NDQuMDEsMjE3LjUxIEw2NDIuODgsMjE3LjI0IEw2
NDEuOTMsMjE3LjIwIEw2NDEuMzgsMjE3LjUwIEw2NDAuOTMsMjE3LjU0IEw2MzkuOTcsMjE3LjM5
IEw2MzkuMTcsMjE2LjkwIEw2MzguODEsMjE2LjgzIEw2MzcuMjEsMjE2Ljc2IEw2MzYuODQsMjE2
LjYwIEw2MzYuOTAsMjE2LjQ2IEw2MzcuMzUsMjE2LjAwIEw2MzYuOTQsMjE1LjczIEw2MzYuMzks
MjE1LjYzIEw2MzUuODksMjE1LjQ5IEw2MzUuNTgsMjE1LjQ2IEw2MzQuMzIsMjE1LjM0IFogTTY3
NS4wMCwyMjMuMDkgTDY3NS4yNSwyMjIuNjAgTDY3NS4yOCwyMjIuMDYgTDY3NS4zOSwyMjEuNzUg
TDY3Ni4wNiwyMjEuMjcgTDY3Ny41MSwyMjAuNjQgTDY3OC4xNywyMjAuMTkgTDY3OC41MywyMTku
NTggTDY3OS4wMCwyMTkuNDMgTDY4MC41OCwyMTkuMzIgTDY4MS40OSwyMTkuMTEgTDY4Mi4wMywy
MTkuMDcgTDY4Mi45MCwyMTguOTIgTDY4My4wMSwyMTguOTkgTDY4My4xMSwyMTkuMTkgTDY4Mi44
OCwyMTkuNDAgTDY4Mi41MiwyMTkuNjYgTDY4MC45MSwyMjAuMjcgTDY3OS41NCwyMjAuNzEgTDY3
OC44MywyMjAuOTYgTDY3OC4yMiwyMjEuMzIgTDY3Ny4xMywyMjIuMjggTDY3Ni40OCwyMjIuNzYg
TDY3Ni4wNCwyMjIuODUgTDY3NS40OCwyMjMuMDggTDY3NS4wMSwyMjMuMDkgWiBNNjY3Ljg3LDIy
My4xNSBMNjY3LjY1LDIyMy4wOCBMNjY2LjczLDIyMi40OCBMNjY1LjkzLDIyMi4wMiBMNjY1LjU5
LDIyMS45MyBMNjY1LjA5LDIyMS44MCBMNjY0LjgwLDIyMS42MCBMNjY0LjkxLDIyMS4zOSBMNjY1
LjI4LDIyMS4yNSBMNjY2LjI3LDIyMS4yMiBMNjY2Ljc3LDIyMS4xMCBMNjY3LjEyLDIyMS40MCBM
NjY4LjI3LDIyMi4xNSBMNjY4LjUzLDIyMi41MyBMNjY4LjQxLDIyMi44NSBMNjY4LjE2LDIyMy4w
OSBMNjY3Ljg2LDIyMy4xNSBaIE02NjEuODIsMTkxLjI0IEw2NjEuNzgsMTkxLjMzIEw2NjIuMTAs
MTkyLjAyIEw2NjEuODcsMTkyLjE2IEw2NjEuMzIsMTkyLjIxIEw2NjAuNzQsMTkyLjI5IEw2NjAu
OTQsMTkyLjUyIEw2NjEuMDUsMTkyLjgyIEw2NjAuODksMTkzLjA0IEw2NjEuMTAsMTkzLjI1IEw2
NjEuMzQsMTkzLjM2IEw2NjEuODgsMTk0LjIwIEw2NjIuNDIsMTk0Ljk0IEw2NjIuNDYsMTk1LjE0
IEw2NjIuMTIsMTk1Ljg2IEw2NjIuMjAsMTk2LjA5IEw2NjIuNjAsMTk2LjU1IEw2NjMuMzUsMTk3
LjAwIEw2NjMuOTUsMTk3LjUwIEw2NjQuNTAsMTk4LjI2IEw2NjQuMDMsMTk4LjQzIEw2NjMuMjgs
MTk4LjQwIEw2NjIuNDksMTk4LjE2IEw2NjIuMTUsMTk4LjI2IEw2NjEuNzYsMTk4LjczIEw2NjEu
NDEsMTk5LjY1IEw2NjEuMzMsMjAwLjEyIEw2NjEuMjgsMjAwLjQwIEw2NjEuNDEsMjAxLjA0IEw2
NjEuNTMsMjAxLjQ3IEw2NjEuNDAsMjAyLjMyIEw2NjEuMTQsMjAyLjMyIEw2NjAuNjgsMjAyLjE2
IEw2NTkuNjQsMjAzLjEzIEw2NTkuMjEsMjAzLjc4IEw2NTguNDYsMjA0LjM4IEw2NTguOTAsMjA0
Ljc2IEw2NTguOTYsMjA1LjE2IEw2NTkuMTMsMjA1LjQ2IEw2NTguNDQsMjA1LjUxIEw2NTguOTAs
MjA2LjA5IEw2NTguOTAsMjA2LjMwIEw2NTguODAsMjA2LjUzIEw2NTguMjUsMjA3LjIwIEw2NTgu
MDUsMjA3LjU5IEw2NTcuOTIsMjA3Ljk1IEw2NTcuMzksMjA4LjU0IEw2NTYuMTAsMjA5LjE1IEw2
NTUuNDksMjA5LjQzIEw2NTUuMjAsMjA5LjYzIEw2NTUuMDEsMjA5LjMyIEw2NTUuMDMsMjA4Ljkw
IEw2NTQuNzAsMjA4LjA5IEw2NTQuMzksMjA3LjcxIEw2NTQuMTMsMjA3LjUzIEw2NTMuODQsMjA3
LjU2IEw2NTMuMzQsMjA4LjA4IEw2NTMuMDQsMjA4LjExIEw2NTIuNzEsMjA3LjYwIEw2NTIuNDAs
MjA3LjQwIEw2NTEuOTYsMjA3LjI5IEw2NTEuNTcsMjA2Ljg0IEw2NTEuMjMsMjA2LjY5IEw2NTAu
ODgsMjA3LjQ5IEw2NTAuNzQsMjA3LjY5IEw2NTAuMzYsMjA3Ljc1IEw2NTAuMDEsMjA3LjY0IEw2
NDkuNTcsMjA3Ljc3IEw2NDkuMjUsMjA4LjEyIEw2NDguODgsMjA4LjE5IEw2NDguODMsMjA3LjY0
IEw2NDguODYsMjA3LjMzIEw2NDguNTQsMjA2LjMwIEw2NDguMjEsMjA2LjcwIEw2NDYuNzksMjA3
LjEzIEw2NDYuNDcsMjA2LjczIEw2NDUuODMsMjA2Ljc0IEw2NDUuNTUsMjA2LjkwIEw2NDUuMjQs
MjA2LjkzIEw2NDUuMTksMjA2LjI4IEw2NDUuMTYsMjA1LjYzIEw2NDQuOTAsMjA0LjIyIEw2NDQu
ODksMjAzLjc0IEw2NDQuNTMsMjAyLjk5IEw2NDQuMTMsMjAyLjU4IEw2NDMuMzQsMjAyLjE2IEw2
NDMuMTksMjAyLjAyIEw2NDMuNzUsMjAxLjY2IEw2NDMuMjIsMjAxLjI4IEw2NDIuOTYsMjAwLjk5
IEw2NDMuMTUsMjAwLjI1IEw2NDMuMDcsMjAwLjEyIEw2NDIuNzksMTk5LjY1IEw2NDIuNDQsMTk5
LjM1IEw2NDIuNTEsMTk4Ljg4IEw2NDIuMzgsMTk4LjI5IEw2NDIuNTYsMTk3LjY0IEw2NDIuNzAs
MTk3LjI5IEw2NDMuMTIsMTk2LjcxIEw2NDMuNDIsMTk1LjkwIEw2NDMuNzQsMTk1LjkzIEw2NDMu
OTUsMTk2LjA0IEw2NDQuMjMsMTk2LjgzIEw2NDQuNDksMTk3LjEzIEw2NDUuNDksMTk4LjExIEw2
NDUuNzksMTk4LjE5IEw2NDYuMjQsMTk4LjQ3IEw2NDcuMTYsMTk4LjA2IEw2NDcuNDIsMTk4LjA2
IEw2NDcuOTUsMTk4LjI4IEw2NDguNDksMTk4LjM5IEw2NDguODksMTk4LjIyIEw2NDkuNDIsMTk3
Ljg4IEw2NDkuODIsMTk3LjM1IEw2NTAuMzUsMTk2LjkxIEw2NTAuODMsMTk2Ljg0IEw2NTEuMjYs
MTk2Ljk1IEw2NTEuODIsMTk3LjIwIEw2NTIuMzQsMTk3LjQyIEw2NTIuOTAsMTk3LjU3IEw2NTMu
MTksMTk3LjU0IEw2NTMuNjUsMTk3LjE5IEw2NTQuMTIsMTk3LjAxIEw2NTQuOTgsMTk2Ljg0IEw2
NTUuMzcsMTk2LjU0IEw2NTYuMzAsMTk0Ljc2IEw2NTYuMjIsMTk0LjAxIEw2NTYuNDQsMTkzLjY3
IEw2NTcuMDksMTkzLjQyIEw2NTcuMzEsMTkzLjA0IEw2NTcuMjAsMTkyLjA1IEw2NTcuMzIsMTkx
LjQ5IEw2NTcuNzAsMTkwLjg1IEw2NTcuOTUsMTkwLjY5IEw2NTguNDEsMTkwLjY4IEw2NTkuMTYs
MTkwLjc2IEw2NTkuODEsMTkwLjg0IEw2NjAuNDMsMTkwLjgyIEw2NjAuODgsMTkwLjg2IEw2NjEu
NjMsMTkxLjE1IEw2NjEuODIsMTkxLjI0IFogTTY2Ni41NiwyMDAuMTIgTDY2Ni41NywyMDAuMDgg
TDY2Ny4wNSwxOTguODkgTDY2Ny40OSwxOTguNDggTDY2Ny43OCwxOTguMzQgTDY2OC4yMSwxOTgu
NjcgTDY2OC40OSwxOTguMzYgTDY2OC42NiwxOTguMDQgTDY2OC45NSwxOTcuNTYgTDY2OS40NSwx
OTcuNTAgTDY3MC4wNSwxOTcuNjQgTDY3MC43OCwxOTguMTcgTDY3MS4yMywxOTguMjAgTDY3Mi4w
OSwxOTguMTYgTDY3Mi41NywxOTguMzIgTDY3My4zMiwxOTguNTkgTDY3My44OSwxOTguMzcgTDY3
NS43NSwxOTguNDUgTDY3Ni40NywxOTguMzIgTDY3Ny4wOSwxOTcuOTYgTDY3Ny4zMCwxOTcuNjgg
TDY3Ny4xNSwxOTcuNDEgTDY3Ny4zNCwxOTcuMTMgTDY3Ny43MywxOTYuODkgTDY3OC4wMywxOTYu
NDggTDY3OC4zMiwxOTYuNDIgTDY3OC4zOSwxOTYuNjYgTDY3OC4zMiwxOTcuMjAgTDY3OC4yMCwx
OTcuNTEgTDY3OC4xMiwxOTcuNjQgTDY3OC4wNCwxOTcuNzYgTDY3Ny4wNywxOTkuMDIgTDY3Ni42
NSwxOTkuNDIgTDY3Ni4xOSwxOTkuNTIgTDY3NC45NiwxOTkuNzUgTDY3NC40NywxOTkuNjggTDY3
My44NywxOTkuMjYgTDY3Mi43MiwxOTkuMTkgTDY3MS41NywxOTkuMjUgTDY3MC43MCwxOTkuMjEg
TDY2OS42NiwxOTkuMjUgTDY2OS4wOCwxOTkuMTcgTDY2OC40MSwxOTkuMjAgTDY2OC4wMCwxOTku
MzAgTDY2Ny41NiwxOTkuNjcgTDY2Ny4zMCwyMDAuMTMgTDY2Ny4xNSwyMDAuNDAgTDY2Ni45Niwy
MDEuMTIgTDY2Ny4wMywyMDEuNjAgTDY2Ny4yOSwyMDIuMTAgTDY2Ny40OSwyMDIuMjggTDY2Ny44
OSwyMDIuNTEgTDY2OC4xNSwyMDIuNzAgTDY2OC4zNywyMDMuMzEgTDY2OC41NSwyMDMuNDYgTDY2
OC43OCwyMDMuNTAgTDY2OS41OSwyMDMuNTMgTDY2OS44NCwyMDMuMjYgTDY3MC40OSwyMDIuMjkg
TDY3MC44OCwyMDIuMzQgTDY3MS4xOCwyMDIuNTIgTDY3MS42OCwyMDIuNTcgTDY3Mi4wNCwyMDIu
MzQgTDY3Mi43MSwyMDIuMTggTDY3My4zMywyMDIuMDQgTDY3My42MCwyMDEuNzQgTDY3My44Nywy
MDEuNjggTDY3NC4zNCwyMDEuODggTDY3NC40NywyMDIuMDkgTDY3NC4zOSwyMDIuODMgTDY3My45
MiwyMDIuNTYgTDY3My4zNywyMDIuNTIgTDY3My4wMSwyMDIuODIgTDY3Mi42MiwyMDMuMzQgTDY3
Mi4xOCwyMDMuNzYgTDY3MS4xMiwyMDQuMjAgTDY3MC45MSwyMDQuNTMgTDY3MC43NywyMDQuNTYg
TDY3MC41MywyMDQuNTEgTDY3MC4wNiwyMDQuMzkgTDY3MC4wMywyMDQuNDQgTDY3MC4wNSwyMDQu
NzYgTDY3MC4yNywyMDQuODggTDY3MC45NCwyMDUuNDYgTDY3MS40MSwyMDUuOTggTDY3Mi4yNiwy
MDcuMjIgTDY3Mi4xNywyMDcuNTUgTDY3Mi4wMSwyMDguMjMgTDY3Mi4xMSwyMDguNjMgTDY3Mi41
NiwyMDkuMTcgTDY3My4xMSwyMDkuNjEgTDY3My4xOCwyMDkuODMgTDY3My4xMywyMTAuMTIgTDY3
Mi43MCwyMTAuMDYgTDY3Mi4wNCwyMTAuMTIgTDY3MS42MywyMTAuNDEgTDY3MS40MSwyMTEuMTEg
TDY3MC45MSwyMTEuMDggTDY3MC40NSwyMTAuOTAgTDY3MC4zNCwyMTAuNzMgTDY3MC4zOSwyMTAu
MDggTDY3MC42MCwyMDkuNTAgTDY2OS42MiwyMDguNjUgTDY2OS4yMCwyMDguMzQgTDY2OS4wMywy
MDguMDcgTDY2OS4wNiwyMDcuODQgTDY2OS4zNSwyMDcuNDQgTDY2OS40NiwyMDYuODYgTDY2OS4z
MCwyMDYuMzcgTDY2OC41NiwyMDYuMzEgTDY2OC4wNiwyMDYuNTIgTDY2Ny41NywyMDYuOTIgTDY2
Ny43MiwyMDcuMjcgTDY2Ny44NywyMDguMjEgTDY2Ny44MCwyMDguNzEgTDY2Ny41NiwyMDkuODYg
TDY2Ny45MywyMTAuNzYgTDY2Ny45MiwyMTEuMDcgTDY2Ny41NCwyMTEuNzEgTDY2Ny41MiwyMTEu
OTQgTDY2Ny44MCwyMTIuNTAgTDY2Ny4wNywyMTIuNjcgTDY2Ni41NiwyMTIuOTEgTDY2Ni4wOCwy
MTIuOTggTDY2NS44NCwyMTIuNjYgTDY2NS42OCwyMTIuMTQgTDY2NS44MywyMTEuODEgTDY2Ni4w
MSwyMTEuMzUgTDY2Ni4wOCwyMTAuNDcgTDY2Ni4xNCwyMDkuNDAgTDY2Ni4wMiwyMDguODkgTDY2
Ni4wNSwyMDguNTUgTDY2NS44MywyMDguMTUgTDY2NS41MiwyMDguMDMgTDY2NS4xMywyMDguMjAg
TDY2NC41NiwyMDguMjMgTDY2NC41NywyMDcuODIgTDY2NC4zMiwyMDYuNTMgTDY2NC40NSwyMDYu
MjIgTDY2NC45NCwyMDUuNzAgTDY2NS40MSwyMDQuOTIgTDY2NS41NywyMDQuNDQgTDY2NS40OCwy
MDMuNTIgTDY2NS40NywyMDMuMjcgTDY2NS41NiwyMDIuODIgTDY2NS45MCwyMDIuMTAgTDY2Ni4z
NSwyMDIuMDQgTDY2Ni4zMCwyMDEuMTggTDY2Ni41NiwyMDAuMTIgWiJdCiAgICAgICBSZW5kZXJQ
YXRoIHtwYXRofSBhdCAoMjM5LjI5LDExNC4yNSkgc2l6ZSAxMzMuNDZ4NTMuMTEgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jODA4MDgwXSBbc3Ryb2tlIHdpZHRoPTAuMjBdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBbZGF0YT0iTTM0MS4wNSw0MS4wNyBMMzQz
LjEzLDQxLjM0IEwzNDMuNDgsNDEuNzAgTDM0Mi42MSw0MS44OCBMMzQyLjA3LDQyLjAxIEwzNDAu
MzksNDIuMTIgTDMzOS4yMyw0Mi4xNiBMMzM4LjU0LDQyLjMxIEwzMzguMTcsNDIuNTQgTDMzNy44
Niw0My4xNCBMMzM3LjUwLDQzLjUxIEwzMzguNTUsNDMuOTAgTDMzOS41Miw0NC4wNyBMMzQxLjY0
LDQ0LjE0IEwzNDIuMjQsNDQuMTMgTDM0NC4wMiw0My44OSBMMzQ1Ljk1LDQzLjg1IEwzNDYuODEs
NDMuOTkgTDM0Ny43NCw0NC4yMSBMMzQ4LjE2LDQ0LjM0IEwzNDguNDUsNDQuMzMgTDM0OS40NSw0
NC4zMiBMMzUwLjcyLDQ0LjM2IEwzNTEuMzQsNDQuNDEgTDM1MC4wNiw0NS4wMyBMMzQ4LjQ4LDQ1
LjQ5IEwzNDYuNTAsNDYuMDEgTDM0NS45NSw0Ni4wMCBMMzQ1LjI1LDQ1Ljg4IEwzNDQuMzAsNDYu
NTUgTDM0My4yNCw0Ny4wNSBMMzQxLjk5LDQ3LjUxIEwzNDAuODcsNDcuODAgTDM0MC42Niw0Ny44
NiBMMzM4LjQ1LDQ3LjkxIEwzMzcuOTIsNDguMDUgTDMzNy40Miw0OC4wNSBMMzM2LjQ0LDQ4LjI1
IEwzMzUuNzcsNDguNDIgTDMzNS4yNCw0OC40NyBMMzM0LjMwLDQ4LjA1IEwzMzMuOTIsNDguMTAg
TDMzMy4yMyw0OS4wMiBMMzMyLjI3LDQ5LjEzIEwzMzEuNjQsNDkuMDcgTDMzMC45MCw0OC44NyBM
MzMwLjI4LDQ4LjQxIEwzMjkuNDIsNDcuOTggTDMyOC43OCw0Ny43NiBMMzI4LjY3LDQ3Ljc2IEwz
MjguNjgsNDcuOTYgTDMyOS4zOCw0OS4wMSBMMzI5LjE5LDQ5LjI2IEwzMjguODcsNDkuMjcgTDMy
OC4xOCw0OS41MiBMMzI3LjM0LDQ5Ljc3IEwzMjYuNzcsNTAuMTUgTDMyNS43Nyw1MS4wNiBMMzI1
LjExLDUxLjcxIEwzMjQuMDYsNTIuNTYgTDMyMy4yOSw1Mi44MyBMMzIyLjI1LDUyLjkxIEwzMjEu
MjMsNTIuNjMgTDMyMS4wOCw1My4xOSBMMzIwLjY0LDUzLjc2IEwzMTkuODYsNTQuMDMgTDMxOC44
Nyw1My45NCBMMzE4LjI1LDUzLjk5IEwzMTcuMDcsNTQuNDMgTDMxOC4wMSw1Mi43MSBMMzE3Ljg5
LDUyLjcyIEwzMTcuMTAsNTIuNzEgTDMxNi4wNCw1Mi41MyBMMzE2LjMwLDUyLjk1IEwzMTYuMjgs
NTMuNDEgTDMxNS44OSw1My44MiBMMzE1LjEwLDU0LjIxIEwzMTMuOTQsNTQuMzcgTDMxMi45Niw1
NC4zNyBMMzExLjcxLDU0LjQ2IEwzMTIuMTcsNTQuODYgTDMxMi4zOSw1NS4yNiBMMzEyLjMwLDU1
LjY1IEwzMTEuOTIsNTUuNzQgTDMxMS42MCw1NS42OCBMMzExLjEzLDU1LjcyIEwzMDkuMzMsNTUu
NTYgTDMwOS44NSw1NS44OCBMMzEwLjYyLDU2LjM0IEwzMTAuOTEsNTYuNjkgTDMxMC45MCw1Ni45
MiBMMzEwLjY0LDU3LjA5IEwzMDkuNDUsNTcuMTIgTDMwOC4zOSw1Ny4yNSBMMzA5LjI0LDU3LjY3
IEwzMDkuNzEsNTcuNzkgTDMxMC4xNiw1OC4wMSBMMzEwLjU1LDU4LjM1IEwzMDkuOTksNTguODEg
TDMwOS43MSw1OC45MiBMMzA5LjExLDU4LjgzIEwzMDguNjMsNTguOTIgTDMwOC45Nyw1OS40MCBM
MzA4Ljk2LDU5LjUyIEwzMDguNTAsNjAuMDAgTDMwOC4wMiw1OS44OCBMMzA3LjQzLDU5LjgxIEwz
MDcuNDYsNTkuOTcgTDMwNy43MSw2MC40MyBMMzA3LjYxLDYwLjc4IEwzMDcuMzIsNjAuNzggTDMw
Ni42Nyw2MC42OCBMMzA2LjU4LDYwLjY3IEwzMDUuNjAsNjAuNzggTDMwNC41Miw2MC44MCBMMzA1
LjIwLDYxLjI4IEwzMDYuMzEsNjEuNjcgTDMwNi42NCw2MS44OCBMMzA2LjU2LDYyLjkxIEwzMDYu
MTgsNjMuODUgTDMwNS43NSw2My45NCBMMzA0Ljk0LDYzLjg4IEwzMDUuNDMsNjQuNDcgTDMwNS40
MSw2NC45NyBMMzA1LjU3LDY1LjIxIEwzMDUuNTAsNjUuNTggTDMwNS4xOCw2NS42NCBMMzA0LjY5
LDY1LjYxIEwzMDMuOTIsNjUuNjkgTDMwNC42OCw2Ni4wOCBMMzA1LjExLDY2LjY4IEwzMDQuOTks
NjcuMTMgTDMwNC43MCw2Ny4xNiBMMzAzLjc0LDY2LjkwIEwzMDIuNjgsNjYuMzkgTDMwMi4xOSw2
Ni42OCBMMzAxLjc2LDY3LjI5IEwzMDEuMTMsNjYuNjkgTDMwMS4yOCw2Ni4xMSBMMzAwLjkwLDY1
LjkxIEwyOTkuNzcsNjUuNzMgTDI5OS4yMCw2NS40MiBMMjk5LjI0LDY1LjIzIEwyOTkuNDksNjQu
OTggTDI5OS41NSw2NC43NiBMMjk5LjIzLDY0LjQ5IEwyOTguODYsNjQuMzAgTDI5OC4yMCw2NC42
NiBMMjk3LjkyLDY0LjY3IEwyOTcuNjIsNjQuODIgTDI5Ny4xOCw2NC43NyBMMjk2LjIwLDY0Ljgz
IEwyOTUuNzgsNjQuODUgTDI5NS4yMSw2NS4xNSBMMjk0LjczLDY1LjQzIEwyOTQuMzEsNjUuMDIg
TDI5NC4yMCw2NC42NyBMMjkzLjk4LDY0LjQ1IEwyOTMuNDcsNjQuMjIgTDI5Mi42NSw2My45OCBM
MjkxLjg4LDYzLjYwIEwyOTEuMzYsNjIuODEgTDI5MS40Myw2Mi4wOCBMMjkxLjIzLDYxLjkyIEwy
OTAuODAsNjEuODMgTDI5MC4zMyw2MS44OCBMMjg5LjM2LDYxLjYxIEwyODkuMjUsNjEuNTEgTDI4
OS4xMSw2MS4yOCBMMjg5LjI2LDYwLjgyIEwyODkuNzEsNjAuNDMgTDI4OS43OSw2MC4xNiBMMjg5
LjUzLDYwLjEwIEwyODguOTgsNjAuMDYgTDI4OC40Myw1OS45NyBMMjg4LjE2LDU5Ljc1IEwyODgu
MTAsNTkuMTIgTDI4Ny42NCw1OC45OSBMMjg3LjAyLDU5LjA0IEwyODYuNDMsNTguNDcgTDI4Ni40
Niw1OC4yOCBMMjg2LjY2LDU4LjAzIEwyODcuMjcsNTcuNjYgTDI4OC40OSw1Ny4zMiBMMjg4Ljkw
LDU3LjAyIEwyODkuMzgsNTYuODkgTDI4OS40Myw1Ni41MSBMMjg5LjE1LDU2LjIyIEwyODguNjgs
NTYuMzIgTDI4Ny43Niw1Ni40MCBMMjg3LjI2LDU2LjQ5IEwyODYuNjMsNTYuOTEgTDI4Ni4wOSw1
Ny4wNCBMMjg1LjQ2LDU3LjM0IEwyODUuMTIsNTcuMDMgTDI4NS4xNiw1Ni40MCBMMjg1LjA0LDU1
LjYyIEwyODQuODQsNTUuMTcgTDI4NC44NSw1NC44MSBMMjg0LjYxLDU0LjQ5IEwyODQuMTEsNTQu
NTcgTDI4My44Myw1NC41NCBMMjgzLjE3LDU0LjE5IEwyODIuNTgsNTMuNzAgTDI4Mi41Niw1My4z
NCBMMjgzLjQwLDUyLjgxIEwyODMuNjcsNTIuODIgTDI4My4xMSw1Mi42MyBMMjgyLjAzLDUyLjcw
IEwyODEuOTMsNTIuNDIgTDI4Mi4zMSw1Mi4yNCBMMjgyLjk5LDUyLjIxIEwyODMuNTcsNTIuMTYg
TDI4NC4wMyw1Mi4wNyBMMjg0LjM1LDUxLjQwIEwyODMuMTQsNTEuMzUgTDI4Mi41Nyw1MS40MCBM
MjgyLjIxLDUxLjM3IEwyODEuOTIsNTEuMjEgTDI4MS44MCw1MS4wMSBMMjgyLjAzLDUwLjczIEwy
ODIuMjQsNTAuNzIgTDI4Mi40Miw1MC41NiBMMjgyLjg1LDUwLjUxIEwyODIuNDgsNTAuMzIgTDI4
MS45Miw1MC4zOSBMMjgxLjcwLDUwLjE0IEwyODEuNzYsNDkuOTYgTDI4MS44Myw0OS44MiBMMjgy
LjA5LDQ5LjgyIEwyODIuNDAsNDkuNzIgTDI4My4yMyw0OS40NyBMMjg0LjQ1LDQ5LjU2IEwyODUu
MzAsNDkuNzIgTDI4Ni4wOCw0OS43NSBMMjg2LjQ1LDQ5Ljg4IEwyODcuMzgsNTAuMDMgTDI4OC40
MSw1MC4xMiBMMjg4LjM4LDQ5Ljc2IEwyODguNjgsNDkuMjIgTDI4OC4zOCw0OS4wMyBMMjg3LjM2
LDQ4Ljc3IEwyODYuMDAsNDguNDYgTDI4NS4xMCw0OC4yOSBMMjgzLjUxLDQ3Ljk3IEwyODMuMTUs
NDcuODUgTDI4My40OSw0Ny41MCBMMjg0LjI4LDQ3LjUwIEwyODUuNzQsNDcuODYgTDI4Ni43Nyw0
Ny45MSBMMjg3LjI0LDQ3Ljg0IEwyODcuMzUsNDcuNzggTDI4Ny40NCw0Ny4xNyBMMjg3LjUzLDQ2
Ljg3IEwyODguMTIsNDYuODQgTDI4OC42NSw0Ni45NiBMMjg4Ljg4LDQ2Ljg1IEwyODguODUsNDYu
NTAgTDI4OC42NSw0Ni4zMiBMMjg3Ljc2LDQ2LjAwIEwyODcuOTMsNDUuNTcgTDI4OC40NSw0NS4x
MSBMMjg4LjIwLDQ0LjgzIEwyODYuOTksNDQuNjYgTDI4NS44Myw0NC42NiBMMjg0LjY1LDQ0LjM3
IEwyODMuMDEsNDMuODggTDI4Mi4yMyw0My43OCBMMjgxLjMyLDQzLjczIEwyODAuNTYsNDMuMzkg
TDI3OS43NSw0Mi45MiBMMjc5LjkxLDQyLjg4IEwyODAuMjMsNDIuNzMgTDI4MC44Myw0Mi43MiBM
MjgxLjQxLDQyLjcxIEwyODMuNDksNDMuMDEgTDI4NC4yMSw0My4wNCBMMjg1LjQ2LDQzLjM1IEwy
ODYuOTEsNDMuODEgTDI4Ny42NCw0My45OCBMMjg3LjY5LDQzLjY3IEwyODcuMzgsNDMuMjQgTDI4
Ni41Miw0Mi43MCBMMjg2LjM1LDQyLjI1IEwyODUuNzUsNDEuODEgTDI4NS4yNiw0MS43NiBMMjg0
LjU4LDQxLjUxIEwyODQuOTUsNDEuMjQgTDI4NS40OSw0MS4xMCBMMjg1LjY0LDQxLjAwIEwyODQu
OTQsNDAuNzYgTDI4My44NCw0MC43NCBMMjgzLjIxLDQwLjY2IEwyODIuMDgsNDAuMzMgTDI4MS4y
MCw0MC45NCBMMjgwLjg4LDQxLjEwIEwyODAuNjAsNDEuMzkgTDI3OS43Myw0MS42MyBMMjc4LjMz
LDQxLjU3IEwyNzcuMzAsNDEuMjIgTDI3Ni45OSw0MC45OCBMMjc2Ljk2LDQwLjY5IEwyNzcuNDAs
NDAuMzcgTDI3Ny42OSwzOS43MyBMMjc3LjU0LDM4LjQ3IEwyNzguMTIsMzguNDIgTDI3OC44Miwz
OC42MSBMMjc5LjE5LDM4LjQ4IEwyNzkuMzQsMzguMTUgTDI3OC45NSwzNy43OCBMMjc4LjAyLDM3
LjI0IEwyNzcuNTcsMzcuMTAgTDI3Ni42MiwzNi4zMCBMMjc1LjczLDM1LjM3IEwyNzQuNjIsMzQu
MDggTDI3NC4wNSwzMy42MCBMMjcyLjE5LDMzLjIyIEwyNzEuNTIsMzIuOTcgTDI3MS4yMywzMi43
NiBMMjcxLjE4LDMyLjA2IEwyNzAuMjgsMzEuNjYgTDI2OS4zMiwzMS41NSBMMjY3LjczLDMxLjM4
IEwyNjUuODAsMzAuOTYgTDI2My44OSwzMC42MiBMMjYxLjc2LDMwLjQ0IEwyNjAuNzcsMzAuMzkg
TDI1OS4xMywzMC4zNSBMMjU4LjM1LDMwLjU0IEwyNTcuMzAsMzAuNjQgTDI1Ni41MCwzMC44MyBM
MjU1LjA4LDMwLjk4IEwyNTMuODUsMzAuODEgTDI1Mi4zOSwzMC41MiBMMjUyLjcxLDMxLjI2IEwy
NTIuNjYsMzEuMzYgTDI1MS42MSwzMS4zNCBMMjUwLjMyLDMxLjE2IEwyNDcuMTUsMzAuNTQgTDI0
OC42OCwyOS45OCBMMjQ5LjE1LDI5Ljg2IEwyNDkuMDYsMjkuNjQgTDI0OC42MywyOS40NyBMMjQ3
LjU3LDI5LjQ1IEwyNDUuMzYsMjkuNDQgTDI0NC41NCwyOS4zNiBMMjQzLjkxLDI5LjM0IEwyNDIu
NjgsMjguOTEgTDI0MS44MSwyOC43MCBMMjQyLjM5LDI4LjQwIEwyNDMuNjUsMjguMzYgTDI0Ni42
OSwyOC41MCBMMjQ4LjcxLDI4LjU0IEwyNTAuMDUsMjguNTUgTDI1Mi4xNywyOC40MCBMMjUzLjIz
LDI4LjE4IEwyNTMuNTIsMjguMDkgTDI1My41NywyNy43NCBMMjUyLjk1LDI3LjQ2IEwyNTIuMTMs
MjcuMjUgTDI1MC45MSwyNy40MCBMMjQ5LjgwLDI3LjY2IEwyNDguNDksMjcuNjggTDI0Ny4zNSwy
Ny41NiBMMjQ2LjYwLDI3LjY0IEwyNDUuNzIsMjcuNzQgTDI0NS4wNCwyNy42OCBMMjQ0LjE4LDI3
LjQ5IEwyNDMuNTIsMjcuMTMgTDI0Mi43MCwyNi45NCBMMjQyLjA0LDI2Ljg4IEwyNDEuMzEsMjYu
OTQgTDI0MC44MywyNi44NiBMMjM5LjQxLDI2LjM4IEwyMzkuMzcsMjYuMDMgTDIzOS43MywyNS41
OCBMMjQwLjU0LDI1LjQ2IEwyNDEuNzcsMjUuMzYgTDI0My4yOSwyNS4yMiBMMjQ1LjM2LDI1LjA2
IEwyNDYuNjUsMjQuOTggTDI0Ny42MCwyNC41OCBMMjQ4LjY5LDI0LjMzIEwyNDkuNTQsMjQuMjUg
TDI1Mi4wMSwyNC4yNCBMMjUzLjEyLDI0LjE0IEwyNTUuMDYsMjQuMTcgTDI1NS40NiwyNC4wNCBM
MjU1Ljc3LDIzLjg0IEwyNTYuMzgsMjMuNjggTDI1Ni41OCwyMy4wMiBMMjU2Ljg2LDIyLjUyIEwy
NTYuOTcsMjIuNDIgTDI1Ni4wOCwyMi4xOSBMMjU0LjE0LDIyLjE1IEwyNTIuOTgsMjIuMzQgTDI1
Mi4wMiwyMi4yMiBMMjUwLjc4LDIxLjg0IEwyNTEuMzcsMjEuMDYgTDI1Mi43NSwyMC43MiBMMjU1
LjYwLDIwLjM2IEwyNTcuMDEsMjAuMTQgTDI1OC45NywxOS44OSBMMjYxLjA4LDE5LjczIEwyNjIu
MjQsMTkuODIgTDI2My40NiwxOS43NSBMMjY0Ljc3LDE5LjY3IEwyNjUuMTIsMTkuNDkgTDI2NS4x
MywxOS4yNyBMMjY0Ljc3LDE4LjUxIEwyNjQuNzUsMTguMzEgTDI2NS4yNywxOC4xNyBMMjY3LjE2
LDE4LjEyIEwyNjguNjksMTguMzIgTDI3MC44MywxOC43MyBMMjcyLjEyLDE4Ljk2IEwyNzIuOTIs
MTkuMTQgTDI3My43NSwxOC44NiBMMjcyLjA5LDE4LjM0IEwyNzEuMzksMTcuODMgTDI3MS41Niwx
Ny43OCBMMjczLjc2LDE3LjY2IEwyNzQuOTMsMTcuNTQgTDI3Ni43OCwxNy4zMyBMMjc5LjMwLDE3
LjEzIEwyODAuMDMsMTcuMjAgTDI4MS4xMCwxNy4zMiBMMjgxLjMzLDE5LjA1IEwyODIuMjQsMTgu
ODkgTDI4Mi43OCwxOC41NyBMMjgzLjIxLDE3LjU3IEwyODQuMjEsMTcuNTkgTDI4Ni4yMiwxNy45
MSBMMjg4LjA4LDE4LjMzIEwyODkuNjEsMTguNTggTDI4OS44MSwxOC4yOCBMMjg5LjE3LDE3Ljk4
IEwyODguMzUsMTcuNDQgTDI4Ny40NiwxNy4wNCBMMjg3Ljc1LDE2Ljc1IEwyODguNDksMTYuNzcg
TDI5MC4yNSwxNi44MCBMMjkxLjM5LDE3LjAxIEwyOTQuMTQsMTcuMzggTDI5NS40MiwxNy42NiBM
Mjk3LjUzLDE3Ljk4IEwyOTkuNDEsMTguMjUgTDMwMS4yOCwxOC40NiBMMzAyLjA4LDE4LjI1IEwz
MDIuOTAsMTYuNzcgTDMwMi41NywxNi41OCBMMzAxLjI4LDE2LjI0IEwzMDAuMTEsMTUuNzEgTDMw
MC44MSwxNS40NiBMMzAzLjIyLDE1LjQ2IEwzMDYuMTgsMTUuMTMgTDMwNy41MSwxNS4wNSBMMzA5
LjA0LDE1LjIyIEwzMTEuMjYsMTUuNzEgTDMxMi44MiwxNS44OCBMMzE0LjgzLDE2LjAyIEwzMTUu
MTMsMTUuMjYgTDMxNC44MywxNC43OSBMMzE3LjQ4LDE0LjU4IEwzMTkuNTAsMTQuNTAgTDMyMi4w
OCwxNC42MCBMMzI0LjA3LDE0Ljc0IEwzMjUuOTYsMTQuNTYgTDMyOC4zMywxNC4zNSBMMzMwLjM3
LDE0LjM1IEwzMzIuMjMsMTQuNTcgTDMzNC4wNSwxNC41MiBMMzM1LjM3LDE0LjU5IEwzMzUuOTks
MTQuNjkgTDMzNi41NCwxNC41OSBMMzM4LjQ4LDE0LjczIEwzNDAuMTksMTQuNzggTDM0MS44Niwx
NC44NyBMMzQ0LjMwLDE1LjY0IEwzNDUuNjcsMTUuODggTDM0Ny4wMiwxNS44MCBMMzQ4LjEzLDE1
Ljk3IEwzNTAuNzMsMTYuMjAgTDM1MS4xNywxNi42MSBMMzUwLjg3LDE2LjczIEwzNTAuMzgsMTYu
OTIgTDM0OC42OSwxNy4wNyBMMzQ2LjM5LDE3LjE5IEwzNDUuMjQsMTcuMzIgTDM0NC4wMSwxNy4z
NyBMMzQyLjU0LDE3LjMwIEwzMzkuNzAsMTcuMjMgTDMzNy40OCwxNy4xNyBMMzM2LjEwLDE3LjM0
IEwzMzQuNDgsMTcuMzYgTDMzMi41NSwxNy4zOSBMMzMxLjM5LDE3LjQyIEwzMjkuOTAsMTcuNTgg
TDMyOS40NiwxNy43MCBMMzI4LjE0LDE3LjkyIEwzMjcuODAsMTguMzggTDMyOC41NSwxOC42MyBM
MzMxLjEwLDE4LjM1IEwzMzIuNDYsMTguMjggTDMzNi4zOCwxOC4zMiBMMzM4LjYwLDE4LjE5IEwz
NDAuOTMsMTguMTkgTDM0MS45MywxOC4xNyBMMzQyLjg2LDE4LjIzIEwzNDQuNjMsMTguNjcgTDM0
NS4zMCwxOC43NiBMMzQ2LjM5LDE4LjU3IEwzNDguMDUsMTguMzYgTDM0OS41OCwxOC4wOCBMMzUx
LjU1LDE3LjkzIEwzNTIuMTQsMTguNDAgTDM1MS41NywxOC44OCBMMzQ5LjI2LDE5LjUyIEwzNDgu
MjgsMTkuODYgTDM0Ny4wMCwyMC41OSBMMzQ3LjEyLDIwLjkwIEwzNDcuNDQsMjEuMDUgTDM0OC4y
NCwyMC45NiBMMzQ4LjcxLDIwLjkyIEwzNTAuMzMsMjAuMzYgTDM1Mi4xMCwxOS44MyBMMzUzLjUx
LDE5LjQ0IEwzNTUuMjEsMTkuMTIgTDM1NS45OSwxOC45MSBMMzU3LjY1LDE4Ljc1IEwzNTkuMjcs
MTguODYgTDM2MC42NiwxOC45MyBMMzYyLjE2LDE4LjYzIEwzNjIuODYsMTguMzAgTDM2My45OSwx
OC4wNyBMMzY2LjE0LDE4LjA3IEwzNjcuODEsMTguMTggTDM2OC45MSwxOC4yMiBMMzcwLjEwLDE4
LjM2IEwzNzEuMjQsMTguNTggTDM3Mi4zNSwxOC43MCBMMzcyLjY2LDE4Ljk1IEwzNzIuNDgsMTku
MjIgTDM3MC41MSwxOS40NyBMMzY5LjAyLDE5LjYxIEwzNjcuNzcsMjAuMTAgTDM2Ny4yMiwyMC4z
OSBMMzY1LjYxLDIwLjc1IEwzNjQuMDQsMjEuMzAgTDM2Mi45OCwyMS4zOSBMMzYyLjA2LDIxLjM0
IEwzNjAuNDcsMjEuMzkgTDM1OC4yNiwyMS4zNSBMMzU2Ljc3LDIxLjU1IEwzNTYuMDQsMjEuNzcg
TDM1NS41NCwyMi4zMCBMMzU1LjcxLDIyLjYyIEwzNTcuNjYsMjIuMzIgTDM1OS4yNCwyMi4yNyBM
MzYxLjA5LDIyLjM3IEwzNjEuMTAsMjIuNzkgTDM2MC4zNSwyMy4wMyBMMzU3Ljk2LDIzLjE2IEwz
NTcuNTAsMjMuMzAgTDM1Ny4yOSwyMy41MCBMMzU3LjEzLDI0LjA5IEwzNTYuNjYsMjQuODAgTDM1
NS45OCwyNC45NiBMMzU0LjkyLDI0Ljg4IEwzNTQuMTgsMjQuOTIgTDM1My4zNSwyNS44MiBMMzUy
LjM2LDI2LjkxIEwzNTIuMjEsMjcuMjYgTDM1Mi42NiwyNy41NyBMMzUzLjA3LDI3LjY2IEwzNTMu
NjcsMjcuMTggTDM1NC40MSwyNi44MSBMMzU1LjI3LDI2Ljc3IEwzNTcuNjEsMjcuMDQgTDM1Ny45
NiwyNy4xMyBMMzU4LjIzLDI3LjQyIEwzNTguMTcsMjcuNjMgTDM1Ni45MywyNy41NiBMMzU2LjI2
LDI3LjU0IEwzNTUuNzUsMjcuNjQgTDM1NS42MSwyNy44MyBMMzU1LjkwLDI4LjExIEwzNTcuNjYs
MjguMzAgTDM1OC4yMSwyOC40MyBMMzYwLjAyLDI4LjMwIEwzNjAuNTQsMjguNTAgTDM2MC43Niwy
OC44MyBMMzYwLjcxLDI5LjI2IEwzNjAuNDUsMjkuNDAgTDM1OC42MiwyOS4yMSBMMzU2Ljk2LDI5
LjE2IEwzNTYuMTgsMjkuMDggTDM1NC44OSwyOS4xNiBMMzUzLjUxLDI5LjY0IEwzNTIuNjgsMjku
NTAgTDM1Mi4xOSwyOS4zNSBMMzUxLjEzLDI5LjQwIEwzNTAuODUsMjkuNzcgTDM1Mi4yNCwzMC4z
NyBMMzUzLjQzLDMwLjU5IEwzNTQuNzMsMzAuNzIgTDM1Ni4zOSwzMC43OSBMMzU3LjA5LDMwLjk0
IEwzNTcuNjQsMzEuNDIgTDM1Ny45MSwzMS44NyBMMzU3LjkzLDMyLjQyIEwzNTcuNDksMzIuODMg
TDM1Ny4xMSwzMi45MCBMMzU1LjgyLDMyLjcyIEwzNTUuMDAsMzIuNjEgTDM1NC42MiwzMi43MiBM
MzU0LjY1LDMzLjI3IEwzNTQuNzcsMzMuNTEgTDM1NS4xOSwzMy42NyBMMzU1LjgxLDMzLjc2IEwz
NTYuNTMsMzMuOTcgTDM1Ny40NSwzNC4xMiBMMzU4LjIwLDM0LjI4IEwzNTguNTgsMzQuNjUgTDM1
OC4yNCwzNC44OCBMMzU3LjQxLDM1LjAzIEwzNTYuNzYsMzUuMTUgTDM1NS4wMiwzNS4xMiBMMzUz
Ljg0LDM1LjA0IEwzNTIuMjIsMzQuOTUgTDM1MS42MiwzNS40MCBMMzUyLjE4LDM1LjU5IEwzNTMu
NTcsMzUuNjQgTDM1NC42MiwzNS44MCBMMzU1LjM1LDM2LjA1IEwzNTUuNDQsMzYuMzcgTDM1NS40
MCwzNi45MiBMMzU1LjI3LDM2LjkxIEwzNTQuMTgsMzYuODcgTDM1Mi45MywzNi45OCBMMzUyLjM0
LDM3LjI0IEwzNTEuMDksMzcuMjYgTDM0OS44NiwzNy4xMiBMMzQ4LjM3LDM2LjcyIEwzNDcuNDUs
MzYuMjQgTDM0Ny4wNywzNi4xNyBMMzQ1Ljk4LDM2LjQ2IEwzNDUuMDAsMzYuODEgTDM0My45Miwz
Ni45MCBMMzQzLjMzLDM3LjA4IEwzNDEuODgsMzcuMDUgTDM0MC45NiwzNi45NiBMMzM5Ljk5LDM3
LjEwIEwzMzkuNjAsMzcuMjMgTDMzOS40MiwzNy41MSBMMzM5LjQzLDM3LjY1IEwzMzkuNzksMzgu
MTggTDM0MC40OSwzOC40MiBMMzQxLjc4LDM4LjQ3IEwzNDMuMjksMzguNzMgTDM0NC44NiwzOC42
OCBMMzQ2LjE4LDM5LjIyIEwzNDYuOTQsMzkuNDQgTDM0Ny40MiwzOS42NyBMMzQ4LjYyLDQwLjAw
IEwzNDkuODcsNDAuMzggTDM1MC4yNSw0MC42NSBMMzUwLjczLDQxLjU1IEwzNTEuNjIsNDEuMzQg
TDM1MS45MCw0MS4yMSBMMzUyLjMwLDQxLjQxIEwzNTIuNjAsNDEuODQgTDM1Mi42Nyw0Mi4xOSBM
MzUyLjg2LDQzLjM1IEwzNTIuNzAsNDMuNTYgTDM1Mi4zMyw0My42NyBMMzUxLjc4LDQzLjU3IEwz
NTEuMjQsNDMuNDYgTDM1MC4zMiw0My40NiBMMzQ5LjI4LDQzLjQ5IEwzNDcuNzksNDMuMjIgTDM0
Ny4xNSw0Mi44MSBMMzQ2Ljc0LDQyLjE4IEwzNDYuMzksNDEuOTEgTDM0NS4yMiw0MS4zNCBMMzQ0
LjM4LDQxLjA1IEwzNDMuNjMsNDAuOTEgTDM0Mi41Myw0MC44MyBMMzQyLjAxLDQwLjk3IEwzNDEu
MDUsNDEuMDcgWiBNMzUxLjM2LDQwLjAzIEwzNDkuODQsMzkuNDkgTDM0OC44OCwzOS4yNiBMMzQ4
LjE3LDM5LjExIEwzNDguMDEsMzkuMDQgTDM0Ny42OSwzOC42MiBMMzQ5LjE4LDM4LjU4IEwzNTAu
MDcsMzguNzIgTDM1MS4xMywzOC45OCBMMzUxLjk1LDM5LjI4IEwzNTIuMTEsMzkuNzYgTDM1MS45
MCwzOS45NyBMMzUxLjM3LDQwLjAzIFogTTI4MS41Nyw0Ni4xMyBMMjgxLjAxLDQ2LjAwIEwyODAu
MzAsNDUuNjggTDI3OS41MCw0NS41MCBMMjc5LjMwLDQ1LjQwIEwyNzkuMDUsNDUuMTggTDI3OC45
Nyw0NC4zNCBMMjc5LjI2LDQ0LjAwIEwyNzkuNjMsNDMuOTggTDI4MC4yNyw0NC4xMiBMMjgxLjQz
LDQ0LjE4IEwyODIuNzIsNDQuNDUgTDI4My40Niw0NC43MiBMMjg0LjA2LDQ0LjgyIEwyODQuODQs
NDUuMDQgTDI4NS40NCw0NS4zNyBMMjg1LjMwLDQ1LjU3IEwyODUuMTgsNDUuNjEgTDI4NC42NCw0
NS42NiBMMjgzLjg3LDQ1LjY5IEwyODMuMTAsNDUuODggTDI4Mi4wOSw0Ni4wMyBMMjgxLjU4LDQ2
LjEzIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtYWxp
Z24tMDEtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5LDE0ICsxOSwxNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCww
KSBzaXplIDIxN3gzMyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTI3KSBzaXplIDIxN3gzMwogICAgICAgICAgICAgICBj
aHVuayAxIHRleHQgcnVuIDEgYXQgKDAuMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MTcgd2lkdGggMjE3LjAwOiAidGV4dC1hbmNob3I6c3RhcnQiCi0gICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDE3NS4wMCwzMzguMzMpIHNpemUgNDE2LjY3eDU1IFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIzMC4wMCwyMzAuMDApfV0KKyAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTc1LDMzOC4zMykgc2l6ZSA0MTYuNjd4NTUgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjMwLjAwLDIzMC4wMCl9XQog
ICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgzNDEuNjcsMzgyLjUwKSBzaXplIDgzLjMz
eDEuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tMjUuMDAsMC4wMCBMMjUuMDAsMC4w
MCJdCiAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzc4LjMzLDM3OC4zMykgc2l6
ZSAxMHgxMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMy4w
MCwwLjAwIEwyLjk5LDAuMTkgTDIuOTgsMC4zOCBMMi45NSwwLjU2IEwyLjkxLDAuNzUgTDIuODUs
MC45MyBMMi43OSwxLjEwIEwyLjcxLDEuMjggTDIuNjMsMS40NSBMMi41MywxLjYxIEwyLjQzLDEu
NzYgTDIuMzEsMS45MSBMMi4xOSwyLjA1IEwyLjA1LDIuMTkgTDEuOTEsMi4zMSBMMS43NiwyLjQz
IEwxLjYxLDIuNTMgTDEuNDUsMi42MyBMMS4yOCwyLjcxIEwxLjEwLDIuNzkgTDAuOTMsMi44NSBM
MC43NSwyLjkxIEwwLjU2LDIuOTUgTDAuMzgsMi45OCBMMC4xOSwyLjk5IEwtMC4wMCwzLjAwIEwt
MC4xOSwyLjk5IEwtMC4zOCwyLjk4IEwtMC41NiwyLjk1IEwtMC43NSwyLjkxIEwtMC45MywyLjg1
IEwtMS4xMCwyLjc5IEwtMS4yOCwyLjcxIEwtMS40NSwyLjYzIEwtMS42MSwyLjUzIEwtMS43Niwy
LjQzIEwtMS45MSwyLjMxIEwtMi4wNSwyLjE5IEwtMi4xOSwyLjA1IEwtMi4zMSwxLjkxIEwtMi40
MywxLjc2IEwtMi41MywxLjYxIEwtMi42MywxLjQ1IEwtMi43MSwxLjI4IEwtMi43OSwxLjEwIEwt
Mi44NSwwLjkzIEwtMi45MSwwLjc1IEwtMi45NSwwLjU2IEwtMi45OCwwLjM4IEwtMi45OSwwLjE5
IEwtMy4wMCwtMC4wMCBMLTIuOTksLTAuMTkgTC0yLjk4LC0wLjM4IEwtMi45NSwtMC41NiBMLTIu
OTEsLTAuNzUgTC0yLjg1LC0wLjkzIEwtMi43OSwtMS4xMCBMLTIuNzEsLTEuMjggTC0yLjYzLC0x
LjQ1IEwtMi41MywtMS42MSBMLTIuNDMsLTEuNzYgTC0yLjMxLC0xLjkxIEwtMi4xOSwtMi4wNSBM
LTIuMDUsLTIuMTkgTC0xLjkxLC0yLjMxIEwtMS43NiwtMi40MyBMLTEuNjEsLTIuNTMgTC0xLjQ1
LC0yLjYzIEwtMS4yOCwtMi43MSBMLTEuMTAsLTIuNzkgTC0wLjkzLC0yLjg1IEwtMC43NSwtMi45
MSBMLTAuNTYsLTIuOTUgTC0wLjM4LC0yLjk4IEwtMC4xOSwtMi45OSBMMC4wMCwtMy4wMCBMMC4x
OSwtMi45OSBMMC4zOCwtMi45OCBMMC41NiwtMi45NSBMMC43NSwtMi45MSBMMC45MywtMi44NSBM
MS4xMCwtMi43OSBMMS4yOCwtMi43MSBMMS40NSwtMi42MyBMMS42MSwtMi41MyBMMS43NiwtMi40
MyBMMS45MSwtMi4zMSBMMi4wNSwtMi4xOSBMMi4xOSwtMi4wNSBMMi4zMSwtMS45MSBMMi40Mywt
MS43NiBMMi41MywtMS42MSBMMi42MywtMS40NSBMMi43MSwtMS4yOCBMMi43OSwtMS4xMCBMMi44
NSwtMC45MyBMMi45MSwtMC43NSBMMi45NSwtMC41NiBMMi45OCwtMC4zOCBMMi45OSwtMC4xOSBa
Il0KICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTEyNSwwKSBzaXplIDI1MHgz
MyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsj
dGV4dH0gYXQgKDAsLTI3KSBzaXplIDI1MHgzMwogICAgICAgICAgICAgICBjaHVuayAxIChtaWRk
bGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtMTI0LjUwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDE4IHdpZHRoIDI0OS4wMDogInRleHQtYW5jaG9yOm1pZGRsZSIKICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzMuMzMsNDIxLjY3KSBzaXplIDM1NXg1NSBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMzAuMDAsMjgwLjAwKX1dCi0gICAg
ICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDMwMC4wMCw0NjUuODMpIHNpemUgODMuMzN4MS42
NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS01MC4wMCwwLjAwIEwwLjAwLDAuMDAiXQor
ICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgzMDAsNDY1LjgzKSBzaXplIDgzLjMzeDEu
NjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tNTAuMDAsMC4wMCBMMC4wMCwwLjAwIl0K
ICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgzNzguMzMsNDYxLjY3KSBzaXplIDEw
eDEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zLjAwLDAu
MDAgTDIuOTksMC4xOSBMMi45OCwwLjM4IEwyLjk1LDAuNTYgTDIuOTEsMC43NSBMMi44NSwwLjkz
IEwyLjc5LDEuMTAgTDIuNzEsMS4yOCBMMi42MywxLjQ1IEwyLjUzLDEuNjEgTDIuNDMsMS43NiBM
Mi4zMSwxLjkxIEwyLjE5LDIuMDUgTDIuMDUsMi4xOSBMMS45MSwyLjMxIEwxLjc2LDIuNDMgTDEu
NjEsMi41MyBMMS40NSwyLjYzIEwxLjI4LDIuNzEgTDEuMTAsMi43OSBMMC45MywyLjg1IEwwLjc1
LDIuOTEgTDAuNTYsMi45NSBMMC4zOCwyLjk4IEwwLjE5LDIuOTkgTC0wLjAwLDMuMDAgTC0wLjE5
LDIuOTkgTC0wLjM4LDIuOTggTC0wLjU2LDIuOTUgTC0wLjc1LDIuOTEgTC0wLjkzLDIuODUgTC0x
LjEwLDIuNzkgTC0xLjI4LDIuNzEgTC0xLjQ1LDIuNjMgTC0xLjYxLDIuNTMgTC0xLjc2LDIuNDMg
TC0xLjkxLDIuMzEgTC0yLjA1LDIuMTkgTC0yLjE5LDIuMDUgTC0yLjMxLDEuOTEgTC0yLjQzLDEu
NzYgTC0yLjUzLDEuNjEgTC0yLjYzLDEuNDUgTC0yLjcxLDEuMjggTC0yLjc5LDEuMTAgTC0yLjg1
LDAuOTMgTC0yLjkxLDAuNzUgTC0yLjk1LDAuNTYgTC0yLjk4LDAuMzggTC0yLjk5LDAuMTkgTC0z
LjAwLC0wLjAwIEwtMi45OSwtMC4xOSBMLTIuOTgsLTAuMzggTC0yLjk1LC0wLjU2IEwtMi45MSwt
MC43NSBMLTIuODUsLTAuOTMgTC0yLjc5LC0xLjEwIEwtMi43MSwtMS4yOCBMLTIuNjMsLTEuNDUg
TC0yLjUzLC0xLjYxIEwtMi40MywtMS43NiBMLTIuMzEsLTEuOTEgTC0yLjE5LC0yLjA1IEwtMi4w
NSwtMi4xOSBMLTEuOTEsLTIuMzEgTC0xLjc2LC0yLjQzIEwtMS42MSwtMi41MyBMLTEuNDUsLTIu
NjMgTC0xLjI4LC0yLjcxIEwtMS4xMCwtMi43OSBMLTAuOTMsLTIuODUgTC0wLjc1LC0yLjkxIEwt
MC41NiwtMi45NSBMLTAuMzgsLTIuOTggTC0wLjE5LC0yLjk5IEwwLjAwLC0zLjAwIEwwLjE5LC0y
Ljk5IEwwLjM4LC0yLjk4IEwwLjU2LC0yLjk1IEwwLjc1LC0yLjkxIEwwLjkzLC0yLjg1IEwxLjEw
LC0yLjc5IEwxLjI4LC0yLjcxIEwxLjQ1LC0yLjYzIEwxLjYxLC0yLjUzIEwxLjc2LC0yLjQzIEwx
LjkxLC0yLjMxIEwyLjA1LC0yLjE5IEwyLjE5LC0yLjA1IEwyLjMxLC0xLjkxIEwyLjQzLC0xLjc2
IEwyLjUzLC0xLjYxIEwyLjYzLC0xLjQ1IEwyLjcxLC0xLjI4IEwyLjc5LC0xLjEwIEwyLjg1LC0w
LjkzIEwyLjkxLC0wLjc1IEwyLjk1LC0wLjU2IEwyLjk4LC0wLjM4IEwyLjk5LC0wLjE5IFoiXQog
ICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtMjEwLDApIHNpemUgMjEweDMzIGNv
bnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0
fSBhdCAoMCwtMjcpIHNpemUgMjEweDMzCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL3RleHQvdGV4dC1hbGlnbi0wNS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1hbGlnbi0wNS1iLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQv
dGV4dC1hbGlnbi0wNS1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAxIGF0ICg1LjAwLDQwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAyOSB3aWR0aCA0NjUu
MDA6ICJUZXN0ICd0ZXh0LWFuY2hvcicgKHZlcnRpY2FsKSIKICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDI1MS42Nyw4NSkgc2l6ZSAxOTYuNjd4NDQwCiAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDI1MS42Nyw4NSkgc2l6ZSAxOTYuNjd4NDQwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE2MC4wMCwxNTAuMDApfV0KLSAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTEuNjcsMjQ1KSBzaXplIDMweDI4MAorICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MS42NywyNDUpIHNpemUgMzAuMDB4
MjgwCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNjEuNjcsMjQ1KSBzaXpl
IDEweDEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zLjAw
LDAuMDAgTDIuOTksMC4xOSBMMi45OCwwLjM4IEwyLjk1LDAuNTYgTDIuOTEsMC43NSBMMi44NSww
LjkzIEwyLjc5LDEuMTAgTDIuNzEsMS4yOCBMMi42MywxLjQ1IEwyLjUzLDEuNjEgTDIuNDMsMS43
NiBMMi4zMSwxLjkxIEwyLjE5LDIuMDUgTDIuMDUsMi4xOSBMMS45MSwyLjMxIEwxLjc2LDIuNDMg
TDEuNjEsMi41MyBMMS40NSwyLjYzIEwxLjI4LDIuNzEgTDEuMTAsMi43OSBMMC45MywyLjg1IEww
Ljc1LDIuOTEgTDAuNTYsMi45NSBMMC4zOCwyLjk4IEwwLjE5LDIuOTkgTC0wLjAwLDMuMDAgTC0w
LjE5LDIuOTkgTC0wLjM4LDIuOTggTC0wLjU2LDIuOTUgTC0wLjc1LDIuOTEgTC0wLjkzLDIuODUg
TC0xLjEwLDIuNzkgTC0xLjI4LDIuNzEgTC0xLjQ1LDIuNjMgTC0xLjYxLDIuNTMgTC0xLjc2LDIu
NDMgTC0xLjkxLDIuMzEgTC0yLjA1LDIuMTkgTC0yLjE5LDIuMDUgTC0yLjMxLDEuOTEgTC0yLjQz
LDEuNzYgTC0yLjUzLDEuNjEgTC0yLjYzLDEuNDUgTC0yLjcxLDEuMjggTC0yLjc5LDEuMTAgTC0y
Ljg1LDAuOTMgTC0yLjkxLDAuNzUgTC0yLjk1LDAuNTYgTC0yLjk4LDAuMzggTC0yLjk5LDAuMTkg
TC0zLjAwLC0wLjAwIEwtMi45OSwtMC4xOSBMLTIuOTgsLTAuMzggTC0yLjk1LC0wLjU2IEwtMi45
MSwtMC43NSBMLTIuODUsLTAuOTMgTC0yLjc5LC0xLjEwIEwtMi43MSwtMS4yOCBMLTIuNjMsLTEu
NDUgTC0yLjUzLC0xLjYxIEwtMi40MywtMS43NiBMLTIuMzEsLTEuOTEgTC0yLjE5LC0yLjA1IEwt
Mi4wNSwtMi4xOSBMLTEuOTEsLTIuMzEgTC0xLjc2LC0yLjQzIEwtMS42MSwtMi41MyBMLTEuNDUs
LTIuNjMgTC0xLjI4LC0yLjcxIEwtMS4xMCwtMi43OSBMLTAuOTMsLTIuODUgTC0wLjc1LC0yLjkx
IEwtMC41NiwtMi45NSBMLTAuMzgsLTIuOTggTC0wLjE5LC0yLjk5IEwwLjAwLC0zLjAwIEwwLjE5
LC0yLjk5IEwwLjM4LC0yLjk4IEwwLjU2LC0yLjk1IEwwLjc1LC0yLjkxIEwwLjkzLC0yLjg1IEwx
LjEwLC0yLjc5IEwxLjI4LC0yLjcxIEwxLjQ1LC0yLjYzIEwxLjYxLC0yLjUzIEwxLjc2LC0yLjQz
IEwxLjkxLC0yLjMxIEwyLjA1LC0yLjE5IEwyLjE5LC0yLjA1IEwyLjMxLC0xLjkxIEwyLjQzLC0x
Ljc2IEwyLjUzLC0xLjYxIEwyLjYzLC0xLjQ1IEwyLjcxLC0xLjI4IEwyLjc5LC0xLjEwIEwyLjg1
LC0wLjkzIEwyLjkxLC0wLjc1IEwyLjk1LC0wLjU2IEwyLjk4LC0wLjM4IEwyLjk5LC0wLjE5IFoi
XQogICAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC05LDI3KSBzaXplIDE4eDE2
NSBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQg
eyN0ZXh0fSBhdCAoMCwtMjcpIHNpemUgMTh4MTY1CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL3RleHQvdGV4dC1mb250cy0wMS10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1mb250cy0wMS10LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L3RleHQvdGV4dC1mb250cy0wMS10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw4
ICsyLDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyU1ZH
Um9vdCB7c3ZnfSBhdCAoMC44MywwLjgzKSBzaXplIDc5OC4zM3g1OTguMzMKLSAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgzMy4zMyw0Ni42Nykgc2l6ZSA1MTB4NDQ2LjY3Ci0gICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMy4zMyw0Ni42Nykgc2l6ZSA1MTB4NDQ2LjY3Cisg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzMuMzMsNDYuNjcpIHNpemUgNTEwLjAweDQ0
Ni42NworICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzMuMzMsNDYuNjcpIHNpemUg
NTEwLjAweDQ0Ni42NwogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMjAsODApIHNp
emUgMTk4eDI3IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVU
ZXh0IHsjdGV4dH0gYXQgKDAsLTIyKSBzaXplIDE5OHgyNwogICAgICAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICgyMC4wMCw4MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTcgd2lk
dGggMTk4LjAwOiAiQSBzZXJpZmVkIGZhY2UgXHh7NzUzQn1ceHs1MENGfSIKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRleHQtMDQtdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4
dC0wNC10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA0LXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC00LDM1ICs0LDM1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICgwLjgzLDAuODMpIHNpemUgNzk4LjMzeDU5OC4zMwogICAgIFJl
bmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg2MCwzMy4zMykgc2l6ZSA2OTYuNjd4NDgzLjMzCi0gICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MC4wMCwzMy4zMykgc2l6ZSAyNTYuNjd4NDEu
NjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAwLDQwLjAw
KX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MCwzMy4zMykgc2l6ZSAyNTYu
Njd4NDEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAw
LDQwLjAwKX1dCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtOTQsMCkgc2l6ZSA2
NHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA2NHgxOAogICAgICAgICAgICAgY2h1bmsgMSAoZW5kIGFu
Y2hvcikgdGV4dCBydW4gMSBhdCAoLTk0LjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDkgd2lkdGggNjQuMDA6ICJSZWZlcmVuY2UiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIxMC4wMCwzMy4zMykgc2l6ZSAxMDYuNjd4NDEuNjcKLSAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge3VzZX0gYXQgKDIxMC4wMCw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMwotICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLjAwLDYwLjAwKSBzaXplIDEz
LjMzeDEzLjMzCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAuMDAsNjAu
MDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMzUuMDAsNjAuMDAp
IHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDIzNS4wMCw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgxNS4wMCwwLjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgyMzUuMDAsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICgyNjAsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDI2MCw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzMC4wMCwwLjAwKX1dCi0gICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHt1c2V9IGF0ICgyODUsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI4NSw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4z
MyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0NS4wMCwwLjAwKX1d
Ci0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyODUsNjAuMDApIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwzMy4zMykgc2l6ZSAxMDYuNjd4NDEuNjcK
KyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIxMCw2MCkgc2l6ZSAxMy4z
M3gxMy4zMworICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLDYwKSBz
aXplIDEzLjMzeDEzLjMzCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAs
NjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMzUsNjApIHNpemUg
MTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIzNSw2
MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxNS4wMCwwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgy
MzUsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhG
Rl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQu
MDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNjAsNjApIHNp
emUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2
MCw2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSgzMC4wMCwwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgyNjAsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAw
LDQuMDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyODUsNjAp
IHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDI4NSw2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSg0NS4wMCwwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyODUsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00
LjAwLDQuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDAsMCkgc2l6
ZSA2MHgyNSBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVU
ZXh0IHsjdGV4dH0gYXQgKDAsLTIwKSBzaXplIDYweDI1CiAgICAgICAgICAgICAgIGNodW5rIDEg
dGV4dCBydW4gMSBhdCAoMC4wMCwwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA0IHdpZHRo
IDYwLjAwOiAiMTIzNCIKICAgICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQg
KDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKC00LC00KSBzaXpl
IDh4OCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDEyMS42NywxMDAuMDApIHNpemUgMjUzLjMzeDQxLjY3IFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEzMC4wMCw4MC4wMCl9XQor
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTIxLjY3LDEwMCkgc2l6ZSAyNTMuMzN4
NDEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAwLDgw
LjAwKX1dCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtNTcsMCkgc2l6ZSAyN3gx
OCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3Rl
eHR9IGF0ICgwLC0xNCkgc2l6ZSAyN3gxOAogICAgICAgICAgICAgY2h1bmsgMSAoZW5kIGFuY2hv
cikgdGV4dCBydW4gMSBhdCAoLTU3LjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDUg
d2lkdGggMjcuMDA6ICJ4IGFsbCIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0
ICgyMTAuMDAsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMjEwLjAwLDEyNi42Nykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIxMC4wMCwxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAw
IEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLDEyNi42Nykgc2l6ZSAxMy4zM3gxMy4zMworICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwxMjYuNjcpIHNpemUgMTMuMzN4MTMu
MzMKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAsMTI2LjY3KSBzaXplIDEz
LjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0t
NC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0My4zMywxMjYuNjcpIHNpemUgMTMuMzN4
MTMuMzMKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDMuMzMsMTI2LjY3
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDIwLjAwLDAuMDApfV0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNDMu
MzMsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4w
MCw0LjAwIFoiXQpAQCAtNTUsOSArNTUsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03NCwwKSBzaXplIDQ0eDE4IGNvbnRh
aW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQg
KDAsLTE0KSBzaXplIDQ0eDE4CiAgICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0
IHJ1biAxIGF0ICgtNzQuMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNiB3aWR0aCA0
NC4wMDogInggbW9yZSIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMTAu
MDAsMTkzLjMzKSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjEwLjAwLDE5My4zMykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDIxMC4wMCwxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAw
LC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoMjEwLDE5My4zMykgc2l6ZSAxMy4zM3gxMy4zMworICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMKKyAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAsMTkzLjMzKSBzaXplIDEzLjMzeDEz
LjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwt
NC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0My4zMywxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMK
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDMuMzMsMTkzLjMzKSBzaXpl
IDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIw
LjAwLDAuMDApfV0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNDMuMzMsMTkz
LjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAw
IFoiXQpAQCAtODMsOSArODMsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAg
ICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03OCwwKSBzaXplIDQ4eDE4IGNvbnRhaW5zIDEg
Y2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0
KSBzaXplIDQ4eDE4CiAgICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAx
IGF0ICgtNzguMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNyB3aWR0aCA0OC4wMDog
InggZmV3ZXIiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLjAwLDI2
MCkgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDIxMC4wMCwyNjApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgyMTAuMDAsMjYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDIxMCwyNjApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgyMTAsMjYwKSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoMjEwLDI2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0
ICgyNDMuMzMsMjYwKSBzaXplIDEzLjMzeDEzLjMzCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjQzLjMzLDI2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCwwLjAwKX1dCiAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMjQzLjMzLDI2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KQEAgLTEwNywxMyArMTA3LDEzIEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
LTU3LDApIHNpemUgMjd4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjd4MTgKICAgICAgICAgICAgIGNo
dW5rIDEgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKC01Ny4wMCwwLjAwKSBzdGFydE9mZnNl
dCAwIGVuZE9mZnNldCA1IHdpZHRoIDI3LjAwOiAieSBhbGwiCi0gICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7dXNlfSBhdCAoMjEwLjAwLDMxMC4wMCkgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMC4wMCwzMTApIHNpemUgMTMuMzN4MTMu
MzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDAp
fV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAuMDAsMzEwKSBzaXplIDEz
LjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0t
NC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIzNS4wMCwzMTguMzMpIHNpemUgMTMuMzN4
MTMuMzMKLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMzUuMDAsMzE4LjMz
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDE1LjAwLC01LjAwKX1dCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1
LjAwLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNjAsMzM1
LjAwKSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBh
dCAoMjEwLDMxMCkgc2l6ZSAxMy4zM3gxMy4zMworICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDIxMCwzMTApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgyMTAsMzEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0g
YXQgKDIzNSwzMTguMzMpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgyMzUsMzE4LjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLC01LjAwKX1dCisgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1LDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAs
LTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHt1c2V9IGF0ICgyNjAsMzM1KSBzaXplIDEzLjMzeDEzLjMzCiAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDMzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzMC4wMCw1LjAwKX1dCiAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDMzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAs
LTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHt1c2V9IGF0ICgyODUsMzQzLjMzKSBzaXplIDEzLjMzeDEzLjMzCkBAIC0xMjYsMTIgKzEy
NiwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyU1ZHVGV4
dCB7dGV4dH0gYXQgKC03NCwwKSBzaXplIDQ0eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDQ0eDE4CiAg
ICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNzQuMDAsMC4w
MCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNiB3aWR0aCA0NC4wMDogInkgbW9yZSIKLSAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMTAuMDAsMzkzLjMzKSBzaXplIDEzLjMz
eDEzLjMzCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLjAwLDM5My4z
Mykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIx
MC4wMCwzOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00
LjAwLDQuMDAgWiJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjM1LjAw
LDQwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIzNS4wMCw0MDEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAsLTUuMDApfV0KLSAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyMzUuMDAsNDAxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwt
NC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDIxMCwzOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTAsMzkzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEwLjAwKX1dCisgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjEwLDM5My4zMykgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMzUsNDAxLjY3KSBzaXplIDEzLjMzeDEzLjMzCisgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjM1LDQwMS42Nykgc2l6ZSAxMy4zM3gx
My4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCwtNS4w
MCl9XQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIzNSw0MDEuNjcpIHNpemUg
MTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjYwLDQxOC4zMykgc2l6ZSAxMy4zM3gx
My4zMwogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw0MTguMzMpIHNp
emUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MzAuMDAsNS4wMCl9XQogICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI2MCw0MTgu
MzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCkBAIC0xNDUsMTIgKzE0NSwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
ICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03OCwwKSBzaXplIDQ4eDE4IGNvbnRhaW5z
IDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
LTE0KSBzaXplIDQ4eDE4CiAgICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICgtNzguMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNyB3aWR0aCA0OC4w
MDogInkgZmV3ZXIiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLjAw
LDQ3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIxMC4wMCw0NzYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyMTAuMDAsNDc2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwt
NC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDIzNS4wMCw0ODUpIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgyMzUuMDAsNDg1KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLC01LjAwKX1dCi0gICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1LjAwLDQ4NSkgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMTAsNDc2LjY3KSBzaXplIDEzLjMzeDEzLjMzCisgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLDQ3Ni42Nykgc2l6ZSAxMy4zM3gx
My4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLC0xMC4w
MCl9XQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIxMCw0NzYuNjcpIHNpemUg
MTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjM1LDQ4NSkgc2l6ZSAxMy4zM3gxMy4z
MworICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIzNSw0ODUpIHNpemUgMTMu
MzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAs
LTUuMDApfV0KKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMzUsNDg1KSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI2MCw1MDEuNjcpIHNpemUgMTMuMzN4
MTMuMzMKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjAsNTAxLjY3KSBz
aXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDMwLjAwLDUuMDApfV0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsNTAx
LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAw
IFoiXQpAQCAtMTYxLDMyICsxNjEsMzIgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0yMCkgc2l6ZSA2MHg0
MAogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLC0xMC4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgNCB3aWR0aCA2MC4wMDogIjEyMzQiCiAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg0MDEuNjcsODMuMzMpIHNpemUgMzU1eDM0MS42NyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMjAuMDAsMC4wMCl9XQotICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NjguMzMsODMuMzMpIHNpemUgMjczLjMzeDc1IFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEzMC4wMCw4MC4wMCl9XQor
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NjguMzMsODMuMzMpIHNpemUgMjcz
LjMzeDc1LjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEzMC4w
MCw4MC4wMCl9XQogICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtNjksMCkgc2l6
ZSAzOXgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVU
ZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDM5eDE4CiAgICAgICAgICAgICAgIGNodW5rIDEg
KGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKC02OS4wMCwwLjAwKSBzdGFydE9mZnNldCAwIGVu
ZE9mZnNldCA3IHdpZHRoIDM5LjAwOiAieC95IGFsbCIKICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge3VzZX0gYXQgKDU3Ni42NywxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU3Ni42NywxMjYuNjcpIHNpemUgMTMuMzN4
MTMuMzMKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3Ni42NywxMjYuNjcp
IHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJd
Ci0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg2MTAsMTEwLjAwKSBzaXpl
IDEzLjMzeDEzLjMzCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAu
MDAsMTEwKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNjEwLjAwLDExMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDYxMCwxMTApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDYxMCwxMTApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICg2MTAsMTEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBM
NC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
dXNlfSBhdCAoNjQzLjMzLDExOC4zMykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjQzLjMzLDExOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MC4wMCwtNS4wMCl9XQog
ICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjQzLjMzLDExOC4zMykgc2l6ZSAx
My4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJN
LTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDY3Ni42NywxMzUpIHNpemUgMTMuMzN4
MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3Ni42NywxMzUu
MDApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oNjAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
Njc2LjY3LDEzNS4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBM
LTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3
Ni42NywxMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oNjAuMDAsNS4wMCl9XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNjc2LjY3LDEzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDcxMCwxNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDcxMC4wMCwxNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsMTAuMDApfV0KLSAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDcxMC4wMCwxNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAw
IEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg3MTAsMTQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDgwLjAwLDEwLjAwKX1dCisgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg3MTAsMTQzLjMzKSBzaXplIDEzLjMzeDEz
LjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwt
NC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICgyMCwtMTApIHNpemUgNzV4NDUgY29udGFpbnMgNCBjaHVu
ayhzKQogICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0yMCkg
c2l6ZSA3NXg0NQogICAgICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDIwLjAwLC0x
MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4wMDogIjEiCiAgICAgICAg
ICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNDAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEg
ZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAgICAgICBjaHVuayAzIHRleHQg
cnVuIDEgYXQgKDYwLjAwLDUuMDApIHN0YXJ0T2Zmc2V0IDIgZW5kT2Zmc2V0IDMgd2lkdGggMTUu
MDA6ICIzIgogICAgICAgICAgICAgICBjaHVuayA0IHRleHQgcnVuIDEgYXQgKDgwLjAwLDEwLjAw
KSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0IHdpZHRoIDE1LjAwOiAiNCIKLSAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDQwLjAwLDE1MCkgc2l6ZSAzMTYuNjd4OTAgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAwLDEyMC4wMCl9XQorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NDAsMTUwKSBzaXplIDMxNi42N3g5MCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMzAuMDAsMTIwLjAwKX1d
CiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC04NiwwKSBzaXplIDU2eDE4IGNv
bnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0
fSBhdCAoMCwtMTQpIHNpemUgNTZ4MTgKICAgICAgICAgICAgICAgY2h1bmsgMSAoZW5kIGFuY2hv
cikgdGV4dCBydW4gMSBhdCAoLTg2LjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDgg
d2lkdGggNTYuMDA6ICJ4L3kgbW9yZSIKQEAgLTE5NCw4ICsxOTQsOCBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU3
Ni42NywxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDU3Ni42NywxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICg2MTAsMTc2LjY3KSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAsMTc2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9XQotICAg
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEwLjAwLDE3Ni42Nykgc2l6ZSAxMy4z
M3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQu
MDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwxNzYuNjcpIHNpemUgMTMuMzN4MTMu
MzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAw
KX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAsMTc2LjY3KSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNjQzLjMzLDE4NSkgc2l6ZSAxMy4z
M3gxMy4zMwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjQzLjMzLDE4
NSkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSg0MC4wMCwtNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NjQzLjMzLDE4NSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KQEAgLTIwMyw4ICsyMDMsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3Ni42NywyMDEuNjcp
IHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oNjAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjc2
LjY3LDIwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDcxMCwy
MTApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDcxMC4wMCwyMTApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsMTAuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDcxMC4wMCwyMTApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICg3MTAsMjEwKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDgwLjAwLDEwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICg3MTAsMjEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNl
fSBhdCAoNzQzLjMzLDIyNi42Nykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoNzQzLjMzLDIyNi42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMjAuMDApfV0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDc0My4zMywyMjYuNjcpIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCkBAIC0yMTQs
NyArMjE0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgIGNo
dW5rIDIgdGV4dCBydW4gMSBhdCAoNDAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0
IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAgICAgICBjaHVuayAzIHRleHQgcnVuIDEgYXQg
KDYwLjAwLDUuMDApIHN0YXJ0T2Zmc2V0IDIgZW5kT2Zmc2V0IDMgd2lkdGggMTUuMDA6ICIzIgog
ICAgICAgICAgICAgICBjaHVuayA0IHRleHQgcnVuIDEgYXQgKDgwLjAwLDEwLjAwKSBzdGFydE9m
ZnNldCAzIGVuZE9mZnNldCA0IHdpZHRoIDE1LjAwOiAiNCIKLSAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNDMzLjMzLDIxNi42Nykgc2l6ZSAzMDB4NjYuNjcgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAwLDE2MC4wMCl9XQorICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MzMuMzMsMjE2LjY3KSBzaXplIDMwMC4wMHg2Ni42
NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMzAuMDAsMTYwLjAw
KX1dCiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC05MCwwKSBzaXplIDYweDE4
IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMTQpIHNpemUgNjB4MTgKICAgICAgICAgICAgICAgY2h1bmsgMSAoZW5kIGFu
Y2hvcikgdGV4dCBydW4gMSBhdCAoLTkwLjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDkgd2lkdGggNjAuMDA6ICJ4L3kgZmV3ZXIiCkBAIC0yMjIsOCArMjIyLDggQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg1NzYuNjcsMjYwKSBzaXplIDEzLjMzeDEzLjMzCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICg1NzYuNjcsMjYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNl
fSBhdCAoNjEwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNjEwLjAwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCwtMTAuMDApfV0KLSAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMC4wMCwyNDMuMzMpIHNpemUgMTMuMzN4
MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAw
LC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsMjQzLjMzKSBzaXplIDEzLjMzeDEzLjMz
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9
XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEwLDI0My4zMykgc2l6ZSAx
My4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJN
LTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDY0My4zMywyNTEuNjcpIHNpemUgMTMu
MzN4MTMuMzMKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY0My4zMywy
NTEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oNDAuMDAsLTUuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDY0My4zMywyNTEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQu
MDAgTC00LjAwLDQuMDAgWiJdCkBAIC0yNDUsMTggKzI0NSwxOCBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDU3Ni42
NywzMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDU3Ni42NywzMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3Ni42NywzMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHt1c2V9IGF0ICg2MTAsMzEwLjAwKSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAsMzEwKSBzaXplIDEzLjMzeDEz
LjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC0xMC4w
MCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEwLjAwLDMxMCkgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDYxMCwzMTApIHNpemUgMTMuMzN4
MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwzMTApIHNp
emUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MjAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAs
MzEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAw
IFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNjQzLjMzLDMxOC4z
Mykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNjQzLjMzLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSg0MC4wMCwtNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoNjQzLjMzLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDY3Ni42NywzMzUuMDApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDY3Ni42NywzMzUpIHNpemUgMTMuMzN4MTMuMzMK
ICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3Ni42NywzMzUpIHNpemUg
MTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAu
MDAsNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjc2LjY3LDMz
NSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBa
Il0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDcxMCwzMzUuMDApIHNp
emUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDcx
MC4wMCwzMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oODAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNzEwLjAwLDMzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDcxMCwzMzUpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDcxMCwzMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsNS4wMCl9XQorICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoNzEwLDMzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQu
MDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoMjAsLTEwKSBzaXplIDc1eDQwIGNvbnRhaW5zIDQgY2h1bmsocykKICAgICAgICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMjApIHNpemUgNzV4NDAKICAgICAgICAg
ICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCwtMTAuMDApIHN0YXJ0T2Zmc2V0IDAg
ZW5kT2Zmc2V0IDEgd2lkdGggMTUuMDA6ICIxIgpAQCAtMjcxLDggKzI3MSw4IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNTc2LjY3LDM5My4zMykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoNTc2LjY3LDM5My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDYxMCwzNzYuNjcpIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCwzNzYuNjcpIHNpemUgMTMuMzN4MTMuMzMg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAwKX1d
Ci0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAuMDAsMzc2LjY3KSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLDM3Ni42Nykgc2l6ZSAxMy4z
M3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCwt
MTAuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMCwzNzYuNjcp
IHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBb
ZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJd
CiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg2NDMuMzMsMzg1KSBzaXpl
IDEzLjMzeDEzLjMzCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2NDMu
MzMsMzg1KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDQwLjAwLC01LjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICg2NDMuMzMsMzg1KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAw
IEwtNC4wMCw0LjAwIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0
L3RleHQtdGV4dC0wNS10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA1LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRleHQt
MDUtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgt
NCwtMTUpIHNpemUgOHgxOQogICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgtMC41MCwt
MTUpIHNpemUgMXgxNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4w
MCwtMTUuMDAiXQogICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgtNCwtNCkgc2l6ZSA4
eDggW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS00LjAwLC00
LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgxNi42Nyw5My4zMykgc2l6ZSA3My4zM3g0MzAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAuMDAsNDAuMDApfV0KKyAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2LjY3LDkzLjMzKSBzaXplIDczLjMzeDQzMC4wMCBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCw0MC4wMCl9XQog
ICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwzMCkgc2l6ZSA0NHgxOCBjb250YWlu
cyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgw
LC0xNCkgc2l6ZSA0NHgxOAogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAw
LDMwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA3IHdpZHRoIDQ0LjAwOiAiMS54IDEueSIK
QEAgLTM2LDcgKzM2LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICgwLDI3MCkgc2l6ZSA0NHgxOCBjb250YWlucyAxIGNodW5r
KHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6
ZSA0NHgxOAogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDI3MC4wMCkg
c3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNyB3aWR0aCA0NC4wMDogIjIueCAyLnkiCi0gICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxOTAsMTUuMDApIHNpemUgMjM1eDUzNSBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNTAuMDAsNDAuMDApfV0KKyAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE5MCwxNSkgc2l6ZSAyMzV4NTM1IFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw0MC4wMCl9XQogICAgICAg
ICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTM2LC0xNykgc2l6ZSA3MngxOCBjb250YWlucyAx
IGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0x
NCkgc2l6ZSA3MngxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBy
dW4gMSBhdCAoLTM1LjUwLC0xNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTEgd2lkdGgg
NzEuMDA6ICJ0ZXh0LWFuY2hvciIKQEAgLTU3LDIyICs1NywyMiBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCwx
NDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMTAuMDAsNjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjYwLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge2xpbmV9IGF0ICgyNjUuODMsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDI3Ni42NywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI3Ni42NywxNDEuNjcpIHNpemUgMTMuMzN4MzEu
NjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsNjAuMDAp
fV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjc2LjY3LDE0MS42
Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0
ICgyODIuNTAsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMjc2LjY3LDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQu
MDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMjc2LjY3LDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDI5My4zMywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDI5My4zMywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsNjAuMDApfV0KICAgICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjkzLjMzLDE0MS42Nykgc2l6ZSAxMy4z
M3gzMS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyOTkuMTcsMTQx
LjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjkz
LjMzLDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjkzLjMz
LDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZG
XX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4w
MCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDMxMCwxNDEuNjcp
IHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDMxMCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oNDAuMDAsNjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMzEwLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgzMTUuODMsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAg
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzEwLDE2MC4wMCkgc2l6ZSAxMy4zM3gx
My4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzEwLDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQu
MDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdU
ZXh0IHt0ZXh0fSBhdCAoMTAsNjApIHNpemUgNDV4MTEgY29udGFpbnMgNCBjaHVuayhzKQogICAg
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC05KSBzaXplIDQ1eDEx
CiAgICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0
T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMTUuMDA6ICIxIgpAQCAtODMsMjggKzgzLDI4IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjYwLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCw5MC4wMCl9XQogICAgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjAsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAg
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDI2NS44MywxOTEuNjcpIHNpemUg
MS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUu
MDAiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsMjEwLjAwKSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQor
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsMjEwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMzQzLjMzLDE5MS42Nykgc2l6ZSAxMy4zM3gz
MS42NwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzQzLjMzLDE5MS42
Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSg2MC4wMCw5MC4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgzNDMuMzMsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDM0OS4xNywxOTEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDMuMzMsMjEwLjAwKSBzaXplIDEzLjMzeDEzLjMz
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4w
MCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDMuMzMsMjEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4w
MCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR1Rl
eHQge3RleHR9IGF0ICgxMCw5MCkgc2l6ZSA5NXgxMSBjb250YWlucyAyIGNodW5rKHMpCiAgICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTkpIHNpemUgOTV4MTEK
ICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCw5MC4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4wMDogIjEiCiAgICAgICAgICAgICAgIGNodW5r
IDIgdGV4dCBydW4gMSBhdCAoNjAuMDAsOTAuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDQg
d2lkdGggNDUuMDA6ICIyMzQiCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjQzLjMzLDIyNS4wMCkgc2l6ZSAxMDYuNjd4NjUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMC4wMCwxMjAuMDApfV0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoMjQzLjMzLDIyNS4wMCkgc2l6ZSAxMy4zM3gzMS42NwotICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNDMuMzMsMjI1LjAwKSBzaXplIDEzLjMz
eDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEw
LjAwKX1dCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQzLjMz
LDIyNS4wMCkgc2l6ZSAxMy4zM3gzMS42NwotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
bGluZX0gYXQgKDI0OS4xNywyMjUuMDApIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQorICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDI0My4zMywyMjUpIHNpemUgMTA2LjY3eDY1IFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMTIwLjAwKX1dCisgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0My4zMywyMjUpIHNpemUgMTMuMzN4MzEuNjcK
KyAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQzLjMzLDIyNSkgc2l6
ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgw
LjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDI0My4zMywyMjUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge2xpbmV9IGF0ICgyNDkuMTcsMjI1KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgyNDMuMzMsMjQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4w
MCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHt1c2V9IGF0ICgyNjguMzMsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2OC4zMywyMzMuMzMpIHNpemUg
MTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUu
MDAsLTUuMDApfV0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
NjguMzMsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtsaW5lfSBhdCAoMjc0LjE3LDIzMy4zMykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4
OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCiAgICAgICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjY4LjMzLDI1MS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjkzLjMzLDI1MC4wMCkgc2l6ZSAxMy4zM3gzMS42Nwor
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyOTMuMzMsMjUwKSBzaXpl
IDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5
My4zMywyNTApIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMzAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDI5My4zMywyNTApIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyOTkuMTcsMjUwKSBzaXplIDEuNjd4MjUgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KQEAgLTIxMCwx
MSArMjEwLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAg
IGNodW5rIDIgdGV4dCBydW4gMSBhdCAoMjAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zm
c2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAgICAgICAgIGNodW5rIDMgdGV4dCBydW4g
MSBhdCAoMzAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDIgZW5kT2Zmc2V0IDMgd2lkdGggMTUuMDA6
ICIzIgogICAgICAgICAgICAgICAgIGNodW5rIDQgdGV4dCBydW4gMSBhdCAoNDAuMDAsLTUuMDAp
IHN0YXJ0T2Zmc2V0IDMgZW5kT2Zmc2V0IDQgd2lkdGggMTUuMDA6ICI0IgotICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw0NzUuMDApIHNpemUgMTY1eDQwIFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMjcwLjAwKX1dCi0gICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI2MCw0NzUuMDApIHNpemUgMTMuMzN4
MzEuNjcKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDQ3NS4w
MCkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgyNjAsNDc1LjAwKSBzaXplIDEzLjMzeDMxLjY3Ci0gICAgICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtsaW5lfSBhdCAoMjY1LjgzLDQ3NS4wMCkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCisgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDQ3NSkgc2l6ZSAxNjV4NDAgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwyNzAuMDApfV0KKyAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjYwLDQ3NSkgc2l6ZSAxMy4zM3gzMS42
NworICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjAsNDc1KSBzaXpl
IDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEw
LjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDI2MCw0NzUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e2xpbmV9IGF0ICgyNjUuODMsNDc1KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0g
W2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyNjAsNDkzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHt1c2V9IGF0ICgzNDMuMzMsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0My4zMyw0ODMuMzMpIHNpemUgMTMuMzN4
MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsLTUu
MDApfV0KQEAgLTIyNSw3ICsyMjUsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC05KSBzaXplIDk1
eDE2CiAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwtMTAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMTUuMDA6ICIxIgogICAgICAgICAgICAg
ICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNjAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5k
T2Zmc2V0IDQgd2lkdGggNDUuMDA6ICIyMzQiCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgzNTYuNjcsMTUuMDApIHNpemUgMTk4LjMzeDUzNSBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgyNTAuMDAsNDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDM1Ni42NywxNSkgc2l6ZSAxOTguMzN4NTM1IFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCw0MC4wMCl9XQogICAgICAgICBSZW5kZXJT
VkdUZXh0IHt0ZXh0fSBhdCAoLTM2LC0xNykgc2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMp
CiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3
MngxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAo
LTM1LjUwLC0xNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTEgd2lkdGggNzEuMDA6ICJ0
ZXh0LWFuY2hvciIKQEAgLTI0NiwxOSArMjQ2LDE5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MjYuNjcsMTQx
LjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEwLjAwLDYwLjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoNDI2LjY3LDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQzMi41MCwxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQyNi42NywxNjAuMDApIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAg
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDI2LjY3LDE2MCkgc2l6ZSAxMy4zM3gx
My4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDQzLjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gz
MS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCw2MC4w
MCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ0My4zMywx
NDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xp
bmV9IGF0ICg0NDkuMTcsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0g
W2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICg0NDMuMzMsMTYwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwt
NC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDQ0My4zMywxNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAw
IEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDQ2MCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsNjAuMDApfV0KICAgICAgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NjAsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3
CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNDY1LjgzLDE0MS42Nykg
c2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAw
LC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDYwLDE2
MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZG
XX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4w
MCBaIl0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0NjAsMTYwKSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQog
ICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NzYuNjcsMTQxLjY3KSBz
aXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDQwLjAwLDYwLjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNDc2LjY3LDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDQ4Mi41MCwxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ3Ni42NywxNjAuMDApIHNpemUgMTMuMzN4MTMu
MzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00
LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDc2LjY3LDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIsNjApIHNpemUgNDZ4MTEgY29udGFpbnMgNCBjaHVuayhz
KQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtOSkg
c2l6ZSA0NngxMQogICAgICAgICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4
dCBydW4gMSBhdCAoMi41MCw2MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAx
NS4wMDogIjEiCkBAIC0yNjgsMTkgKzI2OCwxOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDI2LjY3LDE5MS42
Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxMC4wMCw5MC4wMCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDQyNi42NywxOTEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge2xpbmV9IGF0ICg0MzIuNTAsMTkxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0MjYuNjcsMjEwLjAwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MTAuMDAsMTkxLjY3KSBzaXplIDEzLjMz
eDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAwLDkw
LjAwKX1dCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTEwLjAw
LDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NworICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDQyNi42NywyMTApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAw
LDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDUxMCwxOTEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsOTAuMDApfV0KKyAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg1MTAsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAg
ICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTE1LjgzLDE5MS42Nykgc2l6ZSAx
LjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4w
MCJdCi0gICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTEwLjAwLDIxMC4w
MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBa
Il0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1MTAsMjEwKSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAg
ICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMiw5MCkgc2l6ZSA4MXgxMSBjb250
YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3Rl
eHR9IGF0ICgwLC05KSBzaXplIDgxeDExCiAgICAgICAgICAgICAgICAgICBjaHVuayAxIChtaWRk
bGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgyLjUwLDkwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9m
ZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIKICAgICAgICAgICAgICAgICAgIGNodW5rIDIgKG1pZGRs
ZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDM3LjUwLDkwLjAwKSBzdGFydE9mZnNldCAxIGVuZE9m
ZnNldCA0IHdpZHRoIDQ1LjAwOiAiMjM0IgotICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgzNjYuNjcsMjI1LjAwKSBzaXplIDEzMS42N3g2NSBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDEyMC4wMCl9XQotICAgICAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwyMjUuMDApIHNpemUgMTMuMzN4MzEuNjcg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDApfV0K
LSAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwyMjUuMDAp
IHNpemUgMTMuMzN4MzEuNjcKLSAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0g
YXQgKDQxNS44MywyMjUuMDApIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0
YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQorICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgzNjYuNjcsMjI1KSBzaXplIDEzMS42N3g2NSBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDEyMC4wMCl9XQorICAgICAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwyMjUpIHNpemUgMTMuMzN4MzEuNjcgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDApfV0KKyAg
ICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwyMjUpIHNpemUg
MTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQx
NS44MywyMjUpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMC4wMCwtMTUuMDAiXQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNDEwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICg0MzUsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLC01LjAwKX1dCiAgICAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg0MzUsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CkBAIC0z
NzYsMjAgKzM3NiwyMCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAg
ICAgICAgICAgY2h1bmsgMiAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMTIuNTAsLTUu
MDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAg
ICAgICAgICAgICBjaHVuayAzIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgyMi41MCwt
NS4wMCkgc3RhcnRPZmZzZXQgMiBlbmRPZmZzZXQgMyB3aWR0aCAxNS4wMDogIjMiCiAgICAgICAg
ICAgICAgICAgICAgIGNodW5rIDQgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDMyLjUw
LC01LjAwKSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0IHdpZHRoIDE1LjAwOiAiNCIKLSAgICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDIwLDQ3NS4wMCkgc2l6ZSAxMzV4
NDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwyNzAuMDAp
fV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MjYuNjcsNDc1
LjAwKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNDI2LjY3LDQ3NS4wMCkgc2l6ZSAxMy4zM3gzMS42NwotICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNDMyLjUwLDQ3NS4wMCkgc2l6ZSAxLjY3eDI1
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCisg
ICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQyMCw0NzUpIHNpemUgMTM1
eDQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMjcwLjAw
KX1dCisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDI2LjY3LDQ3
NSkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDQyNi42Nyw0NzUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQzMi41MCw0NzUpIHNpemUgMS42N3gyNSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQogICAgICAgICAg
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDI2LjY3LDQ5My4zMykgc2l6ZSAxMy4z
M3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQu
MDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MTAuMDAsNDgzLjMzKSBzaXplIDEz
LjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAw
LC01LjAwKX1dCi0gICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1
MTAuMDAsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3CisgICAgICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNTEwLDQ4My4zMykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg2MC4wMCwtNS4wMCl9XQorICAgICAgICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTEwLDQ4My4zMykgc2l6ZSAxMy4z
M3gzMS42NwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTE1Ljgz
LDQ4My4zMykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCww
LjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICg1MTAuMDAsNTAxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNTEwLDUwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoMiwtMTApIHNpemUgODF4MTYgY29udGFpbnMgMiBjaHVuayhzKQogICAgICAgICAgICAgICAg
ICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC05KSBzaXplIDgxeDE2CiAgICAg
ICAgICAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDIu
NTAsLTEwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIKICAg
ICAgICAgICAgICAgICAgICAgY2h1bmsgMiAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAo
MzcuNTAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDQgd2lkdGggNDUuMDA6ICIyMzQi
Ci0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0ODMuMzMsMTUuMDApIHNpemUgMjA2
LjY3eDUzNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzNTAuMDAs
NDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ4My4zMywxNSkgc2l6
ZSAyMDYuNjd4NTM1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDM1
MC4wMCw0MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTM2LC0xNykg
c2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOAogICAgICAgICAgICAgY2h1bmsgMSAo
bWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTM1LjUwLC0xNy4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgMTEgd2lkdGggNzEuMDA6ICJ0ZXh0LWFuY2hvciIKQEAgLTQxMCwxOSArNDEw
LDE5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg1OTMuMzMsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLDYwLjAwKX1dCiAgICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDE0MS42Nykgc2l6
ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDU5
OS4xNywxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDU5My4zMywxNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAw
LDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDYxMC4wMCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsNjAuMDApfV0KLSAgICAgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3
CisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTkzLjMzLDE2MCkgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLDE0MS42Nykgc2l6ZSAx
My4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4w
MCw2MC4wMCl9XQorICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYx
MCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e2xpbmV9IGF0ICg2MTUuODMsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICg2MTAuMDAsMTYwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4w
MCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7cmVjdH0gYXQgKDYxMCwxNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAw
IEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDYyNi42NywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsNjAuMDApfV0KICAgICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MjYuNjcsMTQxLjY3KSBzaXplIDEzLjMz
eDMxLjY3CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjMyLjUwLDE0
MS42Nykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NjI2LjY3LDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBM
LTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2
MjYuNjcsMTYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4w
MCw0LjAwIFoiXQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2NDMu
MzMsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDQwLjAwLDYwLjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNjQzLjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDY0OS4xNywxNDEuNjcpIHNpemUgMS42N3gy
NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQot
ICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDY0My4zMywxNjAuMDApIHNp
emUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0
YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisg
ICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjQzLjMzLDE2MCkgc2l6ZSAx
My4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJN
LTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAg
ICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC01LDYwKSBzaXplIDQ1eDExIGNvbnRh
aW5zIDQgY2h1bmsocykKICAgICAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDAsLTkpIHNpemUgNDV4MTEKICAgICAgICAgICAgICAgICAgIGNodW5rIDEgKGVuZCBh
bmNob3IpIHRleHQgcnVuIDEgYXQgKC01LjAwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxIHdpZHRoIDE1LjAwOiAiMSIKQEAgLTQzMiwxOSArNDMyLDE5IEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1
OTMuMzMsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDEwLjAwLDkwLjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDU5OS4xNywxOTEuNjcpIHNpemUgMS42
N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAi
XQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU5My4zMywyMTAuMDAp
IHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBb
ZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJd
CisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTkzLjMzLDIxMCkgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjc2LjY3LDE5MS42Nykgc2l6
ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg2
MC4wMCw5MC4wMCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDY3Ni42NywxOTEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg2ODIuNTAsMTkxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2NzYuNjcsMjEwLjAwKSBzaXplIDEzLjMzeDEzLjMz
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4w
MCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDY3Ni42NywyMTApIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAgIFJlbmRl
clNWR1RleHQge3RleHR9IGF0ICgtNSw5MCkgc2l6ZSA2NXgxMSBjb250YWlucyAyIGNodW5rKHMp
CiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC05KSBz
aXplIDY1eDExCiAgICAgICAgICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICgtNS4wMCw5MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4w
MDogIjEiCiAgICAgICAgICAgICAgICAgICBjaHVuayAyIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAx
IGF0ICgxNS4wMCw5MC4wMCkgc3RhcnRPZmZzZXQgMSBlbmRPZmZzZXQgNCB3aWR0aCA0NS4wMDog
IjIzNCIKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDgzLjMzLDIy
NS4wMCkgc2l6ZSAxODEuNjd4NjUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMC4wMCwxMjAuMDApfV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICg1NzYuNjcsMjI1LjAwKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEwLjAwKX1dCi0gICAgICAgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYuNjcsMjI1LjAwKSBzaXplIDEzLjMzeDMx
LjY3Ci0gICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1ODIuNTAsMjI1
LjAwKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDAuMDAsLTE1LjAwIl0KKyAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
NDgzLjMzLDIyNSkgc2l6ZSAxODEuNjd4NjUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMC4wMCwxMjAuMDApfV0KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICg1NzYuNjcsMjI1KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYuNjcsMjI1KSBzaXplIDEzLjMzeDMx
LjY3CisgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1ODIuNTAsMjI1
KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAu
MDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3
Ni42NywyNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00
LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
NjAxLjY3LDIzMy4zMykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgxNS4wMCwtNS4wMCl9XQogICAgICAgICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoNjAxLjY3LDIzMy4zMykgc2l6ZSAxMy4zM3gzMS42NwpAQCAt
NDY2LDEwICs0NjYsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1OTMuMzMsMjc1KSBzaXplIDEzLjMz
eDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1OTkuMTcs
Mjc1KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDU5My4zMywyOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAg
TC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNjEwLjAwLDI4My4zMykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCwtNS4wMCl9XQotICAgICAgICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLjAwLDI4My4zMykgc2l6ZSAxMy4zM3gzMS42Nwor
ICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwyODMuMzMpIHNp
emUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MjAuMDAsLTUuMDApfV0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDYxMCwyODMuMzMpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDYxNS44MywyODMuMzMpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEwLjAwLDMwMS42Nykgc2l6ZSAxMy4zM3gx
My4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMCwzMDEuNjcpIHNpemUgMTMuMzN4MTMu
MzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00
LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjI2LjY3LDMwMCkgc2l6ZSAxMy4zM3gzMS42
NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzMC4wMCw1LjAwKX1d
CiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MjYuNjcsMzAw
KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9
IGF0ICg2MzIuNTAsMzAwKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KQEAgLTQ4OSwxOCArNDg5LDE4IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoNTkzLjMzLDMyNSkgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTk5LjE3LDMyNSkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCiAgICAgICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1OTMuMzMsMzQzLjMzKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCwzMzMuMzMpIHNpemUgMTMu
MzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAs
LTUuMDApfV0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYx
MC4wMCwzMzMuMzMpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg2MTAsMzMzLjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC01LjAwKX1dCisgICAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsMzMzLjMzKSBzaXplIDEzLjMz
eDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MTUuODMs
MzMzLjMzKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDYxMC4wMCwzNTEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQu
MDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNjM1LjAwLDM1MCkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgzNS4wMCw1LjAwKX1dCi0gICAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg2MzUuMDAsMzUwKSBzaXplIDEzLjMzeDMxLjY3CisgICAg
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAsMzUxLjY3KSBzaXplIDEz
LjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0t
NC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYzNSwzNTApIHNpemUgMTMuMzN4
MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzUuMDAsNS4w
MCl9XQorICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjM1LDM1
MCkgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5l
fSBhdCAoNjQwLjgzLDM1MCkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICg2MzUuMDAsMzY4LjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDY2MC4wMCwzNTguMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsMTAuMDApfV0KLSAgICAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY2MC4wMCwzNTguMzMpIHNpemUg
MTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYz
NSwzNjguMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAw
LDQuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjYw
LDM1OC4zMykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSg1MC4wMCwxMC4wMCl9XQorICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNjYwLDM1OC4zMykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjY1LjgzLDM1OC4zMykgc2l6ZSAxLjY3eDI1
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0g
ICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2NjAuMDAsMzc2LjY3KSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQor
ICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjYwLDM3Ni42Nykgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAg
ICAgICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTI1LC0xMCkgc2l6ZSA0NXgz
MSBjb250YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVU
ZXh0IHsjdGV4dH0gYXQgKDAsLTkpIHNpemUgNDV4MzEKICAgICAgICAgICAgICAgICAgICAgY2h1
bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTUuMDAsLTEwLjAwKSBzdGFydE9mZnNl
dCAwIGVuZE9mZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIKQEAgLTUyMiwxMCArNTIyLDEwIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNTkzLjMzLDQyNSkgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTk5LjE3LDQyNSkgc2l6ZSAxLjY3eDI1IFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCiAgICAg
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1OTMuMzMsNDQzLjMzKSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAg
ICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCw0MzMuMzMpIHNp
emUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MjAuMDAsLTUuMDApfV0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDYxMC4wMCw0MzMuMzMpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsNDMzLjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC01LjAwKX1dCisgICAg
ICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsNDMzLjMzKSBzaXpl
IDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2
MTUuODMsNDMzLjMzKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDYxMC4wMCw0NTEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICg2MTAsNDUxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDYyNi42Nyw0MzMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsLTUuMDApfV0KICAgICAgICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYyNi42Nyw0MzMuMzMpIHNpemUgMTMuMzN4
MzEuNjcKICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDYzMi41MCw0
MzMuMzMpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4w
MCBMMC4wMCwtMTUuMDAiXQpAQCAtNTQwLDEwICs1NDAsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgICAgICAgICAgICAgICAgICAgIGNodW5rIDIgKGVuZCBhbmNob3IpIHRleHQg
cnVuIDEgYXQgKDUuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUu
MDA6ICIyIgogICAgICAgICAgICAgICAgICAgICBjaHVuayAzIChlbmQgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICgxNS4wMCwtNS4wMCkgc3RhcnRPZmZzZXQgMiBlbmRPZmZzZXQgMyB3aWR0aCAxNS4w
MDogIjMiCiAgICAgICAgICAgICAgICAgICAgIGNodW5rIDQgKGVuZCBhbmNob3IpIHRleHQgcnVu
IDEgYXQgKDI1LjAwLC01LjAwKSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0IHdpZHRoIDE1LjAw
OiAiNCIKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTc1LDQ3NS4w
MCkgc2l6ZSAxMTV4NDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MC4wMCwyNzAuMDApfV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg1OTMuMzMsNDc1LjAwKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDQ3NS4wMCkgc2l6ZSAxMy4zM3gzMS42Nwot
ICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTk5LjE3LDQ3NS4wMCkg
c2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAw
LC0xNS4wMCJdCisgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU3NSw0
NzUpIHNpemUgMTE1eDQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDAuMDAsMjcwLjAwKX1dCisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNTkzLjMzLDQ3NSkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgxMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDU5My4zMyw0NzUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAg
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDU5OS4xNyw0NzUpIHNpemUgMS42
N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAi
XQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTkzLjMzLDQ5My4z
Mykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBa
Il0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2NzYuNjcsNDgz
LjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDYwLjAwLC01LjAwKX1dCiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICg2NzYuNjcsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA2LXQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRleHQt
MDYtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNi10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtNjIsMTEgKzYyLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTkzLjMzLDE0MS42Nykgc2l6ZSAxMy4z
M3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLC0x
MC4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxOTMuMzMs
MTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGlu
ZX0gYXQgKDE5OS4xNywxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBb
ZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgxOTMuMzMsMTYwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgxOTMuMzMsMTYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNl
fSBhdCAoMjE4LjMzLDI0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMjE4LjMzLDI0MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJh
bnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCw1MC4wMCl9XQogICAg
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTguMzMsMjQxLjY3KSBzaXpl
IDEzLjMzeDMxLjY3Ci0gICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDIyNC4x
NywyNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAs
MC4wMCBMMC4wMCwtMTUuMDAiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0
ICgyMjQuMTcsMjQxLjY3KSBzaXplIDEuNjd4MjUuMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoMjE4LjMzLDI2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQu
MDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3Vz
ZX0gYXQgKDIxOC4zMywxNTguMzMpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDIxOC4zMywxNTguMzMpIHNpemUgMTMuMzN4MzEuNjcgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAsMC4wMCl9XQpAQCAt
ODIsNyArODIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2OC4zMywxOTEuNjcpIHNpemUgMTMuMzN4MzEuNjcg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDUuMDAsMjAuMDApfV0K
ICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjY4LjMzLDE5MS42Nykg
c2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgy
NzQuMTcsMTkxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMjY4LjMzLDIxMC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMjY4LjMzLDIxMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBM
LTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI5
My4zMywyMDguMzMpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDI5My4zMywyMDguMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsMzAuMDApfV0KICAgICAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjkzLjMzLDIwOC4zMykgc2l6ZSAxMy4zM3gz
MS42NwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtdHJlZi0w
MS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL3RleHQvdGV4dC10cmVmLTAxLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRyZWYtMDEtYi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0KICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lIHt0cmVmfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgx
MjAuODMsMzA0LjE3KSBzaXplIDQzNXgzOC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik03My4wMCwxODMuMDAgTDMzMy4wMCwxODMuMDAgTDMzMy4wMCwy
MDUuMDAgTDczLjAwLDIwNS4wMCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMjAu
ODMsMzA0LjE3KSBzaXplIDQzNS4wMHgzOC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik03My4wMCwxODMuMDAgTDMzMy4wMCwxODMuMDAgTDMzMy4wMCwy
MDUuMDAgTDczLjAwLDIwNS4wMCBaIl0KICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg3
MywyMTcpIHNpemUgMTU0eDE0IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xMSkgc2l6ZSAxNTR4MTQKICAgICAgICAgICBjaHVu
ayAxIHRleHQgcnVuIDEgYXQgKDczLjAwLDIxNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MzQgd2lkdGggMTU0LjAwOiAiJ3RyZWYnIHRvIGEgc3RyaW5nIGluIGFub3RoZXIgZmlsZSIKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5z
dmcJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgICAg
ICAgICBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVkUmVjdCIpKTsKICAgICAgICAgICAgIGlmIChjdG0uYS50b0Zp
eGVkKDMpID09IDAuMzU0ICYmIGN0bS5iLnRvRml4ZWQoMykgPT0gLTAuMzU0ICYmCiAgICAgICAg
ICAgICAgICAgY3RtLmMudG9GaXhlZCgzKSA9PSAwLjM1NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09
IDAuMzU0ICYmCi0gICAgICAgICAgICAgICAgIGN0bS5lLnRvRml4ZWQoMykgPT0gLTEwNy4wNzEg
JiYgY3RtLmYudG9GaXhlZCgxNSkgPT0gMC4wKSB7CisgICAgICAgICAgICAgICAgIGN0bS5lLnRv
Rml4ZWQoMykgPT0gLTEwNy4wNzEgJiYgY3RtLmYudG9GaXhlZCg4KSA9PSAwLjApIHsKICAgICAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIHZhciBjdG0gPSByZWZlcmVuY2VFbGVt
ZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JvdXAw
IikpOwogICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7Cg==
</data>
<flag name="review"
          id="13240"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27423</attachid>
            <date>2009-02-06 15:23:14 -0800</date>
            <delta_ts>2009-02-06 15:39:32 -0800</delta_ts>
            <desc>replacement patch</desc>
            <filename>6868.patch</filename>
            <type>text/plain</type>
            <size>451555</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDczNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTU0IEBACisyMDA5LTAyLTA2ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2OAorCisgICAgICAgIEkg
aGF2ZSBub3Qgb25seSBtYWRlIFRyYW5zZm9ybWF0aW9uTWF0cml4IHBsYXRmb3JtIGluZGVwZW5k
ZW50CisgICAgICAgIGJ1dCBJJ3ZlIGFsc28gYWRkZWQgM0QgbWV0aG9kcywgd2hpY2ggd2lsbCBi
ZSB1c2VkIHdoZW4gSSB1cGRhdGUKKyAgICAgICAgV2ViS2l0Q1NTTWF0cml4IHRvIGluY2x1ZGUg
M0QgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2ODkpLgor
ICAgICAgICBJIGFtIG5vdyBrZWVwaW5nIGEgZnVsbCA0eDQgbWF0cml4IGluIFRyYW5zZm9ybWF0
aW9uTWF0cml4LiBJJ20gYWxzbyBkb2luZyBhbGwKKyAgICAgICAgdGhlIG1hdGggYXMgZG91Ymxl
cyByYXRoZXIgdGhhbiBmbG9hdHMuIFRoaXMgbWFrZXMgYSBUcmFuc2Zvcm1hdGlvbk1hdHJpeAor
ICAgICAgICBnbyBmcm9tIDI0IGJ5dGVzIHRvIDEyOCBieXRlcywgYnV0IEkgZG9uJ3QgdGhpbmsg
dGhpcyBjbGFzcyBpcyB1c2VkIGVub3VnaCB0bworICAgICAgICBtYWtlIHRoaXMgb3ZlcmhlYWQg
d2lsbCBiZSBzaWduaWZpY2FudC4KKworICAgICAgICBUaGUgY2hhbmdlIGZyb20gZmxvYXRzIHRv
IGRvdWJsZXMgaGFzIGNhdXNlZCBzb21lIGRpZmZlcmVuY2VzIGluIHJvdW5kaW5nIGFuZAorICAg
ICAgICBkaXNwbGF5IChzb21ldGltZXMgdGhpbmdzIHRoYXQgZGlzcGxheWVkIGFzIC0wLjAgbm93
IGRpc3BsYXkgYXMgMC4wIG9yIHZpY2UgdmVyc2EpLAorICAgICAgICBzbyBJJ3ZlIGhhZCB0byBj
aGFuZ2Ugc29tZSBMYXlvdXRUZXN0IHJlc3VsdHMgaW4gdGhlIFNWRyB0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRQb2ludDo6bWF0cml4VHJhbnNmb3JtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmdldENUTSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3Jt
YXRpb25NYXRyaXhDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6b3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZGV0ZXJtaW5hbnQyeDIpOgorICAgICAgICAoV2ViQ29yZTo6ZGV0ZXJtaW5hbnQzeDMpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGV0ZXJtaW5hbnQ0eDQpOgorICAgICAgICAoV2ViQ29yZTo6YWRq
b2ludCk6CisgICAgICAgIChXZWJDb3JlOjppbnZlcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OnRy
YW5zcG9zZU1hdHJpeDQpOgorICAgICAgICAoV2ViQ29yZTo6djRNdWxQb2ludEJ5TWF0cml4KToK
KyAgICAgICAgKFdlYkNvcmU6OnYzTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OnYzU2NhbGUp
OgorICAgICAgICAoV2ViQ29yZTo6djNEb3QpOgorICAgICAgICAoV2ViQ29yZTo6djNDb21iaW5l
KToKKyAgICAgICAgKFdlYkNvcmU6OnYzQ3Jvc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZGVjb21w
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OnNsZXJwKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6ZmxpcFgpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VNYXBCZXR3ZWVuUmVjdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnByb2plY3RQb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcFF1YWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlM2QpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6OnJvdGF0ZTNkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4Ojp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXg6OnRyYW5zbGF0ZTNkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
Ojpza2V3KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjphcHBseVBl
cnNwZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjptdWx0
TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bXVsdFZlY01h
dHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnZlcnRp
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjppbnZlcnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmxvYXQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtYXRpb25NYXRyaXg6OmJsZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4OjpkZWNvbXBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXg6OnJlY29tcG9zZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg6OlRyYW5zZm9ybWF0aW9uTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4OjpzZXRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXg6Om9wZXJhdG9yID0pOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg6Om1ha2VJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6aXNJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6bWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMTEpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0xMSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTEyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMTIpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtYXRpb25NYXRyaXg6Om0xMyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6c2V0TTEzKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
MTQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0xNCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTIxKToKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMjEpOgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0yMik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6c2V0TTIyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4OjptMjMpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0y
Myk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTI0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMjQpOgorICAgICAgICAoV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zMSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTMxKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4OjptMzIpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6
OnNldE0zMik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTMzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzMpOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zNCk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTM0KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjptNDEpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg6OnNldE00MSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bTQyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNNDIpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6Om00Myk6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTQzKToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4OjptNDQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXg6OnNldE00NCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6YSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0QSk6
CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6Yik6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0Qik6CisgICAgICAgIChXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6c2V0Qyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
ZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0RCk6CisgICAg
ICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0RSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6c2V0Rik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bXVsdGlw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnJvdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tld1gpOgorICAgICAgICAo
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNrZXdZKToKKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4OjpoYXNQZXJzcGVjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4Ojppc0FmZmluZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6b3BlcmF0b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
b3BlcmF0b3IqKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGb3JlaWduT2JqZWN0Ojpub2RlQXRQb2ludCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQ
YXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6Om1hcEFic29sdXRlUG9pbnRU
b0xvY2FsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290
Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcjo6bm9kZUF0UG9pbnQpOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlTW90aW9uRWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxl
bWVudDo6dmlld3BvcnQpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm0uY3BwOgorICAgICAg
ICAoU1ZHVHJhbnNmb3JtOjpzZXRUcmFuc2xhdGUpOgorICAgICAgICAoU1ZHVHJhbnNmb3JtOjpz
ZXRTY2FsZSk6CisgICAgICAgIChTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZSk6CisgICAgICAgIChT
VkdUcmFuc2Zvcm06OnNldFNrZXdYKToKKyAgICAgICAgKFNWR1RyYW5zZm9ybTo6c2V0U2tld1kp
OgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdSZXNvdXJjZU1hcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZXNvdXJjZU1hcmtlcjo6ZHJhdyk6CisKIDIwMDktMDItMDYgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWcgMjM3NDE6IFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oKSBzaG91bGQgbm90IGNvbXBhcmUgQ29u
dGVudERhdGEgb2JqZWN0cyBieSBwb2ludGVyCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRQb2ludC5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBG
bG9hdFBvaW50OjpGbG9hdFBvaW50KGNvbnN0IEludFBvaW50JiBwCiBGbG9hdFBvaW50IEZsb2F0
UG9pbnQ6Om1hdHJpeFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNm
b3JtKSBjb25zdAogewogICAgIGRvdWJsZSBuZXdYLCBuZXdZOwotICAgIHRyYW5zZm9ybS5tYXAo
c3RhdGljX2Nhc3Q8ZG91YmxlPihtX3gpLCBzdGF0aWNfY2FzdDxkb3VibGU+KG1feSksICZuZXdY
LCAmbmV3WSk7CisgICAgdHJhbnNmb3JtLm1hcChzdGF0aWNfY2FzdDxkb3VibGU+KG1feCksIHN0
YXRpY19jYXN0PGRvdWJsZT4obV95KSwgbmV3WCwgbmV3WSk7CiAgICAgcmV0dXJuIG5hcnJvd1By
ZWNpc2lvbihuZXdYLCBuZXdZKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkwNyw3ICs5MDcsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y29uY2F0
Q1RNKGNvbnN0IFRyCiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IEdyYXBoaWNzQ29udGV4dDo6Z2V0
Q1RNKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ0dDb250ZXh0R2V0Q1RNKHBsYXRmb3JtQ29udGV4
dCgpKTsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0ID0gQ0dDb250ZXh0R2V0Q1RNKHBsYXRmb3Jt
Q29udGV4dCgpKTsKKyAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgodC5hLCB0LmIsIHQu
YywgdC5kLCB0LnR4LCB0LnR5KTsKIH0KIAogRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91
bmRUb0RldmljZVBpeGVscyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1RyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvVHJhbnNmb3JtYXRpb25NYXRyaXhDRy5j
cHAJKHJldmlzaW9uIDQwNjk4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTg3ICsyOCwxOSBA
QAogCiAjaWYgUExBVEZPUk0oQ0cpCiAKKyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dBZmZpbmVU
cmFuc2Zvcm0uaD4KICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0KLSNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRyYW5zZm9ybWF0aW9uTWF0cml4OjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpCi0gICAgOiBtX3RyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybUlk
ZW50aXR5KQotewotfQotCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeDo6VHJhbnNmb3JtYXRpb25NYXRy
aXgoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSB0eCwgZG91
YmxlIHR5KQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKG5hcnJv
d1ByZWNpc2lvblRvQ0dGbG9hdChhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoYiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGMpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9h
dChkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQcmVj
aXNpb25Ub0NHRmxvYXQodHgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCh0eSkpOwotfQotCi1UcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6VHJhbnNmb3JtYXRpb25NYXRyaXgoY29uc3QgUGxhdGZvcm1UcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdCkKLSAgICA6IG1fdHJhbnNmb3JtKHQpCi17Ci19Ci0KLXZvaWQgVHJhbnNmb3JtYXRp
b25NYXRyaXg6OnNldE1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3VibGUg
ZCwgZG91YmxlIHR4LCBkb3VibGUgdHkpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRy
YW5zZm9ybU1ha2UobmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGEpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQcmVjaXNpb25Ub0NH
RmxvYXQoYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93
UHJlY2lzaW9uVG9DR0Zsb2F0KGQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCh0eCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KHR5KSk7Ci19Ci0K
LXZvaWQgVHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJs
ZSAqeDIsIGRvdWJsZSAqeTIpIGNvbnN0Ci17Ci0gICAgQ0dQb2ludCByZXN1bHQgPSBDR1BvaW50
QXBwbHlBZmZpbmVUcmFuc2Zvcm0oQ0dQb2ludE1ha2UobmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0
KHgpLCBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoeSkpLCBtX3RyYW5zZm9ybSk7Ci0gICAgKngy
ID0gcmVzdWx0Lng7Ci0gICAgKnkyID0gcmVzdWx0Lnk7Ci19Ci0KLUludFJlY3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6Om1hcFJlY3QoY29uc3QgSW50UmVjdCAmcmVjdCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gZW5jbG9zaW5nSW50UmVjdChDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShDR1JlY3Qo
cmVjdCksIG1fdHJhbnNmb3JtKSk7Ci19Ci0KLUZsb2F0UmVjdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3QgJnJlY3QpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZs
b2F0UmVjdChDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShDR1JlY3QocmVjdCksIG1fdHJhbnNm
b3JtKSk7Ci19Ci0KLWJvb2wgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzSWRlbnRpdHkoKSBjb25z
dAotewotICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkobV90cmFuc2Zvcm0p
OwotfQotCi1kb3VibGUgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmEoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3RyYW5zZm9ybS5hOwotfQotCi12b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRB
KGRvdWJsZSBhKQotewotICAgIG1fdHJhbnNmb3JtLmEgPSBuYXJyb3dQcmVjaXNpb25Ub0NHRmxv
YXQoYSk7Ci19Ci0KLWRvdWJsZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fdHJhbnNmb3JtLmI7Ci19Ci0KLXZvaWQgVHJhbnNmb3JtYXRpb25NYXRyaXg6
OnNldEIoZG91YmxlIGIpCi17Ci0gICAgbV90cmFuc2Zvcm0uYiA9IG5hcnJvd1ByZWNpc2lvblRv
Q0dGbG9hdChiKTsKLX0KLQotZG91YmxlIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpjKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV90cmFuc2Zvcm0uYzsKLX0KLQotdm9pZCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6c2V0Qyhkb3VibGUgYykKLXsKLSAgICBtX3RyYW5zZm9ybS5jID0gbmFycm93UHJlY2lz
aW9uVG9DR0Zsb2F0KGMpOwotfQotCi1kb3VibGUgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmQoKSBj
b25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9ybS5kOwotfQotCi12b2lkIFRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXREKGRvdWJsZSBkKQotewotICAgIG1fdHJhbnNmb3JtLmQgPSBuYXJyb3dQ
cmVjaXNpb25Ub0NHRmxvYXQoZCk7Ci19Ci0KLWRvdWJsZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtLnR4OwotfQotCi12b2lkIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpzZXRFKGRvdWJsZSBlKQotewotICAgIG1fdHJhbnNmb3JtLnR4ID0g
bmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGUpOwotfQotCi1kb3VibGUgVHJhbnNmb3JtYXRpb25N
YXRyaXg6OmYoKSBjb25zdAotewotICAgIHJldHVybiBtX3RyYW5zZm9ybS50eTsKLX0KLQotdm9p
ZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0Rihkb3VibGUgZikKLXsKLSAgICBtX3RyYW5zZm9y
bS50eSA9IG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChmKTsKLX0KLQotdm9pZCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6cmVzZXQoKQotewotICAgIG1fdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zv
cm1JZGVudGl0eTsKLX0KLQotVHJhbnNmb3JtYXRpb25NYXRyaXggJlRyYW5zZm9ybWF0aW9uTWF0
cml4OjpzY2FsZShkb3VibGUgc3gsIGRvdWJsZSBzeSkKLXsKLSAgICBtX3RyYW5zZm9ybSA9IENH
QWZmaW5lVHJhbnNmb3JtU2NhbGUobV90cmFuc2Zvcm0sIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9h
dChzeCksIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChzeSkpOwotICAgIHJldHVybiAqdGhpczsK
LX0KLQotVHJhbnNmb3JtYXRpb25NYXRyaXggJlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpyb3RhdGUo
ZG91YmxlIGQpCi17Ci0gICAgbV90cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVJvdGF0ZSht
X3RyYW5zZm9ybSwgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGRlZzJyYWQoZCkpKTsKLSAgICBy
ZXR1cm4gKnRoaXM7Ci19Ci0KLVRyYW5zZm9ybWF0aW9uTWF0cml4ICZUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KQotewotICAgIG1fdHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUobV90cmFuc2Zvcm0sIG5hcnJvd1ByZWNpc2lv
blRvQ0dGbG9hdCh0eCksIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdCh0eSkpOwotICAgIHJldHVy
biAqdGhpczsKLX0KLQotVHJhbnNmb3JtYXRpb25NYXRyaXggJlRyYW5zZm9ybWF0aW9uTWF0cml4
OjpzaGVhcihkb3VibGUgc3gsIGRvdWJsZSBzeSkKLXsKLSAgICBDR0FmZmluZVRyYW5zZm9ybSBz
aGVhciA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZSgxLjBmLCBuYXJyb3dQcmVjaXNpb25Ub0NHRmxv
YXQoc3kpLCBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoc3gpLCAxLjBmLCAwLjBmLCAwLjBmKTsK
LSAgICBtX3RyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KHNoZWFyLCBtX3RyYW5z
Zm9ybSk7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1kb3VibGUgVHJhbnNmb3JtYXRpb25NYXRy
aXg6OmRldCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3JtLmEgKiBtX3RyYW5zZm9y
bS5kIC0gbV90cmFuc2Zvcm0uYiAqIG1fdHJhbnNmb3JtLmM7Ci19Ci0KLVRyYW5zZm9ybWF0aW9u
TWF0cml4IFRyYW5zZm9ybWF0aW9uTWF0cml4OjppbnZlcnNlKCkgY29uc3QKLXsKLSAgICBpZiAo
aXNJbnZlcnRpYmxlKCkpCi0gICAgICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeChDR0Fm
ZmluZVRyYW5zZm9ybUludmVydChtX3RyYW5zZm9ybSkpOwotICAgIHJldHVybiBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpOwotfQotCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeDo6b3BlcmF0b3IgUGxhdGZv
cm1UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHJhbnNmb3Jt
OwotfQotCi1ib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpvcGVyYXRvcj09IChjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCAmbTIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIENHQWZmaW5lVHJhbnNm
b3JtRXF1YWxUb1RyYW5zZm9ybShtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0obTIpKTsK
LX0KLQotVHJhbnNmb3JtYXRpb25NYXRyaXggJlRyYW5zZm9ybWF0aW9uTWF0cml4OjpvcGVyYXRv
cio9IChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCAmbTIpCi17Ci0gICAgbV90cmFuc2Zvcm0g
PSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChtX3RyYW5zZm9ybSwgQ0dBZmZpbmVUcmFuc2Zvcm0o
bTIpKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVRyYW5zZm9ybWF0aW9uTWF0cml4IFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpvcGVyYXRvciogKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4ICZt
MikKK1RyYW5zZm9ybWF0aW9uTWF0cml4OjpvcGVyYXRvciBDR0FmZmluZVRyYW5zZm9ybSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG1fdHJhbnNmb3JtLCBD
R0FmZmluZVRyYW5zZm9ybShtMikpOworICAgIHJldHVybiBDR0FmZmluZVRyYW5zZm9ybU1ha2Uo
bmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGEoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQoYigpKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRvQ0dGbG9hdChjKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93UHJlY2lzaW9uVG9DR0Zsb2F0KGQoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJyb3dQcmVjaXNpb25Ub0NHRmxvYXQo
ZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1ByZWNpc2lvblRv
Q0dGbG9hdChmKCkpKTsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCShy
ZXZpc2lvbiA0MDY5OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgog
CisjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMzQsMTcyICszNSwx
MDAzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHZvaWQgYWZmaW5lVHJhbnNm
b3JtRGVjb21wb3NlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGRvdWJsZSBz
cls5XSkKLXsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtKG1hdHJpeCk7Ci0KLSAgICAvLyBD
b21wdXRlIHNjYWxpbmcgZmFjdG9ycwotICAgIGRvdWJsZSBzeCA9IHNxcnQobS5hKCkgKiBtLmEo
KSArIG0uYigpICogbS5iKCkpOwotICAgIGRvdWJsZSBzeSA9IHNxcnQobS5jKCkgKiBtLmMoKSAr
IG0uZCgpICogbS5kKCkpOwotCi0gICAgLyogQ29tcHV0ZSBjcm9zcyBwcm9kdWN0IG9mIHRyYW5z
Zm9ybWVkIHVuaXQgdmVjdG9ycy4gSWYgbmVnYXRpdmUsCi0gICAgICAgIG9uZSBheGlzIHdhcyBm
bGlwcGVkLiAqLworLy8KKy8vIFN1cHBvcnRpbmcgTWF0aCBGdW5jdGlvbnMKKy8vCisvLyBUaGlz
IGlzIGEgc2V0IG9mIGZ1bmN0aW9uIGZyb20gdmFyaW91cyBwbGFjZXMgKGF0dHJpYnV0ZWQgaW5s
aW5lKSB0byBkbyB0aGluZ3MgbGlrZQorLy8gaW52ZXJzaW9uIGFuZCBkZWNvbXBvc2l0aW9uIG9m
IGEgNHg0IG1hdHJpeC4gVGhleSBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBjb2RlCisvLworCisv
LworLy8gQWRhcHRlZCBmcm9tIE1hdHJpeCBJbnZlcnNpb24gYnkgUmljaGFyZCBDYXJsaW5nLCBH
cmFwaGljcyBHZW1zIDxodHRwOi8vdG9nLmFjbS5vcmcvR3JhcGhpY3NHZW1zL2luZGV4Lmh0bWw+
LgorCisvLyBFVUxBOiBUaGUgR3JhcGhpY3MgR2VtcyBjb2RlIGlzIGNvcHlyaWdodC1wcm90ZWN0
ZWQuIEluIG90aGVyIHdvcmRzLCB5b3UgY2Fubm90IGNsYWltIHRoZSB0ZXh0IG9mIHRoZSBjb2Rl
IAorLy8gYXMgeW91ciBvd24gYW5kIHJlc2VsbCBpdC4gVXNpbmcgdGhlIGNvZGUgaXMgcGVybWl0
dGVkIGluIGFueSBwcm9ncmFtLCBwcm9kdWN0LCBvciBsaWJyYXJ5LCBub24tY29tbWVyY2lhbCAK
Ky8vIG9yIGNvbW1lcmNpYWwuIEdpdmluZyBjcmVkaXQgaXMgbm90IHJlcXVpcmVkLCB0aG91Z2gg
aXMgYSBuaWNlIGdlc3R1cmUuIFRoZSBjb2RlIGNvbWVzIGFzLWlzLCBhbmQgaWYgdGhlcmUgCisv
LyBhcmUgYW55IGZsYXdzIG9yIHByb2JsZW1zIHdpdGggYW55IEdlbXMgY29kZSwgbm9ib2R5IGlu
dm9sdmVkIHdpdGggR2VtcyAtIGF1dGhvcnMsIGVkaXRvcnMsIHB1Ymxpc2hlcnMsIG9yIAorLy8g
d2VibWFzdGVycyAtIGFyZSB0byBiZSBoZWxkIHJlc3BvbnNpYmxlLiBCYXNpY2FsbHksIGRvbid0
IGJlIGEgamVyaywgYW5kIHJlbWVtYmVyIHRoYXQgYW55dGhpbmcgZnJlZSBjb21lcyAKKy8vIHdp
dGggbm8gZ3VhcmFudGVlLgorCit0eXBlZGVmIGRvdWJsZSBWZWN0b3I0WzRdOwordHlwZWRlZiBk
b3VibGUgVmVjdG9yM1szXTsKKworY29uc3QgZG91YmxlIFNNQUxMX05VTUJFUiA9IDEuZS04Owor
CisvLyBpbnZlcnNlKG9yaWdpbmFsX21hdHJpeCwgaW52ZXJzZV9tYXRyaXgpCisvLyAKKy8vIGNh
bGN1bGF0ZSB0aGUgaW52ZXJzZSBvZiBhIDR4NCBtYXRyaXgKKy8vIAorLy8gLTEgICAgIAorLy8g
QSAgPSBfX18xX18gYWRqb2ludCBBCisvLyAgICAgICBkZXQgQQorCisvLyAgZG91YmxlID0gZGV0
ZXJtaW5hbnQyeDIoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQpCisvLyAg
CisvLyAgY2FsY3VsYXRlIHRoZSBkZXRlcm1pbmFudCBvZiBhIDJ4MiBtYXRyaXguCisKK3N0YXRp
YyBkb3VibGUgZGV0ZXJtaW5hbnQyeDIoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91
YmxlIGQpCit7CisgICAgcmV0dXJuIGEgKiBkIC0gYiAqIGM7Cit9CisKKy8vICBkb3VibGUgPSBk
ZXRlcm1pbmFudDN4MyhhMSwgYTIsIGEzLCBiMSwgYjIsIGIzLCBjMSwgYzIsIGMzKQorLy8gIAor
Ly8gIENhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQgb2YgYSAzeDMgbWF0cml4CisvLyAgaW4gdGhl
IGZvcm0KKy8vIAorLy8gICAgICB8IGExLCAgYjEsICBjMSB8CisvLyAgICAgIHwgYTIsICBiMiwg
IGMyIHwKKy8vICAgICAgfCBhMywgIGIzLCAgYzMgfAorCitzdGF0aWMgZG91YmxlIGRldGVybWlu
YW50M3gzKGRvdWJsZSBhMSwgZG91YmxlIGEyLCBkb3VibGUgYTMsIGRvdWJsZSBiMSwgZG91Ymxl
IGIyLCBkb3VibGUgYjMsIGRvdWJsZSBjMSwgZG91YmxlIGMyLCBkb3VibGUgYzMpCit7CisgICAg
cmV0dXJuIGExICogZGV0ZXJtaW5hbnQyeDIoYjIsIGIzLCBjMiwgYzMpCisgICAgICAgICAtIGIx
ICogZGV0ZXJtaW5hbnQyeDIoYTIsIGEzLCBjMiwgYzMpCisgICAgICAgICArIGMxICogZGV0ZXJt
aW5hbnQyeDIoYTIsIGEzLCBiMiwgYjMpOworfQorCisvLyAgZG91YmxlID0gZGV0ZXJtaW5hbnQ0
eDQobWF0cml4KQorLy8gIAorLy8gIGNhbGN1bGF0ZSB0aGUgZGV0ZXJtaW5hbnQgb2YgYSA0eDQg
bWF0cml4LgorCitzdGF0aWMgZG91YmxlIGRldGVybWluYW50NHg0KGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4OjpNYXRyaXg0JiBtKQoreworICAgIC8vIEFzc2lnbiB0byBpbmRpdmlkdWFsIHZh
cmlhYmxlIG5hbWVzIHRvIGFpZCBzZWxlY3RpbmcKKyAgICAvLyBjb3JyZWN0IGVsZW1lbnRzCisK
KyAgICBkb3VibGUgYTEgPSBtWzBdWzBdOworICAgIGRvdWJsZSBiMSA9IG1bMF1bMV07IAorICAg
IGRvdWJsZSBjMSA9IG1bMF1bMl07CisgICAgZG91YmxlIGQxID0gbVswXVszXTsKKworICAgIGRv
dWJsZSBhMiA9IG1bMV1bMF07CisgICAgZG91YmxlIGIyID0gbVsxXVsxXTsgCisgICAgZG91Ymxl
IGMyID0gbVsxXVsyXTsKKyAgICBkb3VibGUgZDIgPSBtWzFdWzNdOworCisgICAgZG91YmxlIGEz
ID0gbVsyXVswXTsgCisgICAgZG91YmxlIGIzID0gbVsyXVsxXTsKKyAgICBkb3VibGUgYzMgPSBt
WzJdWzJdOworICAgIGRvdWJsZSBkMyA9IG1bMl1bM107CisKKyAgICBkb3VibGUgYTQgPSBtWzNd
WzBdOworICAgIGRvdWJsZSBiNCA9IG1bM11bMV07IAorICAgIGRvdWJsZSBjNCA9IG1bM11bMl07
CisgICAgZG91YmxlIGQ0ID0gbVszXVszXTsKKworICAgIHJldHVybiBhMSAqIGRldGVybWluYW50
M3gzKGIyLCBiMywgYjQsIGMyLCBjMywgYzQsIGQyLCBkMywgZDQpCisgICAgICAgICAtIGIxICog
ZGV0ZXJtaW5hbnQzeDMoYTIsIGEzLCBhNCwgYzIsIGMzLCBjNCwgZDIsIGQzLCBkNCkKKyAgICAg
ICAgICsgYzEgKiBkZXRlcm1pbmFudDN4MyhhMiwgYTMsIGE0LCBiMiwgYjMsIGI0LCBkMiwgZDMs
IGQ0KQorICAgICAgICAgLSBkMSAqIGRldGVybWluYW50M3gzKGEyLCBhMywgYTQsIGIyLCBiMywg
YjQsIGMyLCBjMywgYzQpOworfQorCisvLyBhZGpvaW50KCBvcmlnaW5hbF9tYXRyaXgsIGludmVy
c2VfbWF0cml4ICkKKy8vCisvLyAgIGNhbGN1bGF0ZSB0aGUgYWRqb2ludCBvZiBhIDR4NCBtYXRy
aXgKKy8vCisvLyAgICBMZXQgIGEgICBkZW5vdGUgdGhlIG1pbm9yIGRldGVybWluYW50IG9mIG1h
dHJpeCBBIG9idGFpbmVkIGJ5CisvLyAgICAgICAgIGlqCisvLworLy8gICAgZGVsZXRpbmcgdGhl
IGl0aCByb3cgYW5kIGp0aCBjb2x1bW4gZnJvbSBBLgorLy8gCisvLyAgICAgICAgICAgICAgICAg
IGkragorLy8gICBMZXQgIGIgICA9ICgtMSkgICAgYQorLy8gICAgICAgIGlqICAgICAgICAgICAg
amkKKy8vIAorLy8gIFRoZSBtYXRyaXggQiA9IChiICApIGlzIHRoZSBhZGpvaW50IG9mIEEKKy8v
ICAgICAgICAgICAgICAgICAgIGlqCisKK3N0YXRpYyB2b2lkIGFkam9pbnQoY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIG1hdHJpeCwgVHJhbnNmb3JtYXRpb25NYXRyaXg6Ok1h
dHJpeDQmIHJlc3VsdCkKK3sKKyAgICAvLyBBc3NpZ24gdG8gaW5kaXZpZHVhbCB2YXJpYWJsZSBu
YW1lcyB0byBhaWQKKyAgICAvLyBzZWxlY3RpbmcgY29ycmVjdCB2YWx1ZXMKKyAgICBkb3VibGUg
YTEgPSBtYXRyaXhbMF1bMF07CisgICAgZG91YmxlIGIxID0gbWF0cml4WzBdWzFdOyAKKyAgICBk
b3VibGUgYzEgPSBtYXRyaXhbMF1bMl07CisgICAgZG91YmxlIGQxID0gbWF0cml4WzBdWzNdOwor
CisgICAgZG91YmxlIGEyID0gbWF0cml4WzFdWzBdOworICAgIGRvdWJsZSBiMiA9IG1hdHJpeFsx
XVsxXTsgCisgICAgZG91YmxlIGMyID0gbWF0cml4WzFdWzJdOworICAgIGRvdWJsZSBkMiA9IG1h
dHJpeFsxXVszXTsKKworICAgIGRvdWJsZSBhMyA9IG1hdHJpeFsyXVswXTsKKyAgICBkb3VibGUg
YjMgPSBtYXRyaXhbMl1bMV07CisgICAgZG91YmxlIGMzID0gbWF0cml4WzJdWzJdOworICAgIGRv
dWJsZSBkMyA9IG1hdHJpeFsyXVszXTsKKworICAgIGRvdWJsZSBhNCA9IG1hdHJpeFszXVswXTsK
KyAgICBkb3VibGUgYjQgPSBtYXRyaXhbM11bMV07IAorICAgIGRvdWJsZSBjNCA9IG1hdHJpeFsz
XVsyXTsKKyAgICBkb3VibGUgZDQgPSBtYXRyaXhbM11bM107CisKKyAgICAvLyBSb3cgY29sdW1u
IGxhYmVsaW5nIHJldmVyc2VkIHNpbmNlIHdlIHRyYW5zcG9zZSByb3dzICYgY29sdW1ucworICAg
IHJlc3VsdFswXVswXSAgPSAgIGRldGVybWluYW50M3gzKGIyLCBiMywgYjQsIGMyLCBjMywgYzQs
IGQyLCBkMywgZDQpOworICAgIHJlc3VsdFsxXVswXSAgPSAtIGRldGVybWluYW50M3gzKGEyLCBh
MywgYTQsIGMyLCBjMywgYzQsIGQyLCBkMywgZDQpOworICAgIHJlc3VsdFsyXVswXSAgPSAgIGRl
dGVybWluYW50M3gzKGEyLCBhMywgYTQsIGIyLCBiMywgYjQsIGQyLCBkMywgZDQpOworICAgIHJl
c3VsdFszXVswXSAgPSAtIGRldGVybWluYW50M3gzKGEyLCBhMywgYTQsIGIyLCBiMywgYjQsIGMy
LCBjMywgYzQpOworICAgICAgICAKKyAgICByZXN1bHRbMF1bMV0gID0gLSBkZXRlcm1pbmFudDN4
MyhiMSwgYjMsIGI0LCBjMSwgYzMsIGM0LCBkMSwgZDMsIGQ0KTsKKyAgICByZXN1bHRbMV1bMV0g
ID0gICBkZXRlcm1pbmFudDN4MyhhMSwgYTMsIGE0LCBjMSwgYzMsIGM0LCBkMSwgZDMsIGQ0KTsK
KyAgICByZXN1bHRbMl1bMV0gID0gLSBkZXRlcm1pbmFudDN4MyhhMSwgYTMsIGE0LCBiMSwgYjMs
IGI0LCBkMSwgZDMsIGQ0KTsKKyAgICByZXN1bHRbM11bMV0gID0gICBkZXRlcm1pbmFudDN4Myhh
MSwgYTMsIGE0LCBiMSwgYjMsIGI0LCBjMSwgYzMsIGM0KTsKKyAgICAgICAgCisgICAgcmVzdWx0
WzBdWzJdICA9ICAgZGV0ZXJtaW5hbnQzeDMoYjEsIGIyLCBiNCwgYzEsIGMyLCBjNCwgZDEsIGQy
LCBkNCk7CisgICAgcmVzdWx0WzFdWzJdICA9IC0gZGV0ZXJtaW5hbnQzeDMoYTEsIGEyLCBhNCwg
YzEsIGMyLCBjNCwgZDEsIGQyLCBkNCk7CisgICAgcmVzdWx0WzJdWzJdICA9ICAgZGV0ZXJtaW5h
bnQzeDMoYTEsIGEyLCBhNCwgYjEsIGIyLCBiNCwgZDEsIGQyLCBkNCk7CisgICAgcmVzdWx0WzNd
WzJdICA9IC0gZGV0ZXJtaW5hbnQzeDMoYTEsIGEyLCBhNCwgYjEsIGIyLCBiNCwgYzEsIGMyLCBj
NCk7CisgICAgICAgIAorICAgIHJlc3VsdFswXVszXSAgPSAtIGRldGVybWluYW50M3gzKGIxLCBi
MiwgYjMsIGMxLCBjMiwgYzMsIGQxLCBkMiwgZDMpOworICAgIHJlc3VsdFsxXVszXSAgPSAgIGRl
dGVybWluYW50M3gzKGExLCBhMiwgYTMsIGMxLCBjMiwgYzMsIGQxLCBkMiwgZDMpOworICAgIHJl
c3VsdFsyXVszXSAgPSAtIGRldGVybWluYW50M3gzKGExLCBhMiwgYTMsIGIxLCBiMiwgYjMsIGQx
LCBkMiwgZDMpOworICAgIHJlc3VsdFszXVszXSAgPSAgIGRldGVybWluYW50M3gzKGExLCBhMiwg
YTMsIGIxLCBiMiwgYjMsIGMxLCBjMiwgYzMpOworfQorCisvLyBSZXR1cm5zIGZhbHNlIGlmIHRo
ZSBtYXRyaXggaXMgbm90IGludmVydGlibGUKK3N0YXRpYyBib29sIGludmVyc2UoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIG1hdHJpeCwgVHJhbnNmb3JtYXRpb25NYXRyaXg6
Ok1hdHJpeDQmIHJlc3VsdCkKK3sKKyAgICAvLyBDYWxjdWxhdGUgdGhlIGFkam9pbnQgbWF0cml4
CisgICAgYWRqb2ludChtYXRyaXgsIHJlc3VsdCk7CisKKyAgICAvLyBDYWxjdWxhdGUgdGhlIDR4
NCBkZXRlcm1pbmFudAorICAgIC8vIElmIHRoZSBkZXRlcm1pbmFudCBpcyB6ZXJvLCAKKyAgICAv
LyB0aGVuIHRoZSBpbnZlcnNlIG1hdHJpeCBpcyBub3QgdW5pcXVlLgorICAgIGRvdWJsZSBkZXQg
PSBkZXRlcm1pbmFudDR4NChtYXRyaXgpOworCisgICAgaWYgKGZhYnMoZGV0KSA8IFNNQUxMX05V
TUJFUikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gU2NhbGUgdGhlIGFkam9pbnQg
bWF0cml4IHRvIGdldCB0aGUgaW52ZXJzZQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBp
KyspCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgNDsgaisrKQorICAgICAgICAgICAgcmVz
dWx0W2ldW2pdID0gcmVzdWx0W2ldW2pdIC8gZGV0OworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
Ky8vIEVuZCBvZiBjb2RlIGFkYXB0ZWQgZnJvbSBNYXRyaXggSW52ZXJzaW9uIGJ5IFJpY2hhcmQg
Q2FybGluZworCisvLyBQZXJmb3JtIGEgZGVjb21wb3NpdGlvbiBvbiB0aGUgcGFzc2VkIG1hdHJp
eCwgcmV0dXJuIGZhbHNlIGlmIHVuc3VjY2Vzc2Z1bAorLy8gRnJvbSBHcmFwaGljcyBHZW1zOiB1
bm1hdHJpeC5jCisKKy8vIFRyYW5zcG9zZSByb3RhdGlvbiBwb3J0aW9uIG9mIG1hdHJpeCBhLCBy
ZXR1cm4gYgorc3RhdGljIHZvaWQgdHJhbnNwb3NlTWF0cml4NChjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6TWF0cml4NCYgYSwgVHJhbnNmb3JtYXRpb25NYXRyaXg6Ok1hdHJpeDQmIGIpCit7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgIGZvciAoaW50IGogPSAw
OyBqIDwgNDsgaisrKQorICAgICAgICAgICAgYltpXVtqXSA9IGFbal1baV07Cit9CisKKy8vIE11
bHRpcGx5IGEgaG9tb2dlbmVvdXMgcG9pbnQgYnkgYSBtYXRyaXggYW5kIHJldHVybiB0aGUgdHJh
bnNmb3JtZWQgcG9pbnQKK3N0YXRpYyB2b2lkIHY0TXVsUG9pbnRCeU1hdHJpeChjb25zdCBWZWN0
b3I0IHAsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4OjpNYXRyaXg0JiBtLCBWZWN0b3I0IHJl
c3VsdCkKK3sKKyAgICByZXN1bHRbMF0gPSAocFswXSAqIG1bMF1bMF0pICsgKHBbMV0gKiBtWzFd
WzBdKSArCisgICAgICAgICAgICAgICAgKHBbMl0gKiBtWzJdWzBdKSArIChwWzNdICogbVszXVsw
XSk7CisgICAgcmVzdWx0WzFdID0gKHBbMF0gKiBtWzBdWzFdKSArIChwWzFdICogbVsxXVsxXSkg
KworICAgICAgICAgICAgICAgIChwWzJdICogbVsyXVsxXSkgKyAocFszXSAqIG1bM11bMV0pOwor
ICAgIHJlc3VsdFsyXSA9IChwWzBdICogbVswXVsyXSkgKyAocFsxXSAqIG1bMV1bMl0pICsKKyAg
ICAgICAgICAgICAgICAocFsyXSAqIG1bMl1bMl0pICsgKHBbM10gKiBtWzNdWzJdKTsKKyAgICBy
ZXN1bHRbM10gPSAocFswXSAqIG1bMF1bM10pICsgKHBbMV0gKiBtWzFdWzNdKSArCisgICAgICAg
ICAgICAgICAgKHBbMl0gKiBtWzJdWzNdKSArIChwWzNdICogbVszXVszXSk7Cit9CisKK3N0YXRp
YyBkb3VibGUgdjNMZW5ndGgoVmVjdG9yMyBhKSAKK3sKKyAgICByZXR1cm4gc3FydCgoYVswXSAq
IGFbMF0pKyhhWzFdICogYVsxXSkgKyAoYVsyXSAqIGFbMl0pKTsKK30KKworc3RhdGljIHZvaWQg
djNTY2FsZShWZWN0b3IzIHYsIGRvdWJsZSBkZXNpcmVkTGVuZ3RoKSAKK3sKKyAgICBkb3VibGUg
bGVuID0gdjNMZW5ndGgodik7CisgICAgaWYgKGxlbiAhPSAwKSB7CisgICAgICAgIGRvdWJsZSBs
ID0gZGVzaXJlZExlbmd0aCAvIGxlbjsKKyAgICAgICAgdlswXSAqPSBsOworICAgICAgICB2WzFd
ICo9IGw7CisgICAgICAgIHZbMl0gKj0gbDsKKyAgICB9Cit9CiAKLSAgICBpZiAobS5hKCkgKiBt
LmQoKSAtIG0uYygpICogbS5iKCkgPCAwLjApIHsKLSAgICAgICAgLy8gRmxpcCBheGlzIHdpdGgg
bWluaW11bSB1bml0IHZlY3RvciBkb3QgcHJvZHVjdAorc3RhdGljIGRvdWJsZSB2M0RvdChjb25z
dCBWZWN0b3IzIGEsIGNvbnN0IFZlY3RvcjMgYikgCit7CisgICAgcmV0dXJuIChhWzBdICogYlsw
XSkgKyAoYVsxXSAqIGJbMV0pICsgKGFbMl0gKiBiWzJdKTsKK30KIAotICAgICAgICBpZiAobS5h
KCkgPCBtLmQoKSkKLSAgICAgICAgICAgIHN4ID0gLXN4OwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzeSA9IC1zeTsKKy8vIE1ha2UgYSBsaW5lYXIgY29tYmluYXRpb24gb2YgdHdvIHZlY3Rv
cnMgYW5kIHJldHVybiB0aGUgcmVzdWx0LgorLy8gcmVzdWx0ID0gKGEgKiBhc2NsKSArIChiICog
YnNjbCkKK3N0YXRpYyB2b2lkIHYzQ29tYmluZSAoY29uc3QgVmVjdG9yMyBhLCBjb25zdCBWZWN0
b3IzIGIsIFZlY3RvcjMgcmVzdWx0LCBkb3VibGUgYXNjbCwgZG91YmxlIGJzY2wpIAoreworICAg
IHJlc3VsdFswXSA9IChhc2NsICogYVswXSkgKyAoYnNjbCAqIGJbMF0pOworICAgIHJlc3VsdFsx
XSA9IChhc2NsICogYVsxXSkgKyAoYnNjbCAqIGJbMV0pOworICAgIHJlc3VsdFsyXSA9IChhc2Ns
ICogYVsyXSkgKyAoYnNjbCAqIGJbMl0pOworfQorCisvLyBSZXR1cm4gdGhlIGNyb3NzIHByb2R1
Y3QgcmVzdWx0ID0gYSBjcm9zcyBiICovCitzdGF0aWMgdm9pZCB2M0Nyb3NzKGNvbnN0IFZlY3Rv
cjMgYSwgY29uc3QgVmVjdG9yMyBiLCBWZWN0b3IzIHJlc3VsdCkKK3sKKyAgICByZXN1bHRbMF0g
PSAoYVsxXSAqIGJbMl0pIC0gKGFbMl0gKiBiWzFdKTsKKyAgICByZXN1bHRbMV0gPSAoYVsyXSAq
IGJbMF0pIC0gKGFbMF0gKiBiWzJdKTsKKyAgICByZXN1bHRbMl0gPSAoYVswXSAqIGJbMV0pIC0g
KGFbMV0gKiBiWzBdKTsKK30KKworc3RhdGljIGJvb2wgZGVjb21wb3NlKGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4OjpNYXRyaXg0JiBtYXQsIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpEZWNvbXBv
c2VkVHlwZSYgcmVzdWx0KQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpNYXRyaXg0IGxv
Y2FsTWF0cml4OworICAgIG1lbWNweShsb2NhbE1hdHJpeCwgbWF0LCBzaXplb2YoVHJhbnNmb3Jt
YXRpb25NYXRyaXg6Ok1hdHJpeDQpKTsKKworICAgIC8vIE5vcm1hbGl6ZSB0aGUgbWF0cml4Lgor
ICAgIGlmIChsb2NhbE1hdHJpeFszXVszXSA9PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpbnQgaSwgajsKKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQorICAgICAgICBmb3Ig
KGogPSAwOyBqIDwgNDsgaisrKQorICAgICAgICAgICAgbG9jYWxNYXRyaXhbaV1bal0gLz0gbG9j
YWxNYXRyaXhbM11bM107CisKKyAgICAvLyBwZXJzcGVjdGl2ZU1hdHJpeCBpcyB1c2VkIHRvIHNv
bHZlIGZvciBwZXJzcGVjdGl2ZSwgYnV0IGl0IGFsc28gcHJvdmlkZXMKKyAgICAvLyBhbiBlYXN5
IHdheSB0byB0ZXN0IGZvciBzaW5ndWxhcml0eSBvZiB0aGUgdXBwZXIgM3gzIGNvbXBvbmVudC4K
KyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6TWF0cml4NCBwZXJzcGVjdGl2ZU1hdHJpeDsKKyAg
ICBtZW1jcHkocGVyc3BlY3RpdmVNYXRyaXgsIGxvY2FsTWF0cml4LCBzaXplb2YoVHJhbnNmb3Jt
YXRpb25NYXRyaXg6Ok1hdHJpeDQpKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorICAg
ICAgICBwZXJzcGVjdGl2ZU1hdHJpeFtpXVszXSA9IDA7CisgICAgcGVyc3BlY3RpdmVNYXRyaXhb
M11bM10gPSAxOworCisgICAgaWYgKGRldGVybWluYW50NHg0KHBlcnNwZWN0aXZlTWF0cml4KSA9
PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGaXJzdCwgaXNvbGF0ZSBwZXJz
cGVjdGl2ZS4gIFRoaXMgaXMgdGhlIG1lc3NpZXN0LgorICAgIGlmIChsb2NhbE1hdHJpeFswXVsz
XSAhPSAwIHx8IGxvY2FsTWF0cml4WzFdWzNdICE9IDAgfHwgbG9jYWxNYXRyaXhbMl1bM10gIT0g
MCkgeworICAgICAgICAvLyByaWdodEhhbmRTaWRlIGlzIHRoZSByaWdodCBoYW5kIHNpZGUgb2Yg
dGhlIGVxdWF0aW9uLgorICAgICAgICBWZWN0b3I0IHJpZ2h0SGFuZFNpZGU7CisgICAgICAgIHJp
Z2h0SGFuZFNpZGVbMF0gPSBsb2NhbE1hdHJpeFswXVszXTsKKyAgICAgICAgcmlnaHRIYW5kU2lk
ZVsxXSA9IGxvY2FsTWF0cml4WzFdWzNdOworICAgICAgICByaWdodEhhbmRTaWRlWzJdID0gbG9j
YWxNYXRyaXhbMl1bM107CisgICAgICAgIHJpZ2h0SGFuZFNpZGVbM10gPSBsb2NhbE1hdHJpeFsz
XVszXTsKKworICAgICAgICAvLyBTb2x2ZSB0aGUgZXF1YXRpb24gYnkgaW52ZXJ0aW5nIHBlcnNw
ZWN0aXZlTWF0cml4IGFuZCBtdWx0aXBseWluZworICAgICAgICAvLyByaWdodEhhbmRTaWRlIGJ5
IHRoZSBpbnZlcnNlLiAgKFRoaXMgaXMgdGhlIGVhc2llc3Qgd2F5LCBub3QKKyAgICAgICAgLy8g
bmVjZXNzYXJpbHkgdGhlIGJlc3QuKQorICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6TWF0
cml4NCBpbnZlcnNlUGVyc3BlY3RpdmVNYXRyaXgsIHRyYW5zcG9zZWRJbnZlcnNlUGVyc3BlY3Rp
dmVNYXRyaXg7CisgICAgICAgIGludmVyc2UocGVyc3BlY3RpdmVNYXRyaXgsIGludmVyc2VQZXJz
cGVjdGl2ZU1hdHJpeCk7CisgICAgICAgIHRyYW5zcG9zZU1hdHJpeDQoaW52ZXJzZVBlcnNwZWN0
aXZlTWF0cml4LCB0cmFuc3Bvc2VkSW52ZXJzZVBlcnNwZWN0aXZlTWF0cml4KTsKKworICAgICAg
ICBWZWN0b3I0IHBlcnNwZWN0aXZlUG9pbnQ7CisgICAgICAgIHY0TXVsUG9pbnRCeU1hdHJpeChy
aWdodEhhbmRTaWRlLCB0cmFuc3Bvc2VkSW52ZXJzZVBlcnNwZWN0aXZlTWF0cml4LCBwZXJzcGVj
dGl2ZVBvaW50KTsKKyAKKyAgICAgICAgcmVzdWx0LnBlcnNwZWN0aXZlWCA9IHBlcnNwZWN0aXZl
UG9pbnRbMF07CisgICAgICAgIHJlc3VsdC5wZXJzcGVjdGl2ZVkgPSBwZXJzcGVjdGl2ZVBvaW50
WzFdOworICAgICAgICByZXN1bHQucGVyc3BlY3RpdmVaID0gcGVyc3BlY3RpdmVQb2ludFsyXTsK
KyAgICAgICAgcmVzdWx0LnBlcnNwZWN0aXZlVyA9IHBlcnNwZWN0aXZlUG9pbnRbM107CisgICAg
ICAgIAorICAgICAgICAvLyBDbGVhciB0aGUgcGVyc3BlY3RpdmUgcGFydGl0aW9uCisgICAgICAg
IGxvY2FsTWF0cml4WzBdWzNdID0gbG9jYWxNYXRyaXhbMV1bM10gPSBsb2NhbE1hdHJpeFsyXVsz
XSA9IDA7CisgICAgICAgIGxvY2FsTWF0cml4WzNdWzNdID0gMTsKKyAgICB9IGVsc2UgeworICAg
ICAgICAvLyBObyBwZXJzcGVjdGl2ZS4KKyAgICAgICAgcmVzdWx0LnBlcnNwZWN0aXZlWCA9IHJl
c3VsdC5wZXJzcGVjdGl2ZVkgPSByZXN1bHQucGVyc3BlY3RpdmVaID0gMDsKKyAgICAgICAgcmVz
dWx0LnBlcnNwZWN0aXZlVyA9IDE7CisgICAgfQorICAgIAorICAgIC8vIE5leHQgdGFrZSBjYXJl
IG9mIHRyYW5zbGF0aW9uIChlYXN5KS4KKyAgICByZXN1bHQudHJhbnNsYXRlWCA9IGxvY2FsTWF0
cml4WzNdWzBdOworICAgIGxvY2FsTWF0cml4WzNdWzBdID0gMDsKKyAgICByZXN1bHQudHJhbnNs
YXRlWSA9IGxvY2FsTWF0cml4WzNdWzFdOworICAgIGxvY2FsTWF0cml4WzNdWzFdID0gMDsKKyAg
ICByZXN1bHQudHJhbnNsYXRlWiA9IGxvY2FsTWF0cml4WzNdWzJdOworICAgIGxvY2FsTWF0cml4
WzNdWzJdID0gMDsKKworICAgIC8vIFZlY3RvcjQgdHlwZSBhbmQgZnVuY3Rpb25zIG5lZWQgdG8g
YmUgYWRkZWQgdG8gdGhlIGNvbW1vbiBzZXQuCisgICAgVmVjdG9yMyByb3dbM10sIHBkdW0zOwor
CisgICAgLy8gTm93IGdldCBzY2FsZSBhbmQgc2hlYXIuCisgICAgZm9yIChpID0gMDsgaSA8IDM7
IGkrKykgeworICAgICAgICByb3dbaV1bMF0gPSBsb2NhbE1hdHJpeFtpXVswXTsKKyAgICAgICAg
cm93W2ldWzFdID0gbG9jYWxNYXRyaXhbaV1bMV07CisgICAgICAgIHJvd1tpXVsyXSA9IGxvY2Fs
TWF0cml4W2ldWzJdOwogICAgIH0KIAotICAgIC8vIFJlbW92ZSBzY2FsZSBmcm9tIG1hdHJpeAot
Ci0gICAgbS5zY2FsZSgxLjAgLyBzeCwgMS4wIC8gc3kpOworICAgIC8vIENvbXB1dGUgWCBzY2Fs
ZSBmYWN0b3IgYW5kIG5vcm1hbGl6ZSBmaXJzdCByb3cuCisgICAgcmVzdWx0LnNjYWxlWCA9IHYz
TGVuZ3RoKHJvd1swXSk7CisgICAgdjNTY2FsZShyb3dbMF0sIDEuMCk7CisKKyAgICAvLyBDb21w
dXRlIFhZIHNoZWFyIGZhY3RvciBhbmQgbWFrZSAybmQgcm93IG9ydGhvZ29uYWwgdG8gMXN0Lgor
ICAgIHJlc3VsdC5za2V3WFkgPSB2M0RvdChyb3dbMF0sIHJvd1sxXSk7CisgICAgdjNDb21iaW5l
KHJvd1sxXSwgcm93WzBdLCByb3dbMV0sIDEuMCwgLXJlc3VsdC5za2V3WFkpOworCisgICAgLy8g
Tm93LCBjb21wdXRlIFkgc2NhbGUgYW5kIG5vcm1hbGl6ZSAybmQgcm93LgorICAgIHJlc3VsdC5z
Y2FsZVkgPSB2M0xlbmd0aChyb3dbMV0pOworICAgIHYzU2NhbGUocm93WzFdLCAxLjApOworICAg
IHJlc3VsdC5za2V3WFkgLz0gcmVzdWx0LnNjYWxlWTsKKworICAgIC8vIENvbXB1dGUgWFogYW5k
IFlaIHNoZWFycywgb3J0aG9nb25hbGl6ZSAzcmQgcm93LgorICAgIHJlc3VsdC5za2V3WFogPSB2
M0RvdChyb3dbMF0sIHJvd1syXSk7CisgICAgdjNDb21iaW5lKHJvd1syXSwgcm93WzBdLCByb3db
Ml0sIDEuMCwgLXJlc3VsdC5za2V3WFopOworICAgIHJlc3VsdC5za2V3WVogPSB2M0RvdChyb3db
MV0sIHJvd1syXSk7CisgICAgdjNDb21iaW5lKHJvd1syXSwgcm93WzFdLCByb3dbMl0sIDEuMCwg
LXJlc3VsdC5za2V3WVopOworCisgICAgLy8gTmV4dCwgZ2V0IFogc2NhbGUgYW5kIG5vcm1hbGl6
ZSAzcmQgcm93LgorICAgIHJlc3VsdC5zY2FsZVogPSB2M0xlbmd0aChyb3dbMl0pOworICAgIHYz
U2NhbGUocm93WzJdLCAxLjApOworICAgIHJlc3VsdC5za2V3WFogLz0gcmVzdWx0LnNjYWxlWjsK
KyAgICByZXN1bHQuc2tld1laIC89IHJlc3VsdC5zY2FsZVo7CisgCisgICAgLy8gQXQgdGhpcyBw
b2ludCwgdGhlIG1hdHJpeCAoaW4gcm93c1tdKSBpcyBvcnRob25vcm1hbC4KKyAgICAvLyBDaGVj
ayBmb3IgYSBjb29yZGluYXRlIHN5c3RlbSBmbGlwLiAgSWYgdGhlIGRldGVybWluYW50CisgICAg
Ly8gaXMgLTEsIHRoZW4gbmVnYXRlIHRoZSBtYXRyaXggYW5kIHRoZSBzY2FsaW5nIGZhY3RvcnMu
CisgICAgdjNDcm9zcyhyb3dbMV0sIHJvd1syXSwgcGR1bTMpOworICAgIGlmICh2M0RvdChyb3db
MF0sIHBkdW0zKSA8IDApIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworICAg
ICAgICAgICAgcmVzdWx0LnNjYWxlWCAqPSAtMTsKKyAgICAgICAgICAgIHJvd1tpXVswXSAqPSAt
MTsKKyAgICAgICAgICAgIHJvd1tpXVsxXSAqPSAtMTsKKyAgICAgICAgICAgIHJvd1tpXVsyXSAq
PSAtMTsKKyAgICAgICAgfQorICAgIH0KKyAKKyAgICAvLyBOb3csIGdldCB0aGUgcm90YXRpb25z
IG91dCwgYXMgZGVzY3JpYmVkIGluIHRoZSBnZW0uCisgICAgCisgICAgLy8gRklYTUUgLSBBZGQg
dGhlIGFiaWxpdHkgdG8gcmV0dXJuIGVpdGhlciBxdWF0ZXJuaW9ucyAod2hpY2ggYXJlCisgICAg
Ly8gZWFzaWVyIHRvIHJlY29tcG9zZSB3aXRoKSBvciBFdWxlciBhbmdsZXMgKHJ4LCByeSwgcnop
LCB3aGljaAorICAgIC8vIGFyZSBlYXNpZXIgZm9yIGF1dGhvcnMgdG8gZGVhbCB3aXRoLiBUaGUg
bGF0dGVyIHdpbGwgb25seSBiZSB1c2VmdWwKKyAgICAvLyB3aGVuIHdlIGZpeCBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTksIHNvIEkKKyAgICAvLyB3aWxsIGxl
YXZlIHRoZSBFdWxlciBhbmdsZSBjb2RlIGhlcmUgZm9yIG5vdy4KKworICAgIC8vIHJldC5yb3Rh
dGVZID0gYXNpbigtcm93WzBdWzJdKTsKKyAgICAvLyBpZiAoY29zKHJldC5yb3RhdGVZKSAhPSAw
KSB7CisgICAgLy8gICAgIHJldC5yb3RhdGVYID0gYXRhbjIocm93WzFdWzJdLCByb3dbMl1bMl0p
OworICAgIC8vICAgICByZXQucm90YXRlWiA9IGF0YW4yKHJvd1swXVsxXSwgcm93WzBdWzBdKTsK
KyAgICAvLyB9IGVsc2UgeworICAgIC8vICAgICByZXQucm90YXRlWCA9IGF0YW4yKC1yb3dbMl1b
MF0sIHJvd1sxXVsxXSk7CisgICAgLy8gICAgIHJldC5yb3RhdGVaID0gMDsKKyAgICAvLyB9Cisg
ICAgCisgICAgZG91YmxlIHMsIHQsIHgsIHksIHosIHc7CisKKyAgICB0ID0gcm93WzBdWzBdICsg
cm93WzFdWzFdICsgcm93WzJdWzJdICsgMS4wOworCisgICAgaWYgKHQgPiAxZS00KSB7CisgICAg
ICAgIHMgPSAwLjUgLyBzcXJ0KHQpOworICAgICAgICB3ID0gMC4yNSAvIHM7CisgICAgICAgIHgg
PSAocm93WzJdWzFdIC0gcm93WzFdWzJdKSAqIHM7CisgICAgICAgIHkgPSAocm93WzBdWzJdIC0g
cm93WzJdWzBdKSAqIHM7CisgICAgICAgIHogPSAocm93WzFdWzBdIC0gcm93WzBdWzFdKSAqIHM7
CisgICAgfSBlbHNlIGlmIChyb3dbMF1bMF0gPiByb3dbMV1bMV0gJiYgcm93WzBdWzBdID4gcm93
WzJdWzJdKSB7IAorICAgICAgICBzID0gc3FydCAoMS4wICsgcm93WzBdWzBdIC0gcm93WzFdWzFd
IC0gcm93WzJdWzJdKSAqIDIuMDsgLy8gUz00KnF4IAorICAgICAgICB4ID0gMC4yNSAqIHM7Cisg
ICAgICAgIHkgPSAocm93WzBdWzFdICsgcm93WzFdWzBdKSAvIHM7IAorICAgICAgICB6ID0gKHJv
d1swXVsyXSArIHJvd1syXVswXSkgLyBzOyAKKyAgICAgICAgdyA9IChyb3dbMl1bMV0gLSByb3db
MV1bMl0pIC8gczsKKyAgICB9IGVsc2UgaWYgKHJvd1sxXVsxXSA+IHJvd1syXVsyXSkgeyAKKyAg
ICAgICAgcyA9IHNxcnQgKDEuMCArIHJvd1sxXVsxXSAtIHJvd1swXVswXSAtIHJvd1syXVsyXSkg
KiAyLjA7IC8vIFM9NCpxeQorICAgICAgICB4ID0gKHJvd1swXVsxXSArIHJvd1sxXVswXSkgLyBz
OyAKKyAgICAgICAgeSA9IDAuMjUgKiBzOworICAgICAgICB6ID0gKHJvd1sxXVsyXSArIHJvd1sy
XVsxXSkgLyBzOyAKKyAgICAgICAgdyA9IChyb3dbMF1bMl0gLSByb3dbMl1bMF0pIC8gczsKKyAg
ICB9IGVsc2UgeyAKKyAgICAgICAgcyA9IHNxcnQoMS4wICsgcm93WzJdWzJdIC0gcm93WzBdWzBd
IC0gcm93WzFdWzFdKSAqIDIuMDsgLy8gUz00KnF6CisgICAgICAgIHggPSAocm93WzBdWzJdICsg
cm93WzJdWzBdKSAvIHM7CisgICAgICAgIHkgPSAocm93WzFdWzJdICsgcm93WzJdWzFdKSAvIHM7
IAorICAgICAgICB6ID0gMC4yNSAqIHM7CisgICAgICAgIHcgPSAocm93WzFdWzBdIC0gcm93WzBd
WzFdKSAvIHM7CisgICAgfQogCi0gICAgLy8gQ29tcHV0ZSByb3RhdGlvbgorICAgIHJlc3VsdC5x
dWF0ZXJuaW9uWCA9IHg7CisgICAgcmVzdWx0LnF1YXRlcm5pb25ZID0geTsKKyAgICByZXN1bHQu
cXVhdGVybmlvblogPSB6OworICAgIHJlc3VsdC5xdWF0ZXJuaW9uVyA9IHc7CisgICAgCisgICAg
cmV0dXJuIHRydWU7Cit9CisKKy8vIFBlcmZvcm0gYSBzcGhlcmljYWwgbGluZWFyIGludGVycG9s
YXRpb24gYmV0d2VlbiB0aGUgdHdvCisvLyBwYXNzZWQgcXVhdGVybmlvbnMgd2l0aCAwIDw9IHQg
PD0gMQorc3RhdGljIHZvaWQgc2xlcnAoZG91YmxlIHFhWzRdLCBjb25zdCBkb3VibGUgcWJbNF0s
IGRvdWJsZSB0KQoreworICAgIGRvdWJsZSBheCwgYXksIGF6LCBhdzsKKyAgICBkb3VibGUgYngs
IGJ5LCBieiwgYnc7CisgICAgZG91YmxlIGN4LCBjeSwgY3osIGN3OworICAgIGRvdWJsZSBhbmds
ZTsKKyAgICBkb3VibGUgdGgsIGludnRoLCBzY2FsZSwgaW52c2NhbGU7CisKKyAgICBheCA9IHFh
WzBdOyBheSA9IHFhWzFdOyBheiA9IHFhWzJdOyBhdyA9IHFhWzNdOworICAgIGJ4ID0gcWJbMF07
IGJ5ID0gcWJbMV07IGJ6ID0gcWJbMl07IGJ3ID0gcWJbM107CisKKyAgICBhbmdsZSA9IGF4ICog
YnggKyBheSAqIGJ5ICsgYXogKiBieiArIGF3ICogYnc7CisKKyAgICBpZiAoYW5nbGUgPCAwLjAp
IHsKKyAgICAgICAgYXggPSAtYXg7IGF5ID0gLWF5OworICAgICAgICBheiA9IC1hejsgYXcgPSAt
YXc7CisgICAgICAgIGFuZ2xlID0gLWFuZ2xlOworICAgIH0KIAotICAgIGRvdWJsZSBhbmdsZSA9
IGF0YW4yKG0uYigpLCBtLmEoKSk7CisgICAgaWYgKGFuZ2xlICsgMS4wID4gLjA1KSB7CisgICAg
ICAgIGlmICgxLjAgLSBhbmdsZSA+PSAuMDUpIHsKKyAgICAgICAgICAgIHRoID0gYWNvcyAoYW5n
bGUpOworICAgICAgICAgICAgaW52dGggPSAxLjAgLyBzaW4gKHRoKTsKKyAgICAgICAgICAgIHNj
YWxlID0gc2luICh0aCAqICgxLjAgLSB0KSkgKiBpbnZ0aDsKKyAgICAgICAgICAgIGludnNjYWxl
ID0gc2luICh0aCAqIHQpICogaW52dGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBz
Y2FsZSA9IDEuMCAtIHQ7CisgICAgICAgICAgICBpbnZzY2FsZSA9IHQ7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICBieCA9IC1heTsKKyAgICAgICAgYnkgPSBheDsKKyAgICAgICAg
YnogPSAtYXc7CisgICAgICAgIGJ3ID0gYXo7CisgICAgICAgIHNjYWxlID0gc2luKHBpRG91Ymxl
ICogKC41IC0gdCkpOworICAgICAgICBpbnZzY2FsZSA9IHNpbiAocGlEb3VibGUgKiB0KTsKKyAg
ICB9CiAKLSAgICAvLyBSZW1vdmUgcm90YXRpb24gZnJvbSBtYXRyaXgKKyAgICBjeCA9IGF4ICog
c2NhbGUgKyBieCAqIGludnNjYWxlOworICAgIGN5ID0gYXkgKiBzY2FsZSArIGJ5ICogaW52c2Nh
bGU7CisgICAgY3ogPSBheiAqIHNjYWxlICsgYnogKiBpbnZzY2FsZTsKKyAgICBjdyA9IGF3ICog
c2NhbGUgKyBidyAqIGludnNjYWxlOwogCi0gICAgbS5yb3RhdGUocmFkMmRlZygtYW5nbGUpKTsK
KyAgICBxYVswXSA9IGN4OyBxYVsxXSA9IGN5OyBxYVsyXSA9IGN6OyBxYVszXSA9IGN3OworfQog
Ci0gICAgLy8gUmV0dXJuIHJlc3VsdHMKKy8vIEVuZCBvZiBTdXBwb3J0aW5nIE1hdGggRnVuY3Rp
b25zCiAKLSAgICBzclswXSA9IHN4OyBzclsxXSA9IHN5OyBzclsyXSA9IGFuZ2xlOwotICAgIHNy
WzNdID0gbS5hKCk7IHNyWzRdID0gbS5iKCk7Ci0gICAgc3JbNV0gPSBtLmMoKTsgc3JbNl0gPSBt
LmQoKTsKLSAgICBzcls3XSA9IG0uZSgpOyBzcls4XSA9IG0uZigpOworVHJhbnNmb3JtYXRpb25N
YXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpzY2FsZShkb3VibGUgcykKK3sKKyAgICByZXR1
cm4gc2NhbGUocywgcyk7CiB9CiAKLXN0YXRpYyB2b2lkIGFmZmluZVRyYW5zZm9ybUNvbXBvc2Uo
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG0sIGNvbnN0IGRvdWJsZSBzcls5XSkKK1RyYW5zZm9ybWF0
aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcihkb3VibGUg
eCwgZG91YmxlIHkpCiB7Ci0gICAgbS5zZXRBKHNyWzNdKTsKLSAgICBtLnNldEIoc3JbNF0pOwot
ICAgIG0uc2V0Qyhzcls1XSk7Ci0gICAgbS5zZXREKHNyWzZdKTsKLSAgICBtLnNldEUoc3JbN10p
OwotICAgIG0uc2V0Rihzcls4XSk7Ci0gICAgbS5yb3RhdGUocmFkMmRlZyhzclsyXSkpOwotICAg
IG0uc2NhbGUoc3JbMF0sIHNyWzFdKTsKKyAgICByZXR1cm4gcm90YXRlKHJhZDJkZWcoYXRhbjIo
eSwgeCkpKTsKIH0KIAotYm9vbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnZlcnRpYmxlKCkg
Y29uc3QKK1RyYW5zZm9ybWF0aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6ZmxpcFgo
KQogewotICAgIHJldHVybiBkZXQoKSAhPSAwLjA7CisgICAgcmV0dXJuIHNjYWxlKC0xLjBmLCAx
LjBmKTsKIH0KIAotVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
dWx0aXBseShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgb3RoZXIpCitUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmZsaXBZKCkKIHsKLSAgICByZXR1cm4gKCp0
aGlzKSAqPSBvdGhlcjsKKyAgICByZXR1cm4gc2NhbGUoMS4wZiwgLTEuMGYpOwogfQogCi1UcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlKGRvdWJsZSBzKQor
VHJhbnNmb3JtYXRpb25NYXRyaXggbWFrZU1hcEJldHdlZW5SZWN0cyhjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQogewotICAgIHJldHVybiBzY2FsZShzLCBz
KTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgdHJhbnNmb3JtLnRy
YW5zbGF0ZShkZXN0LngoKSAtIHNvdXJjZS54KCksIGRlc3QueSgpIC0gc291cmNlLnkoKSk7Cisg
ICAgdHJhbnNmb3JtLnNjYWxlKGRlc3Qud2lkdGgoKSAvIHNvdXJjZS53aWR0aCgpLCBkZXN0Lmhl
aWdodCgpIC8gc291cmNlLmhlaWdodCgpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtOwogfQogCi1U
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlTm9uVW5pZm9y
bShkb3VibGUgc3gsIGRvdWJsZSBzeSkKK0Zsb2F0UG9pbnQgVHJhbnNmb3JtYXRpb25NYXRyaXg6
OnByb2plY3RQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKSBjb25zdAogewotICAgIHJldHVybiBz
Y2FsZShzeCwgc3kpOworICAgIC8vIFRoaXMgaXMgYmFzaWNhbGx5IHJheXRyYWNpbmcuIFdlIGhh
dmUgYSBwb2ludCBpbiB0aGUgZGVzdGluYXRpb24KKyAgICAvLyBwbGFuZSB3aXRoIHo9MCwgYW5k
IHdlIGNhc3QgYSByYXkgcGFyYWxsZWwgdG8gdGhlIHotYXhpcyBmcm9tIHRoYXQKKyAgICAvLyBw
b2ludCB0byBmaW5kIHRoZSB6LXBvc2l0aW9uIGF0IHdoaWNoIGl0IGludGVyc2VjdHMgdGhlIHo9
MCBwbGFuZQorICAgIC8vIHdpdGggdGhlIHRyYW5zZm9ybSBhcHBsaWVkLiBPbmNlIHdlIGhhdmUg
dGhhdCBwb2ludCB3ZSBhcHBseSB0aGUKKyAgICAvLyBpbnZlcnNlIHRyYW5zZm9ybSB0byBmaW5k
IHRoZSBjb3JyZXNwb25kaW5nIHBvaW50IGluIHRoZSBzb3VyY2UKKyAgICAvLyBzcGFjZS4KKyAg
ICAvLyAKKyAgICAvLyBHaXZlbiBhIHBsYW5lIHdpdGggbm9ybWFsIFBuLCBhbmQgYSByYXkgc3Rh
cnRpbmcgYXQgcG9pbnQgUjAgYW5kCisgICAgLy8gd2l0aCBkaXJlY3Rpb24gZGVmaW5lZCBieSB0
aGUgdmVjdG9yIFJkLCB3ZSBjYW4gZmluZCB0aGUKKyAgICAvLyBpbnRlcnNlY3Rpb24gcG9pbnQg
YXMgYSBkaXN0YW5jZSBkIGZyb20gUjAgaW4gdW5pdHMgb2YgUmQgYnk6CisgICAgLy8gCisgICAg
Ly8gZCA9IC1kb3QgKFBuJywgUjApIC8gZG90IChQbicsIFJkKQorICAgIAorICAgIGRvdWJsZSB4
ID0gcC54KCk7CisgICAgZG91YmxlIHkgPSBwLnkoKTsKKyAgICBkb3VibGUgeiA9IC0obTEzKCkg
KiB4ICsgbTIzKCkgKiB5ICsgbTQzKCkpIC8gbTMzKCk7CisKKyAgICBkb3VibGUgb3V0WCA9IHgg
KiBtMTEoKSArIHkgKiBtMjEoKSArIHogKiBtMzEoKSArIG00MSgpOworICAgIGRvdWJsZSBvdXRZ
ID0geCAqIG0xMigpICsgeSAqIG0yMigpICsgeiAqIG0zMigpICsgbTQyKCk7CisKKyAgICBkb3Vi
bGUgdyA9IHggKiBtMTQoKSArIHkgKiBtMjQoKSArIHogKiBtMzQoKSArIG00NCgpOworICAgIGlm
ICh3ICE9IDEgJiYgdyAhPSAwKSB7CisgICAgICAgIG91dFggLz0gdzsKKyAgICAgICAgb3V0WSAv
PSB3OworICAgIH0KKworICAgIHJldHVybiBGbG9hdFBvaW50KHN0YXRpY19jYXN0PGZsb2F0Pihv
dXRYKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG91dFkpKTsKIH0KIAotVHJhbnNmb3JtYXRpb25NYXRy
aXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpyb3RhdGVGcm9tVmVjdG9yKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKK0Zsb2F0UG9pbnQgVHJhbnNmb3JtYXRpb25NYXRyaXg6Om1hcFBvaW50KGNvbnN0IEZs
b2F0UG9pbnQmIHApIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJvdGF0ZShyYWQyZGVnKGF0YW4yKHks
IHgpKSk7CisgICAgLy8gSWYgdGhlIG1hdHJpeCBoYXMgM0QgY29tcG9uZW50cywgdGhlIHogY29t
cG9uZW50IG9mIHRoZSByZXN1bHQgaXMKKyAgICAvLyBkcm9wcGVkLCBlZmZlY3RpdmVseSBwcm9q
ZWN0aW5nIHRoZSBwb2ludCBpbnRvIHRoZSB6PTAgcGxhbmUKKyAgICBkb3VibGUgeCwgeTsKKyAg
ICBtdWx0VmVjTWF0cml4KHAueCgpLCBwLnkoKSwgeCwgeSk7CisgICAgcmV0dXJuIEZsb2F0UG9p
bnQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHgpLCBzdGF0aWNfY2FzdDxmbG9hdD4oeSkpOwogfQogCi1U
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmZsaXBYKCkKK0Zsb2F0
UG9pbnQzRCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUG9pbnQoY29uc3QgRmxvYXRQb2ludDNE
JiBwKSBjb25zdAogewotICAgIHJldHVybiBzY2FsZSgtMS4wZiwgMS4wZik7CisgICAgZG91Ymxl
IHgsIHksIHo7CisgICAgbXVsdFZlY01hdHJpeChwLngoKSwgcC55KCksIHAueigpLCB4LCB5LCB6
KTsKKyAgICByZXR1cm4gRmxvYXRQb2ludDNEKHN0YXRpY19jYXN0PGZsb2F0Pih4KSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oeikpOwogfQogCi1UcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OmZsaXBZKCkKK0ludFBvaW50IFRyYW5z
Zm9ybWF0aW9uTWF0cml4OjptYXBQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIHNjYWxlKDEuMGYsIC0xLjBmKTsKKyAgICAvLyBJZiB0aGUgbWF0cml4IGhh
cyAzRCBjb21wb25lbnRzLCB0aGUgeiBjb21wb25lbnQgb2YgdGhlIHJlc3VsdCBpcworICAgIC8v
IGRyb3BwZWQsIGVmZmVjdGl2ZWx5IHByb2plY3RpbmcgdGhlIHBvaW50IGludG8gdGhlIHo9MCBw
bGFuZQorICAgIGRvdWJsZSB4LCB5OworICAgIG11bHRWZWNNYXRyaXgocG9pbnQueCgpLCBwb2lu
dC55KCksIHgsIHkpOworCisgICAgLy8gUm91bmQgdGhlIHBvaW50LgorICAgIHJldHVybiBJbnRQ
b2ludChscm91bmQoeCksIGxyb3VuZCh5KSk7CiB9CiAKLVRyYW5zZm9ybWF0aW9uTWF0cml4JiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tldyhkb3VibGUgYW5nbGVYLCBkb3VibGUgYW5nbGVZKQor
SW50UmVjdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBJbnRSZWN0ICZyZWN0
KSBjb25zdAogewotICAgIHJldHVybiBzaGVhcih0YW4oZGVnMnJhZChhbmdsZVgpKSwgdGFuKGRl
ZzJyYWQoYW5nbGVZKSkpOworICAgIC8vIElmIHRoZSBtYXRyaXggaGFzIDNEIGNvbXBvbmVudHMs
IHRoZSB6IGNvbXBvbmVudCBvZiB0aGUgcmVzdWx0IGlzCisgICAgLy8gZHJvcHBlZCwgZWZmZWN0
aXZlbHkgcHJvamVjdGluZyB0aGUgcmVjdCBpbnRvIHRoZSB6PTAgcGxhbmUKKyAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChtYXBSZWN0KEZsb2F0UmVjdChyZWN0KSkpOwogfQogCi1UcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNrZXdYKGRvdWJsZSBhbmdsZSkK
K0Zsb2F0UmVjdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNoZWFyKHRhbihkZWcycmFkKGFuZ2xlKSksIDAuMGYp
OworICAgIC8vIElmIHRoZSBtYXRyaXggaGFzIDNEIGNvbXBvbmVudHMsIHRoZSB6IGNvbXBvbmVu
dCBvZiB0aGUgcmVzdWx0IGlzCisgICAgLy8gZHJvcHBlZCwgZWZmZWN0aXZlbHkgcHJvamVjdGlu
ZyB0aGUgcmVjdCBpbnRvIHRoZSB6PTAgcGxhbmUKKyAgICBGbG9hdFF1YWQgcmVzdWx0UXVhZCA9
IG1hcFF1YWQoRmxvYXRRdWFkKHIpKTsKKyAgICByZXR1cm4gcmVzdWx0UXVhZC5ib3VuZGluZ0Jv
eCgpOwogfQogCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNr
ZXdZKGRvdWJsZSBhbmdsZSkKK0Zsb2F0UXVhZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bWFwUXVh
ZChjb25zdCBGbG9hdFF1YWQmIHEpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNoZWFyKDAuMGYsIHRh
bihkZWcycmFkKGFuZ2xlKSkpOworICAgIC8vIElmIHRoZSBtYXRyaXggaGFzIDNEIGNvbXBvbmVu
dHMsIHRoZSB6IGNvbXBvbmVudCBvZiB0aGUgcmVzdWx0IGlzCisgICAgLy8gZHJvcHBlZCwgZWZm
ZWN0aXZlbHkgcHJvamVjdGluZyB0aGUgcXVhZCBpbnRvIHRoZSB6PTAgcGxhbmUKKyAgICBGbG9h
dFF1YWQgcmVzdWx0OworICAgIHJlc3VsdC5zZXRQMShtYXBQb2ludChxLnAxKCkpKTsKKyAgICBy
ZXN1bHQuc2V0UDIobWFwUG9pbnQocS5wMigpKSk7CisgICAgcmVzdWx0LnNldFAzKG1hcFBvaW50
KHEucDMoKSkpOworICAgIHJlc3VsdC5zZXRQNChtYXBQb2ludChxLnA0KCkpKTsKKyAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWtlTWFwQmV0d2VlblJlY3Rz
KGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCitUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlKGRvdWJsZSBzeCwgZG91
YmxlIHN5KQogewotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlKGRlc3QueCgpIC0gc291cmNlLngoKSwgZGVzdC55KCkgLSBzb3VyY2Uu
eSgpKTsKLSAgICB0cmFuc2Zvcm0uc2NhbGUoZGVzdC53aWR0aCgpIC8gc291cmNlLndpZHRoKCks
IGRlc3QuaGVpZ2h0KCkgLyBzb3VyY2UuaGVpZ2h0KCkpOwotICAgIHJldHVybiB0cmFuc2Zvcm07
CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0OworICAgIG1hdC5tX21hdHJpeFswXVswXSA9
IHN4OworICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IHN5OworCisgICAgbXVsdExlZnQobWF0KTsK
KyAgICByZXR1cm4gKnRoaXM7CiB9CiAKLUludFBvaW50IFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpt
YXBQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CitUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlM2QoZG91YmxlIHN4LCBkb3VibGUgc3ksIGRv
dWJsZSBzeikKIHsKLSAgICBkb3VibGUgeDIsIHkyOwotICAgIG1hcChwb2ludC54KCksIHBvaW50
LnkoKSwgJngyLCAmeTIpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsKKyAgICBtYXQu
bV9tYXRyaXhbMF1bMF0gPSBzeDsKKyAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSBzeTsKKyAgICBt
YXQubV9tYXRyaXhbMl1bMl0gPSBzejsKIAotICAgIC8vIFJvdW5kIHRoZSBwb2ludC4KLSAgICBy
ZXR1cm4gSW50UG9pbnQobHJvdW5kKHgyKSwgbHJvdW5kKHkyKSk7CisgICAgbXVsdExlZnQobWF0
KTsKKyAgICByZXR1cm4gKnRoaXM7CiB9CiAKLUZsb2F0UG9pbnQgVHJhbnNmb3JtYXRpb25NYXRy
aXg6Om1hcFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAorVHJhbnNmb3JtYXRp
b25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpyb3RhdGUzZChkb3VibGUgeCwgZG91Ymxl
IHksIGRvdWJsZSB6LCBkb3VibGUgYW5nbGUpCiB7Ci0gICAgZG91YmxlIHgyLCB5MjsKLSAgICBt
YXAocG9pbnQueCgpLCBwb2ludC55KCksICZ4MiwgJnkyKTsKKyAgICAvLyBhbmdsZXMgYXJlIGlu
IGRlZ3JlZXMuIFN3aXRjaCB0byByYWRpYW5zCisgICAgYW5nbGUgPSBkZWcycmFkKGFuZ2xlKTsK
KyAgICAKKyAgICBhbmdsZSAvPSAyLjBmOworICAgIGRvdWJsZSBzaW5BID0gc2luKGFuZ2xlKTsK
KyAgICBkb3VibGUgY29zQSA9IGNvcyhhbmdsZSk7CisgICAgZG91YmxlIHNpbkEyID0gc2luQSAq
IHNpbkE7CisgICAgCisgICAgLy8gbm9ybWFsaXplCisgICAgZG91YmxlIGxlbmd0aCA9IHNxcnQo
eCAqIHggKyB5ICogeSArIHogKiB6KTsKKyAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAg
Ly8gYmFkIHZlY3RvciwganVzdCB1c2Ugc29tZXRoaW5nIHJlYXNvbmFibGUKKyAgICAgICAgeCA9
IDA7CisgICAgICAgIHkgPSAwOworICAgICAgICB6ID0gMTsKKyAgICB9IGVsc2UgaWYgKGxlbmd0
aCAhPSAxKSB7CisgICAgICAgIHggLz0gbGVuZ3RoOworICAgICAgICB5IC89IGxlbmd0aDsKKyAg
ICAgICAgeiAvPSBsZW5ndGg7CisgICAgfQorICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1hdDsKIAotICAgIHJldHVybiBGbG9hdFBvaW50KHN0YXRpY19jYXN0PGZsb2F0Pih4MiksIHN0
YXRpY19jYXN0PGZsb2F0Pih5MikpOworICAgIC8vIG9wdGltaXplIGNhc2Ugd2hlcmUgYXhpcyBp
cyBhbG9uZyBtYWpvciBheGlzCisgICAgaWYgKHggPT0gMS4wZiAmJiB5ID09IDAuMGYgJiYgeiA9
PSAwLjBmKSB7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGY7CisgICAgICAgIG1h
dC5tX21hdHJpeFswXVsxXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVsyXSA9IDAu
MGY7CisgICAgICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21h
dHJpeFsxXVsxXSA9IDEuMGYgLSAyLjBmICogc2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFsx
XVsyXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0g
MC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzFdID0gLTIuMGYgKiBzaW5BICogY29zQTsK
KyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzJdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICAg
ICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4WzFdWzNdID0gbWF0Lm1fbWF0cml4
WzJdWzNdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzNdWzBdID0gbWF0Lm1fbWF0cml4
WzNdWzFdID0gbWF0Lm1fbWF0cml4WzNdWzJdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4
WzNdWzNdID0gMS4wZjsKKyAgICB9IGVsc2UgaWYgKHggPT0gMC4wZiAmJiB5ID09IDEuMGYgJiYg
eiA9PSAwLjBmKSB7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGYgLSAyLjBmICog
c2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVsxXSA9IDAuMGY7CisgICAgICAgIG1hdC5t
X21hdHJpeFswXVsyXSA9IC0yLjBmICogc2luQSAqIGNvc0E7CisgICAgICAgIG1hdC5tX21hdHJp
eFsxXVswXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21hdHJpeFsxXVsxXSA9IDEuMGY7CisgICAg
ICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IDAuMGY7CisgICAgICAgIG1hdC5tX21hdHJpeFsyXVsw
XSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzFdID0gMC4w
ZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzJdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAg
ICAgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4WzFdWzNdID0gbWF0Lm1fbWF0
cml4WzJdWzNdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzNdWzBdID0gbWF0Lm1fbWF0
cml4WzNdWzFdID0gbWF0Lm1fbWF0cml4WzNdWzJdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0
cml4WzNdWzNdID0gMS4wZjsKKyAgICB9IGVsc2UgaWYgKHggPT0gMC4wZiAmJiB5ID09IDAuMGYg
JiYgeiA9PSAxLjBmKSB7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVswXSA9IDEuMGYgLSAyLjBm
ICogc2luQTI7CisgICAgICAgIG1hdC5tX21hdHJpeFswXVsxXSA9IDIuMGYgKiBzaW5BICogY29z
QTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzJdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0
cml4WzFdWzBdID0gLTIuMGYgKiBzaW5BICogY29zQTsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFd
WzFdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzFdWzJdID0g
MC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1f
bWF0cml4WzJdWzFdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzJdWzJdID0gMS4wZjsK
KyAgICAgICAgbWF0Lm1fbWF0cml4WzBdWzNdID0gbWF0Lm1fbWF0cml4WzFdWzNdID0gbWF0Lm1f
bWF0cml4WzJdWzNdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1fbWF0cml4WzNdWzBdID0gbWF0Lm1f
bWF0cml4WzNdWzFdID0gbWF0Lm1fbWF0cml4WzNdWzJdID0gMC4wZjsKKyAgICAgICAgbWF0Lm1f
bWF0cml4WzNdWzNdID0gMS4wZjsKKyAgICB9IGVsc2UgeworICAgICAgICBkb3VibGUgeDIgPSB4
Kng7CisgICAgICAgIGRvdWJsZSB5MiA9IHkqeTsKKyAgICAgICAgZG91YmxlIHoyID0geip6Owor
ICAgIAorICAgICAgICBtYXQubV9tYXRyaXhbMF1bMF0gPSAxLjBmIC0gMi4wZiAqICh5MiArIHoy
KSAqIHNpbkEyOworICAgICAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAyLjBmICogKHggKiB5ICog
c2luQTIgKyB6ICogc2luQSAqIGNvc0EpOworICAgICAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAy
LjBmICogKHggKiB6ICogc2luQTIgLSB5ICogc2luQSAqIGNvc0EpOworICAgICAgICBtYXQubV9t
YXRyaXhbMV1bMF0gPSAyLjBmICogKHkgKiB4ICogc2luQTIgLSB6ICogc2luQSAqIGNvc0EpOwor
ICAgICAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSAxLjBmIC0gMi4wZiAqICh6MiArIHgyKSAqIHNp
bkEyOworICAgICAgICBtYXQubV9tYXRyaXhbMV1bMl0gPSAyLjBmICogKHkgKiB6ICogc2luQTIg
KyB4ICogc2luQSAqIGNvc0EpOworICAgICAgICBtYXQubV9tYXRyaXhbMl1bMF0gPSAyLjBmICog
KHogKiB4ICogc2luQTIgKyB5ICogc2luQSAqIGNvc0EpOworICAgICAgICBtYXQubV9tYXRyaXhb
Ml1bMV0gPSAyLjBmICogKHogKiB5ICogc2luQTIgLSB4ICogc2luQSAqIGNvc0EpOworICAgICAg
ICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmIC0gMi4wZiAqICh4MiArIHkyKSAqIHNpbkEyOwor
ICAgICAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9t
YXRyaXhbMl1bM10gPSAwLjBmOworICAgICAgICBtYXQubV9tYXRyaXhbM11bMF0gPSBtYXQubV9t
YXRyaXhbM11bMV0gPSBtYXQubV9tYXRyaXhbM11bMl0gPSAwLjBmOworICAgICAgICBtYXQubV9t
YXRyaXhbM11bM10gPSAxLjBmOworICAgIH0KKyAgICBtdWx0TGVmdChtYXQpOworICAgIHJldHVy
biAqdGhpczsKIH0KIAotRmxvYXRRdWFkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjptYXBRdWFkKGNv
bnN0IEZsb2F0UXVhZCYgcXVhZCkgY29uc3QKK1RyYW5zZm9ybWF0aW9uTWF0cml4JiBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6cm90YXRlM2QoZG91YmxlIHJ4LCBkb3VibGUgcnksIGRvdWJsZSByeikK
IHsKLSAgICAvLyBGSVhNRTogYXZvaWQgNCBzZXBlcmF0ZSBsaWJyYXJ5IGNhbGxzLiBQb2ludCBt
YXBwaW5nIHJlYWxseSBuZWVkcwotICAgIC8vIHRvIGJlIHBsYXRmb3JtLWluZGVwZW5kZW50IGNv
ZGUuCi0gICAgcmV0dXJuIEZsb2F0UXVhZChtYXBQb2ludChxdWFkLnAxKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgbWFwUG9pbnQocXVhZC5wMigpKSwKLSAgICAgICAgICAgICAgICAgICAgIG1h
cFBvaW50KHF1YWQucDMoKSksCi0gICAgICAgICAgICAgICAgICAgICBtYXBQb2ludChxdWFkLnA0
KCkpKTsKKyAgICAvLyBhbmdsZXMgYXJlIGluIGRlZ3JlZXMuIFN3aXRjaCB0byByYWRpYW5zCisg
ICAgcnggPSBkZWcycmFkKHJ4KTsKKyAgICByeSA9IGRlZzJyYWQocnkpOworICAgIHJ6ID0gZGVn
MnJhZChyeik7CisgICAgCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0OworICAgIAorICAg
IHJ6IC89IDIuMGY7CisgICAgZG91YmxlIHNpbkEgPSBzaW4ocnopOworICAgIGRvdWJsZSBjb3NB
ID0gY29zKHJ6KTsKKyAgICBkb3VibGUgc2luQTIgPSBzaW5BICogc2luQTsKKyAgICAKKyAgICBt
YXQubV9tYXRyaXhbMF1bMF0gPSAxLjBmIC0gMi4wZiAqIHNpbkEyOworICAgIG1hdC5tX21hdHJp
eFswXVsxXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICBtYXQubV9tYXRyaXhbMF1bMl0gPSAw
LjBmOworICAgIG1hdC5tX21hdHJpeFsxXVswXSA9IC0yLjBmICogc2luQSAqIGNvc0E7CisgICAg
bWF0Lm1fbWF0cml4WzFdWzFdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICBtYXQubV9tYXRy
aXhbMV1bMl0gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFsyXVswXSA9IDAuMGY7CisgICAgbWF0
Lm1fbWF0cml4WzJdWzFdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMl1bMl0gPSAxLjBmOwor
ICAgIG1hdC5tX21hdHJpeFswXVszXSA9IG1hdC5tX21hdHJpeFsxXVszXSA9IG1hdC5tX21hdHJp
eFsyXVszXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4WzNdWzBdID0gbWF0Lm1fbWF0cml4WzNd
WzFdID0gbWF0Lm1fbWF0cml4WzNdWzJdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbM11bM10g
PSAxLjBmOworICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJtYXQobWF0KTsKKyAgICAK
KyAgICByeSAvPSAyLjBmOworICAgIHNpbkEgPSBzaW4ocnkpOworICAgIGNvc0EgPSBjb3Mocnkp
OworICAgIHNpbkEyID0gc2luQSAqIHNpbkE7CisgICAgCisgICAgbWF0Lm1fbWF0cml4WzBdWzBd
ID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMV0gPSAwLjBmOwor
ICAgIG1hdC5tX21hdHJpeFswXVsyXSA9IC0yLjBmICogc2luQSAqIGNvc0E7CisgICAgbWF0Lm1f
bWF0cml4WzFdWzBdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSAxLjBmOworICAg
IG1hdC5tX21hdHJpeFsxXVsyXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4WzJdWzBdID0gMi4w
ZiAqIHNpbkEgKiBjb3NBOworICAgIG1hdC5tX21hdHJpeFsyXVsxXSA9IDAuMGY7CisgICAgbWF0
Lm1fbWF0cml4WzJdWzJdID0gMS4wZiAtIDIuMGYgKiBzaW5BMjsKKyAgICBtYXQubV9tYXRyaXhb
MF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQubV9tYXRyaXhbMl1bM10gPSAwLjBmOwor
ICAgIG1hdC5tX21hdHJpeFszXVswXSA9IG1hdC5tX21hdHJpeFszXVsxXSA9IG1hdC5tX21hdHJp
eFszXVsyXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4WzNdWzNdID0gMS4wZjsKKyAgICAKKyAg
ICBybWF0Lm11bHRMZWZ0KG1hdCk7CisKKyAgICByeCAvPSAyLjBmOworICAgIHNpbkEgPSBzaW4o
cngpOworICAgIGNvc0EgPSBjb3MocngpOworICAgIHNpbkEyID0gc2luQSAqIHNpbkE7CisgICAg
CisgICAgbWF0Lm1fbWF0cml4WzBdWzBdID0gMS4wZjsKKyAgICBtYXQubV9tYXRyaXhbMF1bMV0g
PSAwLjBmOworICAgIG1hdC5tX21hdHJpeFswXVsyXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4
WzFdWzBdID0gMC4wZjsKKyAgICBtYXQubV9tYXRyaXhbMV1bMV0gPSAxLjBmIC0gMi4wZiAqIHNp
bkEyOworICAgIG1hdC5tX21hdHJpeFsxXVsyXSA9IDIuMGYgKiBzaW5BICogY29zQTsKKyAgICBt
YXQubV9tYXRyaXhbMl1bMF0gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFsyXVsxXSA9IC0yLjBm
ICogc2luQSAqIGNvc0E7CisgICAgbWF0Lm1fbWF0cml4WzJdWzJdID0gMS4wZiAtIDIuMGYgKiBz
aW5BMjsKKyAgICBtYXQubV9tYXRyaXhbMF1bM10gPSBtYXQubV9tYXRyaXhbMV1bM10gPSBtYXQu
bV9tYXRyaXhbMl1bM10gPSAwLjBmOworICAgIG1hdC5tX21hdHJpeFszXVswXSA9IG1hdC5tX21h
dHJpeFszXVsxXSA9IG1hdC5tX21hdHJpeFszXVsyXSA9IDAuMGY7CisgICAgbWF0Lm1fbWF0cml4
WzNdWzNdID0gMS4wZjsKKyAgICAKKyAgICBybWF0Lm11bHRMZWZ0KG1hdCk7CisKKyAgICBtdWx0
TGVmdChybWF0KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1RyYW5zZm9ybWF0aW9uTWF0cml4
JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KQor
eworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsKKyAgICBtYXQubV9tYXRyaXhbM11bMF0g
PSB0eDsKKyAgICBtYXQubV9tYXRyaXhbM11bMV0gPSB0eTsKKworICAgIG11bHRMZWZ0KG1hdCk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCitUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6OnRyYW5zbGF0ZTNkKGRvdWJsZSB0eCwgZG91YmxlIHR5LCBkb3VibGUgdHop
Cit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0OworICAgIG1hdC5tX21hdHJpeFszXVsw
XSA9IHR4OworICAgIG1hdC5tX21hdHJpeFszXVsxXSA9IHR5OworICAgIG1hdC5tX21hdHJpeFsz
XVsyXSA9IHR6OworCisgICAgbXVsdExlZnQobWF0KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisK
K1RyYW5zZm9ybWF0aW9uTWF0cml4JiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tldyhkb3VibGUg
c3gsIGRvdWJsZSBzeSkKK3sKKyAgICAvLyBhbmdsZXMgYXJlIGluIGRlZ3JlZXMuIFN3aXRjaCB0
byByYWRpYW5zCisgICAgc3ggPSBkZWcycmFkKHN4KTsKKyAgICBzeSA9IGRlZzJyYWQoc3kpOwor
ICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsKKyAgICBtYXQubV9tYXRyaXhbMF1b
MV0gPSB0YW4oc3kpOyAvLyBub3RlIHRoYXQgdGhlIHkgc2hlYXIgZ29lcyBpbiB0aGUgZmlyc3Qg
cm93CisgICAgbWF0Lm1fbWF0cml4WzFdWzBdID0gdGFuKHN4KTsgLy8gYW5kIHRoZSB4IHNoZWFy
IGluIHRoZSBzZWNvbmQgcm93CisKKyAgICBtdWx0TGVmdChtYXQpOworICAgIHJldHVybiAqdGhp
czsKK30KKworVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0cml4OjphcHBs
eVBlcnNwZWN0aXZlKGRvdWJsZSBwKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdDsK
KyAgICBpZiAocCAhPSAwKQorICAgICAgICBtYXQubV9tYXRyaXhbMl1bM10gPSAtMS9wOworCisg
ICAgbXVsdExlZnQobWF0KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKKy8vCisvLyAqdGhpcyA9
IG1hdCAqICp0aGlzCisvLworVHJhbnNmb3JtYXRpb25NYXRyaXgmIFRyYW5zZm9ybWF0aW9uTWF0
cml4OjptdWx0TGVmdChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0KQoreworICAgIE1h
dHJpeDQgdG1wOworICAgIAorICAgIHRtcFswXVswXSA9IChtYXQubV9tYXRyaXhbMF1bMF0gKiBt
X21hdHJpeFswXVswXSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1fbWF0cml4WzFdWzBdCisgICAg
ICAgICAgICAgICArIG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0cml4WzJdWzBdICsgbWF0Lm1f
bWF0cml4WzBdWzNdICogbV9tYXRyaXhbM11bMF0pOworICAgIHRtcFswXVsxXSA9IChtYXQubV9t
YXRyaXhbMF1bMF0gKiBtX21hdHJpeFswXVsxXSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1fbWF0
cml4WzFdWzFdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0cml4
WzJdWzFdICsgbWF0Lm1fbWF0cml4WzBdWzNdICogbV9tYXRyaXhbM11bMV0pOworICAgIHRtcFsw
XVsyXSA9IChtYXQubV9tYXRyaXhbMF1bMF0gKiBtX21hdHJpeFswXVsyXSArIG1hdC5tX21hdHJp
eFswXVsxXSAqIG1fbWF0cml4WzFdWzJdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFsw
XVsyXSAqIG1fbWF0cml4WzJdWzJdICsgbWF0Lm1fbWF0cml4WzBdWzNdICogbV9tYXRyaXhbM11b
Ml0pOworICAgIHRtcFswXVszXSA9IChtYXQubV9tYXRyaXhbMF1bMF0gKiBtX21hdHJpeFswXVsz
XSArIG1hdC5tX21hdHJpeFswXVsxXSAqIG1fbWF0cml4WzFdWzNdCisgICAgICAgICAgICAgICAr
IG1hdC5tX21hdHJpeFswXVsyXSAqIG1fbWF0cml4WzJdWzNdICsgbWF0Lm1fbWF0cml4WzBdWzNd
ICogbV9tYXRyaXhbM11bM10pOworCisgICAgdG1wWzFdWzBdID0gKG1hdC5tX21hdHJpeFsxXVsw
XSAqIG1fbWF0cml4WzBdWzBdICsgbWF0Lm1fbWF0cml4WzFdWzFdICogbV9tYXRyaXhbMV1bMF0K
KyAgICAgICAgICAgICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICogbV9tYXRyaXhbMl1bMF0gKyBt
YXQubV9tYXRyaXhbMV1bM10gKiBtX21hdHJpeFszXVswXSk7CisgICAgdG1wWzFdWzFdID0gKG1h
dC5tX21hdHJpeFsxXVswXSAqIG1fbWF0cml4WzBdWzFdICsgbWF0Lm1fbWF0cml4WzFdWzFdICog
bV9tYXRyaXhbMV1bMV0KKyAgICAgICAgICAgICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICogbV9t
YXRyaXhbMl1bMV0gKyBtYXQubV9tYXRyaXhbMV1bM10gKiBtX21hdHJpeFszXVsxXSk7CisgICAg
dG1wWzFdWzJdID0gKG1hdC5tX21hdHJpeFsxXVswXSAqIG1fbWF0cml4WzBdWzJdICsgbWF0Lm1f
bWF0cml4WzFdWzFdICogbV9tYXRyaXhbMV1bMl0KKyAgICAgICAgICAgICAgICsgbWF0Lm1fbWF0
cml4WzFdWzJdICogbV9tYXRyaXhbMl1bMl0gKyBtYXQubV9tYXRyaXhbMV1bM10gKiBtX21hdHJp
eFszXVsyXSk7CisgICAgdG1wWzFdWzNdID0gKG1hdC5tX21hdHJpeFsxXVswXSAqIG1fbWF0cml4
WzBdWzNdICsgbWF0Lm1fbWF0cml4WzFdWzFdICogbV9tYXRyaXhbMV1bM10KKyAgICAgICAgICAg
ICAgICsgbWF0Lm1fbWF0cml4WzFdWzJdICogbV9tYXRyaXhbMl1bM10gKyBtYXQubV9tYXRyaXhb
MV1bM10gKiBtX21hdHJpeFszXVszXSk7CisKKyAgICB0bXBbMl1bMF0gPSAobWF0Lm1fbWF0cml4
WzJdWzBdICogbV9tYXRyaXhbMF1bMF0gKyBtYXQubV9tYXRyaXhbMl1bMV0gKiBtX21hdHJpeFsx
XVswXQorICAgICAgICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1bMl0gKiBtX21hdHJpeFsyXVsw
XSArIG1hdC5tX21hdHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzBdKTsKKyAgICB0bXBbMl1bMV0g
PSAobWF0Lm1fbWF0cml4WzJdWzBdICogbV9tYXRyaXhbMF1bMV0gKyBtYXQubV9tYXRyaXhbMl1b
MV0gKiBtX21hdHJpeFsxXVsxXQorICAgICAgICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1bMl0g
KiBtX21hdHJpeFsyXVsxXSArIG1hdC5tX21hdHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzFdKTsK
KyAgICB0bXBbMl1bMl0gPSAobWF0Lm1fbWF0cml4WzJdWzBdICogbV9tYXRyaXhbMF1bMl0gKyBt
YXQubV9tYXRyaXhbMl1bMV0gKiBtX21hdHJpeFsxXVsyXQorICAgICAgICAgICAgICAgKyBtYXQu
bV9tYXRyaXhbMl1bMl0gKiBtX21hdHJpeFsyXVsyXSArIG1hdC5tX21hdHJpeFsyXVszXSAqIG1f
bWF0cml4WzNdWzJdKTsKKyAgICB0bXBbMl1bM10gPSAobWF0Lm1fbWF0cml4WzJdWzBdICogbV9t
YXRyaXhbMF1bM10gKyBtYXQubV9tYXRyaXhbMl1bMV0gKiBtX21hdHJpeFsxXVszXQorICAgICAg
ICAgICAgICAgKyBtYXQubV9tYXRyaXhbMl1bMl0gKiBtX21hdHJpeFsyXVszXSArIG1hdC5tX21h
dHJpeFsyXVszXSAqIG1fbWF0cml4WzNdWzNdKTsKKworICAgIHRtcFszXVswXSA9IChtYXQubV9t
YXRyaXhbM11bMF0gKiBtX21hdHJpeFswXVswXSArIG1hdC5tX21hdHJpeFszXVsxXSAqIG1fbWF0
cml4WzFdWzBdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFszXVsyXSAqIG1fbWF0cml4
WzJdWzBdICsgbWF0Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhbM11bMF0pOworICAgIHRtcFsz
XVsxXSA9IChtYXQubV9tYXRyaXhbM11bMF0gKiBtX21hdHJpeFswXVsxXSArIG1hdC5tX21hdHJp
eFszXVsxXSAqIG1fbWF0cml4WzFdWzFdCisgICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFsz
XVsyXSAqIG1fbWF0cml4WzJdWzFdICsgbWF0Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhbM11b
MV0pOworICAgIHRtcFszXVsyXSA9IChtYXQubV9tYXRyaXhbM11bMF0gKiBtX21hdHJpeFswXVsy
XSArIG1hdC5tX21hdHJpeFszXVsxXSAqIG1fbWF0cml4WzFdWzJdCisgICAgICAgICAgICAgICAr
IG1hdC5tX21hdHJpeFszXVsyXSAqIG1fbWF0cml4WzJdWzJdICsgbWF0Lm1fbWF0cml4WzNdWzNd
ICogbV9tYXRyaXhbM11bMl0pOworICAgIHRtcFszXVszXSA9IChtYXQubV9tYXRyaXhbM11bMF0g
KiBtX21hdHJpeFswXVszXSArIG1hdC5tX21hdHJpeFszXVsxXSAqIG1fbWF0cml4WzFdWzNdCisg
ICAgICAgICAgICAgICArIG1hdC5tX21hdHJpeFszXVsyXSAqIG1fbWF0cml4WzJdWzNdICsgbWF0
Lm1fbWF0cml4WzNdWzNdICogbV9tYXRyaXhbM11bM10pOworICAgIAorICAgIHNldE1hdHJpeCh0
bXApOworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bXVsdFZlY01hdHJpeChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSYgcmVzdWx0WCwgZG91Ymxl
JiByZXN1bHRZKSBjb25zdAoreworICAgIHJlc3VsdFggPSBtX21hdHJpeFszXVswXSArIHggKiBt
X21hdHJpeFswXVswXSArIHkgKiBtX21hdHJpeFsxXVswXTsKKyAgICByZXN1bHRZID0gbV9tYXRy
aXhbM11bMV0gKyB4ICogbV9tYXRyaXhbMF1bMV0gKyB5ICogbV9tYXRyaXhbMV1bMV07CisgICAg
ZG91YmxlIHcgPSBtX21hdHJpeFszXVszXSArIHggKiBtX21hdHJpeFswXVszXSArIHkgKiBtX21h
dHJpeFsxXVszXTsKKyAgICBpZiAodyAhPSAxICYmIHcgIT0gMCkgeworICAgICAgICByZXN1bHRY
IC89IHc7CisgICAgICAgIHJlc3VsdFkgLz0gdzsKKyAgICB9CiB9CiAKLXZvaWQgVHJhbnNmb3Jt
YXRpb25NYXRyaXg6OmJsZW5kKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBmcm9tLCBkb3Vi
bGUgcHJvZ3Jlc3MpCit2b2lkIFRyYW5zZm9ybWF0aW9uTWF0cml4OjptdWx0VmVjTWF0cml4KGRv
dWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSYgcmVzdWx0WCwgZG91YmxlJiByZXN1
bHRZLCBkb3VibGUmIHJlc3VsdFopIGNvbnN0CiB7Ci0gICAgZG91YmxlIHNyQVs5XSwgc3JCWzld
OworICAgIHJlc3VsdFggPSBtX21hdHJpeFszXVswXSArIHggKiBtX21hdHJpeFswXVswXSArIHkg
KiBtX21hdHJpeFsxXVswXSArIHogKiBtX21hdHJpeFsyXVswXTsKKyAgICByZXN1bHRZID0gbV9t
YXRyaXhbM11bMV0gKyB4ICogbV9tYXRyaXhbMF1bMV0gKyB5ICogbV9tYXRyaXhbMV1bMV0gKyB6
ICogbV9tYXRyaXhbMl1bMV07CisgICAgcmVzdWx0WiA9IG1fbWF0cml4WzNdWzJdICsgeCAqIG1f
bWF0cml4WzBdWzJdICsgeSAqIG1fbWF0cml4WzFdWzJdICsgeiAqIG1fbWF0cml4WzJdWzJdOwor
ICAgIGRvdWJsZSB3ID0gbV9tYXRyaXhbM11bM10gKyB4ICogbV9tYXRyaXhbMF1bM10gKyB5ICog
bV9tYXRyaXhbMV1bM10gKyB6ICogbV9tYXRyaXhbMl1bM107CisgICAgaWYgKHcgIT0gMSAmJiB3
ICE9IDApIHsKKyAgICAgICAgcmVzdWx0WCAvPSB3OworICAgICAgICByZXN1bHRZIC89IHc7Cisg
ICAgICAgIHJlc3VsdFogLz0gdzsKKyAgICB9Cit9CiAKLSAgICBhZmZpbmVUcmFuc2Zvcm1EZWNv
bXBvc2UoZnJvbSwgc3JBKTsKLSAgICBhZmZpbmVUcmFuc2Zvcm1EZWNvbXBvc2UoKnRoaXMsIHNy
Qik7Citib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojppc0ludmVydGlibGUoKSBjb25zdAorewor
ICAgIGRvdWJsZSBkZXQgPSBXZWJDb3JlOjpkZXRlcm1pbmFudDR4NChtX21hdHJpeCk7CiAKLSAg
ICAvLyBJZiB4LWF4aXMgb2Ygb25lIGlzIGZsaXBwZWQsIGFuZCB5LWF4aXMgb2YgdGhlIG90aGVy
LCBjb252ZXJ0IHRvIGFuIHVuZmxpcHBlZCByb3RhdGlvbi4KLSAgICBpZiAoKHNyQVswXSA8IDAu
MCAmJiBzckJbMV0gPCAwLjApIHx8IChzckFbMV0gPCAwLjAgJiYgIHNyQlswXSA8IDAuMCkpIHsK
LSAgICAgICAgc3JBWzBdID0gLXNyQVswXTsKLSAgICAgICAgc3JBWzFdID0gLXNyQVsxXTsKLSAg
ICAgICAgc3JBWzJdICs9IHNyQVsyXSA8IDAgPyBwaURvdWJsZSA6IC1waURvdWJsZTsKLSAgICB9
CisgICAgaWYgKGZhYnMoZGV0KSA8IFNNQUxMX05VTUJFUikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgLy8gRG9uJ3Qgcm90YXRlIHRoZSBsb25nIHdheSBhcm91bmQuCi0gICAgc3JBWzJd
ID0gZm1vZChzckFbMl0sIDIuMCAqIHBpRG91YmxlKTsKLSAgICBzckJbMl0gPSBmbW9kKHNyQlsy
XSwgMi4wICogcGlEb3VibGUpOworICAgIHJldHVybiB0cnVlOworfQogCi0gICAgaWYgKGZhYnMo
c3JBWzJdIC0gc3JCWzJdKSA+IHBpRG91YmxlKSB7Ci0gICAgICAgIGlmIChzckFbMl0gPiBzckJb
Ml0pCi0gICAgICAgICAgICBzckFbMl0gLT0gcGlEb3VibGUgKiAyLjA7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHNyQlsyXSAtPSBwaURvdWJsZSAqIDIuMDsKLSAgICB9CisvLyBUaGlzIG1l
dGhvZCByZXR1cm5zIHRoZSBpZGVudGl0eSBtYXRyaXggaWYgaXQgaXMgbm90IGludmVydGlibGUu
CisvLyBVc2UgaXNJbnZlcnRpYmxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBpZiB5b3UgbmVlZCB0
byBrbm93LgorVHJhbnNmb3JtYXRpb25NYXRyaXggVHJhbnNmb3JtYXRpb25NYXRyaXg6OmludmVy
c2UoKSBjb25zdCAKK3sKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZNYXQ7CisgICAgCisg
ICAgYm9vbCBpbnZlcnRlZCA9IFdlYkNvcmU6OmludmVyc2UobV9tYXRyaXgsIGludk1hdC5tX21h
dHJpeCk7CisgICAgaWYgKCFpbnZlcnRlZCkKKyAgICAgICAgcmV0dXJuIFRyYW5zZm9ybWF0aW9u
TWF0cml4KCk7CisgICAgCisgICAgcmV0dXJuIGludk1hdDsKK30KIAotICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgOTsgaSsrKQotICAgICAgICBzckFbaV0gPSBzckFbaV0gKyBwcm9ncmVzcyAqIChz
ckJbaV0gLSBzckFbaV0pOworc3RhdGljIGlubGluZSB2b2lkIGJsZW5kRmxvYXQoZG91YmxlJiBm
cm9tLCBkb3VibGUgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3sKKyAgICBpZiAoZnJvbSAhPSB0bykK
KyAgICAgICAgZnJvbSA9IGZyb20gKyAodG8gLSBmcm9tKSAqIHByb2dyZXNzOworfQogCi0gICAg
YWZmaW5lVHJhbnNmb3JtQ29tcG9zZSgqdGhpcywgc3JBKTsKK3ZvaWQgVHJhbnNmb3JtYXRpb25N
YXRyaXg6OmJsZW5kKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBmcm9tLCBkb3VibGUgcHJv
Z3Jlc3MpCit7CisgICAgaWYgKGZyb20uaXNJZGVudGl0eSgpICYmIGlzSWRlbnRpdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAvLyBkZWNvbXBvc2UKKyAgICBEZWNvbXBvc2Vk
VHlwZSBmcm9tRGVjb21wOworICAgIERlY29tcG9zZWRUeXBlIHRvRGVjb21wOworICAgIGZyb20u
ZGVjb21wb3NlKGZyb21EZWNvbXApOworICAgIGRlY29tcG9zZSh0b0RlY29tcCk7CisKKyAgICAv
LyBpbnRlcnBvbGF0ZQorICAgIGJsZW5kRmxvYXQoZnJvbURlY29tcC5zY2FsZVgsIHRvRGVjb21w
LnNjYWxlWCwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29tcC5zY2FsZVksIHRv
RGVjb21wLnNjYWxlWSwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29tcC5zY2Fs
ZVosIHRvRGVjb21wLnNjYWxlWiwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29t
cC5za2V3WFksIHRvRGVjb21wLnNrZXdYWSwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJv
bURlY29tcC5za2V3WFosIHRvRGVjb21wLnNrZXdYWiwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxv
YXQoZnJvbURlY29tcC5za2V3WVosIHRvRGVjb21wLnNrZXdZWiwgcHJvZ3Jlc3MpOworICAgIGJs
ZW5kRmxvYXQoZnJvbURlY29tcC50cmFuc2xhdGVYLCB0b0RlY29tcC50cmFuc2xhdGVYLCBwcm9n
cmVzcyk7CisgICAgYmxlbmRGbG9hdChmcm9tRGVjb21wLnRyYW5zbGF0ZVksIHRvRGVjb21wLnRy
YW5zbGF0ZVksIHByb2dyZXNzKTsKKyAgICBibGVuZEZsb2F0KGZyb21EZWNvbXAudHJhbnNsYXRl
WiwgdG9EZWNvbXAudHJhbnNsYXRlWiwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURl
Y29tcC5wZXJzcGVjdGl2ZVgsIHRvRGVjb21wLnBlcnNwZWN0aXZlWCwgcHJvZ3Jlc3MpOworICAg
IGJsZW5kRmxvYXQoZnJvbURlY29tcC5wZXJzcGVjdGl2ZVksIHRvRGVjb21wLnBlcnNwZWN0aXZl
WSwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29tcC5wZXJzcGVjdGl2ZVosIHRv
RGVjb21wLnBlcnNwZWN0aXZlWiwgcHJvZ3Jlc3MpOworICAgIGJsZW5kRmxvYXQoZnJvbURlY29t
cC5wZXJzcGVjdGl2ZVcsIHRvRGVjb21wLnBlcnNwZWN0aXZlVywgcHJvZ3Jlc3MpOworICAgIAor
ICAgIHNsZXJwKCZmcm9tRGVjb21wLnF1YXRlcm5pb25YLCAmdG9EZWNvbXAucXVhdGVybmlvblgs
IHByb2dyZXNzKTsKKyAgICAgICAgCisgICAgLy8gcmVjb21wb3NlCisgICAgcmVjb21wb3NlKGZy
b21EZWNvbXApOworfQorCitib29sIFRyYW5zZm9ybWF0aW9uTWF0cml4OjpkZWNvbXBvc2UoRGVj
b21wb3NlZFR5cGUmIGRlY29tcCkgY29uc3QKK3sKKyAgICBpZiAoaXNJZGVudGl0eSgpKSB7Cisg
ICAgICAgIG1lbXNldCgmZGVjb21wLCAwLCBzaXplb2YoZGVjb21wKSk7CisgICAgICAgIGRlY29t
cC5wZXJzcGVjdGl2ZVcgPSAxOworICAgICAgICBkZWNvbXAuc2NhbGVYID0gMTsKKyAgICAgICAg
ZGVjb21wLnNjYWxlWSA9IDE7CisgICAgICAgIGRlY29tcC5zY2FsZVogPSAxOworICAgIH0KKyAg
ICAKKyAgICBpZiAoIVdlYkNvcmU6OmRlY29tcG9zZShtX21hdHJpeCwgZGVjb21wKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFRyYW5zZm9ybWF0
aW9uTWF0cml4OjpyZWNvbXBvc2UoY29uc3QgRGVjb21wb3NlZFR5cGUmIGRlY29tcCkKK3sKKyAg
ICBtYWtlSWRlbnRpdHkoKTsKKyAgICAKKyAgICAvLyBmaXJzdCBhcHBseSBwZXJzcGVjdGl2ZQor
ICAgIG1fbWF0cml4WzBdWzNdID0gKGZsb2F0KSBkZWNvbXAucGVyc3BlY3RpdmVYOworICAgIG1f
bWF0cml4WzFdWzNdID0gKGZsb2F0KSBkZWNvbXAucGVyc3BlY3RpdmVZOworICAgIG1fbWF0cml4
WzJdWzNdID0gKGZsb2F0KSBkZWNvbXAucGVyc3BlY3RpdmVaOworICAgIG1fbWF0cml4WzNdWzNd
ID0gKGZsb2F0KSBkZWNvbXAucGVyc3BlY3RpdmVXOworICAgIAorICAgIC8vIG5vdyB0cmFuc2xh
dGUKKyAgICB0cmFuc2xhdGUzZCgoZmxvYXQpIGRlY29tcC50cmFuc2xhdGVYLCAoZmxvYXQpIGRl
Y29tcC50cmFuc2xhdGVZLCAoZmxvYXQpIGRlY29tcC50cmFuc2xhdGVaKTsKKyAgICAKKyAgICAv
LyBhcHBseSByb3RhdGlvbgorICAgIGRvdWJsZSB4eCA9IGRlY29tcC5xdWF0ZXJuaW9uWCAqIGRl
Y29tcC5xdWF0ZXJuaW9uWDsKKyAgICBkb3VibGUgeHkgPSBkZWNvbXAucXVhdGVybmlvblggKiBk
ZWNvbXAucXVhdGVybmlvblk7CisgICAgZG91YmxlIHh6ID0gZGVjb21wLnF1YXRlcm5pb25YICog
ZGVjb21wLnF1YXRlcm5pb25aOworICAgIGRvdWJsZSB4dyA9IGRlY29tcC5xdWF0ZXJuaW9uWCAq
IGRlY29tcC5xdWF0ZXJuaW9uVzsKKyAgICBkb3VibGUgeXkgPSBkZWNvbXAucXVhdGVybmlvblkg
KiBkZWNvbXAucXVhdGVybmlvblk7CisgICAgZG91YmxlIHl6ID0gZGVjb21wLnF1YXRlcm5pb25Z
ICogZGVjb21wLnF1YXRlcm5pb25aOworICAgIGRvdWJsZSB5dyA9IGRlY29tcC5xdWF0ZXJuaW9u
WSAqIGRlY29tcC5xdWF0ZXJuaW9uVzsKKyAgICBkb3VibGUgenogPSBkZWNvbXAucXVhdGVybmlv
blogKiBkZWNvbXAucXVhdGVybmlvblo7CisgICAgZG91YmxlIHp3ID0gZGVjb21wLnF1YXRlcm5p
b25aICogZGVjb21wLnF1YXRlcm5pb25XOworICAgIAorICAgIC8vIENvbnN0cnVjdCBhIGNvbXBv
c2l0ZSByb3RhdGlvbiBtYXRyaXggZnJvbSB0aGUgcXVhdGVybmlvbiB2YWx1ZXMKKyAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCByb3RhdGlvbk1hdHJpeCgxIC0gMiAqICh5eSArIHp6KSwgMiAqICh4
eSAtIHp3KSwgMiAqICh4eiArIHl3KSwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAy
ICogKHh5ICsgencpLCAxIC0gMiAqICh4eCArIHp6KSwgMiAqICh5eiAtIHh3KSwgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIgKiAoeHogLSB5dyksIDIgKiAoeXogKyB4dyksIDEgLSAy
ICogKHh4ICsgeXkpLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMSk7
CisgICAgCisgICAgbXVsdExlZnQocm90YXRpb25NYXRyaXgpOworICAgIAorICAgIC8vIG5vdyBh
cHBseSBza2V3CisgICAgaWYgKGRlY29tcC5za2V3WVopIHsKKyAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggdG1wOworICAgICAgICB0bXAuc2V0TTMyKChmbG9hdCkgZGVjb21wLnNrZXdZWik7
CisgICAgICAgIG11bHRMZWZ0KHRtcCk7CisgICAgfQorICAgIAorICAgIGlmIChkZWNvbXAuc2tl
d1haKSB7CisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRtcDsKKyAgICAgICAgdG1wLnNl
dE0zMSgoZmxvYXQpIGRlY29tcC5za2V3WFopOworICAgICAgICBtdWx0TGVmdCh0bXApOworICAg
IH0KKyAgICAKKyAgICBpZiAoZGVjb21wLnNrZXdYWSkgeworICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCB0bXA7CisgICAgICAgIHRtcC5zZXRNMjEoKGZsb2F0KSBkZWNvbXAuc2tld1hZKTsK
KyAgICAgICAgbXVsdExlZnQodG1wKTsKKyAgICB9CisgICAgCisgICAgLy8gZmluYWxseSwgYXBw
bHkgc2NhbGUKKyAgICBzY2FsZTNkKChmbG9hdCkgZGVjb21wLnNjYWxlWCwgKGZsb2F0KSBkZWNv
bXAuc2NhbGVZLCAoZmxvYXQpIGRlY29tcC5zY2FsZVopOwogfQogCiB9CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3Jt
YXRpb25NYXRyaXguaAkocmV2aXNpb24gNDA2OTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsMjAgKzI4LDYgQEAKIAogI2lmIFBMQVRGT1JNKENHKQogI2luY2x1ZGUgPENvcmVHcmFwaGlj
cy9DR0FmZmluZVRyYW5zZm9ybS5oPgotdHlwZWRlZiBDR0FmZmluZVRyYW5zZm9ybSBQbGF0Zm9y
bVRyYW5zZm9ybWF0aW9uTWF0cml4OwotI2VsaWYgUExBVEZPUk0oUVQpCi0jaW5jbHVkZSA8UU1h
dHJpeD4KLXR5cGVkZWYgUU1hdHJpeCBQbGF0Zm9ybVRyYW5zZm9ybWF0aW9uTWF0cml4OwotI2Vs
aWYgUExBVEZPUk0oQ0FJUk8pCi0jaW5jbHVkZSA8Y2Fpcm8uaD4KLXR5cGVkZWYgY2Fpcm9fbWF0
cml4X3QgUGxhdGZvcm1UcmFuc2Zvcm1hdGlvbk1hdHJpeDsKLSNlbGlmIFBMQVRGT1JNKFNLSUEp
Ci0jaW5jbHVkZSAiU2tNYXRyaXguaCIKLXR5cGVkZWYgU2tNYXRyaXggUGxhdGZvcm1UcmFuc2Zv
cm1hdGlvbk1hdHJpeDsKLSNlbGlmIFBMQVRGT1JNKFdYKSAmJiBVU0UoV1hHQykKLSNpbmNsdWRl
IDx3eC9kZWZzLmg+Ci0jaW5jbHVkZSA8d3gvZ3JhcGhpY3MuaD4KLXR5cGVkZWYgd3hHcmFwaGlj
c01hdHJpeCBQbGF0Zm9ybVRyYW5zZm9ybWF0aW9uTWF0cml4OwogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ5LDI1ICszNSw3NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRmxv
YXRQb2ludDNEOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFkOwogCiBjbGFzcyBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB7CiBwdWJsaWM6Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXgo
KTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBj
LCBkb3VibGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKTsKLSNpZiAhUExBVEZPUk0oV1gpIHx8IFVT
RShXWEdDKQotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KGNvbnN0IFBsYXRmb3JtVHJhbnNmb3Jt
YXRpb25NYXRyaXgmKTsKLSNlbmRpZgorICAgIHR5cGVkZWYgZG91YmxlIE1hdHJpeDRbNF1bNF07
CiAKLSAgICB2b2lkIHNldE1hdHJpeChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjLCBkb3Vi
bGUgZCwgZG91YmxlIGUsIGRvdWJsZSBmKTsKLSAgICB2b2lkIG1hcChkb3VibGUgeCwgZG91Ymxl
IHksIGRvdWJsZSAqeDIsIGRvdWJsZSAqeTIpIGNvbnN0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4KCkgeyBtYWtlSWRlbnRpdHkoKTsgfQorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4KGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KSB7ICp0aGlzID0gdDsgfQorICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJsZSBkLCBkb3VibGUg
ZSwgZG91YmxlIGYpIHsgc2V0TWF0cml4KGEsIGIsIGMsIGQsIGUsIGYpOyB9CisgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXgoZG91YmxlIG0xMSwgZG91YmxlIG0xMiwgZG91YmxlIG0xMywgZG91Ymxl
IG0xNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTIxLCBkb3VibGUgbTIyLCBk
b3VibGUgbTIzLCBkb3VibGUgbTI0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBt
MzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZG91YmxlIG00MSwgZG91YmxlIG00MiwgZG91YmxlIG00MywgZG91YmxlIG00NCkK
KyAgICB7CisgICAgICAgIHNldE1hdHJpeChtMTEsIG0xMiwgbTEzLCBtMTQsIG0yMSwgbTIyLCBt
MjMsIG0yNCwgbTMxLCBtMzIsIG0zMywgbTM0LCBtNDEsIG00MiwgbTQzLCBtNDQpOworICAgIH0K
KworICAgIHZvaWQgc2V0TWF0cml4KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMsIGRvdWJs
ZSBkLCBkb3VibGUgZSwgZG91YmxlIGYpCisgICAgeworICAgICAgICBtX21hdHJpeFswXVswXSA9
IGE7IG1fbWF0cml4WzBdWzFdID0gYjsgbV9tYXRyaXhbMF1bMl0gPSAwOyBtX21hdHJpeFswXVsz
XSA9IDA7IAorICAgICAgICBtX21hdHJpeFsxXVswXSA9IGM7IG1fbWF0cml4WzFdWzFdID0gZDsg
bV9tYXRyaXhbMV1bMl0gPSAwOyBtX21hdHJpeFsxXVszXSA9IDA7IAorICAgICAgICBtX21hdHJp
eFsyXVswXSA9IDA7IG1fbWF0cml4WzJdWzFdID0gMDsgbV9tYXRyaXhbMl1bMl0gPSAxOyBtX21h
dHJpeFsyXVszXSA9IDA7IAorICAgICAgICBtX21hdHJpeFszXVswXSA9IGU7IG1fbWF0cml4WzNd
WzFdID0gZjsgbV9tYXRyaXhbM11bMl0gPSAwOyBtX21hdHJpeFszXVszXSA9IDE7CisgICAgfQor
ICAgIAorICAgIHZvaWQgc2V0TWF0cml4KGRvdWJsZSBtMTEsIGRvdWJsZSBtMTIsIGRvdWJsZSBt
MTMsIGRvdWJsZSBtMTQsCisgICAgICAgICAgICAgICAgICAgZG91YmxlIG0yMSwgZG91YmxlIG0y
MiwgZG91YmxlIG0yMywgZG91YmxlIG0yNCwKKyAgICAgICAgICAgICAgICAgICBkb3VibGUgbTMx
LCBkb3VibGUgbTMyLCBkb3VibGUgbTMzLCBkb3VibGUgbTM0LAorICAgICAgICAgICAgICAgICAg
IGRvdWJsZSBtNDEsIGRvdWJsZSBtNDIsIGRvdWJsZSBtNDMsIGRvdWJsZSBtNDQpCisgICAgewor
ICAgICAgICBtX21hdHJpeFswXVswXSA9IG0xMTsgbV9tYXRyaXhbMF1bMV0gPSBtMTI7IG1fbWF0
cml4WzBdWzJdID0gbTEzOyBtX21hdHJpeFswXVszXSA9IG0xNDsgCisgICAgICAgIG1fbWF0cml4
WzFdWzBdID0gbTIxOyBtX21hdHJpeFsxXVsxXSA9IG0yMjsgbV9tYXRyaXhbMV1bMl0gPSBtMjM7
IG1fbWF0cml4WzFdWzNdID0gbTI0OyAKKyAgICAgICAgbV9tYXRyaXhbMl1bMF0gPSBtMzE7IG1f
bWF0cml4WzJdWzFdID0gbTMyOyBtX21hdHJpeFsyXVsyXSA9IG0zMzsgbV9tYXRyaXhbMl1bM10g
PSBtMzQ7IAorICAgICAgICBtX21hdHJpeFszXVswXSA9IG00MTsgbV9tYXRyaXhbM11bMV0gPSBt
NDI7IG1fbWF0cml4WzNdWzJdID0gbTQzOyBtX21hdHJpeFszXVszXSA9IG00NDsKKyAgICB9Cisg
ICAgCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG9wZXJhdG9yID0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXggJnQpCisgICAgeworICAgICAgICBzZXRNYXRyaXgodC5tX21hdHJpeCk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWFrZUlkZW50aXR5KCkKKyAgICB7CisgICAgICAgIHNldE1hdHJpeCgxLCAwLCAwLCAwLCAgMCwg
MSwgMCwgMCwgIDAsIDAsIDEsIDAsICAwLCAwLCAwLCAxKTsKKyAgICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKworICAgIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9tYXRyaXhbMF1bMF0gPT0gMSAmJiBtX21hdHJpeFswXVsxXSA9PSAwICYmIG1fbWF0
cml4WzBdWzJdID09IDAgJiYgbV9tYXRyaXhbMF1bM10gPT0gMCAmJgorICAgICAgICAgICAgICAg
bV9tYXRyaXhbMV1bMF0gPT0gMCAmJiBtX21hdHJpeFsxXVsxXSA9PSAxICYmIG1fbWF0cml4WzFd
WzJdID09IDAgJiYgbV9tYXRyaXhbMV1bM10gPT0gMCAmJgorICAgICAgICAgICAgICAgbV9tYXRy
aXhbMl1bMF0gPT0gMCAmJiBtX21hdHJpeFsyXVsxXSA9PSAwICYmIG1fbWF0cml4WzJdWzJdID09
IDEgJiYgbV9tYXRyaXhbMl1bM10gPT0gMCAmJgorICAgICAgICAgICAgICAgbV9tYXRyaXhbM11b
MF0gPT0gMCAmJiBtX21hdHJpeFszXVsxXSA9PSAwICYmIG1fbWF0cml4WzNdWzJdID09IDAgJiYg
bV9tYXRyaXhbM11bM10gPT0gMTsKKyAgICB9CiAKLSAgICAvLyBSb3VuZHMgdGhlIG1hcHBlZCBw
b2ludCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHZhbHVlLgotICAgIEludFBvaW50IG1hcFBvaW50
KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgLy8gVGhpcyBmb3JtIHByZXNlcnZlcyB0aGUg
ZG91YmxlIG1hdGggZnJvbSBpbnB1dCB0byBvdXRwdXQKKyAgICB2b2lkIG1hcChkb3VibGUgeCwg
ZG91YmxlIHksIGRvdWJsZSYgeDIsIGRvdWJsZSYgeTIpIGNvbnN0IHsgbXVsdFZlY01hdHJpeCh4
LCB5LCB4MiwgeTIpOyB9CisKKyAgICAvLyBNYXAgYSAzRCBwb2ludCB0aHJvdWdoIHRoZSB0cmFu
c2Zvcm0sIHJldHVybmluZyBhIDNEIHBvaW50LgorICAgIEZsb2F0UG9pbnQzRCBtYXBQb2ludChj
b25zdCBGbG9hdFBvaW50M0QmKSBjb25zdDsKIAorICAgIC8vIE1hcCBhIDJEIHBvaW50IHRocm91
Z2ggdGhlIHRyYW5zZm9ybSwgcmV0dXJuaW5nIGEgMkQgcG9pbnQuCisgICAgLy8gTm90ZSB0aGF0
IHRoaXMgaWdub3JlcyB0aGUgeiBjb21wb25lbnQsIGVmZmVjdGl2ZWx5IHByb2plY3RpbmcgdGhl
IHBvaW50IGludG8gdGhlIHo9MCBwbGFuZS4KICAgICBGbG9hdFBvaW50IG1hcFBvaW50KGNvbnN0
IEZsb2F0UG9pbnQmKSBjb25zdDsKIAorICAgIC8vIExpa2UgdGhlIHZlcnNpb24gYWJvdmUsIGV4
Y2VwdCB0aGF0IGl0IHJvdW5kcyB0aGUgbWFwcGVkIHBvaW50IHRvIHRoZSBuZWFyZXN0IGludGVn
ZXIgdmFsdWUuCisgICAgSW50UG9pbnQgbWFwUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
KwogICAgIC8vIFJvdW5kcyB0aGUgcmVzdWx0aW5nIG1hcHBlZCByZWN0YW5nbGUgb3V0LiBUaGlz
IGlzIGhlbHBmdWwgZm9yIGJvdW5kaW5nCiAgICAgLy8gYm94IGNvbXB1dGF0aW9ucyBidXQgbWF5
IG5vdCBiZSB3aGF0IGlzIHdhbnRlZCBpbiBvdGhlciBjb250ZXh0cy4KICAgICBJbnRSZWN0IG1h
cFJlY3QoY29uc3QgSW50UmVjdCYpIGNvbnN0OwpAQCAtNzYsNjQgKzExNCwxNzUgQEAgcHVibGlj
OgogCiAgICAgRmxvYXRRdWFkIG1hcFF1YWQoY29uc3QgRmxvYXRRdWFkJikgY29uc3Q7CiAKLSAg
ICBib29sIGlzSWRlbnRpdHkoKSBjb25zdDsKLQotICAgIGRvdWJsZSBhKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRBKGRvdWJsZSBhKTsKLQotICAgIGRvdWJsZSBiKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRCKGRvdWJsZSBiKTsKLQotICAgIGRvdWJsZSBjKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDKGRv
dWJsZSBjKTsKLQotICAgIGRvdWJsZSBkKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREKGRvdWJsZSBk
KTsKLQotICAgIGRvdWJsZSBlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRFKGRvdWJsZSBlKTsKLQot
ICAgIGRvdWJsZSBmKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGKGRvdWJsZSBmKTsKLQotICAgIHZv
aWQgcmVzZXQoKTsKLQotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtdWx0aXBseShjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYpOworICAgIC8vIE1hcCBhIHBvaW50IG9uIHRoZSB6PTAgcGxh
bmUgaW50byBhIHBvaW50IG9uCisgICAgLy8gdGhlIHBsYW5lIHdpdGggd2l0aCB0aGUgdHJhbnNm
b3JtIGFwcGxpZWQsIGJ5IGV4dGVuZGluZworICAgIC8vIGEgcmF5IHBlcnBlbmRpY3VsYXIgdG8g
dGhlIHNvdXJjZSBwbGFuZSBhbmQgY29tcHV0aW5nCisgICAgLy8gdGhlIGxvY2FsIHgseSBwb3Np
dGlvbiBvZiB0aGUgcG9pbnQgd2hlcmUgdGhhdCByYXkgaW50ZXJzZWN0cworICAgIC8vIHdpdGgg
dGhlIGRlc3RpbmF0aW9uIHBsYW5lLgorICAgIEZsb2F0UG9pbnQgcHJvamVjdFBvaW50KGNvbnN0
IEZsb2F0UG9pbnQmKSBjb25zdDsKKworICAgIGRvdWJsZSBtMTEoKSBjb25zdCB7IHJldHVybiBt
X21hdHJpeFswXVswXTsgfQorICAgIHZvaWQgc2V0TTExKGRvdWJsZSBmKSB7IG1fbWF0cml4WzBd
WzBdID0gZjsgfQorICAgIGRvdWJsZSBtMTIoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFswXVsx
XTsgfQorICAgIHZvaWQgc2V0TTEyKGRvdWJsZSBmKSB7IG1fbWF0cml4WzBdWzFdID0gZjsgfQor
ICAgIGRvdWJsZSBtMTMoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFswXVsyXTsgfQorICAgIHZv
aWQgc2V0TTEzKGRvdWJsZSBmKSB7IG1fbWF0cml4WzBdWzJdID0gZjsgfQorICAgIGRvdWJsZSBt
MTQoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFswXVszXTsgfQorICAgIHZvaWQgc2V0TTE0KGRv
dWJsZSBmKSB7IG1fbWF0cml4WzBdWzNdID0gZjsgfQorICAgIGRvdWJsZSBtMjEoKSBjb25zdCB7
IHJldHVybiBtX21hdHJpeFsxXVswXTsgfQorICAgIHZvaWQgc2V0TTIxKGRvdWJsZSBmKSB7IG1f
bWF0cml4WzFdWzBdID0gZjsgfQorICAgIGRvdWJsZSBtMjIoKSBjb25zdCB7IHJldHVybiBtX21h
dHJpeFsxXVsxXTsgfQorICAgIHZvaWQgc2V0TTIyKGRvdWJsZSBmKSB7IG1fbWF0cml4WzFdWzFd
ID0gZjsgfQorICAgIGRvdWJsZSBtMjMoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFsxXVsyXTsg
fQorICAgIHZvaWQgc2V0TTIzKGRvdWJsZSBmKSB7IG1fbWF0cml4WzFdWzJdID0gZjsgfQorICAg
IGRvdWJsZSBtMjQoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFsxXVszXTsgfQorICAgIHZvaWQg
c2V0TTI0KGRvdWJsZSBmKSB7IG1fbWF0cml4WzFdWzNdID0gZjsgfQorICAgIGRvdWJsZSBtMzEo
KSBjb25zdCB7IHJldHVybiBtX21hdHJpeFsyXVswXTsgfQorICAgIHZvaWQgc2V0TTMxKGRvdWJs
ZSBmKSB7IG1fbWF0cml4WzJdWzBdID0gZjsgfQorICAgIGRvdWJsZSBtMzIoKSBjb25zdCB7IHJl
dHVybiBtX21hdHJpeFsyXVsxXTsgfQorICAgIHZvaWQgc2V0TTMyKGRvdWJsZSBmKSB7IG1fbWF0
cml4WzJdWzFdID0gZjsgfQorICAgIGRvdWJsZSBtMzMoKSBjb25zdCB7IHJldHVybiBtX21hdHJp
eFsyXVsyXTsgfQorICAgIHZvaWQgc2V0TTMzKGRvdWJsZSBmKSB7IG1fbWF0cml4WzJdWzJdID0g
ZjsgfQorICAgIGRvdWJsZSBtMzQoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFsyXVszXTsgfQor
ICAgIHZvaWQgc2V0TTM0KGRvdWJsZSBmKSB7IG1fbWF0cml4WzJdWzNdID0gZjsgfQorICAgIGRv
dWJsZSBtNDEoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFszXVswXTsgfQorICAgIHZvaWQgc2V0
TTQxKGRvdWJsZSBmKSB7IG1fbWF0cml4WzNdWzBdID0gZjsgfQorICAgIGRvdWJsZSBtNDIoKSBj
b25zdCB7IHJldHVybiBtX21hdHJpeFszXVsxXTsgfQorICAgIHZvaWQgc2V0TTQyKGRvdWJsZSBm
KSB7IG1fbWF0cml4WzNdWzFdID0gZjsgfQorICAgIGRvdWJsZSBtNDMoKSBjb25zdCB7IHJldHVy
biBtX21hdHJpeFszXVsyXTsgfQorICAgIHZvaWQgc2V0TTQzKGRvdWJsZSBmKSB7IG1fbWF0cml4
WzNdWzJdID0gZjsgfQorICAgIGRvdWJsZSBtNDQoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFsz
XVszXTsgfQorICAgIHZvaWQgc2V0TTQ0KGRvdWJsZSBmKSB7IG1fbWF0cml4WzNdWzNdID0gZjsg
fQorICAgIAorICAgIGRvdWJsZSBhKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXhbMF1bMF07IH0K
KyAgICB2b2lkIHNldEEoZG91YmxlIGEpIHsgbV9tYXRyaXhbMF1bMF0gPSBhOyB9CisKKyAgICBk
b3VibGUgYigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzBdWzFdOyB9CisgICAgdm9pZCBzZXRC
KGRvdWJsZSBiKSB7IG1fbWF0cml4WzBdWzFdID0gYjsgfQorCisgICAgZG91YmxlIGMoKSBjb25z
dCB7IHJldHVybiBtX21hdHJpeFsxXVswXTsgfQorICAgIHZvaWQgc2V0Qyhkb3VibGUgYykgeyBt
X21hdHJpeFsxXVswXSA9IGM7IH0KKworICAgIGRvdWJsZSBkKCkgY29uc3QgeyByZXR1cm4gbV9t
YXRyaXhbMV1bMV07IH0KKyAgICB2b2lkIHNldEQoZG91YmxlIGQpIHsgbV9tYXRyaXhbMV1bMV0g
PSBkOyB9CisKKyAgICBkb3VibGUgZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzNdWzBdOyB9
CisgICAgdm9pZCBzZXRFKGRvdWJsZSBlKSB7IG1fbWF0cml4WzNdWzBdID0gZTsgfQorCisgICAg
ZG91YmxlIGYoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeFszXVsxXTsgfQorICAgIHZvaWQgc2V0
Rihkb3VibGUgZikgeyBtX21hdHJpeFszXVsxXSA9IGY7IH0KKworICAgIC8vIHRoaXMgPSB0aGlz
ICogbWF0CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG11bHRpcGx5KGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0KSB7IHJldHVybiAqdGhpcyAqPSB0OyB9CisKKyAgICAvLyB0aGlzID0g
bWF0ICogdGhpcworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtdWx0TGVmdChjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbWF0KTsKKyAgICAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
c2NhbGUoZG91YmxlKTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2NhbGUoZG91YmxlIHN4
LCBkb3VibGUgc3kpOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBzY2FsZU5vblVuaWZvcm0o
ZG91YmxlIHN4LCBkb3VibGUgc3kpOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiByb3RhdGUo
ZG91YmxlIGQpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBzY2FsZTNkKGRvdWJsZSBzeCwg
ZG91YmxlIHN5LCBkb3VibGUgc3opOworICAgIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBy
b3RhdGUoZG91YmxlIGQpIHsgcmV0dXJuIHJvdGF0ZTNkKDAsIDAsIGQpOyB9CiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHJvdGF0ZUZyb21WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcm90YXRlM2QoZG91YmxlIHJ4LCBkb3VibGUgcnksIGRv
dWJsZSByeik7CisgICAgCisgICAgLy8gVGhlIHZlY3RvciAoeCx5LHopIGlzIG5vcm1hbGl6ZWQg
aWYgaXQncyBub3QgYWxyZWFkeS4gQSB2ZWN0b3Igb2YKKyAgICAvLyAoMCwwLDApIHVzZXMgYSB2
ZWN0b3Igb2YgKDAsMCwxKS4KKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcm90YXRlM2QoZG91
YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIGFuZ2xlKTsKKyAgICAKICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNsYXRlKGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKLSAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2hlYXIoZG91YmxlIHN4LCBkb3VibGUgc3kpOworICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2xhdGUzZChkb3VibGUgdHgsIGRvdWJsZSB0eSwgZG91
YmxlIHR6KTsKKyAgICAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZmxpcFgoKTsKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgZmxpcFkoKTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
c2tldyhkb3VibGUgYW5nbGVYLCBkb3VibGUgYW5nbGVZKTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgc2tld1goZG91YmxlIGFuZ2xlKTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2tl
d1koZG91YmxlIGFuZ2xlKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc2tld1goZG91Ymxl
IGFuZ2xlKSB7IHJldHVybiBza2V3KGFuZ2xlLCAwKTsgfQorICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBza2V3WShkb3VibGUgYW5nbGUpIHsgcmV0dXJuIHNrZXcoMCwgYW5nbGUpOyB9CisKKyAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgYXBwbHlQZXJzcGVjdGl2ZShkb3VibGUgcCk7CisgICAg
Ym9vbCBoYXNQZXJzcGVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4WzJdWzNdICE9IDAu
MGY7IH0KIAotICAgIGRvdWJsZSBkZXQoKSBjb25zdDsKICAgICBib29sIGlzSW52ZXJ0aWJsZSgp
IGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGludmVyc2UoKSBjb25zdDsKIAorICAg
IC8vIGRlY29tcG9zZSB0aGUgbWF0cml4IGludG8gaXRzIGNvbXBvbmVudCBwYXJ0cworICAgIHR5
cGVkZWYgc3RydWN0IHsKKyAgICAgICAgZG91YmxlIHNjYWxlWCwgc2NhbGVZLCBzY2FsZVo7Cisg
ICAgICAgIGRvdWJsZSBza2V3WFksIHNrZXdYWiwgc2tld1laOworICAgICAgICBkb3VibGUgcXVh
dGVybmlvblgsIHF1YXRlcm5pb25ZLCBxdWF0ZXJuaW9uWiwgcXVhdGVybmlvblc7CisgICAgICAg
IGRvdWJsZSB0cmFuc2xhdGVYLCB0cmFuc2xhdGVZLCB0cmFuc2xhdGVaOworICAgICAgICBkb3Vi
bGUgcGVyc3BlY3RpdmVYLCBwZXJzcGVjdGl2ZVksIHBlcnNwZWN0aXZlWiwgcGVyc3BlY3RpdmVX
OworICAgIH0gRGVjb21wb3NlZFR5cGU7CisgICAgCisgICAgYm9vbCBkZWNvbXBvc2UoRGVjb21w
b3NlZFR5cGUmIGRlY29tcCkgY29uc3Q7CisgICAgdm9pZCByZWNvbXBvc2UoY29uc3QgRGVjb21w
b3NlZFR5cGUmIGRlY29tcCk7CisgICAgCiAgICAgdm9pZCBibGVuZChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgZnJvbSwgZG91YmxlIHByb2dyZXNzKTsKIAotI2lmICFQTEFURk9STShXWCkg
fHwgVVNFKFdYR0MpCi0gICAgb3BlcmF0b3IgUGxhdGZvcm1UcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
IGNvbnN0OwotI2VuZGlmCisgICAgYm9vbCBpc0FmZmluZSgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gKG0xMygpID09IDAgJiYgbTE0KCkgPT0gMCAmJiBtMjMoKSA9PSAwICYmIG0yNCgp
ID09IDAgJiYgCisgICAgICAgICAgICAgICAgbTMxKCkgPT0gMCAmJiBtMzIoKSA9PSAwICYmIG0z
MygpID09IDEgJiYgbTM0KCkgPT0gMCAmJiBtNDMoKSA9PSAwICYmIG00NCgpID09IDEpOworICAg
IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbTIp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1fbWF0cml4WzBdWzBdID09IG0yLm1fbWF0
cml4WzBdWzBdICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMF1bMV0gPT0gbTIubV9tYXRy
aXhbMF1bMV0gJiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFswXVsyXSA9PSBtMi5tX21hdHJp
eFswXVsyXSAmJgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzBdWzNdID09IG0yLm1fbWF0cml4
WzBdWzNdICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMV1bMF0gPT0gbTIubV9tYXRyaXhb
MV1bMF0gJiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFsxXVsxXSA9PSBtMi5tX21hdHJpeFsx
XVsxXSAmJgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzFdWzJdID09IG0yLm1fbWF0cml4WzFd
WzJdICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMV1bM10gPT0gbTIubV9tYXRyaXhbMV1b
M10gJiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFsyXVswXSA9PSBtMi5tX21hdHJpeFsyXVsw
XSAmJgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzJdWzFdID09IG0yLm1fbWF0cml4WzJdWzFd
ICYmCisgICAgICAgICAgICAgICAgbV9tYXRyaXhbMl1bMl0gPT0gbTIubV9tYXRyaXhbMl1bMl0g
JiYKKyAgICAgICAgICAgICAgICBtX21hdHJpeFsyXVszXSA9PSBtMi5tX21hdHJpeFsyXVszXSAm
JgorICAgICAgICAgICAgICAgIG1fbWF0cml4WzNdWzBdID09IG0yLm1fbWF0cml4WzNdWzBdICYm
CisgICAgICAgICAgICAgICAgbV9tYXRyaXhbM11bMV0gPT0gbTIubV9tYXRyaXhbM11bMV0gJiYK
KyAgICAgICAgICAgICAgICBtX21hdHJpeFszXVsyXSA9PSBtMi5tX21hdHJpeFszXVsyXSAmJgor
ICAgICAgICAgICAgICAgIG1fbWF0cml4WzNdWzNdID09IG0yLm1fbWF0cml4WzNdWzNdKTsKKyAg
ICB9CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBj
b25zdDsKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQotICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBvcGVyYXRvcio9KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggb3BlcmF0b3IqKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7CisgICAgCisgICAgLy8gKnRoaXMgPSAqdGhpcyAqIHQgKGkuZS4sIGEgbXVsdFJpZ2h0KQor
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4JiBvcGVyYXRvcio9KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAqIHQ7CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisgICAgCisgICAgLy8gcmVzdWx0ID0gKnRoaXMgKiB0IChpLmUu
LCBhIG11bHRSaWdodCkKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBvcGVyYXRvciooY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCisgICAgeworICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCByZXN1bHQgPSB0OworICAgICAgICByZXN1bHQubXVsdExlZnQoKnRoaXMpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KIAotcHJpdmF0ZToKLSNpZiAhUExBVEZPUk0oV1gpIHx8
IFVTRShXWEdDKQotICAgIFBsYXRmb3JtVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07
CisjaWYgUExBVEZPUk0oQ0cpCisgICAgb3BlcmF0b3IgQ0dBZmZpbmVUcmFuc2Zvcm0oKSBjb25z
dDsKICNlbmRpZgotfTsKIAotVHJhbnNmb3JtYXRpb25NYXRyaXggbWFrZU1hcEJldHdlZW5SZWN0
cyhjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KTsKK3ByaXZh
dGU6CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWFrZU1hcEJldHdlZW5SZWN0cyhjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KTsKKworICAgIC8vIG11bHRp
cGx5IHBhc3NlZCAyRCBwb2ludCBieSBtYXRyaXggKGFzc3VtZSB6PTApCisgICAgdm9pZCBtdWx0
VmVjTWF0cml4KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlJiBkc3RYLCBkb3VibGUmIGRzdFkp
IGNvbnN0OworICAgIAorICAgIC8vIG11bHRpcGx5IHBhc3NlZCAzRCBwb2ludCBieSBtYXRyaXgK
KyAgICB2b2lkIG11bHRWZWNNYXRyaXgoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91
YmxlJiBkc3RYLCBkb3VibGUmIGRzdFksIGRvdWJsZSYgZHN0WikgY29uc3Q7CisgICAgCisgICAg
dm9pZCBzZXRNYXRyaXgoY29uc3QgTWF0cml4NCBtKQorICAgIHsKKyAgICAgICAgaWYgKG0gJiYg
bSAhPSBtX21hdHJpeCkKKyAgICAgICAgICAgIG1lbWNweShtX21hdHJpeCwgbSwgMTYgKiBzaXpl
b2YoZG91YmxlKSk7CisgICAgfQorICAgIAorICAgIE1hdHJpeDQgbV9tYXRyaXg7Cit9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZv
cmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZv
cmVpZ25PYmplY3QuY3BwCShyZXZpc2lvbiA0MDY5OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZvcmVpZ25PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAg
Ym9vbCBSZW5kZXJGb3JlaWduT2JqZWN0Ojpub2RlQXRQb2ludChjbwogICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IHRvdGFsVHJhbnNmb3JtID0gYWJzb2x1dGVUcmFuc2Zvcm0oKTsKICAgICB0b3Rh
bFRyYW5zZm9ybSAqPSB0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKTsKICAgICBkb3VibGUgbG9j
YWxYLCBsb2NhbFk7Ci0gICAgdG90YWxUcmFuc2Zvcm0uaW52ZXJzZSgpLm1hcCh4LCB5LCAmbG9j
YWxYLCAmbG9jYWxZKTsKKyAgICB0b3RhbFRyYW5zZm9ybS5pbnZlcnNlKCkubWFwKHgsIHksIGxv
Y2FsWCwgbG9jYWxZKTsKICAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KHJlcXVl
c3QsIHJlc3VsdCwgc3RhdGljX2Nhc3Q8aW50Pihsb2NhbFgpLCBzdGF0aWNfY2FzdDxpbnQ+KGxv
Y2FsWSksIHR4LCB0eSwgaGl0VGVzdEFjdGlvbik7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7CiAgICAgICAg
IFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgICAgIEFTU0VSVChib3gpOwotICAg
ICAgICBtX3RyYW5zZm9ybS0+cmVzZXQoKTsKKyAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJZGVu
dGl0eSgpOwogICAgICAgICBib3gtPnN0eWxlKCktPmFwcGx5VHJhbnNmb3JtKCptX3RyYW5zZm9y
bSwgYm94LT5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpKTsKICAgICB9CiB9CkluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQYXRoLmNwcAkocmV2aXNpb24gNDA2OTgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQYXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCBGbG9hdFBvaW50
IFJlbmRlclBhdGg6Om1hcEFic29sdXRlUG9pbnRUCiAgICAgLy8gYWJzb2x1dGUgdHJhbnNmb3Jt
PyAKICAgICBkb3VibGUgbG9jYWxYOwogICAgIGRvdWJsZSBsb2NhbFk7Ci0gICAgYWJzb2x1dGVU
cmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwKHBvaW50LngoKSwgcG9pbnQueSgpLCAmbG9jYWxYLCAm
bG9jYWxZKTsKKyAgICBhYnNvbHV0ZVRyYW5zZm9ybSgpLmludmVyc2UoKS5tYXAocG9pbnQueCgp
LCBwb2ludC55KCksIGxvY2FsWCwgbG9jYWxZKTsKICAgICByZXR1cm4gRmxvYXRQb2ludDo6bmFy
cm93UHJlY2lzaW9uKGxvY2FsWCwgbG9jYWxZKTsKIH0KIApJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR0ltYWdlLmNwcAkocmV2aXNpb24gNDA2OTgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBib29s
IFJlbmRlclNWR0ltYWdlOjpub2RlQXRQb2ludChjb25zdCBICiAgICAgYm9vbCBpc1Zpc2libGUg
PSAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpOwogICAgIGlmIChpc1Zpc2libGUg
fHwgIWhpdFJ1bGVzLnJlcXVpcmVWaXNpYmxlKSB7CiAgICAgICAgIGRvdWJsZSBsb2NhbFgsIGxv
Y2FsWTsKLSAgICAgICAgYWJzb2x1dGVUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwKF94LCBfeSwg
JmxvY2FsWCwgJmxvY2FsWSk7CisgICAgICAgIGFic29sdXRlVHJhbnNmb3JtKCkuaW52ZXJzZSgp
Lm1hcChfeCwgX3ksIGxvY2FsWCwgbG9jYWxZKTsKIAogICAgICAgICBpZiAoaGl0UnVsZXMuY2Fu
SGl0RmlsbCkgewogICAgICAgICAgICAgaWYgKG1fbG9jYWxCb3VuZHMuY29udGFpbnMobmFycm93
UHJlY2lzaW9uVG9GbG9hdChsb2NhbFgpLCBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGxvY2FsWSkp
KSB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAkocmV2aXNpb24gNDA2OTgp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEyLDcgKzMxMiw3IEBAIGJvb2wgUmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQoY29uc3Qg
SGkKICAgICAgICAgb3ZlcmZsb3dCb3gubW92ZSh0eCwgdHkpOwogICAgICAgICBjdG0udHJhbnNs
YXRlKHZpZXdwb3J0KCkueCgpLCB2aWV3cG9ydCgpLnkoKSk7CiAgICAgICAgIGRvdWJsZSBsb2Nh
bFgsIGxvY2FsWTsKLSAgICAgICAgY3RtLmludmVyc2UoKS5tYXAoX3ggLSBfdHgsIF95IC0gX3R5
LCAmbG9jYWxYLCAmbG9jYWxZKTsKKyAgICAgICAgY3RtLmludmVyc2UoKS5tYXAoX3ggLSBfdHgs
IF95IC0gX3R5LCBsb2NhbFgsIGxvY2FsWSk7CiAgICAgICAgIGlmICghb3ZlcmZsb3dCb3guY29u
dGFpbnMoKGludClsb2NhbFgsIChpbnQpbG9jYWxZKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24g
NDA2OTgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIGJvb2wgUmVuZGVyU1ZHVGV4dDo6bm9kZUF0UG9pbnQo
Y29uc3QgSGkKICAgICAgICAgICAgIHx8IChoaXRSdWxlcy5jYW5IaXRGaWxsICYmIChzdHlsZSgp
LT5zdmdTdHlsZSgpLT5oYXNGaWxsKCkgfHwgIWhpdFJ1bGVzLnJlcXVpcmVGaWxsKSkpIHsKICAg
ICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRvdGFsVHJhbnNmb3JtID0gYWJzb2x1dGVU
cmFuc2Zvcm0oKTsKICAgICAgICAgICAgIGRvdWJsZSBsb2NhbFgsIGxvY2FsWTsKLSAgICAgICAg
ICAgIHRvdGFsVHJhbnNmb3JtLmludmVyc2UoKS5tYXAoX3gsIF95LCAmbG9jYWxYLCAmbG9jYWxZ
KTsKKyAgICAgICAgICAgIHRvdGFsVHJhbnNmb3JtLmludmVyc2UoKS5tYXAoX3gsIF95LCBsb2Nh
bFgsIGxvY2FsWSk7CiAgICAgICAgICAgICBGbG9hdFBvaW50IGhpdFBvaW50KF94LCBfeSk7CiAg
ICAgICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3Vs
dCwgKGludClsb2NhbFgsIChpbnQpbG9jYWxZLCBfdHgsIF90eSwgaGl0VGVzdEFjdGlvbik7CiAg
ICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5
LDcgQEAgYm9vbCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcjo6bm9kZUF0UAogICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjdG0gPSBSZW5kZXJPYmplY3Q6OmFic29sdXRlVHJhbnNmb3Jt
KCk7CiAgICAgICAgIGN0bS50cmFuc2xhdGUodmlld3BvcnQoKS54KCksIHZpZXdwb3J0KCkueSgp
KTsKICAgICAgICAgZG91YmxlIGxvY2FsWCwgbG9jYWxZOwotICAgICAgICBjdG0uaW52ZXJzZSgp
Lm1hcChfeCAtIF90eCwgX3kgLSBfdHksICZsb2NhbFgsICZsb2NhbFkpOworICAgICAgICBjdG0u
aW52ZXJzZSgpLm1hcChfeCAtIF90eCwgX3kgLSBfdHksIGxvY2FsWCwgbG9jYWxZKTsKICAgICAg
ICAgaWYgKCFvdmVyZmxvd0JveC5jb250YWlucygoaW50KWxvY2FsWCwgKGludClsb2NhbFkpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysgV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNyArMTUwLDcg
QEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cmVzZXRUb0JhcwogICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4KiB0cmFuc2Zvcm0gPSB0YXJnZXQtPnN1cHBsZW1lbnRhbFRyYW5zZm9ybSgp
OwogICAgIGlmICghdHJhbnNmb3JtKQogICAgICAgICByZXR1cm47Ci0gICAgdHJhbnNmb3JtLT5y
ZXNldCgpOworICAgIHRyYW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7CiB9CiAKIGJvb2wgU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQ6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCkBAIC0xNzksNyArMTc5LDcgQEAg
dm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRlQQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgaWYgKCFpc0FkZGl0aXZlKCkpCi0gICAgICAgIHRyYW5zZm9ybS0+cmVzZXQo
KTsKKyAgICAgICAgdHJhbnNmb3JtLT5tYWtlSWRlbnRpdHkoKTsKICAgICAKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGFjY3VtdWxhdGUuCiAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gNDA2OTgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI1LDggKzEyNSw4IEBAIEZsb2F0UmVjdCBTVkdTVkdFbGVtZW50Ojp2aWV3
cG9ydCgpIGNvbnMKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB2aWV3Qm94ID0gdmlld0JveFRv
Vmlld1RyYW5zZm9ybSh3LCBoKTsKICAgICBkb3VibGUgd0RvdWJsZSA9IHc7CiAgICAgZG91Ymxl
IGhEb3VibGUgPSBoOwotICAgIHZpZXdCb3gubWFwKF94LCBfeSwgJl94LCAmX3kpOwotICAgIHZp
ZXdCb3gubWFwKHcsIGgsICZ3RG91YmxlLCAmaERvdWJsZSk7CisgICAgdmlld0JveC5tYXAoX3gs
IF95LCBfeCwgX3kpOworICAgIHZpZXdCb3gubWFwKHcsIGgsIHdEb3VibGUsIGhEb3VibGUpOwog
ICAgIHJldHVybiBGbG9hdFJlY3Q6Om5hcnJvd1ByZWNpc2lvbihfeCwgX3ksIHdEb3VibGUsIGhE
b3VibGUpOwogfQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDQwNjk4KQorKysg
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYs
NyBAQCB2b2lkIFNWR1RyYW5zZm9ybTo6c2V0VHJhbnNsYXRlKGZsb2F0IHR4CiAgICAgbV90eXBl
ID0gU1ZHX1RSQU5TRk9STV9UUkFOU0xBVEU7CiAgICAgbV9hbmdsZSA9IDA7CiAKLSAgICBtX21h
dHJpeC5yZXNldCgpOworICAgIG1fbWF0cml4Lm1ha2VJZGVudGl0eSgpOwogICAgIG1fbWF0cml4
LnRyYW5zbGF0ZSh0eCwgdHkpOwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBTVkdUcmFu
c2Zvcm06OnNldFNjYWxlKGZsb2F0IHN4LCBmbAogICAgIG1fYW5nbGUgPSAwOwogICAgIG1fY2Vu
dGVyID0gRmxvYXRQb2ludCgpOwogCi0gICAgbV9tYXRyaXgucmVzZXQoKTsKKyAgICBtX21hdHJp
eC5tYWtlSWRlbnRpdHkoKTsKICAgICBtX21hdHJpeC5zY2FsZShzeCwgc3kpOwogfQogCkBAIC0x
MjcsNyArMTI3LDcgQEAgdm9pZCBTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZShmbG9hdCBhbmdsZQog
ICAgIG1fY2VudGVyID0gRmxvYXRQb2ludChjeCwgY3kpOwogCiAgICAgLy8gVE9ETzogdG9TdHJp
bmcoKSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggY2FuIHNob3cgY3gsIGN5IChuZWVkIHRvIGJlIHN0
b3JlZD8pCi0gICAgbV9tYXRyaXgucmVzZXQoKTsKKyAgICBtX21hdHJpeC5tYWtlSWRlbnRpdHko
KTsKICAgICBtX21hdHJpeC50cmFuc2xhdGUoY3gsIGN5KTsKICAgICBtX21hdHJpeC5yb3RhdGUo
YW5nbGUpOwogICAgIG1fbWF0cml4LnRyYW5zbGF0ZSgtY3gsIC1jeSk7CkBAIC0xMzgsNyArMTM4
LDcgQEAgdm9pZCBTVkdUcmFuc2Zvcm06OnNldFNrZXdYKGZsb2F0IGFuZ2xlKQogICAgIG1fdHlw
ZSA9IFNWR19UUkFOU0ZPUk1fU0tFV1g7CiAgICAgbV9hbmdsZSA9IGFuZ2xlOwogCi0gICAgbV9t
YXRyaXgucmVzZXQoKTsKKyAgICBtX21hdHJpeC5tYWtlSWRlbnRpdHkoKTsKICAgICBtX21hdHJp
eC5za2V3WChhbmdsZSk7CiB9CiAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFNWR1RyYW5zZm9y
bTo6c2V0U2tld1koZmxvYXQgYW5nbGUpCiAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TS0VX
WTsKICAgICBtX2FuZ2xlID0gYW5nbGU7CiAKLSAgICBtX21hdHJpeC5yZXNldCgpOworICAgIG1f
bWF0cml4Lm1ha2VJZGVudGl0eSgpOwogICAgIG1fbWF0cml4LnNrZXdZKGFuZ2xlKTsKIH0KIApJ
bmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUmVzb3VyY2VNYXJrZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1Jlc291cmNlTWFya2VyLmNwcAkocmV2aXNp
b24gNDA2OTgpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdSZXNvdXJjZU1hcmtlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBTVkdSZXNvdXJjZU1hcmtlcjo6
ZHJhdyhHcmFwaGljc0NvbgogICAgICAgICB2aWV3cG9ydFRyYW5zZm9ybS5zY2FsZShzdHJva2VX
aWR0aCwgc3Ryb2tlV2lkdGgpOwogICAgIHZpZXdwb3J0VHJhbnNmb3JtICo9IG1fbWFya2VyLT52
aWV3cG9ydFRyYW5zZm9ybSgpOwogICAgIGRvdWJsZSByZWZYLCByZWZZOwotICAgIHZpZXdwb3J0
VHJhbnNmb3JtLm1hcChtX3JlZlgsIG1fcmVmWSwgJnJlZlgsICZyZWZZKTsKKyAgICB2aWV3cG9y
dFRyYW5zZm9ybS5tYXAobV9yZWZYLCBtX3JlZlksIHJlZlgsIHJlZlkpOwogICAgIHRyYW5zZm9y
bS50cmFuc2xhdGUoLXJlZlgsIC1yZWZZKTsKIAogICAgIGlmIChtX3VzZVN0cm9rZVdpZHRoKQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gNDA3MzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw2NiBAQAorMjAwOS0wMi0wNiAgQ2hyaXMgTWFycmluICA8Y21h
cnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2OAorCisg
ICAgICAgIEZpeGVkIHJlc3VsdHMgb2Ygc2V2ZXJhbCBzdmcgdGVzdHMgYmVjYXVzZSBvZiBkaWZm
ZXJlbmNlcworICAgICAgICBpbiByb3VuZGluZyBjYXVzZWQgYnkgVHJhbnNmb3JtYXRpb25NYXRy
aXggY2hhbmdpbmcgZnJvbQorICAgICAgICBzaW5nbGUgdG8gZG91YmxlIHByZWNpc2lvbiBtYXRo
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0t
MzAtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEu
MS9hbmltYXRlLWVsZW0tMzYtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODAtdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVs
ZW0tODItdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZH
LTEuMS9jb29yZHMtdHJhbnMtMDEtYi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDItdC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMt
dmlld2F0dHItMDEtYi1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9mb250cy1lbGVtLTAxLXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMi10LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDMtYi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1l
bGVtLTA0LWItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvZm9udHMtZWxlbS0wNy1iLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1m
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3Bh
dGhzLWRhdGEtMDUtdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA2LXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0wNy10LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDktdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1k
YXRhLTE1LXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvcHNlcnZlcnMtZ3JhZC0wOS1iLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMTItYi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTE3LWIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3Ry
dWN0LWZyYWctMDItdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9zdHJ1Y3QtZnJhZy0wMy10LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3N0cnVjdC1ncm91cC0wMy10LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dEdseXBoT3JpZW50YXRp
b25Ib3Jpem9udGFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2Jh
dGlrL3RleHQvdGV4dFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY2FydG8ubmV0L3NsaWRlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jYXJ0by5uZXQvdGFiZ3JvdXAtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2dseXBoLXNlbGVj
dGlvbi1sYW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L3N2Zy9jdXN0b20vaW52YWxpZC1jc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL2pzLWxhdGUtbWFya2VyLWFuZC1vYmplY3QtY3JlYXRpb24tZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2pzLWxhdGUtbWFya2Vy
LWNyZWF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3Rv
bS9wcmVzZXJ2ZS1hc3BlY3QtcmF0aW8tc3ludGF4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zaGFwZXMtc3VwcG9ydGluZy1tYXJrZXJzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtY3NzLW5vLWVmZmVj
dC1vbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vdmlld2JveC1zeW50YXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvaGl4aWUvcGVyZi8wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvaGl4aWUvcGVyZi8wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvaGl4aWUvcGVyZi8wMDctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9zdmcvdGV4dC90ZXh0LWFsaWduLTAxLWItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LWFsaWduLTA1LWItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LWZvbnRzLTAxLXQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRleHQtMDQtdC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNS10LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA2LXQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0LXRyZWYt
MDEtYi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0Vs
ZW1lbnQuc3ZnOgorCiAyMDA5LTAyLTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMwLXQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvYW5pbWF0ZS1lbGVtLTMwLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMw
LXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDQ4MHgzNjAKICAgICAgIFJlbmRlclBhdGgge3BvbHlsaW5lfSBhdCAoMjExLjY2
LDIxNi40Nikgc2l6ZSA0OS44N3g1OS45OSBbdHJhbnNmb3JtPXttPSgoMC45NywwLjI2KSgtMC4y
NiwwLjk3KSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0
QjRCNF0gW3N0cm9rZSB3aWR0aD05LjAwXX1dIFtkYXRhPSJNMjAwLjAwLDEyMC4wMCBMMjAwLjAw
LDE0MC4wMCBMMjIwLjAwLDE0MC4wMCBMMjIwLjAwLDE2MC4wMCJdCiAgICAgICBSZW5kZXJQYXRo
IHtsaW5lfSBhdCAoNDQuMjYsMTIuMTMpIHNpemUgMjkuNDl4NTMuNzQgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jQjRCNEI0XSBbc3Ryb2tlIHdpZHRoPTMuMDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTQwLjAwLDUwLjAwIEwyMC4wMCwxMC4w
MCJdCiAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTIzLjEzLDExLjI2KSBzaXplIDEwNS43
NHg1NS40OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdIFtzdHJva2Ugd2lk
dGg9My4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
MTYwLjAwLDUwLjAwIEw4MC4wMCwxMC4wMCJdCi0gICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAo
NTksMzguMzUpIHNpemUgMTE3LjAweDEuMzAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
QjRCNEI0XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0z
MC4wMCwzMC4wMCBMMTIwLjAwLDMwLjAwIl0KKyAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1
OSwzOC4zNSkgc2l6ZSAxMTd4MS4zMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0
QjRdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTMwLjAw
LDMwLjAwIEwxMjAuMDAsMzAuMDAiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE2Mywz
NS4xMCkgc2l6ZSAxM3g3LjgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdfV0g
W2RhdGE9Ik0xMjAuMDAsMzAuMDAgTDExMC4wMCwzMy4wMCBMMTEwLjAwLDI3LjAwIFoiXQogICAg
ICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDExMSw5MC4zNSkgc2l6ZSA5Ny41MHgxLjMwIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNNzAuMDAsNzAuMDAgTDE0NS4wMCw3MC4wMCJdCiAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzEuNzAsNzYuNzApIHNpemUgODAuNjB4MjguNjAgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTEwLjAwLDYwLjAw
IEw3MC4wMCw2MC4wMCBMNzAuMDAsODAuMDAgTDEwLjAwLDgwLjAwIFoiXQpAQCAtMjEsMTIgKzIx
LDEyIEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDEyNS4zMCwyMjQuOTApIHNpemUgMTEuNzB4MTUuNjAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTkwLjAwLDE4NS4wMCBMODcuMDAsMTczLjAwIEw4
MS4wMCwxNzguMDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDA4LjcwLDExLjcw
KSBzaXplIDI4LjYweDI4LjYwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF0g
W3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRd
fV0gW2RhdGE9Ik0zMDAuMDAsMTAuMDAgTDMyMC4wMCwxMC4wMCBMMzIwLjAwLDMwLjAwIEwzMDAu
MDAsMzAuMDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDA4LjcwLDIxOS43MCkg
c2l6ZSAyOC42MHg1NC42MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0QjRdIFtz
dHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1d
IFtkYXRhPSJNMzAwLjAwLDE3MC4wMCBMMzIwLjAwLDE3MC4wMCBMMzIwLjAwLDIxMC4wMCBMMzAw
LjAwLDIxMC4wMCBaIl0KLSAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg0MjIuMzUsMzkpIHNp
emUgMS4zMHgxODIgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMTAuMDAsMzAuMDAgTDMx
MC4wMCwxNzAuMDAiXQotICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDQxOS4xMCwyMDgpIHNp
emUgNy44MHgxMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtkYXRhPSJN
MzEwLjAwLDE3MC4wMCBMMzA3LjAwLDE2MC4wMCBMMzEzLjAwLDE2MC4wMCBaIl0KKyAgICAgIFJl
bmRlclBhdGgge2xpbmV9IGF0ICg0MjIuMzUsMzkpIHNpemUgMS4zMHgxODIuMDAgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik0zMTAuMDAsMzAuMDAgTDMxMC4wMCwxNzAuMDAiXQorICAgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDQxOS4xMCwyMDgpIHNpemUgNy44MHgxMy4wMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQjRCNEI0XX1dIFtkYXRhPSJNMzEwLjAwLDE3MC4wMCBMMzA3
LjAwLDE2MC4wMCBMMzEzLjAwLDE2MC4wMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgzMTksOS43NSkgc2l6ZSA1Mng5Ljc1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCNEI0
QjRdfV0gW2RhdGE9Ik0yMzAuMDAsNy41MCBMMjcwLjAwLDcuNTAgTDI3MC4wMCwxNS4wMCBMMjMw
LjAwLDE1LjAwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDMxOSwyMjEuMDApIHNp
emUgNTJ4MzkgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTIz
MC4wMCwxNzAuMDAgTDI3MC4wMCwxNzAuMDAgTDI3MC4wMCwyMDAuMDAgTDIzMC4wMCwyMDAuMDAg
WiJdCi0gICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMzQ0LjM1LDEzKSBzaXplIDEuMzB4MjA4
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMjUwLjAwLDEwLjAwIEwyNTAuMDAsMTcwLjAw
Il0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzNDEuMTAsMjA4KSBzaXplIDcuODB4MTMg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTI1MC4wMCwxNzAu
MDAgTDI0Ny4wMCwxNjAuMDAgTDI1My4wMCwxNjAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoMzQ0LjM1LDEzKSBzaXplIDEuMzB4MjA4LjAwIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0I0QjRCNF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSJNMjUwLjAwLDEwLjAwIEwyNTAuMDAsMTcwLjAwIl0KKyAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgzNDEuMTAsMjA4KSBzaXplIDcuODB4MTMuMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0I0QjRCNF19XSBbZGF0YT0iTTI1MC4wMCwxNzAuMDAgTDI0Ny4wMCwxNjAuMDAg
TDI1My4wMCwxNjAuMDAgWiJdCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9
IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg4LjY2LDku
MzMpIHNpemUgMjIuNjh4NDEuMzQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMTA1RDhD
XSBbc3Ryb2tlIHdpZHRoPTMuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTMwLjAwLDUwLjAwIEwxMC4wMCwxMC4wMCJdCiAgICAgICBSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCkBAIC01NCw4ICs1NCw4IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICg0MDguNzAsMTEuNzApIHNpemUgMjguNjB4MjguNjAKICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNDA4LjcwLDExLjcwKSBzaXplIDI4LjYweDI4LjYwIFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAwLC0xMC4wMCl9XQogICAgICAg
ICAgIFJlbmRlclBhdGgge3BvbHlnb259IGF0ICg0MDguNzAsMTEuNzApIHNpemUgMjguNjB4Mjgu
NjAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIu
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTTI0MC4w
MCwyMC4wMCBMMjQwLjAwLDQwLjAwIEwyNjAuMDAsNDAuMDAgTDI2MC4wMCwyMC4wMCBaIl0KLSAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMzE5LDEuNjIpIHNpemUgNTJ4MjYgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwwLjI1KSkgdD0oMC4wMCwwLjAwKX1dCi0gICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMxOSwxLjYyKSBzaXplIDUyeDI2CisgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDMxOSwxLjYyKSBzaXplIDUyeDI2LjAwIFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMC4yNSkpIHQ9KDAuMDAsMC4wMCl9XQorICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMTksMS42Mikgc2l6ZSA1MngyNi4wMAog
ICAgICAgICAgIFJlbmRlckltYWdlIHtpbWFnZX0gYXQgKDAsMCkgc2l6ZSA0MHg4MAogICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwzNDApIHNpemUgMjY0eDQ2IGNvbnRhaW5zIDEgY2h1
bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUg
MjY0eDQ2CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2Fu
aW1hdGUtZWxlbS0zNi10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS0zNi10LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xL2FuaW1hdGUtZWxlbS0zNi10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTYsOSArMTYsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDI5LjUwLDU5LjUwKSBzaXplIDYxeDk0LjUwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAwLDkwLjAwKX1dCiAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5LjUwLDU5LjUwKSBzaXplIDYxeDYxCiAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDU5LjUwLDU5LjUwKSBzaXplIDMxeDMxIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAu
MDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDU5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zv
cm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOS41MCw4OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNm
b3JtPXttPSgoLTEuMDAsLTAuMDApKDAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwz
MC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjkuNTAsNTkuNTApIHNpemUgMzF4MzEgW3RyYW5z
Zm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg1OS41MCw4OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNm
b3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAu
MDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zv
cm09e209KCgtMS4wMCwwLjAwKSgtMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOS41MCw1OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNm
b3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwz
MC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDQuNTAsNzQuNTApIHNpemUgMzF4MzEgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAw
LDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICgtMTMsNjApIHNpemUgMjZ4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRl
clNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjZ4MTgKQEAgLTI5LDMzICsy
OSwzMyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDE0Ny44MCw2Ny44MCkgc2l6ZSAyNC40MHgyNC40MAogICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNDcuODAsNjcuODApIHNpemUgMjQu
NDB4MjQuNDAKICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTU5LjgwLDY3
LjgwKSBzaXplIDEyLjQweDEyLjQwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQw
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCww
LjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAw
LC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDE1OS44MCw3OS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAs
MS4wMCkoLTEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0g
W2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAu
MDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtwYXRofSBhdCAoMTQ3LjgwLDc5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zv
cm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNDcuODAsNjcuODApIHNpemUgMTIuNDB4
MTIuNDAgW3RyYW5zZm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwz
MC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAw
IFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNTkuODAsNzkuODAp
IHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4wMCkp
IHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBD
MzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAu
MDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgx
NDcuODAsNzkuODApIHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDAp
KC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0z
MC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cGF0aH0gYXQgKDE0Ny44MCw2Ny44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXtt
PSgoLTAuMDAsLTEuMDApKDEuMDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNF
NkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwt
MzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTUzLjgwLDczLjgwKSBzaXplIDEyLjQweDEyLjQw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAw
IEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoMTQ3LjgwLDk3LjgwKSBzaXplIDI0LjQweDI0LjQwIFt0cmFuc2Zvcm09
e209KCgwLjQwLDAuMDApKDAuMDAsMC40MCkpIHQ9KC0yMC4wMCwwLjAwKX1dCiAgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNDcuODAsOTcuODApIHNpemUgMjQuNDB4MjQu
NDAKICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTQ3LjgwLDk3Ljgw
KSBzaXplIDI0LjQweDI0LjQwCiAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDE1OS44MCw5Ny44MCkgc2l6ZSAxMi40MHgxMi40MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0
YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwt
MzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge3BhdGh9IGF0ICgxNTkuODAsMTA5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09
e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAw
LC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNDcuODAsMTA5LjgwKSBzaXplIDEyLjQweDEy
LjQwIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwz
MC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAw
IFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxNDcuODAsOTcuODAp
IHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkp
IHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBD
MzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAu
MDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgx
NTkuODAsMTA5LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDAp
KC0xLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMw
LjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMTQ3LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXtt
PSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNF
NkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwt
MzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTQ3LjgwLDk3LjgwKSBzaXplIDEyLjQweDEyLjQw
IFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9
XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4w
MCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoi
XQogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNTMuODAsMTAzLjgwKSBz
aXplIDEyLjQweDEyLjQwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4w
MCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMTg3LjgwLDY3LjgwKSBzaXplIDI0LjQweDI0
LjQwIFt0cmFuc2Zvcm09e209KCgwLjQwLDAuMDApKDAuMDAsMC40MCkpIHQ9KDIwLjAwLC0zMC4w
MCl9XQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTg3LjgwLDY3Ljgw
KSBzaXplIDI0LjQweDI0LjQwCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDE4Ny44MCw2Ny44MCkgc2l6ZSAyNC40MHgyNC40MAogICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgxOTkuODAsNjcuODApIHNpemUgMTIuNDB4MTIuNDAgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4w
MCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTk5LjgwLDc5LjgwKSBzaXplIDEyLjQweDEy
LjQwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwz
MC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAw
IFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxODcuODAsNzkuODAp
IHNpemUgMTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLC0wLjAwKSgwLjAwLC0xLjAw
KSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0z
MC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDE4Ny44MCw2Ny44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4w
MCkoMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0z
MC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cGF0aH0gYXQgKDE5OS44MCw3OS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXtt
PSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZF
NkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMw
LjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Ny44MCw3OS44MCkgc2l6ZSAxMi40MHgxMi40MCBb
dHJhbnNmb3JtPXttPSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0g
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAs
MC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0K
KyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTg3LjgwLDY3LjgwKSBzaXpl
IDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9
KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAu
MDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAs
MC4wMCwwLjAwIFoiXQogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxOTMu
ODAsNzMuODApIHNpemUgMTIuNDB4MTIuNDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0t
MTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJd
CiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgxODcuODAsOTcuODApIHNp
emUgMjQuNDB4MjQuNDAgW3RyYW5zZm9ybT17bT0oKDAuNDAsMC4wMCkoMC4wMCwwLjQwKSkgdD0o
MjAuMDAsMC4wMCl9XQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTg3
LjgwLDk3LjgwKSBzaXplIDI0LjQweDI0LjQwCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDE4Ny44MCw5Ny44MCkgc2l6ZSAyNC40MHgyNC40MAogICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxOTkuODAsOTcuODApIHNpemUgMTIuNDB4MTIuNDAg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAs
MC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0K
LSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTk5LjgwLDEwOS44MCkgc2l6
ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0
PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMw
LjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAw
LDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTg3
LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTEuMDAsLTAuMDAp
KDAuMDAsLTEuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9
Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMw
LjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMTg3LjgwLDk3LjgwKSBzaXplIDEyLjQweDEyLjQwIFt0cmFuc2Zvcm09e209
KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2
RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAu
MDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAgICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTk5LjgwLDEwOS44MCkgc2l6ZSAxMi40MHgxMi40MCBb
dHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAu
MDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisg
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Ny44MCwxMDkuODApIHNpemUg
MTIuNDB4MTIuNDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0o
MC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4w
MCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCww
LjAwLDAuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Ny44
MCw5Ny44MCkgc2l6ZSAxMi40MHgxMi40MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEu
MDAsLTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAw
LDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoMTkzLjgwLDEwMy44MCkgc2l6ZSAxMi40MHgxMi40MCBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZF
Nl19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0x
NS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC0yMCw0MCkg
c2l6ZSA0MHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA0MHgxOApAQCAtNjksOSArNjksOSBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtzd2l0
Y2h9IGF0ICgzODkuNTAsNTkuNTApIHNpemUgNjF4NjEKICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgzODkuNTAsNTkuNTApIHNpemUgNjF4NjEKICAgICAgICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICg0MTkuNTAsNTkuNTApIHNpemUgMzF4MzEgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2
RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAu
MDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KLSAgICAgICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICg0MTkuNTAsODkuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17
bT0oKC0wLjAwLDEuMDApKC0xLjAwLC0wLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAs
LTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCi0gICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzg5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zv
cm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMw
LjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAwIFoiXQotICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDM4OS41MCw1OS41MCkgc2l6ZSAzMXgzMSBbdHJh
bnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAwLDAuMDAs
MzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJdCisgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNDE5LjUwLDg5LjUwKSBzaXplIDMxeDMxIFt0
cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4w
MCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KKyAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzODkuNTAsODkuNTApIHNpemUgMzF4MzEg
W3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1d
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMwLjAw
LDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAgWiJd
CisgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzg5LjUwLDU5LjUwKSBzaXplIDMx
eDMxIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4wMCwz
MC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCwwLjAw
IFoiXQogICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQwNC41MCw3NC41MCkgc2l6
ZSAzMXgzMSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAw
LC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZH
VGV4dCB7dGV4dH0gYXQgKC0zMCw2MCkgc2l6ZSA2MHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAg
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA2MHgx
OApAQCAtODAsOSArODAsOSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHthfSBhdCAoMjkuNTAsMTg5LjUwKSBzaXplIDYxeDYxCiAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjkuNTAsMTg5LjUwKSBzaXplIDYxeDYx
CiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNTkuNTAsMTg5LjUwKSBzaXplIDMx
eDMxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMzMC4wMCwwLjAwLDMw
LjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4wMCwwLjAwLDAuMDAg
WiJdCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNTkuNTAsMjE5LjUwKSBzaXpl
IDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDAuMDAs
MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAuMDAsMC4w
MCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAsMC4wMCww
LjAwIFoiXQotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5LjUwLDIxOS41MCkg
c2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTEuMDAsLTAuMDApKDAuMDAsLTEuMDApKSB0PSgw
LjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgQzMwLjAw
LDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAuMDAsLTMwLjAwLDAu
MDAsMC4wMCBaIl0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOS41MCwxODku
NTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKDAuMDAsLTEuMDApKDEuMDAsMC4wMCkpIHQ9
KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4wMCBDMzAu
MDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwtMzAuMDAs
MC4wMCwwLjAwIFoiXQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDU5LjUwLDIx
OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkg
dD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNMC4wMCwwLjAwIEMz
MC4wMCwwLjAwLDMwLjAwLDAuMDAsMzAuMDAsLTMwLjAwIEMwLjAwLC0zMC4wMCwwLjAwLC0zMC4w
MCwwLjAwLDAuMDAgWiJdCisgICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjkuNTAs
MjE5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMS4wMCwwLjAwKSgtMC4wMCwtMS4w
MCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U2RTZFNl19XSBbZGF0YT0iTTAuMDAsMC4w
MCBDMzAuMDAsMC4wMCwzMC4wMCwwLjAwLDMwLjAwLC0zMC4wMCBDMC4wMCwtMzAuMDAsMC4wMCwt
MzAuMDAsMC4wMCwwLjAwIFoiXQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5
LjUwLDE4OS41MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDApKDEuMDAs
LTAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZC
NDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0wLjAw
LDAuMDAgQzMwLjAwLDAuMDAsMzAuMDAsMC4wMCwzMC4wMCwtMzAuMDAgQzAuMDAsLTMwLjAwLDAu
MDAsLTMwLjAwLDAuMDAsMC4wMCBaIl0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICg0NC41MCwyMDQuNTApIHNpemUgMzF4MzEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZCNDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNkU2RTZdfV0gW2RhdGE9Ik0t
MTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJd
CiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtMTMsNjApIHNpemUgMjZ4MTggY29u
dGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBh
dCAoMCwtMTQpIHNpemUgMjZ4MTgKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
VzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgwLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgw
LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgwLXQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw5ICsyMyw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAog
ICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTUsODkuNTApIHNpemUgOTB4MSBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdfV0gW2RhdGE9Ik0tNDUuMDAsMC4w
MCBMNDUuMDAsMC4wMCJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1OS41
MCw0NSkgc2l6ZSAxeDkwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBb
ZGF0YT0iTTAuMDAsLTQ1LjAwIEwwLjAwLDQ1LjAwIl0KICAgICAgICAgUmVuZGVyUGF0aCB7bGlu
ZX0gYXQgKDYwLDkwKSBzaXplIDB4MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMw
QzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoNjAsOTApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4w
MCwtMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSND
MEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQYXRo
IHtsaW5lfSBhdCAoNjAsOTApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCko
MC4wMCwtMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNDMEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIiXQotICAgICAgICBSZW5kZXJQ
YXRoIHtsaW5lfSBhdCAoNjAsOTApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgwLjAwLC0xLjAw
KSgxLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRoPTE1LjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iIl0KKyAgICAgICAgUmVuZGVy
UGF0aCB7bGluZX0gYXQgKDYwLDkwKSBzaXplIDB4MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAw
KSgtMS4wMCwwLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCisgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg2MCw5MCkgc2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAu
MDApKC0wLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCisgICAgICAgIFJl
bmRlclBhdGgge2xpbmV9IGF0ICg2MCw5MCkgc2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKC0wLjAw
LC0xLjAwKSgxLjAwLC0wLjAwKSkgdD0oMC4wMCwwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCiAgICAgICAg
IFJlbmRlclBhdGgge2xpbmV9IGF0ICg1NSw4NSkgc2l6ZSA1MHgxMCBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNDODUwNTBdIFtzdHJva2Ugd2lkdGg9MTAuMDBdIFtsaW5lIGNhcD1ST1VO
RF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCww
LjAwIEw0MC4wMCwwLjAwIl0KICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC0zNiw2
MCkgc2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOApAQCAtNjcsOSArNjcsOSBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGlu
ZX0gYXQgKDE1LDIxOS41MCkgc2l6ZSA5MHgxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0MwQzBDMF19XSBbZGF0YT0iTS00NS4wMCwwLjAwIEw0NS4wMCwwLjAwIl0KICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDU5LjUwLDE3NSkgc2l6ZSAxeDkwIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBbZGF0YT0iTTAuMDAsLTQ1LjAwIEwwLjAwLDQ1
LjAwIl0KICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDIwLDE4MCkgc2l6ZSAweDAgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRoPTE1LjAwXSBb
bGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBb
ZGF0YT0iIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDEwMCwxODApIHNpemUgMHgw
IFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDgwLjAwLDAuMDAp
fV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXSBbc3Ryb2tlIHdpZHRoPTE1
LjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDEwMCwyNjApIHNp
emUgMHgwIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDgwLjAw
LDgwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0gW3N0cm9rZSB3
aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9IiJdCi0gICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyMCwy
NjApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDApKSB0PSgt
MC4wMCw4MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdIFtzdHJv
a2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIiXQorICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAo
MTAwLDE4MCkgc2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4wMCkp
IHQ9KDgwLjAwLC0wLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF0g
W3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCisgICAgICAgIFJlbmRlclBhdGgge2xpbmV9
IGF0ICgxMDAsMjYwKSBzaXplIDB4MCBbdHJhbnNmb3JtPXttPSgoLTEuMDAsMC4wMCkoLTAuMDAs
LTEuMDApKSB0PSg4MC4wMCw4MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSND
MEMwQzBdIFtzdHJva2Ugd2lkdGg9MTUuMDBdIFtsaW5lIGNhcD1ST1VORF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSIiXQorICAgICAgICBSZW5kZXJQYXRo
IHtsaW5lfSBhdCAoMjAsMjYwKSBzaXplIDB4MCBbdHJhbnNmb3JtPXttPSgoLTAuMDAsLTEuMDAp
KDEuMDAsLTAuMDApKSB0PSgwLjAwLDgwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0MwQzBDMF0gW3N0cm9rZSB3aWR0aD0xNS4wMF0gW2xpbmUgY2FwPVJPVU5EXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9IiJdCiAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg1NSwyMTUpIHNpemUgNTB4MTAgW3N0cm9rZT17W3R5cGU9U09MSURd
IFtjb2xvcj0jQzg1MDUwXSBbc3Ryb2tlIHdpZHRoPTEwLjAwXSBbbGluZSBjYXA9Uk9VTkRdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTQwLjAwLDQwLjAw
IEw4MC4wMCw0MC4wMCJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg0LDEwMCkg
c2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9h
bmltYXRlLWVsZW0tODEtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODEtdC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA0ODB4MzYwCiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICgtNTIuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDEw
NC4wMDogImFkZGl0aXZlPXJlcGxhY2UiCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgxMjYuMzcsNTYpIHNpemUgMTA3LjI2eDk4IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDE4MC4wMCw5MC4wMCl9XQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMTUzLjE5LDczKSBzaXplIDUzLjYzeDM0IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
NTgsMS4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4w
MCBMLTE1LjAwLDE1LjAwIFoiXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTI2LjM3
LDU2KSBzaXplIDEwNy4yNng2OCBbdHJhbnNmb3JtPXttPSgoMS4xNSwyLjAwKSgtMi4wMCwtMC4w
MCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBd
IFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4w
MCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDEyNi4zNyw1Nikgc2l6ZSAxMDcuMjZ4NjggW3RyYW5zZm9ybT17bT0oKDEuMTUsMi4w
MCkoLTIuMDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkI0MDBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAg
TDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVu
ZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC00Myw2MCkgc2l6ZSA4NngxOCBjb250YWlucyAxIGNodW5r
KHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6
ZSA4NngxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBh
dCAoLTQyLjUwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxMiB3aWR0aCA4NS4wMDog
ImFkZGl0aXZlPXN1bSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEvYW5pbWF0ZS1lbGVtLTgyLXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgyLXQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgyLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xOSw3ICsxOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzUuOTYsNjUuOTYpIHNpemUgNDguMDh4NDguMDggW3Ry
YW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4w
MCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzUuOTYsNjUuOTYpIHNpemUgNDguMDh4NDguMDggW3RyYW5z
Zm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZGF0
YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4w
MCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM5Ljc1LDY5Ljc1KSBzaXplIDQw
LjUweDQwLjUwIFt0cmFuc2Zvcm09e209KCgwLjM4LDAuOTIpKC0wLjkyLDAuMzgpKSB0PSgwLjAw
LDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJN
LTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoi
XQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDQuNTAsNzQuNTApIHNpemUgMzF4MzEg
W3RyYW5zZm9ybT17bT0oKC0wLjAwLDEuMDApKC0xLjAwLC0wLjAwKSkgdD0oMC4wMCwwLjAwKX1d
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwt
MTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KKyAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ0LjUwLDc0LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zv
cm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSgwLjAwLDAuMDApfV0gW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUu
MDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJT
VkdUZXh0IHt0ZXh0fSBhdCAoLTQyLDYwKSBzaXplIDg0eDE4IGNvbnRhaW5zIDEgY2h1bmsocykK
ICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDg0
eDE4CiAgICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgt
NDIuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDg0LjAwOiAic2Ft
ZSByb3RhdGlvbiIKQEAgLTMwLDcgKzMwLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYw
CiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNTUuOTYsNjUuOTYpIHNpemUgNDguMDh4
NDguMDggW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDAuMDAsMC4w
MCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9
NC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZFNkU2XX1dIFtkYXRhPSJNLTE1
LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAwLDE1LjAwIFoiXQog
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTU1Ljk2LDY1Ljk2KSBzaXplIDQ4LjA4eDQ4
LjA4IFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgwLjAwLDAuMDAp
fV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXSBbc3Ryb2tlIHdpZHRoPTQu
MDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwt
MTUuMDAsMTUuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNDguMTksNzIu
MDUpIHNpemUgNDAuNTB4NDAuNTAgW3RyYW5zZm9ybT17bT0oKDAuMzgsMC45MikoLTAuOTIsMC4z
OCkpIHQ9KC0xMS41NiwyLjMwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGQjQw
MF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAgTC0x
NS4wMCwxNS4wMCBaIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEzNC41MCw3NC41
MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0
PSgtMzAuMDAsLTAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1d
IFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAw
LDE1LjAwIFoiXQorICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTM0LjUwLDc0LjUwKSBz
aXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSgtMzAu
MDAsMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdfV0gW2RhdGE9
Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAg
WiJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtNTMsNjApIHNpemUgMTA2eDE4
IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDAsLTE0KSBzaXplIDEwNngxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFu
Y2hvcikgdGV4dCBydW4gMSBhdCAoLTUyLjUwLDYwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxOCB3aWR0aCAxMDUuMDA6ICJkaWZmZXJlbnQgcm90YXRpb24iCkBAIC03Miw4ICs3Miw4IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMjU1LDIwMykgc2l6ZSAxMjAuNTB4MTMyLjUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDMwMC4wMCwyMjAuMDApfV0KICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDI4MywyMDMpIHNpemUgMzR4MzQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jODA4MDgwXSBbc3Ryb2tlIHdpZHRoPTQuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0U2RTZFNl19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAs
MTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI4
MywyMDMpIHNpemUgMzR4MzQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXSBb
c3Ryb2tlIHdpZHRoPTQuMDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAg
TDE1LjAwLDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCi0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyODkuNTAsMjA5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMC4wMCwxLjAw
KSgtMS4wMCwtMC4wMCkpIHQ9KDUuMDAsNS4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkI0MDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAw
LDE1LjAwIEwtMTUuMDAsMTUuMDAgWiJdCi0gICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgz
NDQuNTAsMzA0LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgtMS4wMCwtMC4wMCkoMC4w
MCwtMS4wMCkpIHQ9KDYwLjAwLDEwMC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkI0MDBdfV0gW2RhdGE9Ik0tMTUuMDAsLTE1LjAwIEwxNS4wMCwtMTUuMDAgTDE1LjAwLDE1
LjAwIEwtMTUuMDAsMTUuMDAgWiJdCisgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyODku
NTAsMjA5LjUwKSBzaXplIDMxeDMxIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAu
MDApKSB0PSg1LjAwLDUuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAw
XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1
LjAwLDE1LjAwIFoiXQorICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzQ0LjUwLDMwNC41
MCkgc2l6ZSAzMXgzMSBbdHJhbnNmb3JtPXttPSgoLTEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0
PSg2MC4wMCwxMDAuMDApfV0gW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZCNDAwXX1d
IFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBMLTE1LjAw
LDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTQ1LDc1KSBzaXpl
IDkweDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDkweDE4CiAgICAgICAgICAgICBjaHVuayAxIChtaWRk
bGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNDQuNTAsNzUuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDE0IHdpZHRoIDg5LjAwOiAicGFjZWQgcm90YXRpb24iCkBAIC04MSw3ICs4MSw3IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoNDAzLDIwMykgc2l6ZSAzNHgzNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgw
ODBdIFtzdHJva2Ugd2lkdGg9NC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTZF
NkU2XX1dIFtkYXRhPSJNLTE1LjAwLC0xNS4wMCBMMTUuMDAsLTE1LjAwIEwxNS4wMCwxNS4wMCBM
LTE1LjAwLDE1LjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDAzLDIwMykg
c2l6ZSAzNHgzNCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkI0MDBdIFtzdHJva2Ug
d2lkdGg9NC4wMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAs
MTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM3
OS41NCwyMDIuODMpIHNpemUgNDMuODR4NDMuODQgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSko
LTAuNzEsMC43MSkpIHQ9KC0xOC41NCw0Ljc1KX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAs
MTUuMDAgTC0xNS4wMCwxNS4wMCBaIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ2
NC41MCwzMDQuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKC0xLjAwLC0wLjAwKSgwLjAw
LC0xLjAwKSkgdD0oNjAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGQjQwMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUu
MDAgTC0xNS4wMCwxNS4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ2NC41
MCwzMDQuNTApIHNpemUgMzF4MzEgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0x
LjAwKSkgdD0oNjAuMDAsMTAwLjAwKX1dIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
QjQwMF19XSBbZGF0YT0iTS0xNS4wMCwtMTUuMDAgTDE1LjAwLC0xNS4wMCBMMTUuMDAsMTUuMDAg
TC0xNS4wMCwxNS4wMCBaIl0KICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC00NCw3
NSkgc2l6ZSA4OHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA4OHgxOAogICAgICAgICAgICAgY2h1bmsg
MSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTQzLjUwLDc1LjAwKSBzdGFydE9mZnNl
dCAwIGVuZE9mZnNldCAxNSB3aWR0aCA4Ny4wMDogImxpbmVhciByb3RhdGlvbiIKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAxLWIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
VzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAxLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5
OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRy
YW5zLTAxLWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDUwLDkwKSBzaXplIDIweDIwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDUwLjAwLDUwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoNTAsOTApIHNpemUgMjB4MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEwyMC4wMCwwLjAwIEwyMC4wMCwyLjAwIEwwLjAwLDIuMDAgWiJd
CiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTAsOTApIHNpemUgMngyMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyLjAw
LDAuMDAgTDIuMDAsMjAuMDAgTDAuMDAsMjAuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMTUwLDkwKSBzaXplIDIweDIwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwt
MS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDE1MC4wMCw3MC4wMCl9XQorICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDE1MCw5MCkgc2l6ZSAyMHgyMCBbdHJhbnNmb3JtPXttPSgoMC4w
MCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMTUwLjAwLDcwLjAwKX1dCiAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMTUwLDkwKSBzaXplIDJ4MjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjAuMDAsMC4wMCBMMjAuMDAsMi4w
MCBMMC4wMCwyLjAwIFoiXQogICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDE1MCwx
MDgpIHNpemUgMjB4MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEwyLjAwLDAuMDAgTDIuMDAsMjAuMDAgTDAuMDAsMjAuMDAgWiJdCiAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjUwLDkwKSBzaXplIDQweDIwIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDEuMDAsMS4wMCkpIHQ9KDI1MC4wMCw1MC4wMCl9XQpAQCAt
MTI3LDggKzEyNyw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgyMDgsMTk4KSBzaXplIDV4NSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMjA4LjAwLDE1OC4wMCBMMjEzLjAwLDE1OC4wMCBM
MjEzLjAwLDE2My4wMCBMMjA4LjAwLDE2My4wMCBaIl0KICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDQwLDIxNikgc2l6ZSA0MDJ4NjcKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoNTAsMjQwKSBzaXplIDI2MHg0MAotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDUwLDI0MCkgc2l6ZSA2MHg0MCBbdHJhbnNmb3JtPXttPSgoMy4wMCwwLjAwKSgw
LjAwLDIuMDApKSB0PSg1MC4wMCwyMTAuMDApfV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICg1MCwyNDApIHNpemUgNjB4MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMC4wMCwwLjAwIEwyMC4wMCwxLjAwIEwwLjAwLDEu
MDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAsMjQwKSBzaXpl
IDYwLjAweDQwIFt0cmFuc2Zvcm09e209KCgzLjAwLDAuMDApKDAuMDAsMi4wMCkpIHQ9KDUwLjAw
LDIxMC4wMCl9XQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDUwLDI0MCkgc2l6
ZSA2MC4wMHgyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgTDIwLjAwLDAuMDAgTDIwLjAwLDEuMDAgTDAuMDAsMS4wMCBaIl0KICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1MCwyNDApIHNpemUgMi4wMXg0MCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjY3LDAuMDAg
TDAuNjcsMjAuMDAgTDAuMDAsMjAuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjUwLDI0MCkgc2l6ZSA2MHg0MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgw
LjAwLDEuMDApKSB0PSgyMDAuMDAsMC4wMCl9XQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjUwLDI0MCkgc2l6ZSA2MHg0MCBbdHJhbnNmb3JtPXttPSgoMy4wMCwwLjAw
KSgwLjAwLDIuMDApKSB0PSgwLjAwLDAuMDApfV0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAyLXQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRz
LXRyYW5zLTAyLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvY29vcmRzLXRyYW5zLTAyLXQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4
MHgzNjAKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg5NSwxNjUpIHNpemUg
NTB4NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsNTAu
MDApfV0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg5NSwxNjUpIHNpemUgNTB4
NSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAw
IEwyMC4wMCwwLjAwIEwyMC4wMCwyLjAwIEwwLjAwLDIuMDAgWiJdCiAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoOTUsMTY1KSBzaXplIDV4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMi4wMCwwLjAwIEwyLjAwLDIwLjAw
IEwwLjAwLDIwLjAwIFoiXQotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0
NSwxNjUpIHNpemUgNTB4NTAgW3RyYW5zZm9ybT17bT0oKC0wLjAwLC0xLjAwKSgxLjAwLC0wLjAw
KSkgdD0oMTUwLjAwLDcwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoMzQ1LDE2NSkgc2l6ZSA1MHg1MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCww
LjAwKSkgdD0oMTUwLjAwLDcwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMzQ1LDE2NSkgc2l6ZSA1eDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIwLjAwLDAuMDAgTDIwLjAwLDIuMDAgTDAuMDAsMi4wMCBa
Il0KICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDUsMjEwKSBzaXplIDUweDUg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBM
Mi4wMCwwLjAwIEwyLjAwLDIwLjAwIEwwLjAwLDIwLjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg3MCwxMDUpIHNpemUgNDE1eDExNy41MCBbdHJhbnNmb3JtPXttPSgo
Mi41MCwwLjAwKSgwLjAwLDIuNTApKSB0PSgtMzAuMDAsMC4wMCl9XQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZH
LTEuMS9jb29yZHMtdHJhbnMtMDYtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9jb29yZHMtdHJhbnMtMDYt
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgNDgweDM2MAogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjMsMTA1KSBzaXplIDE1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDcuNTAsMC4wMCkoMC4wMCw1LjAw
KSkgdD0oMC4wMCwwLjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDIzLDEwNSkgc2l6ZSAxNTB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDE2LjY3LDEwNS4wMCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICgyMywxMDUpIHNpemUgMTUweDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDBGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjAuMDAsMC4wMCBMMjAuMDAsMS4wMCBMMC4wMCwx
LjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMywxMDUpIHNp
emUgNS4wM3gxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMC42NywwLjAwIEwwLjY3LDIwLjAwIEwwLjAwLDIwLjAwIFoiXQorICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMywxMDUpIHNpemUgNS4wMngxMDAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC42
NywwLjAwIEwwLjY3LDIwLjAwIEwwLjAwLDIwLjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgwLDQ1KSBzaXplIDUwNXgxNjcuNTAgW3RyYW5zZm9ybT17bT0oKDIuNTAs
MC4wMCkoMC4wMCwyLjUwKSkgdD0oLTYwMC4wMCwtNDUwLjAwKX1dCiAgICAgICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDI0MCwyMDApIHNpemUgMjAyeDE4IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNp
emUgMjAyeDE4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4x
L2Nvb3Jkcy12aWV3YXR0ci0wMS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2Nvb3Jkcy12aWV3YXR0ci0wMS1iLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xL2Nvb3Jkcy12aWV3YXR0ci0wMS1iLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTgxLDggKzE4MSw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAog
ICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzAwLDIyOC4zMykgc2l6ZSA1MHg2
Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBM
MjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDMwOC4zMywyNDUpIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCiAgICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzA4LjMzLDI0NSkgc2l6ZSAzMy4zM3gzMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0
Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwx
OC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYg
TDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4z
NywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQu
MDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwx
Ni4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUs
MjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMw
IEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMs
MjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYu
NTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkg
TDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUu
MDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDks
MTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45
MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIs
Ni45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45
MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwx
NS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMx
IEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2
LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43
MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQg
TDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45
MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCi0gICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2ly
Y2xlfSBhdCAoMzE3LjUwLDI1NC4xNykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIu
MTkgTDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwx
My4zNiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYs
MTIuOTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIx
IEwxMi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIu
NDYsMTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEz
LjUwIEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBM
MTEuNjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4
LDEzLjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4w
OSBMMTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEw
LjY5LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwx
Mi4zNyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAg
TDEwLjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41
NywxMS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEu
MjAgTDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwx
MS4wNCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYs
MTAuNjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUz
IEwxMS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIu
MTksMTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEw
LjYxIEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBM
MTIuOTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIx
LDExLjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40
NSBMMTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEz
LjUwLDExLjkxIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDMy
NS44MywyNTQuMTcpIHNpemUgNXg1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40Nywx
Mi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQg
TDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4w
OSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMu
MjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwx
Ny4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAs
MTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1
IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYu
MjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEz
LjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBM
MTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUz
LDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45
MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1
LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwx
MS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQg
TDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40
NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAu
NTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwx
Ny4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQs
MTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0
IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTgu
MjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDEx
LjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBa
Il0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgzMTcuNTAsMjU0LjE3
KSBzaXplIDV4NS4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRh
PSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEz
LjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwx
Mi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMg
TDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43
MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMu
NDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwx
MS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQs
MTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3
IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAu
ODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEy
LjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBM
MTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUx
LDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40
NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEw
Ljg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwx
MC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEg
TDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45
MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAu
NTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwx
Mi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMs
MTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIw
IEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMu
NDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCisgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzI1LjgzLDI1NC4xNykgc2l6ZSA1
eDUuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUw
LDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4z
NyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4
LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywx
My4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEg
TDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4y
OCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMu
NTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwx
Ni40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIs
MTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2
IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUu
NjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEy
LjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBM
MTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0
LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4w
NCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2
LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwx
MC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAg
TDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4z
NywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAu
NjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwx
OC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEs
MTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYz
IEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMTUuNjMsMjY3LjAzKSBzaXplIDE4Ljc1eDEwLjEw
IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwx
OS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoMTAsMzQwKSBzaXplIDI2NHg0NiBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICBSZW5k
ZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTM2KSBzaXplIDI2NHg0NgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAxLXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzND
LVNWRy0xLjEvZm9udHMtZWxlbS0wMS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDEt
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMCwx
MzApIHNpemUgMTA1eDIyIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE3KSBzaXplIDEwNXgyMgogICAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgzMC4wMCwxMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDEzIHdpZHRoIDEwNS4wMDogIlBsYWNlZCBHbHlwaHMiCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQorICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2
MS4xMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0
MC4wMCl9XQogICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgxNjUsMTM5LjUwKSBzaXpl
IDIxMHgxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODg4OF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTAuMDAsMC4w
MCJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBz
aXplIDIxMS4xN3gxNjEuMTMgW3RyYW5zZm9ybT17bT0oKDAuMDMsMC4wMCkoMC4wMCwwLjAzKSkg
dD0oMC4wMCwwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTY0LjI3
LDgxLjQxKSBzaXplIDEuNDZ4MTYxLjEzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODg4OF0gW3N0cm9rZSB3aWR0aD01MC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwtMzUwMC4wMCBMMC4wMCwyMDAwLjAwIl0KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMi10LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1cz
Qy1TVkctMS4xL2ZvbnRzLWVsZW0tMDItdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTAy
LXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw3IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDcsMTMw
KSBzaXplIDEzMHgyMiBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTcpIHNpemUgMTMweDIyCiAgICAgICAgICAgY2h1bmsgMSB0
ZXh0IHJ1biAxIGF0ICg3LjAwLDEzMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTUgd2lk
dGggMTMwLjAwOiAiU1ZHIG92ZXIgR2x5cGhzIgotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMTY4Ljg0LDg1LjYyKSBzaXplIDIwMy40NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgtMC4wMCwtMS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KKyAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDE2OC44NCw4NS42Mikgc2l6ZSAyMDMuNDR4NzEuMzQgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY4Ljg0LDg1LjYyKSBzaXplIDIwMy40
NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgoMC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0PSgwLjAwLDAu
MDApfV0KICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTY4Ljg0LDk2LjcwKSBzaXpl
IDM1Ljc3eDQ0LjE4IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGRkZdfV0gW2RhdGE9
Ik0xMjUwLjAwLC0zMC4wMCBDMTE4OC42NywtMzAuMDAsMTEzNS4zMyw0OC42NywxMDkwLjAwLDIw
Ni4wMCBDMTA3Mi42NywyNjYuMDAsMTA1MS4wMCwzNzEuMDAsMTAyNS4wMCw1MjEuMDAgQzk1Ny4w
MCw1MTEuNjcsODY4LjAwLDQ5NS4wMCw3NTguMDAsNDcxLjAwIEw0OTIuMDAsNDE2LjAwIEM0NTgu
NjcsMzI4LjY3LDQwMS42NywyMDEuMDAsMzIxLjAwLDMzLjAwIEMyOTkuNjcsLTQuMzMsMjcwLjY3
LC0yMy4wMCwyMzQuMDAsLTIzLjAwIEMyMDcuMzMsLTIzLjAwLDE4My42NywtMTMuMzMsMTYzLjAw
LDYuMDAgQzE0Mi4zMywyNS4zMywxMzEuNjcsNDkuMzMsMTMxLjAwLDc4LjAwIEMxMzEuMDAsMTEw
LjAwLDE4MS4zMywyMzEuNjcsMjgyLjAwLDQ0My4wMCBDMjcwLjY3LDQ2MC4zMywyNjUuMDAsNDgw
LjMzLDI2NS4wMCw1MDMuMDAgQzI2NS4wMCw1NTcuMDAsMjk3LjY3LDU5MS42NywzNjMuMDAsNjA3
LjAwIEM0MzkuMDAsNzQ5LjY3LDUzNS4wMCw5MTMuNjcsNjUxLjAwLDEwOTkuMDAgQzgwOS4wMCwx
MzUxLjY3LDkwNy4zMywxNDc4LjAwLDk0Ni4wMCwxNDc4LjAwIEM5OTguNjcsMTQ3OC4wMCwxMDM0
LjY3LDE0NDEuMzMsMTA1NC4wMCwxMzY4LjAwIEwxMTE3LjAwLDEwMzIuMDAgTDEyNjYuMDAsMzM3
LjAwIEwxMzIzLjAwLDE3OS4wMCBDMTM0Mi4zMywxMjUuMDAsMTM1Mi4wMCw4OS4wMCwxMzUyLjAw
LDcxLjAwIEMxMzUyLjAwLDQyLjMzLDEzNDEuNjcsMTguMzMsMTMyMS4wMCwtMS4wMCBDMTMwMC4z
MywtMjAuMzMsMTI3Ni42NywtMzAuMDAsMTI1MC4wMCwtMzAuMDAgWiBNODk3LjAwLDExMTMuMDAg
TDYxMS4wMCw2NTIuMDAgQzY5MS42Nyw2NzIuNjcsODE0LjAwLDY5Ny42Nyw5NzguMDAsNzI3LjAw
IEw4OTcuMDAsMTExMy4wMCBaIl0KICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjA4
Ljc3LDEwOS41Mykgc2l6ZSAzMC4xMng0Ny40MyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgw
LjAwLDEuMDApKSB0PSgxNDk4LjAwLDAuMDApfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGRkZGRl19XSBbZGF0YT0iTTEwMTEuMDAsODkyLjAwIEw2NjUuMDAsMTQ0LjAwIEM1NzkuNjcs
LTM4LjAwLDUxNC4zMywtMTkwLjMzLDQ2OS4wMCwtMzEzLjAwIEw0MDMuMDAsLTUwNy4wMCBDMzg1
LjY3LC01NTUuMDAsMzU1LjY3LC01NzkuMDAsMzEzLjAwLC01NzkuMDAgQzI4NS4wMCwtNTc5LjAw
LDI2MS4wMCwtNTcwLjAwLDI0MS4wMCwtNTUyLjAwIEMyMjEuMDAsLTUzNC4wMCwyMTAuNjcsLTUx
MS4wMCwyMTAuMDAsLTQ4My4wMCBDMjEwLjAwLC00MTYuMzMsMjgyLjAwLC0yMjMuMzMsNDI2LjAw
LDk2LjAwIEw2OC4wMCw3ODUuMDAgTDIzLjAwLDg1OC4wMCBDNS4wMCw4ODguNjcsLTQuMDAsOTE0
LjMzLC00LjAwLDkzNS4wMCBDLTQuMDAsOTYyLjMzLDYuMzMsOTg2LjMzLDI3LjAwLDEwMDcuMDAg
QzQ3LjY3LDEwMjcuNjcsNzEuMzMsMTAzOC4wMCw5OC4wMCwxMDM4LjAwIEMxMjguNjcsMTAzOC4w
MCwxNTIuMzMsMTAyNi4zMywxNjkuMDAsMTAwMy4wMCBDMjgyLjMzLDg0NS42Nyw0MDQuMDAsNjIx
LjY3LDUzNC4wMCwzMzEuMDAgTDY4Mi4wMCw2NzYuMDAgQzczNS4zMyw3OTUuMzMsNzg2LjY3LDg5
OC4wMCw4MzYuMDAsOTg0LjAwIEM4NTcuMzMsMTAyMS4zMyw4ODUuMzMsMTA0MC4wMCw5MjAuMDAs
MTA0MC4wMCBDOTQ3LjMzLDEwNDAuMDAsOTcxLjMzLDEwMzAuMzMsOTkyLjAwLDEwMTEuMDAgQzEw
MTIuNjcsOTkxLjY3LDEwMjMuMzMsOTY4LjY3LDEwMjQuMDAsOTQyLjAwIEMxMDI0LjAwLDkyNy4z
MywxMDE5LjY3LDkxMC42NywxMDExLjAwLDg5Mi4wMCBaIl0KQEAgLTI5LDcgKzI5LDcgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICgwLDApIHNpemUgMjEweDgzIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTY2KSBzaXplIDIxMHg4MwogICAgICAgICAgICAg
Y2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDUgd2lkdGggMjA5LjcxOiAiQXlceHtENn1AXHh7RTd9IgotICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMTY4Ljg0LDE1NS42Mikgc2l6ZSAyMDMuNDR4NzEuMzQgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSgxNjUuMDAsMjEwLjAwKX1dCisgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjguODQsMTU1LjYyKSBzaXplIDIwMy40NHg3MS4z
NCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDIxMC4w
MCl9XQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjguODQsMTU1LjYyKSBz
aXplIDIwMy40NHg3MS4zNCBbdHJhbnNmb3JtPXttPSgoMC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0
PSgwLjAwLDAuMDApfV0KICAgICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTY4Ljg0LDE2
Ni43MCkgc2l6ZSAzNS43N3g0NC4xOCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMTI1MC4wMCwtMzAuMDAgQzExODguNjcsLTMwLjAwLDExMzUuMzMsNDguNjcs
MTA5MC4wMCwyMDYuMDAgQzEwNzIuNjcsMjY2LjAwLDEwNTEuMDAsMzcxLjAwLDEwMjUuMDAsNTIx
LjAwIEM5NTcuMDAsNTExLjY3LDg2OC4wMCw0OTUuMDAsNzU4LjAwLDQ3MS4wMCBMNDkyLjAwLDQx
Ni4wMCBDNDU4LjY3LDMyOC42Nyw0MDEuNjcsMjAxLjAwLDMyMS4wMCwzMy4wMCBDMjk5LjY3LC00
LjMzLDI3MC42NywtMjMuMDAsMjM0LjAwLC0yMy4wMCBDMjA3LjMzLC0yMy4wMCwxODMuNjcsLTEz
LjMzLDE2My4wMCw2LjAwIEMxNDIuMzMsMjUuMzMsMTMxLjY3LDQ5LjMzLDEzMS4wMCw3OC4wMCBD
MTMxLjAwLDExMC4wMCwxODEuMzMsMjMxLjY3LDI4Mi4wMCw0NDMuMDAgQzI3MC42Nyw0NjAuMzMs
MjY1LjAwLDQ4MC4zMywyNjUuMDAsNTAzLjAwIEMyNjUuMDAsNTU3LjAwLDI5Ny42Nyw1OTEuNjcs
MzYzLjAwLDYwNy4wMCBDNDM5LjAwLDc0OS42Nyw1MzUuMDAsOTEzLjY3LDY1MS4wMCwxMDk5LjAw
IEM4MDkuMDAsMTM1MS42Nyw5MDcuMzMsMTQ3OC4wMCw5NDYuMDAsMTQ3OC4wMCBDOTk4LjY3LDE0
NzguMDAsMTAzNC42NywxNDQxLjMzLDEwNTQuMDAsMTM2OC4wMCBMMTExNy4wMCwxMDMyLjAwIEwx
MjY2LjAwLDMzNy4wMCBMMTMyMy4wMCwxNzkuMDAgQzEzNDIuMzMsMTI1LjAwLDEzNTIuMDAsODku
MDAsMTM1Mi4wMCw3MS4wMCBDMTM1Mi4wMCw0Mi4zMywxMzQxLjY3LDE4LjMzLDEzMjEuMDAsLTEu
MDAgQzEzMDAuMzMsLTIwLjMzLDEyNzYuNjcsLTMwLjAwLDEyNTAuMDAsLTMwLjAwIFogTTg5Ny4w
MCwxMTEzLjAwIEw2MTEuMDAsNjUyLjAwIEM2OTEuNjcsNjcyLjY3LDgxNC4wMCw2OTcuNjcsOTc4
LjAwLDcyNy4wMCBMODk3LjAwLDExMTMuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDIwOC43NywxNzkuNTMpIHNpemUgMzAuMTJ4NDcuNDMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTQ5OC4wMCwwLjAwKX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMDExLjAwLDg5Mi4wMCBMNjY1LjAwLDE0NC4w
MCBDNTc5LjY3LC0zOC4wMCw1MTQuMzMsLTE5MC4zMyw0NjkuMDAsLTMxMy4wMCBMNDAzLjAwLC01
MDcuMDAgQzM4NS42NywtNTU1LjAwLDM1NS42NywtNTc5LjAwLDMxMy4wMCwtNTc5LjAwIEMyODUu
MDAsLTU3OS4wMCwyNjEuMDAsLTU3MC4wMCwyNDEuMDAsLTU1Mi4wMCBDMjIxLjAwLC01MzQuMDAs
MjEwLjY3LC01MTEuMDAsMjEwLjAwLC00ODMuMDAgQzIxMC4wMCwtNDE2LjMzLDI4Mi4wMCwtMjIz
LjMzLDQyNi4wMCw5Ni4wMCBMNjguMDAsNzg1LjAwIEwyMy4wMCw4NTguMDAgQzUuMDAsODg4LjY3
LC00LjAwLDkxNC4zMywtNC4wMCw5MzUuMDAgQy00LjAwLDk2Mi4zMyw2LjMzLDk4Ni4zMywyNy4w
MCwxMDA3LjAwIEM0Ny42NywxMDI3LjY3LDcxLjMzLDEwMzguMDAsOTguMDAsMTAzOC4wMCBDMTI4
LjY3LDEwMzguMDAsMTUyLjMzLDEwMjYuMzMsMTY5LjAwLDEwMDMuMDAgQzI4Mi4zMyw4NDUuNjcs
NDA0LjAwLDYyMS42Nyw1MzQuMDAsMzMxLjAwIEw2ODIuMDAsNjc2LjAwIEM3MzUuMzMsNzk1LjMz
LDc4Ni42Nyw4OTguMDAsODM2LjAwLDk4NC4wMCBDODU3LjMzLDEwMjEuMzMsODg1LjMzLDEwNDAu
MDAsOTIwLjAwLDEwNDAuMDAgQzk0Ny4zMywxMDQwLjAwLDk3MS4zMywxMDMwLjMzLDk5Mi4wMCwx
MDExLjAwIEMxMDEyLjY3LDk5MS42NywxMDIzLjMzLDk2OC42NywxMDI0LjAwLDk0Mi4wMCBDMTAy
NC4wMCw5MjcuMzMsMTAxOS42Nyw5MTAuNjcsMTAxMS4wMCw4OTIuMDAgWiJdCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDMtYi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0Mt
U1ZHLTEuMS9mb250cy1lbGVtLTAzLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wMy1i
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDMxLDEz
MCkgc2l6ZSAxMDV4MjIgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTcpIHNpemUgMTA1eDIyCiAgICAgICAgICAgICBjaHVu
ayAxIHRleHQgcnVuIDEgYXQgKDMxLjAwLDEzMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MTMgd2lkdGggMTA1LjAwOiAiUGxhY2VkIEdseXBocyIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDIxMS4xN3gxNjEuMTMgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoLTAuMDAsLTEuMDApKSB0PSgxNjUuMDAsMTQwLjAwKX1dCisgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAyMTEuMTd4MTYx
LjEzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsLTEuMDApKSB0PSgxNjUuMDAsMTQw
LjAwKX1dCiAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDE2NSwxMzkuNTApIHNpemUg
MjEweDEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4ODg4XX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDIxMC4wMCwwLjAw
Il0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjQuMjcsODEuNDEpIHNp
emUgMjExLjE3eDE2MS4xMyBbdHJhbnNmb3JtPXttPSgoMC4wMywwLjAwKSgwLjAwLDAuMDMpKSB0
PSgwLjAwLDAuMDApfV0KICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgxNjQuMjcs
ODEuNDEpIHNpemUgMS40NngxNjEuMTMgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4
ODg4XSBbc3Ryb2tlIHdpZHRoPTUwLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0wLjAwLC0zNTAwLjAwIEwwLjAwLDIwMDAuMDAiXQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTA0LWItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzND
LVNWRy0xLjEvZm9udHMtZWxlbS0wNC1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL2ZvbnRzLWVsZW0tMDQt
Yi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDcgQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMSwx
MzApIHNpemUgMTA1eDIyIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE3KSBzaXplIDEwNXgyMgogICAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgzMS4wMCwxMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDEzIHdpZHRoIDEwNS4wMDogIlBsYWNlZCBHbHlwaHMiCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDE2NC4yNyw4MS40MSkgc2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0MC4wMCl9XQorICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2
MS4xMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLC0xLjAwKSkgdD0oMTY1LjAwLDE0
MC4wMCl9XQogICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgxNjUsMTM5LjUwKSBzaXpl
IDIxMHgxIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODg4OF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwyMTAuMDAsMC4w
MCJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBz
aXplIDIxMS4xN3gxNjEuMTMgW3RyYW5zZm9ybT17bT0oKDAuMDMsMC4wMCkoMC4wMCwwLjAzKSkg
dD0oMC4wMCwwLjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTY0LjI3
LDgxLjQxKSBzaXplIDEuNDZ4MTYxLjEzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODg4OF0gW3N0cm9rZSB3aWR0aD01MC4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwtMzUwMC4wMCBMMC4wMCwyMDAwLjAwIl0KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvZm9udHMtZWxlbS0wNy1iLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1cz
Qy1TVkctMS4xL2ZvbnRzLWVsZW0tMDctYi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9mb250cy1lbGVtLTA3
LWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMzAs
MTMwKSBzaXplIDEwNXgyMiBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNykgc2l6ZSAxMDV4MjIKICAgICAgICAgICAgIGNo
dW5rIDEgdGV4dCBydW4gMSBhdCAoMzAuMDAsMTMwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxMyB3aWR0aCAxMDUuMDA6ICJQbGFjZWQgR2x5cGhzIgotICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgxNjQuMjcsODEuNDEpIHNpemUgMjExLjE3eDE2MS4xMyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgtMC4wMCwtMS4wMCkpIHQ9KDE2NS4wMCwxNDAuMDApfV0KKyAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY0LjI3LDgxLjQxKSBzaXplIDIxMS4xN3gx
NjEuMTMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwtMS4wMCkpIHQ9KDE2NS4wMCwx
NDAuMDApfV0KICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMTY1LDEzOS41MCkgc2l6
ZSAyMTB4MSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4ODhdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMjEwLjAwLDAu
MDAiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2NC4yNyw4MS40MSkg
c2l6ZSAyMTEuMTd4MTYxLjEzIFt0cmFuc2Zvcm09e209KCgwLjAzLDAuMDApKDAuMDAsMC4wMykp
IHQ9KDAuMDAsMC4wMCl9XQogICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDE2NC4y
Nyw4MS40MSkgc2l6ZSAxLjQ2eDE2MS4xMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4ODhdIFtzdHJva2Ugd2lkdGg9NTAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsLTM1MDAuMDAgTDAuMDAsMjAwMC4wMCJdCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0w
MS1mLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3Bh
aW50aW5nLW1hcmtlci0wMS1mLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyAr
NTIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMjQyLDIyMikgc2l6ZSAxNngxNiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMEZGXX1dIFtkYXRhPSJNNS4wMCwwLjAwIEwxMC4wMCwxMC4wMCBMMC4wMCwxMC4wMCBa
Il0KICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjg4LjY5LDIxOC42OSkgc2l6
ZSAyMi42M3gyMi42MyBbdHJhbnNmb3JtPXttPSgoMS4xMywxLjEzKSgtMS4xMywxLjEzKSkgdD0o
MTgwLjAwLDIxOC42OSl9XQogICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyODguNjks
MjE4LjY5KSBzaXplIDIyLjYzeDIyLjYzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
RkZdfV0gW2RhdGE9Ik01LjAwLDAuMDAgTDEwLjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoiXQotICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyOTIsMjcyKSBzaXplIDE2eDE2IFt0cmFu
c2Zvcm09e209KCgtMC4wMCwxLjYwKSgtMS42MCwtMC4wMCkpIHQ9KDE4OC4wMCwyNzIuMDApfV0K
KyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjkyLDI3Mikgc2l6ZSAxNngxNiBb
dHJhbnNmb3JtPXttPSgoMC4wMCwxLjYwKSgtMS42MCwwLjAwKSkgdD0oMTg4LjAwLDI3Mi4wMCl9
XQogICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOTIsMjcyKSBzaXplIDE2eDE2IFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik01LjAwLDAuMDAgTDEw
LjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoiXQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgx
MCwzNDApIHNpemUgMjY0eDQ2IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1mLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xL3BhaW50aW5nLW1hcmtlci0wMi1mLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLW1h
cmtlci0wMi1mLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4
MzYwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoLTAuODAsLTAuODApIHNpemUgNDgwLjMweDM2MC4zMAotICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKC0wLjgwLC0wLjgwKSBzaXplIDQ1Mi4wMHgyNzIuODAKKyAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgtMC44MCwtMC44MCkgc2l6ZSA0NTJ4MjcyLjgwCiAgICAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTI1LDMwKSBzaXplIDE4NHgxNiBjb250YWlucyAxIGNodW5r
KHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTMpIHNpemUg
MTg0eDE2CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3Bh
dGhzLWRhdGEtMDUtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA1LXQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0x
LjEvcGF0aHMtZGF0YS0wNS10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyAr
MjAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDEwOCw5NS40MCkgc2l6ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTYwLjAwLDIwMy4wMCBMNjQuMDAsMjAzLjAwIEw2NC4w
MCwyMDcuMDAgTDYwLjAwLDIwNy4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDE3OC4xNSwyMTYuOTApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2RhdGE9Ik05OC45NywyNzAuNTAgTDEwMi45NywyNzAuNTAgTDEwMi45Nywy
NzQuNTAgTDk4Ljk3LDI3NC41MCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM3
Ljg1LDIxNi45MCkgc2l6ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZGF0YT0iTTIxLjAzLDI3MC41MCBMMjUuMDMsMjcwLjUwIEwyNS4wMywyNzQuNTAg
TDIxLjAzLDI3NC41MCBaIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIyNS4wNyw3
Mi4wMCkgc2l6ZSAxODcuMDZ4MTYyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMEMwMDBd
IFtmaWxsIHJ1bGU9RVZFTi1PRERdfV0gW2RhdGE9Ik0xNzcuMDAsMTkwLjAwIEwyMjguOTYsMjgw
LjAwIEwxMjUuMDQsMjgwLjAwIEwxNzcuMDAsMTkwLjAwIFogTTE3Ny4wMCwyMDUuMDAgTDIxNS45
NywyNzIuNTAgTDEzOC4wNiwyNzIuNTAgTDE3Ny4wMywyMDUuMDAgWiJdCisgICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgyMjUuMDcsNzIpIHNpemUgMTg3LjA2eDE2MiBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDBDMDAwXSBbZmlsbCBydWxlPUVWRU4tT0REXX1dIFtkYXRhPSJNMTc3
LjAwLDE5MC4wMCBMMjI4Ljk2LDI4MC4wMCBMMTI1LjA0LDI4MC4wMCBMMTc3LjAwLDE5MC4wMCBa
IE0xNzcuMDAsMjA1LjAwIEwyMTUuOTcsMjcyLjUwIEwxMzguMDYsMjcyLjUwIEwxNzcuMDMsMjA1
LjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzE1LDY4LjQwKSBzaXplIDcu
MjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMTc1
LjAwLDE4OC4wMCBMMTc5LjAwLDE4OC4wMCBMMTc5LjAwLDE5Mi4wMCBMMTc1LjAwLDE5Mi4wMCBa
Il0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQwOC41MywyMzAuNDApIHNpemUgNy4y
MHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0yMjYu
OTYsMjc4LjAwIEwyMzAuOTYsMjc4LjAwIEwyMzAuOTYsMjgyLjAwIEwyMjYuOTYsMjgyLjAwIFoi
XQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjIxLjQ3LDIzMC40MCkgc2l6ZSA3LjIw
eDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTEyMy4w
NCwyNzguMDAgTDEyNy4wNCwyNzguMDAgTDEyNy4wNCwyODIuMDAgTDEyMy4wNCwyODIuMDAgWiJd
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRh
dGEtMDYtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA2LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0
aHMtZGF0YS0wNi10LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBA
QCBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDIzMC40MCwyMDUuMjApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0zMjguMDAsMTE0LjAwIEwzMzIuMDAsMTE0LjAwIEwzMzIu
MDAsMTE4LjAwIEwzMjguMDAsMTE4LjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMjMwLjQwLDI1OS4yMCkgc2l6ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGRkYwMF19XSBbZGF0YT0iTTMyOC4wMCwxNDQuMDAgTDMzMi4wMCwxNDQuMDAgTDMzMi4w
MCwxNDguMDAgTDMyOC4wMCwxNDguMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICg2OC40MCwyNTkuMjApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGMDBdfV0gW2RhdGE9Ik0yMzguMDAsMTQ0LjAwIEwyNDIuMDAsMTQ0LjAwIEwyNDIuMDAs
MTQ4LjAwIEwyMzguMDAsMTQ4LjAwIFoiXQotICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
MjcwLjAwLDEwMC44MCkgc2l6ZSAxNjJ4MTYyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwRkZdfV0gW2RhdGE9Ik0zNTAuMDAsNTYuMDAgTDM4MC4wMCw1Ni4wMCBMMzgwLjAwLDg2LjAw
IEw0MTAuMDAsODYuMDAgTDQxMC4wMCwxMTYuMDAgTDQ0MC4wMCwxMTYuMDAgTDQ0MC4wMCwxNDYu
MDAgTDM1MC4wMCwxNDYuMDAgTDM1MC4wMCw1Ni4wMCBaIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDI3MCwxMDAuODApIHNpemUgMTYyeDE2MiBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMzUwLjAwLDU2LjAwIEwzODAuMDAsNTYuMDAgTDM4MC4w
MCw4Ni4wMCBMNDEwLjAwLDg2LjAwIEw0MTAuMDAsMTE2LjAwIEw0NDAuMDAsMTE2LjAwIEw0NDAu
MDAsMTQ2LjAwIEwzNTAuMDAsMTQ2LjAwIEwzNTAuMDAsNTYuMDAgWiJdCiAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyNjYuNDAsOTcuMjApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0zNDguMDAsNTQuMDAgTDM1Mi4wMCw1
NC4wMCBMMzUyLjAwLDU4LjAwIEwzNDguMDAsNTguMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgzMjAuNDAsOTcuMjApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0zNzguMDAsNTQuMDAgTDM4Mi4wMCw1NC4wMCBM
MzgyLjAwLDU4LjAwIEwzNzguMDAsNTguMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgzMjAuNDAsMTUxLjIwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMzc4LjAwLDg0LjAwIEwzODIuMDAsODQuMDAgTDM4Mi4w
MCw4OC4wMCBMMzc4LjAwLDg4LjAwIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9XM0MtU1ZHLTEuMS9wYXRocy1kYXRhLTA3LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0w
Ny10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL1czQy1TVkctMS4xL3BhdGhzLWRhdGEtMDctdC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMzAuNDAsMTc2LjQwKSBzaXplIDcuMjB4Ny4y
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMzI4LjAwLDI0
OC4wMCBMMzMyLjAwLDI0OC4wMCBMMzMyLjAwLDI1Mi4wMCBMMzI4LjAwLDI1Mi4wMCBaIl0KICAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIzMC40MCwyMzAuNDApIHNpemUgNy4yMHg3LjIw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik0zMjguMDAsMjc4
LjAwIEwzMzIuMDAsMjc4LjAwIEwzMzIuMDAsMjgyLjAwIEwzMjguMDAsMjgyLjAwIFoiXQogICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjguNDAsMjMwLjQwKSBzaXplIDcuMjB4Ny4yMCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjM4LjAwLDI3OC4w
MCBMMjQyLjAwLDI3OC4wMCBMMjQyLjAwLDI4Mi4wMCBMMjM4LjAwLDI4Mi4wMCBaIl0KLSAgICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI3MC4wMCw3Mi4wMCkgc2l6ZSAxNjJ4MTYyIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0zNTAuMDAsMTkwLjAwIEwz
ODAuMDAsMTkwLjAwIEwzODAuMDAsMjIwLjAwIEw0MTAuMDAsMjIwLjAwIEw0MTAuMDAsMjUwLjAw
IEw0NDAuMDAsMjUwLjAwIEw0NDAuMDAsMjgwLjAwIEwzNTAuMDAsMjgwLjAwIEwzNTAuMDAsMTkw
LjAwIFoiXQorICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjcwLDcyKSBzaXplIDE2Mngx
NjIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTM1MC4wMCwx
OTAuMDAgTDM4MC4wMCwxOTAuMDAgTDM4MC4wMCwyMjAuMDAgTDQxMC4wMCwyMjAuMDAgTDQxMC4w
MCwyNTAuMDAgTDQ0MC4wMCwyNTAuMDAgTDQ0MC4wMCwyODAuMDAgTDM1MC4wMCwyODAuMDAgTDM1
MC4wMCwxOTAuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjYuNDAsNjgu
NDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0g
W2RhdGE9Ik0zNDguMDAsMTg4LjAwIEwzNTIuMDAsMTg4LjAwIEwzNTIuMDAsMTkyLjAwIEwzNDgu
MDAsMTkyLjAwIFoiXQogICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzIwLjQwLDY4LjQw
KSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtk
YXRhPSJNMzc4LjAwLDE4OC4wMCBMMzgyLjAwLDE4OC4wMCBMMzgyLjAwLDE5Mi4wMCBMMzc4LjAw
LDE5Mi4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDMyMC40MCwxMjIuNDAp
IHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2Rh
dGE9Ik0zNzguMDAsMjE4LjAwIEwzODIuMDAsMjE4LjAwIEwzODIuMDAsMjIyLjAwIEwzNzguMDAs
MjIyLjAwIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEu
MS9wYXRocy1kYXRhLTA5LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0wOS10LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xL3BhdGhzLWRhdGEtMDktdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3
LDcgKzE3LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgxMDgsOTUuNDApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik02MC4wMCwyMDMuMDAgTDY0LjAwLDIwMy4wMCBM
NjQuMDAsMjA3LjAwIEw2MC4wMCwyMDcuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgxNzguMTUsMjE2LjkwKSBzaXplIDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNOTguOTcsMjcwLjUwIEwxMDIuOTcsMjcwLjUwIEwxMDIu
OTcsMjc0LjUwIEw5OC45NywyNzQuNTAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgzNy44NSwyMTYuOTApIHNpemUgNy4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2RhdGE9Ik0yMS4wMywyNzAuNTAgTDI1LjAzLDI3MC41MCBMMjUuMDMsMjc0
LjUwIEwyMS4wMywyNzQuNTAgWiJdCi0gICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMjUu
MDcsNzIuMDApIHNpemUgMTg3LjA2eDE2MiBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBD
MDAwXSBbZmlsbCBydWxlPUVWRU4tT0REXX1dIFtkYXRhPSJNMTc3LjAwLDE5MC4wMCBMMjI4Ljk2
LDI4MC4wMCBMMTI1LjA0LDI4MC4wMCBMMTc3LjAwLDE5MC4wMCBaIE0xNzcuMDAsMjA1LjAwIEwy
MTUuOTcsMjcyLjUwIEwxMzguMDYsMjcyLjUwIEwxNzcuMDMsMjA1LjAwIFoiXQorICAgICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMjI1LjA3LDcyKSBzaXplIDE4Ny4wNngxNjIgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwQzAwMF0gW2ZpbGwgcnVsZT1FVkVOLU9ERF19XSBbZGF0YT0i
TTE3Ny4wMCwxOTAuMDAgTDIyOC45NiwyODAuMDAgTDEyNS4wNCwyODAuMDAgTDE3Ny4wMCwxOTAu
MDAgWiBNMTc3LjAwLDIwNS4wMCBMMjE1Ljk3LDI3Mi41MCBMMTM4LjA2LDI3Mi41MCBMMTc3LjAz
LDIwNS4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDMxNSw2OC40MCkgc2l6
ZSA3LjIweDcuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0i
TTE3NS4wMCwxODguMDAgTDE3OS4wMCwxODguMDAgTDE3OS4wMCwxOTIuMDAgTDE3NS4wMCwxOTIu
MDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0MDguNTMsMjMwLjQwKSBzaXpl
IDcuMjB4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJN
MjI2Ljk2LDI3OC4wMCBMMjMwLjk2LDI3OC4wMCBMMjMwLjk2LDI4Mi4wMCBMMjI2Ljk2LDI4Mi4w
MCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIyMS40NywyMzAuNDApIHNpemUg
Ny4yMHg3LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0x
MjMuMDQsMjc4LjAwIEwxMjcuMDQsMjc4LjAwIEwxMjcuMDQsMjgyLjAwIEwxMjMuMDQsMjgyLjAw
IFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9wYXRo
cy1kYXRhLTE1LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcGF0aHMtZGF0YS0xNS10LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4x
L3BhdGhzLWRhdGEtMTUtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoNzEuMTUsMTExLjI1KSBzaXplIDMyNS43MXgyOS40OSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdIFtzdHJva2Ugd2lkdGg9My4wMF19XSBbZGF0YT0iTTIwLjAwLDIw
LjAwIEM0MC4wMCwxMy4zMyw2MC4wMCwxMy4zMyw4MC4wMCwyMC4wMCBDMTAwLjAwLDI2LjY3LDEy
MC4wMCwyNi42NywxNDAuMDAsMjAuMDAgQzE2MC4wMCwxMy4zMywxODAuMDAsMTMuMzMsMjAwLjAw
LDIwLjAwIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDcyLDE3Ny4zMCkgc2l6ZSAx
MDh4NS40MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lk
dGg9My4wMF19XSBbZGF0YT0iTTIwLjAwLDUwLjAwIEMyMC4wMCw1MC4wMCwzMC4wMCw1MC4wMCw1
MC4wMCw1MC4wMCBDNzAuMDAsNTAuMDAsODAuMDAsNTAuMDAsODAuMDAsNTAuMDAiXQogICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNzEuMTAsMTc5LjEwKSBzaXplIDl4OSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDBGRl19XSBbZGF0YT0iTTIwLjAwLDUwLjAwIEwyNC4wMCw1MC4wMCBMMjQuMDAsNTQuMDAg
TDIwLjAwLDU0LjAwIFoiXQotICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTI1LjEwLDE3
OS4xMCkgc2l6ZSA5eDkgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdfV0gW2RhdGE9Ik01MC4wMCw1MC4wMCBM
NTQuMDAsNTAuMDAgTDU0LjAwLDU0LjAwIEw1MC4wMCw1NC4wMCBaIl0KKyAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDEyNS4xMCwxNzkuMTApIHNpemUgOS4wMHg5IFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAw
MEZGXX1dIFtkYXRhPSJNNTAuMDAsNTAuMDAgTDU0LjAwLDUwLjAwIEw1NC4wMCw1NC4wMCBMNTAu
MDAsNTQuMDAgWiJdCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNzkuMTAsMTc5LjEw
KSBzaXplIDl4OSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTgwLjAwLDUwLjAwIEw4NC4w
MCw1MC4wMCBMODQuMDAsNTQuMDAgTDgwLjAwLDU0LjAwIFoiXQogICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgxMCwzNDApIHNpemUgMjY0eDQ2IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMzYpIHNpemUgMjY0eDQ2CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQt
MDktYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L3N2Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTA5LWItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcHNl
cnZlcnMtZ3JhZC0wOS1iLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA0ODB4MzYwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgUmVuZGVyU1ZHUm9vdCB7
c3ZnfSBhdCAoMC41MCwwLjUwKSBzaXplIDQ3OXgzNTkKLSAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgxMC4wMCwxMSkgc2l6ZSA0MzB4MjgyCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMTAsMTEpIHNpemUgNDMweDI4MgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KDEwLDI1KSBzaXplIDE5NHgxNyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgMTk0eDE3CiAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwyNS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MzEgd2lkdGggMTk0LjAwOiAiVGVzdGluZyBncmFkaWVudFVuaXRzIGF0dHJpYnV0ZSIKQEAgLTMy
LDcgKzMyLDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICBSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIge2xpbmVhckdyYWRpZW50fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAg
ICBSZW5kZXJTVkdHcmFkaWVudFN0b3Age3N0b3B9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAg
IFJlbmRlclNWR0dyYWRpZW50U3RvcCB7c3RvcH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgxMC4wMCwyMTAuMDApIHNpemUgNDMweDUwIFt0cmFuc2Zvcm09
e209KCgtMC4wMCwtMS4wMCkoMS4wMCwtMC4wMCkpIHQ9KDEwLjAwLDI2MC4wMCl9XSBbZmlsbD17
W3R5cGU9TElORUFSLUdSQURJRU5UXSBbc3RvcHM9WygwLjAwLCNGRjAwMDApLCAoMS4wMCwjMDAw
MEZGKV1dIFtib3VuZGluZyBib3ggbW9kZT0wXSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDAsNDMwKV19
XSBbZGF0YT0iTTAuMDAsMC4wMCBMNTAuMDAsMC4wMCBMNTAuMDAsNDMwLjAwIEwwLjAwLDQzMC4w
MCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMCwyMTApIHNpemUgNDMweDUwIFt0
cmFuc2Zvcm09e209KCgwLjAwLC0xLjAwKSgxLjAwLDAuMDApKSB0PSgxMC4wMCwyNjAuMDApfV0g
W2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0b3BzPVsoMC4wMCwjRkYwMDAwKSwgKDEu
MDAsIzAwMDBGRildXSBbYm91bmRpbmcgYm94IG1vZGU9MF0gW3N0YXJ0PSgwLDApXSBbZW5kPSgw
LDQzMCldfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDQzMC4wMCBMMC4w
MCw0MzAuMDAgWiJdCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsMjc1KSBzaXpl
IDE3N3gxNCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQg
eyN0ZXh0fSBhdCAoMCwtMTEpIHNpemUgMTc3eDE0CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAxIGF0ICgxMC4wMCwyNzUuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDI4IHdpZHRoIDE3
Ny4wMDogImdyYWRpZW50VW5pdHM9dXNlclNwYWNlT25Vc2UiCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMTItYi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEu
MS9wc2VydmVycy1ncmFkLTEyLWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0xMi1i
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA0ODB4MzYwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiBsYXll
ciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMC41MCww
LjUwKSBzaXplIDQ3OXgzNTkKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMC4wMCwx
MSkgc2l6ZSA0NjB4MjgyCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTAsMTEpIHNp
emUgNDYweDI4MgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDI1KSBzaXplIDE5
NHgxNyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMTQpIHNpemUgMTk0eDE3CiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgxMC4wMCwyNS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMzEgd2lkdGggMTk0LjAw
OiAiVGVzdGluZyBncmFkaWVudFVuaXRzIGF0dHJpYnV0ZSIKQEAgLTMyLDcgKzMyLDcgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIg
e3JhZGlhbEdyYWRpZW50fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJTVkdHcmFk
aWVudFN0b3Age3N0b3B9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclNWR0dyYWRp
ZW50U3RvcCB7c3RvcH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgxMC4wMCwyMTAuMDApIHNpemUgNDYweDUwIFt0cmFuc2Zvcm09e209KCgtMC4wMCwtMS4w
MCkoMS4wMCwtMC4wMCkpIHQ9KDEwLjAwLDI2MC4wMCl9XSBbZmlsbD17W3R5cGU9UkFESUFMLUdS
QURJRU5UXSBbc3RvcHM9WygwLjAwLCNGRjAwMDApLCAoMS4wMCwjMDAwMEZGKV1dIFtib3VuZGlu
ZyBib3ggbW9kZT0wXSBbY2VudGVyPSgyNSwyMTUpXSBbZm9jYWw9KDI1LDIxNSldIFtyYWRpdXM9
MjUuMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDQ2MC4wMCBMMC4w
MCw0NjAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMTAsMjEwKSBzaXplIDQ2
MHg1MCBbdHJhbnNmb3JtPXttPSgoMC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oMTAuMDAsMjYw
LjAwKX1dIFtmaWxsPXtbdHlwZT1SQURJQUwtR1JBRElFTlRdIFtzdG9wcz1bKDAuMDAsI0ZGMDAw
MCksICgxLjAwLCMwMDAwRkYpXV0gW2JvdW5kaW5nIGJveCBtb2RlPTBdIFtjZW50ZXI9KDI1LDIx
NSldIFtmb2NhbD0oMjUsMjE1KV0gW3JhZGl1cz0yNS4wMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBM
NTAuMDAsMC4wMCBMNTAuMDAsNDYwLjAwIEwwLjAwLDQ2MC4wMCBaIl0KICAgICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICgxMCwyNzUpIHNpemUgMTc3eDE0IGNvbnRhaW5zIDEgY2h1bmsocykK
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xMSkgc2l6ZSAxNzd4
MTQKICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDEwLjAwLDI3NS4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgMjggd2lkdGggMTc3LjAwOiAiZ3JhZGllbnRVbml0cz11c2VyU3Bh
Y2VPblVzZSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEv
cHNlcnZlcnMtZ3JhZC0xNy1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMTctYi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTE3LWItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xMiw3ICsxMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDkuODUsODEuODUpIHNpemUgMTQ0LjMweDE0NC4zMCBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLC02MC4wMCBM
NDgwLjAwLC02MC4wMCBMNDgwLjAwLDQyMC4wMCBMMC4wMCw0MjAuMDAgWiJdCiAgICAgICAgIFJl
bmRlclBhdGgge2xpbmV9IGF0ICg1MCwxNTEpIHNpemUgMTQ0eDYgW3N0cm9rZT17W3R5cGU9TElO
RUFSLUdSQURJRU5UXSBbc3RvcHM9WygwLjAwLCMwMDAwMDApLCAoMS4wMCwjRkZGRkZGKV1dIFtz
dGFydD0oMCwwKV0gW2VuZD0oMSwwKV0gW3N0cm9rZSB3aWR0aD0yMC4wMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC4wMCwxODAuMDAgTDQ4MC4wMCwx
ODAuMDAiXQogICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjguOTcsMTAwLjk3KSBzaXpl
IDEwNi4wN3gxMDYuMDcgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9
KDE5Ny41NywtMTE2Ljk4KX1dIFtzdHJva2U9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0b3Bz
PVsoMC4wMCwjMDAwMDAwKSwgKDEuMDAsI0ZGRkZGRildXSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEs
MCldIFtzdHJva2Ugd2lkdGg9MjAuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTAuMDAsMTgwLjAwIEw0ODAuMDAsMTgwLjAwIl0KLSAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDExOS4wMCw4Mikgc2l6ZSA2eDE0NCBbdHJhbnNmb3JtPXttPSgo
LTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSg0MjAuMDAsLTYwLjAwKX1dIFtzdHJva2U9e1t0
eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0b3BzPVsoMC4wMCwjMDAwMDAwKSwgKDEuMDAsI0ZGRkZG
RildXSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMCldIFtzdHJva2Ugd2lkdGg9MjAuMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTgwLjAwIEw0
ODAuMDAsMTgwLjAwIl0KKyAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDExOSw4Mikgc2l6
ZSA2eDE0NCBbdHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oNDIwLjAw
LC02MC4wMCl9XSBbc3Ryb2tlPXtbdHlwZT1MSU5FQVItR1JBRElFTlRdIFtzdG9wcz1bKDAuMDAs
IzAwMDAwMCksICgxLjAwLCNGRkZGRkYpXV0gW3N0YXJ0PSgwLDApXSBbZW5kPSgxLDApXSBbc3Ry
b2tlIHdpZHRoPTIwLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0g
W2RhdGE9Ik0wLjAwLDE4MC4wMCBMNDgwLjAwLDE4MC4wMCJdCiAgICAgICAgIFJlbmRlclBhdGgg
e2xpbmV9IGF0ICg2OC44OCwxMDAuODgpIHNpemUgMTA2LjI0eDEwNi4yNCBbc3Ryb2tlPXtbdHlw
ZT1MSU5FQVItR1JBRElFTlRdIFtzdG9wcz1bKDAuMDAsIzAwMDAwMCksICgxLjAwLCNGRkZGRkYp
XV0gW3N0YXJ0PSgwLDApXSBbZW5kPSgxLDApXSBbc3Ryb2tlIHdpZHRoPTIwLjAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik00MTAuMDAsMTAuMDAgTDcw
LjAwLDM1MC4wMCJdCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoODQsMjUwKSBzaXpl
IDcyeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOApAQCAtMjEsNyArMjEsNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDQ4MHgzNjAKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI3OS44NSw4
MS44NSkgc2l6ZSAxNDQuMzB4MTQ0LjMwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTAuMDAsLTYwLjAwIEw0ODAuMDAsLTYwLjAwIEw0ODAuMDAsNDIwLjAw
IEwwLjAwLDQyMC4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI4MCwxNTEp
IHNpemUgMTQ0eDYgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTAuMDAsMTcwLjAwIEw0ODAuMDAsMTcwLjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4wMCBa
Il0KICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI5OC45NywxMDAuOTcpIHNpemUgMTA2
LjA3eDEwNi4wNyBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTk3
LjU3LC0xMTYuOTgpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0
YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAsMTcwLjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4w
MCBaIl0KLSAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM0OSw4Mikgc2l6ZSA2eDE0NCBb
dHJhbnNmb3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSg0MjAuMDAsLTYwLjAw
KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjAwLDE3
MC4wMCBMNDgwLjAwLDE3MC4wMCBMNDgwLjAwLDE5MC4wMCBMMC4wMCwxOTAuMDAgWiJdCisgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDksODIpIHNpemUgNngxNDQgW3RyYW5zZm9ybT17
bT0oKDAuMDAsMS4wMCkoLTEuMDAsMC4wMCkpIHQ9KDQyMC4wMCwtNjAuMDApfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0ODAuMDAs
MTcwLjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4wMCBaIl0KICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDI5OC45NywxMDAuOTcpIHNpemUgMTA2LjA3eDEwNi4wNyBbdHJhbnNmb3Jt
PXttPSgoMC43MSwtMC43MSkoMC43MSwwLjcxKSkgdD0oLTU2Ljk4LDIyMi40Myl9XSBbZmlsbD17
W3R5cGU9TElORUFSLUdSQURJRU5UXSBbc3RvcHM9WygwLjAwLCMwMDAwMDApLCAoMS4wMCwjRkZG
RkZGKV1dIFtzdGFydD0oMCwwKV0gW2VuZD0oMSwwKV19XSBbZGF0YT0iTTAuMDAsMTcwLjAwIEw0
ODAuMDAsMTcwLjAwIEw0ODAuMDAsMTkwLjAwIEwwLjAwLDE5MC4wMCBaIl0KICAgICAgIFJlbmRl
clNWR1RleHQge3RleHR9IGF0ICgzMTQsMjUwKSBzaXplIDcyeDE4IGNvbnRhaW5zIDEgY2h1bmso
cykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3
MngxOApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9zdHJ1
Y3QtZnJhZy0wMi10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xL3N0cnVjdC1mcmFnLTAyLXQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0x
LjEvc3RydWN0LWZyYWctMDItdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCAr
NCw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICBSZW5kZXJTVkdSb290IHtzdmd9
IGF0ICgtMi40MCwtMS44MCkgc2l6ZSA0ODQuODB4MzYzLjYwCiAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgMjQweDE4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jREMxNDNDXX1d
IFtkYXRhPSJNMTAwLjAwLDEwMC4wMCBMMTUwLjAwLDEwMC4wMCBMMTUwLjAwLDE1MC4wMCBMMTAw
LjAwLDE1MC4wMCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNDAsMTgwLjAwKSBz
aXplIDI0MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0RDMTQzQ119XSBbZGF0YT0i
TTE1MC4wMCwxNTAuMDAgTDIwMC4wMCwxNTAuMDAgTDIwMC4wMCwyMDAuMDAgTDE1MC4wMCwyMDAu
MDAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgwLDE4MC4wMCkgc2l6ZSAyNDB4
MTgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkQ3MDBdfV0gW2RhdGE9Ik0xNTAuMDAs
MTc1LjAwIEwxNDkuOTUsMTc2LjU3IEwxNDkuODAsMTc4LjEzIEwxNDkuNTYsMTc5LjY4IEwxNDku
MjEsMTgxLjIyIEwxNDguNzgsMTgyLjczIEwxNDguMjQsMTg0LjIwIEwxNDcuNjIsMTg1LjY0IEwx
NDYuOTEsMTg3LjA0IEwxNDYuMTEsMTg4LjQwIEwxNDUuMjMsMTg5LjY5IEwxNDQuMjYsMTkwLjk0
IEwxNDMuMjIsMTkyLjExIEwxNDIuMTEsMTkzLjIyIEwxNDAuOTQsMTk0LjI2IEwxMzkuNjksMTk1
LjIzIEwxMzguNDAsMTk2LjExIEwxMzcuMDQsMTk2LjkxIEwxMzUuNjQsMTk3LjYyIEwxMzQuMjAs
MTk4LjI0IEwxMzIuNzMsMTk4Ljc4IEwxMzEuMjIsMTk5LjIxIEwxMjkuNjgsMTk5LjU2IEwxMjgu
MTMsMTk5LjgwIEwxMjYuNTcsMTk5Ljk1IEwxMjUuMDAsMjAwLjAwIEwxMjMuNDMsMTk5Ljk1IEwx
MjEuODcsMTk5LjgwIEwxMjAuMzIsMTk5LjU2IEwxMTguNzgsMTk5LjIxIEwxMTcuMjcsMTk4Ljc4
IEwxMTUuODAsMTk4LjI0IEwxMTQuMzYsMTk3LjYyIEwxMTIuOTYsMTk2LjkxIEwxMTEuNjAsMTk2
LjExIEwxMTAuMzEsMTk1LjIzIEwxMDkuMDYsMTk0LjI2IEwxMDcuODksMTkzLjIyIEwxMDYuNzgs
MTkyLjExIEwxMDUuNzQsMTkwLjk0IEwxMDQuNzcsMTg5LjY5IEwxMDMuODksMTg4LjQwIEwxMDMu
MDksMTg3LjA0IEwxMDIuMzgsMTg1LjY0IEwxMDEuNzYsMTg0LjIwIEwxMDEuMjIsMTgyLjczIEwx
MDAuNzksMTgxLjIyIEwxMDAuNDQsMTc5LjY4IEwxMDAuMjAsMTc4LjEzIEwxMDAuMDUsMTc2LjU3
IEwxMDAuMDAsMTc1LjAwIEwxMDAuMDUsMTczLjQzIEwxMDAuMjAsMTcxLjg3IEwxMDAuNDQsMTcw
LjMyIEwxMDAuNzksMTY4Ljc4IEwxMDEuMjIsMTY3LjI3IEwxMDEuNzYsMTY1LjgwIEwxMDIuMzgs
MTY0LjM2IEwxMDMuMDksMTYyLjk2IEwxMDMuODksMTYxLjYwIEwxMDQuNzcsMTYwLjMxIEwxMDUu
NzQsMTU5LjA2IEwxMDYuNzgsMTU3Ljg5IEwxMDcuODksMTU2Ljc4IEwxMDkuMDYsMTU1Ljc0IEwx
MTAuMzEsMTU0Ljc3IEwxMTEuNjAsMTUzLjg5IEwxMTIuOTYsMTUzLjA5IEwxMTQuMzYsMTUyLjM4
IEwxMTUuODAsMTUxLjc2IEwxMTcuMjcsMTUxLjIyIEwxMTguNzgsMTUwLjc5IEwxMjAuMzIsMTUw
LjQ0IEwxMjEuODcsMTUwLjIwIEwxMjMuNDMsMTUwLjA1IEwxMjUuMDAsMTUwLjAwIEwxMjYuNTcs
MTUwLjA1IEwxMjguMTMsMTUwLjIwIEwxMjkuNjgsMTUwLjQ0IEwxMzEuMjIsMTUwLjc5IEwxMzIu
NzMsMTUxLjIyIEwxMzQuMjAsMTUxLjc2IEwxMzUuNjQsMTUyLjM4IEwxMzcuMDQsMTUzLjA5IEwx
MzguNDAsMTUzLjg5IEwxMzkuNjksMTU0Ljc3IEwxNDAuOTQsMTU1Ljc0IEwxNDIuMTEsMTU2Ljc4
IEwxNDMuMjIsMTU3Ljg5IEwxNDQuMjYsMTU5LjA2IEwxNDUuMjMsMTYwLjMxIEwxNDYuMTEsMTYx
LjYwIEwxNDYuOTEsMTYyLjk2IEwxNDcuNjIsMTY0LjM2IEwxNDguMjQsMTY1LjgwIEwxNDguNzgs
MTY3LjI3IEwxNDkuMjEsMTY4Ljc4IEwxNDkuNTYsMTcwLjMyIEwxNDkuODAsMTcxLjg3IEwxNDku
OTUsMTczLjQzIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDI0MCwxODApIHNpemUg
MjQweDE4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jREMxNDNDXX1dIFtkYXRhPSJNMTUw
LjAwLDE1MC4wMCBMMjAwLjAwLDE1MC4wMCBMMjAwLjAwLDIwMC4wMCBMMTUwLjAwLDIwMC4wMCBa
Il0KKyAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDAsMTgwKSBzaXplIDI0MHgxODAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRDcwMF19XSBbZGF0YT0iTTE1MC4wMCwxNzUuMDAg
TDE0OS45NSwxNzYuNTcgTDE0OS44MCwxNzguMTMgTDE0OS41NiwxNzkuNjggTDE0OS4yMSwxODEu
MjIgTDE0OC43OCwxODIuNzMgTDE0OC4yNCwxODQuMjAgTDE0Ny42MiwxODUuNjQgTDE0Ni45MSwx
ODcuMDQgTDE0Ni4xMSwxODguNDAgTDE0NS4yMywxODkuNjkgTDE0NC4yNiwxOTAuOTQgTDE0My4y
MiwxOTIuMTEgTDE0Mi4xMSwxOTMuMjIgTDE0MC45NCwxOTQuMjYgTDEzOS42OSwxOTUuMjMgTDEz
OC40MCwxOTYuMTEgTDEzNy4wNCwxOTYuOTEgTDEzNS42NCwxOTcuNjIgTDEzNC4yMCwxOTguMjQg
TDEzMi43MywxOTguNzggTDEzMS4yMiwxOTkuMjEgTDEyOS42OCwxOTkuNTYgTDEyOC4xMywxOTku
ODAgTDEyNi41NywxOTkuOTUgTDEyNS4wMCwyMDAuMDAgTDEyMy40MywxOTkuOTUgTDEyMS44Nywx
OTkuODAgTDEyMC4zMiwxOTkuNTYgTDExOC43OCwxOTkuMjEgTDExNy4yNywxOTguNzggTDExNS44
MCwxOTguMjQgTDExNC4zNiwxOTcuNjIgTDExMi45NiwxOTYuOTEgTDExMS42MCwxOTYuMTEgTDEx
MC4zMSwxOTUuMjMgTDEwOS4wNiwxOTQuMjYgTDEwNy44OSwxOTMuMjIgTDEwNi43OCwxOTIuMTEg
TDEwNS43NCwxOTAuOTQgTDEwNC43NywxODkuNjkgTDEwMy44OSwxODguNDAgTDEwMy4wOSwxODcu
MDQgTDEwMi4zOCwxODUuNjQgTDEwMS43NiwxODQuMjAgTDEwMS4yMiwxODIuNzMgTDEwMC43OSwx
ODEuMjIgTDEwMC40NCwxNzkuNjggTDEwMC4yMCwxNzguMTMgTDEwMC4wNSwxNzYuNTcgTDEwMC4w
MCwxNzUuMDAgTDEwMC4wNSwxNzMuNDMgTDEwMC4yMCwxNzEuODcgTDEwMC40NCwxNzAuMzIgTDEw
MC43OSwxNjguNzggTDEwMS4yMiwxNjcuMjcgTDEwMS43NiwxNjUuODAgTDEwMi4zOCwxNjQuMzYg
TDEwMy4wOSwxNjIuOTYgTDEwMy44OSwxNjEuNjAgTDEwNC43NywxNjAuMzEgTDEwNS43NCwxNTku
MDYgTDEwNi43OCwxNTcuODkgTDEwNy44OSwxNTYuNzggTDEwOS4wNiwxNTUuNzQgTDExMC4zMSwx
NTQuNzcgTDExMS42MCwxNTMuODkgTDExMi45NiwxNTMuMDkgTDExNC4zNiwxNTIuMzggTDExNS44
MCwxNTEuNzYgTDExNy4yNywxNTEuMjIgTDExOC43OCwxNTAuNzkgTDEyMC4zMiwxNTAuNDQgTDEy
MS44NywxNTAuMjAgTDEyMy40MywxNTAuMDUgTDEyNS4wMCwxNTAuMDAgTDEyNi41NywxNTAuMDUg
TDEyOC4xMywxNTAuMjAgTDEyOS42OCwxNTAuNDQgTDEzMS4yMiwxNTAuNzkgTDEzMi43MywxNTEu
MjIgTDEzNC4yMCwxNTEuNzYgTDEzNS42NCwxNTIuMzggTDEzNy4wNCwxNTMuMDkgTDEzOC40MCwx
NTMuODkgTDEzOS42OSwxNTQuNzcgTDE0MC45NCwxNTUuNzQgTDE0Mi4xMSwxNTYuNzggTDE0My4y
MiwxNTcuODkgTDE0NC4yNiwxNTkuMDYgTDE0NS4yMywxNjAuMzEgTDE0Ni4xMSwxNjEuNjAgTDE0
Ni45MSwxNjIuOTYgTDE0Ny42MiwxNjQuMzYgTDE0OC4yNCwxNjUuODAgTDE0OC43OCwxNjcuMjcg
TDE0OS4yMSwxNjguNzggTDE0OS41NiwxNzAuMzIgTDE0OS44MCwxNzEuODcgTDE0OS45NSwxNzMu
NDMgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNDAsMCkgc2l6ZSAyNDB4MTgw
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkQ3MDBdfV0gW2RhdGE9Ik0yMDAuMDAsMTI1
LjAwIEwxOTkuOTUsMTI2LjU3IEwxOTkuODAsMTI4LjEzIEwxOTkuNTYsMTI5LjY4IEwxOTkuMjEs
MTMxLjIyIEwxOTguNzgsMTMyLjczIEwxOTguMjQsMTM0LjIwIEwxOTcuNjIsMTM1LjY0IEwxOTYu
OTEsMTM3LjA0IEwxOTYuMTEsMTM4LjQwIEwxOTUuMjMsMTM5LjY5IEwxOTQuMjYsMTQwLjk0IEwx
OTMuMjIsMTQyLjExIEwxOTIuMTEsMTQzLjIyIEwxOTAuOTQsMTQ0LjI2IEwxODkuNjksMTQ1LjIz
IEwxODguNDAsMTQ2LjExIEwxODcuMDQsMTQ2LjkxIEwxODUuNjQsMTQ3LjYyIEwxODQuMjAsMTQ4
LjI0IEwxODIuNzMsMTQ4Ljc4IEwxODEuMjIsMTQ5LjIxIEwxNzkuNjgsMTQ5LjU2IEwxNzguMTMs
MTQ5LjgwIEwxNzYuNTcsMTQ5Ljk1IEwxNzUuMDAsMTUwLjAwIEwxNzMuNDMsMTQ5Ljk1IEwxNzEu
ODcsMTQ5LjgwIEwxNzAuMzIsMTQ5LjU2IEwxNjguNzgsMTQ5LjIxIEwxNjcuMjcsMTQ4Ljc4IEwx
NjUuODAsMTQ4LjI0IEwxNjQuMzYsMTQ3LjYyIEwxNjIuOTYsMTQ2LjkxIEwxNjEuNjAsMTQ2LjEx
IEwxNjAuMzEsMTQ1LjIzIEwxNTkuMDYsMTQ0LjI2IEwxNTcuODksMTQzLjIyIEwxNTYuNzgsMTQy
LjExIEwxNTUuNzQsMTQwLjk0IEwxNTQuNzcsMTM5LjY5IEwxNTMuODksMTM4LjQwIEwxNTMuMDks
MTM3LjA0IEwxNTIuMzgsMTM1LjY0IEwxNTEuNzYsMTM0LjIwIEwxNTEuMjIsMTMyLjczIEwxNTAu
NzksMTMxLjIyIEwxNTAuNDQsMTI5LjY4IEwxNTAuMjAsMTI4LjEzIEwxNTAuMDUsMTI2LjU3IEwx
NTAuMDAsMTI1LjAwIEwxNTAuMDUsMTIzLjQzIEwxNTAuMjAsMTIxLjg3IEwxNTAuNDQsMTIwLjMy
IEwxNTAuNzksMTE4Ljc4IEwxNTEuMjIsMTE3LjI3IEwxNTEuNzYsMTE1LjgwIEwxNTIuMzgsMTE0
LjM2IEwxNTMuMDksMTEyLjk2IEwxNTMuODksMTExLjYwIEwxNTQuNzcsMTEwLjMxIEwxNTUuNzQs
MTA5LjA2IEwxNTYuNzgsMTA3Ljg5IEwxNTcuODksMTA2Ljc4IEwxNTkuMDYsMTA1Ljc0IEwxNjAu
MzEsMTA0Ljc3IEwxNjEuNjAsMTAzLjg5IEwxNjIuOTYsMTAzLjA5IEwxNjQuMzYsMTAyLjM4IEwx
NjUuODAsMTAxLjc2IEwxNjcuMjcsMTAxLjIyIEwxNjguNzgsMTAwLjc5IEwxNzAuMzIsMTAwLjQ0
IEwxNzEuODcsMTAwLjIwIEwxNzMuNDMsMTAwLjA1IEwxNzUuMDAsMTAwLjAwIEwxNzYuNTcsMTAw
LjA1IEwxNzguMTMsMTAwLjIwIEwxNzkuNjgsMTAwLjQ0IEwxODEuMjIsMTAwLjc5IEwxODIuNzMs
MTAxLjIyIEwxODQuMjAsMTAxLjc2IEwxODUuNjQsMTAyLjM4IEwxODcuMDQsMTAzLjA5IEwxODgu
NDAsMTAzLjg5IEwxODkuNjksMTA0Ljc3IEwxOTAuOTQsMTA1Ljc0IEwxOTIuMTEsMTA2Ljc4IEwx
OTMuMjIsMTA3Ljg5IEwxOTQuMjYsMTA5LjA2IEwxOTUuMjMsMTEwLjMxIEwxOTYuMTEsMTExLjYw
IEwxOTYuOTEsMTEyLjk2IEwxOTcuNjIsMTE0LjM2IEwxOTguMjQsMTE1LjgwIEwxOTguNzgsMTE3
LjI3IEwxOTkuMjEsMTE4Ljc4IEwxOTkuNTYsMTIwLjMyIEwxOTkuODAsMTIxLjg3IEwxOTkuOTUs
MTIzLjQzIFoiXQogICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMDUsMTk1KSBzaXplIDY4
eDEzIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0
fSBhdCAoMCwtMTApIHNpemUgNjh4MTMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEvc3RydWN0LWZyYWctMDMtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS9zdHJ1Y3QtZnJhZy0w
My10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL1czQy1TVkctMS4xL3N0cnVjdC1mcmFnLTAzLXQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDExICsyLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAog
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNDgweDM2MAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0
ODB4MzYwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDU4LjIwLC0xLjgwKSBzaXplIDM2My42
MHgzNjMuNjAKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MC4wMCwwKSBzaXplIDM2
MHgzNjAKLSAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MC4wMCwwKSBzaXplIDE4MHgxODAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0RDMTQzQ119XSBbZGF0YT0iTTEwMC4wMCwxMDAu
MDAgTDE1MC4wMCwxMDAuMDAgTDE1MC4wMCwxNTAuMDAgTDEwMC4wMCwxNTAuMDAgWiJdCi0gICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjQwLjAwLDE4MC4wMCkgc2l6ZSAxODB4MTgwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNEQzE0M0NdfV0gW2RhdGE9Ik0xNTAuMDAsMTUwLjAwIEwy
MDAuMDAsMTUwLjAwIEwyMDAuMDAsMjAwLjAwIEwxNTAuMDAsMjAwLjAwIFoiXQotICAgICAgUmVu
ZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNjAuMDAsMTgwLjAwKSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGRDcwMF19XSBbZGF0YT0iTTE1MC4wMCwxNzUuMDAgTDE0OS45
NSwxNzYuNTcgTDE0OS44MCwxNzguMTMgTDE0OS41NiwxNzkuNjggTDE0OS4yMSwxODEuMjIgTDE0
OC43OCwxODIuNzMgTDE0OC4yNCwxODQuMjAgTDE0Ny42MiwxODUuNjQgTDE0Ni45MSwxODcuMDQg
TDE0Ni4xMSwxODguNDAgTDE0NS4yMywxODkuNjkgTDE0NC4yNiwxOTAuOTQgTDE0My4yMiwxOTIu
MTEgTDE0Mi4xMSwxOTMuMjIgTDE0MC45NCwxOTQuMjYgTDEzOS42OSwxOTUuMjMgTDEzOC40MCwx
OTYuMTEgTDEzNy4wNCwxOTYuOTEgTDEzNS42NCwxOTcuNjIgTDEzNC4yMCwxOTguMjQgTDEzMi43
MywxOTguNzggTDEzMS4yMiwxOTkuMjEgTDEyOS42OCwxOTkuNTYgTDEyOC4xMywxOTkuODAgTDEy
Ni41NywxOTkuOTUgTDEyNS4wMCwyMDAuMDAgTDEyMy40MywxOTkuOTUgTDEyMS44NywxOTkuODAg
TDEyMC4zMiwxOTkuNTYgTDExOC43OCwxOTkuMjEgTDExNy4yNywxOTguNzggTDExNS44MCwxOTgu
MjQgTDExNC4zNiwxOTcuNjIgTDExMi45NiwxOTYuOTEgTDExMS42MCwxOTYuMTEgTDExMC4zMSwx
OTUuMjMgTDEwOS4wNiwxOTQuMjYgTDEwNy44OSwxOTMuMjIgTDEwNi43OCwxOTIuMTEgTDEwNS43
NCwxOTAuOTQgTDEwNC43NywxODkuNjkgTDEwMy44OSwxODguNDAgTDEwMy4wOSwxODcuMDQgTDEw
Mi4zOCwxODUuNjQgTDEwMS43NiwxODQuMjAgTDEwMS4yMiwxODIuNzMgTDEwMC43OSwxODEuMjIg
TDEwMC40NCwxNzkuNjggTDEwMC4yMCwxNzguMTMgTDEwMC4wNSwxNzYuNTcgTDEwMC4wMCwxNzUu
MDAgTDEwMC4wNSwxNzMuNDMgTDEwMC4yMCwxNzEuODcgTDEwMC40NCwxNzAuMzIgTDEwMC43OSwx
NjguNzggTDEwMS4yMiwxNjcuMjcgTDEwMS43NiwxNjUuODAgTDEwMi4zOCwxNjQuMzYgTDEwMy4w
OSwxNjIuOTYgTDEwMy44OSwxNjEuNjAgTDEwNC43NywxNjAuMzEgTDEwNS43NCwxNTkuMDYgTDEw
Ni43OCwxNTcuODkgTDEwNy44OSwxNTYuNzggTDEwOS4wNiwxNTUuNzQgTDExMC4zMSwxNTQuNzcg
TDExMS42MCwxNTMuODkgTDExMi45NiwxNTMuMDkgTDExNC4zNiwxNTIuMzggTDExNS44MCwxNTEu
NzYgTDExNy4yNywxNTEuMjIgTDExOC43OCwxNTAuNzkgTDEyMC4zMiwxNTAuNDQgTDEyMS44Nywx
NTAuMjAgTDEyMy40MywxNTAuMDUgTDEyNS4wMCwxNTAuMDAgTDEyNi41NywxNTAuMDUgTDEyOC4x
MywxNTAuMjAgTDEyOS42OCwxNTAuNDQgTDEzMS4yMiwxNTAuNzkgTDEzMi43MywxNTEuMjIgTDEz
NC4yMCwxNTEuNzYgTDEzNS42NCwxNTIuMzggTDEzNy4wNCwxNTMuMDkgTDEzOC40MCwxNTMuODkg
TDEzOS42OSwxNTQuNzcgTDE0MC45NCwxNTUuNzQgTDE0Mi4xMSwxNTYuNzggTDE0My4yMiwxNTcu
ODkgTDE0NC4yNiwxNTkuMDYgTDE0NS4yMywxNjAuMzEgTDE0Ni4xMSwxNjEuNjAgTDE0Ni45MSwx
NjIuOTYgTDE0Ny42MiwxNjQuMzYgTDE0OC4yNCwxNjUuODAgTDE0OC43OCwxNjcuMjcgTDE0OS4y
MSwxNjguNzggTDE0OS41NiwxNzAuMzIgTDE0OS44MCwxNzEuODcgTDE0OS45NSwxNzMuNDMgWiJd
Ci0gICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNDAuMDAsMCkgc2l6ZSAxODB4MTgwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkQ3MDBdfV0gW2RhdGE9Ik0yMDAuMDAsMTI1LjAw
IEwxOTkuOTUsMTI2LjU3IEwxOTkuODAsMTI4LjEzIEwxOTkuNTYsMTI5LjY4IEwxOTkuMjEsMTMx
LjIyIEwxOTguNzgsMTMyLjczIEwxOTguMjQsMTM0LjIwIEwxOTcuNjIsMTM1LjY0IEwxOTYuOTEs
MTM3LjA0IEwxOTYuMTEsMTM4LjQwIEwxOTUuMjMsMTM5LjY5IEwxOTQuMjYsMTQwLjk0IEwxOTMu
MjIsMTQyLjExIEwxOTIuMTEsMTQzLjIyIEwxOTAuOTQsMTQ0LjI2IEwxODkuNjksMTQ1LjIzIEwx
ODguNDAsMTQ2LjExIEwxODcuMDQsMTQ2LjkxIEwxODUuNjQsMTQ3LjYyIEwxODQuMjAsMTQ4LjI0
IEwxODIuNzMsMTQ4Ljc4IEwxODEuMjIsMTQ5LjIxIEwxNzkuNjgsMTQ5LjU2IEwxNzguMTMsMTQ5
LjgwIEwxNzYuNTcsMTQ5Ljk1IEwxNzUuMDAsMTUwLjAwIEwxNzMuNDMsMTQ5Ljk1IEwxNzEuODcs
MTQ5LjgwIEwxNzAuMzIsMTQ5LjU2IEwxNjguNzgsMTQ5LjIxIEwxNjcuMjcsMTQ4Ljc4IEwxNjUu
ODAsMTQ4LjI0IEwxNjQuMzYsMTQ3LjYyIEwxNjIuOTYsMTQ2LjkxIEwxNjEuNjAsMTQ2LjExIEwx
NjAuMzEsMTQ1LjIzIEwxNTkuMDYsMTQ0LjI2IEwxNTcuODksMTQzLjIyIEwxNTYuNzgsMTQyLjEx
IEwxNTUuNzQsMTQwLjk0IEwxNTQuNzcsMTM5LjY5IEwxNTMuODksMTM4LjQwIEwxNTMuMDksMTM3
LjA0IEwxNTIuMzgsMTM1LjY0IEwxNTEuNzYsMTM0LjIwIEwxNTEuMjIsMTMyLjczIEwxNTAuNzks
MTMxLjIyIEwxNTAuNDQsMTI5LjY4IEwxNTAuMjAsMTI4LjEzIEwxNTAuMDUsMTI2LjU3IEwxNTAu
MDAsMTI1LjAwIEwxNTAuMDUsMTIzLjQzIEwxNTAuMjAsMTIxLjg3IEwxNTAuNDQsMTIwLjMyIEwx
NTAuNzksMTE4Ljc4IEwxNTEuMjIsMTE3LjI3IEwxNTEuNzYsMTE1LjgwIEwxNTIuMzgsMTE0LjM2
IEwxNTMuMDksMTEyLjk2IEwxNTMuODksMTExLjYwIEwxNTQuNzcsMTEwLjMxIEwxNTUuNzQsMTA5
LjA2IEwxNTYuNzgsMTA3Ljg5IEwxNTcuODksMTA2Ljc4IEwxNTkuMDYsMTA1Ljc0IEwxNjAuMzEs
MTA0Ljc3IEwxNjEuNjAsMTAzLjg5IEwxNjIuOTYsMTAzLjA5IEwxNjQuMzYsMTAyLjM4IEwxNjUu
ODAsMTAxLjc2IEwxNjcuMjcsMTAxLjIyIEwxNjguNzgsMTAwLjc5IEwxNzAuMzIsMTAwLjQ0IEwx
NzEuODcsMTAwLjIwIEwxNzMuNDMsMTAwLjA1IEwxNzUuMDAsMTAwLjAwIEwxNzYuNTcsMTAwLjA1
IEwxNzguMTMsMTAwLjIwIEwxNzkuNjgsMTAwLjQ0IEwxODEuMjIsMTAwLjc5IEwxODIuNzMsMTAx
LjIyIEwxODQuMjAsMTAxLjc2IEwxODUuNjQsMTAyLjM4IEwxODcuMDQsMTAzLjA5IEwxODguNDAs
MTAzLjg5IEwxODkuNjksMTA0Ljc3IEwxOTAuOTQsMTA1Ljc0IEwxOTIuMTEsMTA2Ljc4IEwxOTMu
MjIsMTA3Ljg5IEwxOTQuMjYsMTA5LjA2IEwxOTUuMjMsMTEwLjMxIEwxOTYuMTEsMTExLjYwIEwx
OTYuOTEsMTEyLjk2IEwxOTcuNjIsMTE0LjM2IEwxOTguMjQsMTE1LjgwIEwxOTguNzgsMTE3LjI3
IEwxOTkuMjEsMTE4Ljc4IEwxOTkuNTYsMTIwLjMyIEwxOTkuODAsMTIxLjg3IEwxOTkuOTUsMTIz
LjQzIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYwLDApIHNpemUgMzYweDM2
MAorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYwLDApIHNpemUgMTgweDE4MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jREMxNDNDXX1dIFtkYXRhPSJNMTAwLjAwLDEwMC4wMCBMMTUw
LjAwLDEwMC4wMCBMMTUwLjAwLDE1MC4wMCBMMTAwLjAwLDE1MC4wMCBaIl0KKyAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyNDAsMTgwKSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0RDMTQzQ119XSBbZGF0YT0iTTE1MC4wMCwxNTAuMDAgTDIwMC4wMCwxNTAuMDAg
TDIwMC4wMCwyMDAuMDAgTDE1MC4wMCwyMDAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICg2MCwxODApIHNpemUgMTgweDE4MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
RkZENzAwXX1dIFtkYXRhPSJNMTUwLjAwLDE3NS4wMCBMMTQ5Ljk1LDE3Ni41NyBMMTQ5LjgwLDE3
OC4xMyBMMTQ5LjU2LDE3OS42OCBMMTQ5LjIxLDE4MS4yMiBMMTQ4Ljc4LDE4Mi43MyBMMTQ4LjI0
LDE4NC4yMCBMMTQ3LjYyLDE4NS42NCBMMTQ2LjkxLDE4Ny4wNCBMMTQ2LjExLDE4OC40MCBMMTQ1
LjIzLDE4OS42OSBMMTQ0LjI2LDE5MC45NCBMMTQzLjIyLDE5Mi4xMSBMMTQyLjExLDE5My4yMiBM
MTQwLjk0LDE5NC4yNiBMMTM5LjY5LDE5NS4yMyBMMTM4LjQwLDE5Ni4xMSBMMTM3LjA0LDE5Ni45
MSBMMTM1LjY0LDE5Ny42MiBMMTM0LjIwLDE5OC4yNCBMMTMyLjczLDE5OC43OCBMMTMxLjIyLDE5
OS4yMSBMMTI5LjY4LDE5OS41NiBMMTI4LjEzLDE5OS44MCBMMTI2LjU3LDE5OS45NSBMMTI1LjAw
LDIwMC4wMCBMMTIzLjQzLDE5OS45NSBMMTIxLjg3LDE5OS44MCBMMTIwLjMyLDE5OS41NiBMMTE4
Ljc4LDE5OS4yMSBMMTE3LjI3LDE5OC43OCBMMTE1LjgwLDE5OC4yNCBMMTE0LjM2LDE5Ny42MiBM
MTEyLjk2LDE5Ni45MSBMMTExLjYwLDE5Ni4xMSBMMTEwLjMxLDE5NS4yMyBMMTA5LjA2LDE5NC4y
NiBMMTA3Ljg5LDE5My4yMiBMMTA2Ljc4LDE5Mi4xMSBMMTA1Ljc0LDE5MC45NCBMMTA0Ljc3LDE4
OS42OSBMMTAzLjg5LDE4OC40MCBMMTAzLjA5LDE4Ny4wNCBMMTAyLjM4LDE4NS42NCBMMTAxLjc2
LDE4NC4yMCBMMTAxLjIyLDE4Mi43MyBMMTAwLjc5LDE4MS4yMiBMMTAwLjQ0LDE3OS42OCBMMTAw
LjIwLDE3OC4xMyBMMTAwLjA1LDE3Ni41NyBMMTAwLjAwLDE3NS4wMCBMMTAwLjA1LDE3My40MyBM
MTAwLjIwLDE3MS44NyBMMTAwLjQ0LDE3MC4zMiBMMTAwLjc5LDE2OC43OCBMMTAxLjIyLDE2Ny4y
NyBMMTAxLjc2LDE2NS44MCBMMTAyLjM4LDE2NC4zNiBMMTAzLjA5LDE2Mi45NiBMMTAzLjg5LDE2
MS42MCBMMTA0Ljc3LDE2MC4zMSBMMTA1Ljc0LDE1OS4wNiBMMTA2Ljc4LDE1Ny44OSBMMTA3Ljg5
LDE1Ni43OCBMMTA5LjA2LDE1NS43NCBMMTEwLjMxLDE1NC43NyBMMTExLjYwLDE1My44OSBMMTEy
Ljk2LDE1My4wOSBMMTE0LjM2LDE1Mi4zOCBMMTE1LjgwLDE1MS43NiBMMTE3LjI3LDE1MS4yMiBM
MTE4Ljc4LDE1MC43OSBMMTIwLjMyLDE1MC40NCBMMTIxLjg3LDE1MC4yMCBMMTIzLjQzLDE1MC4w
NSBMMTI1LjAwLDE1MC4wMCBMMTI2LjU3LDE1MC4wNSBMMTI4LjEzLDE1MC4yMCBMMTI5LjY4LDE1
MC40NCBMMTMxLjIyLDE1MC43OSBMMTMyLjczLDE1MS4yMiBMMTM0LjIwLDE1MS43NiBMMTM1LjY0
LDE1Mi4zOCBMMTM3LjA0LDE1My4wOSBMMTM4LjQwLDE1My44OSBMMTM5LjY5LDE1NC43NyBMMTQw
Ljk0LDE1NS43NCBMMTQyLjExLDE1Ni43OCBMMTQzLjIyLDE1Ny44OSBMMTQ0LjI2LDE1OS4wNiBM
MTQ1LjIzLDE2MC4zMSBMMTQ2LjExLDE2MS42MCBMMTQ2LjkxLDE2Mi45NiBMMTQ3LjYyLDE2NC4z
NiBMMTQ4LjI0LDE2NS44MCBMMTQ4Ljc4LDE2Ny4yNyBMMTQ5LjIxLDE2OC43OCBMMTQ5LjU2LDE3
MC4zMiBMMTQ5LjgwLDE3MS44NyBMMTQ5Ljk1LDE3My40MyBaIl0KKyAgICAgIFJlbmRlclBhdGgg
e2NpcmNsZX0gYXQgKDI0MCwwKSBzaXplIDE4MHgxODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGRDcwMF19XSBbZGF0YT0iTTIwMC4wMCwxMjUuMDAgTDE5OS45NSwxMjYuNTcgTDE5OS44
MCwxMjguMTMgTDE5OS41NiwxMjkuNjggTDE5OS4yMSwxMzEuMjIgTDE5OC43OCwxMzIuNzMgTDE5
OC4yNCwxMzQuMjAgTDE5Ny42MiwxMzUuNjQgTDE5Ni45MSwxMzcuMDQgTDE5Ni4xMSwxMzguNDAg
TDE5NS4yMywxMzkuNjkgTDE5NC4yNiwxNDAuOTQgTDE5My4yMiwxNDIuMTEgTDE5Mi4xMSwxNDMu
MjIgTDE5MC45NCwxNDQuMjYgTDE4OS42OSwxNDUuMjMgTDE4OC40MCwxNDYuMTEgTDE4Ny4wNCwx
NDYuOTEgTDE4NS42NCwxNDcuNjIgTDE4NC4yMCwxNDguMjQgTDE4Mi43MywxNDguNzggTDE4MS4y
MiwxNDkuMjEgTDE3OS42OCwxNDkuNTYgTDE3OC4xMywxNDkuODAgTDE3Ni41NywxNDkuOTUgTDE3
NS4wMCwxNTAuMDAgTDE3My40MywxNDkuOTUgTDE3MS44NywxNDkuODAgTDE3MC4zMiwxNDkuNTYg
TDE2OC43OCwxNDkuMjEgTDE2Ny4yNywxNDguNzggTDE2NS44MCwxNDguMjQgTDE2NC4zNiwxNDcu
NjIgTDE2Mi45NiwxNDYuOTEgTDE2MS42MCwxNDYuMTEgTDE2MC4zMSwxNDUuMjMgTDE1OS4wNiwx
NDQuMjYgTDE1Ny44OSwxNDMuMjIgTDE1Ni43OCwxNDIuMTEgTDE1NS43NCwxNDAuOTQgTDE1NC43
NywxMzkuNjkgTDE1My44OSwxMzguNDAgTDE1My4wOSwxMzcuMDQgTDE1Mi4zOCwxMzUuNjQgTDE1
MS43NiwxMzQuMjAgTDE1MS4yMiwxMzIuNzMgTDE1MC43OSwxMzEuMjIgTDE1MC40NCwxMjkuNjgg
TDE1MC4yMCwxMjguMTMgTDE1MC4wNSwxMjYuNTcgTDE1MC4wMCwxMjUuMDAgTDE1MC4wNSwxMjMu
NDMgTDE1MC4yMCwxMjEuODcgTDE1MC40NCwxMjAuMzIgTDE1MC43OSwxMTguNzggTDE1MS4yMiwx
MTcuMjcgTDE1MS43NiwxMTUuODAgTDE1Mi4zOCwxMTQuMzYgTDE1My4wOSwxMTIuOTYgTDE1My44
OSwxMTEuNjAgTDE1NC43NywxMTAuMzEgTDE1NS43NCwxMDkuMDYgTDE1Ni43OCwxMDcuODkgTDE1
Ny44OSwxMDYuNzggTDE1OS4wNiwxMDUuNzQgTDE2MC4zMSwxMDQuNzcgTDE2MS42MCwxMDMuODkg
TDE2Mi45NiwxMDMuMDkgTDE2NC4zNiwxMDIuMzggTDE2NS44MCwxMDEuNzYgTDE2Ny4yNywxMDEu
MjIgTDE2OC43OCwxMDAuNzkgTDE3MC4zMiwxMDAuNDQgTDE3MS44NywxMDAuMjAgTDE3My40Mywx
MDAuMDUgTDE3NS4wMCwxMDAuMDAgTDE3Ni41NywxMDAuMDUgTDE3OC4xMywxMDAuMjAgTDE3OS42
OCwxMDAuNDQgTDE4MS4yMiwxMDAuNzkgTDE4Mi43MywxMDEuMjIgTDE4NC4yMCwxMDEuNzYgTDE4
NS42NCwxMDIuMzggTDE4Ny4wNCwxMDMuMDkgTDE4OC40MCwxMDMuODkgTDE4OS42OSwxMDQuNzcg
TDE5MC45NCwxMDUuNzQgTDE5Mi4xMSwxMDYuNzggTDE5My4yMiwxMDcuODkgTDE5NC4yNiwxMDku
MDYgTDE5NS4yMywxMTAuMzEgTDE5Ni4xMSwxMTEuNjAgTDE5Ni45MSwxMTIuOTYgTDE5Ny42Miwx
MTQuMzYgTDE5OC4yNCwxMTUuODAgTDE5OC43OCwxMTcuMjcgTDE5OS4yMSwxMTguNzggTDE5OS41
NiwxMjAuMzIgTDE5OS44MCwxMjEuODcgTDE5OS45NSwxMjMuNDMgWiJdCiAgICAgUmVuZGVyU1ZH
VGV4dCB7dGV4dH0gYXQgKDEwNSwxOTUpIHNpemUgNjh4MTMgY29udGFpbnMgMSBjaHVuayhzKQog
ICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xMCkgc2l6ZSA2OHgxMwog
ICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDEwNS4wMCwxOTUuMDApIHN0YXJ0T2Zmc2V0
IDAgZW5kT2Zmc2V0IDE2IHdpZHRoIDY4LjAwOiAiJFJldmlzaW9uOiAxLjggJCIKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWdyb3VwLTAzLXQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
VzNDLVNWRy0xLjEvc3RydWN0LWdyb3VwLTAzLXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5
OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEvc3RydWN0LWdy
b3VwLTAzLXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDQ4MHgz
NjAKIGxheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0
ICgwLjUwLDAuNTApIHNpemUgNDc5eDM1OQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDU1LjUwLDQzLjAwKSBzaXplIDM3NXgyMTIuNTAKLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDU1LjUwLDQ0LjUwKSBzaXplIDM3NXgyMTEgW3RyYW5zZm9ybT17bT0oKC0wLjAwLC0x
LjAwKSgxLjAwLC0wLjAwKSkgdD0oNzAuMDAsMTUwLjAwKX1dCisgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNTUuNTAsNDMpIHNpemUgMzc1eDIxMi41MAorICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNTUuNTAsNDQuNTApIHNpemUgMzc1eDIxMSBbdHJhbnNmb3JtPXttPSgo
MC4wMCwtMS4wMCkoMS4wMCwwLjAwKSkgdD0oNzAuMDAsMTUwLjAwKX1dCiAgICAgICAgIFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoLTUuNTAsLTE0LjUwKSBzaXplIDExMXgyMyBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tNS4wMCwtMTQuMDAgTDEwNS4w
MCwtMTQuMDAgTDEwNS4wMCw4LjAwIEwtNS4wMCw4LjAwIFoiXQogICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgtNS41MCwtMTQuNTApIHNpemUgNTF4MjMgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNLTUuMDAsLTE0LjAwIEw0NS4wMCwtMTQuMDAg
TDQ1LjAwLDguMDAgTC01LjAwLDguMDAgWiJdCkBAIC0xNjIsNyArMTYyLDcgQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA0ODB4MzYwCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0
ICg0MDcuNTAsMjA0LjUwKSBzaXplIDIzeDUxCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICg0MDcuNTAsMjA0LjUwKSBzaXplIDIzeDUxIFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMzUyLjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICg0MDcuNTAsMjA0LjUwKSBzaXplIDIzeDUxIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS01LjAwLC0xNC4wMCBMNDUuMDAsLTE0
LjAwIEw0NS4wMCw4LjAwIEwtNS4wMCw4LjAwIFoiXQotICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoNTYuMDAsNDMuMDApIHNpemUgMzcweDEwNyBbdHJhbnNmb3JtPXttPSgoLTAuMDAs
LTEuMDApKDEuMDAsLTAuMDApKSB0PSg3MC4wMCwxNTAuMDApfV0KKyAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDU2LDQzKSBzaXplIDM3MHgxMDcgW3RyYW5zZm9ybT17bT0oKDAuMDAs
LTEuMDApKDEuMDAsMC4wMCkpIHQ9KDcwLjAwLDE1MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdU
ZXh0IHt0ZXh0fSBhdCAoMCwwKSBzaXplIDMyeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDMyeDE4CiAg
ICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDAuMDAsMC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgNSB3aWR0aCAzMi4wMDogImNvbG9yIgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3RleHRHbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9i
YXRpay90ZXh0L3RleHRHbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0
L3RleHRHbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDggKzI5LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAg
ICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAzIGF0ICg4NS45MywyNS44OSkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgNSB3aWR0aCA2NS4wMDogIiBHb29kIgogICAgICAgICAgIFJlbmRlclNWR0lu
bGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyUGF0aCB7bGlu
ZX0gYXQgKDUwLDEyOSkgc2l6ZSAzNTB4MiBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwRkZdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtkYXRhPSJNNTAuMDAsMTMwLjAwIEw0MDAuMDAsMTMwLjAwIl0KLSAgICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICg1OCwxMjUpIHNpemUgMzUxeDIwIGNvbnRhaW5zIDEgY2h1
bmsocykKLSAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgtMTEsLTE1KSBz
aXplIDM1MXgyMAorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDU4LDEyNSkgc2l6ZSAz
NTB4MjAgY29udGFpbnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsj
dGV4dH0gYXQgKC0xMCwtMTUpIHNpemUgMzUweDIwCiAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAxIGF0ICg1OC4wMCwxMjUuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEzIHdpZHRoIDE0
Mi4wMDogIkJhdGlrIGlzIEdvb2QiCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0
MCwxNDYpIHNpemUgMzMweDU1LjUyIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDMwLjAwLDE1MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0g
YXQgKDQ5LjU1LDE1OC40OCkgc2l6ZSAzMjAuNDV4NDMuMDUKQEAgLTQ4LDggKzQ4LDggQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAzIGF0ICgyMzcuMzMsMjIuNjQpIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDUgd2lkdGggNjUu
MDA6ICIgR29vZCIKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1MCwyMzkpIHNpemUgMTUw
eDIgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTIu
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTUwLjAw
LDI0MC4wMCBMMjAwLjAwLDI0MC4wMCJdCi0gICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
NTgsMjQwKSBzaXplIDE0M3gyOSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoLTksLTIzKSBzaXplIDE0M3gyOQorICAgICAgUmVuZGVy
U1ZHVGV4dCB7dGV4dH0gYXQgKDU4LDI0MCkgc2l6ZSAxNDJ4MjcgY29udGFpbnMgMSBjaHVuayhz
KQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKC04LC0yMikgc2l6ZSAx
NDJ4MjcKICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDU4LjAwLDI0MC4wMCkgc3Rh
cnRPZmZzZXQgMCBlbmRPZmZzZXQgMTMgd2lkdGggMTQyLjAwOiAiQmF0aWsgaXMgR29vZCIKICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIyNCwyMDQpIHNpemUgMTc2eDcwIFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIyMC4wMCwyMjAuMDApfV0KICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMzkuMjksMjI4LjQyKSBzaXplIDE2
MC43MXg0My4xNgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0
L3RleHRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2JhdGlrL3RleHQvdGV4dFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4
dC90ZXh0UHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTc4LDkgKzc4
LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTMpIHNpemUgMTY0eDE3CiAgICAgICAgICAgY2h1bmsgMSAo
bWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMTQzLjUwLDI4MC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgMjUgd2lkdGggMTYzLjAwOiAiVGV4dCBSZW5kZXJpbmcgUHJvcGVydGllcyIK
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0LDI5Nykgc2l6ZSAxNTJ4NDIgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDMwNS4wMCl9XQot
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1OC4wMCwyOTcpIHNpemUgODR4MzYg
W3RyYW5zZm9ybT17bT0oKC0xLjAwLC0wLjAwKSgwLjAwLC0xLjAwKSkgdD0oMC4wMCwwLjAwKX1d
Ci0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1OC4wMCwyOTcpIHNpemUg
ODR4MzYKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU4LjAwLDI5Nykg
c2l6ZSA4NHgzNgorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1OCwyOTcpIHNp
emUgODR4MzYgW3RyYW5zZm9ybT17bT0oKC0xLjAwLDAuMDApKC0wLjAwLC0xLjAwKSkgdD0oMC4w
MCwwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg1OCwyOTcp
IHNpemUgODR4MzYKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU4LDI5
Nykgc2l6ZSA4NHgzNgogICAgICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTQy
LDApIHNpemUgODR4MzYgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAgICAgICAgIFJlbmRl
clNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMjgpIHNpemUgODR4MzYKICAgICAgICAgICAg
ICAgICAgIGNodW5rIDEgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKC00Mi4wMCwwLjAw
KSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA2IHdpZHRoIDg0LjAwOiAic2FtcGxlIgpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRp
ay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9iYXRpay90ZXh0L3ZlcnRpY2FsVGV4dC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI2LDIwICsyNiwyMCBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDQ1MHg1MDAKICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDI5OS41MCw3NSkgc2l6
ZSAxeDM3NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTMwMC4wMCw3NS4wMCBMMzAwLjAw
LDQ1MC4wMCJdCiAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgzNDkuNTAsNzUpIHNpemUg
MXgzNzUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zNTAuMDAsNzUuMDAgTDM1MC4wMCw0
NTAuMDAiXQogICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMzk5LjUwLDc1KSBzaXplIDF4
Mzc1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNNDAwLjAwLDc1LjAwIEw0MDAuMDAsNDUw
LjAwIl0KLSAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMyw3OSkgc2l6ZSAxOHgxNjUg
Y29udGFpbnMgMSBjaHVuayhzKQotICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDgsMCkgc2l6ZSAxOHgxNjUKKyAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMyw3
OSkgc2l6ZSAxN3gxNjUgY29udGFpbnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKDksMCkgc2l6ZSAxN3gxNjUKICAgICAgICAgICBjaHVuayAxICh2
ZXJ0aWNhbCkgdGV4dCBydW4gMSBhdCAoMzMuMDAsNzkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zm
c2V0IDIzIGhlaWdodCAzOTEuMDA6ICJXcml0aW5nIHRvcCB0byBib3R0b21ceHs3NTNCfVx4ezUw
Q0Z9IgotICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDgzLDc5KSBzaXplIDE4eDE3NCBj
b250YWlucyAxIGNodW5rKHMpCi0gICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBh
dCAoOCwwKSBzaXplIDE4eDE3NAorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDgzLDc5
KSBzaXplIDE3eDE3NCBjb250YWlucyAxIGNodW5rKHMpCisgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoOSwwKSBzaXplIDE3eDE3NAogICAgICAgICAgIGNodW5rIDEgKHZl
cnRpY2FsKSB0ZXh0IHJ1biAxIGF0ICg4My4wMCw3OS4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZz
ZXQgMjQgaGVpZ2h0IDQwOC4wMDogIkdseXBoIE9yaWVudGF0aW9uOmF1dG9ceHs3NTNCfVx4ezUw
Q0Z9IgogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDE0Miw4OCkgc2l6ZSAxNngzNTcg
Y29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsLTEzKSBzaXplIDE2eDM1NwogICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0
IHJ1biAxIGF0ICgxNDIuNTAsODguMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIxIGhlaWdo
dCAzNTcuMDA6ICJHbHlwaCBPcmllbnRhdGlvbjowXHh7NzUzQn1ceHs1MENGfSIKLSAgICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICgxODMsNzkpIHNpemUgMTh4MTYzIGNvbnRhaW5zIDEgY2h1
bmsocykKLSAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICg4LDApIHNpemUg
MTh4MTYzCisgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTgzLDc5KSBzaXplIDE3eDE2
MyBjb250YWlucyAxIGNodW5rKHMpCisgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0
fSBhdCAoOSwwKSBzaXplIDE3eDE2MwogICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0
IHJ1biAxIGF0ICgxODMuMDAsNzkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIyIGhlaWdo
dCAzNzQuMDA6ICJHbHlwaCBPcmllbnRhdGlvbjo5MFx4ezc1M0J9XHh7NTBDRn0iCi0gICAgICBS
ZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMjUwLDg4KSBzaXplIDE2eDM5MiBjb250YWlucyAxIGNo
dW5rKHMpCi0gICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoLTgsLTE0KSBz
aXplIDE2eDM5MgorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDI1MCw4OCkgc2l6ZSAx
NngzOTEgY29udGFpbnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsj
dGV4dH0gYXQgKC04LC0xMykgc2l6ZSAxNngzOTEKICAgICAgICAgICBjaHVuayAxICh2ZXJ0aWNh
bCkgdGV4dCBydW4gMSBhdCAoMjUwLjAwLDg4LjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAy
MyBoZWlnaHQgMzkxLjAwOiAiR2x5cGggT3JpZW50YXRpb246MTgwXHh7NzUzQn1ceHs1MENGfSIK
ICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgzMTcsNzkpIHNpemUgMTd4MTcxIGNvbnRh
aW5zIDEgY2h1bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgt
MjYsMCkgc2l6ZSAxN3gxNzEKQEAgLTUyLDEzICs1MiwxMyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDQ1MHg1MDAKICAgICAgICAgICAgIGNodW5rIDEgKHZlcnRpY2FsKSB0ZXh0IHJ1biAyIGF0ICgz
MzMuMDAsMTUwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA3IGhlaWdodCAxMTkuMDA6ICI8
dHNwYW4+IgogICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDksMTIwKSBz
aXplIDE3eDUzCiAgICAgICAgICAgY2h1bmsgMSAodmVydGljYWwpIHRleHQgcnVuIDMgYXQgKDMz
My4wMCwxOTkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDggaGVpZ2h0IDEzNi4wMDogIiBl
bGVtZW50IgotICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDM4Myw3OSkgc2l6ZSAxOHgy
OTQgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDgsMCkgc2l6ZSAxOHg3MQorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDM4
Myw3OSkgc2l6ZSAxN3gyOTQgY29udGFpbnMgMSBjaHVuayhzKQorICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDksMCkgc2l6ZSAxN3g3MQogICAgICAgICAgIGNodW5rIDEg
KHZlcnRpY2FsKSB0ZXh0IHJ1biAxIGF0ICgzODMuMDAsNzkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDkgaGVpZ2h0IDE1My4wMDogIkVtYmVkZGVkICIKICAgICAgICAgUmVuZGVyU1ZHVFNw
YW4ge3RzcGFufSBhdCAoMCwwKSBzaXplIDh4MTcwCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgxMyw2Nykgc2l6ZSA4eDE3MAogICAgICAgICAgICAgY2h1bmsgMSAo
dmVydGljYWwpIHRleHQgcnVuIDIgYXQgKDM5Ni4wMCwxNTkuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDEwIGhlaWdodCAxNzAuMDA6ICJvcmllbnRhdGVkIgotICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDgsMjQxKSBzaXplIDE4eDUzCisgICAgICAgIFJlbmRlclNW
R0lubGluZVRleHQgeyN0ZXh0fSBhdCAoOSwyNDEpIHNpemUgMTd4NTMKICAgICAgICAgICBjaHVu
ayAxICh2ZXJ0aWNhbCkgdGV4dCBydW4gMyBhdCAoMzgzLjAwLDMyMC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgOCBoZWlnaHQgMTM2LjAwOiAiIGVsZW1lbnQiCiAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg1MSw0NTUpIHNpemUgMzE5LjExeDM2IFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwLjAwLDQ1MC4wMCl9XQogICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge3VzZX0gYXQgKDU0Ljg5LDQ1Ny4yOSkgc2l6ZSAzMTUuMjF4MzAuNDMKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRP
blBhdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvYmF0aWsvdGV4dC92ZXJ0
aWNhbFRleHRPblBhdGgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNyArMjc1
LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0NTB4NTAwCiAgICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgyMDIuMjcsMzcwLjUwKSBzaXplIDY3Ljk1eDM3CiAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMDIuMjcsMzcwLjUwKSBzaXplIDY3Ljk1eDM3IFt0
cmFuc2Zvcm09e209KCgwLjMwLDAuMDApKDAuMDAsMC41MCkpIHQ9KDAuMDAsMC4wMCl9XSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBb
ZGF0YT0iTTEwMC4wMCwxMDAuMDAgQzEwMC4wMCwwLjAwLDQwMC4wMCwwLjAwLDQwMC4wMCwxMDAu
MDAiXQogICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtMTMsLTE1KSBzaXplIDky
eDEyMSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0
IHsjdGV4dH0gYXQgKDEyLDApIHNpemUgMjR4OTgKKyAgICAgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMTIsMCkgc2l6ZSAyNHg5NwogICAgICAgICAgICAgICBjaHVuayAx
ICh2ZXJ0aWNhbCkgdGV4dCBydW4gMSBhdCAoLTEzLjAwLC0xNS4wMCkgc3RhcnRPZmZzZXQgMCBl
bmRPZmZzZXQgMTIgaGVpZ2h0IDI3Ni4wMDogImJlZm9yZSBwYXRoICIKICAgICAgICAgICAgIFJl
bmRlclNWR1RleHRQYXRoIHt0ZXh0UGF0aH0gYXQgKDAsMCkgc2l6ZSA2NngzOQogICAgICAgICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDM2LDE0KSBzaXplIDY2eDM5Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2NhcnRvLm5ldC9zbGlkZXItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY2FydG8u
bmV0L3NsaWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jYXJ0by5uZXQvc2xpZGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNyArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NDYuODgsNDQuOTIpIHNpemUgMTUuNjJ4ODkuODQK
ICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg1NDguODMsNDQuOTIpIHNpemUgMTEuNzJ4ODku
ODQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbb3BhY2l0eT0wLjAwXSBb
c3Ryb2tlIHdpZHRoPTE1LjAwXSBbbGluZSBjYXA9U1FVQVJFXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdIFtvcGFjaXR5PTAuMDBdfV0gW2RhdGE9Ik03MTAuMDAsNjUuMDAg
TDcxMC4wMCwxNjUuMDAiXQogICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDU1My41Miw1MC43
OCkgc2l6ZSAyLjM0eDc4LjEyIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzY5Njk2OV0g
W3N0cm9rZSB3aWR0aD0zLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik03MTAuMDAsNjUuMDAgTDcxMC4wMCwxNjUuMDAiXQotICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHt1c2V9IGF0ICg1NDYuODgsODcuODkpIHNpemUgMTUuNjJ4My45MSBbdHJhbnNm
b3JtPXttPSgoLTAuMDAsMS4wMCkoLTEuMDAsLTAuMDApKSB0PSg3MTAuMDAsMTE1LjAwKX1dCisg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDU0Ni44OCw4Ny44OSkgc2l6ZSAxNS42
MngzLjkxIFt0cmFuc2Zvcm09e209KCgwLjAwLDEuMDApKC0xLjAwLDAuMDApKSB0PSg3MTAuMDAs
MTE1LjAwKX1dCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU0Ni44OCw4Ny44
OSkgc2l6ZSAxNS42MngzLjkxCiAgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIg
e3N2Z30gYXQgKDU0Ni44OCw4Ny44OSkgc2l6ZSAxNS42MngzLjkxCiAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtsaW5lfSBhdCAoNTQ2Ljg4LDg3Ljg5KSBzaXplIDE1LjYyeDMuOTEgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jNjk2OTY5XSBbc3Ryb2tlIHdpZHRoPTUuMDBdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuMDAsLTEwLjAwIEwwLjAw
LDEwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY2FydG8ubmV0L3Rh
Ymdyb3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2NhcnRvLm5ldC90YWJncm91cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jYXJ0by5uZXQvdGFiZ3JvdXAtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMHgw
Ci0gICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTk1LjMxLDcuODEpIHNpemUgMHgwIFt0
cmFuc2Zvcm09e209KCgtMC4wMCwxLjAwKSgtMS4wMCwtMC4wMCkpIHQ9KDI1MC4wMCwxMC4wMCl9
XQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE5NS4zMSw3LjgxKSBzaXplIDB4MCBb
dHJhbnNmb3JtPXttPSgoMC4wMCwxLjAwKSgtMS4wMCwwLjAwKSkgdD0oMjUwLjAwLDEwLjAwKX1d
CiAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDB4MAogICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2N1c3RvbS9nbHlwaC1zZWxlY3Rpb24tbGFuZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2dseXBoLXNl
bGVjdGlvbi1sYW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vZ2x5cGgtc2VsZWN0aW9uLWxhbmct
YXR0cmlidXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICg1MCwzMzApIHNpemUgMjV4NTAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTQwKSBzaXplIDI1eDUwCiAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICg1MC4wMCwzMzAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0
IDEgd2lkdGggMjUuMDA6ICJhIgotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MC4w
MCwxNi42Nykgc2l6ZSA0MS42N3g1NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMTAwLjAwLDAuMDApfV0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
NTAsMTYuNjcpIHNpemUgNDEuNjd4NTUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDEwMC4wMCwwLjAwKX1dCiAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
NTAsNTApIHNpemUgMjV4NTAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTQwKSBzaXplIDI1eDUwCiAgICAgICAgICAgY2h1bmsg
MSB0ZXh0IHJ1biAxIGF0ICg1MC4wMCw1MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3
aWR0aCAyNS4wMDogImEiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3Rv
bS9pbnZhbGlkLWNzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vaW52YWxpZC1jc3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0
MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2ludmFsaWQtY3Nz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsNyArMTYsNyBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwzMykgc2l6
ZSAxNjd4MTggY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSAxNjd4MTgKICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgwLjAwLDMzLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAyNSB3aWR0aCAxNjcuMDA6
ICJubyBtYXJrZXJzIGFuZCBubyBkYXNoZXMuIgotICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg0
OS4xNyw2NS44Mykgc2l6ZSA4NXg4NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTMwLjAw
LDQwLjAwIEw4MC4wMCw0MC4wMCBMODAuMDAsOTAuMDAgTDMwLjAwLDkwLjAwIFoiXQorICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICg0OS4xNyw2NS44Mykgc2l6ZSA4NXg4NS4wMCBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbZGF0YT0iTTMwLjAwLDQwLjAwIEw4MC4wMCw0MC4wMCBMODAuMDAsOTAuMDAg
TDMwLjAwLDkwLjAwIFoiXQogICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDI2NS44Myw2NS44
Mykgc2l6ZSA2OC4zM3g2OC4zMyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW3N0b3BzPVsoMC4wMCwjMDA4MDAwKV1d
IFtzdGFydD0oMCwwKV0gW2VuZD0oMSwwKV19XSBbZGF0YT0iTTIwMC4wMCw2MC4wMCBMMTk5Ljk2
LDYxLjI2IEwxOTkuODQsNjIuNTEgTDE5OS42NSw2My43NSBMMTk5LjM3LDY0Ljk3IEwxOTkuMDIs
NjYuMTggTDE5OC42MCw2Ny4zNiBMMTk4LjEwLDY4LjUyIEwxOTcuNTMsNjkuNjQgTDE5Ni44OSw3
MC43MiBMMTk2LjE4LDcxLjc2IEwxOTUuNDEsNzIuNzUgTDE5NC41OCw3My42OSBMMTkzLjY5LDc0
LjU4IEwxOTIuNzUsNzUuNDEgTDE5MS43Niw3Ni4xOCBMMTkwLjcyLDc2Ljg5IEwxODkuNjQsNzcu
NTMgTDE4OC41Miw3OC4xMCBMMTg3LjM2LDc4LjYwIEwxODYuMTgsNzkuMDIgTDE4NC45Nyw3OS4z
NyBMMTgzLjc1LDc5LjY1IEwxODIuNTEsNzkuODQgTDE4MS4yNiw3OS45NiBMMTgwLjAwLDgwLjAw
IEwxNzguNzQsNzkuOTYgTDE3Ny40OSw3OS44NCBMMTc2LjI1LDc5LjY1IEwxNzUuMDMsNzkuMzcg
TDE3My44Miw3OS4wMiBMMTcyLjY0LDc4LjYwIEwxNzEuNDgsNzguMTAgTDE3MC4zNiw3Ny41MyBM
MTY5LjI4LDc2Ljg5IEwxNjguMjQsNzYuMTggTDE2Ny4yNSw3NS40MSBMMTY2LjMxLDc0LjU4IEwx
NjUuNDIsNzMuNjkgTDE2NC41OSw3Mi43NSBMMTYzLjgyLDcxLjc2IEwxNjMuMTEsNzAuNzIgTDE2
Mi40Nyw2OS42NCBMMTYxLjkwLDY4LjUyIEwxNjEuNDAsNjcuMzYgTDE2MC45OCw2Ni4xOCBMMTYw
LjYzLDY0Ljk3IEwxNjAuMzUsNjMuNzUgTDE2MC4xNiw2Mi41MSBMMTYwLjA0LDYxLjI2IEwxNjAu
MDAsNjAuMDAgTDE2MC4wNCw1OC43NCBMMTYwLjE2LDU3LjQ5IEwxNjAuMzUsNTYuMjUgTDE2MC42
Myw1NS4wMyBMMTYwLjk4LDUzLjgyIEwxNjEuNDAsNTIuNjQgTDE2MS45MCw1MS40OCBMMTYyLjQ3
LDUwLjM2IEwxNjMuMTEsNDkuMjggTDE2My44Miw0OC4yNCBMMTY0LjU5LDQ3LjI1IEwxNjUuNDIs
NDYuMzEgTDE2Ni4zMSw0NS40MiBMMTY3LjI1LDQ0LjU5IEwxNjguMjQsNDMuODIgTDE2OS4yOCw0
My4xMSBMMTcwLjM2LDQyLjQ3IEwxNzEuNDgsNDEuOTAgTDE3Mi42NCw0MS40MCBMMTczLjgyLDQw
Ljk4IEwxNzUuMDMsNDAuNjMgTDE3Ni4yNSw0MC4zNSBMMTc3LjQ5LDQwLjE2IEwxNzguNzQsNDAu
MDQgTDE4MC4wMCw0MC4wMCBMMTgxLjI2LDQwLjA0IEwxODIuNTEsNDAuMTYgTDE4My43NSw0MC4z
NSBMMTg0Ljk3LDQwLjYzIEwxODYuMTgsNDAuOTggTDE4Ny4zNiw0MS40MCBMMTg4LjUyLDQxLjkw
IEwxODkuNjQsNDIuNDcgTDE5MC43Miw0My4xMSBMMTkxLjc2LDQzLjgyIEwxOTIuNzUsNDQuNTkg
TDE5My42OSw0NS40MiBMMTk0LjU4LDQ2LjMxIEwxOTUuNDEsNDcuMjUgTDE5Ni4xOCw0OC4yNCBM
MTk2Ljg5LDQ5LjI4IEwxOTcuNTMsNTAuMzYgTDE5OC4xMCw1MS40OCBMMTk4LjYwLDUyLjY0IEwx
OTkuMDIsNTMuODIgTDE5OS4zNyw1NS4wMyBMMTk5LjY1LDU2LjI1IEwxOTkuODQsNTcuNDkgTDE5
OS45Niw1OC43NCBaIl0KICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwxMTApIHNpemUg
Mjc4eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMTQpIHNpemUgMjc4eDE4CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1hcmtlci1hbmQtb2JqZWN0LWNyZWF0aW9uLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9q
cy1sYXRlLW1hcmtlci1hbmQtb2JqZWN0LWNyZWF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9qcy1sYXRlLW1h
cmtlci1hbmQtb2JqZWN0LWNyZWF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
NCw3ICs0LDcgQEAgS0NhbnZhc1Jlc291cmNlIHtpZD0ibWFya2VyTWlkZGxlIiBbdHlwZQogbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBh
dCAoMjE2LjY3LDIxOC4zMykgc2l6ZSA5MHg5MAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgy
MTYuNjcsMjE4LjMzKSBzaXplIDkwLjAweDkwCiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
IHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIge21hcmtlcn0gYXQgKDAsMCkgc2l6ZSAyeDIKICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0g
YXQgKDAsMCkgc2l6ZSAyeDIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZGF0YT0iTTAuMDAsMC4wMCBMMTAuMDAsMC4wMCBMMTAuMDAsMTAuMDAgTDAuMDAsMTAuMDAgWiJd
CkBAIC0xMiw1ICsxMiw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwwKSBzaXplIDJ4MiBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNNS4wMCwwLjAwIEwxMC4wMCwxMC4wMCBMMC4wMCwxMC4w
MCBaIl0KICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHttYXJrZXJ9IGF0ICgwLDAp
IHNpemUgMngyCiAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDAsMCkgc2l6ZSAyeDIg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTEwLjAwLDUuMDAg
TDkuOTksNS4zMSBMOS45Niw1LjYzIEw5LjkxLDUuOTQgTDkuODQsNi4yNCBMOS43Niw2LjU1IEw5
LjY1LDYuODQgTDkuNTIsNy4xMyBMOS4zOCw3LjQxIEw5LjIyLDcuNjggTDkuMDUsNy45NCBMOC44
NSw4LjE5IEw4LjY0LDguNDIgTDguNDIsOC42NCBMOC4xOSw4Ljg1IEw3Ljk0LDkuMDUgTDcuNjgs
OS4yMiBMNy40MSw5LjM4IEw3LjEzLDkuNTIgTDYuODQsOS42NSBMNi41NSw5Ljc2IEw2LjI0LDku
ODQgTDUuOTQsOS45MSBMNS42Myw5Ljk2IEw1LjMxLDkuOTkgTDUuMDAsMTAuMDAgTDQuNjksOS45
OSBMNC4zNyw5Ljk2IEw0LjA2LDkuOTEgTDMuNzYsOS44NCBMMy40NSw5Ljc2IEwzLjE2LDkuNjUg
TDIuODcsOS41MiBMMi41OSw5LjM4IEwyLjMyLDkuMjIgTDIuMDYsOS4wNSBMMS44MSw4Ljg1IEwx
LjU4LDguNjQgTDEuMzYsOC40MiBMMS4xNSw4LjE5IEwwLjk1LDcuOTQgTDAuNzgsNy42OCBMMC42
Miw3LjQxIEwwLjQ4LDcuMTMgTDAuMzUsNi44NCBMMC4yNCw2LjU1IEwwLjE2LDYuMjQgTDAuMDks
NS45NCBMMC4wNCw1LjYzIEwwLjAxLDUuMzEgTDAuMDAsNS4wMCBMMC4wMSw0LjY5IEwwLjA0LDQu
MzcgTDAuMDksNC4wNiBMMC4xNiwzLjc2IEwwLjI0LDMuNDUgTDAuMzUsMy4xNiBMMC40OCwyLjg3
IEwwLjYyLDIuNTkgTDAuNzgsMi4zMiBMMC45NSwyLjA2IEwxLjE1LDEuODEgTDEuMzYsMS41OCBM
MS41OCwxLjM2IEwxLjgxLDEuMTUgTDIuMDYsMC45NSBMMi4zMiwwLjc4IEwyLjU5LDAuNjIgTDIu
ODcsMC40OCBMMy4xNiwwLjM1IEwzLjQ1LDAuMjQgTDMuNzYsMC4xNiBMNC4wNiwwLjA5IEw0LjM3
LDAuMDQgTDQuNjksMC4wMSBMNS4wMCwwLjAwIEw1LjMxLDAuMDEgTDUuNjMsMC4wNCBMNS45NCww
LjA5IEw2LjI0LDAuMTYgTDYuNTUsMC4yNCBMNi44NCwwLjM1IEw3LjEzLDAuNDggTDcuNDEsMC42
MiBMNy42OCwwLjc4IEw3Ljk0LDAuOTUgTDguMTksMS4xNSBMOC40MiwxLjM2IEw4LjY0LDEuNTgg
TDguODUsMS44MSBMOS4wNSwyLjA2IEw5LjIyLDIuMzIgTDkuMzgsMi41OSBMOS41MiwyLjg3IEw5
LjY1LDMuMTYgTDkuNzYsMy40NSBMOS44NCwzLjc2IEw5LjkxLDQuMDYgTDkuOTYsNC4zNyBMOS45
OSw0LjY5IFoiXQotICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxNi42NywyMTguMzMp
IHNpemUgOTB4OTAKLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyMTYuNjcsMjE4LjMzKSBz
aXplIDkweDkwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3
aWR0aD04LjAwXX1dIFtzdGFydCBtYXJrZXI9bWFya2VyU3RhcnRdIFttaWRkbGUgbWFya2VyPW1h
cmtlck1pZGRsZV0gW2VuZCBtYXJrZXI9bWFya2VyRW5kXSBbZGF0YT0iTTEzMC4wMCwxMzUuMDAg
TDE4MC4wMCwxMzUuMDAgTDE4MC4wMCwxODUuMDAiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIxNi42NywyMTguMzMpIHNpemUgOTAuMDB4OTAKKyAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXplIDkwLjAweDkwIFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD04LjAwXX1dIFtzdGFydCBtYXJrZXI9bWFy
a2VyU3RhcnRdIFttaWRkbGUgbWFya2VyPW1hcmtlck1pZGRsZV0gW2VuZCBtYXJrZXI9bWFya2Vy
RW5kXSBbZGF0YT0iTTEzMC4wMCwxMzUuMDAgTDE4MC4wMCwxMzUuMDAgTDE4MC4wMCwxODUuMDAi
XQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vanMtbGF0ZS1tYXJr
ZXItY3JlYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL2pzLWxhdGUtbWFya2VyLWNyZWF0aW9uLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9q
cy1sYXRlLW1hcmtlci1jcmVhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQs
NyArNCw3IEBAIEtDYW52YXNSZXNvdXJjZSB7aWQ9Im1hcmtlck1pZGRsZSIgW3R5cGUKIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDIxNi42NywyMTguMzMpIHNpemUgOTB4OTAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjE2
LjY3LDIxOC4zMykgc2l6ZSA5MC4wMHg5MAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7
ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IHttYXJrZXJ9IGF0ICgwLDApIHNpemUgMngyCiAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgMngyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Rh
dGE9Ik0wLjAwLDAuMDAgTDEwLjAwLDAuMDAgTDEwLjAwLDEwLjAwIEwwLjAwLDEwLjAwIFoiXQpA
QCAtMTIsNSArMTIsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDAsMCkgc2l6ZSAyeDIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDBGRl19XSBbZGF0YT0iTTUuMDAsMC4wMCBMMTAuMDAsMTAuMDAgTDAuMDAsMTAuMDAg
WiJdCiAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7bWFya2VyfSBhdCAoMCwwKSBz
aXplIDJ4MgogICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgwLDApIHNpemUgMngyIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0xMC4wMCw1LjAwIEw5
Ljk5LDUuMzEgTDkuOTYsNS42MyBMOS45MSw1Ljk0IEw5Ljg0LDYuMjQgTDkuNzYsNi41NSBMOS42
NSw2Ljg0IEw5LjUyLDcuMTMgTDkuMzgsNy40MSBMOS4yMiw3LjY4IEw5LjA1LDcuOTQgTDguODUs
OC4xOSBMOC42NCw4LjQyIEw4LjQyLDguNjQgTDguMTksOC44NSBMNy45NCw5LjA1IEw3LjY4LDku
MjIgTDcuNDEsOS4zOCBMNy4xMyw5LjUyIEw2Ljg0LDkuNjUgTDYuNTUsOS43NiBMNi4yNCw5Ljg0
IEw1Ljk0LDkuOTEgTDUuNjMsOS45NiBMNS4zMSw5Ljk5IEw1LjAwLDEwLjAwIEw0LjY5LDkuOTkg
TDQuMzcsOS45NiBMNC4wNiw5LjkxIEwzLjc2LDkuODQgTDMuNDUsOS43NiBMMy4xNiw5LjY1IEwy
Ljg3LDkuNTIgTDIuNTksOS4zOCBMMi4zMiw5LjIyIEwyLjA2LDkuMDUgTDEuODEsOC44NSBMMS41
OCw4LjY0IEwxLjM2LDguNDIgTDEuMTUsOC4xOSBMMC45NSw3Ljk0IEwwLjc4LDcuNjggTDAuNjIs
Ny40MSBMMC40OCw3LjEzIEwwLjM1LDYuODQgTDAuMjQsNi41NSBMMC4xNiw2LjI0IEwwLjA5LDUu
OTQgTDAuMDQsNS42MyBMMC4wMSw1LjMxIEwwLjAwLDUuMDAgTDAuMDEsNC42OSBMMC4wNCw0LjM3
IEwwLjA5LDQuMDYgTDAuMTYsMy43NiBMMC4yNCwzLjQ1IEwwLjM1LDMuMTYgTDAuNDgsMi44NyBM
MC42MiwyLjU5IEwwLjc4LDIuMzIgTDAuOTUsMi4wNiBMMS4xNSwxLjgxIEwxLjM2LDEuNTggTDEu
NTgsMS4zNiBMMS44MSwxLjE1IEwyLjA2LDAuOTUgTDIuMzIsMC43OCBMMi41OSwwLjYyIEwyLjg3
LDAuNDggTDMuMTYsMC4zNSBMMy40NSwwLjI0IEwzLjc2LDAuMTYgTDQuMDYsMC4wOSBMNC4zNyww
LjA0IEw0LjY5LDAuMDEgTDUuMDAsMC4wMCBMNS4zMSwwLjAxIEw1LjYzLDAuMDQgTDUuOTQsMC4w
OSBMNi4yNCwwLjE2IEw2LjU1LDAuMjQgTDYuODQsMC4zNSBMNy4xMywwLjQ4IEw3LjQxLDAuNjIg
TDcuNjgsMC43OCBMNy45NCwwLjk1IEw4LjE5LDEuMTUgTDguNDIsMS4zNiBMOC42NCwxLjU4IEw4
Ljg1LDEuODEgTDkuMDUsMi4wNiBMOS4yMiwyLjMyIEw5LjM4LDIuNTkgTDkuNTIsMi44NyBMOS42
NSwzLjE2IEw5Ljc2LDMuNDUgTDkuODQsMy43NiBMOS45MSw0LjA2IEw5Ljk2LDQuMzcgTDkuOTks
NC42OSBaIl0KLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTYuNjcsMjE4LjMzKSBz
aXplIDkweDkwCi0gICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6
ZSA5MHg5MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lk
dGg9OC4wMF19XSBbc3RhcnQgbWFya2VyPW1hcmtlclN0YXJ0XSBbbWlkZGxlIG1hcmtlcj1tYXJr
ZXJNaWRkbGVdIFtlbmQgbWFya2VyPW1hcmtlckVuZF0gW2RhdGE9Ik0xMzAuMDAsMTM1LjAwIEwx
ODAuMDAsMTM1LjAwIEwxODAuMDAsMTg1LjAwIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyMTYuNjcsMjE4LjMzKSBzaXplIDkwLjAweDkwCisgICAgICBSZW5kZXJQYXRoIHtwYXRo
fSBhdCAoMjE2LjY3LDIxOC4zMykgc2l6ZSA5MC4wMHg5MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9OC4wMF19XSBbc3RhcnQgbWFya2VyPW1hcmtl
clN0YXJ0XSBbbWlkZGxlIG1hcmtlcj1tYXJrZXJNaWRkbGVdIFtlbmQgbWFya2VyPW1hcmtlckVu
ZF0gW2RhdGE9Ik0xMzAuMDAsMTM1LjAwIEwxODAuMDAsMTM1LjAwIEwxODAuMDAsMTg1LjAwIl0K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3ByZXNlcnZlLWFzcGVj
dC1yYXRpby1zeW50YXgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3ByZXNlcnZlLWFzcGVjdC1yYXRpby1zeW50YXgtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
Y3VzdG9tL3ByZXNlcnZlLWFzcGVjdC1yYXRpby1zeW50YXgtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC03LDkyICs3LDkyIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwzMCkgc2l6ZSA0NjV4MTAgY29udGFpbnMg
MSBjaHVuayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwt
OCkgc2l6ZSA0NjV4MTAKICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMC4wMCwz
MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTIwIHdpZHRoIDQ2NS4wMDogIkFsbCBzdmdz
IGJlbG93IHNob3VsZCBsb29rIHRoZSBzYW1lLCBzaW5jZSBhbGwgaGF2ZSBwcmVzZXJ2ZUFzcGVj
dFJhdGlvIHdpdGggc3ludGF4IGVycm9ycyBhbmQgZGVmYXVsdCBzaG91bGQgYmUgY2hvc2VuLiIK
LSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCw4My4zMykgc2l6ZSA1MHgxMDAg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1MC4wMCl9XQot
ICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgwLDgzLjMzKSBz
aXplIDUweDEwMAotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDAsODMuMzMpIHNp
emUgNTB4MTAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCww
LjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDguMzMsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4
LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4w
OSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIz
LjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywy
Mi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUg
TDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4y
NSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQu
OTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwx
MC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIu
NzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYs
MjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUu
MzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAg
TDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEu
OTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5
LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45
MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1
LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4w
MCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwx
OC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2
IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4
LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0
LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45Miwx
My43NSBMMjQuOTgsMTQuMzcgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDAsODMuMzMpIHNpemUgNTB4MTAwLjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDAuMDAsNTAuMDApfV0KKyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lciB7c3ZnfSBhdCAoMCw4My4zMykgc2l6ZSA1MHgxMDAuMDAKKyAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgwLDgzLjMzKSBzaXplIDUweDEwMC4wMCBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzku
NTAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4LjMzLDEwOC4z
Mykgc2l6ZSAzMy4zM3g1MC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgwLjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAo
OC4zMywxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUg
TDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4w
NSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEu
MzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwy
MC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDks
MjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4
IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIu
NTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIz
Ljc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3Ljcx
LDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1
Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3
IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEz
Ljc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1
LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3Ljcx
LDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgs
Ni4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMu
MTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBM
MTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43
MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcs
Ny4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMu
NDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEu
OTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoi
XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxNy41MCwxMjIuMDgpIHNp
emUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0x
My41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMuNDUs
MTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEyLjcy
IEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBMMTMu
MDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcyLDEz
LjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40NSBM
MTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDExLjkx
LDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwxMy40
MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcgTDEx
LjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44NCwx
Mi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIuNjQg
TDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwxMC41
MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEsMTEu
ODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1IEwx
MC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAuODQs
MTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEwLjc5
IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBMMTEu
NTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkxLDEw
LjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41MyBM
MTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEyLjcy
LDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywxMC45
MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAgTDEz
LjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40NSwx
MS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMjUuODMsMTIyLjA4KSBzaXplIDV4Ny41MCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTguNTAsMTIuMDAg
TDE4LjUwLDEyLjA5IEwxOC40OSwxMi4xOSBMMTguNDcsMTIuMjggTDE4LjQ1LDEyLjM3IEwxOC40
MywxMi40NiBMMTguMzksMTIuNTUgTDE4LjM2LDEyLjY0IEwxOC4zMSwxMi43MiBMMTguMjcsMTIu
ODAgTDE4LjIxLDEyLjg4IEwxOC4xNiwxMi45NiBMMTguMDksMTMuMDMgTDE4LjAzLDEzLjA5IEwx
Ny45NiwxMy4xNiBMMTcuODgsMTMuMjEgTDE3LjgwLDEzLjI3IEwxNy43MiwxMy4zMSBMMTcuNjQs
MTMuMzYgTDE3LjU1LDEzLjM5IEwxNy40NiwxMy40MyBMMTcuMzcsMTMuNDUgTDE3LjI4LDEzLjQ3
IEwxNy4xOSwxMy40OSBMMTcuMDksMTMuNTAgTDE3LjAwLDEzLjUwIEwxNi45MSwxMy41MCBMMTYu
ODEsMTMuNDkgTDE2LjcyLDEzLjQ3IEwxNi42MywxMy40NSBMMTYuNTQsMTMuNDMgTDE2LjQ1LDEz
LjM5IEwxNi4zNiwxMy4zNiBMMTYuMjgsMTMuMzEgTDE2LjIwLDEzLjI3IEwxNi4xMiwxMy4yMSBM
MTYuMDQsMTMuMTYgTDE1Ljk3LDEzLjA5IEwxNS45MSwxMy4wMyBMMTUuODQsMTIuOTYgTDE1Ljc5
LDEyLjg4IEwxNS43MywxMi44MCBMMTUuNjksMTIuNzIgTDE1LjY0LDEyLjY0IEwxNS42MSwxMi41
NSBMMTUuNTcsMTIuNDYgTDE1LjU1LDEyLjM3IEwxNS41MywxMi4yOCBMMTUuNTEsMTIuMTkgTDE1
LjUwLDEyLjA5IEwxNS41MCwxMi4wMCBMMTUuNTAsMTEuOTEgTDE1LjUxLDExLjgxIEwxNS41Mywx
MS43MiBMMTUuNTUsMTEuNjMgTDE1LjU3LDExLjU0IEwxNS42MSwxMS40NSBMMTUuNjQsMTEuMzYg
TDE1LjY5LDExLjI4IEwxNS43MywxMS4yMCBMMTUuNzksMTEuMTIgTDE1Ljg0LDExLjA0IEwxNS45
MSwxMC45NyBMMTUuOTcsMTAuOTEgTDE2LjA0LDEwLjg0IEwxNi4xMiwxMC43OSBMMTYuMjAsMTAu
NzMgTDE2LjI4LDEwLjY5IEwxNi4zNiwxMC42NCBMMTYuNDUsMTAuNjEgTDE2LjU0LDEwLjU3IEwx
Ni42MywxMC41NSBMMTYuNzIsMTAuNTMgTDE2LjgxLDEwLjUxIEwxNi45MSwxMC41MCBMMTcuMDAs
MTAuNTAgTDE3LjA5LDEwLjUwIEwxNy4xOSwxMC41MSBMMTcuMjgsMTAuNTMgTDE3LjM3LDEwLjU1
IEwxNy40NiwxMC41NyBMMTcuNTUsMTAuNjEgTDE3LjY0LDEwLjY0IEwxNy43MiwxMC42OSBMMTcu
ODAsMTAuNzMgTDE3Ljg4LDEwLjc5IEwxNy45NiwxMC44NCBMMTguMDMsMTAuOTEgTDE4LjA5LDEw
Ljk3IEwxOC4xNiwxMS4wNCBMMTguMjEsMTEuMTIgTDE4LjI3LDExLjIwIEwxOC4zMSwxMS4yOCBM
MTguMzYsMTEuMzYgTDE4LjM5LDExLjQ1IEwxOC40MywxMS41NCBMMTguNDUsMTEuNjMgTDE4LjQ3
LDExLjcyIEwxOC40OSwxMS44MSBMMTguNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgxNS42MywxNDEuMzgpIHNpemUgMTguNzV4MTUuMTUgW3N0cm9rZT17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEwLjAwLDE5LjAwIEwxNS4w
MCwyMy4wMCBMMjAuMDAsMTkuMDAiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg4My4zMyw4My4zMykgc2l6ZSA1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oNTAuMDAsNTAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lciB7c3ZnfSBhdCAoODMuMzMsODMuMzMpIHNpemUgNTB4MTAwCi0gICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoODMuMzMsODMuMzMpIHNpemUgNTB4MTAwIFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41MCBMMC41
MCwzOS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDkxLjY3
LDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSgwLjAwLDUuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBh
dCAoOTEuNjcsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1
IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQu
MDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIx
LjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBM
MjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5
LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45
OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEy
LjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwy
My43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43
MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBM
NS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44
NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwx
My43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45
NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43
MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4
LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEz
LjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIg
TDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUu
NzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3
LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIz
LjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDEx
LjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBa
Il0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoODMuMzMsODMuMzMpIHNpemUg
NTAuMDB4MTAwLjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDUw
LjAwLDUwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30g
YXQgKDgzLjMzLDgzLjMzKSBzaXplIDUwLjAweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDgzLjMzLDgzLjMzKSBzaXplIDUwLjAweDEwMC4wMCBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAs
MzkuNTAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg5MS42Nywx
MDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMC4wMCw1LjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0g
YXQgKDkxLjY3LDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45Miwx
Ni4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjgg
TDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43
MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMu
MDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwx
OC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMs
MjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0Ljgy
IEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAu
MTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkg
TDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTku
ODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgs
MTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUu
MDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIg
TDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMg
TDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwx
MC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMx
IEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1
LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42
OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwy
MS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEy
IEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41
MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQu
MzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDEwMC44MywxMjIu
MDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBM
MTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMx
LDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4w
MyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEy
LjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywx
My40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAg
TDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41
NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMu
MjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwx
MC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQs
MTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4
IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAu
NTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDEx
LjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBM
MTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEy
LDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42
MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDEx
LjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwx
MC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQg
TDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4w
MywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEu
MjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwx
My40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTA5LjE3LDEyMi4wOCkgc2l6ZSA1
eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUw
LDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4z
NyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4
LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywx
My4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEg
TDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4y
OCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMu
NTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwx
Ni40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIs
MTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2
IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUu
NjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEy
LjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBM
MTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0
LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4w
NCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2
LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwx
MC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAg
TDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4z
NywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAu
NjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwx
OC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEs
MTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYz
IEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoOTguOTYsMTQxLjM4KSBzaXplIDE4Ljc1eDE1LjE1IFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4w
MCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTY2LjY3LDgzLjMzKSBzaXplIDUweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsNTAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdW
aWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMTY2LjY3LDgzLjMzKSBzaXplIDUweDEwMAotICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDE2Ni42Nyw4My4zMykgc2l6ZSA1MHgxMDAg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUw
LDM5LjUwIEwwLjUwLDM5LjUwIFoiXQotICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMTc1LjAwLDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7Y2lyY2xlfSBhdCAoMTc1LjAwLDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYz
IEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQu
MzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIw
Ljg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBM
MjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4
LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45
MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEz
LjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwy
NC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDgu
MTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYg
TDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcu
NDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIs
MTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUu
NzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3
LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42
NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwx
Mi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAw
IEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1
LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44
OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwy
My4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDEx
LjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBM
MjQuOTgsMTQuMzcgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2Ni42
Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMTAwLjAwLDUwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIge3N2Z30gYXQgKDE2Ni42Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAKKyAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNjYuNjcsODMuMzMpIHNpemUgNTB4MTAwLjAwIFtzdHJv
a2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwzOS41
MCBMMC41MCwzOS41MCBaIl0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDE3NSwxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge2Np
cmNsZX0gYXQgKDE3NSwxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQu
OTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4
LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBM
MjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4
LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4z
MCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1
LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywy
NC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUg
TDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIy
LjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0
LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1
LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3
IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDEx
LjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4
LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41
NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEs
NS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUu
NjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBM
MTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45
MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDks
OS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBM
MjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4
LDE0LjM3IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxODQuMTcs
MTIyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1d
IFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIu
MjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwx
My4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDks
MTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3
IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIu
MzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEz
LjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBM
MTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIw
LDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4w
MyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEw
LjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41Mywx
Mi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEg
TDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42
MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEu
MTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwx
MS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUs
MTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUx
IEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIu
MjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEw
LjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBM
MTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3
LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41
NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJd
CiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE5Mi41MCwxMjIuMDgpIHNp
emUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0x
OC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUs
MTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcy
IEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTgu
MDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEz
LjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBM
MTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2Ljkx
LDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40
MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2
LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwx
Mi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQg
TDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41
MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEu
ODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwx
NS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQs
MTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5
IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYu
NTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEw
LjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBM
MTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3Ljcy
LDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45
MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4
LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwx
MS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4Mi4yOSwxNDEuMzgpIHNpemUgMTguNzV4MTUu
MTUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIu
MDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEwLjAw
LDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAuMDAsMTkuMDAiXQotICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgyNTAsODMuMzMpIHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1MC4wMCw1MC4wMCl9XQotICAgICAgICAgIFJlbmRlclNW
R1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgyNTAsODMuMzMpIHNpemUgNTB4MTAwCi0gICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjUwLDgzLjMzKSBzaXplIDUweDEwMCBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzku
NTAgTDAuNTAsMzkuNTAgWiJdCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgyNTguMzMsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtj
aXJjbGV9IGF0ICgyNTguMzMsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0
LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwx
OC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODgg
TDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44
OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQu
MzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwx
NS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMs
MjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1
IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwy
Mi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4y
NCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBM
NS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4z
NyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwx
MS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjks
OC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYu
NTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUx
LDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1
LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkg
TDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYu
OTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5
LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIg
TDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45
OCwxNC4zNyBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjUwLDgzLjMz
KSBzaXplIDUweDEwMC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgxNTAuMDAsNTAuMDApfV0KKyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7
c3ZnfSBhdCAoMjUwLDgzLjMzKSBzaXplIDUweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDI1MCw4My4zMykgc2l6ZSA1MHgxMDAuMDAgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUw
IFoiXQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjU4LjMzLDEwOC4z
Mykgc2l6ZSAzMy4zM3g1MC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgwLjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAo
MjU4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4y
NSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0
LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwy
MS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkg
TDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4w
OSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQu
OTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwx
Mi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgs
MjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcu
NzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIg
TDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYu
ODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgs
MTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUu
OTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcu
NzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4x
OCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwx
My4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAy
IEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1
LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4z
Nyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwy
My40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwx
MS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcg
WiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDI2Ny41MCwxMjIuMDgp
IHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBMMTMu
NDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMxLDEy
LjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4wMyBM
MTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEyLjcy
LDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywxMy40
NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAgTDEx
LjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41NCwx
My40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMuMjcg
TDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwxMC44
NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQsMTIu
NjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4IEwx
MC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAuNTEs
MTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDExLjQ1
IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBMMTAu
ODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEyLDEw
Ljc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42MSBM
MTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDExLjkx
LDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwxMC41
MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQgTDEy
LjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4wMywx
MC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEuMjAg
TDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwxMy40
NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMjc1LjgzLDEyMi4wOCkgc2l6ZSA1eDcu
NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEy
LjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBM
MTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3
LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4w
OSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3
LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwx
My40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAg
TDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40
NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMu
MjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwx
NS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEs
MTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5
IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUu
NTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDEx
LjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBM
MTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIw
LDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41
NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3
LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywx
MC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkg
TDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4w
OSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEu
MjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwx
OC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMjY1LjYzLDE0MS4zOCkgc2l6ZSAxOC43NXgxNS4xNSBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAg
TDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDMzMy4zMyw4My4zMykgc2l6ZSA1MHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMjAwLjAwLDUwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmll
d3BvcnRDb250YWluZXIge3N2Z30gYXQgKDMzMy4zMyw4My4zMykgc2l6ZSA1MHgxMDAKLSAgICAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzMzMuMzMsODMuMzMpIHNpemUgNTB4MTAwIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwz
OS41MCBMMC41MCwzOS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDM0MS42NywxMDguMzMpIHNpemUgMzMuMzN4NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgg
e2NpcmNsZX0gYXQgKDM0MS42NywxMDguMzMpIHNpemUgMzMuMzN4NTAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBM
MjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMw
LDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44
OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIw
Ljg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwy
NC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIg
TDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4x
MywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQu
MDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1
LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2
LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5
IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0
LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1Ljcw
LDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4y
OSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQs
Ni41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIu
NTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBM
MTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40
OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgs
Ni45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMu
MDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4z
MiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0
Ljk4LDE0LjM3IFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMzMuMzMs
ODMuMzMpIHNpemUgNTB4MTAwLjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDIwMC4wMCw1MC4wMCl9XQorICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyIHtzdmd9IGF0ICgzMzMuMzMsODMuMzMpIHNpemUgNTB4MTAwLjAwCisgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzMzLjMzLDgzLjMzKSBzaXplIDUweDEwMC4wMCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAg
TDAuNTAsMzkuNTAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgz
NDEuNjcsMTA4LjMzKSBzaXplIDMzLjMzeDUwLjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtj
aXJjbGV9IGF0ICgzNDEuNjcsMTA4LjMzKSBzaXplIDMzLjMzeDUwLjAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMg
TDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4z
MCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAu
ODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwy
MC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgs
MjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0Ljky
IEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMu
MTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0
LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4x
NSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBM
Ni4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40
OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwx
NC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43
MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcu
MjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0
LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEy
LjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAg
TDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUu
NDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4
LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIz
LjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEu
MzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwy
NC45OCwxNC4zNyBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMzUw
LjgzLDEyMi4wOCkgc2l6ZSA1eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3
LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42
NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEz
LjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwx
My4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMg
TDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4w
MCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMu
NDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwx
MS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEs
MTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcy
IEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAu
NTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDEx
LjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBM
MTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5
LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44
NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDEx
LjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwx
MC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEg
TDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42
NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAu
ODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwx
My4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMs
MTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkx
IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgzNTkuMTcsMTIyLjA4
KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRh
PSJNMTguNTAsMTIuMDAgTDE4LjUwLDEyLjA5IEwxOC40OSwxMi4xOSBMMTguNDcsMTIuMjggTDE4
LjQ1LDEyLjM3IEwxOC40MywxMi40NiBMMTguMzksMTIuNTUgTDE4LjM2LDEyLjY0IEwxOC4zMSwx
Mi43MiBMMTguMjcsMTIuODAgTDE4LjIxLDEyLjg4IEwxOC4xNiwxMi45NiBMMTguMDksMTMuMDMg
TDE4LjAzLDEzLjA5IEwxNy45NiwxMy4xNiBMMTcuODgsMTMuMjEgTDE3LjgwLDEzLjI3IEwxNy43
MiwxMy4zMSBMMTcuNjQsMTMuMzYgTDE3LjU1LDEzLjM5IEwxNy40NiwxMy40MyBMMTcuMzcsMTMu
NDUgTDE3LjI4LDEzLjQ3IEwxNy4xOSwxMy40OSBMMTcuMDksMTMuNTAgTDE3LjAwLDEzLjUwIEwx
Ni45MSwxMy41MCBMMTYuODEsMTMuNDkgTDE2LjcyLDEzLjQ3IEwxNi42MywxMy40NSBMMTYuNTQs
MTMuNDMgTDE2LjQ1LDEzLjM5IEwxNi4zNiwxMy4zNiBMMTYuMjgsMTMuMzEgTDE2LjIwLDEzLjI3
IEwxNi4xMiwxMy4yMSBMMTYuMDQsMTMuMTYgTDE1Ljk3LDEzLjA5IEwxNS45MSwxMy4wMyBMMTUu
ODQsMTIuOTYgTDE1Ljc5LDEyLjg4IEwxNS43MywxMi44MCBMMTUuNjksMTIuNzIgTDE1LjY0LDEy
LjY0IEwxNS42MSwxMi41NSBMMTUuNTcsMTIuNDYgTDE1LjU1LDEyLjM3IEwxNS41MywxMi4yOCBM
MTUuNTEsMTIuMTkgTDE1LjUwLDEyLjA5IEwxNS41MCwxMi4wMCBMMTUuNTAsMTEuOTEgTDE1LjUx
LDExLjgxIEwxNS41MywxMS43MiBMMTUuNTUsMTEuNjMgTDE1LjU3LDExLjU0IEwxNS42MSwxMS40
NSBMMTUuNjQsMTEuMzYgTDE1LjY5LDExLjI4IEwxNS43MywxMS4yMCBMMTUuNzksMTEuMTIgTDE1
Ljg0LDExLjA0IEwxNS45MSwxMC45NyBMMTUuOTcsMTAuOTEgTDE2LjA0LDEwLjg0IEwxNi4xMiwx
MC43OSBMMTYuMjAsMTAuNzMgTDE2LjI4LDEwLjY5IEwxNi4zNiwxMC42NCBMMTYuNDUsMTAuNjEg
TDE2LjU0LDEwLjU3IEwxNi42MywxMC41NSBMMTYuNzIsMTAuNTMgTDE2LjgxLDEwLjUxIEwxNi45
MSwxMC41MCBMMTcuMDAsMTAuNTAgTDE3LjA5LDEwLjUwIEwxNy4xOSwxMC41MSBMMTcuMjgsMTAu
NTMgTDE3LjM3LDEwLjU1IEwxNy40NiwxMC41NyBMMTcuNTUsMTAuNjEgTDE3LjY0LDEwLjY0IEwx
Ny43MiwxMC42OSBMMTcuODAsMTAuNzMgTDE3Ljg4LDEwLjc5IEwxNy45NiwxMC44NCBMMTguMDMs
MTAuOTEgTDE4LjA5LDEwLjk3IEwxOC4xNiwxMS4wNCBMMTguMjEsMTEuMTIgTDE4LjI3LDExLjIw
IEwxOC4zMSwxMS4yOCBMMTguMzYsMTEuMzYgTDE4LjM5LDExLjQ1IEwxOC40MywxMS41NCBMMTgu
NDUsMTEuNjMgTDE4LjQ3LDExLjcyIEwxOC40OSwxMS44MSBMMTguNTAsMTEuOTEgWiJdCiAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzNDguOTYsMTQxLjM4KSBzaXplIDE4Ljc1
eDE1LjE1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0
aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0x
MC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNDE2LjY3LDgzLjMzKSBzaXplIDUweDEwMCBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNTAuMDAsNTAuMDApfV0KLSAgICAgICAgICBS
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNDE2LjY3LDgzLjMzKSBzaXplIDUw
eDEwMAotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQxNi42Nyw4My4zMykgc2l6
ZSA1MHgxMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAu
NTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQotICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNDI1LDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KLSAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNDI1LDEwOC4zMykgc2l6ZSAzMy4zM3g1MCBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1
LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBM
MjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5
LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43
MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4
LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwy
NC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIg
TDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43
NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEg
TDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAu
MzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEs
MTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUu
MDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEg
TDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEy
IEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBM
OS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5
IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1
LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4w
OSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwy
MC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYz
IEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMw
LDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43
NSBMMjQuOTgsMTQuMzcgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQx
Ni42Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMjUwLjAwLDUwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIge3N2Z30gYXQgKDQxNi42Nyw4My4zMykgc2l6ZSA1MHgxMDAuMDAKKyAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0MTYuNjcsODMuMzMpIHNpemUgNTB4MTAwLjAwIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwz
OS41MCBMMC41MCwzOS41MCBaIl0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDQyNSwxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e2NpcmNsZX0gYXQgKDQyNSwxMDguMzMpIHNpemUgMzMuMzN4NTAuMDAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBM
MjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMw
LDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44
OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIw
Ljg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwy
NC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIg
TDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4x
MywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQu
MDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1
LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2
LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5
IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0
LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1Ljcw
LDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4y
OSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQs
Ni41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIu
NTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBM
MTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40
OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgs
Ni45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMu
MDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4z
MiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0
Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg0MzQu
MTcsMTIyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAw
XX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcs
MTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0
IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMu
MDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEz
LjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBM
MTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAw
LDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40
NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDEx
LjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwx
My4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIg
TDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41
MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEu
OTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwx
MC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzks
MTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0
IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEu
NDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEw
LjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBM
MTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0
LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44
NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEz
LjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40Mywx
MS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEg
WiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDQ0Mi41MCwxMjIuMDgp
IHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTgu
NDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEy
LjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBM
MTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3Ljcy
LDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40
NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2
LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwx
My40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcg
TDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44
NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIu
NjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwx
NS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEs
MTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1
IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUu
ODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEw
Ljc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBM
MTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2Ljkx
LDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41
MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3
LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywx
MC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAg
TDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40
NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDQzMi4yOSwxNDEuMzgpIHNpemUgMTguNzV4
MTUuMTUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRo
PTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEw
LjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAuMDAsMTkuMDAiXQotICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICg1MDAsODMuMzMpIHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDMwMC4wMCw1MC4wMCl9XQotICAgICAgICAgIFJlbmRl
clNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICg1MDAsODMuMzMpIHNpemUgNTB4MTAwCi0g
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTAwLDgzLjMzKSBzaXplIDUweDEwMCBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAs
MzkuNTAgTDAuNTAsMzkuNTAgWiJdCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICg1MDguMzMsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtjaXJjbGV9IGF0ICg1MDguMzMsMTA4LjMzKSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMg
TDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4z
MCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAu
ODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwy
MC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgs
MjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0Ljky
IEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMu
MTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0
LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4x
NSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBM
Ni4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40
OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwx
NC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43
MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcu
MjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0
LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEy
LjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAg
TDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUu
NDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4
LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIz
LjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEu
MzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwy
NC45OCwxNC4zNyBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTAwLDgz
LjMzKSBzaXplIDUweDEwMC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgzMDAuMDAsNTAuMDApfV0KKyAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciB7c3ZnfSBhdCAoNTAwLDgzLjMzKSBzaXplIDUweDEwMC4wMAorICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDUwMCw4My4zMykgc2l6ZSA1MHgxMDAuMDAgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5
LjUwIFoiXQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTA4LjMzLDEw
OC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSgwLjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBh
dCAoNTA4LjMzLDEwOC4zMykgc2l6ZSAzMy4zM3g1MC4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45Miwx
Ni4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjgg
TDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43
MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMu
MDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwx
OC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMs
MjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0Ljgy
IEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAu
MTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkg
TDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTku
ODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgs
MTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUu
MDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIg
TDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMg
TDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwx
MC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMx
IEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1
LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42
OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwy
MS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEy
IEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41
MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQu
MzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDUxNy41MCwxMjIu
MDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBM
MTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMx
LDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4w
MyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEy
LjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywx
My40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAg
TDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41
NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMu
MjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwx
MC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQs
MTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4
IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAu
NTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDEx
LjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBM
MTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEy
LDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42
MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDEx
LjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwx
MC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQg
TDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4w
MywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEu
MjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwx
My40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNTI1LjgzLDEyMi4wOCkgc2l6ZSA1
eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUw
LDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4z
NyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4
LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywx
My4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEg
TDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4y
OCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMu
NTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwx
Ni40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIs
MTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2
IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUu
NjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEy
LjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBM
MTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0
LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4w
NCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2
LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwx
MC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAg
TDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4z
NywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAu
NjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwx
OC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEs
MTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYz
IEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNTE1LjYzLDE0MS4zOCkgc2l6ZSAxOC43NXgxNS4xNSBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTku
MDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCiAgICAgICAgIFJlbmRlclNWR1RleHQge3Rl
eHR9IGF0ICgwLDE5MCkgc2l6ZSAyODB4MTAgY29udGFpbnMgMSBjaHVuayhzKQogICAgICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtOCkgc2l6ZSAyODB4MTAKICAgICAg
ICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMC4wMCwxOTAuMDApIHN0YXJ0T2Zmc2V0IDAg
ZW5kT2Zmc2V0IDcyIHdpZHRoIDI4MC4wMDogIkFsbCBzdmdzIGJlbG93IHNob3VsZCBsb29rIHRo
ZSBzYW1lLCBhbGwgaGF2ZSB2YWxpZCBwcmVzZXJ2ZUFzcGVjdFJhdGlvLiIKLSAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwzNTAuMDApIHNpemUgNTB4NjYuNjcgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwyMDAuMDApfV0KLSAgICAgICAg
ICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMCwzNTAuMDApIHNpemUgNTB4
NjYuNjcKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDM1MC4wMCkgc2l6ZSA1
MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41
MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDAsMzUwKSBzaXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDAuMDAsMjAwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3Bv
cnRDb250YWluZXIge3N2Z30gYXQgKDAsMzUwKSBzaXplIDUweDY2LjY3CisgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMCwzNTApIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5
LjUwIFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoOC4zMywzNjYu
NjcpIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMC4wMCw1LjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQg
KDguMzMsMzY2LjY3KSBzaXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1
IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQu
MDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIx
LjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBM
MjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5
LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45
OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEy
LjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwy
My43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43
MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBM
NS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44
NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwx
My43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45
NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43
MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4
LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEz
LjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIg
TDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUu
NzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3
LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIz
LjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDEx
LjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBa
Il0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTcuNTAsMzc1LjgzKSBz
aXplIDV4NSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMu
NTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEy
LjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBM
MTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAz
LDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4z
MSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEy
LjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwx
My41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMg
TDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4x
MiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIu
OTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwx
MC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEs
MTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgx
IEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAu
NjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDEx
LjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBM
MTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0
LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41
MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEy
LjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43Miwx
MC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEg
TDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4z
MSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEu
NjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCiAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDI1LjgzLDM3NS44Mykgc2l6ZSA1eDUgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEyLjAwIEwxOC41
MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBMMTguNDMsMTIu
NDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3LDEyLjgwIEwx
OC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4wOSBMMTcuOTYs
MTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3LjY0LDEzLjM2
IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwxMy40NyBMMTcu
MTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAgTDE2LjgxLDEz
LjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40NSwxMy4zOSBM
MTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMuMjEgTDE2LjA0
LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwxNS43OSwxMi44
OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEsMTIuNTUgTDE1
LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5IEwxNS41MCwx
Mi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUuNTMsMTEuNzIg
TDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDExLjM2IEwxNS42
OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBMMTUuOTEsMTAu
OTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIwLDEwLjczIEwx
Ni4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41NyBMMTYuNjMs
MTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3LjAwLDEwLjUw
IEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywxMC41NSBMMTcu
NDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkgTDE3LjgwLDEw
LjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4wOSwxMC45NyBM
MTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEuMjggTDE4LjM2
LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwxOC40NywxMS43
MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoMTUuNjMsMzg4LjcwKSBzaXplIDE4Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMu
MDAgTDIwLjAwLDE5LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoODMu
MzMsMzUwLjAwKSBzaXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDUwLjAwLDIwMC4wMCl9XQotICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyIHtzdmd9IGF0ICg4My4zMywzNTAuMDApIHNpemUgNTB4NjYuNjcKLSAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICg4My4zMywzNTAuMDApIHNpemUgNTB4NjYuNjcgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUw
IEwwLjUwLDM5LjUwIFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4My4z
MywzNTApIHNpemUgNTAuMDB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oNTAuMDAsMjAwLjAwKX1dCisgICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIge3N2Z30gYXQgKDgzLjMzLDM1MCkgc2l6ZSA1MC4wMHg2Ni42NworICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDgzLjMzLDM1MCkgc2l6ZSA1MC4wMHg2Ni42NyBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAg
TDAuNTAsMzkuNTAgWiJdCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg5
MS42NywzNjYuNjcpIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2Np
cmNsZX0gYXQgKDkxLjY3LDM2Ni42Nykgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwy
NC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAs
MTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4
IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAu
ODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0
LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBM
MTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEz
LDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4w
NSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUs
MjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYu
MjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkg
TDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQu
MzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAs
MTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5
LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2
LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41
MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwx
NS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5
IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2
LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4w
OSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMy
IEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQu
OTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDEwMC44
MywzNzUuODMpIHNpemUgNXg1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0g
W2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4y
OCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEz
LjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwx
My4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcg
TDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4z
NywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMu
NTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwx
MS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAs
MTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAz
IEwxMC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAu
NjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEy
LjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBM
MTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYx
LDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4x
MiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDEx
LjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwx
MC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEg
TDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4y
OCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAu
NjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwx
My4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcs
MTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0
IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0K
ICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTA5LjE3LDM3NS44Mykgc2l6
ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUw
LDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4z
NyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4
LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywx
My4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEg
TDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4y
OCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMu
NTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwx
Ni40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIs
MTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2
IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUu
NjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEy
LjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBM
MTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0
LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4w
NCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2
LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwx
MC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAg
TDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4z
NywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAu
NjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwx
OC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEs
MTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYz
IEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoOTguOTYsMzg4LjcwKSBzaXplIDE4Ljc1eDEwLjEwIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3aWR0aD0yLjAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xMC4wMCwxOS4w
MCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTY2LjY3LDM1MC4wMCkgc2l6ZSA1MHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMDAuMDAsMjAwLjAwKX1dCi0gICAgICAgICAgUmVuZGVy
U1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDE2Ni42NywzNTAuMDApIHNpemUgNTB4NjYu
NjcKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNjYuNjcsMzUwLjAwKSBzaXpl
IDUweDY2LjY3IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCww
LjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDE3NS4wMCwzNjYuNjcpIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCi0gICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE3NS4wMCwzNjYuNjcpIHNpemUgMzMuMzN4MzMu
MzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1
LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBM
MjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0
LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4y
OSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5
LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44Nywy
NC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTgg
TDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4z
MiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5
IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIw
Ljg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5
LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1
LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUx
IEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDku
NjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5
IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43
MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcs
NS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcu
NDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBM
MjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4x
NSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1
LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4x
MyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgxNjYuNjcsMzUwKSBzaXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwMC4wMCwyMDAuMDApfV0KKyAgICAgICAgICBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoMTY2LjY3LDM1MCkgc2l6ZSA1MHg2Ni42Nwor
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDE2Ni42NywzNTApIHNpemUgNTB4NjYu
NjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5
LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTc1LDM2Ni42Nykgc2l6ZSAzMy4zM3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVy
UGF0aCB7Y2lyY2xlfSBhdCAoMTc1LDM2Ni42Nykgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1
LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBM
MjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5
LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43
MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4
LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwy
NC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIg
TDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43
NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEg
TDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAu
MzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEs
MTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUu
MDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEg
TDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEy
IEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBM
OS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5
IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1
LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4w
OSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwy
MC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYz
IEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMw
LDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43
NSBMMjQuOTgsMTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQg
KDE4NC4xNywzNzUuODMpIHNpemUgNXg1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW2RhdGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40
NywxMi4yOCBMMTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIu
NjQgTDEzLjMxLDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwx
My4wOSwxMy4wMyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAs
MTMuMjcgTDEyLjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQz
IEwxMi4zNywxMy40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIu
MDAsMTMuNTAgTDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEz
LjQ1IEwxMS41NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBM
MTEuMjAsMTMuMjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkx
LDEzLjAzIEwxMC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43
MiBMMTAuNjQsMTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEw
LjUzLDEyLjI4IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwx
MS45MSBMMTAuNTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQg
TDEwLjYxLDExLjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43
OSwxMS4xMiBMMTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAu
ODQgTDExLjEyLDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwx
MS40NSwxMC42MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEs
MTAuNTEgTDExLjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUx
IEwxMi4yOCwxMC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIu
NjQsMTAuNjQgTDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEw
Ljg0IEwxMy4wMywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBM
MTMuMjcsMTEuMjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQz
LDExLjU0IEwxMy40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45
MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTkyLjUwLDM3NS44
Mykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTE4LjUwLDEyLjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40
NSwxMi4zNyBMMTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIu
NzIgTDE4LjI3LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwx
OC4wMywxMy4wOSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIs
MTMuMzEgTDE3LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1
IEwxNy4yOCwxMy40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYu
OTEsMTMuNTAgTDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEz
LjQzIEwxNi40NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBM
MTYuMTIsMTMuMjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0
LDEyLjk2IEwxNS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42
NCBMMTUuNjEsMTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1
LjUxLDEyLjE5IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwx
MS44MSBMMTUuNTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUg
TDE1LjY0LDExLjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44
NCwxMS4wNCBMMTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAu
NzkgTDE2LjIwLDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwx
Ni41NCwxMC41NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEs
MTAuNTAgTDE3LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUz
IEwxNy4zNywxMC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcu
NzIsMTAuNjkgTDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEw
LjkxIEwxOC4wOSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBM
MTguMzEsMTEuMjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1
LDExLjYzIEwxOC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTgyLjI5LDM4OC43MCkgc2l6ZSAxOC43NXgx
MC4xMCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9
Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAu
MDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDI1MCwzNTAuMDApIHNpemUgNTB4NjYuNjcgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUwLjAwLDIwMC4wMCl9XQotICAgICAgICAgIFJl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgyNTAsMzUwLjAwKSBzaXplIDUweDY2
LjY3Ci0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjUwLDM1MC4wMCkgc2l6ZSA1
MHg2Ni42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41
MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDI1MCwzNTApIHNpemUgNTB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTUwLjAwLDIwMC4wMCl9XQorICAgICAgICAgIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgyNTAsMzUwKSBzaXplIDUweDY2LjY3CisgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjUwLDM1MCkgc2l6ZSA1MHg2Ni42NyBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAg
TDAuNTAsMzkuNTAgWiJdCiAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
NTguMzMsMzY2LjY3KSBzaXplIDMzLjMzeDMzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtj
aXJjbGV9IGF0ICgyNTguMzMsMzY2LjY3KSBzaXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMg
TDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4z
MCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAu
ODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwy
MC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgs
MjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0Ljky
IEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMu
MTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0
LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4x
NSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBM
Ni4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40
OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwx
NC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43
MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcu
MjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0
LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEy
LjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAg
TDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUu
NDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4
LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIz
LjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEu
MzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwy
NC45OCwxNC4zNyBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMjY3
LjUwLDM3NS44Mykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEy
LjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBM
MTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5
LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4y
NyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEy
LjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwx
My41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUg
TDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4y
MCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMu
MDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwx
MC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMs
MTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkx
IEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAu
NjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDEx
LjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBM
MTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1
LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41
MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEy
LjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwx
MC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQg
TDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4y
NywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEu
NTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoi
XQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc2hhcGVzLXN1cHBv
cnRpbmctbWFya2Vycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL3N2Zy9jdXN0b20vc2hhcGVzLXN1cHBvcnRpbmctbWFya2Vycy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vc2hhcGVzLXN1cHBvcnRpbmctbWFya2Vycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTE5LDQgKzE5LDQgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5k
ZXJQYXRoIHtsaW5lfSBhdCAoLTAuODMsMjAwKSBzaXplIDEuNjd4ODMuMzMgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtzdGFydCBtYXJrZXI9bWFya10gW21pZGRsZSBt
YXJrZXI9bWFya10gW2VuZCBtYXJrZXI9bWFya10gW2RhdGE9Ik0wLjAwLDEyMC4wMCBMMC4wMCwx
NzAuMDAiXQogICAgICAgUmVuZGVyUGF0aCB7cG9seWxpbmV9IGF0ICg1MCwxOTkuMTcpIHNpemUg
ODQuNjh4ODQuNTQgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtzdGFy
dCBtYXJrZXI9bWFya10gW21pZGRsZSBtYXJrZXI9bWFya10gW2VuZCBtYXJrZXI9bWFya10gW2Rh
dGE9Ik0zMC4wMCwxMjAuMDAgTDgwLjAwLDEyMC4wMCBMNTUuMDAsMTcwLjAwIl0KICAgICAgIFJl
bmRlclBhdGgge3BvbHlnb259IGF0ICgxNjUuMzIsMTk5LjE3KSBzaXplIDg2LjAzeDg2LjAzIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbc3RhcnQgbWFya2VyPW1hcmtd
IFttaWRkbGUgbWFya2VyPW1hcmtdIFtlbmQgbWFya2VyPW1hcmtdIFtkYXRhPSJNMTAwLjAwLDEy
MC4wMCBMMTUwLjAwLDEyMC4wMCBMMTI1LjAwLDE3MC4wMCBaIl0KLSAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgyODIuNTAsMTk5LjE3KSBzaXplIDg1LjUyeDg1IFtzdHJva2U9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbc3RhcnQgbWFya2VyPW1hcmtdIFttaWRkbGUgbWFya2Vy
PW1hcmtdIFtlbmQgbWFya2VyPW1hcmtdIFtkYXRhPSJNMTcwLjAwLDEyMC4wMCBMMjIwLjAwLDEy
MC4wMCBMMTk1LjAwLDE3MC4wMCBDMTg1LjAwLDE3MC4wMCwxNzAuMDAsMTQwLjAwLDE3MC4wMCwx
MjAuMDAiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI4Mi41MCwxOTkuMTcpIHNpemUg
ODUuNTJ4ODUuMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtzdGFy
dCBtYXJrZXI9bWFya10gW21pZGRsZSBtYXJrZXI9bWFya10gW2VuZCBtYXJrZXI9bWFya10gW2Rh
dGE9Ik0xNzAuMDAsMTIwLjAwIEwyMjAuMDAsMTIwLjAwIEwxOTUuMDAsMTcwLjAwIEMxODUuMDAs
MTcwLjAwLDE3MC4wMCwxNDAuMDAsMTcwLjAwLDEyMC4wMCJdCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtY3NzLW5vLWVmZmVjdC1vbi1zaGFkb3ctdHJlZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9j
dXN0b20vdXNlLWNzcy1uby1lZmZlY3Qtb24tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3VzZS1j
c3Mtbm8tZWZmZWN0LW9uLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMCArMSwxMCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDQ1M3gxMTMKLSAg
UmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoLTAuMDcsLTAuNTYpIHNpemUgNDUzLjEzeDExNC4xMwor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgtMC4wNiwtMC41Nikgc2l6ZSA0NTMuMTN4MTE0LjEz
CiAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAog
ICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDMwMCw0OS41MCkgc2l6ZSA2MDAuNTB4MjAxIFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF0gW29wYWNpdHk9MC41MF0gW21pdGVy
IGxpbWl0PTEwLjAwXSBbbGluZSBqb2luPUJFVkVMXSBbZGFzaCBhcnJheT17MzAwLjAwLCAxMDAu
MDB9XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0zMDAu
MDAsNTAuMDAgTDkwMC4wMCw1MC4wMCBMOTAwLjAwLDI1MC4wMCBMMzAwLjAwLDI1MC4wMCJdCi0g
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKC0wLjA3LC0wLjU2KSBzaXplIDQ1My4xM3gxMTQuMTMg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXSBbc3Ryb2tlIHdpZHRoPTMuMDBd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDEyMDAuMDAsMC4wMCBMMTIwMC4wMCwzMDAuMDAgTDAuMDAs
MzAwLjAwIFoiXQorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgtMC4wNiwtMC41Nikgc2l6ZSA0
NTMuMTN4MTE0LjEzIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl0gW3N0cm9r
ZSB3aWR0aD0zLjAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwxMjAwLjAwLDAuMDAgTDEyMDAuMDAs
MzAwLjAwIEwwLjAwLDMwMC4wMCBaIl0KICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgx
MDUuOTcsMTEuMzApIHNpemUgMjQxLjA3eDkwLjQwCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e3VzZX0gYXQgKDEwNS45NywxMS4zMCkgc2l6ZSAyNDEuMDd4OTAuNDAKICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMTA1Ljk3LDExLjMwKSBzaXplIDI0MS4wN3g5MC40MApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdmlld2JveC1zeW50YXgtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL3ZpZXdib3gtc3ludGF4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS92aWV3Ym94LXN5bnRheC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE3LjUwLDEwOS4x
Nykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0i
TTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4IEwxMy40
NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMuMzEsMTIu
NzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEzLjAzIEwx
My4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBMMTIuNzIs
MTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3LDEzLjQ1
IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41MCBMMTEu
OTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDExLjU0LDEz
LjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwxMy4yNyBM
MTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMgTDEwLjg0
LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42NCwxMi42
NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIuMjggTDEw
LjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwxMC41MSwx
MS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEsMTEuNDUg
TDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEyIEwxMC44
NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEuMTIsMTAu
NzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEwLjYxIEwx
MS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBMMTEuOTEs
MTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4LDEwLjUz
IEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42NCBMMTIu
NzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEzLjAzLDEw
LjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywxMS4yMCBM
MTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQgTDEzLjQ1
LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQogICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNS44MywxMDkuMTcpIHNpemUgNXg1IFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBM
MTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQz
LDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44
MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3
Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwx
My4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcg
TDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44
MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMu
MzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwx
Ni4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzks
MTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1
IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUu
NTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDEx
LjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBM
MTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1Ljkx
LDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43
MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2
LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwx
MC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUg
TDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44
MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAu
OTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwx
OC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcs
MTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cGF0aH0gYXQgKDE1LjYzLDEyMi4wMykgc2l6ZSAxOC43NXgxMC4xMCBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAgTDE1LjAw
LDIzLjAwIEwyMC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDgzLjMzLDgzLjMzKSBzaXplIDUweDY2LjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDUwLjAwLDUwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIge3N2Z30gYXQgKDgzLjMzLDgzLjMzKSBzaXplIDUweDY2LjY3Ci0gICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoODMuMzMsODMuMzMpIHNpemUgNTB4NjYuNjcgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUw
IEwwLjUwLDM5LjUwIFoiXQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg4My4z
Myw4My4zMykgc2l6ZSA1MC4wMHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSg1MC4wMCw1MC4wMCl9XQorICAgICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyIHtzdmd9IGF0ICg4My4zMyw4My4zMykgc2l6ZSA1MC4wMHg2Ni42NworICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDgzLjMzLDgzLjMzKSBzaXplIDUwLjAweDY2LjY3IFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUwIEwyOS41MCwz
OS41MCBMMC41MCwzOS41MCBaIl0KICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDkxLjY3LDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoOTEuNjcsMTAwKSBzaXplIDMzLjMzeDMzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0
LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwx
OC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODgg
TDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44
OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQu
MzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwx
NS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMs
MjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1
IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwy
Mi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4y
NCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBM
NS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4z
NyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwx
MS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjks
OC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYu
NTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUx
LDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1
LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkg
TDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYu
OTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5
LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIg
TDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45
OCwxNC4zNyBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTAwLjgz
LDEwOS4xNykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBb
ZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEzLjQ3LDEyLjI4
IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwxMi42NCBMMTMu
MzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYgTDEzLjA5LDEz
LjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44MCwxMy4yNyBM
MTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMuNDMgTDEyLjM3
LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwxMi4wMCwxMy41
MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMsMTMuNDUgTDEx
LjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMxIEwxMS4yMCwx
My4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAuOTEsMTMuMDMg
TDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEyLjcyIEwxMC42
NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBMMTAuNTMsMTIu
MjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUwLDExLjkxIEwx
MC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41NCBMMTAuNjEs
MTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEwLjc5LDExLjEy
IEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwxMC44NCBMMTEu
MTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQgTDExLjQ1LDEw
LjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44MSwxMC41MSBM
MTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAuNTEgTDEyLjI4
LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwxMi42NCwxMC42
NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYsMTAuODQgTDEz
LjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEyIEwxMy4yNywx
MS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMuNDMsMTEuNTQg
TDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDExLjkxIFoiXQpA
QCAtMzYsOCArMzYsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTY2LjY3LDgzLjMzKSBzaXplIDUweDY2LjY3IFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwMC4wMCw1MC4wMCl9XQogICAg
ICAgICAgIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIHtzdmd9IGF0ICgxNjYuNjcsODMuMzMp
IHNpemUgNTB4NjYuNjcKICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxNjYuNjcs
ODMuMzMpIHNpemUgNTB4NjYuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAu
NTAgTDI5LjUwLDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQotICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTc1LjAwLDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KLSAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTc1LjAwLDEwMCkgc2l6ZSAzMy4z
M3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUu
MDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3
LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTguNjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBM
MjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwyMi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1
LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgsMjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43
NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMwIEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2
Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUuNjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywy
NC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEg
TDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBMMTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIs
MjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIuMjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYu
OTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQsMTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjgg
TDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUuMTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUu
NjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcgTDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEs
MTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEuMzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYu
NTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDguNjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYz
LDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4z
Miw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwx
NC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4
IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwxOC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2
LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2LjkxIEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4y
OSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBM
MjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwyNC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0Ljgy
LDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgsMTQuMzcgWiJdCisgICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICgxNzUsMTAwKSBzaXplIDMzLjMzeDMzLjMzIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQorICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxNzUsMTAwKSBzaXplIDMzLjMzeDMzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZGMDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQu
OTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4
LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTkuMjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBM
MjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwyMi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3
LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYsMjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4w
NSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUxIEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2
LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUuMDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwy
NC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAg
TDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBMOS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42Mywy
Mi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41
NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwxOS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBM
NS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4wOCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4w
MCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBMNS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwx
MS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2Ljkx
LDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2
LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQgTDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkx
LDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUuMTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1
LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEg
TDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYu
NTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkgTDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcx
LDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDkuNjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBM
MjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwyNC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0Ljky
LDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xl
fSBhdCAoMTg0LjE3LDEwOS4xNykgc2l6ZSA1eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwMDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkg
TDEzLjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4z
NiwxMi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIu
OTYgTDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwx
Mi44MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYs
MTMuNDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUw
IEwxMi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEu
NjMsMTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEz
LjMxIEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBM
MTAuOTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5
LDEyLjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4z
NyBMMTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEw
LjUwLDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41Nywx
MS41NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAg
TDEwLjc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4w
NCwxMC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAu
NjQgTDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwx
MS44MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTks
MTAuNTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYx
IEwxMi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIu
OTYsMTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDEx
LjEyIEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBM
MTMuNDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUw
LDExLjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxOTIuNTAs
MTA5LjE3KSBzaXplIDV4NSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtk
YXRhPSJNMTguNTAsMTIuMDAgTDE4LjUwLDEyLjA5IEwxOC40OSwxMi4xOSBMMTguNDcsMTIuMjgg
TDE4LjQ1LDEyLjM3IEwxOC40MywxMi40NiBMMTguMzksMTIuNTUgTDE4LjM2LDEyLjY0IEwxOC4z
MSwxMi43MiBMMTguMjcsMTIuODAgTDE4LjIxLDEyLjg4IEwxOC4xNiwxMi45NiBMMTguMDksMTMu
MDMgTDE4LjAzLDEzLjA5IEwxNy45NiwxMy4xNiBMMTcuODgsMTMuMjEgTDE3LjgwLDEzLjI3IEwx
Ny43MiwxMy4zMSBMMTcuNjQsMTMuMzYgTDE3LjU1LDEzLjM5IEwxNy40NiwxMy40MyBMMTcuMzcs
MTMuNDUgTDE3LjI4LDEzLjQ3IEwxNy4xOSwxMy40OSBMMTcuMDksMTMuNTAgTDE3LjAwLDEzLjUw
IEwxNi45MSwxMy41MCBMMTYuODEsMTMuNDkgTDE2LjcyLDEzLjQ3IEwxNi42MywxMy40NSBMMTYu
NTQsMTMuNDMgTDE2LjQ1LDEzLjM5IEwxNi4zNiwxMy4zNiBMMTYuMjgsMTMuMzEgTDE2LjIwLDEz
LjI3IEwxNi4xMiwxMy4yMSBMMTYuMDQsMTMuMTYgTDE1Ljk3LDEzLjA5IEwxNS45MSwxMy4wMyBM
MTUuODQsMTIuOTYgTDE1Ljc5LDEyLjg4IEwxNS43MywxMi44MCBMMTUuNjksMTIuNzIgTDE1LjY0
LDEyLjY0IEwxNS42MSwxMi41NSBMMTUuNTcsMTIuNDYgTDE1LjU1LDEyLjM3IEwxNS41MywxMi4y
OCBMMTUuNTEsMTIuMTkgTDE1LjUwLDEyLjA5IEwxNS41MCwxMi4wMCBMMTUuNTAsMTEuOTEgTDE1
LjUxLDExLjgxIEwxNS41MywxMS43MiBMMTUuNTUsMTEuNjMgTDE1LjU3LDExLjU0IEwxNS42MSwx
MS40NSBMMTUuNjQsMTEuMzYgTDE1LjY5LDExLjI4IEwxNS43MywxMS4yMCBMMTUuNzksMTEuMTIg
TDE1Ljg0LDExLjA0IEwxNS45MSwxMC45NyBMMTUuOTcsMTAuOTEgTDE2LjA0LDEwLjg0IEwxNi4x
MiwxMC43OSBMMTYuMjAsMTAuNzMgTDE2LjI4LDEwLjY5IEwxNi4zNiwxMC42NCBMMTYuNDUsMTAu
NjEgTDE2LjU0LDEwLjU3IEwxNi42MywxMC41NSBMMTYuNzIsMTAuNTMgTDE2LjgxLDEwLjUxIEwx
Ni45MSwxMC41MCBMMTcuMDAsMTAuNTAgTDE3LjA5LDEwLjUwIEwxNy4xOSwxMC41MSBMMTcuMjgs
MTAuNTMgTDE3LjM3LDEwLjU1IEwxNy40NiwxMC41NyBMMTcuNTUsMTAuNjEgTDE3LjY0LDEwLjY0
IEwxNy43MiwxMC42OSBMMTcuODAsMTAuNzMgTDE3Ljg4LDEwLjc5IEwxNy45NiwxMC44NCBMMTgu
MDMsMTAuOTEgTDE4LjA5LDEwLjk3IEwxOC4xNiwxMS4wNCBMMTguMjEsMTEuMTIgTDE4LjI3LDEx
LjIwIEwxOC4zMSwxMS4yOCBMMTguMzYsMTEuMzYgTDE4LjM5LDExLjQ1IEwxOC40MywxMS41NCBM
MTguNDUsMTEuNjMgTDE4LjQ3LDExLjcyIEwxOC40OSwxMS44MSBMMTguNTAsMTEuOTEgWiJdCiAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxODIuMjksMTIyLjAzKSBzaXplIDE4
Ljc1eDEwLjEwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF0gW3N0cm9rZSB3
aWR0aD0yLjAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik0xMC4wMCwxOS4wMCBMMTUuMDAsMjMuMDAgTDIwLjAwLDE5LjAwIl0KQEAgLTg0LDggKzg0LDgg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDY2Ni42Nyw4My4zMykgc2l6ZSA1MHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MDAuMDAsNTAuMDApfV0KICAgICAgICAgICBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoNjY2LjY3LDgzLjMzKSBzaXplIDUweDY2LjY3
CiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjY2LjY3LDgzLjMzKSBzaXplIDUw
eDY2LjY3IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCwwLjUw
IEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDY3NS4wMCwxMDApIHNpemUgMzMuMzN4MzMuMzMgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAwKX1dCi0gICAgICAgICAgICAgIFJl
bmRlclBhdGgge2NpcmNsZX0gYXQgKDY3NS4wMCwxMDApIHNpemUgMzMuMzN4MzMuMzMgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwyNC45
OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEsMTgu
MDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2IEwy
My4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEuMzcs
MjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0LjA1
IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBMMTYu
MjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1LDI0
LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4zMCBM
MTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYzLDIy
LjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2LjU2
LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5IEw1
LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1LjAw
IEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5LDEx
LjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYuOTEs
OS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEyLDYu
OTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEuOTEs
NS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBMMTUu
MDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4zMSBM
MTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYsNi41
NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIuNzEs
OC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0IEwy
NC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQuOTIs
MTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNjc1LDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgwLjAwLDUuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
Y2lyY2xlfSBhdCAoNjc1LDEwMCkgc2l6ZSAzMy4zM3gzMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jRkZGRjAwXX1dIFtkYXRhPSJNMjUuMDAsMTUuMDAgTDI0Ljk4LDE1LjYzIEwyNC45
MiwxNi4yNSBMMjQuODIsMTYuODcgTDI0LjY5LDE3LjQ5IEwyNC41MSwxOC4wOSBMMjQuMzAsMTgu
NjggTDI0LjA1LDE5LjI2IEwyMy43NiwxOS44MiBMMjMuNDQsMjAuMzYgTDIzLjA5LDIwLjg4IEwy
Mi43MSwyMS4zNyBMMjIuMjksMjEuODUgTDIxLjg1LDIyLjI5IEwyMS4zNywyMi43MSBMMjAuODgs
MjMuMDkgTDIwLjM2LDIzLjQ0IEwxOS44MiwyMy43NiBMMTkuMjYsMjQuMDUgTDE4LjY4LDI0LjMw
IEwxOC4wOSwyNC41MSBMMTcuNDksMjQuNjkgTDE2Ljg3LDI0LjgyIEwxNi4yNSwyNC45MiBMMTUu
NjMsMjQuOTggTDE1LjAwLDI1LjAwIEwxNC4zNywyNC45OCBMMTMuNzUsMjQuOTIgTDEzLjEzLDI0
LjgyIEwxMi41MSwyNC42OSBMMTEuOTEsMjQuNTEgTDExLjMyLDI0LjMwIEwxMC43NCwyNC4wNSBM
MTAuMTgsMjMuNzYgTDkuNjQsMjMuNDQgTDkuMTIsMjMuMDkgTDguNjMsMjIuNzEgTDguMTUsMjIu
MjkgTDcuNzEsMjEuODUgTDcuMjksMjEuMzcgTDYuOTEsMjAuODggTDYuNTYsMjAuMzYgTDYuMjQs
MTkuODIgTDUuOTUsMTkuMjYgTDUuNzAsMTguNjggTDUuNDksMTguMDkgTDUuMzEsMTcuNDkgTDUu
MTgsMTYuODcgTDUuMDgsMTYuMjUgTDUuMDIsMTUuNjMgTDUuMDAsMTUuMDAgTDUuMDIsMTQuMzcg
TDUuMDgsMTMuNzUgTDUuMTgsMTMuMTMgTDUuMzEsMTIuNTEgTDUuNDksMTEuOTEgTDUuNzAsMTEu
MzIgTDUuOTUsMTAuNzQgTDYuMjQsMTAuMTggTDYuNTYsOS42NCBMNi45MSw5LjEyIEw3LjI5LDgu
NjMgTDcuNzEsOC4xNSBMOC4xNSw3LjcxIEw4LjYzLDcuMjkgTDkuMTIsNi45MSBMOS42NCw2LjU2
IEwxMC4xOCw2LjI0IEwxMC43NCw1Ljk1IEwxMS4zMiw1LjcwIEwxMS45MSw1LjQ5IEwxMi41MSw1
LjMxIEwxMy4xMyw1LjE4IEwxMy43NSw1LjA4IEwxNC4zNyw1LjAyIEwxNS4wMCw1LjAwIEwxNS42
Myw1LjAyIEwxNi4yNSw1LjA4IEwxNi44Nyw1LjE4IEwxNy40OSw1LjMxIEwxOC4wOSw1LjQ5IEwx
OC42OCw1LjcwIEwxOS4yNiw1Ljk1IEwxOS44Miw2LjI0IEwyMC4zNiw2LjU2IEwyMC44OCw2Ljkx
IEwyMS4zNyw3LjI5IEwyMS44NSw3LjcxIEwyMi4yOSw4LjE1IEwyMi43MSw4LjYzIEwyMy4wOSw5
LjEyIEwyMy40NCw5LjY0IEwyMy43NiwxMC4xOCBMMjQuMDUsMTAuNzQgTDI0LjMwLDExLjMyIEwy
NC41MSwxMS45MSBMMjQuNjksMTIuNTEgTDI0LjgyLDEzLjEzIEwyNC45MiwxMy43NSBMMjQuOTgs
MTQuMzcgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDY4NC4xNywx
MDkuMTcpIHNpemUgNXg1IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xMy41MCwxMi4wMCBMMTMuNTAsMTIuMDkgTDEzLjQ5LDEyLjE5IEwxMy40NywxMi4yOCBM
MTMuNDUsMTIuMzcgTDEzLjQzLDEyLjQ2IEwxMy4zOSwxMi41NSBMMTMuMzYsMTIuNjQgTDEzLjMx
LDEyLjcyIEwxMy4yNywxMi44MCBMMTMuMjEsMTIuODggTDEzLjE2LDEyLjk2IEwxMy4wOSwxMy4w
MyBMMTMuMDMsMTMuMDkgTDEyLjk2LDEzLjE2IEwxMi44OCwxMy4yMSBMMTIuODAsMTMuMjcgTDEy
LjcyLDEzLjMxIEwxMi42NCwxMy4zNiBMMTIuNTUsMTMuMzkgTDEyLjQ2LDEzLjQzIEwxMi4zNywx
My40NSBMMTIuMjgsMTMuNDcgTDEyLjE5LDEzLjQ5IEwxMi4wOSwxMy41MCBMMTIuMDAsMTMuNTAg
TDExLjkxLDEzLjUwIEwxMS44MSwxMy40OSBMMTEuNzIsMTMuNDcgTDExLjYzLDEzLjQ1IEwxMS41
NCwxMy40MyBMMTEuNDUsMTMuMzkgTDExLjM2LDEzLjM2IEwxMS4yOCwxMy4zMSBMMTEuMjAsMTMu
MjcgTDExLjEyLDEzLjIxIEwxMS4wNCwxMy4xNiBMMTAuOTcsMTMuMDkgTDEwLjkxLDEzLjAzIEwx
MC44NCwxMi45NiBMMTAuNzksMTIuODggTDEwLjczLDEyLjgwIEwxMC42OSwxMi43MiBMMTAuNjQs
MTIuNjQgTDEwLjYxLDEyLjU1IEwxMC41NywxMi40NiBMMTAuNTUsMTIuMzcgTDEwLjUzLDEyLjI4
IEwxMC41MSwxMi4xOSBMMTAuNTAsMTIuMDkgTDEwLjUwLDEyLjAwIEwxMC41MCwxMS45MSBMMTAu
NTEsMTEuODEgTDEwLjUzLDExLjcyIEwxMC41NSwxMS42MyBMMTAuNTcsMTEuNTQgTDEwLjYxLDEx
LjQ1IEwxMC42NCwxMS4zNiBMMTAuNjksMTEuMjggTDEwLjczLDExLjIwIEwxMC43OSwxMS4xMiBM
MTAuODQsMTEuMDQgTDEwLjkxLDEwLjk3IEwxMC45NywxMC45MSBMMTEuMDQsMTAuODQgTDExLjEy
LDEwLjc5IEwxMS4yMCwxMC43MyBMMTEuMjgsMTAuNjkgTDExLjM2LDEwLjY0IEwxMS40NSwxMC42
MSBMMTEuNTQsMTAuNTcgTDExLjYzLDEwLjU1IEwxMS43MiwxMC41MyBMMTEuODEsMTAuNTEgTDEx
LjkxLDEwLjUwIEwxMi4wMCwxMC41MCBMMTIuMDksMTAuNTAgTDEyLjE5LDEwLjUxIEwxMi4yOCwx
MC41MyBMMTIuMzcsMTAuNTUgTDEyLjQ2LDEwLjU3IEwxMi41NSwxMC42MSBMMTIuNjQsMTAuNjQg
TDEyLjcyLDEwLjY5IEwxMi44MCwxMC43MyBMMTIuODgsMTAuNzkgTDEyLjk2LDEwLjg0IEwxMy4w
MywxMC45MSBMMTMuMDksMTAuOTcgTDEzLjE2LDExLjA0IEwxMy4yMSwxMS4xMiBMMTMuMjcsMTEu
MjAgTDEzLjMxLDExLjI4IEwxMy4zNiwxMS4zNiBMMTMuMzksMTEuNDUgTDEzLjQzLDExLjU0IEwx
My40NSwxMS42MyBMMTMuNDcsMTEuNzIgTDEzLjQ5LDExLjgxIEwxMy41MCwxMS45MSBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoNjkyLjUwLDEwOS4xNykgc2l6ZSA1
eDUgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTE4LjUwLDEy
LjAwIEwxOC41MCwxMi4wOSBMMTguNDksMTIuMTkgTDE4LjQ3LDEyLjI4IEwxOC40NSwxMi4zNyBM
MTguNDMsMTIuNDYgTDE4LjM5LDEyLjU1IEwxOC4zNiwxMi42NCBMMTguMzEsMTIuNzIgTDE4LjI3
LDEyLjgwIEwxOC4yMSwxMi44OCBMMTguMTYsMTIuOTYgTDE4LjA5LDEzLjAzIEwxOC4wMywxMy4w
OSBMMTcuOTYsMTMuMTYgTDE3Ljg4LDEzLjIxIEwxNy44MCwxMy4yNyBMMTcuNzIsMTMuMzEgTDE3
LjY0LDEzLjM2IEwxNy41NSwxMy4zOSBMMTcuNDYsMTMuNDMgTDE3LjM3LDEzLjQ1IEwxNy4yOCwx
My40NyBMMTcuMTksMTMuNDkgTDE3LjA5LDEzLjUwIEwxNy4wMCwxMy41MCBMMTYuOTEsMTMuNTAg
TDE2LjgxLDEzLjQ5IEwxNi43MiwxMy40NyBMMTYuNjMsMTMuNDUgTDE2LjU0LDEzLjQzIEwxNi40
NSwxMy4zOSBMMTYuMzYsMTMuMzYgTDE2LjI4LDEzLjMxIEwxNi4yMCwxMy4yNyBMMTYuMTIsMTMu
MjEgTDE2LjA0LDEzLjE2IEwxNS45NywxMy4wOSBMMTUuOTEsMTMuMDMgTDE1Ljg0LDEyLjk2IEwx
NS43OSwxMi44OCBMMTUuNzMsMTIuODAgTDE1LjY5LDEyLjcyIEwxNS42NCwxMi42NCBMMTUuNjEs
MTIuNTUgTDE1LjU3LDEyLjQ2IEwxNS41NSwxMi4zNyBMMTUuNTMsMTIuMjggTDE1LjUxLDEyLjE5
IEwxNS41MCwxMi4wOSBMMTUuNTAsMTIuMDAgTDE1LjUwLDExLjkxIEwxNS41MSwxMS44MSBMMTUu
NTMsMTEuNzIgTDE1LjU1LDExLjYzIEwxNS41NywxMS41NCBMMTUuNjEsMTEuNDUgTDE1LjY0LDEx
LjM2IEwxNS42OSwxMS4yOCBMMTUuNzMsMTEuMjAgTDE1Ljc5LDExLjEyIEwxNS44NCwxMS4wNCBM
MTUuOTEsMTAuOTcgTDE1Ljk3LDEwLjkxIEwxNi4wNCwxMC44NCBMMTYuMTIsMTAuNzkgTDE2LjIw
LDEwLjczIEwxNi4yOCwxMC42OSBMMTYuMzYsMTAuNjQgTDE2LjQ1LDEwLjYxIEwxNi41NCwxMC41
NyBMMTYuNjMsMTAuNTUgTDE2LjcyLDEwLjUzIEwxNi44MSwxMC41MSBMMTYuOTEsMTAuNTAgTDE3
LjAwLDEwLjUwIEwxNy4wOSwxMC41MCBMMTcuMTksMTAuNTEgTDE3LjI4LDEwLjUzIEwxNy4zNywx
MC41NSBMMTcuNDYsMTAuNTcgTDE3LjU1LDEwLjYxIEwxNy42NCwxMC42NCBMMTcuNzIsMTAuNjkg
TDE3LjgwLDEwLjczIEwxNy44OCwxMC43OSBMMTcuOTYsMTAuODQgTDE4LjAzLDEwLjkxIEwxOC4w
OSwxMC45NyBMMTguMTYsMTEuMDQgTDE4LjIxLDExLjEyIEwxOC4yNywxMS4yMCBMMTguMzEsMTEu
MjggTDE4LjM2LDExLjM2IEwxOC4zOSwxMS40NSBMMTguNDMsMTEuNTQgTDE4LjQ1LDExLjYzIEwx
OC40NywxMS43MiBMMTguNDksMTEuODEgTDE4LjUwLDExLjkxIFoiXQogICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoNjgyLjI5LDEyMi4wMykgc2l6ZSAxOC43NXgxMC4xMCBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lkdGg9Mi4wMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTAuMDAsMTkuMDAg
TDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCkBAIC0xMDgsOSArMTA4LDkgQEAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQg
KDE3LjUwLDM3Mi4wOCkgc2l6ZSA1eDcuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTTEzLjUwLDEyLjAwIEwxMy41MCwxMi4wOSBMMTMuNDksMTIuMTkgTDEz
LjQ3LDEyLjI4IEwxMy40NSwxMi4zNyBMMTMuNDMsMTIuNDYgTDEzLjM5LDEyLjU1IEwxMy4zNiwx
Mi42NCBMMTMuMzEsMTIuNzIgTDEzLjI3LDEyLjgwIEwxMy4yMSwxMi44OCBMMTMuMTYsMTIuOTYg
TDEzLjA5LDEzLjAzIEwxMy4wMywxMy4wOSBMMTIuOTYsMTMuMTYgTDEyLjg4LDEzLjIxIEwxMi44
MCwxMy4yNyBMMTIuNzIsMTMuMzEgTDEyLjY0LDEzLjM2IEwxMi41NSwxMy4zOSBMMTIuNDYsMTMu
NDMgTDEyLjM3LDEzLjQ1IEwxMi4yOCwxMy40NyBMMTIuMTksMTMuNDkgTDEyLjA5LDEzLjUwIEwx
Mi4wMCwxMy41MCBMMTEuOTEsMTMuNTAgTDExLjgxLDEzLjQ5IEwxMS43MiwxMy40NyBMMTEuNjMs
MTMuNDUgTDExLjU0LDEzLjQzIEwxMS40NSwxMy4zOSBMMTEuMzYsMTMuMzYgTDExLjI4LDEzLjMx
IEwxMS4yMCwxMy4yNyBMMTEuMTIsMTMuMjEgTDExLjA0LDEzLjE2IEwxMC45NywxMy4wOSBMMTAu
OTEsMTMuMDMgTDEwLjg0LDEyLjk2IEwxMC43OSwxMi44OCBMMTAuNzMsMTIuODAgTDEwLjY5LDEy
LjcyIEwxMC42NCwxMi42NCBMMTAuNjEsMTIuNTUgTDEwLjU3LDEyLjQ2IEwxMC41NSwxMi4zNyBM
MTAuNTMsMTIuMjggTDEwLjUxLDEyLjE5IEwxMC41MCwxMi4wOSBMMTAuNTAsMTIuMDAgTDEwLjUw
LDExLjkxIEwxMC41MSwxMS44MSBMMTAuNTMsMTEuNzIgTDEwLjU1LDExLjYzIEwxMC41NywxMS41
NCBMMTAuNjEsMTEuNDUgTDEwLjY0LDExLjM2IEwxMC42OSwxMS4yOCBMMTAuNzMsMTEuMjAgTDEw
Ljc5LDExLjEyIEwxMC44NCwxMS4wNCBMMTAuOTEsMTAuOTcgTDEwLjk3LDEwLjkxIEwxMS4wNCwx
MC44NCBMMTEuMTIsMTAuNzkgTDExLjIwLDEwLjczIEwxMS4yOCwxMC42OSBMMTEuMzYsMTAuNjQg
TDExLjQ1LDEwLjYxIEwxMS41NCwxMC41NyBMMTEuNjMsMTAuNTUgTDExLjcyLDEwLjUzIEwxMS44
MSwxMC41MSBMMTEuOTEsMTAuNTAgTDEyLjAwLDEwLjUwIEwxMi4wOSwxMC41MCBMMTIuMTksMTAu
NTEgTDEyLjI4LDEwLjUzIEwxMi4zNywxMC41NSBMMTIuNDYsMTAuNTcgTDEyLjU1LDEwLjYxIEwx
Mi42NCwxMC42NCBMMTIuNzIsMTAuNjkgTDEyLjgwLDEwLjczIEwxMi44OCwxMC43OSBMMTIuOTYs
MTAuODQgTDEzLjAzLDEwLjkxIEwxMy4wOSwxMC45NyBMMTMuMTYsMTEuMDQgTDEzLjIxLDExLjEy
IEwxMy4yNywxMS4yMCBMMTMuMzEsMTEuMjggTDEzLjM2LDExLjM2IEwxMy4zOSwxMS40NSBMMTMu
NDMsMTEuNTQgTDEzLjQ1LDExLjYzIEwxMy40NywxMS43MiBMMTMuNDksMTEuODEgTDEzLjUwLDEx
LjkxIFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgyNS44MywzNzIu
MDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBM
MTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwxMi41NSBMMTguMzYsMTIuNjQgTDE4LjMx
LDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODggTDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4w
MyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3
LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMuMzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywx
My40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwxNy4wOSwxMy41MCBMMTcuMDAsMTMuNTAg
TDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIsMTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41
NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMu
MjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUuOTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwx
NS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEyLjgwIEwxNS42OSwxMi43MiBMMTUuNjQs
MTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBMMTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4
IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUwLDEyLjAwIEwxNS41MCwxMS45MSBMMTUu
NTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDEx
LjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1LjczLDExLjIwIEwxNS43OSwxMS4xMiBM
MTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45NywxMC45MSBMMTYuMDQsMTAuODQgTDE2LjEy
LDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkgTDE2LjM2LDEwLjY0IEwxNi40NSwxMC42
MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2
LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAuNTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwx
MC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwxNy41NSwxMC42MSBMMTcuNjQsMTAuNjQg
TDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgsMTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4w
MywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEu
MjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTguMzksMTEuNDUgTDE4LjQzLDExLjU0IEwx
OC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDExLjgxIEwxOC41MCwxMS45MSBaIl0KICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE1LjYzLDM5MS4zOCkgc2l6ZSAxOC43
NXgxNS4xNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdIFtzdHJva2Ugd2lk
dGg9Mi4wMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
MTAuMDAsMTkuMDAgTDE1LjAwLDIzLjAwIEwyMC4wMCwxOS4wMCJdCi0gICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDgzLjMzLDMzMy4zMykgc2l6ZSA1MHgxMDAgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNTAuMDAsMjAwLjAwKX1dCi0gICAgICAgICAg
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIge3N2Z30gYXQgKDgzLjMzLDMzMy4zMykgc2l6ZSA1
MHgxMDAKLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg4My4zMywzMzMuMzMpIHNp
emUgNTB4MTAwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMC41MCwwLjUwIEwyOS41MCww
LjUwIEwyOS41MCwzOS41MCBMMC41MCwzOS41MCBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoODMuMzMsMzMzLjMzKSBzaXplIDUwLjAweDEwMCBbdHJhbnNmb3JtPXttPSgo
MS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg1MC4wMCwyMDAuMDApfV0KKyAgICAgICAgICBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3ZnfSBhdCAoODMuMzMsMzMzLjMzKSBzaXplIDUwLjAw
eDEwMAorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDgzLjMzLDMzMy4zMykgc2l6
ZSA1MC4wMHgxMDAgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0wLjUwLDAuNTAgTDI5LjUw
LDAuNTAgTDI5LjUwLDM5LjUwIEwwLjUwLDM5LjUwIFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoOTEuNjcsMzU4LjMzKSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsNS4wMCl9XQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICg5MS42NywzNTguMzMpIHNpemUgMzMuMzN4NTAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0iTTI1LjAwLDE1LjAwIEwy
NC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42OSwxNy40OSBMMjQuNTEs
MTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTkuODIgTDIzLjQ0LDIwLjM2
IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwyMS44NSwyMi4yOSBMMjEu
MzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIsMjMuNzYgTDE5LjI2LDI0
LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5IEwxNi44NywyNC44MiBM
MTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQuMzcsMjQuOTggTDEzLjc1
LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0LjUxIEwxMS4zMiwyNC4z
MCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5LjEyLDIzLjA5IEw4LjYz
LDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3IEw2LjkxLDIwLjg4IEw2
LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4LjY4IEw1LjQ5LDE4LjA5
IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAyLDE1LjYzIEw1LjAwLDE1
LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1LjMxLDEyLjUxIEw1LjQ5
LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4IEw2LjU2LDkuNjQgTDYu
OTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBMOC42Myw3LjI5IEw5LjEy
LDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBMMTEuMzIsNS43MCBMMTEu
OTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4wOCBMMTQuMzcsNS4wMiBM
MTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcsNS4xOCBMMTcuNDksNS4z
MSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTkuODIsNi4yNCBMMjAuMzYs
Ni41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBMMjIuMjksOC4xNSBMMjIu
NzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAuMTggTDI0LjA1LDEwLjc0
IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwyNC44MiwxMy4xMyBMMjQu
OTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgxMDAuODMsMzcyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUwLDEyLjA5IEwxMy40OSwx
Mi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40NiBMMTMuMzksMTIuNTUg
TDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEzLjIxLDEyLjg4IEwxMy4x
NiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45NiwxMy4xNiBMMTIuODgsMTMu
MjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYgTDEyLjU1LDEzLjM5IEwx
Mi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4xOSwxMy40OSBMMTIuMDks
MTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMuNDkgTDExLjcyLDEzLjQ3
IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwxMS4zNiwxMy4zNiBMMTEu
MjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQsMTMuMTYgTDEwLjk3LDEz
LjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4IEwxMC43MywxMi44MCBM
MTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAuNTcsMTIuNDYgTDEwLjU1
LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEyLjA5IEwxMC41MCwxMi4w
MCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBMMTAuNTUsMTEuNjMgTDEw
LjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5LDExLjI4IEwxMC43Mywx
MS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45NyBMMTAuOTcsMTAuOTEg
TDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDExLjI4LDEwLjY5IEwxMS4z
NiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42MywxMC41NSBMMTEuNzIsMTAu
NTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAgTDEyLjA5LDEwLjUwIEwx
Mi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40NiwxMC41NyBMMTIuNTUs
MTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAuNzMgTDEyLjg4LDEwLjc5
IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwxMy4xNiwxMS4wNCBMMTMu
MjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYsMTEuMzYgTDEzLjM5LDEx
LjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcyIEwxMy40OSwxMS44MSBM
MTMuNTAsMTEuOTEgWiJdCkBAIC0xMTksOCArMTE5LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2Ni42NywzMzMuMzMp
IHNpemUgNTB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEw
MC4wMCwyMDAuMDApfV0KICAgICAgICAgICBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciB7c3Zn
fSBhdCAoMTY2LjY3LDMzMy4zMykgc2l6ZSA1MHgxMDAKICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgxNjYuNjcsMzMzLjMzKSBzaXplIDUweDEwMCBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTTAuNTAsMC41MCBMMjkuNTAsMC41MCBMMjkuNTAsMzkuNTAgTDAuNTAsMzkuNTAg
WiJdCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNzUuMDAsMzU4LjMz
KSBzaXplIDMzLjMzeDUwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDAuMDAsNS4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxNzUu
MDAsMzU4LjMzKSBzaXplIDMzLjMzeDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZG
MDBdfV0gW2RhdGE9Ik0yNS4wMCwxNS4wMCBMMjQuOTgsMTUuNjMgTDI0LjkyLDE2LjI1IEwyNC44
MiwxNi44NyBMMjQuNjksMTcuNDkgTDI0LjUxLDE4LjA5IEwyNC4zMCwxOC42OCBMMjQuMDUsMTku
MjYgTDIzLjc2LDE5LjgyIEwyMy40NCwyMC4zNiBMMjMuMDksMjAuODggTDIyLjcxLDIxLjM3IEwy
Mi4yOSwyMS44NSBMMjEuODUsMjIuMjkgTDIxLjM3LDIyLjcxIEwyMC44OCwyMy4wOSBMMjAuMzYs
MjMuNDQgTDE5LjgyLDIzLjc2IEwxOS4yNiwyNC4wNSBMMTguNjgsMjQuMzAgTDE4LjA5LDI0LjUx
IEwxNy40OSwyNC42OSBMMTYuODcsMjQuODIgTDE2LjI1LDI0LjkyIEwxNS42MywyNC45OCBMMTUu
MDAsMjUuMDAgTDE0LjM3LDI0Ljk4IEwxMy43NSwyNC45MiBMMTMuMTMsMjQuODIgTDEyLjUxLDI0
LjY5IEwxMS45MSwyNC41MSBMMTEuMzIsMjQuMzAgTDEwLjc0LDI0LjA1IEwxMC4xOCwyMy43NiBM
OS42NCwyMy40NCBMOS4xMiwyMy4wOSBMOC42MywyMi43MSBMOC4xNSwyMi4yOSBMNy43MSwyMS44
NSBMNy4yOSwyMS4zNyBMNi45MSwyMC44OCBMNi41NiwyMC4zNiBMNi4yNCwxOS44MiBMNS45NSwx
OS4yNiBMNS43MCwxOC42OCBMNS40OSwxOC4wOSBMNS4zMSwxNy40OSBMNS4xOCwxNi44NyBMNS4w
OCwxNi4yNSBMNS4wMiwxNS42MyBMNS4wMCwxNS4wMCBMNS4wMiwxNC4zNyBMNS4wOCwxMy43NSBM
NS4xOCwxMy4xMyBMNS4zMSwxMi41MSBMNS40OSwxMS45MSBMNS43MCwxMS4zMiBMNS45NSwxMC43
NCBMNi4yNCwxMC4xOCBMNi41Niw5LjY0IEw2LjkxLDkuMTIgTDcuMjksOC42MyBMNy43MSw4LjE1
IEw4LjE1LDcuNzEgTDguNjMsNy4yOSBMOS4xMiw2LjkxIEw5LjY0LDYuNTYgTDEwLjE4LDYuMjQg
TDEwLjc0LDUuOTUgTDExLjMyLDUuNzAgTDExLjkxLDUuNDkgTDEyLjUxLDUuMzEgTDEzLjEzLDUu
MTggTDEzLjc1LDUuMDggTDE0LjM3LDUuMDIgTDE1LjAwLDUuMDAgTDE1LjYzLDUuMDIgTDE2LjI1
LDUuMDggTDE2Ljg3LDUuMTggTDE3LjQ5LDUuMzEgTDE4LjA5LDUuNDkgTDE4LjY4LDUuNzAgTDE5
LjI2LDUuOTUgTDE5LjgyLDYuMjQgTDIwLjM2LDYuNTYgTDIwLjg4LDYuOTEgTDIxLjM3LDcuMjkg
TDIxLjg1LDcuNzEgTDIyLjI5LDguMTUgTDIyLjcxLDguNjMgTDIzLjA5LDkuMTIgTDIzLjQ0LDku
NjQgTDIzLjc2LDEwLjE4IEwyNC4wNSwxMC43NCBMMjQuMzAsMTEuMzIgTDI0LjUxLDExLjkxIEwy
NC42OSwxMi41MSBMMjQuODIsMTMuMTMgTDI0LjkyLDEzLjc1IEwyNC45OCwxNC4zNyBaIl0KKyAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE3NSwzNTguMzMpIHNpemUgMzMu
MzN4NTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCw1LjAw
KX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE3NSwzNTguMzMpIHNp
emUgMzMuMzN4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkYwMF19XSBbZGF0YT0i
TTI1LjAwLDE1LjAwIEwyNC45OCwxNS42MyBMMjQuOTIsMTYuMjUgTDI0LjgyLDE2Ljg3IEwyNC42
OSwxNy40OSBMMjQuNTEsMTguMDkgTDI0LjMwLDE4LjY4IEwyNC4wNSwxOS4yNiBMMjMuNzYsMTku
ODIgTDIzLjQ0LDIwLjM2IEwyMy4wOSwyMC44OCBMMjIuNzEsMjEuMzcgTDIyLjI5LDIxLjg1IEwy
MS44NSwyMi4yOSBMMjEuMzcsMjIuNzEgTDIwLjg4LDIzLjA5IEwyMC4zNiwyMy40NCBMMTkuODIs
MjMuNzYgTDE5LjI2LDI0LjA1IEwxOC42OCwyNC4zMCBMMTguMDksMjQuNTEgTDE3LjQ5LDI0LjY5
IEwxNi44NywyNC44MiBMMTYuMjUsMjQuOTIgTDE1LjYzLDI0Ljk4IEwxNS4wMCwyNS4wMCBMMTQu
MzcsMjQuOTggTDEzLjc1LDI0LjkyIEwxMy4xMywyNC44MiBMMTIuNTEsMjQuNjkgTDExLjkxLDI0
LjUxIEwxMS4zMiwyNC4zMCBMMTAuNzQsMjQuMDUgTDEwLjE4LDIzLjc2IEw5LjY0LDIzLjQ0IEw5
LjEyLDIzLjA5IEw4LjYzLDIyLjcxIEw4LjE1LDIyLjI5IEw3LjcxLDIxLjg1IEw3LjI5LDIxLjM3
IEw2LjkxLDIwLjg4IEw2LjU2LDIwLjM2IEw2LjI0LDE5LjgyIEw1Ljk1LDE5LjI2IEw1LjcwLDE4
LjY4IEw1LjQ5LDE4LjA5IEw1LjMxLDE3LjQ5IEw1LjE4LDE2Ljg3IEw1LjA4LDE2LjI1IEw1LjAy
LDE1LjYzIEw1LjAwLDE1LjAwIEw1LjAyLDE0LjM3IEw1LjA4LDEzLjc1IEw1LjE4LDEzLjEzIEw1
LjMxLDEyLjUxIEw1LjQ5LDExLjkxIEw1LjcwLDExLjMyIEw1Ljk1LDEwLjc0IEw2LjI0LDEwLjE4
IEw2LjU2LDkuNjQgTDYuOTEsOS4xMiBMNy4yOSw4LjYzIEw3LjcxLDguMTUgTDguMTUsNy43MSBM
OC42Myw3LjI5IEw5LjEyLDYuOTEgTDkuNjQsNi41NiBMMTAuMTgsNi4yNCBMMTAuNzQsNS45NSBM
MTEuMzIsNS43MCBMMTEuOTEsNS40OSBMMTIuNTEsNS4zMSBMMTMuMTMsNS4xOCBMMTMuNzUsNS4w
OCBMMTQuMzcsNS4wMiBMMTUuMDAsNS4wMCBMMTUuNjMsNS4wMiBMMTYuMjUsNS4wOCBMMTYuODcs
NS4xOCBMMTcuNDksNS4zMSBMMTguMDksNS40OSBMMTguNjgsNS43MCBMMTkuMjYsNS45NSBMMTku
ODIsNi4yNCBMMjAuMzYsNi41NiBMMjAuODgsNi45MSBMMjEuMzcsNy4yOSBMMjEuODUsNy43MSBM
MjIuMjksOC4xNSBMMjIuNzEsOC42MyBMMjMuMDksOS4xMiBMMjMuNDQsOS42NCBMMjMuNzYsMTAu
MTggTDI0LjA1LDEwLjc0IEwyNC4zMCwxMS4zMiBMMjQuNTEsMTEuOTEgTDI0LjY5LDEyLjUxIEwy
NC44MiwxMy4xMyBMMjQuOTIsMTMuNzUgTDI0Ljk4LDE0LjM3IFoiXQogICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgxODQuMTcsMzcyLjA4KSBzaXplIDV4Ny41MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNMTMuNTAsMTIuMDAgTDEzLjUw
LDEyLjA5IEwxMy40OSwxMi4xOSBMMTMuNDcsMTIuMjggTDEzLjQ1LDEyLjM3IEwxMy40MywxMi40
NiBMMTMuMzksMTIuNTUgTDEzLjM2LDEyLjY0IEwxMy4zMSwxMi43MiBMMTMuMjcsMTIuODAgTDEz
LjIxLDEyLjg4IEwxMy4xNiwxMi45NiBMMTMuMDksMTMuMDMgTDEzLjAzLDEzLjA5IEwxMi45Niwx
My4xNiBMMTIuODgsMTMuMjEgTDEyLjgwLDEzLjI3IEwxMi43MiwxMy4zMSBMMTIuNjQsMTMuMzYg
TDEyLjU1LDEzLjM5IEwxMi40NiwxMy40MyBMMTIuMzcsMTMuNDUgTDEyLjI4LDEzLjQ3IEwxMi4x
OSwxMy40OSBMMTIuMDksMTMuNTAgTDEyLjAwLDEzLjUwIEwxMS45MSwxMy41MCBMMTEuODEsMTMu
NDkgTDExLjcyLDEzLjQ3IEwxMS42MywxMy40NSBMMTEuNTQsMTMuNDMgTDExLjQ1LDEzLjM5IEwx
MS4zNiwxMy4zNiBMMTEuMjgsMTMuMzEgTDExLjIwLDEzLjI3IEwxMS4xMiwxMy4yMSBMMTEuMDQs
MTMuMTYgTDEwLjk3LDEzLjA5IEwxMC45MSwxMy4wMyBMMTAuODQsMTIuOTYgTDEwLjc5LDEyLjg4
IEwxMC43MywxMi44MCBMMTAuNjksMTIuNzIgTDEwLjY0LDEyLjY0IEwxMC42MSwxMi41NSBMMTAu
NTcsMTIuNDYgTDEwLjU1LDEyLjM3IEwxMC41MywxMi4yOCBMMTAuNTEsMTIuMTkgTDEwLjUwLDEy
LjA5IEwxMC41MCwxMi4wMCBMMTAuNTAsMTEuOTEgTDEwLjUxLDExLjgxIEwxMC41MywxMS43MiBM
MTAuNTUsMTEuNjMgTDEwLjU3LDExLjU0IEwxMC42MSwxMS40NSBMMTAuNjQsMTEuMzYgTDEwLjY5
LDExLjI4IEwxMC43MywxMS4yMCBMMTAuNzksMTEuMTIgTDEwLjg0LDExLjA0IEwxMC45MSwxMC45
NyBMMTAuOTcsMTAuOTEgTDExLjA0LDEwLjg0IEwxMS4xMiwxMC43OSBMMTEuMjAsMTAuNzMgTDEx
LjI4LDEwLjY5IEwxMS4zNiwxMC42NCBMMTEuNDUsMTAuNjEgTDExLjU0LDEwLjU3IEwxMS42Mywx
MC41NSBMMTEuNzIsMTAuNTMgTDExLjgxLDEwLjUxIEwxMS45MSwxMC41MCBMMTIuMDAsMTAuNTAg
TDEyLjA5LDEwLjUwIEwxMi4xOSwxMC41MSBMMTIuMjgsMTAuNTMgTDEyLjM3LDEwLjU1IEwxMi40
NiwxMC41NyBMMTIuNTUsMTAuNjEgTDEyLjY0LDEwLjY0IEwxMi43MiwxMC42OSBMMTIuODAsMTAu
NzMgTDEyLjg4LDEwLjc5IEwxMi45NiwxMC44NCBMMTMuMDMsMTAuOTEgTDEzLjA5LDEwLjk3IEwx
My4xNiwxMS4wNCBMMTMuMjEsMTEuMTIgTDEzLjI3LDExLjIwIEwxMy4zMSwxMS4yOCBMMTMuMzYs
MTEuMzYgTDEzLjM5LDExLjQ1IEwxMy40MywxMS41NCBMMTMuNDUsMTEuNjMgTDEzLjQ3LDExLjcy
IEwxMy40OSwxMS44MSBMMTMuNTAsMTEuOTEgWiJdCiAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e2NpcmNsZX0gYXQgKDE5Mi41MCwzNzIuMDgpIHNpemUgNXg3LjUwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0xOC41MCwxMi4wMCBMMTguNTAsMTIuMDkgTDE4
LjQ5LDEyLjE5IEwxOC40NywxMi4yOCBMMTguNDUsMTIuMzcgTDE4LjQzLDEyLjQ2IEwxOC4zOSwx
Mi41NSBMMTguMzYsMTIuNjQgTDE4LjMxLDEyLjcyIEwxOC4yNywxMi44MCBMMTguMjEsMTIuODgg
TDE4LjE2LDEyLjk2IEwxOC4wOSwxMy4wMyBMMTguMDMsMTMuMDkgTDE3Ljk2LDEzLjE2IEwxNy44
OCwxMy4yMSBMMTcuODAsMTMuMjcgTDE3LjcyLDEzLjMxIEwxNy42NCwxMy4zNiBMMTcuNTUsMTMu
MzkgTDE3LjQ2LDEzLjQzIEwxNy4zNywxMy40NSBMMTcuMjgsMTMuNDcgTDE3LjE5LDEzLjQ5IEwx
Ny4wOSwxMy41MCBMMTcuMDAsMTMuNTAgTDE2LjkxLDEzLjUwIEwxNi44MSwxMy40OSBMMTYuNzIs
MTMuNDcgTDE2LjYzLDEzLjQ1IEwxNi41NCwxMy40MyBMMTYuNDUsMTMuMzkgTDE2LjM2LDEzLjM2
IEwxNi4yOCwxMy4zMSBMMTYuMjAsMTMuMjcgTDE2LjEyLDEzLjIxIEwxNi4wNCwxMy4xNiBMMTUu
OTcsMTMuMDkgTDE1LjkxLDEzLjAzIEwxNS44NCwxMi45NiBMMTUuNzksMTIuODggTDE1LjczLDEy
LjgwIEwxNS42OSwxMi43MiBMMTUuNjQsMTIuNjQgTDE1LjYxLDEyLjU1IEwxNS41NywxMi40NiBM
MTUuNTUsMTIuMzcgTDE1LjUzLDEyLjI4IEwxNS41MSwxMi4xOSBMMTUuNTAsMTIuMDkgTDE1LjUw
LDEyLjAwIEwxNS41MCwxMS45MSBMMTUuNTEsMTEuODEgTDE1LjUzLDExLjcyIEwxNS41NSwxMS42
MyBMMTUuNTcsMTEuNTQgTDE1LjYxLDExLjQ1IEwxNS42NCwxMS4zNiBMMTUuNjksMTEuMjggTDE1
LjczLDExLjIwIEwxNS43OSwxMS4xMiBMMTUuODQsMTEuMDQgTDE1LjkxLDEwLjk3IEwxNS45Nywx
MC45MSBMMTYuMDQsMTAuODQgTDE2LjEyLDEwLjc5IEwxNi4yMCwxMC43MyBMMTYuMjgsMTAuNjkg
TDE2LjM2LDEwLjY0IEwxNi40NSwxMC42MSBMMTYuNTQsMTAuNTcgTDE2LjYzLDEwLjU1IEwxNi43
MiwxMC41MyBMMTYuODEsMTAuNTEgTDE2LjkxLDEwLjUwIEwxNy4wMCwxMC41MCBMMTcuMDksMTAu
NTAgTDE3LjE5LDEwLjUxIEwxNy4yOCwxMC41MyBMMTcuMzcsMTAuNTUgTDE3LjQ2LDEwLjU3IEwx
Ny41NSwxMC42MSBMMTcuNjQsMTAuNjQgTDE3LjcyLDEwLjY5IEwxNy44MCwxMC43MyBMMTcuODgs
MTAuNzkgTDE3Ljk2LDEwLjg0IEwxOC4wMywxMC45MSBMMTguMDksMTAuOTcgTDE4LjE2LDExLjA0
IEwxOC4yMSwxMS4xMiBMMTguMjcsMTEuMjAgTDE4LjMxLDExLjI4IEwxOC4zNiwxMS4zNiBMMTgu
MzksMTEuNDUgTDE4LjQzLDExLjU0IEwxOC40NSwxMS42MyBMMTguNDcsMTEuNzIgTDE4LjQ5LDEx
LjgxIEwxOC41MCwxMS45MSBaIl0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDE4Mi4yOSwzOTEuMzgpIHNpemUgMTguNzV4MTUuMTUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDAwMDAwXSBbc3Ryb2tlIHdpZHRoPTIuMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTEwLjAwLDE5LjAwIEwxNS4wMCwyMy4wMCBMMjAuMDAs
MTkuMDAiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9oaXhpZS9wZXJmLzAw
MS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9oaXhpZS9wZXJmLzAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9oaXhpZS9wZXJmLzAwMS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjQzLjgwLDQxNC4wMCkgc2l6ZSAzNy4yMHgyMiBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTIwLjIwLDIxOC44
MCBDLTIwLjIwLDIxOC44MCwtMTkuMDAsMjE0LjAwLC0yMS44MCwyMTQuODAgQy0yMy44MCwyMTQu
ODAsLTUwLjIwLDIyNi40MCwtNTYuMjAsMjM2LjAwIEMtNTYuMjAsMjM2LjAwLC0yNi42MCwyMTQu
NDAsLTIwLjIwLDIxOC44MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNTUuNDAs
NDE5LjYwKSBzaXplIDEzNC4wMHg4Ny4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNLTM0LjYwLDI2Ni40MCBMLTQ0LjYwLDI3NC4wMCBDLTQ0LjYwLDI3NC4w
MCwtMzQuMjAsMjY2LjQwLC0zMC42MCwyNjcuNjAgQy0zMC42MCwyNjcuNjAsLTM3LjQwLDI3OC44
MCwtMzguMjAsMjg0LjAwIEMtMzguMjAsMjg0LjAwLC0yNy44MCwyNzEuMjAsLTIyLjIwLDI3MS42
MCBDLTIyLjIwLDI3MS42MCwtMTQuNjAsMjcyLjAwLC0xNC42MCwyODIuODAgQy0xNC42MCwyODIu
ODAsLTkuMDAsMjcyLjQwLC01LjgwLDI3Mi44MCBDLTUuODAsMjcyLjgwLC00LjYwLDI3OS4yMCwt
NS44MCwyODYuMDAgQy01LjgwLDI4Ni4wMCwtMS44MCwyNzguNDAsMi4yMCwyODAuMDAgQzIuMjAs
MjgwLjAwLDguNjAsMjc4LjAwLDcuODAsMjg5LjYwIEM3LjgwLDI4OS42MCw3LjgwLDMwMC4wMCw3
LjAwLDMwMi44MCBDNy4wMCwzMDIuODAsMTIuNjAsMjc2LjQwLDE1LjAwLDI3Ni4wMCBDMTUuMDAs
Mjc2LjAwLDIzLjAwLDI3NC44MCwyNy44MCwyODMuNjAgQzI3LjgwLDI4My42MCwyMy44MCwyNzYu
MDAsMjguNjAsMjc4LjAwIEMyOC42MCwyNzguMDAsMzkuNDAsMjc5LjYwLDQyLjYwLDI4Ni40MCBD
NDIuNjAsMjg2LjQwLDM1LjgwLDI3NC40MCw0MS40MCwyNzcuNjAgQzQxLjQwLDI3Ny42MCw0OC4y
MCwyNzcuNjAsNDkuNDAsMjg0LjAwIEM0OS40MCwyODQuMDAsNTcuODAsMzA1LjIwLDU5LjgwLDMw
Ni44MCBDNTkuODAsMzA2LjgwLDUyLjIwLDI4NS4yMCw1My44MCwyODUuMjAgQzUzLjgwLDI4NS4y
MCw1MS44MCwyNzMuMjAsNTcuMDAsMjg4LjAwIEM1Ny4wMCwyODguMDAsNTMuODAsMjc0LjAwLDU5
LjQwLDI3NC44MCBDNjUuMDAsMjc1LjYwLDY5LjQwLDI4NS42MCw3Ny44MCwyODMuMjAgQzc3Ljgw
LDI4My4yMCw4Ny40MCwyODguODAsODkuNDAsMjE5LjYwIEwtMzQuNjAsMjY2LjQwIFoiXQogICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI1OC42MCwzNDkuMjApIHNpemUgMTQ0LjAweDEyNy42
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNLTI5LjgwLDE3
My42MCBDLTI5LjgwLDE3My42MCwtMTUuMDAsMTY3LjYwLDI1LjAwLDE3My42MCBDMjUuMDAsMTcz
LjYwLDMyLjIwLDE3NC4wMCwzOS4wMCwxNjUuMjAgQzQ1LjgwLDE1Ni40MCw3Mi42MCwxNDkuMjAs
NzkuMDAsMTUxLjIwIEw4OC42MCwxNTcuNjAgTDg5LjQwLDE1OC44MCBDODkuNDAsMTU4LjgwLDEw
MS44MCwxNjkuMjAsMTAyLjIwLDE3Ni44MCBDMTAyLjYwLDE4NC40MCw4Ny44MCwyMzIuNDAsNzgu
MjAsMjQ4LjQwIEM2OC42MCwyNjQuNDAsNTkuMDAsMjc2LjgwLDM5LjgwLDI3NC40MCBDMzkuODAs
Mjc0LjQwLDE5LjAwLDI3MC40MCwtNi42MCwyNzQuNDAgQy02LjYwLDI3NC40MCwtMzUuODAsMjcy
LjgwLC0zOC42MCwyNjQuODAgQy00MS40MCwyNTYuODAsLTI3LjQwLDI0MS42MCwtMjcuNDAsMjQx
LjYwIEMtMjcuNDAsMjQxLjYwLC0yMy4wMCwyMzMuMjAsLTI0LjIwLDIxOC44MCBDLTI1LjQwLDIw
NC40MCwtMjUuMDAsMTc2LjQwLC0yOS44MCwxNzMuNjAgWiJdCi0gICAgICBSZW5kZXJQYXRoIHtw
YXRofSBhdCAoMjY5LDM3NS42MCkgc2l6ZSAxMjIuODB4OTEuMjUgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0U1NjY4Q119XSBbZGF0YT0iTS03LjgwLDE3NS42MCBDMC42MCwxOTQuMDAsLTI5
LjAwLDI1OS4yMCwtMjkuMDAsMjU5LjIwIEMtMzEuMDAsMjYwLjgwLC0xNi4zNCwyNjYuODUsLTYu
MjAsMjY0LjQwIEM0Ljc1LDI2MS43Niw0NS4wMCwyNjYuMDAsNDUuMDAsMjY2LjAwIEM2OC42MCwy
NTAuNDAsODEuNDAsMjA2LjAwLDgxLjQwLDIwNi4wMCBDODEuNDAsMjA2LjAwLDkxLjgwLDE4Mi4w
MCw3NC4yMCwxNzguODAgQzU2LjYwLDE3NS42MCwtNy44MCwxNzUuNjAsLTcuODAsMTc1LjYwIFoi
XQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI2OSwzNzUuNjApIHNpemUgMTIyLjgweDkx
LjI0IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNTY2OENdfV0gW2RhdGE9Ik0tNy44MCwx
NzUuNjAgQzAuNjAsMTk0LjAwLC0yOS4wMCwyNTkuMjAsLTI5LjAwLDI1OS4yMCBDLTMxLjAwLDI2
MC44MCwtMTYuMzQsMjY2Ljg1LC02LjIwLDI2NC40MCBDNC43NSwyNjEuNzYsNDUuMDAsMjY2LjAw
LDQ1LjAwLDI2Ni4wMCBDNjguNjAsMjUwLjQwLDgxLjQwLDIwNi4wMCw4MS40MCwyMDYuMDAgQzgx
LjQwLDIwNi4wMCw5MS44MCwxODIuMDAsNzQuMjAsMTc4LjgwIEM1Ni42MCwxNzUuNjAsLTcuODAs
MTc1LjYwLC03LjgwLDE3NS42MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyOTAu
MTcsMzUzLjMzKSBzaXplIDk0LjYzeDU0LjY4IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNC
MjMyNTldfV0gW2RhdGE9Ik0tOS44MywyMDYuNTAgQy02LjUxLDE5My43MSwtNC45MiwxODEuOTEs
LTcuODAsMTc1LjYwIEMtNy44MCwxNzUuNjAsNTQuNjAsMTgyLjAwLDY1LjgwLDE2MS4yMCBDNzAu
MDQsMTUzLjMzLDg0LjgwLDE4NC4wMCw4NC40MCwxOTMuNjAgQzg0LjQwLDE5My42MCwyMS40MCwy
MDguMDAsNi42MCwxOTYuODAgTC05LjgzLDIwNi41MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgyOTEuNDAsNDE0LjQwKSBzaXplIDcyLjQweDM2LjgwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNBNTI2NENdfV0gW2RhdGE9Ik0tNS40MCwyMjIuODAgQy01LjQwLDIyMi44MCwt
My40MCwyMzAuMDAsLTUuODAsMjM0LjAwIEMtNS44MCwyMzQuMDAsLTcuNDAsMjM0LjgwLC04LjYw
LDIzNS4yMCBDLTguNjAsMjM1LjIwLC03LjQwLDIzOC44MCwtMS40MCwyNDAuNDAgQy0xLjQwLDI0
MC40MCwwLjYwLDI0NC44MCwzLjAwLDI0NS4yMCBDNS40MCwyNDUuNjAsMTAuMjAsMjUxLjIwLDE0
LjIwLDI1MC4wMCBDMTguMjAsMjQ4LjgwLDI5LjQwLDI0NC44MCwyOS40MCwyNDQuODAgQzI5LjQw
LDI0NC44MCwzNS4wMCwyNDEuNjAsNDMuODAsMjQ1LjIwIEM0My44MCwyNDUuMjAsNDYuMTcsMjQ0
LjQwLDQ2LjYwLDI0MC40MCBDNDcuMTAsMjM1LjcwLDUwLjIwLDIzMi4wMCw1Mi4yMCwyMzAuMDAg
QzU0LjIwLDIyOC4wMCw2My44MCwyMTUuMjAsNjIuNjAsMjE0LjgwIEM2MS40MCwyMTQuNDAsLTUu
NDAsMjIyLjgwLC01LjQwLDIyMi44MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgy
ODguNTIsMzU3LjI4KSBzaXplIDg4Ljg2eDg0LjQyIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkY3MjdGXX1dIFtkYXRh
PSJNLTkuODAsMTc0LjQwIEMtOS44MCwxNzQuNDAsLTEyLjYwLDE5Ni44MCwtOS40MCwyMDUuMjAg
Qy02LjIwLDIxMy42MCwtNy4wMCwyMTUuNjAsLTcuODAsMjE5LjYwIEMtOC42MCwyMjMuNjAsLTQu
MjAsMjMzLjYwLDEuNDAsMjM5LjYwIEwxMy40MCwyNDEuMjAgQzEzLjQwLDI0MS4yMCwyOC42MCwy
MzcuNjAsMzcuODAsMjQwLjQwIEMzNy44MCwyNDAuNDAsNDYuNzksMjQxLjc0LDUwLjIwLDIyNi44
MCBDNTAuMjAsMjI2LjgwLDU1LjAwLDIyMC40MCw2Mi4yMCwyMTcuNjAgQzY5LjQwLDIxNC44MCw3
Ni42MCwxNzMuMjAsNzIuNjAsMTY1LjIwIEM2OC42MCwxNTcuMjAsNTQuMjAsMTUyLjgwLDM4LjIw
LDE2OC40MCBDMjIuMjAsMTg0LjAwLDIwLjIwLDE2Ny4yMCwtOS44MCwxNzQuNDAgWiJdCkBAIC0x
MzEsMTIgKzEzMSwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgyMzMuNDcsMjA2LjQ2KSBzaXplIDIuMjZ4NS4wOSBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJNLTY1LjQwLDExLjU1IEMtNjYuMDMs
MTEuNTUsLTY2LjUzLDEwLjQxLC02Ni41Myw5LjAwIEMtNjYuNTMsNy41OSwtNjYuMDMsNi40NSwt
NjUuNDAsNi40NSBDLTY0Ljc4LDYuNDUsLTY0LjI3LDcuNTksLTY0LjI3LDkuMDAgQy02NC4yNywx
MC40MSwtNjQuNzgsMTEuNTUsLTY1LjQwLDExLjU1IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDIzNC42MCwyMDkpIHNpemUgMHgwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0tNjUuNDAsOS4wMCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9
IGF0ICgxNzguMTUsMjk1LjUwKSBzaXplIDg0LjI1eDYyLjQyIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0tMTExLjAwLDEwOS42MCBDLTExMS4wMCwxMDkuNjAs
LTExNi42MCwxMTkuNjAsLTkxLjgwLDExMy42MCBDLTkxLjgwLDExMy42MCwtNzcuODAsMTEyLjQw
LC03NS40MCwxMTAuMDAgQy03NC4yMCwxMTAuODAsLTY1LjgzLDExMy43MywtNjMuMDAsMTE0LjQw
IEMtNTYuMjAsMTE2LjAwLC00Ny44MCwxMDYuMDAsLTQ3LjgwLDEwNi4wMCBDLTQ3LjgwLDEwNi4w
MCwtNDMuMjAsOTUuNTAsLTQwLjQwLDk1LjUwIEMtMzcuNjAsOTUuNTAsLTQwLjgwLDk3LjEwLC00
MC44MCw5Ny4xMCBDLTQwLjgwLDk3LjEwLC00Ny40MCwxMDcuMjAsLTQ3LjAwLDEwOC44MCBDLTQ3
LjAwLDEwOC44MCwtNTIuMjAsMTI4LjgwLC02OC4yMCwxMjkuNjAgQy02OC4yMCwxMjkuNjAsLTg0
LjM1LDEzMC41NSwtODMuMDAsMTM2LjQwIEMtODMuMDAsMTM2LjQwLC03NC4yMCwxMzQuMDAsLTcx
LjgwLDEzNi40MCBDLTcxLjgwLDEzNi40MCwtNjEuMDAsMTM2LjAwLC02OS4wMCwxNDIuNDAgTC03
NS44MCwxNTQuMDAgQy03NS44MCwxNTQuMDAsLTc1LjY2LDE1Ny45MiwtODUuODAsMTU0LjQwIEMt
OTUuNjAsMTUxLjAwLC0xMDUuOTAsMTM4LjEwLC0xMDUuOTAsMTM4LjEwIEMtMTA1LjkwLDEzOC4x
MCwtMTIxLjg1LDEyMy41NSwtMTExLjAwLDEwOS42MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgxODUuODAsMzEyLjgwKSBzaXplIDYwLjAweDQzLjIwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNFNTk5OTldfV0gW2RhdGE9Ik0tMTEyLjIwLDExMy42MCBDLTExMi4yMCwxMTMu
NjAsLTExNC4yMCwxMjMuMjAsLTc3LjQwLDExMi44MCBDLTc3LjQwLDExMi44MCwtNzMuMDAsMTEy
LjgwLC03MC42MCwxMTMuNjAgQy02OC4yMCwxMTQuNDAsLTU2LjIwLDExNy4yMCwtNTQuMjAsMTE2
LjAwIEMtNTQuMjAsMTE2LjAwLC02MS40MCwxMjkuNjAsLTczLjAwLDEyOC4wMCBDLTczLjAwLDEy
OC4wMCwtODYuMjAsMTI5LjYwLC04NS44MCwxMzQuNDAgQy04NS44MCwxMzQuNDAsLTgxLjgwLDE0
MS42MCwtNzcuMDAsMTQ0LjAwIEMtNzcuMDAsMTQ0LjAwLC03NC4yMCwxNDYuNDAsLTc0LjYwLDE0
OS42MCBDLTc1LjAwLDE1Mi44MCwtNzcuODAsMTU0LjQwLC03OS44MCwxNTUuMjAgQy04MS44MCwx
NTYuMDAsLTg1LjAwLDE1Mi44MCwtODYuNjAsMTUyLjgwIEMtODguMjAsMTUyLjgwLC05Ni42MCwx
NDYuNDAsLTEwMS4wMCwxNDEuNjAgQy0xMDUuNDAsMTM2LjgwLC0xMTMuODAsMTI0LjgwLC0xMTMu
NDAsMTIyLjAwIEMtMTEzLjAwLDExOS4yMCwtMTEyLjIwLDExMy42MCwtMTEyLjIwLDExMy42MCBa
Il0KKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxODUuODAsMzEyLjgwKSBzaXplIDYweDQz
LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNFNTk5OTldfV0gW2RhdGE9Ik0tMTEyLjIw
LDExMy42MCBDLTExMi4yMCwxMTMuNjAsLTExNC4yMCwxMjMuMjAsLTc3LjQwLDExMi44MCBDLTc3
LjQwLDExMi44MCwtNzMuMDAsMTEyLjgwLC03MC42MCwxMTMuNjAgQy02OC4yMCwxMTQuNDAsLTU2
LjIwLDExNy4yMCwtNTQuMjAsMTE2LjAwIEMtNTQuMjAsMTE2LjAwLC02MS40MCwxMjkuNjAsLTcz
LjAwLDEyOC4wMCBDLTczLjAwLDEyOC4wMCwtODYuMjAsMTI5LjYwLC04NS44MCwxMzQuNDAgQy04
NS44MCwxMzQuNDAsLTgxLjgwLDE0MS42MCwtNzcuMDAsMTQ0LjAwIEMtNzcuMDAsMTQ0LjAwLC03
NC4yMCwxNDYuNDAsLTc0LjYwLDE0OS42MCBDLTc1LjAwLDE1Mi44MCwtNzcuODAsMTU0LjQwLC03
OS44MCwxNTUuMjAgQy04MS44MCwxNTYuMDAsLTg1LjAwLDE1Mi44MCwtODYuNjAsMTUyLjgwIEMt
ODguMjAsMTUyLjgwLC05Ni42MCwxNDYuNDAsLTEwMS4wMCwxNDEuNjAgQy0xMDUuNDAsMTM2Ljgw
LC0xMTMuODAsMTI0LjgwLC0xMTMuNDAsMTIyLjAwIEMtMTEzLjAwLDExOS4yMCwtMTEyLjIwLDEx
My42MCwtMTEyLjIwLDExMy42MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgxOTEs
MzI2LjAwKSBzaXplIDM0LjgweDMwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNCMjY1NjVd
fV0gW2RhdGE9Ik0tMTA5LjAwLDEzMS4wNSBDLTEwNi40MCwxMzUuMDAsLTEwMy4yMCwxMzkuMjAs
LTEwMS4wMCwxNDEuNjAgQy05Ni42MCwxNDYuNDAsLTg4LjIwLDE1Mi44MCwtODYuNjAsMTUyLjgw
IEMtODUuMDAsMTUyLjgwLC04MS44MCwxNTYuMDAsLTc5LjgwLDE1NS4yMCBDLTc3LjgwLDE1NC40
MCwtNzUuMDAsMTUyLjgwLC03NC42MCwxNDkuNjAgQy03NC4yMCwxNDYuNDAsLTc3LjAwLDE0NC4w
MCwtNzcuMDAsMTQ0LjAwIEMtODAuMDcsMTQyLjQ3LC04Mi44MSwxMzguOTgsLTg0LjM5LDEzNi42
NSBDLTg0LjM5LDEzNi42NSwtODQuMjAsMTM5LjIwLC04OS40MCwxMzguNDAgQy05NC42MCwxMzcu
NjAsLTk5LjgwLDEzNC44MCwtMTAxLjQwLDEzMS42MCBDLTEwMy4wMCwxMjguNDAsLTEwNS40MCwx
MjYuMDAsLTEwMy44MCwxMjkuNjAgQy0xMDIuMjAsMTMzLjIwLC05OS44MCwxMzYuODAsLTk4LjIw
LDEzNy4yMCBDLTk2LjYwLDEzNy42MCwtOTcuMDAsMTM4LjgwLC05OS40MCwxMzguNDAgQy0xMDEu
ODAsMTM4LjAwLC0xMDQuNjAsMTM3LjYwLC0xMDkuMDAsMTMyLjQwIFoiXQogICAgICAgUmVuZGVy
UGF0aCB7cGF0aH0gYXQgKDE4NS44MCwyMDkuNjMpIHNpemUgNTcuOTB4MTA0LjE3IFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSM5OTI2MDBdfV0gW2RhdGE9Ik0tMTExLjYwLDExMC4wMCBDLTEx
MS42MCwxMTAuMDAsLTEwOS44MCw5Ni40MCwtMTA4LjYwLDkyLjQwIEMtMTA4LjYwLDkyLjQwLC0x
MDkuNDAsODUuNjAsLTEwNy4wMCw4MS40MCBDLTEwNC42MCw3Ny4yMCwtMTAyLjYwLDcxLjAwLC05
OS42MCw2NS42MCBDLTk2LjYwLDYwLjIwLC05Ni40MCw1Ni4yMCwtOTIuNDAsNTQuNjAgQy04OC40
MCw1My4wMCwtODIuNDAsNDQuNDAsLTc5LjYwLDQzLjQwIEMtNzYuODAsNDIuNDAsLTc3LjAwLDQz
LjIwLC03Ny4wMCw0My4yMCBDLTc3LjAwLDQzLjIwLC03MC4yMCwyOC40MCwtNTYuNjAsMzIuNDAg
Qy01Ni42MCwzMi40MCwtNzIuODAsMjkuNjAsLTU3LjAwLDIwLjIwIEMtNTcuMDAsMjAuMjAsLTYx
LjgwLDIxLjMwLC01OC41MCwxNC4zMCBDLTU2LjMwLDkuNjMsLTU2LjgwLDE2LjQwLC02Ny44MCwy
OC4yMCBDLTY3LjgwLDI4LjIwLC03Mi44MCwzNi44MCwtNzguMDAsMzkuODAgQy04My4yMCw0Mi44
MCwtOTUuMjAsNDkuODAsLTk2LjQwLDUzLjYwIEMtOTcuNjAsNTcuNDAsLTEwMC44MCw2My4yMCwt
MTAyLjgwLDY0LjgwIEMtMTA0LjgwLDY2LjQwLC0xMDcuNjAsNzAuNjAsLTEwOC4wMCw3NC4wMCBD
LTEwOC4wMCw3NC4wMCwtMTA5LjIwLDc4LjAwLC0xMTAuNjAsNzkuMjAgQy0xMTIuMDAsODAuNDAs
LTExMi4yMCw4My42MCwtMTEyLjIwLDg1LjYwIEMtMTEyLjIwLDg3LjYwLC0xMTQuMjAsOTAuNDAs
LTExNC4wMCw5Mi44MCBDLTExNC4wMCw5Mi44MCwtMTEzLjIwLDExMS44MCwtMTEzLjYwLDExMy44
MCBMLTExMS42MCwxMTAuMDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTczLjQw
LDMxMy4yMCkgc2l6ZSA4LjQweDQwLjQwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRkZG
RkZdfV0gW2RhdGE9Ik0tMTIwLjIwLDExNC42MCBDLTEyMC4yMCwxMTQuNjAsLTEyMi4yMCwxMTMu
MjAsLTEyNi42MCwxMTkuMjAgQy0xMjYuNjAsMTE5LjIwLC0xMTkuMzAsMTUyLjIwLC0xMTkuMzAs
MTUzLjYwIEMtMTE5LjMwLDE1My42MCwtMTE4LjIwLDE1MS41MCwtMTE5LjUwLDE0NC4zMCBDLTEy
MC44MCwxMzcuMTAsLTEyMS43MCwxMjQuNDAsLTEyMS43MCwxMjQuNDAgTC0xMjAuMjAsMTE0LjYw
IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE2Ni42MCwyNTEuMjApIHNpemUgMzku
MzB4NjQuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5MjYwMF19XSBbZGF0YT0iTS05
OC42MCw1NC4wMCBDLTk4LjYwLDU0LjAwLC0xMTYuMjAsNTcuMjAsLTExNS44MCw4Ni40MCBMLTEx
Ni42MCwxMTEuMjAgQy0xMTYuNjAsMTExLjIwLC0xMTcuODAsODUuNjAsLTExOS4wMCw4NC4wMCBD
LTEyMC4yMCw4Mi40MCwtMTE2LjIwLDcxLjIwLC0xMTkuNDAsNzcuMjAgQy0xMTkuNDAsNzcuMjAs
LTEzMy40MCw5MS4yMCwtMTI1LjQwLDExMi40MCBDLTEyNS40MCwxMTIuNDAsLTEyMy45MCwxMTUu
NzAsLTEyNi45MCwxMTEuMTAgQy0xMjYuOTAsMTExLjEwLC0xMzEuNTAsOTguNTAsLTEzMC40MCw5
Mi4xMCBDLTEzMC40MCw5Mi4xMCwtMTMwLjIwLDg5LjkwLC0xMjguMzAsODcuMTAgQy0xMjguMzAs
ODcuMTAsLTExOS43MCw3NS40MCwtMTE3LjAwLDczLjEwIEMtMTE3LjAwLDczLjEwLC0xMTUuMjAs
NTguNzAsLTk5LjgwLDUzLjUwIEMtOTkuODAsNTMuNTAsLTk0LjEwLDUxLjIwLC05OC42MCw1NC4w
MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMjAuMDQsMTYyLjQyKSBzaXplIDI1
Ljc3eDQ4LjAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik00
MC44MCwtMTIuMjAgQzQxLjQ2LC0xMi41NSw0MS40NSwtMTMuNTIsNDIuMDMsLTEzLjcwIEM0My4x
OCwtMTQuMDQsNDMuMzQsLTE1LjExLDQzLjg2LC0xNS44OSBDNDQuNzQsLTE3LjIxLDQ0LjkzLC0x
OC43NCw0NS41MSwtMjAuMjQgQzQ1Ljc4LC0yMC45Myw0NS44MSwtMjEuODksNDUuNTAsLTIyLjU1
IEM0NC4zMiwtMjUuMDMsNDMuNjIsLTI3LjQ4LDQyLjE4LC0yOS45MSBDNDEuOTEsLTMwLjM2LDQx
LjY1LC0zMS4xNSw0MS40NSwtMzEuNzUgQzQwLjk4LC0zMy4xMywzOS43MywtMzQuMTIsMzguODcs
LTM1LjQ0IEMzOC41OCwtMzUuODgsMzkuMTAsLTM2LjgxLDM4LjM5LC0zNi44OSBDMzcuNDksLTM3
LjAwLDM2LjA0LC0zNy41OCwzNS44MSwtMzYuNTUgQzM1LjIyLC0zMy45NywzNi4yMywtMzEuNDQs
MzcuMjAsLTI5LjAwIEMzNi40MiwtMjguMzEsMzYuNzUsLTI3LjM5LDM2LjkwLC0yNi42MiBDMzcu
NjEsLTIzLjAxLDM2LjQyLC0xOS42NiwzNS42NSwtMTYuMTkgQzM1LjYzLC0xNi4wOCwzNS45Nywt
MTUuODksMzUuOTUsLTE1LjgyIEMzNC43MiwtMTMuMTQsMzMuMjcsLTEwLjY5LDMxLjQ1LC04LjMx
IEMzMC42OSwtNy4zMiwyOS44MiwtNi40MCwyOS4zMywtNS4zNCBDMjguOTYsLTQuNTUsMjguNTUs
LTMuNTksMjguODAsLTIuNjAgQzI1LjM2LDAuMTgsMjMuMTEsNC4wMywyMC41MCw3Ljg3IEMyMC4w
NCw4LjU1LDIwLjMzLDkuNzYsMjAuODgsMTAuMDMgQzIxLjcwLDEwLjQzLDIyLjY1LDkuNDAsMjMu
MTIsOC41NiBDMjMuNTEsNy44NiwyMy44Niw3LjIxLDI0LjM2LDYuNTcgQzI0LjQ5LDYuMzksMjQu
MzEsNS45NywyNC40NCw1Ljg1IEMyNy4wOCwzLjUwLDI4Ljc1LDAuNTcsMzEuMjAsLTEuODAgQzMz
LjE1LC0yLjEzLDM0LjY5LC0zLjEzLDM2LjQ0LC00LjE0IEMzNi43NCwtNC4zMiwzNy4yNywtNC4w
NywzNy41NiwtNC4yNiBDMzkuMzEsLTUuNDQsMzkuMzEsLTcuNDgsMzkuNDEsLTkuMzkgQzM5LjQ2
LC0xMC4yNywzOS42NiwtMTEuNTksNDAuODAsLTEyLjIwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDMyMC4wNCwxNjIuNDIpIHNpemUgMjUuNzd4NDguMDEgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTQwLjgwLC0xMi4yMCBDNDEuNDYsLTEyLjU1
LDQxLjQ1LC0xMy41Miw0Mi4wMywtMTMuNzAgQzQzLjE4LC0xNC4wNCw0My4zNCwtMTUuMTEsNDMu
ODYsLTE1Ljg5IEM0NC43NCwtMTcuMjEsNDQuOTMsLTE4Ljc0LDQ1LjUxLC0yMC4yNCBDNDUuNzgs
LTIwLjkzLDQ1LjgxLC0yMS44OSw0NS41MCwtMjIuNTUgQzQ0LjMyLC0yNS4wMyw0My42MiwtMjcu
NDgsNDIuMTgsLTI5LjkxIEM0MS45MSwtMzAuMzYsNDEuNjUsLTMxLjE1LDQxLjQ1LC0zMS43NSBD
NDAuOTgsLTMzLjEzLDM5LjczLC0zNC4xMiwzOC44NywtMzUuNDQgQzM4LjU4LC0zNS44OCwzOS4x
MCwtMzYuODEsMzguMzksLTM2Ljg5IEMzNy40OSwtMzcuMDAsMzYuMDQsLTM3LjU4LDM1LjgxLC0z
Ni41NSBDMzUuMjIsLTMzLjk3LDM2LjIzLC0zMS40NCwzNy4yMCwtMjkuMDAgQzM2LjQyLC0yOC4z
MSwzNi43NSwtMjcuMzksMzYuOTAsLTI2LjYyIEMzNy42MSwtMjMuMDEsMzYuNDIsLTE5LjY2LDM1
LjY1LC0xNi4xOSBDMzUuNjMsLTE2LjA4LDM1Ljk3LC0xNS44OSwzNS45NSwtMTUuODIgQzM0Ljcy
LC0xMy4xNCwzMy4yNywtMTAuNjksMzEuNDUsLTguMzEgQzMwLjY5LC03LjMyLDI5LjgyLC02LjQw
LDI5LjMzLC01LjM0IEMyOC45NiwtNC41NSwyOC41NSwtMy41OSwyOC44MCwtMi42MCBDMjUuMzYs
MC4xOCwyMy4xMSw0LjAzLDIwLjUwLDcuODcgQzIwLjA0LDguNTUsMjAuMzMsOS43NiwyMC44OCwx
MC4wMyBDMjEuNzAsMTAuNDMsMjIuNjUsOS40MCwyMy4xMiw4LjU2IEMyMy41MSw3Ljg2LDIzLjg2
LDcuMjEsMjQuMzYsNi41NyBDMjQuNDksNi4zOSwyNC4zMSw1Ljk3LDI0LjQ0LDUuODUgQzI3LjA4
LDMuNTAsMjguNzUsMC41NywzMS4yMCwtMS44MCBDMzMuMTUsLTIuMTMsMzQuNjksLTMuMTMsMzYu
NDQsLTQuMTQgQzM2Ljc0LC00LjMyLDM3LjI3LC00LjA3LDM3LjU2LC00LjI2IEMzOS4zMSwtNS40
NCwzOS4zMSwtNy40OCwzOS40MSwtOS4zOSBDMzkuNDYsLTEwLjI3LDM5LjY2LC0xMS41OSw0MC44
MCwtMTIuMjAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzI3LjUwLDE2Mi4xOSkg
c2l6ZSA3Ljk4eDIyLjQ5IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0zMS45NiwtMTYuNjcgQzMyLjA4LC0xNi43NCwzMS45MywtMTcuMTcsMzIuMDQsLTE3LjM4
IEMzMi4yMCwtMTcuNzEsMzIuNjAsLTE3Ljg5LDMyLjc2LC0xOC4yMiBDMzIuODcsLTE4LjQzLDMy
LjcxLC0xOC44MSwzMi44NSwtMTguOTYgQzM1LjE4LC0yMS40MCwzNS40NCwtMjQuNDMsMzQuNDAs
LTI3LjQwIEMzNS40MiwtMjguMDIsMzUuNDksLTI5LjI4LDM1LjA2LC0zMC4xMyBDMzQuMjEsLTMx
LjgzLDM0LjAxLC0zMy43NiwzMy4wNCwtMzUuMzAgQzMyLjI0LC0zNi41NywzMC42NiwtMzcuODEs
MjkuMjksLTM2LjUxIEMyOC44NywtMzYuMTEsMjguNTUsLTM1LjMyLDI4LjgyLC0zNC42MSBDMjgu
ODksLTM0LjQ1LDI5LjE3LC0zNC4zMCwyOS4xNSwtMzQuMjIgQzI5LjA0LC0zMy44OSwyOC40OSwt
MzMuNjcsMjguNDksLTMzLjQwIEMyOC40NiwtMzEuOTAsMjcuNTAsLTMwLjM5LDI4LjEzLC0yOS4w
NiBDMjguOTEsLTI3LjQzLDI5LjcyLC0yNS41OCwzMC40MCwtMjMuODAgQzI5LjE3LC0yMS42OCwz
MC4yMCwtMTkuMjQsMjguNDUsLTE3LjM2IEMyOC4zMSwtMTcuMjEsMjguMzIsLTE2LjgzLDI4LjQ0
LC0xNi42MiBDMjguNzMsLTE2LjE0LDI5LjE0LC0xNS43MywyOS42MiwtMTUuNDQgQzI5LjgzLC0x
NS4zMiwzMC4xNywtMTUuMzIsMzAuMzgsLTE1LjQ0IEMzMC45NSwtMTUuODAsMzEuMzUsLTE2LjI5
LDMxLjk2LC0xNi42NyBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzODcuNjEsMTQz
Ljk3KSBzaXplIDIwLjQzeDM4LjM0IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBd
fV0gW2RhdGE9Ik05NC43NywtMjYuOTggQzk2LjE2LC0yNS4xOCw5Ni40NSwtMjIuMzksOTQuNDAs
LTIxLjAwIEM5NC45NSwtMTcuNjksOTguMzAsLTE5LjY3LDEwMC40MCwtMjAuMjAgQzEwMC4yOSwt
MjAuNTksMTAwLjUyLC0yMC45MywxMDAuODAsLTIwLjk0IEMxMDEuODYsLTIwLjk1LDEwMi41NCwt
MjEuOTgsMTAzLjYwLC0yMS44MCBDMTA0LjA0LC0yMy4zNiwxMDUuNjcsLTI0LjA2LDEwNi4zMiwt
MjUuNDQgQzEwOC4wNCwtMjkuMTMsMTA3LjQ1LC0zMy40MSwxMDQuODcsLTM2LjY1IEMxMDQuNjcs
LTM2LjkxLDEwNC44OCwtMzcuNDIsMTA0Ljc2LC0zNy43OSBDMTA0LjAwLC00MC4wMCwxMDEuOTMs
LTQwLjMxLDEwMC4wMCwtNDEuMDAgQzk4LjgyLC00NC44OCw5OC4xNiwtNDguOTEsOTYuNDAsLTUy
LjYwIEM5NC43OSwtNTIuODUsOTQuMDksLTU0LjU5LDkyLjc1LC01NS4zMSBDOTEuNDIsLTU2LjAz
LDkwLjg1LC01NC40NSw5MC44OSwtNTMuNDAgQzkwLjkwLC01My4yMCw5MS4zNSwtNTIuOTcsOTEu
MTgsLTUyLjYxIEM5MS4xMSwtNTIuNDQsOTAuODUsLTUyLjMzLDkwLjg1LC01Mi4yMCBDOTAuODUs
LTUyLjA2LDkxLjA3LC01MS45Myw5MS4yMCwtNTEuODAgQzkwLjI4LC01MC45OCw4OC44NiwtNTAu
NTAsODguNTcsLTQ5LjM2IEM4Ny42MSwtNDUuNjUsOTAuMTgsLTQyLjUyLDkxLjg1LC0zOS4zMiBD
OTIuNDQsLTM4LjE5LDkxLjcxLC0zNi45Miw5MC45NSwtMzUuNzEgQzkwLjUxLC0zNS4wMSw5MC42
MiwtMzMuODksOTAuODksLTMzLjAzIEM5MS42NCwtMzAuNzAsOTMuMjQsLTI4Ljk2LDk0Ljc3LC0y
Ni45OCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMzcuMDYsMTUwLjAzKSBzaXpl
IDU0LjQ0eDQ3Ljg2IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik01Ny42MSwtOC41OSBDNTYuMTIsLTYuNzQsNTIuNzEsLTQuMTcsNTUuNjMsLTIuMjQgQzU1Ljgy
LC0yLjExLDU2LjE5LC0yLjExLDU2LjM3LC0yLjI0IEM1OC4zOSwtMy44MSw2MC4zOSwtNC43MSw2
Mi44MywtNS4yOSBDNjIuOTUsLTUuMzIsNjMuMjIsLTQuODYsNjMuNTksLTUuMDIgQzY1LjIxLC01
LjcyLDY3LjIyLC01LjY2LDY4LjQwLC03LjAwIEM3Mi4xNywtNi43OCw3NS43MywtNy44OSw3OS4x
MiwtOS4yMCBDODAuMjgsLTkuNjUsODEuNTUsLTEwLjIxLDgyLjc1LC0xMC43MSBDODQuMTMsLTEx
LjI4LDg1LjMzLC0xMi4yMSw4Ni40NSwtMTMuMzUgQzg2LjU4LC0xMy40OSw4Ni45MywtMTMuNDAs
ODcuMjAsLTEzLjQwIEM4Ny4xNiwtMTQuMjYsODguMTIsLTE0LjM5LDg4LjM3LC0xNS4wMSBDODgu
NDYsLTE1LjI0LDg4LjMxLC0xNS42NCw4OC40NCwtMTUuNzQgQzkwLjU4LC0xNy4zNyw5MS41MCwt
MTkuMzksOTAuMzMsLTIxLjc3IEM5MC4wNSwtMjIuMzQsODkuODAsLTIyLjk2LDg5LjIzLC0yMy40
NCBDODguMTUsLTI0LjM1LDg3LjA1LC0yMy41MCw4Ni4wMCwtMjMuODAgQzg1Ljg0LC0yMy4xNyw4
NS4xMSwtMjMuMzQsODQuNzMsLTIzLjE1IEM4My44NywtMjIuNzEsODIuNTMsLTIzLjI5LDgxLjY4
LC0yMi44NSBDODAuMzEsLTIyLjE2LDc5LjA3LC0yMS45OSw3Ny42NSwtMjEuNjEgQzc3LjM0LC0y
MS41Myw3Ni41NiwtMjEuNjMsNzYuNDAsLTIxLjAwIEM3Ni4yNywtMjEuMTMsNzYuMTIsLTIxLjM3
LDc2LjAxLC0yMS4zNSBDNzQuMTAsLTIwLjk1LDcyLjg0LC0yMC43NCw3MS41NCwtMTkuMDQgQzcx
LjQ0LC0xOC45MSw3MS4wMCwtMTkuMDksNzAuODQsLTE4Ljk1IEM2OS44OCwtMTguMTUsNjkuNDgs
LTE2LjkxLDY4LjM4LC0xNi4yNCBDNjguMTgsLTE2LjEyLDY3LjgyLC0xNi4yOSw2Ny42MywtMTYu
MTYgQzY2Ljk4LC0xNS43Myw2Ni42MiwtMTUuMDksNjUuOTcsLTE0LjY0IEM2NS42NCwtMTQuNDEs
NjUuMjUsLTE0LjczLDY1LjI4LC0xNC45OSBDNjUuNTIsLTE2Ljk0LDY2LjE4LC0xOC43Miw2NS42
MCwtMjAuNjAgQzY3LjY4LC0yMy4xMiw3MC4xOSwtMjUuMDcsNzIuMDAsLTI3LjgwIEM3Mi4wMSwt
MjkuOTcsNzIuNzEsLTMyLjExLDcyLjU5LC0zNC4xOSBDNzIuNTgsLTM0LjM4LDcyLjMwLC0zNS4x
Miw3Mi4xNywtMzUuNDYgQzcxLjg2LC0zNi4zMiw3Mi43NiwtMzcuMzgsNzEuOTIsLTM4LjExIEM3
MC41MiwtMzkuMzEsNjkuMjIsLTM4LjQzLDY4LjQwLC0zNy4wMCBDNjYuNTYsLTM2LjYxLDY0LjUw
LC0zNS45Miw2Mi45MiwtMzcuMTUgQzYxLjkxLC0zNy45NCw2MS4zMywtMzguODQsNjAuNTMsLTM5
LjkwIEM1OS41NSwtNDEuMjAsNTkuODgsLTQyLjY0LDU5Ljk1LC00NC4yMCBDNTkuOTYsLTQ0LjMz
LDU5LjY1LC00NC40Nyw1OS42NSwtNDQuNjAgQzU5LjY1LC00NC43NCw1OS44NywtNDQuODcsNjAu
MDAsLTQ1LjAwIEM1OS4yOSwtNDUuNjMsNTkuMDIsLTQ2LjY4LDU4LjAwLC00Ny4wMCBDNTguMzEs
LTQ4LjA5LDU3LjYzLC00OC45OCw1Ni43NiwtNDkuMjggQzU0Ljc2LC00OS45Nyw1My4wOSwtNDgu
MDYsNTEuMTksLTQ3Ljk4IEM1MC42OCwtNDcuOTcsNTAuMjEsLTQ5LjAwLDQ5LjU2LC00OS4zMyBD
NDkuMTMsLTQ5LjU0LDQ4LjQzLC00OS41OCw0OC4wNywtNDkuMzEgQzQ3LjM4LC00OC44MSw0Ni43
OSwtNDguNjksNDYuMDMsLTQ4LjQ5IEM0NC40MSwtNDguMDUsNDMuMTQsLTQ2Ljk2LDQxLjY2LC00
Ni4xMCBDNDAuMTcsLTQ1LjI1LDM5LjIyLC00My44MSwzOC4xNCwtNDIuNDkgQzM3LjE5LC00MS4z
NCwzNy4wNiwtMzguOTIsMzguNDgsLTM4LjQyIEM0MC4zMiwtMzcuNzcsNDEuNjMsLTQwLjQ4LDQz
LjU5LC00MC4xNSBDNDMuOTAsLTQwLjEwLDQ0LjExLC0zOS43OSw0NC4wMCwtMzkuNDAgQzQ0LjM5
LC0zOS4yOSw0NC42MSwtMzkuNTIsNDQuODAsLTM5LjgwIEM0NS42NiwtMzguNzgsNDYuODIsLTM4
LjQ0LDQ3Ljc2LC0zNy41NyBDNDguNzMsLTM2LjY3LDUwLjQ4LC0zNy4wOCw1MS40OSwtMzYuMDkg
QzUzLjAyLC0zNC41OSw1Mi40NiwtMzEuOTEsNTQuNDAsLTMwLjYwIEM1My44MSwtMjkuMjksNTMu
MjEsLTI4LjAxLDUyLjg3LC0yNi41OCBDNTIuNTksLTI1LjM4LDUzLjU4LC0yNC4xOCw1NC43OSwt
MjQuMjcgQzU2LjA1LC0yNC4zNiw1Ni4zMSwtMjUuMTIsNTYuODAsLTI2LjIwIEM1Ny4wNywtMjUu
OTMsNTcuNTQsLTI1LjY0LDU3LjQ5LC0yNS40MiBDNTcuMDQsLTIzLjAzLDU2LjAxLC0yMS4wNCw1
NS41NSwtMTguNjEgQzU1LjQ5LC0xOC4yOSw1NS4xOSwtMTguMDksNTQuODAsLTE4LjIwIEM1NC4z
MywtMTQuMDUsNTAuMjgsLTExLjY2LDQ3Ljc0LC04LjQ5IEM0Ny4zMywtNy45OSw0Ny4zMywtNi43
NCw0Ny43NCwtNi4zNCBDNDkuMTQsLTQuOTUsNTEuMTAsLTYuNTAsNTIuODAsLTcuMDAgQzUzLjAx
LC04LjIxLDUzLjg3LC05LjE1LDU1LjIwLC05LjA5IEM1NS40NiwtOS4wOCw1NS42OSwtOS42Miw1
Ni4wMiwtOS43NSBDNTYuMzcsLTkuODksNTYuODcsLTkuNjcsNTcuMTUsLTkuODcgQzU4Ljg4LC0x
MS4wNiw2MC4yOSwtMTIuMTcsNjIuMDMsLTEzLjM2IEM2Mi4yMiwtMTMuNDksNjIuNTcsLTEzLjMz
LDYyLjc4LC0xMy40NCBDNjMuMTEsLTEzLjYwLDYzLjI5LC0xMy45OCw2My42MiwtMTQuMTcgQzYz
Ljk3LC0xNC4zNyw2NC4yMSwtMTQuMDgsNjQuNDAsLTEzLjgwIEM2My43NSwtMTMuNDUsNjMuNzUs
LTEyLjQ5LDYzLjE3LC0xMi4yOSBDNjIuMzksLTEyLjAyLDYxLjgzLC0xMS41MSw2MS4xNiwtMTEu
MDYgQzYwLjg3LC0xMC44Nyw2MC4yMSwtMTEuMTIsNjAuMTAsLTEwLjk0IEM1OS41MSwtOS45MSw1
OC4zMiwtOS40Nyw1Ny42MSwtOC41OSBaIl0KQEAgLTIzNSwxMSArMjM1LDExIEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDM0Ni4yMCw1
MTUuODApIHNpemUgMTQuNDB4MzIuODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0ND
Q119XSBbZGF0YT0iTTQ2LjIwLDM0Ny40MCBDNDYuMjAsMzQ3LjQwLDUzLjYwLDMyNy4wMCw0OS4y
MCwzMTUuODAgQzQ5LjIwLDMxNS44MCw2MC42MCwzMzcuNDAsNTYuMDAsMzQ4LjYwIEM1Ni4wMCwz
NDguNjAsNTUuNjAsMzM4LjIwLDUxLjYwLDMzMy4yMCBDNTEuNjAsMzMzLjIwLDQ3LjYwLDM0Ni4w
MCw0Ni4yMCwzNDcuNDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzIxLjIwLDUx
Ny42MCkgc2l6ZSAxNS42MHgzMS40MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0ND
XX1dIFtkYXRhPSJNMzEuNDAsMzQ0LjgwIEMzMS40MCwzNDQuODAsMzYuODAsMzM2LjAwLDI4Ljgw
LDMxNy42MCBDMjguODAsMzE3LjYwLDI4LjAwLDMzOC4wMCwyMS4yMCwzNDkuMDAgQzIxLjIwLDM0
OS4wMCwzNS40MCwzMjguODAsMzEuNDAsMzQ0LjgwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDMwNy42MCw1MTkuODApIHNpemUgMTQuNDB4MjYuMjAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTTIxLjQwLDM0Mi44MCBDMjEuNDAsMzQyLjgwLDIx
LjIwLDMyMi44MCwyMS42MCwzMTkuODAgQzIxLjYwLDMxOS44MCwxNy44MCwzMzYuNDAsNy42MCwz
NDYuMDAgQzcuNjAsMzQ2LjAwLDIyLjAwLDMzNC4wMCwyMS40MCwzNDIuODAgWiJdCi0gICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMzA3LjgwLDUxMC44MCkgc2l6ZSAxMC4wMHgzMiBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMTEuODAsMzEwLjgwIEMxMS44
MCwzMTAuODAsMTcuODAsMzI0LjQwLDcuODAsMzQyLjgwIEM3LjgwLDM0Mi44MCwxNC4yMCwzMzAu
NjAsOS40MCwzMjMuNjAgQzkuNDAsMzIzLjYwLDEyLjAwLDMyMC4yMCwxMS44MCwzMTAuODAgWiJd
CisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzA3LjgwLDUxMC44MCkgc2l6ZSAxMHgzMiBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMTEuODAsMzEwLjgw
IEMxMS44MCwzMTAuODAsMTcuODAsMzI0LjQwLDcuODAsMzQyLjgwIEM3LjgwLDM0Mi44MCwxNC4y
MCwzMzAuNjAsOS40MCwzMjMuNjAgQzkuNDAsMzIzLjYwLDEyLjAwLDMyMC4yMCwxMS44MCwzMTAu
ODAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjkxLjYwLDUxMS4wMCkgc2l6ZSAx
My42MHgzMS42MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJN
LTcuNDAsMzQyLjQwIEMtNy40MCwzNDIuNDAsLTguNDAsMzI2LjgwLC02LjYwLDMyNC42MCBDLTYu
NjAsMzI0LjYwLC02LjQwLDMxOC4yMCwtNi44MCwzMTcuMjAgQy02LjgwLDMxNy4yMCwtMi44MCwz
MTEuMDAsLTIuNjAsMzE4LjQwIEMtMi42MCwzMTguNDAsLTEuMjAsMzI2LjIwLDEuNjAsMzMwLjgw
IEMxLjYwLDMzMC44MCw1LjIwLDMzNi4yMCw1LjAwLDM0Mi42MCBDNS4wMCwzNDIuNjAsLTUuMDAs
MzEyLjQwLC03LjQwLDM0Mi40MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNzku
MjAsNTA4LjYwKSBzaXplIDkuODB4MzYgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0ND
Q119XSBbZGF0YT0iTS0xMS4wMCwzMTQuODAgQy0xMS4wMCwzMTQuODAsLTE3LjYwLDMyNS42MCwt
MTkuNDAsMzQ0LjYwIEMtMTkuNDAsMzQ0LjYwLC0yMC44MCwzMzguNDAsLTE3LjAwLDMyNC4wMCBD
LTE3LjAwLDMyNC4wMCwtMTIuODAsMzA4LjYwLC0xMS4wMCwzMTQuODAgWiJdCiAgICAgICBSZW5k
ZXJQYXRoIHtwYXRofSBhdCAoMjYyLjgwLDUwOC40MCkgc2l6ZSAxNC40MHgyNi4yMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTMyLjgwLDMzNC42MCBDLTMy
LjgwLDMzNC42MCwtMjcuODAsMzI5LjIwLC0yNi40MCwzMjQuMjAgQy0yNi40MCwzMjQuMjAsLTIy
LjgwLDMwOC40MCwtMjkuMjAsMzE3LjAwIEMtMjkuMjAsMzE3LjAwLC0yOS4wMCwzMjUuMDAsLTM3
LjIwLDMzMi40MCBDLTM3LjIwLDMzMi40MCwtMzIuNDAsMzMwLjAwLC0zMi44MCwzMzQuNjAgWiJd
Ci0gICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjUxLjgwLDUwOC4wMCkgc2l6ZSAxNS42MHgy
OSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTM4LjYwLDMy
OS42MCBDLTM4LjYwLDMyOS42MCwtMzUuMjAsMzEyLjIwLC0zNC40MCwzMTEuNDAgQy0zNC40MCwz
MTEuNDAsLTMyLjYwLDMwOC4wMCwtMzUuNDAsMzExLjIwIEMtMzUuNDAsMzExLjIwLC00NC4yMCwz
MzAuNDAsLTQ4LjIwLDMzNy4wMCBDLTQ4LjIwLDMzNy4wMCwtNDAuMjAsMzI3LjgwLC0zOC42MCwz
MjkuNjAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjUxLjgwLDUwOC4wMCkgc2l6
ZSAxNS42MHgyOS4wMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRh
PSJNLTM4LjYwLDMyOS42MCBDLTM4LjYwLDMyOS42MCwtMzUuMjAsMzEyLjIwLC0zNC40MCwzMTEu
NDAgQy0zNC40MCwzMTEuNDAsLTMyLjYwLDMwOC4wMCwtMzUuNDAsMzExLjIwIEMtMzUuNDAsMzEx
LjIwLC00NC4yMCwzMzAuNDAsLTQ4LjIwLDMzNy4wMCBDLTQ4LjIwLDMzNy4wMCwtNDAuMjAsMzI3
LjgwLC0zOC42MCwzMjkuNjAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjQ1LjQw
LDQ5MC42MCkgc2l6ZSAyMS44MHgyNS44MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0ND
Q0NDXX1dIFtkYXRhPSJNLTQ0LjQwLDMxMy4wMCBDLTQ0LjQwLDMxMy4wMCwtMzIuODAsMjkwLjYw
LC01NC42MCwzMTYuNDAgQy01NC42MCwzMTYuNDAsLTQzLjYwLDMwNi42MCwtNDQuNDAsMzEzLjAw
IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI0MC4yMCw0NzAuODApIHNpemUgMTUu
NjB4MzAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0iTS01OS44
MCwyOTguNDAgQy01OS44MCwyOTguNDAsLTU1LjAwLDI3OS42MCwtNTIuNDAsMjc5LjgwIEMtNTIu
NDAsMjc5LjgwLC00NC4yMCwyNzAuODAsLTUwLjgwLDI4MS40MCBDLTUwLjgwLDI4MS40MCwtNTYu
ODAsMjkxLjAwLC01Ni4yMCwzMDAuODAgQy01Ni4yMCwzMDAuODAsLTU2LjgwLDI5MS4yMCwtNTku
ODAsMjk4LjQwIFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDU1Niw0NzMuNTApIHNp
emUgMTZ4MjUuNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0NDQ0NDQ119XSBbZGF0YT0i
TTI3MC41MCwyODcuMDAgQzI3MC41MCwyODcuMDAsMjU4LjUwLDI3Ny4wMCwyNTYuMDAsMjczLjUw
IEMyNTYuMDAsMjczLjUwLDI2OS41MCwyOTIuMDAsMjY5LjUwLDI5OS4wMCBDMjY5LjUwLDI5OS4w
MCwyNzIuMDAsMjkxLjUwLDI3MC41MCwyODcuMDAgWiJdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2hpeGllL3BlcmYvMDAyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2hpeGllL3BlcmYvMDAyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2hpeGllL3Bl
cmYvMDAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNDMu
ODAsNDE0LjAwKSBzaXplIDM3LjIweDIyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0ND
Q0NdfV0gW2RhdGE9Ik0tMjAuMjAsMjE4LjgwIEMtMjAuMjAsMjE4LjgwLC0xOS4wMCwyMTQuMDAs
LTIxLjgwLDIxNC44MCBDLTIzLjgwLDIxNC44MCwtNTAuMjAsMjI2LjQwLC01Ni4yMCwyMzYuMDAg
Qy01Ni4yMCwyMzYuMDAsLTI2LjYwLDIxNC40MCwtMjAuMjAsMjE4LjgwIFoiXQogICAgICAgUmVu
ZGVyUGF0aCB7cGF0aH0gYXQgKDI1NS40MCw0MTkuNjApIHNpemUgMTM0LjAweDg3LjIwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tMzQuNjAsMjY2LjQwIEwt
NDQuNjAsMjc0LjAwIEMtNDQuNjAsMjc0LjAwLC0zNC4yMCwyNjYuNDAsLTMwLjYwLDI2Ny42MCBD
LTMwLjYwLDI2Ny42MCwtMzcuNDAsMjc4LjgwLC0zOC4yMCwyODQuMDAgQy0zOC4yMCwyODQuMDAs
LTI3LjgwLDI3MS4yMCwtMjIuMjAsMjcxLjYwIEMtMjIuMjAsMjcxLjYwLC0xNC42MCwyNzIuMDAs
LTE0LjYwLDI4Mi44MCBDLTE0LjYwLDI4Mi44MCwtOS4wMCwyNzIuNDAsLTUuODAsMjcyLjgwIEMt
NS44MCwyNzIuODAsLTQuNjAsMjc5LjIwLC01LjgwLDI4Ni4wMCBDLTUuODAsMjg2LjAwLC0xLjgw
LDI3OC40MCwyLjIwLDI4MC4wMCBDMi4yMCwyODAuMDAsOC42MCwyNzguMDAsNy44MCwyODkuNjAg
QzcuODAsMjg5LjYwLDcuODAsMzAwLjAwLDcuMDAsMzAyLjgwIEM3LjAwLDMwMi44MCwxMi42MCwy
NzYuNDAsMTUuMDAsMjc2LjAwIEMxNS4wMCwyNzYuMDAsMjMuMDAsMjc0LjgwLDI3LjgwLDI4My42
MCBDMjcuODAsMjgzLjYwLDIzLjgwLDI3Ni4wMCwyOC42MCwyNzguMDAgQzI4LjYwLDI3OC4wMCwz
OS40MCwyNzkuNjAsNDIuNjAsMjg2LjQwIEM0Mi42MCwyODYuNDAsMzUuODAsMjc0LjQwLDQxLjQw
LDI3Ny42MCBDNDEuNDAsMjc3LjYwLDQ4LjIwLDI3Ny42MCw0OS40MCwyODQuMDAgQzQ5LjQwLDI4
NC4wMCw1Ny44MCwzMDUuMjAsNTkuODAsMzA2LjgwIEM1OS44MCwzMDYuODAsNTIuMjAsMjg1LjIw
LDUzLjgwLDI4NS4yMCBDNTMuODAsMjg1LjIwLDUxLjgwLDI3My4yMCw1Ny4wMCwyODguMDAgQzU3
LjAwLDI4OC4wMCw1My44MCwyNzQuMDAsNTkuNDAsMjc0LjgwIEM2NS4wMCwyNzUuNjAsNjkuNDAs
Mjg1LjYwLDc3LjgwLDI4My4yMCBDNzcuODAsMjgzLjIwLDg3LjQwLDI4OC44MCw4OS40MCwyMTku
NjAgTC0zNC42MCwyNjYuNDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjU4LjYw
LDM0OS4yMCkgc2l6ZSAxNDQuMDB4MTI3LjYwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0tMjkuODAsMTczLjYwIEMtMjkuODAsMTczLjYwLC0xNS4wMCwxNjcu
NjAsMjUuMDAsMTczLjYwIEMyNS4wMCwxNzMuNjAsMzIuMjAsMTc0LjAwLDM5LjAwLDE2NS4yMCBD
NDUuODAsMTU2LjQwLDcyLjYwLDE0OS4yMCw3OS4wMCwxNTEuMjAgTDg4LjYwLDE1Ny42MCBMODku
NDAsMTU4LjgwIEM4OS40MCwxNTguODAsMTAxLjgwLDE2OS4yMCwxMDIuMjAsMTc2LjgwIEMxMDIu
NjAsMTg0LjQwLDg3LjgwLDIzMi40MCw3OC4yMCwyNDguNDAgQzY4LjYwLDI2NC40MCw1OS4wMCwy
NzYuODAsMzkuODAsMjc0LjQwIEMzOS44MCwyNzQuNDAsMTkuMDAsMjcwLjQwLC02LjYwLDI3NC40
MCBDLTYuNjAsMjc0LjQwLC0zNS44MCwyNzIuODAsLTM4LjYwLDI2NC44MCBDLTQxLjQwLDI1Ni44
MCwtMjcuNDAsMjQxLjYwLC0yNy40MCwyNDEuNjAgQy0yNy40MCwyNDEuNjAsLTIzLjAwLDIzMy4y
MCwtMjQuMjAsMjE4LjgwIEMtMjUuNDAsMjA0LjQwLC0yNS4wMCwxNzYuNDAsLTI5LjgwLDE3My42
MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNjksMzc1LjYwKSBzaXplIDEyMi44
MHg5MS4yNSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRTU2NjhDXX1dIFtkYXRhPSJNLTcu
ODAsMTc1LjYwIEMwLjYwLDE5NC4wMCwtMjkuMDAsMjU5LjIwLC0yOS4wMCwyNTkuMjAgQy0zMS4w
MCwyNjAuODAsLTE2LjM0LDI2Ni44NSwtNi4yMCwyNjQuNDAgQzQuNzUsMjYxLjc2LDQ1LjAwLDI2
Ni4wMCw0NS4wMCwyNjYuMDAgQzY4LjYwLDI1MC40MCw4MS40MCwyMDYuMDAsODEuNDAsMjA2LjAw
IEM4MS40MCwyMDYuMDAsOTEuODAsMTgyLjAwLDc0LjIwLDE3OC44MCBDNTYuNjAsMTc1LjYwLC03
LjgwLDE3NS42MCwtNy44MCwxNzUuNjAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAo
MjY5LDM3NS42MCkgc2l6ZSAxMjIuODB4OTEuMjQgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0U1NjY4Q119XSBbZGF0YT0iTS03LjgwLDE3NS42MCBDMC42MCwxOTQuMDAsLTI5LjAwLDI1OS4y
MCwtMjkuMDAsMjU5LjIwIEMtMzEuMDAsMjYwLjgwLC0xNi4zNCwyNjYuODUsLTYuMjAsMjY0LjQw
IEM0Ljc1LDI2MS43Niw0NS4wMCwyNjYuMDAsNDUuMDAsMjY2LjAwIEM2OC42MCwyNTAuNDAsODEu
NDAsMjA2LjAwLDgxLjQwLDIwNi4wMCBDODEuNDAsMjA2LjAwLDkxLjgwLDE4Mi4wMCw3NC4yMCwx
NzguODAgQzU2LjYwLDE3NS42MCwtNy44MCwxNzUuNjAsLTcuODAsMTc1LjYwIFoiXQogICAgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5MC4xNywzNTMuMzMpIHNpemUgOTQuNjN4NTQuNjggW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0IyMzI1OV19XSBbZGF0YT0iTS05LjgzLDIwNi41MCBD
LTYuNTEsMTkzLjcxLC00LjkyLDE4MS45MSwtNy44MCwxNzUuNjAgQy03LjgwLDE3NS42MCw1NC42
MCwxODIuMDAsNjUuODAsMTYxLjIwIEM3MC4wNCwxNTMuMzMsODQuODAsMTg0LjAwLDg0LjQwLDE5
My42MCBDODQuNDAsMTkzLjYwLDIxLjQwLDIwOC4wMCw2LjYwLDE5Ni44MCBMLTkuODMsMjA2LjUw
IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI5MS40MCw0MTQuNDApIHNpemUgNzIu
NDB4MzYuODAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0E1MjY0Q119XSBbZGF0YT0iTS01
LjQwLDIyMi44MCBDLTUuNDAsMjIyLjgwLC0zLjQwLDIzMC4wMCwtNS44MCwyMzQuMDAgQy01Ljgw
LDIzNC4wMCwtNy40MCwyMzQuODAsLTguNjAsMjM1LjIwIEMtOC42MCwyMzUuMjAsLTcuNDAsMjM4
LjgwLC0xLjQwLDI0MC40MCBDLTEuNDAsMjQwLjQwLDAuNjAsMjQ0LjgwLDMuMDAsMjQ1LjIwIEM1
LjQwLDI0NS42MCwxMC4yMCwyNTEuMjAsMTQuMjAsMjUwLjAwIEMxOC4yMCwyNDguODAsMjkuNDAs
MjQ0LjgwLDI5LjQwLDI0NC44MCBDMjkuNDAsMjQ0LjgwLDM1LjAwLDI0MS42MCw0My44MCwyNDUu
MjAgQzQzLjgwLDI0NS4yMCw0Ni4xNywyNDQuNDAsNDYuNjAsMjQwLjQwIEM0Ny4xMCwyMzUuNzAs
NTAuMjAsMjMyLjAwLDUyLjIwLDIzMC4wMCBDNTQuMjAsMjI4LjAwLDYzLjgwLDIxNS4yMCw2Mi42
MCwyMTQuODAgQzYxLjQwLDIxNC40MCwtNS40MCwyMjIuODAsLTUuNDAsMjIyLjgwIFoiXQogICAg
ICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI4OC41MiwzNTcuMjgpIHNpemUgODguODZ4ODQuNDIg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjcyN0ZdfV0gW2RhdGE9Ik0tOS44MCwxNzQuNDAgQy05LjgwLDE3NC40MCwt
MTIuNjAsMTk2LjgwLC05LjQwLDIwNS4yMCBDLTYuMjAsMjEzLjYwLC03LjAwLDIxNS42MCwtNy44
MCwyMTkuNjAgQy04LjYwLDIyMy42MCwtNC4yMCwyMzMuNjAsMS40MCwyMzkuNjAgTDEzLjQwLDI0
MS4yMCBDMTMuNDAsMjQxLjIwLDI4LjYwLDIzNy42MCwzNy44MCwyNDAuNDAgQzM3LjgwLDI0MC40
MCw0Ni43OSwyNDEuNzQsNTAuMjAsMjI2LjgwIEM1MC4yMCwyMjYuODAsNTUuMDAsMjIwLjQwLDYy
LjIwLDIxNy42MCBDNjkuNDAsMjE0LjgwLDc2LjYwLDE3My4yMCw3Mi42MCwxNjUuMjAgQzY4LjYw
LDE1Ny4yMCw1NC4yMCwxNTIuODAsMzguMjAsMTY4LjQwIEMyMi4yMCwxODQuMDAsMjAuMjAsMTY3
LjIwLC05LjgwLDE3NC40MCBaIl0KQEAgLTEzMSwxMiArMTMxLDEyIEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDIzMy40NywyMDYuNDYp
IHNpemUgMi4yNng1LjA5IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2Rh
dGE9Ik0tNjUuNDAsMTEuNTUgQy02Ni4wMywxMS41NSwtNjYuNTMsMTAuNDEsLTY2LjUzLDkuMDAg
Qy02Ni41Myw3LjU5LC02Ni4wMyw2LjQ1LC02NS40MCw2LjQ1IEMtNjQuNzgsNi40NSwtNjQuMjcs
Ny41OSwtNjQuMjcsOS4wMCBDLTY0LjI3LDEwLjQxLC02NC43OCwxMS41NSwtNjUuNDAsMTEuNTUg
WiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjM0LjYwLDIwOSkgc2l6ZSAweDAgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS02NS40MCw5LjAwIFoi
XQogICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE3OC4xNSwyOTUuNTApIHNpemUgODQuMjV4
NjIuNDIgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS0xMTEu
MDAsMTA5LjYwIEMtMTExLjAwLDEwOS42MCwtMTE2LjYwLDExOS42MCwtOTEuODAsMTEzLjYwIEMt
OTEuODAsMTEzLjYwLC03Ny44MCwxMTIuNDAsLTc1LjQwLDExMC4wMCBDLTc0LjIwLDExMC44MCwt
NjUuODMsMTEzLjczLC02My4wMCwxMTQuNDAgQy01Ni4yMCwxMTYuMDAsLTQ3LjgwLDEwNi4wMCwt
NDcuODAsMTA2LjAwIEMtNDcuODAsMTA2LjAwLC00My4yMCw5NS41MCwtNDAuNDAsOTUuNTAgQy0z
Ny42MCw5NS41MCwtNDAuODAsOTcuMTAsLTQwLjgwLDk3LjEwIEMtNDAuODAsOTcuMTAsLTQ3LjQw
LDEwNy4yMCwtNDcuMDAsMTA4LjgwIEMtNDcuMDAsMTA4LjgwLC01Mi4yMCwxMjguODAsLTY4LjIw
LDEyOS42MCBDLTY4LjIwLDEyOS42MCwtODQuMzUsMTMwLjU1LC04My4wMCwxMzYuNDAgQy04My4w
MCwxMzYuNDAsLTc0LjIwLDEzNC4wMCwtNzEuODAsMTM2LjQwIEMtNzEuODAsMTM2LjQwLC02MS4w
MCwxMzYuMDAsLTY5LjAwLDE0Mi40MCBMLTc1LjgwLDE1NC4wMCBDLTc1LjgwLDE1NC4wMCwtNzUu
NjYsMTU3LjkyLC04NS44MCwxNTQuNDAgQy05NS42MCwxNTEuMDAsLTEwNS45MCwxMzguMTAsLTEw
NS45MCwxMzguMTAgQy0xMDUuOTAsMTM4LjEwLC0xMjEuODUsMTIzLjU1LC0xMTEuMDAsMTA5LjYw
IFoiXQotICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE4NS44MCwzMTIuODApIHNpemUgNjAu
MDB4NDMuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0U1OTk5OV19XSBbZGF0YT0iTS0x
MTIuMjAsMTEzLjYwIEMtMTEyLjIwLDExMy42MCwtMTE0LjIwLDEyMy4yMCwtNzcuNDAsMTEyLjgw
IEMtNzcuNDAsMTEyLjgwLC03My4wMCwxMTIuODAsLTcwLjYwLDExMy42MCBDLTY4LjIwLDExNC40
MCwtNTYuMjAsMTE3LjIwLC01NC4yMCwxMTYuMDAgQy01NC4yMCwxMTYuMDAsLTYxLjQwLDEyOS42
MCwtNzMuMDAsMTI4LjAwIEMtNzMuMDAsMTI4LjAwLC04Ni4yMCwxMjkuNjAsLTg1LjgwLDEzNC40
MCBDLTg1LjgwLDEzNC40MCwtODEuODAsMTQxLjYwLC03Ny4wMCwxNDQuMDAgQy03Ny4wMCwxNDQu
MDAsLTc0LjIwLDE0Ni40MCwtNzQuNjAsMTQ5LjYwIEMtNzUuMDAsMTUyLjgwLC03Ny44MCwxNTQu
NDAsLTc5LjgwLDE1NS4yMCBDLTgxLjgwLDE1Ni4wMCwtODUuMDAsMTUyLjgwLC04Ni42MCwxNTIu
ODAgQy04OC4yMCwxNTIuODAsLTk2LjYwLDE0Ni40MCwtMTAxLjAwLDE0MS42MCBDLTEwNS40MCwx
MzYuODAsLTExMy44MCwxMjQuODAsLTExMy40MCwxMjIuMDAgQy0xMTMuMDAsMTE5LjIwLC0xMTIu
MjAsMTEzLjYwLC0xMTIuMjAsMTEzLjYwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cGF0aH0gYXQg
KDE4NS44MCwzMTIuODApIHNpemUgNjB4NDMuMjAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0U1OTk5OV19XSBbZGF0YT0iTS0xMTIuMjAsMTEzLjYwIEMtMTEyLjIwLDExMy42MCwtMTE0LjIw
LDEyMy4yMCwtNzcuNDAsMTEyLjgwIEMtNzcuNDAsMTEyLjgwLC03My4wMCwxMTIuODAsLTcwLjYw
LDExMy42MCBDLTY4LjIwLDExNC40MCwtNTYuMjAsMTE3LjIwLC01NC4yMCwxMTYuMDAgQy01NC4y
MCwxMTYuMDAsLTYxLjQwLDEyOS42MCwtNzMuMDAsMTI4LjAwIEMtNzMuMDAsMTI4LjAwLC04Ni4y
MCwxMjkuNjAsLTg1LjgwLDEzNC40MCBDLTg1LjgwLDEzNC40MCwtODEuODAsMTQxLjYwLC03Ny4w
MCwxNDQuMDAgQy03Ny4wMCwxNDQuMDAsLTc0LjIwLDE0Ni40MCwtNzQuNjAsMTQ5LjYwIEMtNzUu
MDAsMTUyLjgwLC03Ny44MCwxNTQuNDAsLTc5LjgwLDE1NS4yMCBDLTgxLjgwLDE1Ni4wMCwtODUu
MDAsMTUyLjgwLC04Ni42MCwxNTIuODAgQy04OC4yMCwxNTIuODAsLTk2LjYwLDE0Ni40MCwtMTAx
LjAwLDE0MS42MCBDLTEwNS40MCwxMzYuODAsLTExMy44MCwxMjQuODAsLTExMy40MCwxMjIuMDAg
Qy0xMTMuMDAsMTE5LjIwLC0xMTIuMjAsMTEzLjYwLC0xMTIuMjAsMTEzLjYwIFoiXQogICAgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDE5MSwzMjYuMDApIHNpemUgMzQuODB4MzAgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0IyNjU2NV19XSBbZGF0YT0iTS0xMDkuMDAsMTMxLjA1IEMtMTA2
LjQwLDEzNS4wMCwtMTAzLjIwLDEzOS4yMCwtMTAxLjAwLDE0MS42MCBDLTk2LjYwLDE0Ni40MCwt
ODguMjAsMTUyLjgwLC04Ni42MCwxNTIuODAgQy04NS4wMCwxNTIuODAsLTgxLjgwLDE1Ni4wMCwt
NzkuODAsMTU1LjIwIEMtNzcuODAsMTU0LjQwLC03NS4wMCwxNTIuODAsLTc0LjYwLDE0OS42MCBD
LTc0LjIwLDE0Ni40MCwtNzcuMDAsMTQ0LjAwLC03Ny4wMCwxNDQuMDAgQy04MC4wNywxNDIuNDcs
LTgyLjgxLDEzOC45OCwtODQuMzksMTM2LjY1IEMtODQuMzksMTM2LjY1LC04NC4yMCwxMzkuMjAs
LTg5LjQwLDEzOC40MCBDLTk0LjYwLDEzNy42MCwtOTkuODAsMTM0LjgwLC0xMDEuNDAsMTMxLjYw
IEMtMTAzLjAwLDEyOC40MCwtMTA1LjQwLDEyNi4wMCwtMTAzLjgwLDEyOS42MCBDLTEwMi4yMCwx
MzMuMjAsLTk5LjgwLDEzNi44MCwtOTguMjAsMTM3LjIwIEMtOTYuNjAsMTM3LjYwLC05Ny4wMCwx
MzguODAsLTk5LjQwLDEzOC40MCBDLTEwMS44MCwxMzguMDAsLTEwNC42MCwxMzcuNjAsLTEwOS4w
MCwxMzIuNDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMTg1LjgwLDIwOS42Mykg
c2l6ZSA1Ny45MHgxMDQuMTcgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izk5MjYwMF19XSBb
ZGF0YT0iTS0xMTEuNjAsMTEwLjAwIEMtMTExLjYwLDExMC4wMCwtMTA5LjgwLDk2LjQwLC0xMDgu
NjAsOTIuNDAgQy0xMDguNjAsOTIuNDAsLTEwOS40MCw4NS42MCwtMTA3LjAwLDgxLjQwIEMtMTA0
LjYwLDc3LjIwLC0xMDIuNjAsNzEuMDAsLTk5LjYwLDY1LjYwIEMtOTYuNjAsNjAuMjAsLTk2LjQw
LDU2LjIwLC05Mi40MCw1NC42MCBDLTg4LjQwLDUzLjAwLC04Mi40MCw0NC40MCwtNzkuNjAsNDMu
NDAgQy03Ni44MCw0Mi40MCwtNzcuMDAsNDMuMjAsLTc3LjAwLDQzLjIwIEMtNzcuMDAsNDMuMjAs
LTcwLjIwLDI4LjQwLC01Ni42MCwzMi40MCBDLTU2LjYwLDMyLjQwLC03Mi44MCwyOS42MCwtNTcu
MDAsMjAuMjAgQy01Ny4wMCwyMC4yMCwtNjEuODAsMjEuMzAsLTU4LjUwLDE0LjMwIEMtNTYuMzAs
OS42MywtNTYuODAsMTYuNDAsLTY3LjgwLDI4LjIwIEMtNjcuODAsMjguMjAsLTcyLjgwLDM2Ljgw
LC03OC4wMCwzOS44MCBDLTgzLjIwLDQyLjgwLC05NS4yMCw0OS44MCwtOTYuNDAsNTMuNjAgQy05
Ny42MCw1Ny40MCwtMTAwLjgwLDYzLjIwLC0xMDIuODAsNjQuODAgQy0xMDQuODAsNjYuNDAsLTEw
Ny42MCw3MC42MCwtMTA4LjAwLDc0LjAwIEMtMTA4LjAwLDc0LjAwLC0xMDkuMjAsNzguMDAsLTEx
MC42MCw3OS4yMCBDLTExMi4wMCw4MC40MCwtMTEyLjIwLDgzLjYwLC0xMTIuMjAsODUuNjAgQy0x
MTIuMjAsODcuNjAsLTExNC4yMCw5MC40MCwtMTE0LjAwLDkyLjgwIEMtMTE0LjAwLDkyLjgwLC0x
MTMuMjAsMTExLjgwLC0xMTMuNjAsMTEzLjgwIEwtMTExLjYwLDExMC4wMCBaIl0KICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgxNzMuNDAsMzEzLjIwKSBzaXplIDguNDB4NDAuNDAgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGRkZGRl19XSBbZGF0YT0iTS0xMjAuMjAsMTE0LjYwIEMt
MTIwLjIwLDExNC42MCwtMTIyLjIwLDExMy4yMCwtMTI2LjYwLDExOS4yMCBDLTEyNi42MCwxMTku
MjAsLTExOS4zMCwxNTIuMjAsLTExOS4zMCwxNTMuNjAgQy0xMTkuMzAsMTUzLjYwLC0xMTguMjAs
MTUxLjUwLC0xMTkuNTAsMTQ0LjMwIEMtMTIwLjgwLDEzNy4xMCwtMTIxLjcwLDEyNC40MCwtMTIx
LjcwLDEyNC40MCBMLTEyMC4yMCwxMTQuNjAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMTY2LjYwLDI1MS4yMCkgc2l6ZSAzOS4zMHg2NC41MCBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jOTkyNjAwXX1dIFtkYXRhPSJNLTk4LjYwLDU0LjAwIEMtOTguNjAsNTQuMDAsLTExNi4y
MCw1Ny4yMCwtMTE1LjgwLDg2LjQwIEwtMTE2LjYwLDExMS4yMCBDLTExNi42MCwxMTEuMjAsLTEx
Ny44MCw4NS42MCwtMTE5LjAwLDg0LjAwIEMtMTIwLjIwLDgyLjQwLC0xMTYuMjAsNzEuMjAsLTEx
OS40MCw3Ny4yMCBDLTExOS40MCw3Ny4yMCwtMTMzLjQwLDkxLjIwLC0xMjUuNDAsMTEyLjQwIEMt
MTI1LjQwLDExMi40MCwtMTIzLjkwLDExNS43MCwtMTI2LjkwLDExMS4xMCBDLTEyNi45MCwxMTEu
MTAsLTEzMS41MCw5OC41MCwtMTMwLjQwLDkyLjEwIEMtMTMwLjQwLDkyLjEwLC0xMzAuMjAsODku
OTAsLTEyOC4zMCw4Ny4xMCBDLTEyOC4zMCw4Ny4xMCwtMTE5LjcwLDc1LjQwLC0xMTcuMDAsNzMu
MTAgQy0xMTcuMDAsNzMuMTAsLTExNS4yMCw1OC43MCwtOTkuODAsNTMuNTAgQy05OS44MCw1My41
MCwtOTQuMTAsNTEuMjAsLTk4LjYwLDU0LjAwIFoiXQotICAgICAgUmVuZGVyUGF0aCB7cGF0aH0g
YXQgKDMyMC4wNCwxNjIuNDIpIHNpemUgMjUuNzd4NDguMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTQwLjgwLC0xMi4yMCBDNDEuNDYsLTEyLjU1LDQxLjQ1
LC0xMy41Miw0Mi4wMywtMTMuNzAgQzQzLjE4LC0xNC4wNCw0My4zNCwtMTUuMTEsNDMuODYsLTE1
Ljg5IEM0NC43NCwtMTcuMjEsNDQuOTMsLTE4Ljc0LDQ1LjUxLC0yMC4yNCBDNDUuNzgsLTIwLjkz
LDQ1LjgxLC0yMS44OSw0NS41MCwtMjIuNTUgQzQ0LjMyLC0yNS4wMyw0My42MiwtMjcuNDgsNDIu
MTgsLTI5LjkxIEM0MS45MSwtMzAuMzYsNDEuNjUsLTMxLjE1LDQxLjQ1LC0zMS43NSBDNDAuOTgs
LTMzLjEzLDM5LjczLC0zNC4xMiwzOC44NywtMzUuNDQgQzM4LjU4LC0zNS44OCwzOS4xMCwtMzYu
ODEsMzguMzksLTM2Ljg5IEMzNy40OSwtMzcuMDAsMzYuMDQsLTM3LjU4LDM1LjgxLC0zNi41NSBD
MzUuMjIsLTMzLjk3LDM2LjIzLC0zMS40NCwzNy4yMCwtMjkuMDAgQzM2LjQyLC0yOC4zMSwzNi43
NSwtMjcuMzksMzYuOTAsLTI2LjYyIEMzNy42MSwtMjMuMDEsMzYuNDIsLTE5LjY2LDM1LjY1LC0x
Ni4xOSBDMzUuNjMsLTE2LjA4LDM1Ljk3LC0xNS44OSwzNS45NSwtMTUuODIgQzM0LjcyLC0xMy4x
NCwzMy4yNywtMTAuNjksMzEuNDUsLTguMzEgQzMwLjY5LC03LjMyLDI5LjgyLC02LjQwLDI5LjMz
LC01LjM0IEMyOC45NiwtNC41NSwyOC41NSwtMy41OSwyOC44MCwtMi42MCBDMjUuMzYsMC4xOCwy
My4xMSw0LjAzLDIwLjUwLDcuODcgQzIwLjA0LDguNTUsMjAuMzMsOS43NiwyMC44OCwxMC4wMyBD
MjEuNzAsMTAuNDMsMjIuNjUsOS40MCwyMy4xMiw4LjU2IEMyMy41MSw3Ljg2LDIzLjg2LDcuMjEs
MjQuMzYsNi41NyBDMjQuNDksNi4zOSwyNC4zMSw1Ljk3LDI0LjQ0LDUuODUgQzI3LjA4LDMuNTAs
MjguNzUsMC41NywzMS4yMCwtMS44MCBDMzMuMTUsLTIuMTMsMzQuNjksLTMuMTMsMzYuNDQsLTQu
MTQgQzM2Ljc0LC00LjMyLDM3LjI3LC00LjA3LDM3LjU2LC00LjI2IEMzOS4zMSwtNS40NCwzOS4z
MSwtNy40OCwzOS40MSwtOS4zOSBDMzkuNDYsLTEwLjI3LDM5LjY2LC0xMS41OSw0MC44MCwtMTIu
MjAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzIwLjA0LDE2Mi40Mikgc2l6ZSAy
NS43N3g0OC4wMSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMDAwXX1dIFtkYXRhPSJN
NDAuODAsLTEyLjIwIEM0MS40NiwtMTIuNTUsNDEuNDUsLTEzLjUyLDQyLjAzLC0xMy43MCBDNDMu
MTgsLTE0LjA0LDQzLjM0LC0xNS4xMSw0My44NiwtMTUuODkgQzQ0Ljc0LC0xNy4yMSw0NC45Mywt
MTguNzQsNDUuNTEsLTIwLjI0IEM0NS43OCwtMjAuOTMsNDUuODEsLTIxLjg5LDQ1LjUwLC0yMi41
NSBDNDQuMzIsLTI1LjAzLDQzLjYyLC0yNy40OCw0Mi4xOCwtMjkuOTEgQzQxLjkxLC0zMC4zNiw0
MS42NSwtMzEuMTUsNDEuNDUsLTMxLjc1IEM0MC45OCwtMzMuMTMsMzkuNzMsLTM0LjEyLDM4Ljg3
LC0zNS40NCBDMzguNTgsLTM1Ljg4LDM5LjEwLC0zNi44MSwzOC4zOSwtMzYuODkgQzM3LjQ5LC0z
Ny4wMCwzNi4wNCwtMzcuNTgsMzUuODEsLTM2LjU1IEMzNS4yMiwtMzMuOTcsMzYuMjMsLTMxLjQ0
LDM3LjIwLC0yOS4wMCBDMzYuNDIsLTI4LjMxLDM2Ljc1LC0yNy4zOSwzNi45MCwtMjYuNjIgQzM3
LjYxLC0yMy4wMSwzNi40MiwtMTkuNjYsMzUuNjUsLTE2LjE5IEMzNS42MywtMTYuMDgsMzUuOTcs
LTE1Ljg5LDM1Ljk1LC0xNS44MiBDMzQuNzIsLTEzLjE0LDMzLjI3LC0xMC42OSwzMS40NSwtOC4z
MSBDMzAuNjksLTcuMzIsMjkuODIsLTYuNDAsMjkuMzMsLTUuMzQgQzI4Ljk2LC00LjU1LDI4LjU1
LC0zLjU5LDI4LjgwLC0yLjYwIEMyNS4zNiwwLjE4LDIzLjExLDQuMDMsMjAuNTAsNy44NyBDMjAu
MDQsOC41NSwyMC4zMyw5Ljc2LDIwLjg4LDEwLjAzIEMyMS43MCwxMC40MywyMi42NSw5LjQwLDIz
LjEyLDguNTYgQzIzLjUxLDcuODYsMjMuODYsNy4yMSwyNC4zNiw2LjU3IEMyNC40OSw2LjM5LDI0
LjMxLDUuOTcsMjQuNDQsNS44NSBDMjcuMDgsMy41MCwyOC43NSwwLjU3LDMxLjIwLC0xLjgwIEMz
My4xNSwtMi4xMywzNC42OSwtMy4xMywzNi40NCwtNC4xNCBDMzYuNzQsLTQuMzIsMzcuMjcsLTQu
MDcsMzcuNTYsLTQuMjYgQzM5LjMxLC01LjQ0LDM5LjMxLC03LjQ4LDM5LjQxLC05LjM5IEMzOS40
NiwtMTAuMjcsMzkuNjYsLTExLjU5LDQwLjgwLC0xMi4yMCBaIl0KICAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICgzMjcuNTAsMTYyLjE5KSBzaXplIDcuOTh4MjIuNDkgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTMxLjk2LC0xNi42NyBDMzIuMDgsLTE2Ljc0
LDMxLjkzLC0xNy4xNywzMi4wNCwtMTcuMzggQzMyLjIwLC0xNy43MSwzMi42MCwtMTcuODksMzIu
NzYsLTE4LjIyIEMzMi44NywtMTguNDMsMzIuNzEsLTE4LjgxLDMyLjg1LC0xOC45NiBDMzUuMTgs
LTIxLjQwLDM1LjQ0LC0yNC40MywzNC40MCwtMjcuNDAgQzM1LjQyLC0yOC4wMiwzNS40OSwtMjku
MjgsMzUuMDYsLTMwLjEzIEMzNC4yMSwtMzEuODMsMzQuMDEsLTMzLjc2LDMzLjA0LC0zNS4zMCBD
MzIuMjQsLTM2LjU3LDMwLjY2LC0zNy44MSwyOS4yOSwtMzYuNTEgQzI4Ljg3LC0zNi4xMSwyOC41
NSwtMzUuMzIsMjguODIsLTM0LjYxIEMyOC44OSwtMzQuNDUsMjkuMTcsLTM0LjMwLDI5LjE1LC0z
NC4yMiBDMjkuMDQsLTMzLjg5LDI4LjQ5LC0zMy42NywyOC40OSwtMzMuNDAgQzI4LjQ2LC0zMS45
MCwyNy41MCwtMzAuMzksMjguMTMsLTI5LjA2IEMyOC45MSwtMjcuNDMsMjkuNzIsLTI1LjU4LDMw
LjQwLC0yMy44MCBDMjkuMTcsLTIxLjY4LDMwLjIwLC0xOS4yNCwyOC40NSwtMTcuMzYgQzI4LjMx
LC0xNy4yMSwyOC4zMiwtMTYuODMsMjguNDQsLTE2LjYyIEMyOC43MywtMTYuMTQsMjkuMTQsLTE1
LjczLDI5LjYyLC0xNS40NCBDMjkuODMsLTE1LjMyLDMwLjE3LC0xNS4zMiwzMC4zOCwtMTUuNDQg
QzMwLjk1LC0xNS44MCwzMS4zNSwtMTYuMjksMzEuOTYsLTE2LjY3IFoiXQogICAgICAgUmVuZGVy
UGF0aCB7cGF0aH0gYXQgKDM4Ny42MSwxNDMuOTcpIHNpemUgMjAuNDN4MzguMzQgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTk0Ljc3LC0yNi45OCBDOTYuMTYs
LTI1LjE4LDk2LjQ1LC0yMi4zOSw5NC40MCwtMjEuMDAgQzk0Ljk1LC0xNy42OSw5OC4zMCwtMTku
NjcsMTAwLjQwLC0yMC4yMCBDMTAwLjI5LC0yMC41OSwxMDAuNTIsLTIwLjkzLDEwMC44MCwtMjAu
OTQgQzEwMS44NiwtMjAuOTUsMTAyLjU0LC0yMS45OCwxMDMuNjAsLTIxLjgwIEMxMDQuMDQsLTIz
LjM2LDEwNS42NywtMjQuMDYsMTA2LjMyLC0yNS40NCBDMTA4LjA0LC0yOS4xMywxMDcuNDUsLTMz
LjQxLDEwNC44NywtMzYuNjUgQzEwNC42NywtMzYuOTEsMTA0Ljg4LC0zNy40MiwxMDQuNzYsLTM3
Ljc5IEMxMDQuMDAsLTQwLjAwLDEwMS45MywtNDAuMzEsMTAwLjAwLC00MS4wMCBDOTguODIsLTQ0
Ljg4LDk4LjE2LC00OC45MSw5Ni40MCwtNTIuNjAgQzk0Ljc5LC01Mi44NSw5NC4wOSwtNTQuNTks
OTIuNzUsLTU1LjMxIEM5MS40MiwtNTYuMDMsOTAuODUsLTU0LjQ1LDkwLjg5LC01My40MCBDOTAu
OTAsLTUzLjIwLDkxLjM1LC01Mi45Nyw5MS4xOCwtNTIuNjEgQzkxLjExLC01Mi40NCw5MC44NSwt
NTIuMzMsOTAuODUsLTUyLjIwIEM5MC44NSwtNTIuMDYsOTEuMDcsLTUxLjkzLDkxLjIwLC01MS44
MCBDOTAuMjgsLTUwLjk4LDg4Ljg2LC01MC41MCw4OC41NywtNDkuMzYgQzg3LjYxLC00NS42NSw5
MC4xOCwtNDIuNTIsOTEuODUsLTM5LjMyIEM5Mi40NCwtMzguMTksOTEuNzEsLTM2LjkyLDkwLjk1
LC0zNS43MSBDOTAuNTEsLTM1LjAxLDkwLjYyLC0zMy44OSw5MC44OSwtMzMuMDMgQzkxLjY0LC0z
MC43MCw5My4yNCwtMjguOTYsOTQuNzcsLTI2Ljk4IFoiXQogICAgICAgUmVuZGVyUGF0aCB7cGF0
aH0gYXQgKDMzNy4wNiwxNTAuMDMpIHNpemUgNTQuNDR4NDcuODYgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTU3LjYxLC04LjU5IEM1Ni4xMiwtNi43NCw1Mi43
MSwtNC4xNyw1NS42MywtMi4yNCBDNTUuODIsLTIuMTEsNTYuMTksLTIuMTEsNTYuMzcsLTIuMjQg
QzU4LjM5LC0zLjgxLDYwLjM5LC00LjcxLDYyLjgzLC01LjI5IEM2Mi45NSwtNS4zMiw2My4yMiwt
NC44Niw2My41OSwtNS4wMiBDNjUuMjEsLTUuNzIsNjcuMjIsLTUuNjYsNjguNDAsLTcuMDAgQzcy
LjE3LC02Ljc4LDc1LjczLC03Ljg5LDc5LjEyLC05LjIwIEM4MC4yOCwtOS42NSw4MS41NSwtMTAu
MjEsODIuNzUsLTEwLjcxIEM4NC4xMywtMTEuMjgsODUuMzMsLTEyLjIxLDg2LjQ1LC0xMy4zNSBD
ODYuNTgsLTEzLjQ5LDg2LjkzLC0xMy40MCw4Ny4yMCwtMTMuNDAgQzg3LjE2LC0xNC4yNiw4OC4x
MiwtMTQuMzksODguMzcsLTE1LjAxIEM4OC40NiwtMTUuMjQsODguMzEsLTE1LjY0LDg4LjQ0LC0x
NS43NCBDOTAuNTgsLTE3LjM3LDkxLjUwLC0xOS4zOSw5MC4zMywtMjEuNzcgQzkwLjA1LC0yMi4z
NCw4OS44MCwtMjIuOTYsODkuMjMsLTIzLjQ0IEM4OC4xNSwtMjQuMzUsODcuMDUsLTIzLjUwLDg2
LjAwLC0yMy44MCBDODUuODQsLTIzLjE3LDg1LjExLC0yMy4zNCw4NC43MywtMjMuMTUgQzgzLjg3
LC0yMi43MSw4Mi41MywtMjMuMjksODEuNjgsLTIyLjg1IEM4MC4zMSwtMjIuMTYsNzkuMDcsLTIx
Ljk5LDc3LjY1LC0yMS42MSBDNzcuMzQsLTIxLjUzLDc2LjU2LC0yMS42Myw3Ni40MCwtMjEuMDAg
Qzc2LjI3LC0yMS4xMyw3Ni4xMiwtMjEuMzcsNzYuMDEsLTIxLjM1IEM3NC4xMCwtMjAuOTUsNzIu
ODQsLTIwLjc0LDcxLjU0LC0xOS4wNCBDNzEuNDQsLTE4LjkxLDcxLjAwLC0xOS4wOSw3MC44NCwt
MTguOTUgQzY5Ljg4LC0xOC4xNSw2OS40OCwtMTYuOTEsNjguMzgsLTE2LjI0IEM2OC4xOCwtMTYu
MTIsNjcuODIsLTE2LjI5LDY3LjYzLC0xNi4xNiBDNjYuOTgsLTE1LjczLDY2LjYyLC0xNS4wOSw2
NS45NywtMTQuNjQgQzY1LjY0LC0xNC40MSw2NS4yNSwtMTQuNzMsNjUuMjgsLTE0Ljk5IEM2NS41
MiwtMTYuOTQsNjYuMTgsLTE4LjcyLDY1LjYwLC0yMC42MCBDNjcuNjgsLTIzLjEyLDcwLjE5LC0y
NS4wNyw3Mi4wMCwtMjcuODAgQzcyLjAxLC0yOS45Nyw3Mi43MSwtMzIuMTEsNzIuNTksLTM0LjE5
IEM3Mi41OCwtMzQuMzgsNzIuMzAsLTM1LjEyLDcyLjE3LC0zNS40NiBDNzEuODYsLTM2LjMyLDcy
Ljc2LC0zNy4zOCw3MS45MiwtMzguMTEgQzcwLjUyLC0zOS4zMSw2OS4yMiwtMzguNDMsNjguNDAs
LTM3LjAwIEM2Ni41NiwtMzYuNjEsNjQuNTAsLTM1LjkyLDYyLjkyLC0zNy4xNSBDNjEuOTEsLTM3
Ljk0LDYxLjMzLC0zOC44NCw2MC41MywtMzkuOTAgQzU5LjU1LC00MS4yMCw1OS44OCwtNDIuNjQs
NTkuOTUsLTQ0LjIwIEM1OS45NiwtNDQuMzMsNTkuNjUsLTQ0LjQ3LDU5LjY1LC00NC42MCBDNTku
NjUsLTQ0Ljc0LDU5Ljg3LC00NC44Nyw2MC4wMCwtNDUuMDAgQzU5LjI5LC00NS42Myw1OS4wMiwt
NDYuNjgsNTguMDAsLTQ3LjAwIEM1OC4zMSwtNDguMDksNTcuNjMsLTQ4Ljk4LDU2Ljc2LC00OS4y
OCBDNTQuNzYsLTQ5Ljk3LDUzLjA5LC00OC4wNiw1MS4xOSwtNDcuOTggQzUwLjY4LC00Ny45Nyw1
MC4yMSwtNDkuMDAsNDkuNTYsLTQ5LjMzIEM0OS4xMywtNDkuNTQsNDguNDMsLTQ5LjU4LDQ4LjA3
LC00OS4zMSBDNDcuMzgsLTQ4LjgxLDQ2Ljc5LC00OC42OSw0Ni4wMywtNDguNDkgQzQ0LjQxLC00
OC4wNSw0My4xNCwtNDYuOTYsNDEuNjYsLTQ2LjEwIEM0MC4xNywtNDUuMjUsMzkuMjIsLTQzLjgx
LDM4LjE0LC00Mi40OSBDMzcuMTksLTQxLjM0LDM3LjA2LC0zOC45MiwzOC40OCwtMzguNDIgQzQw
LjMyLC0zNy43Nyw0MS42MywtNDAuNDgsNDMuNTksLTQwLjE1IEM0My45MCwtNDAuMTAsNDQuMTEs
LTM5Ljc5LDQ0LjAwLC0zOS40MCBDNDQuMzksLTM5LjI5LDQ0LjYxLC0zOS41Miw0NC44MCwtMzku
ODAgQzQ1LjY2LC0zOC43OCw0Ni44MiwtMzguNDQsNDcuNzYsLTM3LjU3IEM0OC43MywtMzYuNjcs
NTAuNDgsLTM3LjA4LDUxLjQ5LC0zNi4wOSBDNTMuMDIsLTM0LjU5LDUyLjQ2LC0zMS45MSw1NC40
MCwtMzAuNjAgQzUzLjgxLC0yOS4yOSw1My4yMSwtMjguMDEsNTIuODcsLTI2LjU4IEM1Mi41OSwt
MjUuMzgsNTMuNTgsLTI0LjE4LDU0Ljc5LC0yNC4yNyBDNTYuMDUsLTI0LjM2LDU2LjMxLC0yNS4x
Miw1Ni44MCwtMjYuMjAgQzU3LjA3LC0yNS45Myw1Ny41NCwtMjUuNjQsNTcuNDksLTI1LjQyIEM1
Ny4wNCwtMjMuMDMsNTYuMDEsLTIxLjA0LDU1LjU1LC0xOC42MSBDNTUuNDksLTE4LjI5LDU1LjE5
LC0xOC4wOSw1NC44MCwtMTguMjAgQzU0LjMzLC0xNC4wNSw1MC4yOCwtMTEuNjYsNDcuNzQsLTgu
NDkgQzQ3LjMzLC03Ljk5LDQ3LjMzLC02Ljc0LDQ3Ljc0LC02LjM0IEM0OS4xNCwtNC45NSw1MS4x
MCwtNi41MCw1Mi44MCwtNy4wMCBDNTMuMDEsLTguMjEsNTMuODcsLTkuMTUsNTUuMjAsLTkuMDkg
QzU1LjQ2LC05LjA4LDU1LjY5LC05LjYyLDU2LjAyLC05Ljc1IEM1Ni4zNywtOS44OSw1Ni44Nywt
OS42Nyw1Ny4xNSwtOS44NyBDNTguODgsLTExLjA2LDYwLjI5LC0xMi4xNyw2Mi4wMywtMTMuMzYg
QzYyLjIyLC0xMy40OSw2Mi41NywtMTMuMzMsNjIuNzgsLTEzLjQ0IEM2My4xMSwtMTMuNjAsNjMu
MjksLTEzLjk4LDYzLjYyLC0xNC4xNyBDNjMuOTcsLTE0LjM3LDY0LjIxLC0xNC4wOCw2NC40MCwt
MTMuODAgQzYzLjc1LC0xMy40NSw2My43NSwtMTIuNDksNjMuMTcsLTEyLjI5IEM2Mi4zOSwtMTIu
MDIsNjEuODMsLTExLjUxLDYxLjE2LC0xMS4wNiBDNjAuODcsLTEwLjg3LDYwLjIxLC0xMS4xMiw2
MC4xMCwtMTAuOTQgQzU5LjUxLC05LjkxLDU4LjMyLC05LjQ3LDU3LjYxLC04LjU5IFoiXQpAQCAt
MjM1LDExICsyMzUsMTEgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5k
ZXJQYXRoIHtwYXRofSBhdCAoMzQ2LjIwLDUxNS44MCkgc2l6ZSAxNC40MHgzMi44MCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNNDYuMjAsMzQ3LjQwIEM0Ni4y
MCwzNDcuNDAsNTMuNjAsMzI3LjAwLDQ5LjIwLDMxNS44MCBDNDkuMjAsMzE1LjgwLDYwLjYwLDMz
Ny40MCw1Ni4wMCwzNDguNjAgQzU2LjAwLDM0OC42MCw1NS42MCwzMzguMjAsNTEuNjAsMzMzLjIw
IEM1MS42MCwzMzMuMjAsNDcuNjAsMzQ2LjAwLDQ2LjIwLDM0Ny40MCBaIl0KICAgICAgIFJlbmRl
clBhdGgge3BhdGh9IGF0ICgzMjEuMjAsNTE3LjYwKSBzaXplIDE1LjYweDMxLjQwIFtmaWxsPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0zMS40MCwzNDQuODAgQzMxLjQw
LDM0NC44MCwzNi44MCwzMzYuMDAsMjguODAsMzE3LjYwIEMyOC44MCwzMTcuNjAsMjguMDAsMzM4
LjAwLDIxLjIwLDM0OS4wMCBDMjEuMjAsMzQ5LjAwLDM1LjQwLDMyOC44MCwzMS40MCwzNDQuODAg
WiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMzA3LjYwLDUxOS44MCkgc2l6ZSAxNC40
MHgyNi4yMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMjEu
NDAsMzQyLjgwIEMyMS40MCwzNDIuODAsMjEuMjAsMzIyLjgwLDIxLjYwLDMxOS44MCBDMjEuNjAs
MzE5LjgwLDE3LjgwLDMzNi40MCw3LjYwLDM0Ni4wMCBDNy42MCwzNDYuMDAsMjIuMDAsMzM0LjAw
LDIxLjQwLDM0Mi44MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgzMDcuODAsNTEw
LjgwKSBzaXplIDEwLjAweDMyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0g
W2RhdGE9Ik0xMS44MCwzMTAuODAgQzExLjgwLDMxMC44MCwxNy44MCwzMjQuNDAsNy44MCwzNDIu
ODAgQzcuODAsMzQyLjgwLDE0LjIwLDMzMC42MCw5LjQwLDMyMy42MCBDOS40MCwzMjMuNjAsMTIu
MDAsMzIwLjIwLDExLjgwLDMxMC44MCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgz
MDcuODAsNTEwLjgwKSBzaXplIDEweDMyIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0ND
Q0NdfV0gW2RhdGE9Ik0xMS44MCwzMTAuODAgQzExLjgwLDMxMC44MCwxNy44MCwzMjQuNDAsNy44
MCwzNDIuODAgQzcuODAsMzQyLjgwLDE0LjIwLDMzMC42MCw5LjQwLDMyMy42MCBDOS40MCwzMjMu
NjAsMTIuMDAsMzIwLjIwLDExLjgwLDMxMC44MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9
IGF0ICgyOTEuNjAsNTExLjAwKSBzaXplIDEzLjYweDMxLjYwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tNy40MCwzNDIuNDAgQy03LjQwLDM0Mi40MCwtOC40
MCwzMjYuODAsLTYuNjAsMzI0LjYwIEMtNi42MCwzMjQuNjAsLTYuNDAsMzE4LjIwLC02LjgwLDMx
Ny4yMCBDLTYuODAsMzE3LjIwLC0yLjgwLDMxMS4wMCwtMi42MCwzMTguNDAgQy0yLjYwLDMxOC40
MCwtMS4yMCwzMjYuMjAsMS42MCwzMzAuODAgQzEuNjAsMzMwLjgwLDUuMjAsMzM2LjIwLDUuMDAs
MzQyLjYwIEM1LjAwLDM0Mi42MCwtNS4wMCwzMTIuNDAsLTcuNDAsMzQyLjQwIFoiXQogICAgICAg
UmVuZGVyUGF0aCB7cGF0aH0gYXQgKDI3OS4yMCw1MDguNjApIHNpemUgOS44MHgzNiBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTExLjAwLDMxNC44MCBDLTEx
LjAwLDMxNC44MCwtMTcuNjAsMzI1LjYwLC0xOS40MCwzNDQuNjAgQy0xOS40MCwzNDQuNjAsLTIw
LjgwLDMzOC40MCwtMTcuMDAsMzI0LjAwIEMtMTcuMDAsMzI0LjAwLC0xMi44MCwzMDguNjAsLTEx
LjAwLDMxNC44MCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgyNjIuODAsNTA4LjQw
KSBzaXplIDE0LjQweDI2LjIwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0g
W2RhdGE9Ik0tMzIuODAsMzM0LjYwIEMtMzIuODAsMzM0LjYwLC0yNy44MCwzMjkuMjAsLTI2LjQw
LDMyNC4yMCBDLTI2LjQwLDMyNC4yMCwtMjIuODAsMzA4LjQwLC0yOS4yMCwzMTcuMDAgQy0yOS4y
MCwzMTcuMDAsLTI5LjAwLDMyNS4wMCwtMzcuMjAsMzMyLjQwIEMtMzcuMjAsMzMyLjQwLC0zMi40
MCwzMzAuMDAsLTMyLjgwLDMzNC42MCBaIl0KLSAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICgy
NTEuODAsNTA4LjAwKSBzaXplIDE1LjYweDI5IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSND
Q0NDQ0NdfV0gW2RhdGE9Ik0tMzguNjAsMzI5LjYwIEMtMzguNjAsMzI5LjYwLC0zNS4yMCwzMTIu
MjAsLTM0LjQwLDMxMS40MCBDLTM0LjQwLDMxMS40MCwtMzIuNjAsMzA4LjAwLC0zNS40MCwzMTEu
MjAgQy0zNS40MCwzMTEuMjAsLTQ0LjIwLDMzMC40MCwtNDguMjAsMzM3LjAwIEMtNDguMjAsMzM3
LjAwLC00MC4yMCwzMjcuODAsLTM4LjYwLDMyOS42MCBaIl0KKyAgICAgIFJlbmRlclBhdGgge3Bh
dGh9IGF0ICgyNTEuODAsNTA4LjAwKSBzaXplIDE1LjYweDI5LjAwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tMzguNjAsMzI5LjYwIEMtMzguNjAsMzI5LjYw
LC0zNS4yMCwzMTIuMjAsLTM0LjQwLDMxMS40MCBDLTM0LjQwLDMxMS40MCwtMzIuNjAsMzA4LjAw
LC0zNS40MCwzMTEuMjAgQy0zNS40MCwzMTEuMjAsLTQ0LjIwLDMzMC40MCwtNDguMjAsMzM3LjAw
IEMtNDguMjAsMzM3LjAwLC00MC4yMCwzMjcuODAsLTM4LjYwLDMyOS42MCBaIl0KICAgICAgIFJl
bmRlclBhdGgge3BhdGh9IGF0ICgyNDUuNDAsNDkwLjYwKSBzaXplIDIxLjgweDI1LjgwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNDQ0NDQ0NdfV0gW2RhdGE9Ik0tNDQuNDAsMzEzLjAwIEMt
NDQuNDAsMzEzLjAwLC0zMi44MCwyOTAuNjAsLTU0LjYwLDMxNi40MCBDLTU0LjYwLDMxNi40MCwt
NDMuNjAsMzA2LjYwLC00NC40MCwzMTMuMDAgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBh
dCAoMjQwLjIwLDQ3MC44MCkgc2l6ZSAxNS42MHgzMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jQ0NDQ0NDXX1dIFtkYXRhPSJNLTU5LjgwLDI5OC40MCBDLTU5LjgwLDI5OC40MCwtNTUuMDAs
Mjc5LjYwLC01Mi40MCwyNzkuODAgQy01Mi40MCwyNzkuODAsLTQ0LjIwLDI3MC44MCwtNTAuODAs
MjgxLjQwIEMtNTAuODAsMjgxLjQwLC01Ni44MCwyOTEuMDAsLTU2LjIwLDMwMC44MCBDLTU2LjIw
LDMwMC44MCwtNTYuODAsMjkxLjIwLC01OS44MCwyOTguNDAgWiJdCiAgICAgICBSZW5kZXJQYXRo
IHtwYXRofSBhdCAoNTU2LDQ3My41MCkgc2l6ZSAxNngyNS41MCBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jQ0NDQ0NDXX1dIFtkYXRhPSJNMjcwLjUwLDI4Ny4wMCBDMjcwLjUwLDI4Ny4wMCwy
NTguNTAsMjc3LjAwLDI1Ni4wMCwyNzMuNTAgQzI1Ni4wMCwyNzMuNTAsMjY5LjUwLDI5Mi4wMCwy
NjkuNTAsMjk5LjAwIEMyNjkuNTAsMjk5LjAwLDI3Mi4wMCwyOTEuNTAsMjcwLjUwLDI4Ny4wMCBa
Il0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDctZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvaGl4
aWUvcGVyZi8wMDctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvaGl4aWUvcGVyZi8wMDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xNTksNyArMTU5LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
ICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoNDkxLjYyLDI3My40NCkgc2l6ZSAyMi45M3gzMC44NyBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJNNDkzLjA0LDIw
NC4yNiBMNDkxLjgyLDIwMi40OSBMNDkxLjc5LDIwMS41NSBMNDkxLjc2LDIwMC4xMiBMNDkxLjcy
LDE5OC4wOCBMNDkxLjcyLDE5Ny4wNiBMNDkxLjcyLDE5Ni42MiBMNDkxLjczLDE5NS43OCBMNDkx
Ljc0LDE5NC41NiBMNDkxLjc0LDE5NC4wNSBMNDkzLjM5LDE5MS41OSBMNDkzLjg0LDE5MS4wOCBM
NDk0LjE1LDE5MC45OCBMNDk1LjM2LDE5MC45MCBMNDk1LjcwLDE5MC43OCBMNDk1Ljk5LDE5MC4z
NiBMNDk2LjUwLDE4OS44NiBMNDk2Ljg5LDE4OS42NSBMNDk3LjQ1LDE4OS40MyBMNDk4LjA3LDE4
OS4zNCBMNDk5Ljc3LDE4OS4zOSBMNTAwLjU3LDE4OS4zOCBMNTAxLjM4LDE4OC40OCBMNTAyLjk0
LDE4Ni43OSBMNTA3LjAzLDE4Mi41OCBMNTA2Ljc5LDE4Mi40MyBMNTA0LjkyLDE4Mi40NyBMNTAz
LjQ3LDE4MS45OSBMNDk5LjIxLDE4MC41NSBMNDk4LjY3LDE4MC4zNCBMNDk4LjA0LDE4MC4wMiBM
NDk3LjQ0LDE3OS40NyBMNDk2LjcxLDE3OC42NyBMNDk2LjEyLDE3Ny44MyBMNDk1LjY5LDE3Ny4x
MCBMNDk1LjYxLDE3Ni42OSBMNDk1Ljk3LDE3NS44OCBMNDk2LjMxLDE3NS4zMSBMNDk2LjY4LDE3
NC44NSBMNDk2LjgwLDE3NC41OSBMNDk2Ljk1LDE3NC42MyBMNDk3Ljg5LDE3NS43NyBMNDk4LjQ3
LDE3Ni4zOSBMNDk4LjcxLDE3Ni43NyBMNDk4Ljk4LDE3Ni45OCBMNDk5LjM1LDE3Ni45MSBMNDk5
Ljc3LDE3Ni45MSBMNTAwLjIzLDE3Ni45NCBMNTAwLjYxLDE3Ni44NyBMNTAxLjE4LDE3Ni42MCBM
NTAyLjAxLDE3Ni4xNyBMNTAyLjYwLDE3Ni4wMiBMNTAzLjAwLDE3Ni4xMSBMNTAzLjc2LDE3Ni4z
OCBMNTA0LjMwLDE3Ni4zMSBMNTA0Ljg2LDE3NS45OCBMNTA1LjY0LDE3NS40MiBMNTA1Ljg5LDE3
NS4yOSBMNTA2LjM0LDE3NS4zMyBMNTA2LjgyLDE3NS40MyBMNTA3LjI0LDE3NS4zOSBMNTA4LjQz
LDE3NC45MCBMNTA4LjcyLDE3NC45MyBMNTA5LjQwLDE3NS4xMyBMNTEwLjE0LDE3NS4xMCBMNTEw
LjkwLDE3NC45MSBMNTExLjg3LDE3NC41OSBMNTEyLjc3LDE3My45MiBMNTEzLjI0LDE3My41NCBM
NTEzLjg0LDE3My42OSBMNTE0LjIzLDE3My45MCBMNTE0LjMxLDE3My45MiBMNTE0LjQ2LDE3NC4x
OCBMNTE0LjA1LDE3NS4xMCBMNTE0LjA3LDE3NS42NyBMNTE0LjIwLDE3Ni4yOSBMNTE0LjAzLDE3
Ni43NCBMNTEzLjY2LDE3Ny4yNSBMNTEzLjYzLDE3Ny45MyBMNTEzLjU5LDE3OC43NiBMNTEzLjQy
LDE3OS4yNyBMNTEyLjE2LDE4MS41MyBMNTExLjMyLDE4Mi4zMiBMNTExLjE5LDE4Mi42MyBMNTEx
LjMwLDE4Mi45OSBMNTEwLjQwLDE4NC41NiBMNTA5LjU3LDE4NS44MyBMNTA5LjM2LDE4Ni43NyBM
NTA5LjAwLDE4Ny40MSBMNTA4LjI5LDE4OC41MyBMNTA3LjQyLDE4OS43MiBMNTA2LjI2LDE5MS4y
MSBMNTA1Ljg4LDE5MS42NSBMNTAzLjYwLDE5NC4xNiBMNTAxLjc4LDE5NS43MSBMNDk5LjYyLDE5
Ni44NCBMNDk5LjAyLDE5Ny4yMiBMNDk3Ljc0LDE5OC4zMSBMNDk2LjAwLDIwMC4wNiBMNDk1Ljk0
LDIwMC4xMiBMNDk0Ljg5LDIwMS4yMiBMNDkzLjY1LDIwMi43OSBMNDkzLjA0LDIwMy42MyBMNDkz
LjE0LDIwMy45OCBMNDkzLjA1LDIwNC4yNiBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0
ICgyNjIuNjEsMjc1LjkzKSBzaXplIDIuMjV4MS45NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJNMjY0Ljc3LDE3Ni4wNCBMMjY0LjY0LDE3Ni4yNiBMMjY0
LjUyLDE3Ni4zMyBMMjY0LjUwLDE3Ni40NyBMMjY0LjU0LDE3Ni43MiBMMjY0LjQ4LDE3Ni44MCBM
MjY0LjYwLDE3Ny4xOCBMMjY0LjU2LDE3Ny42MCBMMjY0LjExLDE3Ny43NiBMMjYzLjk4LDE3Ny43
NSBMMjYzLjgzLDE3Ny43OSBMMjYzLjM1LDE3Ny43NSBMMjYzLjE2LDE3Ny43OSBMMjYzLjA3LDE3
Ny43NCBMMjYyLjcxLDE3Ny43NCBMMjYyLjY5LDE3Ny42OCBMMjYyLjczLDE3Ny42MSBMMjYyLjkz
LDE3Ny41OCBMMjYzLjE2LDE3Ny40NSBMMjYzLjE4LDE3Ny4zNiBMMjYzLjI4LDE3Ny4zOCBMMjYz
LjQ0LDE3Ny4zOSBMMjYzLjU3LDE3Ny4yNSBMMjYzLjQ4LDE3Ni45NyBMMjYzLjUyLDE3Ni44NCBM
MjYzLjU1LDE3Ni42NiBMMjYzLjQ4LDE3Ni41MyBMMjYzLjM5LDE3Ni40MCBMMjYzLjExLDE3Ni4z
NSBMMjYzLjIzLDE3Ni4yNiBMMjYzLjM5LDE3Ni4yNCBMMjYzLjYyLDE3Ni4yMSBMMjYzLjczLDE3
Ni4xMiBMMjY0LjEyLDE3Ni4xNCBMMjY0LjIzLDE3Ni4xMCBMMjY0LjUyLDE3Ni4wMyBMMjY0Ljc3
LDE3Ni4wNCBaIl0KICAgICAgIFJlbmRlclBhdGgge3BhdGh9IGF0ICg2NTMuOTksMjg4Ljg0KSBz
aXplIDIuNjB4Mi40NCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJv
a2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jQzBDMEMwXX1dIFtk
YXRhPSJNNjU0LjA4LDE5MC4xOSBMNjU0LjI4LDE5MC4wNiBMNjU0LjkxLDE4OS45NSBMNjU1LjU3
LDE4OS4wMSBMNjU1LjgxLDE4OC45NCBMNjU1Ljc0LDE4OS4yMSBMNjU1Ljg2LDE4OS4yOSBMNjU2
LjA1LDE4OS4yNSBMNjU2LjE2LDE4OS40MiBMNjU2LjMxLDE4OS44NyBMNjU2LjI4LDE4OS45OCBM
NjU2LjI3LDE5MC4yMyBMNjU2LjQ3LDE5MC40MiBMNjU2LjQ5LDE5MC41MSBMNjU1LjI2LDE5MC45
MyBMNjU0Ljg3LDE5MS4yMCBMNjU0LjU3LDE5MC45MyBMNjU0LjQ1LDE5MC42NyBMNjU0LjIyLDE5
MC42OCBMNjU0LjE2LDE5MC4zMSBMNjU0LjA3LDE5MC4xOCBaIl0KLSAgICAgIFJlbmRlclBhdGgg
e3BhdGh9IGF0ICg0NzQuNDEsMjg5LjgyKSBzaXplIDE5LjA2eDIxLjEyIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzgwODA4MF0gW3N0cm9rZSB3aWR0aD0wLjIwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNDMEMwQzBdfV0gW2RhdGE9Ik00OTMuMDQsMjA0LjI2IEw0OTIuNDQs
MjA0LjY1IEw0OTEuODksMjA0LjgyIEw0OTEuNTAsMjA0LjcxIEw0OTEuNDEsMjA1LjQ4IEw0OTEu
MTMsMjA1Ljg1IEw0OTAuNDYsMjA1Ljk2IEw0OTAuMDcsMjA2LjM1IEw0ODkuOTgsMjA2LjgzIEw0
ODkuOTksMjA3LjE4IEw0ODkuNjMsMjA3LjgwIEw0ODguNjcsMjA5LjE2IEw0ODguNzYsMjA5Ljcw
IEw0ODguNDIsMjEwLjM1IEw0ODguMTcsMjEwLjYwIEw0ODcuODQsMjEwLjcwIEw0ODcuNzUsMjEw
Ljg1IEw0ODYuNjksMjEwLjA1IEw0ODQuMjYsMjA4LjI5IEw0ODQuMTksMjA4LjA1IEw0ODQuMzAs
MjA3LjUwIEw0ODQuMTcsMjA3LjEyIEw0ODAuNjEsMjA1LjE0IEw0NzUuOTUsMjAyLjU3IEw0NzQu
NTAsMjAyLjYwIEw0NzUuNjUsMjAwLjEyIEw0NzUuNzUsMTk5LjkwIEw0NzYuNDEsMTk5LjA2IEw0
NzcuMzksMTk4LjEyIEw0NzcuODcsMTk3LjYwIEw0NzguMzAsMTk2LjkwIEw0NzguNDQsMTk2LjM0
IEw0NzguNDAsMTk1LjY3IEw0NzguMTcsMTk1LjA3IEw0NzcuOTUsMTk0LjcxIEw0NzcuMjIsMTkz
LjY1IEw0NzcuMDQsMTkzLjE4IEw0NzcuMDIsMTkyLjMyIEw0NzYuODksMTkyLjA5IEw0NzYuNDEs
MTkxLjYzIEw0NzYuMTEsMTkxLjE0IEw0NzYuNzksMTkwLjM0IEw0NzcuMDgsMTkwLjAxIEw0Nzcu
NzUsMTkwLjA3IEw0NzguNTgsMTkwLjA2IEw0NzkuNTksMTg5LjkzIEw0ODAuMDYsMTg5LjkxIEw0
ODAuMTQsMTg5Ljk0IEw0ODAuNDYsMTkwLjAxIEw0ODEuNTEsMTkwLjE2IEw0ODIuMjYsMTkwLjM1
IEw0ODIuODYsMTkwLjY0IEw0ODUuMjIsMTkyLjE3IEw0ODUuNTUsMTkyLjIxIEw0ODYuOTIsMTky
LjM0IEw0ODcuNTksMTkyLjU0IEw0ODguNDQsMTkyLjYzIEw0ODguNjAsMTkyLjUyIEw0ODkuMzEs
MTkxLjc2IEw0ODkuNTcsMTkxLjU2IEw0OTAuMjQsMTkxLjIyIEw0OTEuMTAsMTkwLjg2IEw0OTEu
MzcsMTkwLjk2IEw0OTEuODMsMTkxLjMwIEw0OTIuMjksMTkxLjQ4IEw0OTMuMzksMTkxLjU4IEw0
OTEuNzQsMTk0LjA1IEw0OTEuNzQsMTk0LjU2IEw0OTEuNzQsMTk1Ljc3IEw0OTEuNzIsMTk2LjYy
IEw0OTEuNzIsMTk3LjA2IEw0OTEuNzIsMTk4LjA4IEw0OTEuNzcsMjAwLjEyIEw0OTEuODAsMjAx
LjU1IEw0OTEuODIsMjAyLjQ4IEw0OTMuMDUsMjA0LjI2IFoiXQorICAgICAgUmVuZGVyUGF0aCB7
cGF0aH0gYXQgKDQ3NC40MSwyODkuODIpIHNpemUgMTkuMDZ4MjEuMTEgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jODA4MDgwXSBbc3Ryb2tlIHdpZHRoPTAuMjBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBbZGF0YT0iTTQ5My4wNCwyMDQuMjYgTDQ5Mi40NCwy
MDQuNjUgTDQ5MS44OSwyMDQuODIgTDQ5MS41MCwyMDQuNzEgTDQ5MS40MSwyMDUuNDggTDQ5MS4x
MywyMDUuODUgTDQ5MC40NiwyMDUuOTYgTDQ5MC4wNywyMDYuMzUgTDQ4OS45OCwyMDYuODMgTDQ4
OS45OSwyMDcuMTggTDQ4OS42MywyMDcuODAgTDQ4OC42NywyMDkuMTYgTDQ4OC43NiwyMDkuNzAg
TDQ4OC40MiwyMTAuMzUgTDQ4OC4xNywyMTAuNjAgTDQ4Ny44NCwyMTAuNzAgTDQ4Ny43NSwyMTAu
ODUgTDQ4Ni42OSwyMTAuMDUgTDQ4NC4yNiwyMDguMjkgTDQ4NC4xOSwyMDguMDUgTDQ4NC4zMCwy
MDcuNTAgTDQ4NC4xNywyMDcuMTIgTDQ4MC42MSwyMDUuMTQgTDQ3NS45NSwyMDIuNTcgTDQ3NC41
MCwyMDIuNjAgTDQ3NS42NSwyMDAuMTIgTDQ3NS43NSwxOTkuOTAgTDQ3Ni40MSwxOTkuMDYgTDQ3
Ny4zOSwxOTguMTIgTDQ3Ny44NywxOTcuNjAgTDQ3OC4zMCwxOTYuOTAgTDQ3OC40NCwxOTYuMzQg
TDQ3OC40MCwxOTUuNjcgTDQ3OC4xNywxOTUuMDcgTDQ3Ny45NSwxOTQuNzEgTDQ3Ny4yMiwxOTMu
NjUgTDQ3Ny4wNCwxOTMuMTggTDQ3Ny4wMiwxOTIuMzIgTDQ3Ni44OSwxOTIuMDkgTDQ3Ni40MSwx
OTEuNjMgTDQ3Ni4xMSwxOTEuMTQgTDQ3Ni43OSwxOTAuMzQgTDQ3Ny4wOCwxOTAuMDEgTDQ3Ny43
NSwxOTAuMDcgTDQ3OC41OCwxOTAuMDYgTDQ3OS41OSwxODkuOTMgTDQ4MC4wNiwxODkuOTEgTDQ4
MC4xNCwxODkuOTQgTDQ4MC40NiwxOTAuMDEgTDQ4MS41MSwxOTAuMTYgTDQ4Mi4yNiwxOTAuMzUg
TDQ4Mi44NiwxOTAuNjQgTDQ4NS4yMiwxOTIuMTcgTDQ4NS41NSwxOTIuMjEgTDQ4Ni45MiwxOTIu
MzQgTDQ4Ny41OSwxOTIuNTQgTDQ4OC40NCwxOTIuNjMgTDQ4OC42MCwxOTIuNTIgTDQ4OS4zMSwx
OTEuNzYgTDQ4OS41NywxOTEuNTYgTDQ5MC4yNCwxOTEuMjIgTDQ5MS4xMCwxOTAuODYgTDQ5MS4z
NywxOTAuOTYgTDQ5MS44MywxOTEuMzAgTDQ5Mi4yOSwxOTEuNDggTDQ5My4zOSwxOTEuNTggTDQ5
MS43NCwxOTQuMDUgTDQ5MS43NCwxOTQuNTYgTDQ5MS43NCwxOTUuNzcgTDQ5MS43MiwxOTYuNjIg
TDQ5MS43MiwxOTcuMDYgTDQ5MS43MiwxOTguMDggTDQ5MS43NywyMDAuMTIgTDQ5MS44MCwyMDEu
NTUgTDQ5MS44MiwyMDIuNDggTDQ5My4wNSwyMDQuMjYgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtw
YXRofSBhdCAoNDY2LjExLDI5MS4wNykgc2l6ZSAxMi40M3gxMi41NyBbc3Ryb2tlPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19XSBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jQzBDMEMwXX1dIFtkYXRhPSJNNDY2LjIwLDIwMy4yNyBMNDY2LjM4LDIw
Mi45OCBMNDY2LjQ2LDIwMi43MSBMNDY2LjQwLDIwMS45NiBMNDY2LjQzLDIwMS4yMyBMNDY2LjQx
LDIwMC42MyBMNDY2LjUxLDIwMC4xMiBMNDY2LjczLDE5OS4xMCBMNDY3LjEzLDE5OC40MiBMNDY3
LjM4LDE5OC4xNCBMNDY4LjYyLDE5Ny4xNCBMNDY5LjgyLDE5Ni4wOCBMNDcwLjAxLDE5NS42MiBM
NDY5LjkwLDE5NS4zMiBMNDY5LjYzLDE5NS4xMyBMNDY5LjE1LDE5NS4wOSBMNDY4Ljk2LDE5NS4w
NyBMNDY4LjgzLDE5NC44MSBMNDY5LjA5LDE5Mi45MyBMNDY5LjExLDE5Mi41MSBMNDY4Ljk1LDE5
Mi4zMyBMNDY4Ljg4LDE5Mi4zMCBMNDY5LjM4LDE5Mi4wNyBMNDY5Ljg0LDE5MS45OCBMNDcwLjM0
LDE5MS45OSBMNDcxLjI4LDE5Mi4yMyBMNDcyLjE5LDE5Mi4xOCBMNDczLjA3LDE5MS44NSBMNDcz
Ljk1LDE5MS43MiBMNDc0LjI2LDE5MS44MSBMNDc0LjU2LDE5Mi4wMSBMNDc0LjkzLDE5MS45OSBM
NDc1LjU1LDE5MS42OCBMNDc2LjExLDE5MS4xNCBMNDc2LjQyLDE5MS42MyBMNDc2Ljg5LDE5Mi4x
MCBMNDc3LjAyLDE5Mi4zMiBMNDc3LjA1LDE5My4xOCBMNDc3LjIyLDE5My42NSBMNDc3Ljk1LDE5
NC43MiBMNDc4LjE3LDE5NS4wNyBMNDc4LjQwLDE5NS42OCBMNDc4LjQ1LDE5Ni4zNCBMNDc4LjMw
LDE5Ni45MCBMNDc3Ljg3LDE5Ny42MCBMNDc3LjQwLDE5OC4xMiBMNDc2LjQxLDE5OS4wNiBMNDc1
Ljc2LDE5OS45MCBMNDc1LjY1LDIwMC4xMyBMNDc0LjUxLDIwMi42MSBMNDY5Ljg1LDIwMi42MSBM
NDY4LjU3LDIwMi42NiBMNDY4LjI1LDIwMi42NyBMNDY3LjcwLDIwMy4wNyBMNDY3LjI0LDIwMy41
MCBMNDY2LjgxLDIwMy41NCBMNDY2LjI2LDIwMy4zMiBMNDY2LjIwLDIwMy4yOCBaIl0KICAgICAg
IFJlbmRlclBhdGgge3BhdGh9IGF0ICg2MTIuMDIsMjg3LjYyKSBzaXplIDEwMS45MXgzNS42MyBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4MDgwODBdIFtzdHJva2Ugd2lkdGg9MC4yMF19
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAzNTAwXX1dIFtkYXRhPSJNNzEzLjYyLDIw
Ni4zMCBMNzEzLjc5LDIxNC4yNiBMNzEzLjM1LDIxNS4wOSBMNzEzLjc4LDIxNi40NSBMNzEzLjgz
LDIxNy4yNiBMNzEzLjgwLDIyMC43MCBMNzEzLjI4LDIyMC4xOCBMNzEyLjM1LDIxOS4zMCBMNzEx
LjY0LDIxOC40MCBMNzExLjIzLDIxOC4zNCBMNzEwLjQ2LDIxOC40NCBMNzA5LjcyLDIxOC41OCBM
NzA5LjI4LDIxOC41NyBMNzA5LjM3LDIxOC4xOSBMNzA5LjgxLDIxNy41NCBMNzA5LjgyLDIxNy4y
NiBMNzA5LjI1LDIxNi43MyBMNzA4LjY5LDIxNS45NiBMNzA4LjcyLDIxNS43MyBMNzA5LjE2LDIx
NS44NCBMNzA5LjQwLDIxNS44MCBMNzA5LjUzLDIxNS42OSBMNzA5LjA2LDIxNS4yOCBMNzA4LjQ3
LDIxNC44NyBMNzA4LjE4LDIxNC40OSBMNzA3LjkxLDIxMy44NCBMNzA2Ljg1LDIxMi4xNSBMNzA2
LjM0LDIxMS43NiBMNzA1Ljg4LDIxMS40NyBMNzA1LjI3LDIxMS4yOCBMNzAzLjI5LDIxMC42OCBM
NzAyLjAzLDIxMC4zMCBMNzAxLjQyLDIxMC4yMyBMNzAwLjcxLDIwOS45OSBMNzAwLjA4LDIwOS42
NyBMNzAwLjE2LDIwOS4zMyBMNzAwLjA2LDIwOS4wNiBMNjk5Ljg2LDIwOS4wMyBMNjk5LjI1LDIw
OS4xMyBMNjk4Ljg2LDIwOS4wNiBMNjk4LjQ1LDIwOC44NyBMNjk4LjA0LDIwOC40NyBMNjk3Ljgz
LDIwNy44OSBMNjk3Ljk2LDIwNy40MCBMNjk3LjgxLDIwNy4xNyBMNjk3LjYyLDIwNy4yOCBMNjk3
LjM5LDIwNy42OCBMNjk3LjI2LDIwOC4zNCBMNjk3LjAxLDIwOC45NSBMNjk2LjY4LDIwOS4yMiBM
Njk1Ljk4LDIwOS41NyBMNjk1LjgzLDIwOS40MSBMNjk1LjUwLDIwOC43MyBMNjk1LjUyLDIwOC41
NyBMNjk1LjkwLDIwOC4zMCBMNjk1Ljc1LDIwNy44OCBMNjk1LjU4LDIwNy42NCBMNjk1LjAxLDIw
Ny4yNSBMNjk0LjMxLDIwNi44NSBMNjkzLjk3LDIwNi44MCBMNjkzLjkxLDIwNi41OCBMNjkzLjk1
LDIwNi4zNiBMNjk0LjM2LDIwNi4zMSBMNjk0Ljc1LDIwNi40MCBMNjk1LjM1LDIwNi42NCBMNjk1
LjUxLDIwNi42MSBMNjk1Ljg4LDIwNi4yNyBMNjk2LjQwLDIwNS44NiBMNjk2LjU1LDIwNS45MSBM
Njk2Ljg1LDIwNi4xOCBMNjk3Ljg3LDIwNi4xNCBMNjk4LjAxLDIwNi4wMSBMNjk4LjEwLDIwNS40
OSBMNjk4LjA0LDIwNS4wOCBMNjk3LjgwLDIwNS4xMSBMNjk3LjQ1LDIwNS4zMSBMNjk2Ljg1LDIw
NS4zOCBMNjk2LjE5LDIwNS4zNCBMNjk1LjQzLDIwNS4zOCBMNjk0LjQwLDIwNS4zMCBMNjkzLjk5
LDIwNC45OSBMNjkzLjg1LDIwNC43OSBMNjkzLjcxLDIwNC4xMyBMNjkzLjUxLDIwMy43OSBMNjkz
LjA5LDIwMy42MyBMNjkxLjg0LDIwMy41MSBMNjkyLjEwLDIwMy4yMSBMNjkyLjE2LDIwMi45NiBM
NjkyLjE2LDIwMi4zNyBMNjkyLjYzLDIwMi4zNCBMNjkzLjU1LDIwMS45MyBMNjk0LjA0LDIwMS41
NCBMNjk0LjQ4LDIwMS4yNiBMNjk0LjgzLDIwMS4yOSBMNjk1LjIzLDIwMS4zNSBMNjk2LjczLDIw
Mi4wMCBMNjk3LjI0LDIwMi4xNyBMNjk4LjE1LDIwMi4zMiBMNjk4LjU0LDIwMy4wMyBMNjk4LjY3
LDIwMy40MiBMNjk4LjM5LDIwNC4xNyBMNjk4LjMyLDIwNC41NSBMNjk4LjU0LDIwNC45MyBMNjk4
LjY2LDIwNS40MyBMNjk4Ljc4LDIwNS45MSBMNjk4Ljk5LDIwNi40MyBMNjk5LjE4LDIwNi42MyBM
Njk5LjM3LDIwNi43NSBMNjk5LjYwLDIwNi4xMCBMNjk5LjY4LDIwNi4yMiBMNjk5Ljc3LDIwNi4z
NiBMNzAwLjA4LDIwNy40MyBMNzAwLjI1LDIwNy42MCBMNzAwLjQ4LDIwNy43OCBMNzAwLjc4LDIw
Ny45MCBMNzAxLjEzLDIwNy45NSBMNzAxLjcxLDIwNy43NSBMNzAyLjIyLDIwNy4zMSBMNzAzLjQx
LDIwNS40NiBMNzAzLjc2LDIwNS40NSBMNzA0Ljg0LDIwNS4yMyBMNzA1LjIyLDIwNS4wOSBMNzA1
LjI2LDIwNS4wMCBMNzA1LjI3LDIwNC40OSBMNzA1LjQ5LDIwNC4zMiBMNzA2LjU5LDIwMy43MiBM
NzA2LjkzLDIwMy42NyBMNzA4LjY2LDIwNC40MyBMNzEwLjc5LDIwNS4zNyBMNzEyLjMzLDIwNS44
OSBMNzEzLjYzLDIwNi4zMCBaIE02OTEuMjEsMjA4LjcxIEw2OTAuODIsMjA4LjY0IEw2OTAuMTMs
MjA4LjI2IEw2ODkuMjgsMjA3LjYxIEw2ODguOTgsMjA3LjQ3IEw2ODguNTcsMjA3LjUwIEw2ODgu
NTEsMjA3LjYwIEw2ODguNTMsMjA4LjA1IEw2ODguMzMsMjA4LjA4IEw2ODcuMzEsMjA3LjY3IEw2
ODcuMDUsMjA3LjMyIEw2ODYuNDcsMjA3LjUyIEw2ODYuMTgsMjA3Ljc5IEw2ODUuODYsMjA3Ljk3
IEw2ODUuNjcsMjA3Ljc5IEw2ODUuMzYsMjA3LjM0IEw2ODUuMTEsMjA2Ljg4IEw2ODUuMzYsMjA2
LjY5IEw2ODUuNjYsMjA2LjY2IEw2ODUuOTQsMjA2LjcxIEw2ODcuMDQsMjA2Ljc1IEw2ODcuNjEs
MjA3LjA2IEw2ODcuOTMsMjA3LjA1IEw2ODguNDgsMjA2LjcyIEw2ODguODksMjA2LjcxIEw2ODku
NDIsMjA2LjgzIEw2OTAuMjgsMjA3LjA0IEw2OTAuNzgsMjA3LjQ0IEw2OTEuMDcsMjA3LjgzIEw2
OTEuMjUsMjA4LjQ2IEw2OTEuMjAsMjA4LjcxIFogTTY4Mi4wNCwyMDguNzAgTDY4MS42MywyMDgu
NjQgTDY4MC45MSwyMDguMTUgTDY4MC42OCwyMDcuNzAgTDY4MC44MywyMDcuNDIgTDY4MS40Mywy
MDcuMzIgTDY4Mi4xOSwyMDcuMjcgTDY4Mi40NCwyMDcuNDAgTDY4Mi43MCwyMDcuNzEgTDY4My4w
MSwyMDcuOTEgTDY4My4xMiwyMDguMTMgTDY4My4wNSwyMDguMzYgTDY4Mi45MiwyMDguNDEgTDY4
Mi4wNSwyMDguNzAgWiBNNzA3LjY0LDIxOS4xMCBMNzA2LjUzLDIxOC44OSBMNzA3LjExLDIxNy44
NSBMNzA3LjY3LDIxNy4xNSBMNzA4LjA4LDIxNi44OCBMNzA4LjUxLDIxNi44MCBMNzA5LjAzLDIx
Ny4xNCBMNzA5LjIzLDIxNy4zOCBMNzA5LjEyLDIxNy41NyBMNzA4LjgwLDIxOC4yMCBMNzA4LjU0
LDIxOC4zNyBMNzA3LjkxLDIxOS4wNyBMNzA3LjY0LDIxOS4xMCBaIE02NzMuODAsMjE4LjcwIEw2
NzMuMjMsMjE4Ljk2IEw2NzMuMjcsMjE5LjE5IEw2NzIuMzgsMjE5LjUyIEw2NzEuODAsMjE5Ljc5
IEw2NzEuNDYsMjE5Ljc1IEw2NzEuMDEsMjIwLjA4IEw2NzAuNTEsMjIwLjAxIEw2NzAuMDgsMjE5
LjkwIEw2NjkuNzAsMjIwLjE1IEw2NjkuNDAsMjIwLjIxIEw2NjkuMDQsMjIwLjE0IEw2NjguNDYs
MjE5Ljk0IEw2NjcuNDIsMjE5LjkwIEw2NjcuMTAsMjE5Ljk1IEw2NjYuODksMjE5LjM4IEw2NjYu
OTIsMjE5LjE0IEw2NjcuMzAsMjE4Ljk0IEw2NjcuOTcsMjE4Ljc0IEw2NjguNTAsMjE4LjczIEw2
NjkuNjQsMjE5LjE0IEw2NzAuMDksMjE5LjQ2IEw2NzAuNDIsMjE5LjQ3IEw2NzAuNzUsMjE5LjE4
IEw2NzEuMjEsMjE5LjE2IEw2NzEuNjQsMjE5LjA5IEw2NzIuMDYsMjE5LjI4IEw2NzIuNTIsMjE5
LjE2IEw2NzIuNDUsMjE4Ljk0IEw2NzIuODcsMjE4Ljc1IEw2NzMuMjgsMjE4LjUyIEw2NzMuMzcs
MjE4LjM3IEw2NzMuMjksMjE4LjI1IEw2NzMuMTEsMjE4LjI3IEw2NzMuMjMsMjE4LjA3IEw2NzMu
MzksMjE4LjA5IEw2NzMuNjEsMjE4LjE4IEw2NzMuNzgsMjE4LjQwIEw2NzMuODAsMjE4LjcxIFog
TTY2Mi42NiwyMTkuMDcgTDY2Mi4zNSwyMTguOTcgTDY2Mi4xNSwyMTguODQgTDY2Mi4wOCwyMTgu
NjcgTDY2Mi4xMSwyMTguNDYgTDY2Mi4zNywyMTguMjYgTDY2Mi42OCwyMTguMjIgTDY2Mi44NSwy
MTguMzIgTDY2Mi45MSwyMTguNTMgTDY2My4wOSwyMTguNjMgTDY2My40MCwyMTguNDggTDY2My43
MywyMTguNTkgTDY2My44NCwyMTguNzQgTDY2My44MywyMTkuMTkgTDY2NC4wMSwyMTkuMDQgTDY2
NC4xNywyMTguNzQgTDY2NC40OSwyMTguNzEgTDY2NC43MiwyMTguOTMgTDY2NC43NCwyMTkuMzYg
TDY2NC45MiwyMTkuMzIgTDY2NC45OCwyMTkuNDMgTDY2NC45NiwyMTkuODIgTDY2NC42NCwyMTku
NjEgTDY2NC4zMywyMTkuNTUgTDY2NC4xOSwyMTkuNjEgTDY2NC4yNiwyMTkuNzcgTDY2My40MSwy
MTkuOTIgTDY2My4yNywyMTkuODMgTDY2My4zNiwyMTkuNTYgTDY2My4yOCwyMTkuNTEgTDY2Mi45
NywyMTkuNzcgTDY2Mi43NCwyMjAuMDMgTDY2Mi40NSwyMTkuOTggTDY2MS44MiwyMjAuMjEgTDY2
MS4xOSwyMjAuNDEgTDY2MC44NCwyMjAuMzYgTDY2MC41MywyMjAuNDggTDY2MC4xMywyMjAuNDEg
TDY2MC4wMywyMjAuMzQgTDY1OS44MywyMjAuMjIgTDY1OS43NywyMTkuOTQgTDY1OS45MSwyMTku
NjggTDY1OS44MywyMTkuNDIgTDY2MC4wMiwyMTkuMzEgTDY2MC4yNSwyMTkuMjAgTDY2MC40OCwy
MTkuMDQgTDY2MC43MSwyMTkuMTEgTDY2MS4zMiwyMTkuMTIgTDY2MS43MiwyMTkuMjMgTDY2MS44
MSwyMTkuNTEgTDY2Mi4xMCwyMTkuNjIgTDY2Mi4zOSwyMTkuNjcgTDY2Mi41OCwyMTkuNDEgTDY2
Mi44NywyMTkuNDAgTDY2Mi45MiwyMTkuMjEgTDY2Mi42NiwyMTkuMDYgWiBNNjU2LjI5LDIxOS42
MCBMNjU1LjkwLDIxOS4zMiBMNjU1LjA1LDIxOC44NyBMNjU0LjkzLDIxOC42MCBMNjU1LjM0LDIx
OC42MCBMNjU1Ljg2LDIxOC40MiBMNjU2LjMyLDIxOC4zOSBMNjU3LjI1LDIxOC45MSBMNjU2Ljkx
LDIxOS4wOCBMNjU2LjY4LDIxOS4xOCBMNjU2LjI5LDIxOS42MCBaIE02MzEuMDUsMjAwLjEyIEw2
MzAuOTksMjAwLjM1IEw2MzAuNTgsMjAwLjc5IEw2MzAuMzgsMjAxLjIwIEw2MjkuOTksMjAxLjU1
IEw2MzAuMTYsMjAxLjkxIEw2MzAuMzIsMjAyLjA3IEw2MzEuMTMsMjAyLjU3IEw2MzEuOTYsMjAy
LjYyIEw2MzIuMjAsMjAyLjc0IEw2MzIuMzUsMjAzLjEyIEw2MzIuNDgsMjAzLjg4IEw2MzIuNDcs
MjA0LjI5IEw2MzIuNzQsMjA0LjcxIEw2MzIuOTUsMjA0Ljg0IEw2MzMuNDksMjA0Ljg4IEw2MzMu
MDQsMjA1LjgxIEw2MzMuMjAsMjA2LjAyIEw2MzMuOTAsMjA1LjU3IEw2MzQuNzIsMjA1LjgyIEw2
MzQuOTAsMjA1Ljg3IEw2MzUuMTYsMjA2LjEyIEw2MzUuMzEsMjA2LjU2IEw2MzYuMDEsMjA3LjIz
IEw2MzUuNDksMjA5LjIxIEw2MzUuNDUsMjA5LjY2IEw2MzUuNjgsMjEwLjYxIEw2MzUuNjYsMjEx
LjA1IEw2MzUuNjgsMjExLjcxIEw2MzUuNjgsMjExLjk4IEw2MzUuNTMsMjEzLjA0IEw2MzUuNDQs
MjEzLjIwIEw2MzUuMzQsMjEzLjI3IEw2MzQuOTcsMjEzLjAxIEw2MzQuNTksMjEyLjQ5IEw2MzQu
MzMsMjEyLjQxIEw2MzQuMDcsMjEyLjg5IEw2MzMuOTgsMjEzLjE2IEw2MzIuOTQsMjEyLjU0IEw2
MzIuNzIsMjEyLjYyIEw2MzMuMTIsMjEzLjM3IEw2MzIuOTUsMjEzLjU4IEw2MzIuNzUsMjEzLjM5
IEw2MzEuNDEsMjExLjk2IEw2MzAuNjMsMjExLjIwIEw2MjkuNjIsMjEwLjM0IEw2MjguMjcsMjA5
LjM4IEw2MjcuODgsMjA4LjkzIEw2MjcuNjgsMjA4LjQ0IEw2MjcuNDksMjA4LjEwIEw2MjYuNDks
MjA3LjQ3IEw2MjUuNzksMjA2Ljc5IEw2MjQuNjAsMjA1LjI4IEw2MjQuNTMsMjA0LjkzIEw2MjQu
NTcsMjA0LjU5IEw2MjQuMjUsMjAzLjcxIEw2MjMuNDEsMjAyLjI1IEw2MjIuNzQsMjAxLjIwIEw2
MjIuMTMsMjAwLjQzIEw2MjEuNzYsMjAwLjEzIEw2MjEuNDcsMTk5Ljg5IEw2MjAuODMsMTk5LjYw
IEw2MjAuNTgsMTk4Ljg1IEw2MTkuODksMTk3LjA0IEw2MTkuOTYsMTk2LjgwIEw2MTkuODUsMTk2
LjQ5IEw2MTkuNjksMTk2LjMwIEw2MTkuMDMsMTk1Ljc5IEw2MTguMzIsMTk1LjQwIEw2MTcuNzgs
MTk1LjE5IEw2MTcuNDYsMTk1LjA5IEw2MTcuMzQsMTk0LjczIEw2MTcuMjcsMTk0LjAwIEw2MTcu
MDksMTkzLjU5IEw2MTYuNzAsMTkzLjExIEw2MTUuODgsMTkyLjI4IEw2MTUuNTEsMTkxLjg2IEw2
MTQuNzksMTkxLjk5IEw2MTQuMTgsMTkxLjMxIEw2MTMuNTMsMTkwLjcwIEw2MTIuOTQsMTkwLjAx
IEw2MTIuMzgsMTg5LjA3IEw2MTIuMTUsMTg4LjQzIEw2MTIuMTEsMTg4LjA3IEw2MTIuMTcsMTg3
Ljg3IEw2MTIuMzIsMTg3Ljc2IEw2MTIuNzIsMTg3LjcxIEw2MTMuMDksMTg3LjgxIEw2MTMuMzQs
MTg3Ljk0IEw2MTMuOTcsMTg4LjUwIEw2MTQuMzMsMTg4LjY1IEw2MTUuMjUsMTg4LjgxIEw2MTUu
NTksMTg4Ljg0IEw2MTYuMTMsMTg4Ljc0IEw2MTYuNTksMTg4LjU5IEw2MTYuOTksMTg4LjU4IEw2
MTcuMzEsMTg4Ljg5IEw2MTguMjMsMTkwLjA0IEw2MTguNzQsMTkwLjM1IEw2MTguODAsMTkwLjUx
IEw2MTguNjgsMTkxLjA1IEw2MTkuNzUsMTkxLjk2IEw2MjAuNDksMTkyLjQ2IEw2MjEuNjcsMTkz
LjE0IEw2MjIuMzUsMTkzLjQ3IEw2MjIuNDksMTkzLjY0IEw2MjIuNTIsMTk0LjIzIEw2MjIuNTAs
MTk0LjM4IEw2MjMuMDcsMTk0LjQ0IEw2MjMuODIsMTk1LjM4IEw2MjQuNDMsMTk1LjkzIEw2MjQu
NzAsMTk1LjkyIEw2MjQuNzAsMTk1LjcyIEw2MjQuNTgsMTk1LjQ5IEw2MjQuNjUsMTk1LjI1IEw2
MjUuMTYsMTk1LjQ2IEw2MjUuNjMsMTk2LjI3IEw2MjYuMDgsMTk2LjY1IEw2MjYuNTIsMTk2Ljcw
IEw2MjYuOTUsMTk2LjkwIEw2MjcuMjYsMTk3LjI3IEw2MjcuNTQsMTk4LjAwIEw2MjcuODYsMTk4
LjQ0IEw2MjguMjksMTk4LjcxIEw2MjguODAsMTk4LjgzIEw2MjkuNTcsMTk4LjkxIEw2MzAuMDAs
MTk5LjA3IEw2MzAuNDksMTk5LjQ1IEw2MzEuMDcsMjAwLjA1IEw2MzEuMDUsMjAwLjEzIFogTTY4
NC4yMCwyMDAuMTIgTDY4NC4xOSwxOTkuOTUgTDY4My43OCwxOTguOTAgTDY4My45NiwxOTguMzQg
TDY4My44OCwxOTguMjAgTDY4My43NCwxOTcuOTEgTDY4My43OCwxOTcuNTggTDY4NC4wNiwxOTYu
NjkgTDY4NC41OCwxOTUuODcgTDY4NC44NCwxOTYuMjQgTDY4NC45OSwxOTYuNTkgTDY4NC45NCwx
OTYuODggTDY4NC42OSwxOTcuMjcgTDY4NC4zMywxOTguMDMgTDY4NC4zOSwxOTguMzYgTDY4NC41
OCwxOTguNTAgTDY4NC42OCwxOTguMzYgTDY4NS4xMSwxOTcuOTUgTDY4NS4yNSwxOTcuNDMgTDY4
NS40MywxOTcuMjggTDY4Ni4yMywxOTYuODcgTDY4Ni4zOCwxOTcuMDEgTDY4Ni4zMiwxOTcuMjcg
TDY4Ni40MywxOTcuODIgTDY4Ni4wNywxOTguMDMgTDY4NS42MSwxOTguMzggTDY4NS40NSwxOTgu
NjkgTDY4NS42MCwxOTguNzkgTDY4Ni4wNSwxOTguOTIgTDY4Ni40NSwxOTkuMTMgTDY4Ni40Mywx
OTkuMjcgTDY4Ni41OSwxOTkuNjIgTDY4NS45MCwxOTkuNDcgTDY4NS40NywxOTkuMzIgTDY4NS4x
MCwxOTkuMjcgTDY4NC44MCwxOTkuNDMgTDY4NC43MiwxOTkuODcgTDY4NC43NywyMDAuMTMgTDY4
NC45MCwyMDAuODEgTDY4NS4yNCwyMDEuNDMgTDY4NS42NSwyMDEuODcgTDY4NS44NCwyMDIuMTUg
TDY4NS42OSwyMDIuMzcgTDY4NS40MywyMDIuMTUgTDY4NC43NiwyMDEuNTEgTDY4NC4yMSwyMDAu
NzcgTDY4NC4yMSwyMDAuMzggTDY4NC4yMCwyMDAuMTMgWiBNNjM3LjM2LDIwNy4xNCBMNjM2LjUw
LDIwNi43NSBMNjM2LjEyLDIwNi41MSBMNjM1LjkyLDIwNi4xNCBMNjM1Ljg3LDIwNS43OCBMNjM1
LjcyLDIwNS4zOCBMNjM1LjIxLDIwNC45OSBMNjM0LjkyLDIwNC44OSBMNjM0LjQ3LDIwNC45MiBM
NjM0LjM1LDIwNC43OCBMNjM0LjYzLDIwNC4xMyBMNjM0Ljg2LDIwMy44OSBMNjM1LjM3LDIwNC40
NCBMNjM1LjUyLDIwMy45NyBMNjM1LjgzLDIwMy43MCBMNjM1LjkwLDIwNC4xMCBMNjM2LjIxLDIw
NC45OSBMNjM2Ljg2LDIwNS44MCBMNjM3LjU2LDIwNi4xMSBMNjM3LjI5LDIwNi4zMCBMNjM3LjE4
LDIwNi41OCBMNjM3LjM2LDIwNy4xNCBaIE02MzQuMzIsMjE1LjM1IEw2MzQuMjMsMjE1LjE2IEw2
MzQuNTUsMjE1LjEzIEw2MzQuOTUsMjE1LjIzIEw2MzUuMzIsMjE1LjEwIEw2MzUuMzksMjE0LjU3
IEw2MzUuNDAsMjE0LjQzIEw2MzUuNzEsMjE0LjQ5IEw2MzUuNjcsMjEzLjk5IEw2MzUuODksMjEz
Ljc2IEw2MzUuOTgsMjEzLjQ4IEw2MzYuMTksMjEzLjYwIEw2MzYuODIsMjEzLjcxIEw2MzcuMjks
MjEzLjY3IEw2MzcuNTMsMjE0LjExIEw2MzguMDUsMjE0LjAyIEw2MzguMjEsMjEzLjcyIEw2Mzgu
MjMsMjEzLjQ4IEw2MzguNDksMjEzLjYwIEw2MzkuMTEsMjEzLjc2IEw2MzkuNTIsMjE0LjIwIEw2
MzkuODYsMjE0LjE1IEw2NDAuMDYsMjE0LjQzIEw2NDAuNTEsMjE0LjQwIEw2NDAuOTYsMjE0LjIx
IEw2NDEuMjYsMjE0LjQyIEw2NDEuNjMsMjE0Ljk1IEw2NDEuODEsMjE1LjQ3IEw2NDIuNzAsMjE1
LjUxIEw2NDMuMTYsMjE1LjcwIEw2NDMuNjUsMjE1LjYyIEw2NDUuMDgsMjE1Ljc0IEw2NDUuNTYs
MjE1LjcxIEw2NDUuOTAsMjE1LjU0IEw2NDYuMTEsMjE0Ljg5IEw2NDYuMzksMjE0LjYyIEw2NDYu
ODMsMjE0LjYxIEw2NDcuMDUsMjE0LjgyIEw2NDcuMzQsMjE1LjMxIEw2NDcuOTgsMjE1LjQ0IEw2
NDguNTEsMjE1LjQ3IEw2NDkuMjgsMjE1LjU1IEw2NTAuMDgsMjE1LjcwIEw2NTAuMzcsMjE1Ljk0
IEw2NTAuNjYsMjE2LjIzIEw2NTAuNTgsMjE2LjY4IEw2NTAuODUsMjE3LjE0IEw2NTAuOTcsMjE3
LjI0IEw2NTEuODUsMjE3LjU5IEw2NTIuMjcsMjE3LjY2IEw2NTIuOTMsMjE3LjY3IEw2NTMuMzgs
MjE3LjQ5IEw2NTMuNzksMjE3LjQ3IEw2NTQuNDIsMjE3LjcxIEw2NTQuNDcsMjE3LjkxIEw2NTQu
MjIsMjE4LjMzIEw2NTQuMDYsMjE4LjgzIEw2NTQuNjQsMjE5LjYwIEw2NTQuMTQsMjE5LjM5IEw2
NTMuMzQsMjE5LjIwIEw2NTIuNzQsMjE4Ljk0IEw2NTEuODUsMjE4LjYzIEw2NTEuMzIsMjE4LjY0
IEw2NTAuNzMsMjE4Ljg5IEw2NTAuMzksMjE4Ljk1IEw2NDkuNjcsMjE4Ljg1IEw2NDguMjIsMjE4
LjcxIEw2NDYuNzUsMjE4LjU3IEw2NDUuOTQsMjE4LjMyIEw2NDUuMTAsMjE3Ljg0IEw2NDQuMDEs
MjE3LjUxIEw2NDIuODgsMjE3LjI0IEw2NDEuOTMsMjE3LjIwIEw2NDEuMzgsMjE3LjUwIEw2NDAu
OTMsMjE3LjU0IEw2MzkuOTcsMjE3LjM5IEw2MzkuMTcsMjE2LjkwIEw2MzguODEsMjE2LjgzIEw2
MzcuMjEsMjE2Ljc2IEw2MzYuODQsMjE2LjYwIEw2MzYuOTAsMjE2LjQ2IEw2MzcuMzUsMjE2LjAw
IEw2MzYuOTQsMjE1LjczIEw2MzYuMzksMjE1LjYzIEw2MzUuODksMjE1LjQ5IEw2MzUuNTgsMjE1
LjQ2IEw2MzQuMzIsMjE1LjM0IFogTTY3NS4wMCwyMjMuMDkgTDY3NS4yNSwyMjIuNjAgTDY3NS4y
OCwyMjIuMDYgTDY3NS4zOSwyMjEuNzUgTDY3Ni4wNiwyMjEuMjcgTDY3Ny41MSwyMjAuNjQgTDY3
OC4xNywyMjAuMTkgTDY3OC41MywyMTkuNTggTDY3OS4wMCwyMTkuNDMgTDY4MC41OCwyMTkuMzIg
TDY4MS40OSwyMTkuMTEgTDY4Mi4wMywyMTkuMDcgTDY4Mi45MCwyMTguOTIgTDY4My4wMSwyMTgu
OTkgTDY4My4xMSwyMTkuMTkgTDY4Mi44OCwyMTkuNDAgTDY4Mi41MiwyMTkuNjYgTDY4MC45MSwy
MjAuMjcgTDY3OS41NCwyMjAuNzEgTDY3OC44MywyMjAuOTYgTDY3OC4yMiwyMjEuMzIgTDY3Ny4x
MywyMjIuMjggTDY3Ni40OCwyMjIuNzYgTDY3Ni4wNCwyMjIuODUgTDY3NS40OCwyMjMuMDggTDY3
NS4wMSwyMjMuMDkgWiBNNjY3Ljg3LDIyMy4xNSBMNjY3LjY1LDIyMy4wOCBMNjY2LjczLDIyMi40
OCBMNjY1LjkzLDIyMi4wMiBMNjY1LjU5LDIyMS45MyBMNjY1LjA5LDIyMS44MCBMNjY0LjgwLDIy
MS42MCBMNjY0LjkxLDIyMS4zOSBMNjY1LjI4LDIyMS4yNSBMNjY2LjI3LDIyMS4yMiBMNjY2Ljc3
LDIyMS4xMCBMNjY3LjEyLDIyMS40MCBMNjY4LjI3LDIyMi4xNSBMNjY4LjUzLDIyMi41MyBMNjY4
LjQxLDIyMi44NSBMNjY4LjE2LDIyMy4wOSBMNjY3Ljg2LDIyMy4xNSBaIE02NjEuODIsMTkxLjI0
IEw2NjEuNzgsMTkxLjMzIEw2NjIuMTAsMTkyLjAyIEw2NjEuODcsMTkyLjE2IEw2NjEuMzIsMTky
LjIxIEw2NjAuNzQsMTkyLjI5IEw2NjAuOTQsMTkyLjUyIEw2NjEuMDUsMTkyLjgyIEw2NjAuODks
MTkzLjA0IEw2NjEuMTAsMTkzLjI1IEw2NjEuMzQsMTkzLjM2IEw2NjEuODgsMTk0LjIwIEw2NjIu
NDIsMTk0Ljk0IEw2NjIuNDYsMTk1LjE0IEw2NjIuMTIsMTk1Ljg2IEw2NjIuMjAsMTk2LjA5IEw2
NjIuNjAsMTk2LjU1IEw2NjMuMzUsMTk3LjAwIEw2NjMuOTUsMTk3LjUwIEw2NjQuNTAsMTk4LjI2
IEw2NjQuMDMsMTk4LjQzIEw2NjMuMjgsMTk4LjQwIEw2NjIuNDksMTk4LjE2IEw2NjIuMTUsMTk4
LjI2IEw2NjEuNzYsMTk4LjczIEw2NjEuNDEsMTk5LjY1IEw2NjEuMzMsMjAwLjEyIEw2NjEuMjgs
MjAwLjQwIEw2NjEuNDEsMjAxLjA0IEw2NjEuNTMsMjAxLjQ3IEw2NjEuNDAsMjAyLjMyIEw2NjEu
MTQsMjAyLjMyIEw2NjAuNjgsMjAyLjE2IEw2NTkuNjQsMjAzLjEzIEw2NTkuMjEsMjAzLjc4IEw2
NTguNDYsMjA0LjM4IEw2NTguOTAsMjA0Ljc2IEw2NTguOTYsMjA1LjE2IEw2NTkuMTMsMjA1LjQ2
IEw2NTguNDQsMjA1LjUxIEw2NTguOTAsMjA2LjA5IEw2NTguOTAsMjA2LjMwIEw2NTguODAsMjA2
LjUzIEw2NTguMjUsMjA3LjIwIEw2NTguMDUsMjA3LjU5IEw2NTcuOTIsMjA3Ljk1IEw2NTcuMzks
MjA4LjU0IEw2NTYuMTAsMjA5LjE1IEw2NTUuNDksMjA5LjQzIEw2NTUuMjAsMjA5LjYzIEw2NTUu
MDEsMjA5LjMyIEw2NTUuMDMsMjA4LjkwIEw2NTQuNzAsMjA4LjA5IEw2NTQuMzksMjA3LjcxIEw2
NTQuMTMsMjA3LjUzIEw2NTMuODQsMjA3LjU2IEw2NTMuMzQsMjA4LjA4IEw2NTMuMDQsMjA4LjEx
IEw2NTIuNzEsMjA3LjYwIEw2NTIuNDAsMjA3LjQwIEw2NTEuOTYsMjA3LjI5IEw2NTEuNTcsMjA2
Ljg0IEw2NTEuMjMsMjA2LjY5IEw2NTAuODgsMjA3LjQ5IEw2NTAuNzQsMjA3LjY5IEw2NTAuMzYs
MjA3Ljc1IEw2NTAuMDEsMjA3LjY0IEw2NDkuNTcsMjA3Ljc3IEw2NDkuMjUsMjA4LjEyIEw2NDgu
ODgsMjA4LjE5IEw2NDguODMsMjA3LjY0IEw2NDguODYsMjA3LjMzIEw2NDguNTQsMjA2LjMwIEw2
NDguMjEsMjA2LjcwIEw2NDYuNzksMjA3LjEzIEw2NDYuNDcsMjA2LjczIEw2NDUuODMsMjA2Ljc0
IEw2NDUuNTUsMjA2LjkwIEw2NDUuMjQsMjA2LjkzIEw2NDUuMTksMjA2LjI4IEw2NDUuMTYsMjA1
LjYzIEw2NDQuOTAsMjA0LjIyIEw2NDQuODksMjAzLjc0IEw2NDQuNTMsMjAyLjk5IEw2NDQuMTMs
MjAyLjU4IEw2NDMuMzQsMjAyLjE2IEw2NDMuMTksMjAyLjAyIEw2NDMuNzUsMjAxLjY2IEw2NDMu
MjIsMjAxLjI4IEw2NDIuOTYsMjAwLjk5IEw2NDMuMTUsMjAwLjI1IEw2NDMuMDcsMjAwLjEyIEw2
NDIuNzksMTk5LjY1IEw2NDIuNDQsMTk5LjM1IEw2NDIuNTEsMTk4Ljg4IEw2NDIuMzgsMTk4LjI5
IEw2NDIuNTYsMTk3LjY0IEw2NDIuNzAsMTk3LjI5IEw2NDMuMTIsMTk2LjcxIEw2NDMuNDIsMTk1
LjkwIEw2NDMuNzQsMTk1LjkzIEw2NDMuOTUsMTk2LjA0IEw2NDQuMjMsMTk2LjgzIEw2NDQuNDks
MTk3LjEzIEw2NDUuNDksMTk4LjExIEw2NDUuNzksMTk4LjE5IEw2NDYuMjQsMTk4LjQ3IEw2NDcu
MTYsMTk4LjA2IEw2NDcuNDIsMTk4LjA2IEw2NDcuOTUsMTk4LjI4IEw2NDguNDksMTk4LjM5IEw2
NDguODksMTk4LjIyIEw2NDkuNDIsMTk3Ljg4IEw2NDkuODIsMTk3LjM1IEw2NTAuMzUsMTk2Ljkx
IEw2NTAuODMsMTk2Ljg0IEw2NTEuMjYsMTk2Ljk1IEw2NTEuODIsMTk3LjIwIEw2NTIuMzQsMTk3
LjQyIEw2NTIuOTAsMTk3LjU3IEw2NTMuMTksMTk3LjU0IEw2NTMuNjUsMTk3LjE5IEw2NTQuMTIs
MTk3LjAxIEw2NTQuOTgsMTk2Ljg0IEw2NTUuMzcsMTk2LjU0IEw2NTYuMzAsMTk0Ljc2IEw2NTYu
MjIsMTk0LjAxIEw2NTYuNDQsMTkzLjY3IEw2NTcuMDksMTkzLjQyIEw2NTcuMzEsMTkzLjA0IEw2
NTcuMjAsMTkyLjA1IEw2NTcuMzIsMTkxLjQ5IEw2NTcuNzAsMTkwLjg1IEw2NTcuOTUsMTkwLjY5
IEw2NTguNDEsMTkwLjY4IEw2NTkuMTYsMTkwLjc2IEw2NTkuODEsMTkwLjg0IEw2NjAuNDMsMTkw
LjgyIEw2NjAuODgsMTkwLjg2IEw2NjEuNjMsMTkxLjE1IEw2NjEuODIsMTkxLjI0IFogTTY2Ni41
NiwyMDAuMTIgTDY2Ni41NywyMDAuMDggTDY2Ny4wNSwxOTguODkgTDY2Ny40OSwxOTguNDggTDY2
Ny43OCwxOTguMzQgTDY2OC4yMSwxOTguNjcgTDY2OC40OSwxOTguMzYgTDY2OC42NiwxOTguMDQg
TDY2OC45NSwxOTcuNTYgTDY2OS40NSwxOTcuNTAgTDY3MC4wNSwxOTcuNjQgTDY3MC43OCwxOTgu
MTcgTDY3MS4yMywxOTguMjAgTDY3Mi4wOSwxOTguMTYgTDY3Mi41NywxOTguMzIgTDY3My4zMiwx
OTguNTkgTDY3My44OSwxOTguMzcgTDY3NS43NSwxOTguNDUgTDY3Ni40NywxOTguMzIgTDY3Ny4w
OSwxOTcuOTYgTDY3Ny4zMCwxOTcuNjggTDY3Ny4xNSwxOTcuNDEgTDY3Ny4zNCwxOTcuMTMgTDY3
Ny43MywxOTYuODkgTDY3OC4wMywxOTYuNDggTDY3OC4zMiwxOTYuNDIgTDY3OC4zOSwxOTYuNjYg
TDY3OC4zMiwxOTcuMjAgTDY3OC4yMCwxOTcuNTEgTDY3OC4xMiwxOTcuNjQgTDY3OC4wNCwxOTcu
NzYgTDY3Ny4wNywxOTkuMDIgTDY3Ni42NSwxOTkuNDIgTDY3Ni4xOSwxOTkuNTIgTDY3NC45Niwx
OTkuNzUgTDY3NC40NywxOTkuNjggTDY3My44NywxOTkuMjYgTDY3Mi43MiwxOTkuMTkgTDY3MS41
NywxOTkuMjUgTDY3MC43MCwxOTkuMjEgTDY2OS42NiwxOTkuMjUgTDY2OS4wOCwxOTkuMTcgTDY2
OC40MSwxOTkuMjAgTDY2OC4wMCwxOTkuMzAgTDY2Ny41NiwxOTkuNjcgTDY2Ny4zMCwyMDAuMTMg
TDY2Ny4xNSwyMDAuNDAgTDY2Ni45NiwyMDEuMTIgTDY2Ny4wMywyMDEuNjAgTDY2Ny4yOSwyMDIu
MTAgTDY2Ny40OSwyMDIuMjggTDY2Ny44OSwyMDIuNTEgTDY2OC4xNSwyMDIuNzAgTDY2OC4zNywy
MDMuMzEgTDY2OC41NSwyMDMuNDYgTDY2OC43OCwyMDMuNTAgTDY2OS41OSwyMDMuNTMgTDY2OS44
NCwyMDMuMjYgTDY3MC40OSwyMDIuMjkgTDY3MC44OCwyMDIuMzQgTDY3MS4xOCwyMDIuNTIgTDY3
MS42OCwyMDIuNTcgTDY3Mi4wNCwyMDIuMzQgTDY3Mi43MSwyMDIuMTggTDY3My4zMywyMDIuMDQg
TDY3My42MCwyMDEuNzQgTDY3My44NywyMDEuNjggTDY3NC4zNCwyMDEuODggTDY3NC40NywyMDIu
MDkgTDY3NC4zOSwyMDIuODMgTDY3My45MiwyMDIuNTYgTDY3My4zNywyMDIuNTIgTDY3My4wMSwy
MDIuODIgTDY3Mi42MiwyMDMuMzQgTDY3Mi4xOCwyMDMuNzYgTDY3MS4xMiwyMDQuMjAgTDY3MC45
MSwyMDQuNTMgTDY3MC43NywyMDQuNTYgTDY3MC41MywyMDQuNTEgTDY3MC4wNiwyMDQuMzkgTDY3
MC4wMywyMDQuNDQgTDY3MC4wNSwyMDQuNzYgTDY3MC4yNywyMDQuODggTDY3MC45NCwyMDUuNDYg
TDY3MS40MSwyMDUuOTggTDY3Mi4yNiwyMDcuMjIgTDY3Mi4xNywyMDcuNTUgTDY3Mi4wMSwyMDgu
MjMgTDY3Mi4xMSwyMDguNjMgTDY3Mi41NiwyMDkuMTcgTDY3My4xMSwyMDkuNjEgTDY3My4xOCwy
MDkuODMgTDY3My4xMywyMTAuMTIgTDY3Mi43MCwyMTAuMDYgTDY3Mi4wNCwyMTAuMTIgTDY3MS42
MywyMTAuNDEgTDY3MS40MSwyMTEuMTEgTDY3MC45MSwyMTEuMDggTDY3MC40NSwyMTAuOTAgTDY3
MC4zNCwyMTAuNzMgTDY3MC4zOSwyMTAuMDggTDY3MC42MCwyMDkuNTAgTDY2OS42MiwyMDguNjUg
TDY2OS4yMCwyMDguMzQgTDY2OS4wMywyMDguMDcgTDY2OS4wNiwyMDcuODQgTDY2OS4zNSwyMDcu
NDQgTDY2OS40NiwyMDYuODYgTDY2OS4zMCwyMDYuMzcgTDY2OC41NiwyMDYuMzEgTDY2OC4wNiwy
MDYuNTIgTDY2Ny41NywyMDYuOTIgTDY2Ny43MiwyMDcuMjcgTDY2Ny44NywyMDguMjEgTDY2Ny44
MCwyMDguNzEgTDY2Ny41NiwyMDkuODYgTDY2Ny45MywyMTAuNzYgTDY2Ny45MiwyMTEuMDcgTDY2
Ny41NCwyMTEuNzEgTDY2Ny41MiwyMTEuOTQgTDY2Ny44MCwyMTIuNTAgTDY2Ny4wNywyMTIuNjcg
TDY2Ni41NiwyMTIuOTEgTDY2Ni4wOCwyMTIuOTggTDY2NS44NCwyMTIuNjYgTDY2NS42OCwyMTIu
MTQgTDY2NS44MywyMTEuODEgTDY2Ni4wMSwyMTEuMzUgTDY2Ni4wOCwyMTAuNDcgTDY2Ni4xNCwy
MDkuNDAgTDY2Ni4wMiwyMDguODkgTDY2Ni4wNSwyMDguNTUgTDY2NS44MywyMDguMTUgTDY2NS41
MiwyMDguMDMgTDY2NS4xMywyMDguMjAgTDY2NC41NiwyMDguMjMgTDY2NC41NywyMDcuODIgTDY2
NC4zMiwyMDYuNTMgTDY2NC40NSwyMDYuMjIgTDY2NC45NCwyMDUuNzAgTDY2NS40MSwyMDQuOTIg
TDY2NS41NywyMDQuNDQgTDY2NS40OCwyMDMuNTIgTDY2NS40NywyMDMuMjcgTDY2NS41NiwyMDIu
ODIgTDY2NS45MCwyMDIuMTAgTDY2Ni4zNSwyMDIuMDQgTDY2Ni4zMCwyMDEuMTggTDY2Ni41Niwy
MDAuMTIgWiJdCiAgICAgICBSZW5kZXJQYXRoIHtwYXRofSBhdCAoMjM5LjI5LDExNC4yNSkgc2l6
ZSAxMzMuNDZ4NTMuMTEgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jODA4MDgwXSBbc3Ry
b2tlIHdpZHRoPTAuMjBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0MwQzBDMF19XSBb
ZGF0YT0iTTM0MS4wNSw0MS4wNyBMMzQzLjEzLDQxLjM0IEwzNDMuNDgsNDEuNzAgTDM0Mi42MSw0
MS44OCBMMzQyLjA3LDQyLjAxIEwzNDAuMzksNDIuMTIgTDMzOS4yMyw0Mi4xNiBMMzM4LjU0LDQy
LjMxIEwzMzguMTcsNDIuNTQgTDMzNy44Niw0My4xNCBMMzM3LjUwLDQzLjUxIEwzMzguNTUsNDMu
OTAgTDMzOS41Miw0NC4wNyBMMzQxLjY0LDQ0LjE0IEwzNDIuMjQsNDQuMTMgTDM0NC4wMiw0My44
OSBMMzQ1Ljk1LDQzLjg1IEwzNDYuODEsNDMuOTkgTDM0Ny43NCw0NC4yMSBMMzQ4LjE2LDQ0LjM0
IEwzNDguNDUsNDQuMzMgTDM0OS40NSw0NC4zMiBMMzUwLjcyLDQ0LjM2IEwzNTEuMzQsNDQuNDEg
TDM1MC4wNiw0NS4wMyBMMzQ4LjQ4LDQ1LjQ5IEwzNDYuNTAsNDYuMDEgTDM0NS45NSw0Ni4wMCBM
MzQ1LjI1LDQ1Ljg4IEwzNDQuMzAsNDYuNTUgTDM0My4yNCw0Ny4wNSBMMzQxLjk5LDQ3LjUxIEwz
NDAuODcsNDcuODAgTDM0MC42Niw0Ny44NiBMMzM4LjQ1LDQ3LjkxIEwzMzcuOTIsNDguMDUgTDMz
Ny40Miw0OC4wNSBMMzM2LjQ0LDQ4LjI1IEwzMzUuNzcsNDguNDIgTDMzNS4yNCw0OC40NyBMMzM0
LjMwLDQ4LjA1IEwzMzMuOTIsNDguMTAgTDMzMy4yMyw0OS4wMiBMMzMyLjI3LDQ5LjEzIEwzMzEu
NjQsNDkuMDcgTDMzMC45MCw0OC44NyBMMzMwLjI4LDQ4LjQxIEwzMjkuNDIsNDcuOTggTDMyOC43
OCw0Ny43NiBMMzI4LjY3LDQ3Ljc2IEwzMjguNjgsNDcuOTYgTDMyOS4zOCw0OS4wMSBMMzI5LjE5
LDQ5LjI2IEwzMjguODcsNDkuMjcgTDMyOC4xOCw0OS41MiBMMzI3LjM0LDQ5Ljc3IEwzMjYuNzcs
NTAuMTUgTDMyNS43Nyw1MS4wNiBMMzI1LjExLDUxLjcxIEwzMjQuMDYsNTIuNTYgTDMyMy4yOSw1
Mi44MyBMMzIyLjI1LDUyLjkxIEwzMjEuMjMsNTIuNjMgTDMyMS4wOCw1My4xOSBMMzIwLjY0LDUz
Ljc2IEwzMTkuODYsNTQuMDMgTDMxOC44Nyw1My45NCBMMzE4LjI1LDUzLjk5IEwzMTcuMDcsNTQu
NDMgTDMxOC4wMSw1Mi43MSBMMzE3Ljg5LDUyLjcyIEwzMTcuMTAsNTIuNzEgTDMxNi4wNCw1Mi41
MyBMMzE2LjMwLDUyLjk1IEwzMTYuMjgsNTMuNDEgTDMxNS44OSw1My44MiBMMzE1LjEwLDU0LjIx
IEwzMTMuOTQsNTQuMzcgTDMxMi45Niw1NC4zNyBMMzExLjcxLDU0LjQ2IEwzMTIuMTcsNTQuODYg
TDMxMi4zOSw1NS4yNiBMMzEyLjMwLDU1LjY1IEwzMTEuOTIsNTUuNzQgTDMxMS42MCw1NS42OCBM
MzExLjEzLDU1LjcyIEwzMDkuMzMsNTUuNTYgTDMwOS44NSw1NS44OCBMMzEwLjYyLDU2LjM0IEwz
MTAuOTEsNTYuNjkgTDMxMC45MCw1Ni45MiBMMzEwLjY0LDU3LjA5IEwzMDkuNDUsNTcuMTIgTDMw
OC4zOSw1Ny4yNSBMMzA5LjI0LDU3LjY3IEwzMDkuNzEsNTcuNzkgTDMxMC4xNiw1OC4wMSBMMzEw
LjU1LDU4LjM1IEwzMDkuOTksNTguODEgTDMwOS43MSw1OC45MiBMMzA5LjExLDU4LjgzIEwzMDgu
NjMsNTguOTIgTDMwOC45Nyw1OS40MCBMMzA4Ljk2LDU5LjUyIEwzMDguNTAsNjAuMDAgTDMwOC4w
Miw1OS44OCBMMzA3LjQzLDU5LjgxIEwzMDcuNDYsNTkuOTcgTDMwNy43MSw2MC40MyBMMzA3LjYx
LDYwLjc4IEwzMDcuMzIsNjAuNzggTDMwNi42Nyw2MC42OCBMMzA2LjU4LDYwLjY3IEwzMDUuNjAs
NjAuNzggTDMwNC41Miw2MC44MCBMMzA1LjIwLDYxLjI4IEwzMDYuMzEsNjEuNjcgTDMwNi42NCw2
MS44OCBMMzA2LjU2LDYyLjkxIEwzMDYuMTgsNjMuODUgTDMwNS43NSw2My45NCBMMzA0Ljk0LDYz
Ljg4IEwzMDUuNDMsNjQuNDcgTDMwNS40MSw2NC45NyBMMzA1LjU3LDY1LjIxIEwzMDUuNTAsNjUu
NTggTDMwNS4xOCw2NS42NCBMMzA0LjY5LDY1LjYxIEwzMDMuOTIsNjUuNjkgTDMwNC42OCw2Ni4w
OCBMMzA1LjExLDY2LjY4IEwzMDQuOTksNjcuMTMgTDMwNC43MCw2Ny4xNiBMMzAzLjc0LDY2Ljkw
IEwzMDIuNjgsNjYuMzkgTDMwMi4xOSw2Ni42OCBMMzAxLjc2LDY3LjI5IEwzMDEuMTMsNjYuNjkg
TDMwMS4yOCw2Ni4xMSBMMzAwLjkwLDY1LjkxIEwyOTkuNzcsNjUuNzMgTDI5OS4yMCw2NS40MiBM
Mjk5LjI0LDY1LjIzIEwyOTkuNDksNjQuOTggTDI5OS41NSw2NC43NiBMMjk5LjIzLDY0LjQ5IEwy
OTguODYsNjQuMzAgTDI5OC4yMCw2NC42NiBMMjk3LjkyLDY0LjY3IEwyOTcuNjIsNjQuODIgTDI5
Ny4xOCw2NC43NyBMMjk2LjIwLDY0LjgzIEwyOTUuNzgsNjQuODUgTDI5NS4yMSw2NS4xNSBMMjk0
LjczLDY1LjQzIEwyOTQuMzEsNjUuMDIgTDI5NC4yMCw2NC42NyBMMjkzLjk4LDY0LjQ1IEwyOTMu
NDcsNjQuMjIgTDI5Mi42NSw2My45OCBMMjkxLjg4LDYzLjYwIEwyOTEuMzYsNjIuODEgTDI5MS40
Myw2Mi4wOCBMMjkxLjIzLDYxLjkyIEwyOTAuODAsNjEuODMgTDI5MC4zMyw2MS44OCBMMjg5LjM2
LDYxLjYxIEwyODkuMjUsNjEuNTEgTDI4OS4xMSw2MS4yOCBMMjg5LjI2LDYwLjgyIEwyODkuNzEs
NjAuNDMgTDI4OS43OSw2MC4xNiBMMjg5LjUzLDYwLjEwIEwyODguOTgsNjAuMDYgTDI4OC40Myw1
OS45NyBMMjg4LjE2LDU5Ljc1IEwyODguMTAsNTkuMTIgTDI4Ny42NCw1OC45OSBMMjg3LjAyLDU5
LjA0IEwyODYuNDMsNTguNDcgTDI4Ni40Niw1OC4yOCBMMjg2LjY2LDU4LjAzIEwyODcuMjcsNTcu
NjYgTDI4OC40OSw1Ny4zMiBMMjg4LjkwLDU3LjAyIEwyODkuMzgsNTYuODkgTDI4OS40Myw1Ni41
MSBMMjg5LjE1LDU2LjIyIEwyODguNjgsNTYuMzIgTDI4Ny43Niw1Ni40MCBMMjg3LjI2LDU2LjQ5
IEwyODYuNjMsNTYuOTEgTDI4Ni4wOSw1Ny4wNCBMMjg1LjQ2LDU3LjM0IEwyODUuMTIsNTcuMDMg
TDI4NS4xNiw1Ni40MCBMMjg1LjA0LDU1LjYyIEwyODQuODQsNTUuMTcgTDI4NC44NSw1NC44MSBM
Mjg0LjYxLDU0LjQ5IEwyODQuMTEsNTQuNTcgTDI4My44Myw1NC41NCBMMjgzLjE3LDU0LjE5IEwy
ODIuNTgsNTMuNzAgTDI4Mi41Niw1My4zNCBMMjgzLjQwLDUyLjgxIEwyODMuNjcsNTIuODIgTDI4
My4xMSw1Mi42MyBMMjgyLjAzLDUyLjcwIEwyODEuOTMsNTIuNDIgTDI4Mi4zMSw1Mi4yNCBMMjgy
Ljk5LDUyLjIxIEwyODMuNTcsNTIuMTYgTDI4NC4wMyw1Mi4wNyBMMjg0LjM1LDUxLjQwIEwyODMu
MTQsNTEuMzUgTDI4Mi41Nyw1MS40MCBMMjgyLjIxLDUxLjM3IEwyODEuOTIsNTEuMjEgTDI4MS44
MCw1MS4wMSBMMjgyLjAzLDUwLjczIEwyODIuMjQsNTAuNzIgTDI4Mi40Miw1MC41NiBMMjgyLjg1
LDUwLjUxIEwyODIuNDgsNTAuMzIgTDI4MS45Miw1MC4zOSBMMjgxLjcwLDUwLjE0IEwyODEuNzYs
NDkuOTYgTDI4MS44Myw0OS44MiBMMjgyLjA5LDQ5LjgyIEwyODIuNDAsNDkuNzIgTDI4My4yMyw0
OS40NyBMMjg0LjQ1LDQ5LjU2IEwyODUuMzAsNDkuNzIgTDI4Ni4wOCw0OS43NSBMMjg2LjQ1LDQ5
Ljg4IEwyODcuMzgsNTAuMDMgTDI4OC40MSw1MC4xMiBMMjg4LjM4LDQ5Ljc2IEwyODguNjgsNDku
MjIgTDI4OC4zOCw0OS4wMyBMMjg3LjM2LDQ4Ljc3IEwyODYuMDAsNDguNDYgTDI4NS4xMCw0OC4y
OSBMMjgzLjUxLDQ3Ljk3IEwyODMuMTUsNDcuODUgTDI4My40OSw0Ny41MCBMMjg0LjI4LDQ3LjUw
IEwyODUuNzQsNDcuODYgTDI4Ni43Nyw0Ny45MSBMMjg3LjI0LDQ3Ljg0IEwyODcuMzUsNDcuNzgg
TDI4Ny40NCw0Ny4xNyBMMjg3LjUzLDQ2Ljg3IEwyODguMTIsNDYuODQgTDI4OC42NSw0Ni45NiBM
Mjg4Ljg4LDQ2Ljg1IEwyODguODUsNDYuNTAgTDI4OC42NSw0Ni4zMiBMMjg3Ljc2LDQ2LjAwIEwy
ODcuOTMsNDUuNTcgTDI4OC40NSw0NS4xMSBMMjg4LjIwLDQ0LjgzIEwyODYuOTksNDQuNjYgTDI4
NS44Myw0NC42NiBMMjg0LjY1LDQ0LjM3IEwyODMuMDEsNDMuODggTDI4Mi4yMyw0My43OCBMMjgx
LjMyLDQzLjczIEwyODAuNTYsNDMuMzkgTDI3OS43NSw0Mi45MiBMMjc5LjkxLDQyLjg4IEwyODAu
MjMsNDIuNzMgTDI4MC44Myw0Mi43MiBMMjgxLjQxLDQyLjcxIEwyODMuNDksNDMuMDEgTDI4NC4y
MSw0My4wNCBMMjg1LjQ2LDQzLjM1IEwyODYuOTEsNDMuODEgTDI4Ny42NCw0My45OCBMMjg3LjY5
LDQzLjY3IEwyODcuMzgsNDMuMjQgTDI4Ni41Miw0Mi43MCBMMjg2LjM1LDQyLjI1IEwyODUuNzUs
NDEuODEgTDI4NS4yNiw0MS43NiBMMjg0LjU4LDQxLjUxIEwyODQuOTUsNDEuMjQgTDI4NS40OSw0
MS4xMCBMMjg1LjY0LDQxLjAwIEwyODQuOTQsNDAuNzYgTDI4My44NCw0MC43NCBMMjgzLjIxLDQw
LjY2IEwyODIuMDgsNDAuMzMgTDI4MS4yMCw0MC45NCBMMjgwLjg4LDQxLjEwIEwyODAuNjAsNDEu
MzkgTDI3OS43Myw0MS42MyBMMjc4LjMzLDQxLjU3IEwyNzcuMzAsNDEuMjIgTDI3Ni45OSw0MC45
OCBMMjc2Ljk2LDQwLjY5IEwyNzcuNDAsNDAuMzcgTDI3Ny42OSwzOS43MyBMMjc3LjU0LDM4LjQ3
IEwyNzguMTIsMzguNDIgTDI3OC44MiwzOC42MSBMMjc5LjE5LDM4LjQ4IEwyNzkuMzQsMzguMTUg
TDI3OC45NSwzNy43OCBMMjc4LjAyLDM3LjI0IEwyNzcuNTcsMzcuMTAgTDI3Ni42MiwzNi4zMCBM
Mjc1LjczLDM1LjM3IEwyNzQuNjIsMzQuMDggTDI3NC4wNSwzMy42MCBMMjcyLjE5LDMzLjIyIEwy
NzEuNTIsMzIuOTcgTDI3MS4yMywzMi43NiBMMjcxLjE4LDMyLjA2IEwyNzAuMjgsMzEuNjYgTDI2
OS4zMiwzMS41NSBMMjY3LjczLDMxLjM4IEwyNjUuODAsMzAuOTYgTDI2My44OSwzMC42MiBMMjYx
Ljc2LDMwLjQ0IEwyNjAuNzcsMzAuMzkgTDI1OS4xMywzMC4zNSBMMjU4LjM1LDMwLjU0IEwyNTcu
MzAsMzAuNjQgTDI1Ni41MCwzMC44MyBMMjU1LjA4LDMwLjk4IEwyNTMuODUsMzAuODEgTDI1Mi4z
OSwzMC41MiBMMjUyLjcxLDMxLjI2IEwyNTIuNjYsMzEuMzYgTDI1MS42MSwzMS4zNCBMMjUwLjMy
LDMxLjE2IEwyNDcuMTUsMzAuNTQgTDI0OC42OCwyOS45OCBMMjQ5LjE1LDI5Ljg2IEwyNDkuMDYs
MjkuNjQgTDI0OC42MywyOS40NyBMMjQ3LjU3LDI5LjQ1IEwyNDUuMzYsMjkuNDQgTDI0NC41NCwy
OS4zNiBMMjQzLjkxLDI5LjM0IEwyNDIuNjgsMjguOTEgTDI0MS44MSwyOC43MCBMMjQyLjM5LDI4
LjQwIEwyNDMuNjUsMjguMzYgTDI0Ni42OSwyOC41MCBMMjQ4LjcxLDI4LjU0IEwyNTAuMDUsMjgu
NTUgTDI1Mi4xNywyOC40MCBMMjUzLjIzLDI4LjE4IEwyNTMuNTIsMjguMDkgTDI1My41NywyNy43
NCBMMjUyLjk1LDI3LjQ2IEwyNTIuMTMsMjcuMjUgTDI1MC45MSwyNy40MCBMMjQ5LjgwLDI3LjY2
IEwyNDguNDksMjcuNjggTDI0Ny4zNSwyNy41NiBMMjQ2LjYwLDI3LjY0IEwyNDUuNzIsMjcuNzQg
TDI0NS4wNCwyNy42OCBMMjQ0LjE4LDI3LjQ5IEwyNDMuNTIsMjcuMTMgTDI0Mi43MCwyNi45NCBM
MjQyLjA0LDI2Ljg4IEwyNDEuMzEsMjYuOTQgTDI0MC44MywyNi44NiBMMjM5LjQxLDI2LjM4IEwy
MzkuMzcsMjYuMDMgTDIzOS43MywyNS41OCBMMjQwLjU0LDI1LjQ2IEwyNDEuNzcsMjUuMzYgTDI0
My4yOSwyNS4yMiBMMjQ1LjM2LDI1LjA2IEwyNDYuNjUsMjQuOTggTDI0Ny42MCwyNC41OCBMMjQ4
LjY5LDI0LjMzIEwyNDkuNTQsMjQuMjUgTDI1Mi4wMSwyNC4yNCBMMjUzLjEyLDI0LjE0IEwyNTUu
MDYsMjQuMTcgTDI1NS40NiwyNC4wNCBMMjU1Ljc3LDIzLjg0IEwyNTYuMzgsMjMuNjggTDI1Ni41
OCwyMy4wMiBMMjU2Ljg2LDIyLjUyIEwyNTYuOTcsMjIuNDIgTDI1Ni4wOCwyMi4xOSBMMjU0LjE0
LDIyLjE1IEwyNTIuOTgsMjIuMzQgTDI1Mi4wMiwyMi4yMiBMMjUwLjc4LDIxLjg0IEwyNTEuMzcs
MjEuMDYgTDI1Mi43NSwyMC43MiBMMjU1LjYwLDIwLjM2IEwyNTcuMDEsMjAuMTQgTDI1OC45Nywx
OS44OSBMMjYxLjA4LDE5LjczIEwyNjIuMjQsMTkuODIgTDI2My40NiwxOS43NSBMMjY0Ljc3LDE5
LjY3IEwyNjUuMTIsMTkuNDkgTDI2NS4xMywxOS4yNyBMMjY0Ljc3LDE4LjUxIEwyNjQuNzUsMTgu
MzEgTDI2NS4yNywxOC4xNyBMMjY3LjE2LDE4LjEyIEwyNjguNjksMTguMzIgTDI3MC44MywxOC43
MyBMMjcyLjEyLDE4Ljk2IEwyNzIuOTIsMTkuMTQgTDI3My43NSwxOC44NiBMMjcyLjA5LDE4LjM0
IEwyNzEuMzksMTcuODMgTDI3MS41NiwxNy43OCBMMjczLjc2LDE3LjY2IEwyNzQuOTMsMTcuNTQg
TDI3Ni43OCwxNy4zMyBMMjc5LjMwLDE3LjEzIEwyODAuMDMsMTcuMjAgTDI4MS4xMCwxNy4zMiBM
MjgxLjMzLDE5LjA1IEwyODIuMjQsMTguODkgTDI4Mi43OCwxOC41NyBMMjgzLjIxLDE3LjU3IEwy
ODQuMjEsMTcuNTkgTDI4Ni4yMiwxNy45MSBMMjg4LjA4LDE4LjMzIEwyODkuNjEsMTguNTggTDI4
OS44MSwxOC4yOCBMMjg5LjE3LDE3Ljk4IEwyODguMzUsMTcuNDQgTDI4Ny40NiwxNy4wNCBMMjg3
Ljc1LDE2Ljc1IEwyODguNDksMTYuNzcgTDI5MC4yNSwxNi44MCBMMjkxLjM5LDE3LjAxIEwyOTQu
MTQsMTcuMzggTDI5NS40MiwxNy42NiBMMjk3LjUzLDE3Ljk4IEwyOTkuNDEsMTguMjUgTDMwMS4y
OCwxOC40NiBMMzAyLjA4LDE4LjI1IEwzMDIuOTAsMTYuNzcgTDMwMi41NywxNi41OCBMMzAxLjI4
LDE2LjI0IEwzMDAuMTEsMTUuNzEgTDMwMC44MSwxNS40NiBMMzAzLjIyLDE1LjQ2IEwzMDYuMTgs
MTUuMTMgTDMwNy41MSwxNS4wNSBMMzA5LjA0LDE1LjIyIEwzMTEuMjYsMTUuNzEgTDMxMi44Miwx
NS44OCBMMzE0LjgzLDE2LjAyIEwzMTUuMTMsMTUuMjYgTDMxNC44MywxNC43OSBMMzE3LjQ4LDE0
LjU4IEwzMTkuNTAsMTQuNTAgTDMyMi4wOCwxNC42MCBMMzI0LjA3LDE0Ljc0IEwzMjUuOTYsMTQu
NTYgTDMyOC4zMywxNC4zNSBMMzMwLjM3LDE0LjM1IEwzMzIuMjMsMTQuNTcgTDMzNC4wNSwxNC41
MiBMMzM1LjM3LDE0LjU5IEwzMzUuOTksMTQuNjkgTDMzNi41NCwxNC41OSBMMzM4LjQ4LDE0Ljcz
IEwzNDAuMTksMTQuNzggTDM0MS44NiwxNC44NyBMMzQ0LjMwLDE1LjY0IEwzNDUuNjcsMTUuODgg
TDM0Ny4wMiwxNS44MCBMMzQ4LjEzLDE1Ljk3IEwzNTAuNzMsMTYuMjAgTDM1MS4xNywxNi42MSBM
MzUwLjg3LDE2LjczIEwzNTAuMzgsMTYuOTIgTDM0OC42OSwxNy4wNyBMMzQ2LjM5LDE3LjE5IEwz
NDUuMjQsMTcuMzIgTDM0NC4wMSwxNy4zNyBMMzQyLjU0LDE3LjMwIEwzMzkuNzAsMTcuMjMgTDMz
Ny40OCwxNy4xNyBMMzM2LjEwLDE3LjM0IEwzMzQuNDgsMTcuMzYgTDMzMi41NSwxNy4zOSBMMzMx
LjM5LDE3LjQyIEwzMjkuOTAsMTcuNTggTDMyOS40NiwxNy43MCBMMzI4LjE0LDE3LjkyIEwzMjcu
ODAsMTguMzggTDMyOC41NSwxOC42MyBMMzMxLjEwLDE4LjM1IEwzMzIuNDYsMTguMjggTDMzNi4z
OCwxOC4zMiBMMzM4LjYwLDE4LjE5IEwzNDAuOTMsMTguMTkgTDM0MS45MywxOC4xNyBMMzQyLjg2
LDE4LjIzIEwzNDQuNjMsMTguNjcgTDM0NS4zMCwxOC43NiBMMzQ2LjM5LDE4LjU3IEwzNDguMDUs
MTguMzYgTDM0OS41OCwxOC4wOCBMMzUxLjU1LDE3LjkzIEwzNTIuMTQsMTguNDAgTDM1MS41Nywx
OC44OCBMMzQ5LjI2LDE5LjUyIEwzNDguMjgsMTkuODYgTDM0Ny4wMCwyMC41OSBMMzQ3LjEyLDIw
LjkwIEwzNDcuNDQsMjEuMDUgTDM0OC4yNCwyMC45NiBMMzQ4LjcxLDIwLjkyIEwzNTAuMzMsMjAu
MzYgTDM1Mi4xMCwxOS44MyBMMzUzLjUxLDE5LjQ0IEwzNTUuMjEsMTkuMTIgTDM1NS45OSwxOC45
MSBMMzU3LjY1LDE4Ljc1IEwzNTkuMjcsMTguODYgTDM2MC42NiwxOC45MyBMMzYyLjE2LDE4LjYz
IEwzNjIuODYsMTguMzAgTDM2My45OSwxOC4wNyBMMzY2LjE0LDE4LjA3IEwzNjcuODEsMTguMTgg
TDM2OC45MSwxOC4yMiBMMzcwLjEwLDE4LjM2IEwzNzEuMjQsMTguNTggTDM3Mi4zNSwxOC43MCBM
MzcyLjY2LDE4Ljk1IEwzNzIuNDgsMTkuMjIgTDM3MC41MSwxOS40NyBMMzY5LjAyLDE5LjYxIEwz
NjcuNzcsMjAuMTAgTDM2Ny4yMiwyMC4zOSBMMzY1LjYxLDIwLjc1IEwzNjQuMDQsMjEuMzAgTDM2
Mi45OCwyMS4zOSBMMzYyLjA2LDIxLjM0IEwzNjAuNDcsMjEuMzkgTDM1OC4yNiwyMS4zNSBMMzU2
Ljc3LDIxLjU1IEwzNTYuMDQsMjEuNzcgTDM1NS41NCwyMi4zMCBMMzU1LjcxLDIyLjYyIEwzNTcu
NjYsMjIuMzIgTDM1OS4yNCwyMi4yNyBMMzYxLjA5LDIyLjM3IEwzNjEuMTAsMjIuNzkgTDM2MC4z
NSwyMy4wMyBMMzU3Ljk2LDIzLjE2IEwzNTcuNTAsMjMuMzAgTDM1Ny4yOSwyMy41MCBMMzU3LjEz
LDI0LjA5IEwzNTYuNjYsMjQuODAgTDM1NS45OCwyNC45NiBMMzU0LjkyLDI0Ljg4IEwzNTQuMTgs
MjQuOTIgTDM1My4zNSwyNS44MiBMMzUyLjM2LDI2LjkxIEwzNTIuMjEsMjcuMjYgTDM1Mi42Niwy
Ny41NyBMMzUzLjA3LDI3LjY2IEwzNTMuNjcsMjcuMTggTDM1NC40MSwyNi44MSBMMzU1LjI3LDI2
Ljc3IEwzNTcuNjEsMjcuMDQgTDM1Ny45NiwyNy4xMyBMMzU4LjIzLDI3LjQyIEwzNTguMTcsMjcu
NjMgTDM1Ni45MywyNy41NiBMMzU2LjI2LDI3LjU0IEwzNTUuNzUsMjcuNjQgTDM1NS42MSwyNy44
MyBMMzU1LjkwLDI4LjExIEwzNTcuNjYsMjguMzAgTDM1OC4yMSwyOC40MyBMMzYwLjAyLDI4LjMw
IEwzNjAuNTQsMjguNTAgTDM2MC43NiwyOC44MyBMMzYwLjcxLDI5LjI2IEwzNjAuNDUsMjkuNDAg
TDM1OC42MiwyOS4yMSBMMzU2Ljk2LDI5LjE2IEwzNTYuMTgsMjkuMDggTDM1NC44OSwyOS4xNiBM
MzUzLjUxLDI5LjY0IEwzNTIuNjgsMjkuNTAgTDM1Mi4xOSwyOS4zNSBMMzUxLjEzLDI5LjQwIEwz
NTAuODUsMjkuNzcgTDM1Mi4yNCwzMC4zNyBMMzUzLjQzLDMwLjU5IEwzNTQuNzMsMzAuNzIgTDM1
Ni4zOSwzMC43OSBMMzU3LjA5LDMwLjk0IEwzNTcuNjQsMzEuNDIgTDM1Ny45MSwzMS44NyBMMzU3
LjkzLDMyLjQyIEwzNTcuNDksMzIuODMgTDM1Ny4xMSwzMi45MCBMMzU1LjgyLDMyLjcyIEwzNTUu
MDAsMzIuNjEgTDM1NC42MiwzMi43MiBMMzU0LjY1LDMzLjI3IEwzNTQuNzcsMzMuNTEgTDM1NS4x
OSwzMy42NyBMMzU1LjgxLDMzLjc2IEwzNTYuNTMsMzMuOTcgTDM1Ny40NSwzNC4xMiBMMzU4LjIw
LDM0LjI4IEwzNTguNTgsMzQuNjUgTDM1OC4yNCwzNC44OCBMMzU3LjQxLDM1LjAzIEwzNTYuNzYs
MzUuMTUgTDM1NS4wMiwzNS4xMiBMMzUzLjg0LDM1LjA0IEwzNTIuMjIsMzQuOTUgTDM1MS42Miwz
NS40MCBMMzUyLjE4LDM1LjU5IEwzNTMuNTcsMzUuNjQgTDM1NC42MiwzNS44MCBMMzU1LjM1LDM2
LjA1IEwzNTUuNDQsMzYuMzcgTDM1NS40MCwzNi45MiBMMzU1LjI3LDM2LjkxIEwzNTQuMTgsMzYu
ODcgTDM1Mi45MywzNi45OCBMMzUyLjM0LDM3LjI0IEwzNTEuMDksMzcuMjYgTDM0OS44NiwzNy4x
MiBMMzQ4LjM3LDM2LjcyIEwzNDcuNDUsMzYuMjQgTDM0Ny4wNywzNi4xNyBMMzQ1Ljk4LDM2LjQ2
IEwzNDUuMDAsMzYuODEgTDM0My45MiwzNi45MCBMMzQzLjMzLDM3LjA4IEwzNDEuODgsMzcuMDUg
TDM0MC45NiwzNi45NiBMMzM5Ljk5LDM3LjEwIEwzMzkuNjAsMzcuMjMgTDMzOS40MiwzNy41MSBM
MzM5LjQzLDM3LjY1IEwzMzkuNzksMzguMTggTDM0MC40OSwzOC40MiBMMzQxLjc4LDM4LjQ3IEwz
NDMuMjksMzguNzMgTDM0NC44NiwzOC42OCBMMzQ2LjE4LDM5LjIyIEwzNDYuOTQsMzkuNDQgTDM0
Ny40MiwzOS42NyBMMzQ4LjYyLDQwLjAwIEwzNDkuODcsNDAuMzggTDM1MC4yNSw0MC42NSBMMzUw
LjczLDQxLjU1IEwzNTEuNjIsNDEuMzQgTDM1MS45MCw0MS4yMSBMMzUyLjMwLDQxLjQxIEwzNTIu
NjAsNDEuODQgTDM1Mi42Nyw0Mi4xOSBMMzUyLjg2LDQzLjM1IEwzNTIuNzAsNDMuNTYgTDM1Mi4z
Myw0My42NyBMMzUxLjc4LDQzLjU3IEwzNTEuMjQsNDMuNDYgTDM1MC4zMiw0My40NiBMMzQ5LjI4
LDQzLjQ5IEwzNDcuNzksNDMuMjIgTDM0Ny4xNSw0Mi44MSBMMzQ2Ljc0LDQyLjE4IEwzNDYuMzks
NDEuOTEgTDM0NS4yMiw0MS4zNCBMMzQ0LjM4LDQxLjA1IEwzNDMuNjMsNDAuOTEgTDM0Mi41Myw0
MC44MyBMMzQyLjAxLDQwLjk3IEwzNDEuMDUsNDEuMDcgWiBNMzUxLjM2LDQwLjAzIEwzNDkuODQs
MzkuNDkgTDM0OC44OCwzOS4yNiBMMzQ4LjE3LDM5LjExIEwzNDguMDEsMzkuMDQgTDM0Ny42OSwz
OC42MiBMMzQ5LjE4LDM4LjU4IEwzNTAuMDcsMzguNzIgTDM1MS4xMywzOC45OCBMMzUxLjk1LDM5
LjI4IEwzNTIuMTEsMzkuNzYgTDM1MS45MCwzOS45NyBMMzUxLjM3LDQwLjAzIFogTTI4MS41Nyw0
Ni4xMyBMMjgxLjAxLDQ2LjAwIEwyODAuMzAsNDUuNjggTDI3OS41MCw0NS41MCBMMjc5LjMwLDQ1
LjQwIEwyNzkuMDUsNDUuMTggTDI3OC45Nyw0NC4zNCBMMjc5LjI2LDQ0LjAwIEwyNzkuNjMsNDMu
OTggTDI4MC4yNyw0NC4xMiBMMjgxLjQzLDQ0LjE4IEwyODIuNzIsNDQuNDUgTDI4My40Niw0NC43
MiBMMjg0LjA2LDQ0LjgyIEwyODQuODQsNDUuMDQgTDI4NS40NCw0NS4zNyBMMjg1LjMwLDQ1LjU3
IEwyODUuMTgsNDUuNjEgTDI4NC42NCw0NS42NiBMMjgzLjg3LDQ1LjY5IEwyODMuMTAsNDUuODgg
TDI4Mi4wOSw0Ni4wMyBMMjgxLjU4LDQ2LjEzIFoiXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy90ZXh0L3RleHQtYWxpZ24tMDEtYi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDE0ICsxOSwxNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5k
ZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMCwwKSBzaXplIDIxN3gzMyBjb250YWlucyAxIGNodW5rKHMp
CiAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTI3KSBzaXpl
IDIxN3gzMwogICAgICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDAuMDAsMC4wMCkg
c3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTcgd2lkdGggMjE3LjAwOiAidGV4dC1hbmNob3I6c3Rh
cnQiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE3NS4wMCwzMzguMzMpIHNp
emUgNDE2LjY3eDU1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIz
MC4wMCwyMzAuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTc1LDMz
OC4zMykgc2l6ZSA0MTYuNjd4NTUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMjMwLjAwLDIzMC4wMCl9XQogICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgz
NDEuNjcsMzgyLjUwKSBzaXplIDgzLjMzeDEuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9
Ik0tMjUuMDAsMC4wMCBMMjUuMDAsMC4wMCJdCiAgICAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xl
fSBhdCAoMzc4LjMzLDM3OC4zMykgc2l6ZSAxMHgxMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMDAwXX1dIFtkYXRhPSJNMy4wMCwwLjAwIEwyLjk5LDAuMTkgTDIuOTgsMC4zOCBMMi45
NSwwLjU2IEwyLjkxLDAuNzUgTDIuODUsMC45MyBMMi43OSwxLjEwIEwyLjcxLDEuMjggTDIuNjMs
MS40NSBMMi41MywxLjYxIEwyLjQzLDEuNzYgTDIuMzEsMS45MSBMMi4xOSwyLjA1IEwyLjA1LDIu
MTkgTDEuOTEsMi4zMSBMMS43NiwyLjQzIEwxLjYxLDIuNTMgTDEuNDUsMi42MyBMMS4yOCwyLjcx
IEwxLjEwLDIuNzkgTDAuOTMsMi44NSBMMC43NSwyLjkxIEwwLjU2LDIuOTUgTDAuMzgsMi45OCBM
MC4xOSwyLjk5IEwtMC4wMCwzLjAwIEwtMC4xOSwyLjk5IEwtMC4zOCwyLjk4IEwtMC41NiwyLjk1
IEwtMC43NSwyLjkxIEwtMC45MywyLjg1IEwtMS4xMCwyLjc5IEwtMS4yOCwyLjcxIEwtMS40NSwy
LjYzIEwtMS42MSwyLjUzIEwtMS43NiwyLjQzIEwtMS45MSwyLjMxIEwtMi4wNSwyLjE5IEwtMi4x
OSwyLjA1IEwtMi4zMSwxLjkxIEwtMi40MywxLjc2IEwtMi41MywxLjYxIEwtMi42MywxLjQ1IEwt
Mi43MSwxLjI4IEwtMi43OSwxLjEwIEwtMi44NSwwLjkzIEwtMi45MSwwLjc1IEwtMi45NSwwLjU2
IEwtMi45OCwwLjM4IEwtMi45OSwwLjE5IEwtMy4wMCwtMC4wMCBMLTIuOTksLTAuMTkgTC0yLjk4
LC0wLjM4IEwtMi45NSwtMC41NiBMLTIuOTEsLTAuNzUgTC0yLjg1LC0wLjkzIEwtMi43OSwtMS4x
MCBMLTIuNzEsLTEuMjggTC0yLjYzLC0xLjQ1IEwtMi41MywtMS42MSBMLTIuNDMsLTEuNzYgTC0y
LjMxLC0xLjkxIEwtMi4xOSwtMi4wNSBMLTIuMDUsLTIuMTkgTC0xLjkxLC0yLjMxIEwtMS43Niwt
Mi40MyBMLTEuNjEsLTIuNTMgTC0xLjQ1LC0yLjYzIEwtMS4yOCwtMi43MSBMLTEuMTAsLTIuNzkg
TC0wLjkzLC0yLjg1IEwtMC43NSwtMi45MSBMLTAuNTYsLTIuOTUgTC0wLjM4LC0yLjk4IEwtMC4x
OSwtMi45OSBMMC4wMCwtMy4wMCBMMC4xOSwtMi45OSBMMC4zOCwtMi45OCBMMC41NiwtMi45NSBM
MC43NSwtMi45MSBMMC45MywtMi44NSBMMS4xMCwtMi43OSBMMS4yOCwtMi43MSBMMS40NSwtMi42
MyBMMS42MSwtMi41MyBMMS43NiwtMi40MyBMMS45MSwtMi4zMSBMMi4wNSwtMi4xOSBMMi4xOSwt
Mi4wNSBMMi4zMSwtMS45MSBMMi40MywtMS43NiBMMi41MywtMS42MSBMMi42MywtMS40NSBMMi43
MSwtMS4yOCBMMi43OSwtMS4xMCBMMi44NSwtMC45MyBMMi45MSwtMC43NSBMMi45NSwtMC41NiBM
Mi45OCwtMC4zOCBMMi45OSwtMC4xOSBaIl0KICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoLTEyNSwwKSBzaXplIDI1MHgzMyBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAg
ICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTI3KSBzaXplIDI1MHgzMwogICAg
ICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtMTI0LjUw
LDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDE4IHdpZHRoIDI0OS4wMDogInRleHQtYW5j
aG9yOm1pZGRsZSIKICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzMuMzMsNDIx
LjY3KSBzaXplIDM1NXg1NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgyMzAuMDAsMjgwLjAwKX1dCi0gICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDMwMC4w
MCw0NjUuODMpIHNpemUgODMuMzN4MS42NyBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTS01
MC4wMCwwLjAwIEwwLjAwLDAuMDAiXQorICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgz
MDAsNDY1LjgzKSBzaXplIDgzLjMzeDEuNjcgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik0t
NTAuMDAsMC4wMCBMMC4wMCwwLjAwIl0KICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0
ICgzNzguMzMsNDYxLjY3KSBzaXplIDEweDEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2RhdGE9Ik0zLjAwLDAuMDAgTDIuOTksMC4xOSBMMi45OCwwLjM4IEwyLjk1LDAu
NTYgTDIuOTEsMC43NSBMMi44NSwwLjkzIEwyLjc5LDEuMTAgTDIuNzEsMS4yOCBMMi42MywxLjQ1
IEwyLjUzLDEuNjEgTDIuNDMsMS43NiBMMi4zMSwxLjkxIEwyLjE5LDIuMDUgTDIuMDUsMi4xOSBM
MS45MSwyLjMxIEwxLjc2LDIuNDMgTDEuNjEsMi41MyBMMS40NSwyLjYzIEwxLjI4LDIuNzEgTDEu
MTAsMi43OSBMMC45MywyLjg1IEwwLjc1LDIuOTEgTDAuNTYsMi45NSBMMC4zOCwyLjk4IEwwLjE5
LDIuOTkgTC0wLjAwLDMuMDAgTC0wLjE5LDIuOTkgTC0wLjM4LDIuOTggTC0wLjU2LDIuOTUgTC0w
Ljc1LDIuOTEgTC0wLjkzLDIuODUgTC0xLjEwLDIuNzkgTC0xLjI4LDIuNzEgTC0xLjQ1LDIuNjMg
TC0xLjYxLDIuNTMgTC0xLjc2LDIuNDMgTC0xLjkxLDIuMzEgTC0yLjA1LDIuMTkgTC0yLjE5LDIu
MDUgTC0yLjMxLDEuOTEgTC0yLjQzLDEuNzYgTC0yLjUzLDEuNjEgTC0yLjYzLDEuNDUgTC0yLjcx
LDEuMjggTC0yLjc5LDEuMTAgTC0yLjg1LDAuOTMgTC0yLjkxLDAuNzUgTC0yLjk1LDAuNTYgTC0y
Ljk4LDAuMzggTC0yLjk5LDAuMTkgTC0zLjAwLC0wLjAwIEwtMi45OSwtMC4xOSBMLTIuOTgsLTAu
MzggTC0yLjk1LC0wLjU2IEwtMi45MSwtMC43NSBMLTIuODUsLTAuOTMgTC0yLjc5LC0xLjEwIEwt
Mi43MSwtMS4yOCBMLTIuNjMsLTEuNDUgTC0yLjUzLC0xLjYxIEwtMi40MywtMS43NiBMLTIuMzEs
LTEuOTEgTC0yLjE5LC0yLjA1IEwtMi4wNSwtMi4xOSBMLTEuOTEsLTIuMzEgTC0xLjc2LC0yLjQz
IEwtMS42MSwtMi41MyBMLTEuNDUsLTIuNjMgTC0xLjI4LC0yLjcxIEwtMS4xMCwtMi43OSBMLTAu
OTMsLTIuODUgTC0wLjc1LC0yLjkxIEwtMC41NiwtMi45NSBMLTAuMzgsLTIuOTggTC0wLjE5LC0y
Ljk5IEwwLjAwLC0zLjAwIEwwLjE5LC0yLjk5IEwwLjM4LC0yLjk4IEwwLjU2LC0yLjk1IEwwLjc1
LC0yLjkxIEwwLjkzLC0yLjg1IEwxLjEwLC0yLjc5IEwxLjI4LC0yLjcxIEwxLjQ1LC0yLjYzIEwx
LjYxLC0yLjUzIEwxLjc2LC0yLjQzIEwxLjkxLC0yLjMxIEwyLjA1LC0yLjE5IEwyLjE5LC0yLjA1
IEwyLjMxLC0xLjkxIEwyLjQzLC0xLjc2IEwyLjUzLC0xLjYxIEwyLjYzLC0xLjQ1IEwyLjcxLC0x
LjI4IEwyLjc5LC0xLjEwIEwyLjg1LC0wLjkzIEwyLjkxLC0wLjc1IEwyLjk1LC0wLjU2IEwyLjk4
LC0wLjM4IEwyLjk5LC0wLjE5IFoiXQogICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0
ICgtMjEwLDApIHNpemUgMjEweDMzIGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMjcpIHNpemUgMjEweDMzCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1hbGlnbi0wNS1iLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4
dC1hbGlnbi0wNS1iLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1hbGlnbi0wNS1iLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICg1LjAwLDQwLjAwKSBzdGFydE9mZnNldCAw
IGVuZE9mZnNldCAyOSB3aWR0aCA0NjUuMDA6ICJUZXN0ICd0ZXh0LWFuY2hvcicgKHZlcnRpY2Fs
KSIKICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MS42Nyw4NSkgc2l6ZSAxOTYu
Njd4NDQwCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI1MS42Nyw4NSkgc2l6
ZSAxOTYuNjd4NDQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE2
MC4wMCwxNTAuMDApfV0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNTEu
NjcsMjQ1KSBzaXplIDMweDI4MAorICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDI1MS42NywyNDUpIHNpemUgMzAuMDB4MjgwCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgyNjEuNjcsMjQ1KSBzaXplIDEweDEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDAwMDBdfV0gW2RhdGE9Ik0zLjAwLDAuMDAgTDIuOTksMC4xOSBMMi45OCwwLjM4IEwyLjk1
LDAuNTYgTDIuOTEsMC43NSBMMi44NSwwLjkzIEwyLjc5LDEuMTAgTDIuNzEsMS4yOCBMMi42Mywx
LjQ1IEwyLjUzLDEuNjEgTDIuNDMsMS43NiBMMi4zMSwxLjkxIEwyLjE5LDIuMDUgTDIuMDUsMi4x
OSBMMS45MSwyLjMxIEwxLjc2LDIuNDMgTDEuNjEsMi41MyBMMS40NSwyLjYzIEwxLjI4LDIuNzEg
TDEuMTAsMi43OSBMMC45MywyLjg1IEwwLjc1LDIuOTEgTDAuNTYsMi45NSBMMC4zOCwyLjk4IEww
LjE5LDIuOTkgTC0wLjAwLDMuMDAgTC0wLjE5LDIuOTkgTC0wLjM4LDIuOTggTC0wLjU2LDIuOTUg
TC0wLjc1LDIuOTEgTC0wLjkzLDIuODUgTC0xLjEwLDIuNzkgTC0xLjI4LDIuNzEgTC0xLjQ1LDIu
NjMgTC0xLjYxLDIuNTMgTC0xLjc2LDIuNDMgTC0xLjkxLDIuMzEgTC0yLjA1LDIuMTkgTC0yLjE5
LDIuMDUgTC0yLjMxLDEuOTEgTC0yLjQzLDEuNzYgTC0yLjUzLDEuNjEgTC0yLjYzLDEuNDUgTC0y
LjcxLDEuMjggTC0yLjc5LDEuMTAgTC0yLjg1LDAuOTMgTC0yLjkxLDAuNzUgTC0yLjk1LDAuNTYg
TC0yLjk4LDAuMzggTC0yLjk5LDAuMTkgTC0zLjAwLC0wLjAwIEwtMi45OSwtMC4xOSBMLTIuOTgs
LTAuMzggTC0yLjk1LC0wLjU2IEwtMi45MSwtMC43NSBMLTIuODUsLTAuOTMgTC0yLjc5LC0xLjEw
IEwtMi43MSwtMS4yOCBMLTIuNjMsLTEuNDUgTC0yLjUzLC0xLjYxIEwtMi40MywtMS43NiBMLTIu
MzEsLTEuOTEgTC0yLjE5LC0yLjA1IEwtMi4wNSwtMi4xOSBMLTEuOTEsLTIuMzEgTC0xLjc2LC0y
LjQzIEwtMS42MSwtMi41MyBMLTEuNDUsLTIuNjMgTC0xLjI4LC0yLjcxIEwtMS4xMCwtMi43OSBM
LTAuOTMsLTIuODUgTC0wLjc1LC0yLjkxIEwtMC41NiwtMi45NSBMLTAuMzgsLTIuOTggTC0wLjE5
LC0yLjk5IEwwLjAwLC0zLjAwIEwwLjE5LC0yLjk5IEwwLjM4LC0yLjk4IEwwLjU2LC0yLjk1IEww
Ljc1LC0yLjkxIEwwLjkzLC0yLjg1IEwxLjEwLC0yLjc5IEwxLjI4LC0yLjcxIEwxLjQ1LC0yLjYz
IEwxLjYxLC0yLjUzIEwxLjc2LC0yLjQzIEwxLjkxLC0yLjMxIEwyLjA1LC0yLjE5IEwyLjE5LC0y
LjA1IEwyLjMxLC0xLjkxIEwyLjQzLC0xLjc2IEwyLjUzLC0xLjYxIEwyLjYzLC0xLjQ1IEwyLjcx
LC0xLjI4IEwyLjc5LC0xLjEwIEwyLjg1LC0wLjkzIEwyLjkxLC0wLjc1IEwyLjk1LC0wLjU2IEwy
Ljk4LC0wLjM4IEwyLjk5LC0wLjE5IFoiXQogICAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0gYXQgKC05LDI3KSBzaXplIDE4eDE2NSBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAg
ICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMjcpIHNpemUgMTh4MTY1Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1mb250cy0wMS10LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3Rl
eHQvdGV4dC1mb250cy0wMS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2OTgpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC1mb250cy0wMS10LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMC44MywwLjgzKSBzaXplIDc5
OC4zM3g1OTguMzMKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMy4zMyw0Ni42Nykg
c2l6ZSA1MTB4NDQ2LjY3Ci0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMy4zMyw0
Ni42Nykgc2l6ZSA1MTB4NDQ2LjY3CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzMu
MzMsNDYuNjcpIHNpemUgNTEwLjAweDQ0Ni42NworICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMzMuMzMsNDYuNjcpIHNpemUgNTEwLjAweDQ0Ni42NwogICAgICAgICBSZW5kZXJTVkdU
ZXh0IHt0ZXh0fSBhdCAoMjAsODApIHNpemUgMTk4eDI3IGNvbnRhaW5zIDEgY2h1bmsocykKICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTIyKSBzaXplIDE5OHgy
NwogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4wMCw4MC4wMCkgc3RhcnRP
ZmZzZXQgMCBlbmRPZmZzZXQgMTcgd2lkdGggMTk4LjAwOiAiQSBzZXJpZmVkIGZhY2UgXHh7NzUz
Qn1ceHs1MENGfSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90ZXh0
LXRleHQtMDQtdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNC10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDA2
OTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA0LXQt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDM1ICs0LDM1IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLjgzLDAuODMpIHNp
emUgNzk4LjMzeDU5OC4zMwogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQg
KDAsMCkgc2l6ZSAweDAKICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MCwzMy4zMykg
c2l6ZSA2OTYuNjd4NDgzLjMzCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MC4w
MCwzMy4zMykgc2l6ZSAyNTYuNjd4NDEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMTMwLjAwLDQwLjAwKX1dCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICg2MCwzMy4zMykgc2l6ZSAyNTYuNjd4NDEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTMwLjAwLDQwLjAwKX1dCiAgICAgICAgIFJlbmRlclNWR1RleHQg
e3RleHR9IGF0ICgtOTQsMCkgc2l6ZSA2NHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAg
ICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA2NHgxOAogICAg
ICAgICAgICAgY2h1bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTk0LjAwLDAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDkgd2lkdGggNjQuMDA6ICJSZWZlcmVuY2UiCi0gICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMC4wMCwzMy4zMykgc2l6ZSAxMDYuNjd4
NDEuNjcKLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIxMC4wMCw2MC4w
MCkgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoMjEwLjAwLDYwLjAwKSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgyMTAuMDAsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAw
IEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHt1c2V9IGF0ICgyMzUuMDAsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIzNS4wMCw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCwwLjAwKX1dCi0g
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMzUuMDAsNjAuMDApIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNjAsNjAuMDApIHNpemUgMTMuMzN4MTMu
MzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw2MC4wMCkgc2l6
ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgz
MC4wMCwwLjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsNjAu
MDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyODUsNjAuMDApIHNp
emUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI4
NSw2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSg0NS4wMCwwLjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyODUsNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAg
TC00LjAwLDQuMDAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwz
My4zMykgc2l6ZSAxMDYuNjd4NDEuNjcKKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3Vz
ZX0gYXQgKDIxMCw2MCkgc2l6ZSAxMy4zM3gxMy4zMworICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMjEwLDYwKSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgyMTAsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAw
IEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHt1c2V9IGF0ICgyMzUsNjApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDIzNSw2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCwwLjAwKX1dCisgICAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMzUsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00
LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHt1c2V9IGF0ICgyNjAsNjApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3Jt
PXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzMC4wMCwwLjAwKX1dCisgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsNjApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAw
LC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHt1c2V9IGF0ICgyODUsNjApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI4NSw2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0NS4wMCwwLjAwKX1dCisgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyODUsNjApIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZH
VGV4dCB7dGV4dH0gYXQgKDAsMCkgc2l6ZSA2MHgyNSBjb250YWlucyAxIGNodW5rKHMpCiAgICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTIwKSBzaXplIDYweDI1
CiAgICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMC4wMCwwLjAwKSBzdGFydE9m
ZnNldCAwIGVuZE9mZnNldCA0IHdpZHRoIDYwLjAwOiAiMTIzNCIKICAgICAgIFJlbmRlclNWR0hp
ZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKC00LC00KSBzaXplIDh4OCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDAwMDAwXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KLSAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEyMS42NywxMDAu
MDApIHNpemUgMjUzLjMzeDQxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEzMC4wMCw4MC4wMCl9XQorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MTIxLjY3LDEwMCkgc2l6ZSAyNTMuMzN4NDEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMTMwLjAwLDgwLjAwKX1dCiAgICAgICAgIFJlbmRlclNWR1RleHQge3Rl
eHR9IGF0ICgtNTcsMCkgc2l6ZSAyN3gxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAg
UmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSAyN3gxOAogICAgICAg
ICAgICAgY2h1bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTU3LjAwLDAuMDApIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDUgd2lkdGggMjcuMDA6ICJ4IGFsbCIKLSAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMTAuMDAsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMz
Ci0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLjAwLDEyNi42Nykgc2l6
ZSAxMy4zM3gxMy4zMwotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIxMC4wMCwx
MjYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQu
MDAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLDEyNi42Nykg
c2l6ZSAxMy4zM3gxMy4zMworICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIx
MCwxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyMTAsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAw
IEwtNC4wMCw0LjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0
My4zMywxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgyNDMuMzMsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLDAuMDApfV0KICAgICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgyNDMuMzMsMTI2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4w
MCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQpAQCAtNTUsOSArNTUsOSBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KC03NCwwKSBzaXplIDQ0eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJT
VkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDQ0eDE4CiAgICAgICAgICAgICBj
aHVuayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNzQuMDAsMC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgNiB3aWR0aCA0NC4wMDogInggbW9yZSIKLSAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHt1c2V9IGF0ICgyMTAuMDAsMTkzLjMzKSBzaXplIDEzLjMzeDEzLjMzCi0gICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjEwLjAwLDE5My4zMykgc2l6ZSAxMy4z
M3gxMy4zMwotICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIxMC4wMCwxOTMuMzMp
IHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJd
CisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLDE5My4zMykgc2l6ZSAx
My4zM3gxMy4zMworICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwxOTMu
MzMpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgy
MTAsMTkzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4w
MCw0LjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0My4zMywx
OTMuMzMpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyNDMuMzMsMTkzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLDAuMDApfV0KICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgyNDMuMzMsMTkzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQpAQCAtODMsOSArODMsOSBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03OCww
KSBzaXplIDQ4eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDQ4eDE4CiAgICAgICAgICAgICBjaHVuayAx
IChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNzguMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBl
bmRPZmZzZXQgNyB3aWR0aCA0OC4wMDogInggZmV3ZXIiCi0gICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7dXNlfSBhdCAoMjEwLjAwLDI2MCkgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMC4wMCwyNjApIHNpemUgMTMuMzN4MTMuMzMKLSAg
ICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAuMDAsMjYwKSBzaXplIDEzLjMzeDEz
LjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4wMCwt
NC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIxMCwyNjApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTAsMjYwKSBzaXplIDEzLjMzeDEzLjMz
CisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjEwLDI2MCkgc2l6ZSAxMy4zM3gx
My4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNDMuMzMsMjYwKSBzaXplIDEzLjMzeDEzLjMzCiAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQzLjMzLDI2MCkgc2l6ZSAxMy4z
M3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCww
LjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjQzLjMzLDI2MCkgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KQEAg
LTEwNywxMyArMTA3LDEzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBS
ZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTU3LDApIHNpemUgMjd4MTggY29udGFpbnMgMSBjaHVu
ayhzKQogICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNp
emUgMjd4MTgKICAgICAgICAgICAgIGNodW5rIDEgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQg
KC01Ny4wMCwwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA1IHdpZHRoIDI3LjAwOiAieSBh
bGwiCi0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLjAwLDMxMC4wMCkg
c2l6ZSAxMy4zM3gxMy4zMwotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIx
MC4wMCwzMTApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyMTAuMDAsMzEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAw
IEwtNC4wMCw0LjAwIFoiXQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIz
NS4wMCwzMTguMzMpIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgyMzUuMDAsMzE4LjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLC01LjAwKX1dCi0gICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1LjAwLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQu
MDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHt1c2V9IGF0ICgyNjAsMzM1LjAwKSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjEwLDMxMCkgc2l6ZSAxMy4zM3gxMy4zMworICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwzMTApIHNpemUgMTMuMzN4MTMu
MzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAuMDAp
fV0KKyAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAsMzEwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIzNSwzMTguMzMpIHNpemUgMTMuMzN4MTMuMzMK
KyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMzUsMzE4LjMzKSBzaXplIDEz
LjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAw
LC01LjAwKX1dCisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1LDMxOC4zMykg
c2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtk
YXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0K
KyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNjAsMzM1KSBzaXplIDEzLjMz
eDEzLjMzCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDMzNSkgc2l6
ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgz
MC4wMCw1LjAwKX1dCiAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDMzNSkg
c2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtk
YXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0K
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyODUsMzQzLjMzKSBzaXplIDEz
LjMzeDEzLjMzCkBAIC0xMjYsMTIgKzEyNiwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03NCwwKSBzaXplIDQ0eDE4IGNv
bnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0g
YXQgKDAsLTE0KSBzaXplIDQ0eDE4CiAgICAgICAgICAgICBjaHVuayAxIChlbmQgYW5jaG9yKSB0
ZXh0IHJ1biAxIGF0ICgtNzQuMDAsMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNiB3aWR0
aCA0NC4wMDogInkgbW9yZSIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgy
MTAuMDAsMzkzLjMzKSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjEwLjAwLDM5My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIxMC4wMCwzOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7dXNlfSBhdCAoMjM1LjAwLDQwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIzNS4wMCw0MDEuNjcpIHNpemUgMTMuMzN4
MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAsLTUu
MDApfV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMzUuMDAsNDAxLjY3KSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQor
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIxMCwzOTMuMzMpIHNpemUgMTMu
MzN4MTMuMzMKKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMTAsMzkzLjMz
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjEw
LDM5My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4
OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAs
NC4wMCBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMzUsNDAxLjY3
KSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjM1LDQwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgw
LjAwLDEuMDApKSB0PSgxNS4wMCwtNS4wMCl9XQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDIzNSw0MDEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQu
MDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAo
MjYwLDQxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDI2MCw0MTguMzMpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsNS4wMCl9XQogICAgICAgICAgICAgUmVuZGVy
UGF0aCB7cmVjdH0gYXQgKDI2MCw0MTguMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAw
IEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCkBAIC0xNDUsMTIgKzE0NSwxMiBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKC03
OCwwKSBzaXplIDQ4eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICBSZW5kZXJTVkdJ
bmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDQ4eDE4CiAgICAgICAgICAgICBjaHVu
ayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNzguMDAsMC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgNyB3aWR0aCA0OC4wMDogInkgZmV3ZXIiCi0gICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7dXNlfSBhdCAoMjEwLjAwLDQ3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMwotICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMC4wMCw0NzYuNjcpIHNpemUgMTMuMzN4
MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwtMTAu
MDApfV0KLSAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAuMDAsNDc2LjY3KSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQot
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIzNS4wMCw0ODUpIHNpemUgMTMu
MzN4MTMuMzMKLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyMzUuMDAsNDg1
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDE1LjAwLC01LjAwKX1dCi0gICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjM1
LjAwLDQ4NSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4
OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAs
NC4wMCBaIl0KKyAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyMTAsNDc2LjY3
KSBzaXplIDEzLjMzeDEzLjMzCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjEwLDQ3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgw
LjAwLDEuMDApKSB0PSgwLjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDIxMCw0NzYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQu
MDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAo
MjM1LDQ4NSkgc2l6ZSAxMy4zM3gxMy4zMworICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIzNSw0ODUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAsLTUuMDApfV0KKyAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgyMzUsNDg1KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDI2MCw1MDEuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgyNjAsNTAxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDMwLjAwLDUuMDApfV0KICAgICAgICAgICAgIFJlbmRl
clBhdGgge3JlY3R9IGF0ICgyNjAsNTAxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQpAQCAtMTYxLDMyICsxNjEsMzIgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3Rl
eHR9IGF0ICgwLC0yMCkgc2l6ZSA2MHg0MAogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgwLjAwLC0xMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNCB3aWR0aCA2MC4wMDog
IjEyMzQiCiAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MDEuNjcsODMuMzMpIHNp
emUgMzU1eDM0MS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgy
MjAuMDAsMC4wMCl9XQotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NjguMzMs
ODMuMzMpIHNpemUgMjczLjMzeDc1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4w
MCkpIHQ9KDEzMC4wMCw4MC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg0NjguMzMsODMuMzMpIHNpemUgMjczLjMzeDc1LjAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDEzMC4wMCw4MC4wMCl9XQogICAgICAgICAgIFJlbmRlclNWR1Rl
eHQge3RleHR9IGF0ICgtNjksMCkgc2l6ZSAzOXgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTE0KSBzaXplIDM5eDE4
CiAgICAgICAgICAgICAgIGNodW5rIDEgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKC02OS4w
MCwwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA3IHdpZHRoIDM5LjAwOiAieC95IGFsbCIK
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDU3Ni42NywxMjYuNjcpIHNp
emUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU3
Ni42NywxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDU3Ni42NywxMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICg2MTAsMTEwLjAwKSBzaXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAsMTEwKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9XQotICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEwLjAwLDExMCkgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDYxMCwxMTApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwxMTApIHNpemUgMTMuMzN4MTMu
MzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAw
KX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAsMTEwKSBzaXplIDEz
LjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0t
NC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNjQzLjMzLDExOC4zMykgc2l6ZSAxMy4z
M3gxMy4zMwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjQzLjMzLDEx
OC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSg0MC4wMCwtNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoNjQzLjMzLDExOC4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDY3Ni42NywxMzUpIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDY3Ni42NywxMzUuMDApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsNS4wMCl9XQotICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjc2LjY3LDEzNS4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDY3Ni42NywxMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsNS4wMCl9XQorICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjc2LjY3LDEzNSkgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDcxMCwxNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMKLSAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDcxMC4wMCwxNDMuMzMpIHNpemUg
MTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oODAu
MDAsMTAuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDcxMC4wMCwx
NDMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhG
Rl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQu
MDAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg3MTAsMTQzLjMz
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDgwLjAwLDEwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg3
MTAsMTQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4w
MCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgyMCwtMTApIHNp
emUgNzV4NDUgY29udGFpbnMgNCBjaHVuayhzKQogICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC0yMCkgc2l6ZSA3NXg0NQogICAgICAgICAgICAgICBjaHVuayAx
IHRleHQgcnVuIDEgYXQgKDIwLjAwLC0xMC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3
aWR0aCAxNS4wMDogIjEiCiAgICAgICAgICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNDAu
MDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAg
ICAgICAgICAgICBjaHVuayAzIHRleHQgcnVuIDEgYXQgKDYwLjAwLDUuMDApIHN0YXJ0T2Zmc2V0
IDIgZW5kT2Zmc2V0IDMgd2lkdGggMTUuMDA6ICIzIgogICAgICAgICAgICAgICBjaHVuayA0IHRl
eHQgcnVuIDEgYXQgKDgwLjAwLDEwLjAwKSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0IHdpZHRo
IDE1LjAwOiAiNCIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDQwLjAwLDE1
MCkgc2l6ZSAzMTYuNjd4OTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkg
dD0oMTMwLjAwLDEyMC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0
NDAsMTUwKSBzaXplIDMxNi42N3g5MCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSgxMzAuMDAsMTIwLjAwKX1dCiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0g
YXQgKC04NiwwKSBzaXplIDU2eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAgIFJl
bmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgNTZ4MTgKICAgICAgICAg
ICAgICAgY2h1bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTg2LjAwLDAuMDApIHN0
YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDggd2lkdGggNTYuMDA6ICJ4L3kgbW9yZSIKQEAgLTE5NCw4
ICsxOTQsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDU3Ni42NywxOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMKICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3Ni42NywxOTMuMzMpIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg2MTAsMTc2LjY3KSBzaXplIDEzLjMzeDEz
LjMzCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAsMTc2LjY3
KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDIwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NjEwLjAwLDE3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBM
LTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYx
MCwxNzYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICg2MTAsMTc2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBh
dCAoNjQzLjMzLDE4NSkgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNjQzLjMzLDE4NSkgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MC4wMCwtNS4wMCl9XQogICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjQzLjMzLDE4NSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQu
MDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KQEAgLTIwMyw4ICsyMDMsOCBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDY3Ni42NywyMDEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0o
KDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjc2LjY3LDIwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQu
MDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge3VzZX0gYXQgKDcxMCwyMTApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDcxMC4wMCwyMTApIHNpemUgMTMuMzN4MTMuMzMg
W3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsMTAuMDApfV0K
LSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDcxMC4wMCwyMTApIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg3MTAsMjEwKSBzaXplIDEzLjMzeDEzLjMz
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDgwLjAwLDEwLjAwKX1d
CisgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg3MTAsMjEwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNzQzLjMzLDIyNi42Nykgc2l6ZSAxMy4zM3gx
My4zMwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNzQzLjMzLDIyNi42
Nykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxMDAuMDAsMjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDc0My4zMywyMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAg
TC00LjAwLDQuMDAgWiJdCkBAIC0yMTQsNyArMjE0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgICAgICAgICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNDAuMDAsLTUuMDAp
IHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAgICAg
ICBjaHVuayAzIHRleHQgcnVuIDEgYXQgKDYwLjAwLDUuMDApIHN0YXJ0T2Zmc2V0IDIgZW5kT2Zm
c2V0IDMgd2lkdGggMTUuMDA6ICIzIgogICAgICAgICAgICAgICBjaHVuayA0IHRleHQgcnVuIDEg
YXQgKDgwLjAwLDEwLjAwKSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0IHdpZHRoIDE1LjAwOiAi
NCIKLSAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDMzLjMzLDIxNi42Nykgc2l6
ZSAzMDB4NjYuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTMw
LjAwLDE2MC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MzMuMzMs
MjE2LjY3KSBzaXplIDMwMC4wMHg2Ni42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgxMzAuMDAsMTYwLjAwKX1dCiAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0gYXQgKC05MCwwKSBzaXplIDYweDE4IGNvbnRhaW5zIDEgY2h1bmsocykKICAgICAgICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwtMTQpIHNpemUgNjB4MTgKICAgICAg
ICAgICAgICAgY2h1bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTkwLjAwLDAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDkgd2lkdGggNjAuMDA6ICJ4L3kgZmV3ZXIiCkBAIC0y
MjIsOCArMjIyLDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYuNjcsMjYwKSBzaXplIDEzLjMzeDEzLjMzCiAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1NzYuNjcsMjYwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoNjEwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4z
MwotICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLjAwLDI0My4zMykg
c2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgyMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYx
MC4wMCwyNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00
LjAwLDQuMDAgWiJdCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAs
MjQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAs
MS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNjEwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDY0My4zMywyNTEuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDY0My4zMywyNTEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAuMDAsLTUuMDApfV0KICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDY0My4zMywyNTEuNjcpIHNpemUgMTMuMzN4MTMu
MzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00
LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCkBAIC0yNDUsMTggKzI0
NSwxOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge3VzZX0gYXQgKDU3Ni42NywzMjYuNjcpIHNpemUgMTMuMzN4MTMuMzMKICAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU3Ni42NywzMjYuNjcpIHNpemUgMTMu
MzN4MTMuMzMKICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3Ni42NywzMjYu
NjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCi0gICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICg2MTAsMzEwLjAwKSBz
aXplIDEzLjMzeDEzLjMzCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2
MTAuMDAsMzEwKSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDIwLjAwLC0xMC4wMCl9XQotICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNjEwLjAwLDMxMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0g
YXQgKDYxMCwzMTApIHNpemUgMTMuMzN4MTMuMzMKKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDYxMCwzMTApIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTEwLjAwKX1dCisgICAgICAgICAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICg2MTAsMzEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4w
MCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7dXNlfSBhdCAoNjQzLjMzLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4zMwogICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjQzLjMzLDMxOC4zMykgc2l6ZSAxMy4zM3gxMy4z
MyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg0MC4wMCwtNS4wMCl9
XQogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjQzLjMzLDMxOC4zMykgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDY3Ni42NywzMzUuMDApIHNpemUg
MTMuMzN4MTMuMzMKKyAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDY3Ni42
NywzMzUpIHNpemUgMTMuMzN4MTMuMzMKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDY3Ni42NywzMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsNS4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtyZWN0fSBhdCAoNjc2LjY3LDMzNSkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAg
TDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KLSAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e3VzZX0gYXQgKDcxMCwzMzUuMDApIHNpemUgMTMuMzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDcxMC4wMCwzMzUpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsNS4wMCl9XQotICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNzEwLjAwLDMzNSkgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDcxMCwzMzUpIHNpemUgMTMuMzN4MTMuMzMKKyAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDcxMCwzMzUpIHNpemUgMTMuMzN4MTMu
MzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oODAuMDAsNS4wMCl9
XQorICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNzEwLDMzNSkgc2l6ZSAxMy4z
M3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQu
MDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAg
ICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMjAsLTEwKSBzaXplIDc1eDQwIGNvbnRhaW5zIDQg
Y2h1bmsocykKICAgICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwt
MjApIHNpemUgNzV4NDAKICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgyMC4w
MCwtMTAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMTUuMDA6ICIxIgpAQCAt
MjcxLDggKzI3MSw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTc2LjY3LDM5My4zMykgc2l6ZSAxMy4zM3gxMy4z
MwogICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTc2LjY3LDM5My4zMykgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDYxMCwzNzYuNjcpIHNpemUgMTMu
MzN4MTMuMzMKLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCwz
NzYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMjAuMDAsLTEwLjAwKX1dCi0gICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICg2MTAuMDAsMzc2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNjEwLDM3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgyMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAgICAgUmVuZGVyUGF0
aCB7cmVjdH0gYXQgKDYxMCwzNzYuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICg2NDMuMzMsMzg1KSBzaXplIDEzLjMzeDEzLjMzCiAgICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg2NDMuMzMsMzg1KSBzaXplIDEzLjMzeDEzLjMzIFt0cmFuc2Zv
cm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwLjAwLC01LjAwKX1dCiAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2NDMuMzMsMzg1KSBzaXplIDEzLjMzeDEzLjMz
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4w
MCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNS10LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10ZXh0LTA1
LXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvdGV4dC90ZXh0LXRleHQtMDUtdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgsNyArOCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgtNCwtMTUpIHNpemUgOHgxOQogICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICgtMC41MCwtMTUpIHNpemUgMXgxNSBbc3Ryb2tlPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19
XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQogICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgtNCwtNCkgc2l6ZSA4eDggW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAw
LDQuMDAgWiJdCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxNi42Nyw5My4zMykg
c2l6ZSA3My4zM3g0MzAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MTAuMDAsNDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE2LjY3LDkz
LjMzKSBzaXplIDczLjMzeDQzMC4wMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEu
MDApKSB0PSgxMC4wMCw0MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAo
MCwzMCkgc2l6ZSA0NHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZH
SW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA0NHgxOAogICAgICAgICAgICAgY2h1
bmsgMSB0ZXh0IHJ1biAxIGF0ICgwLjAwLDMwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA3
IHdpZHRoIDQ0LjAwOiAiMS54IDEueSIKQEAgLTM2LDcgKzM2LDcgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLDI3MCkgc2l6
ZSA0NHgxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4
dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA0NHgxOAogICAgICAgICAgICAgY2h1bmsgMSB0ZXh0
IHJ1biAxIGF0ICgwLjAwLDI3MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNyB3aWR0aCA0
NC4wMDogIjIueCAyLnkiCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxOTAsMTUu
MDApIHNpemUgMjM1eDUzNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0
PSgxNTAuMDAsNDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDE5MCwx
NSkgc2l6ZSAyMzV4NTM1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDE1MC4wMCw0MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTM2LC0x
Nykgc2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOAogICAgICAgICAgICAgY2h1bmsg
MSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTM1LjUwLC0xNy4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMTEgd2lkdGggNzEuMDA6ICJ0ZXh0LWFuY2hvciIKQEAgLTU3LDIyICs1
NywyMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDI2MCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTAuMDAsNjAuMDApfV0KICAgICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDE0MS42Nykgc2l6ZSAxMy4zM3gz
MS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyNjUuODMsMTQxLjY3
KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAu
MDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDE2
MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZG
XX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4w
MCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjYwLDE2MCkgc2l6
ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI3Ni42NywxNDEuNjcpIHNpemUg
MTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI3Ni42
NywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMjAuMDAsNjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMjc2LjY3LDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyODIuNTAsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAg
ICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjc2LjY3LDE2MC4wMCkgc2l6ZSAxMy4z
M3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQu
MDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjc2LjY3LDE2MCkgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI5My4zMywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcK
ICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5My4zMywxNDEuNjcpIHNp
emUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MzAuMDAsNjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MjkzLjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge2xpbmV9IGF0ICgyOTkuMTcsMTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4
RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBS
ZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjkzLjMzLDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQu
MDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoMjkzLjMzLDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge3VzZX0gYXQgKDMxMCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMxMCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDAuMDAsNjAuMDApfV0KICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzEwLDE0MS42Nykgc2l6ZSAx
My4zM3gzMS42NwogICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgzMTUuODMs
MTQxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAw
XX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAu
MDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
MzEwLDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMzEwLDE2
MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBa
Il0KICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsNjApIHNpemUgNDV4MTEg
Y29udGFpbnMgNCBjaHVuayhzKQogICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3Rl
eHR9IGF0ICgwLC05KSBzaXplIDQ1eDExCiAgICAgICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4g
MSBhdCAoMTAuMDAsNjAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGggMTUuMDA6
ICIxIgpAQCAtODMsMjggKzgzLDI4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDE5MS42Nykgc2l6ZSAxMy4z
M3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCw5
MC4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjAsMTkx
LjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0g
YXQgKDI2NS44MywxOTEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0
YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICgyNjAsMjEwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICgyNjAsMjEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwt
NC4wMCw0LjAwIFoiXQogICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMzQz
LjMzLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMzQzLjMzLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg2MC4wMCw5MC4wMCl9XQogICAgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNDMuMzMsMTkxLjY3KSBzaXplIDEzLjMzeDMx
LjY3CiAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDM0OS4xNywxOTEuNjcp
IHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4w
MCwtMTUuMDAiXQotICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDMuMzMs
MjEwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4
RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0
LjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzNDMuMzMsMjEw
KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0g
W2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoi
XQogICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCw5MCkgc2l6ZSA5NXgxMSBj
b250YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4
dH0gYXQgKDAsLTkpIHNpemUgOTV4MTEKICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAx
IGF0ICgxMC4wMCw5MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4wMDog
IjEiCiAgICAgICAgICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNjAuMDAsOTAuMDApIHN0
YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDQgd2lkdGggNDUuMDA6ICIyMzQiCi0gICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjQzLjMzLDIyNS4wMCkgc2l6ZSAxMDYuNjd4NjUgW3Ry
YW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwxMjAuMDApfV0KLSAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjQzLjMzLDIyNS4wMCkgc2l6
ZSAxMy4zM3gzMS42NwotICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgy
NDMuMzMsMjI1LjAwKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEwLjAwKX1dCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMjQzLjMzLDIyNS4wMCkgc2l6ZSAxMy4zM3gzMS42NwotICAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDI0OS4xNywyMjUuMDApIHNpemUgMS42
N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAi
XQorICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0My4zMywyMjUpIHNpemUg
MTA2LjY3eDY1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAs
MTIwLjAwKX1dCisgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDI0My4z
MywyMjUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjQzLjMzLDIyNSkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI0My4zMywyMjUpIHNpemUgMTMuMzN4MzEuNjcKKyAg
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyNDkuMTcsMjI1KSBzaXplIDEu
Njd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAw
Il0KICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNDMuMzMsMjQzLjMz
KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0g
W2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoi
XQogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgyNjguMzMsMjMzLjMz
KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDI2OC4zMywyMzMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAs
MC4wMCkoMC4wMCwxLjAwKSkgdD0oMTUuMDAsLTUuMDApfV0KICAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjguMzMsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAg
ICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMjc0LjE3LDIzMy4zMykgc2l6
ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0x
NS4wMCJdCiAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjY4LjMzLDI1
MS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZG
XX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4w
MCBaIl0KLSAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjkzLjMzLDI1
MC4wMCkgc2l6ZSAxMy4zM3gzMS42NworICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1
c2V9IGF0ICgyOTMuMzMsMjUwKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDI5My4zMywyNTApIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAsNS4wMCl9XQogICAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5My4zMywyNTApIHNpemUgMTMu
MzN4MzEuNjcKICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyOTkuMTcs
MjUwKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDAuMDAsLTE1LjAwIl0KQEAgLTIxMCwxMSArMjEwLDExIEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICAgICAgICAgICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoMjAuMDAsLTUu
MDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAg
ICAgICAgIGNodW5rIDMgdGV4dCBydW4gMSBhdCAoMzAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDIg
ZW5kT2Zmc2V0IDMgd2lkdGggMTUuMDA6ICIzIgogICAgICAgICAgICAgICAgIGNodW5rIDQgdGV4
dCBydW4gMSBhdCAoNDAuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0IDMgZW5kT2Zmc2V0IDQgd2lkdGgg
MTUuMDA6ICI0IgotICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw0NzUu
MDApIHNpemUgMTY1eDQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9
KDAuMDAsMjcwLjAwKX1dCi0gICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQg
KDI2MCw0NzUuMDApIHNpemUgMTMuMzN4MzEuNjcKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMjYwLDQ3NS4wMCkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgyNjAsNDc1LjAwKSBzaXplIDEzLjMzeDMx
LjY3Ci0gICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoMjY1LjgzLDQ3NS4w
MCkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEww
LjAwLC0xNS4wMCJdCisgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjYwLDQ3
NSkgc2l6ZSAxNjV4NDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
MC4wMCwyNzAuMDApfV0KKyAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAo
MjYwLDQ3NSkgc2l6ZSAxMy4zM3gzMS42NworICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgyNjAsNDc1KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLC0xMC4wMCl9XQorICAgICAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2MCw0NzUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyNjUuODMsNDc1KSBzaXplIDEuNjd4
MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0K
ICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyNjAsNDkzLjMzKSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHt1c2V9IGF0ICgzNDMuMzMsNDgzLjMzKSBzaXpl
IDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM0
My4zMyw0ODMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oNjAuMDAsLTUuMDApfV0KQEAgLTIyNSw3ICsyMjUsNyBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC05KSBzaXplIDk1eDE2CiAgICAgICAgICAgICAgICAgY2h1bmsgMSB0ZXh0
IHJ1biAxIGF0ICgxMC4wMCwtMTAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDEgd2lkdGgg
MTUuMDA6ICIxIgogICAgICAgICAgICAgICAgIGNodW5rIDIgdGV4dCBydW4gMSBhdCAoNjAuMDAs
LTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDQgd2lkdGggNDUuMDA6ICIyMzQiCi0gICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNTYuNjcsMTUuMDApIHNpemUgMTk4LjMzeDUz
NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyNTAuMDAsNDAuMDAp
fV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDM1Ni42NywxNSkgc2l6ZSAxOTgu
MzN4NTM1IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDI1MC4wMCw0
MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoLTM2LC0xNykgc2l6ZSA3
MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7
I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3MngxOAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxl
IGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTM1LjUwLC0xNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRP
ZmZzZXQgMTEgd2lkdGggNzEuMDA6ICJ0ZXh0LWFuY2hvciIKQEAgLTI0NiwxOSArMjQ2LDE5IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICg0MjYuNjcsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLDYwLjAwKX1dCiAgICAgICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDI2LjY3LDE0MS42Nykgc2l6ZSAxMy4z
M3gzMS42NwogICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQzMi41MCwx
NDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBd
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4w
MCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDQyNi42NywxNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAg
TC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NDI2LjY3LDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDQz
LjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgw
LjAwLDEuMDApKSB0PSgyMC4wMCw2MC4wMCl9XQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0Nv
bnRhaW5lciB7Z30gYXQgKDQ0My4zMywxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAg
ICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg0NDkuMTcsMTQxLjY3KSBzaXplIDEuNjd4
MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0K
LSAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0NDMuMzMsMTYwLjAwKSBz
aXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2Rh
dGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQor
ICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ0My4zMywxNjApIHNpemUg
MTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQ2MCwxNDEuNjcpIHNpemUgMTMu
MzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAs
NjAuMDApfV0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0NjAs
MTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoNDY1LjgzLDE0MS42Nykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtyZWN0fSBhdCAoNDYwLDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5
cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQu
MDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICg0NjAsMTYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICg0NzYuNjcsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwLjAwLDYwLjAwKX1dCiAgICAgICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDc2LjY3LDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42
NwogICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQ4Mi41MCwxNDEuNjcp
IHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4w
MCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQ3Ni42
NywxNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAw
LDQuMDAgWiJdCisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDc2LjY3
LDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZG
XX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4w
MCBaIl0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIsNjApIHNpemUg
NDZ4MTEgY29udGFpbnMgNCBjaHVuayhzKQogICAgICAgICAgICAgICAgIFJlbmRlclNWR0lubGlu
ZVRleHQgeyN0ZXh0fSBhdCAoMCwtOSkgc2l6ZSA0NngxMQogICAgICAgICAgICAgICAgICAgY2h1
bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMi41MCw2MC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4wMDogIjEiCkBAIC0yNjgsMTkgKzI2OCwxOSBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoNDI2LjY3LDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCw5MC4wMCl9XQogICAgICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQyNi42NywxOTEuNjcpIHNpemUgMTMuMzN4
MzEuNjcKICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg0MzIuNTAsMTkx
LjY3KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAg
TDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg0
MjYuNjcsMjEwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwt
NC4wMCw0LjAwIFoiXQotICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1
MTAuMDAsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDAp
KDAuMDAsMS4wMCkpIHQ9KDYwLjAwLDkwLjAwKX1dCi0gICAgICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNTEwLjAwLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NworICAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQyNi42NywyMTApIHNpemUgMTMuMzN4
MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAw
LC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDUxMCwxOTEuNjcpIHNpemUgMTMuMzN4MzEu
NjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAuMDAsOTAuMDAp
fV0KKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1MTAsMTkxLjY3
KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBh
dCAoNTE1LjgzLDE5MS42Nykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29s
b3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoNTEwLjAwLDIxMC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAg
TDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgg
e3JlY3R9IGF0ICg1MTAsMjEwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoMiw5MCkgc2l6ZSA4MXgxMSBjb250YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAgICAgICAg
UmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC05KSBzaXplIDgxeDExCiAgICAgICAg
ICAgICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgyLjUwLDkw
LjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIKICAgICAgICAg
ICAgICAgICAgIGNodW5rIDIgKG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDM3LjUwLDkw
LjAwKSBzdGFydE9mZnNldCAxIGVuZE9mZnNldCA0IHdpZHRoIDQ1LjAwOiAiMjM0IgotICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNjYuNjcsMjI1LjAwKSBzaXplIDEz
MS42N3g2NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDEy
MC4wMCl9XQotICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwy
MjUuMDApIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMC4wMCwtMTAuMDApfV0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDQxMCwyMjUuMDApIHNpemUgMTMuMzN4MzEuNjcKLSAgICAgICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQxNS44MywyMjUuMDApIHNpemUgMS42N3gyNSBb
c3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQorICAg
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzNjYuNjcsMjI1KSBzaXplIDEz
MS42N3g2NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgwLjAwLDEy
MC4wMCl9XQorICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwy
MjUpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDQxMCwyMjUpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7bGluZX0gYXQgKDQxNS44MywyMjUpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQogICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNDEwLDI0My4zMykgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MzUsMjMzLjMzKSBzaXplIDEzLjMzeDMxLjY3
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLC01LjAwKX1d
CiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MzUsMjMzLjMz
KSBzaXplIDEzLjMzeDMxLjY3CkBAIC0zNzYsMjAgKzM3NiwyMCBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICAgICAgICAgICAgY2h1bmsgMiAobWlkZGxlIGFuY2hvcikg
dGV4dCBydW4gMSBhdCAoMTIuNTAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zmc2V0IDIgd2lk
dGggMTUuMDA6ICIyIgogICAgICAgICAgICAgICAgICAgICBjaHVuayAzIChtaWRkbGUgYW5jaG9y
KSB0ZXh0IHJ1biAxIGF0ICgyMi41MCwtNS4wMCkgc3RhcnRPZmZzZXQgMiBlbmRPZmZzZXQgMyB3
aWR0aCAxNS4wMDogIjMiCiAgICAgICAgICAgICAgICAgICAgIGNodW5rIDQgKG1pZGRsZSBhbmNo
b3IpIHRleHQgcnVuIDEgYXQgKDMyLjUwLC01LjAwKSBzdGFydE9mZnNldCAzIGVuZE9mZnNldCA0
IHdpZHRoIDE1LjAwOiAiNCIKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNDIwLDQ3NS4wMCkgc2l6ZSAxMzV4NDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMC4wMCwyNzAuMDApfV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICg0MjYuNjcsNDc1LjAwKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLC0xMC4wMCl9XQotICAgICAgICAg
ICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDI2LjY3LDQ3NS4wMCkgc2l6ZSAx
My4zM3gzMS42NwotICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNDMy
LjUwLDQ3NS4wMCkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4w
MCwwLjAwIEwwLjAwLC0xNS4wMCJdCisgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDQyMCw0NzUpIHNpemUgMTM1eDQwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDAuMDAsMjcwLjAwKX1dCisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNDI2LjY3LDQ3NSkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCwtMTAuMDApfV0KKyAgICAgICAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQyNi42Nyw0NzUpIHNpemUgMTMuMzN4
MzEuNjcKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDQzMi41MCw0
NzUpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBM
MC4wMCwtMTUuMDAiXQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAo
NDI2LjY3LDQ5My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBM
LTQuMDAsNC4wMCBaIl0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg1MTAuMDAsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAwLC01LjAwKX1dCi0gICAgICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg1MTAuMDAsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3Cisg
ICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTEwLDQ4My4zMykgc2l6
ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg2
MC4wMCwtNS4wMCl9XQorICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBh
dCAoNTEwLDQ4My4zMykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgICBSZW5k
ZXJQYXRoIHtsaW5lfSBhdCAoNTE1LjgzLDQ4My4zMykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1MTAuMDAsNTAxLjY3KSBzaXplIDEzLjMzeDEz
LjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwt
NC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNTEwLDUwMS42Nykgc2l6ZSAxMy4zM3gxMy4z
MyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQu
MDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAg
ICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMiwtMTApIHNpemUgODF4MTYgY29udGFpbnMgMiBj
aHVuayhzKQogICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0
ICgwLC05KSBzaXplIDgxeDE2CiAgICAgICAgICAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBh
bmNob3IpIHRleHQgcnVuIDEgYXQgKDIuNTAsLTEwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAxIHdpZHRoIDE1LjAwOiAiMSIKICAgICAgICAgICAgICAgICAgICAgY2h1bmsgMiAobWlkZGxl
IGFuY2hvcikgdGV4dCBydW4gMSBhdCAoMzcuNTAsLTUuMDApIHN0YXJ0T2Zmc2V0IDEgZW5kT2Zm
c2V0IDQgd2lkdGggNDUuMDA6ICIyMzQiCi0gICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg0ODMuMzMsMTUuMDApIHNpemUgMjA2LjY3eDUzNSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgzNTAuMDAsNDAuMDApfV0KKyAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDQ4My4zMywxNSkgc2l6ZSAyMDYuNjd4NTM1IFt0cmFuc2Zvcm09e209KCgxLjAw
LDAuMDApKDAuMDAsMS4wMCkpIHQ9KDM1MC4wMCw0MC4wMCl9XQogICAgICAgICBSZW5kZXJTVkdU
ZXh0IHt0ZXh0fSBhdCAoLTM2LC0xNykgc2l6ZSA3MngxOCBjb250YWlucyAxIGNodW5rKHMpCiAg
ICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xNCkgc2l6ZSA3Mngx
OAogICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoLTM1
LjUwLC0xNy4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMTEgd2lkdGggNzEuMDA6ICJ0ZXh0
LWFuY2hvciIKQEAgLTQxMCwxOSArNDEwLDE5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1OTMuMzMsMTQxLjY3
KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDEwLjAwLDYwLjAwKX1dCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNTkzLjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7bGluZX0gYXQgKDU5OS4xNywxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU5My4zMywxNjAuMDApIHNpemUgMTMuMzN4
MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAw
LC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAg
ICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCwxNDEuNjcpIHNpemUgMTMuMzN4
MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsNjAu
MDApfV0KLSAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAuMDAs
MTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3CisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNTkzLjMzLDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNjEwLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCww
LjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCw2MC4wMCl9XQorICAgICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwxNDEuNjcpIHNpemUgMTMuMzN4MzEuNjcKICAgICAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MTUuODMsMTQxLjY3KSBzaXplIDEu
Njd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAw
Il0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAuMDAsMTYwLjAw
KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0g
W2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoi
XQorICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMCwxNjApIHNpemUg
MTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYyNi42NywxNDEuNjcpIHNpemUg
MTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAu
MDAsNjAuMDApfV0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2
MjYuNjcsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICBSZW5kZXJQ
YXRoIHtsaW5lfSBhdCAoNjMyLjUwLDE0MS42Nykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4
OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAg
ICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjI2LjY3LDE2MC4wMCkgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MjYuNjcsMTYwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4w
MCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge2d9IGF0ICg2NDMuMzMsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDQwLjAwLDYwLjAwKX1dCiAgICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjQzLjMzLDE0MS42Nykgc2l6
ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDY0
OS4xNywxNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNG
RjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAu
MDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVj
dH0gYXQgKDY0My4zMywxNjAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAw
LDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoNjQzLjMzLDE2MCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4w
MCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQg
KC01LDYwKSBzaXplIDQ1eDExIGNvbnRhaW5zIDQgY2h1bmsocykKICAgICAgICAgICAgICAgICBS
ZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTkpIHNpemUgNDV4MTEKICAgICAgICAg
ICAgICAgICAgIGNodW5rIDEgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKC01LjAwLDYwLjAw
KSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIKQEAgLTQzMiwxOSAr
NDMyLDE5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICg1OTMuMzMsMTkxLjY3KSBzaXplIDEzLjMzeDMxLjY3IFt0
cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLDkwLjAwKX1dCiAg
ICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDE5MS42Nykg
c2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQg
KDU5OS4xNywxOTEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDU5My4zMywyMTAuMDApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0
LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNTkzLjMzLDIxMCkgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoNjc2LjY3LDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSg2MC4wMCw5MC4wMCl9XQogICAgICAgICAgICAgICAgIFJl
bmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY3Ni42NywxOTEuNjcpIHNpemUgMTMuMzN4MzEuNjcK
ICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2ODIuNTAsMTkxLjY3KSBz
aXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAs
LTE1LjAwIl0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2NzYuNjcs
MjEwLjAwKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4
RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0
LjAwIFoiXQorICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDY3Ni42Nywy
MTApIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19
XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAg
WiJdCiAgICAgICAgICAgICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgtNSw5MCkgc2l6ZSA2
NXgxMSBjb250YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLC05KSBzaXplIDY1eDExCiAgICAgICAgICAgICAgICAgICBjaHVu
ayAxIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgtNS4wMCw5MC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgMSB3aWR0aCAxNS4wMDogIjEiCiAgICAgICAgICAgICAgICAgICBjaHVuayAy
IChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgxNS4wMCw5MC4wMCkgc3RhcnRPZmZzZXQgMSBl
bmRPZmZzZXQgNCB3aWR0aCA0NS4wMDogIjIzNCIKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNDgzLjMzLDIyNS4wMCkgc2l6ZSAxODEuNjd4NjUgW3RyYW5zZm9ybT17
bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwxMjAuMDApfV0KLSAgICAgICAgICAg
ICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYuNjcsMjI1LjAwKSBzaXplIDEzLjMz
eDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsLTEw
LjAwKX1dCi0gICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYu
NjcsMjI1LjAwKSBzaXplIDEzLjMzeDMxLjY3Ci0gICAgICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge2xpbmV9IGF0ICg1ODIuNTAsMjI1LjAwKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4
RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KKyAgICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNDgzLjMzLDIyNSkgc2l6ZSAxODEuNjd4NjUgW3RyYW5z
Zm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwxMjAuMDApfV0KKyAgICAg
ICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1NzYuNjcsMjI1KSBzaXplIDEz
LjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAs
LTEwLjAwKX1dCisgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1
NzYuNjcsMjI1KSBzaXplIDEzLjMzeDMxLjY3CisgICAgICAgICAgICAgICAgICAgIFJlbmRlclBh
dGgge2xpbmV9IGF0ICg1ODIuNTAsMjI1KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZd
fV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU3Ni42NywyNDMuMzMpIHNpemUgMTMuMzN4MTMuMzMgW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0
LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCiAgICAgICAgICAgICAgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjAxLjY3LDIzMy4zMykgc2l6ZSAxMy4zM3gzMS42NyBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCwtNS4wMCl9XQog
ICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjAxLjY3LDIzMy4z
Mykgc2l6ZSAxMy4zM3gzMS42NwpAQCAtNDY2LDEwICs0NjYsMTAgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg1OTMuMzMsMjc1KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg1OTkuMTcsMjc1KSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5cGU9
U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4
RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDU5My4zMywyOTMuMzMpIHNpemUgMTMuMzN4MTMuMzMg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAw
IEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLjAwLDI4My4zMykgc2l6ZSAxMy4zM3gzMS42
NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgyMC4wMCwtNS4wMCl9
XQotICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjEwLjAwLDI4
My4zMykgc2l6ZSAxMy4zM3gzMS42NworICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5l
ciB7Z30gYXQgKDYxMCwyODMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTUuMDApfV0KKyAgICAgICAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMCwyODMuMzMpIHNpemUgMTMuMzN4MzEuNjcK
ICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDYxNS44MywyODMuMzMp
IHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2Zp
bGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4w
MCwtMTUuMDAiXQotICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoNjEw
LjAwLDMwMS42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
ODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQu
MDAsNC4wMCBaIl0KKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYx
MCwzMDEuNjcpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAw
LDQuMDAgWiJdCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjI2
LjY3LDMwMCkgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgzMC4wMCw1LjAwKX1dCiAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICg2MjYuNjcsMzAwKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAg
ICAgICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MzIuNTAsMzAwKSBzaXplIDEuNjd4MjUgW3N0
cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KQEAgLTQ4
OSwxOCArNDg5LDE4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAg
ICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDMyNSkgc2l6ZSAxMy4zM3gz
MS42NwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTk5LjE3LDMy
NSkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEww
LjAwLC0xNS4wMCJdCiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg1
OTMuMzMsMzQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwt
NC4wMCw0LjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDYxMC4wMCwzMzMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTUuMDApfV0KLSAgICAgICAgICAgICAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCwzMzMuMzMpIHNpemUgMTMuMzN4MzEuNjcKKyAg
ICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsMzMzLjMzKSBzaXpl
IDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDIw
LjAwLC01LjAwKX1dCisgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICg2MTAsMzMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICAgIFJlbmRl
clBhdGgge2xpbmV9IGF0ICg2MTUuODMsMzMzLjMzKSBzaXplIDEuNjd4MjUgW3N0cm9rZT17W3R5
cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4
ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAgICAgICAg
ICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMC4wMCwzNTEuNjcpIHNpemUgMTMuMzN4MTMu
MzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00
LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCi0gICAgICAgICAgICAg
ICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjM1LjAwLDM1MCkgc2l6ZSAxMy4zM3gzMS42
NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgzNS4wMCw1LjAwKX1d
Ci0gICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MzUuMDAsMzUw
KSBzaXplIDEzLjMzeDMxLjY3CisgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICg2MTAsMzUxLjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAw
IEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDYzNSwzNTApIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCko
MC4wMCwxLjAwKSkgdD0oMzUuMDAsNS4wMCl9XQorICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoNjM1LDM1MCkgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjQwLjgzLDM1MCkgc2l6ZSAxLjY3eDI1IFtz
dHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAg
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MzUuMDAsMzY4LjMzKSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQotICAg
ICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDY2MC4wMCwzNTguMzMpIHNp
emUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0o
NTAuMDAsMTAuMDApfV0KLSAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDY2MC4wMCwzNTguMzMpIHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYzNSwzNjguMzMpIHNpemUgMTMuMzN4MTMuMzMgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00LjAwLC00LjAwIEw0LjAw
LC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAgICAgICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoNjYwLDM1OC4zMykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNm
b3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSg1MC4wMCwxMC4wMCl9XQorICAgICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNjYwLDM1OC4zMykgc2l6ZSAx
My4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNjY1
LjgzLDM1OC4zMykgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZG
MDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4w
MCwwLjAwIEwwLjAwLC0xNS4wMCJdCi0gICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3Jl
Y3R9IGF0ICg2NjAuMDAsMzc2LjY3KSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4w
MCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHty
ZWN0fSBhdCAoNjYwLDM3Ni42Nykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAs
NC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0
fSBhdCAoLTI1LC0xMCkgc2l6ZSA0NXgzMSBjb250YWlucyAyIGNodW5rKHMpCiAgICAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsLTkpIHNpemUgNDV4MzEK
ICAgICAgICAgICAgICAgICAgICAgY2h1bmsgMSAoZW5kIGFuY2hvcikgdGV4dCBydW4gMSBhdCAo
LTUuMDAsLTEwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAxIHdpZHRoIDE1LjAwOiAiMSIK
QEAgLTUyMiwxMCArNTIyLDEwIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDQyNSkgc2l6ZSAx
My4zM3gzMS42NwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtsaW5lfSBhdCAoNTk5
LjE3LDQyNSkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAw
MF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNMC4wMCww
LjAwIEwwLjAwLC0xNS4wMCJdCiAgICAgICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9
IGF0ICg1OTMuMzMsNDQzLjMzKSBzaXplIDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0
LjAwIEwtNC4wMCw0LjAwIFoiXQotICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDYxMC4wMCw0MzMuMzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjAuMDAsLTUuMDApfV0KLSAgICAgICAgICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYxMC4wMCw0MzMuMzMpIHNpemUgMTMuMzN4MzEu
NjcKKyAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2MTAsNDMzLjMz
KSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDIwLjAwLC01LjAwKX1dCisgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICg2MTAsNDMzLjMzKSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge2xpbmV9IGF0ICg2MTUuODMsNDMzLjMzKSBzaXplIDEuNjd4MjUgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAg
ICAgICAgICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDYxMC4wMCw0NTEuNjcpIHNpemUgMTMu
MzN4MTMuMzMgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTS00
LjAwLC00LjAwIEw0LjAwLC00LjAwIEw0LjAwLDQuMDAgTC00LjAwLDQuMDAgWiJdCisgICAgICAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICg2MTAsNDUxLjY3KSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAg
ICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYyNi42Nyw0MzMuMzMpIHNpemUgMTMu
MzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMzAuMDAs
LTUuMDApfV0KICAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDYy
Ni42Nyw0MzMuMzMpIHNpemUgMTMuMzN4MzEuNjcKICAgICAgICAgICAgICAgICAgICAgUmVuZGVy
UGF0aCB7bGluZX0gYXQgKDYzMi41MCw0MzMuMzMpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4
ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQpAQCAtNTQwLDEwICs1NDAs
MTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgICAgICAgIGNo
dW5rIDIgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDUuMDAsLTUuMDApIHN0YXJ0T2Zmc2V0
IDEgZW5kT2Zmc2V0IDIgd2lkdGggMTUuMDA6ICIyIgogICAgICAgICAgICAgICAgICAgICBjaHVu
ayAzIChlbmQgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICgxNS4wMCwtNS4wMCkgc3RhcnRPZmZzZXQg
MiBlbmRPZmZzZXQgMyB3aWR0aCAxNS4wMDogIjMiCiAgICAgICAgICAgICAgICAgICAgIGNodW5r
IDQgKGVuZCBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDI1LjAwLC01LjAwKSBzdGFydE9mZnNldCAz
IGVuZE9mZnNldCA0IHdpZHRoIDE1LjAwOiAiNCIKLSAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoNTc1LDQ3NS4wMCkgc2l6ZSAxMTV4NDAgW3RyYW5zZm9ybT17bT0oKDEu
MDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwyNzAuMDApfV0KLSAgICAgICAgICAgICAgICBS
ZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg1OTMuMzMsNDc1LjAwKSBzaXplIDEzLjMzeDMxLjY3
IFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLC0xMC4wMCl9
XQotICAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDQ3
NS4wMCkgc2l6ZSAxMy4zM3gzMS42NwotICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRoIHts
aW5lfSBhdCAoNTk5LjE3LDQ3NS4wMCkgc2l6ZSAxLjY3eDI1IFtzdHJva2U9e1t0eXBlPVNPTElE
XSBbY29sb3I9I0ZGMDAwMF19XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1d
IFtkYXRhPSJNMC4wMCwwLjAwIEwwLjAwLC0xNS4wMCJdCisgICAgICAgICAgICAgIFJlbmRlclNW
R0NvbnRhaW5lciB7Z30gYXQgKDU3NSw0NzUpIHNpemUgMTE1eDQwIFt0cmFuc2Zvcm09e209KCgx
LjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDAuMDAsMjcwLjAwKX1dCisgICAgICAgICAgICAgICAg
UmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoNTkzLjMzLDQ3NSkgc2l6ZSAxMy4zM3gzMS42NyBb
dHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMC4wMCwtMTAuMDApfV0K
KyAgICAgICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDU5My4zMyw0NzUp
IHNpemUgMTMuMzN4MzEuNjcKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0g
YXQgKDU5OS4xNyw0NzUpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0i
TTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoNTkzLjMzLDQ5My4zMykgc2l6ZSAxMy4zM3gxMy4zMyBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAgTDQuMDAsLTQuMDAg
TDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICAgICAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICg2NzYuNjcsNDgzLjMzKSBzaXplIDEzLjMzeDMxLjY3IFt0cmFuc2Zvcm09
e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDYwLjAwLC01LjAwKX1dCiAgICAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg2NzYuNjcsNDgzLjMzKSBzaXplIDEz
LjMzeDMxLjY3CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10
ZXh0LTA2LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvdGV4dC90ZXh0LXRleHQtMDYtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQwNjk4
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy90ZXh0L3RleHQtdGV4dC0wNi10LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTEgKzYyLDExIEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MTkzLjMzLDE0MS42Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgwLjAwLC0xMC4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJTVkdD
b250YWluZXIge2d9IGF0ICgxOTMuMzMsMTQxLjY3KSBzaXplIDEzLjMzeDMxLjY3CiAgICAgICAg
ICAgICAgICAgUmVuZGVyUGF0aCB7bGluZX0gYXQgKDE5OS4xNywxNDEuNjcpIHNpemUgMS42N3gy
NSBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9Izg4ODhGRl19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQot
ICAgICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxOTMuMzMsMTYwLjAwKSBzaXpl
IDEzLjMzeDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9
Ik0tNC4wMCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQorICAg
ICAgICAgICAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxOTMuMzMsMTYwKSBzaXplIDEzLjMz
eDEzLjMzIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0tNC4w
MCwtNC4wMCBMNC4wMCwtNC4wMCBMNC4wMCw0LjAwIEwtNC4wMCw0LjAwIFoiXQogICAgICAgICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMjE4LjMzLDI0MS42Nykgc2l6ZSAxMy4zM3gz
MS42NwogICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjE4LjMzLDI0MS42
Nykgc2l6ZSAxMy4zM3gzMS42NyBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxNS4wMCw1MC4wMCl9XQogICAgICAgICAgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgyMTguMzMsMjQxLjY3KSBzaXplIDEzLjMzeDMxLjY3Ci0gICAgICAgICAgICAgICAgUmVu
ZGVyUGF0aCB7bGluZX0gYXQgKDIyNC4xNywyNDEuNjcpIHNpemUgMS42N3gyNSBbc3Ryb2tlPXtb
dHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMMC4wMCwtMTUuMDAiXQorICAgICAgICAgICAg
ICAgIFJlbmRlclBhdGgge2xpbmV9IGF0ICgyMjQuMTcsMjQxLjY3KSBzaXplIDEuNjd4MjUuMDAg
W3N0cm9rZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KICAg
ICAgICAgICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjE4LjMzLDI2MCkgc2l6ZSAxMy4z
M3gxMy4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNLTQu
MDAsLTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAg
ICBSZW5kZXJTVkdDb250YWluZXIge3VzZX0gYXQgKDIxOC4zMywxNTguMzMpIHNpemUgMTMuMzN4
MzEuNjcKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxOC4zMywxNTgu
MzMpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMTUuMDAsMC4wMCl9XQpAQCAtODIsNyArODIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI2OC4zMywx
OTEuNjcpIHNpemUgMTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oNDUuMDAsMjAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMjY4LjMzLDE5MS42Nykgc2l6ZSAxMy4zM3gzMS42NwogICAgICAgICAgICAgICAg
IFJlbmRlclBhdGgge2xpbmV9IGF0ICgyNzQuMTcsMTkxLjY3KSBzaXplIDEuNjd4MjUgW3N0cm9r
ZT17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSM4ODg4RkZdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDAuMDAsLTE1LjAwIl0KLSAgICAgICAg
ICAgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjY4LjMzLDIxMC4wMCkgc2l6ZSAxMy4zM3gx
My4zMyBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAs
LTQuMDAgTDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KKyAgICAgICAgICAg
ICAgICBSZW5kZXJQYXRoIHtyZWN0fSBhdCAoMjY4LjMzLDIxMCkgc2l6ZSAxMy4zM3gxMy4zMyBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jODg4OEZGXX1dIFtkYXRhPSJNLTQuMDAsLTQuMDAg
TDQuMDAsLTQuMDAgTDQuMDAsNC4wMCBMLTQuMDAsNC4wMCBaIl0KICAgICAgICAgICBSZW5kZXJT
VkdDb250YWluZXIge3VzZX0gYXQgKDI5My4zMywyMDguMzMpIHNpemUgMTMuMzN4MzEuNjcKICAg
ICAgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDI5My4zMywyMDguMzMpIHNpemUg
MTMuMzN4MzEuNjcgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNjAu
MDAsMzAuMDApfV0KICAgICAgICAgICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMjkz
LjMzLDIwOC4zMykgc2l6ZSAxMy4zM3gzMS42NwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3N2Zy90ZXh0L3RleHQtdHJlZi0wMS1iLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdGV4dC10cmVmLTAxLWItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA0MDY5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4
dC90ZXh0LXRyZWYtMDEtYi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0KICAgICAgICAgUmVuZGVyU1ZHSW5saW5lIHt0cmVmfSBhdCAoMCwwKSBzaXplIDB4MAogICAg
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAg
IFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMjAuODMsMzA0LjE3KSBzaXplIDQzNXgzOC4zMyBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik03My4wMCwxODMuMDAg
TDMzMy4wMCwxODMuMDAgTDMzMy4wMCwyMDUuMDAgTDczLjAwLDIwNS4wMCBaIl0KKyAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICgxMjAuODMsMzA0LjE3KSBzaXplIDQzNS4wMHgzOC4zMyBbc3Ry
b2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW2RhdGE9Ik03My4wMCwxODMuMDAg
TDMzMy4wMCwxODMuMDAgTDMzMy4wMCwyMDUuMDAgTDczLjAwLDIwNS4wMCBaIl0KICAgICAgIFJl
bmRlclNWR1RleHQge3RleHR9IGF0ICg3MywyMTcpIHNpemUgMTU0eDE0IGNvbnRhaW5zIDEgY2h1
bmsocykKICAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xMSkgc2l6
ZSAxNTR4MTQKICAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDEgYXQgKDczLjAwLDIxNy4wMCkg
c3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgMzQgd2lkdGggMTU0LjAwOiAiJ3RyZWYnIHRvIGEgc3Ry
aW5nIGluIGFub3RoZXIgZmlsZSIKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDQwNjk4KQorKysgTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3ZnCSh3b3JraW5nIGNvcHkpCkBA
IC0xNCw3ICsxNCw3IEBACiAgICAgICAgICAgICBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRy
YW5zZm9ybVRvRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVkUmVjdCIpKTsKICAg
ICAgICAgICAgIGlmIChjdG0uYS50b0ZpeGVkKDMpID09IDAuMzU0ICYmIGN0bS5iLnRvRml4ZWQo
MykgPT0gLTAuMzU0ICYmCiAgICAgICAgICAgICAgICAgY3RtLmMudG9GaXhlZCgzKSA9PSAwLjM1
NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09IDAuMzU0ICYmCi0gICAgICAgICAgICAgICAgIGN0bS5l
LnRvRml4ZWQoMykgPT0gLTEwNy4wNzEgJiYgY3RtLmYudG9GaXhlZCgxNSkgPT0gMC4wKSB7Cisg
ICAgICAgICAgICAgICAgIGN0bS5lLnRvRml4ZWQoMykgPT0gLTEwNy4wNzEgJiYgY3RtLmYudG9G
aXhlZCg4KSA9PSAwLjApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAg
IHZhciBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZ3JvdXAwIikpOwogICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7
Cg==
</data>
<flag name="review"
          id="13260"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>