<?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>124354</bug_id>
          
          <creation_ts>2013-11-14 07:55:37 -0800</creation_ts>
          <short_desc>Web Inspector: New color picker</short_desc>
          <delta_ts>2013-11-18 15:39:02 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950653</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 07:55:37 -0800</bug_when>
    <thetext>The existing color picker doesn&apos;t match the rest of the user interface very well, this task covers adding a new color picker look and functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950654</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-11-14 07:55:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/15469527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950655</commentid>
    <comment_count>2</comment_count>
      <attachid>216936</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 07:55:58 -0800</bug_when>
    <thetext>Created attachment 216936
Screenshot of new color picker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950660</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-14 08:05:16 -0800</bug_when>
    <thetext>Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950670</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 08:18:32 -0800</bug_when>
    <thetext>This is only a start, some upcoming features are tracked elsewhere:

- http://webkit.org/b/124355: color wheel should support Retina displays
- http://webkit.org/b/124356: color picker should feature an editable CSS value
- http://webkit.org/b/124357: color picker should allow picking a color for any pixel on screen
- http://webkit.org/b/124358: color picker should suggest swatches to use based on edited property and colors used in page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950682</commentid>
    <comment_count>5</comment_count>
      <attachid>216942</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 08:44:04 -0800</bug_when>
    <thetext>Created attachment 216942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950699</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 09:12:48 -0800</bug_when>
    <thetext>A couple more related tasks:

http://webkit.org/b/124363: contextual menu on hover for actionable tokens
http://webkit.org/b/124364: allow editing of colors in CSS resources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950730</commentid>
    <comment_count>7</comment_count>
      <attachid>216942</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-11-14 09:46:40 -0800</bug_when>
    <thetext>Comment on attachment 216942
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Color.js:843
&gt; +    var min = Math.min(Math.min(r, g), b),
&gt; +        max = Math.max(Math.max(r, g), b),
&gt; +        delta = max - min;

We prefer multiple var declarations and not stringing them.

&gt; Source/WebInspectorUI/UserInterface/Color.js:847
&gt; +    var v = max,
&gt; +        s,
&gt; +        h;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Color.js:849
&gt; +    if (max == min)

===

&gt; Source/WebInspectorUI/UserInterface/Color.js:851
&gt; +    else if (max == r)

===

&gt; Source/WebInspectorUI/UserInterface/Color.js:853
&gt; +    else if (max == g)

===

&gt; Source/WebInspectorUI/UserInterface/Color.js:855
&gt; +    else if (max == b)

===

&gt; Source/WebInspectorUI/UserInterface/Color.js:862
&gt; +    if (max == 0)

===

&gt; Source/WebInspectorUI/UserInterface/Color.js:873
&gt; +        return [v,v,v];

Spaces after the commas.

&gt; Source/WebInspectorUI/UserInterface/ColorPicker.js:49
&gt; +    this._opacityPattern = &apos;url(&quot;data:image/svg+xml;base64,&apos; + btoa(&apos;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;6&quot; height=&quot;6&quot; fill=&quot;rgb(204, 204, 204)&quot;&gt;&lt;rect width=&quot;3&quot; height=&quot;3&quot; /&gt;&lt;rect x=&quot;3&quot; y=&quot;3&quot; width=&quot;3&quot; height=&quot;3&quot;/&gt;&lt;/svg&gt;&apos;) + &apos;&quot;)&apos;;

Neat! It would be nice it this was declared in CSS or at least in an SVG file. Then we could use it for the swatch background too.

&gt; Source/WebInspectorUI/UserInterface/ColorPicker.js:101
&gt; +        this._opacitySlider.value = color.alpha || 1;

This will cause a color that has alpha === 0 to turn into alpha === 1. Is that intended?

&gt; Source/WebInspectorUI/UserInterface/ColorPicker.js:139
&gt; +        this._opacitySlider.element.style.backgroundImage = &quot;linear-gradient(90deg, &quot; + transparent + &quot;, &quot; + tintedColor + &quot;), &quot; + this._opacityPattern;
&gt; +
&gt; +        this._brightnessSlider.element.style.backgroundImage = &quot;linear-gradient(90deg, black, &quot; + rawColor + &quot;)&quot;;

Grouping these two lines would read better, with the blank line before both.

&gt; Source/WebInspectorUI/UserInterface/ColorWheel.js:58
&gt; +        this._radius = dimension / 2 - 2;

A comment on why it is 2px smaller would be good.

&gt; Source/WebInspectorUI/UserInterface/Slider.js:125
&gt; +        return window.webkitConvertPointFromPageToNode(this._element, new WebKitPoint(event.pageX, event.pageY));

Add a comment why this is needed (since this class allows transforms).

&gt; Source/WebInspectorUI/UserInterface/Slider.js:131
&gt; +            this.__maxX = this._element.offsetWidth - WebInspector.Slider.KnobWidth / 2 - 1;

Comment on why it is 1 smaller.

&gt; Source/WebInspectorUI/WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:1
&gt; -ï»¿&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&gt; +&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

Might want to revert the BOM change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950773</commentid>
    <comment_count>8</comment_count>
      <attachid>216942</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-14 11:18:41 -0800</bug_when>
    <thetext>Comment on attachment 216942
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:73
&gt; +        the colors themslves being retrieved via the public properties tintedColor and rawColor.

Typo: &quot;themslves&quot; =&gt; &quot;themselves&quot;

&gt; Source/WebInspectorUI/UserInterface/Color.js:424
&gt; +        s = [
&gt; +            l += s *= l &lt; .5 ? l : 1 - l,
&gt; +            l - h % 1 * s * 2,
&gt; +            l -= s *= 2,
&gt; +            l,
&gt; +            l + h % 1 * s,
&gt; +            l + s
&gt; +        ];

Gross reuse of s (which was a float, and now changes to an array). I wonder if that might trip up our JITs (ggaren says maybe). I&apos;d prefer if you used a new local variable for the array instead of reusing s.

&gt; Source/WebInspectorUI/UserInterface/Color.js:835
&gt; +WebInspector.Color.rgb2hsv = function (r, g, b)

Style: no space in &quot;function (&quot;

&gt; Source/WebInspectorUI/UserInterface/Color.js:839
&gt; +    r = (r / 255);
&gt; +    g = (g / 255);
&gt; +    b = (b / 255);

/=?

&gt; Source/WebInspectorUI/UserInterface/Color.js:875
&gt; +    h = h / 60;

/=?

&gt; Source/WebInspectorUI/UserInterface/ColorWheel.js:220
&gt; +                var pos = (j * dimension + i) * 4;
&gt; +                var color = this._colorAtPointWithBrightness(i, j, 1);
&gt; +                if (!color)
&gt; +                    continue;
&gt; +                data[pos] = color.rgb[0];
&gt; +                data[pos + 1] = color.rgb[1];
&gt; +                data[pos + 2] = color.rgb[2];

You could move `var pos` after the if statement, to before line 218. It is not needed before the if.

Also, awesome color wheel generation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950835</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-14 13:57:40 -0800</bug_when>
    <thetext>(In reply to comment #8) 
&gt; Also, awesome color wheel generation.

Courtesy of Dean Jackson.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951003</commentid>
    <comment_count>10</comment_count>
      <attachid>217031</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-15 02:29:44 -0800</bug_when>
    <thetext>Created attachment 217031
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951013</commentid>
    <comment_count>11</comment_count>
      <attachid>217031</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 03:00:51 -0800</bug_when>
    <thetext>Comment on attachment 217031
Patch for landing

Clearing flags on attachment: 217031

Committed r159332: &lt;http://trac.webkit.org/changeset/159332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951014</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 03:00:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951842</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-18 15:39:02 -0800</bug_when>
    <thetext>Oo, this removes the &quot;Opacity:&quot; localized string. I&apos;ll update localizedStrings.js.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>216936</attachid>
            <date>2013-11-14 07:55:58 -0800</date>
            <delta_ts>2013-11-14 07:55:58 -0800</delta_ts>
            <desc>Screenshot of new color picker</desc>
            <filename>Screen Shot 2013-11-14 at 16.40.11.png</filename>
            <type>image/png</type>
            <size>53024</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">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
WmxUnE5cUzxI/Jh4t/iihKSEm8QBiXqJaUluSQvJJMlqyedSZCk9qR1SpVKPpPHSmtKh0ielB2RQ
GTWZIJlimX5ZVFZdNlj2pOzgRtxGrY0RG0s3jsiR5Azk4uSq5V7Jc8pby6fK18t/VBBT8FTIVehW
+KmophimWK74TIlVyVIpValJ6YuyjLKvcrHyIxWyiqnKHpUGlc+qsqr+qqdUn6ixqdmoHVBrV1tV
11Cnqteoz2iIaXhrlGiMaLJr2mse1LyrhdMy1Nqj1ay1pK2uHaN9VfuTjpxOqM4FnelNkpv8N5Vv
mtDdoEvRPas7vll4s/fmM5vH9UT0KHqleq/1RfX99Cv0pwykDUIMLhp8NFQ0pBreMFw00jbabdRm
jDE2M84y7jNhNXExOWHywnSDaaBptemcmZrZTrM2c5y5lXmu+YiFgIWvRZXFnKWG5W7LTiuSlZPV
CavX1jLWVOsmG9TG0ibP5rmtuG2Ebb0dsLOwy7Mbs5e032F/0wHvYO9Q7PDWUclxl2O3E5vTdqcL
TgvOhs45zs9cpFxiXdpdmVy9XKtcF92M3Y66jbsruO92v+/B6xHs0eBJ8HT1rPCc32KypWDLGy81
r3Sv4a2SWxO23tvGuy1s263tTNsp269547zdvC94r1DsKKWUeR8LnxKfOV8j32O+7/30/fL9Zvx1
/Y/6TwXoBhwNmA7UDcwLnAnSCyoMmg02Cj4R/DnEPOR0yGKoXej50LUwt7DacGK4d3hjBGtEaERn
pGBkQuRglGxUetT4Du0dBTvmqFbUimgkemt0Qww7/HjujZWK3R/7Km5zXHHc93jX+GsJLAkRCb2J
MomZiVNJpknndmJ3+u5s3yWya++uV7sNdp9NRpJ9ktv3iO5J2/MmxSylci/93tC9D1IVU4+mftvn
tq8pTSAtJW1iv9n+6nTGdGr6yAGdA6czsBnBGX2ZKpnHM39m+WX1ZCtmF2avHPQ92HNI6VDRobXD
AYf7ctRzTh3BH4k4Mpyrl1t5lOVo0tGJPJu8unzh/Kz8bwXbC+4VqhaePkZ/LPbYeJF1UcNxseNH
jq+cCDrxuNiwuLaEvySzZPGk38mhU/qnak4LnM4+/eNM8JknZ83O1pVKlBaW4cviyt6Wu5Z3n9M8
V1XBW5FdsXo+4vx4pWNlZ5VGVdUF/gs51Wh1bPXMRa+LA5eMLzXUyNWcreWszb4MLsdefnfF+8rw
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
dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRl
c2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMu
YWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zNDc8
L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MjQx
PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRm
OlJERj4KPC94OnhtcG1ldGE+CvbvOG0AAEAASURBVHgB7L0JvGVXVe6799nnnKpKNakmTYUEQkhD
CCRIwpVGGlGvD7ygXhvkp+GCSGePV0V9Pn2ggu2lUel5gHQKKERAE+lCQiJJJA2pdCSBQPpKUqkk
VZVqzjl7v/83vjnnXrs/p2pX6lQzszJrzDHHHGuuteb3rTHnWmufWutQ2n/OwHve857hnf3733rP
xR+6jO1z/+e8K794NcZXfOGbF//zJWxf/MD5//Lmz7oWsz5+tl/+47Xa2R9Uq6s/eHat9if3tGbO
fZ1U97da27/35dNrtQ9ev33me5+q1Wr/evP2VuuOt/9g7Qfffnlytf1q2pDedfWWPs7np5rdfOv1
37lvVsabz337G97wyQ2t1s6L3mUhXDx8PWrS5256SOWdN/31G/76+oeRNn7sDW94++c2RNvZhx7e
GdYpu+OruPhcNJDmvm/I9qaHW3dc9P43vOEz94VVVX74ps9hL69KD3/uzW/4TOzuO/TpzZ+89SF2
8pBcfugbrn37l74zu3Pj59Qzue3s87COhf/FlU3GRTyUHXBnoFXbtnnb3d/eeMzjjvax3XfH/Q/c
8eDQ45xaVat99BfP+OgvYnX6p65/15G1yef/6dV/8Mwz1talOvvtF5596tLJ2k9+/V1nP+OkZXb1
4z+XXS49/RdfV/vo2/7kx09fkVUL/nfX5ms/8eFLU7Plp/2v5z8J+dRnPPlL5/zLG9940S+8/rUn
LTv1uadNn3PdSc84aaXNppP1UT/zyz/5kXf9y59d/i8olp/1C7/zwpNSTe2By7668bEv/NnUoFZb
d/qzj/v8By644s6Xn/rUNV865+/f+M2n/a/X//eK/NxGrZb94mRyqjabfdVqd330LX+2i+L0aa94
xVn8e+ZzTr78Sx/+s4tqjz3rydOX3xqW09U+D+5Y2+nikeoQ1OLpzaGeDD8D733ve1/96lcPsXnH
/37vU578FAxmZ2fvu+e+ubm5Ylyv19cesXbp0qVorvzmlb/6loF+tm7eXFu5ZkXlZoFmZqpDtWPr
5u1dRrXN737e2nNfdv2/vvzUstPdEeZ2bXn44bnaktUrE+nIya5du2qN6WmQuuW8v3nLjf/tFb/x
3Ef3cz63fbsMl8lynmkXLabDNbupyH2bc0IbjdquLVvmDlu5rOxjLtp177TdZ1ztRsf6dmCvKyuX
fa/v69AO9voZmJycvOvuu45ZfwzC+ket77u/uzfeTW3fKitXrFnTVdurWbpijaglp60bPrTyDOKI
V1997p7RAQ4b0ytXVm7Q3gWQDWHXbRdfum36576/Lx2o8bJlFR5x2xE59FEsqnJRVgXogEQPq0pR
UJ+95j6H6W50rGMXj1hhYTFCCSh6hUesxwfzjt73vve96lWvGnIGbr3u9ovPuWTz/ZuH2Kxdt+aZ
P/H0x5x23BCbBVftuPfb331o7WNP7OCJBXuZRwPdjkFXuT3Po8neMSHmsuNeYe/s8BHyOuxeUe2C
KaDkCEWumh2S9+oZaDab1YlA776OffwxL/69/9mr79UM99NrP0IztfaxJ68lNq5MU0a02N1q5g6P
xG5Gds9EQO5U7CkWeX8U5sUIBfyMSORq7iqOvAj741nYX/rM6sDOnTv3l94ekP0sgDcRTExMIFRz
gFBs9sczMJoRDHWzALcAku9UCFRZ7yM/RAp7ewSwVvXwww/v7b0c8j/oDBSoFxZoRIIR+JdW1u/X
pDCCEQodmAW4R5FmZmYsFFLgXByig0HDaIz6HTt2bNmyZYwOD7la6BkwKTgogAVYoyVNTU2RAwHz
ArX7LymMWFnkwEjQgYmAkPWhhx568MGHHn54m56tHEqP7BmAgj3mHtndHtpbnzMACyxZsuSwSAgk
ni2YGswXJaDo03gRq4bFCIUOGIgwAhRw++23b9++/cgjjzzxxMdxKhbxcR2YXZudm5v086+9c3yt
Zqs+sZsLY3vSdixHM54OsFCm3rA2MKJTW7duve++++65556tW7etXbsGsEQzeEAnEFJwscvL5z//
+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
baEAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216942</attachid>
            <date>2013-11-14 08:44:04 -0800</date>
            <delta_ts>2013-11-15 02:29:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124354-20131114174402.patch</filename>
            <type>text/plain</type>
            <size>78599</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
Y2NlNjM4ODlhNjkwMThhMzdlODA2YjAyOTE4NGM5MWZkZjkzN2VmLi5iZWFlZjI0MDA3YTU0ZmZm
MmZkYmEyY2I2ZTM4ZjRlOTcwYTBjYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzYgQEAKKzIwMTMtMTEtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXcgY29sb3IgcGlja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQzNTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWdpbm5pbmcgb2YgYSBuZXcg
Y29sb3IgcGlja2VyLiBUaGUgZm9jdXMgb2YgdGhpcyBuZXcgcGlja2VyIGlzIHRvIGxldCB5b3Ug
cGljayBmcm9tCisgICAgICAgIGEgY29sb3Igd2hlZWwgYXMgdGhlIHByaW1hcnkgbWVhbiBvZiBj
b2xvciBwaWNraW5nLCB3aXRoIGFkZGl0aW9uYWwgc2xpZGVyIGNvbnRyb2xzIGZvcgorICAgICAg
ICB0aGUgYnJpZ2h0bmVzcyBhbmQgdGhlIG9wYWNpdHksIGJldHRlciBtYXRjaGluZyB0aGUgZGVm
YXVsdCBPUyBYIGNvbG9yIHBpY2tlci4gVGhpcyBpcyB0aGUKKyAgICAgICAgYmFzaXMgZm9yIGEg
Y29sb3IgcGlja2VyIHRoYXQgd2lsbCBldm9sdmUgdG8gc3VwcG9ydCB0aGUgZm9sbG93aW5nOgor
CisgICAgICAgIC0gZWRpdGFibGUgQ1NTIHZhbHVlIGxhYmVsIChodHRwOi8vd2Via2l0Lm9yZy9i
LzEyNDM1NikKKyAgICAgICAgLSBwaWNraW5nIGEgY29sb3IgYW55d2hlcmUgb24gc2NyZWVuICho
dHRwOi8vd2Via2l0Lm9yZy9iLzEyNDM1NykKKyAgICAgICAgLSBzd2F0Y2hlcyBiYXNlZCBvbiBv
dGhlciBjb2xvcnMgaW4gcGFnZSAoaHR0cDovL3dlYmtpdC5vcmcvYi8xMjQzNTgpCisKKyAgICAg
ICAgTm90ZSBhbHNvIHRoYXQgdGhlIGNvbG9yIHdoZWVsIGhhcyBub3QgYmVlbiB0ZXN0ZWQgb24g
UmV0aW5hIGRpc3BsYXlzCisgICAgICAgIChzZWUgaHR0cDovL3dlYmtpdC5vcmcvYi8xMjQzNTUp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9DU1NDb2xvclBpY2tlci5jc3M6IFJlbW92ZWQu
CisgICAgICAgICogVXNlckludGVyZmFjZS9DU1NDb2xvclBpY2tlci5qczogUmVtb3ZlZC4KKyAg
ICAgICAgUHJldmlvdXMgY29sb3IgcGlja2VyLCBub3cgcmVtb3ZlZCBpbiBmYXZvciBvZiB0aGUg
bmV3IENvbG9yUGlja2VyIGNsYXNzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgQWRvcHQgbmV3IGNsYXNzIG5hbWUg
Zm9yIHRoZSBjb2xvciBwaWNrZXIsIGFkZCBhIGxpdHRsZSBwYWRkaW5nIHRvIHRoZSBwb3BvdmVy
CisgICAgICAgIHRhcmdldCBmcmFtZSBhbmQgc2V0IHRoZSBiYXNlIGNvbG9yIGFmdGVyIHRoZSBw
aWNrZXIgaGFzIGJlZW4gcHJlc2VudGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db2xv
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX2hzbFRvUkdCKToK
KyAgICAgICAgU2ltcGxpZmllZCBtYXRoLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3Iu
cmdiMmhzdik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IuaHN2MnJnYik6CisgICAgICAg
IE5ldyB1dGlsaXRpZXMgdG8gZGVhbCB3aXRoIEhTViBjb2xvcnMgdXNlZCBpbiB0aGUgQ29sb3JX
aGVlbC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29sb3JQaWNrZXIuY3NzOiBBZGRlZC4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29sb3JQaWNrZXIuanM6IEFkZGVkLgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xv
clBpY2tlci5wcm90b3R5cGUuZ2V0IGVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bG9yUGlja2VyLnByb3RvdHlwZS5zZXQgYnJpZ2h0bmVzcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29sb3JQaWNrZXIucHJvdG90eXBlLnNldCBvcGFjaXR5KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db2xvclBpY2tlci5wcm90b3R5cGUuZ2V0IGNvbG9yKToKKworICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbG9yUGlja2VyLnByb3RvdHlwZS5zZXQgY29sb3IpOgorICAgICAgICBXZSBzZXQg
dGhlIF9kb250VXBkYXRlQ29sb3IgZmxhZyBoZXJlIHN1Y2ggdGhhdCB3ZSBkb24ndCBhdHRlbXB0
IHRvCisgICAgICAgIG5vdGlmeSBhYm91dCBhIGNvbG9yIGNoYW5nZSBhdCB0aGlzIHBvaW50IGlu
IGNhc2UgdGhlIHNlbGVjdGVkIGNvbG9yCisgICAgICAgIGlzIHRvbyBzYXR1cmF0ZWQgdG8gYmUg
cmVwcmVzZW50ZWQgYWNjdXJhdGVseSBvbiB0aGUgY29sb3Igd2hlZWwgYW5kCisgICAgICAgIHdl
IHdvdWxkIGVuZCB1cCBjaGFuZ2luZyB0aGUgY29sb3IgYnkgdmlydHVlIG9mIHByZXNlbnRpbmcg
dGhlIHBvcG92ZXIuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvclBpY2tlci5wcm90b3R5
cGUuY29sb3JXaGVlbENvbG9yRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xv
clBpY2tlci5wcm90b3R5cGUuc2xpZGVyVmFsdWVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbG9yUGlja2VyLnByb3RvdHlwZS5fdXBkYXRlQ29sb3IpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbG9yUGlja2VyLnByb3RvdHlwZS5fdXBkYXRlU2xpZGVycyk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuY3NzOiBBZGRlZC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQ29sb3JXaGVlbC5qczogQWRkZWQuCisgICAgICAgIFRoZSBDb2xvcldoZWVs
IG1ha2VzIHVzZSBvZiB0aHJlZSBkaWZmZXJlbnQgPGNhbnZhcz4gZWxlbWVudHMgdG8gZHJhdyBp
dHNlbGYuCisgICAgICAgIFRoZSAicmF3IiBjYW52YXMgaXMgdXNlZCB0byBkcmF3IHRoZSByYXcs
IHVuLXRpbnRlZCBjb2xvciB3aGVlbCB3aXRoIHBvb3IKKyAgICAgICAgYWxpYXNpbmcuIFRoZSAi
cmF3IiBjYW52YXMgaXMgb25seSBkcmF3biB3aGVuIHRoZSBkaW1lbnNpb24gaXMgY2hhbmdlZC4K
KyAgICAgICAgVGhlICJ0aW50ZWQiIGNhbnZhcyBpcyB1c2VkIHRvIGRyYXcgdGhlICJyYXciIGNh
bnZhcyB3aXRoIGEgYmxhY2sgb3ZlcmxheQorICAgICAgICBiYXNlZCBvbiB0aGUgYnJpZ2h0bmVz
cyBzZXQgb24gdGhlIHdoZWVsLiBUaGUgImZpbmFsIiBjYW52YXMsIHRoZSBvbmx5IDxjYW52YXM+
CisgICAgICAgIGVsZW1lbnQgYXR0YWNoZWQgdG8gdGhlIERPTSwgaXMgdXNlZCB0byBkcmF3IHRo
ZSAidGludGVkIiBjYW52YXMgaW50byBhIGNpcmNsZQorICAgICAgICBjbGlwIG9mIGEgc2xpZ2h0
bHkgbmFycm93ZXIgcmFkaXVzIHNvIHRoYXQgdGhlIGRyYXduIGltYWdlIGlzIHZpc3VhbGx5IG1v
cmUgcGxlYXNpbmcKKyAgICAgICAgYW5kIGNhbiBiZSBkaXNwbGF5ZWQgYWJvdmUgdmlydHVhbGx5
IGFueSBiYWNrZ3JvdW5kIGNvbG9yLgorCisgICAgICAgIFdlIHVzZSBjb2xvciBtYXRoIHRvIGdl
bmVyYXRlIHRoZSBjb2xvciB3aGVlbCwgY291cnRlc3kgb2YgRGVhbiBKYWNrc29uLCBhbmQgYWxz
byB0bworICAgICAgICBmaWd1cmUgb3V0IHdoZXJlIHRvIHBvc2l0aW9uIHRoZSBjcm9zc2hhaXIg
Zm9yIHRoZSBwcm92aWRlZCBiYXNlIGNvbG9yIGFzIHdlbGwgYXMKKyAgICAgICAgdGhlIG9wcG9z
aXRlIG9wZXJhdGlvbiB3aGVyZSB3ZSBnZXQgdGhlIGNvbG9yIHVuZGVyIHRoZSBtb3VzZSBwb2lu
dGVyLgorCisgICAgICAgIFRoZSBjb2xvciB3aGVlbCBmaXJlcyBhIHNpbmdsZSBkZWxlZ2F0ZSBt
ZXRob2QgY2FsbCBjb2xvcldoZWVsQ29sb3JEaWRDaGFuZ2UoY29sb3JXaGVlbCksCisgICAgICAg
IHRoZSBjb2xvcnMgdGhlbXNsdmVzIGJlaW5nIHJldHJpZXZlZCB2aWEgdGhlIHB1YmxpYyBwcm9w
ZXJ0aWVzIHRpbnRlZENvbG9yIGFuZCByYXdDb2xvci4KKworICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbG9yV2hlZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBl
LnNldCBkaW1lbnNpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90
eXBlLmdldCBlbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3Rv
dHlwZS5nZXQgYnJpZ2h0bmVzcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5w
cm90b3R5cGUuc2V0IGJyaWdodG5lc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hl
ZWwucHJvdG90eXBlLmdldCB0aW50ZWRDb2xvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29s
b3JXaGVlbC5wcm90b3R5cGUuc2V0IHRpbnRlZENvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db2xvcldoZWVsLnByb3RvdHlwZS5nZXQgcmF3Q29sb3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5faGFuZGxlTW91c2Vkb3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5faGFuZGxlTW91c2Vtb3ZlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5faGFuZGxlTW91c2V1cCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUuX3BvaW50SW5DaXJjbGVG
b3JFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUuX3Bv
aW50SW5DaXJjbGVGb3JFdmVudC5hbmdsZUZyb21DZW50ZXJUb1BvaW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5fcG9pbnRJbkNpcmNsZUZvckV2ZW50LnBv
aW50T25DaXJjdW1mZXJlbmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnBy
b3RvdHlwZS5fdXBkYXRlQ29sb3JGb3JNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db2xvcldoZWVsLnByb3RvdHlwZS5fc2V0Q3Jvc3NoYWlyUG9zaXRpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl90aW50ZWRDb2xvclRvUG9pbnRBbmRC
cmlnaHRuZXNzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5f
ZHJhd1Jhd0NhbnZhcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5
cGUuX2NvbG9yQXRQb2ludFdpdGhCcmlnaHRuZXNzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b2xvcldoZWVsLnByb3RvdHlwZS5fZHJhd1RpbnRlZENhbnZhcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUuX2RyYXcpOgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9JbWFnZXMvU2xpZGVyVGh1bWIucG5nOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0ltYWdlcy9TbGlkZXJUaHVtYkAyeC5wbmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iUHJlc3NlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iUHJlc3NlZEAyeC5wbmc6IEFkZGVkLgorICAg
ICAgICBTdXBwb3J0aW5nIGFydHdvcmsgZm9yIHRoZSBuZXcgU2xpZGVyIGNsYXNzLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgIFJlbW92ZSB0aGUgcHJldmlv
dXMgY29sb3IgcGlja2VyIGNsYXNzIGFuZCBhZGQgdGhlIG5ldyBvbmUsIGFzIHdlbGwgYXMgdGhl
IG5ldyBTbGlkZXIgY2xhc3MuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1NsaWRlci5jc3M6
IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9TbGlkZXIuanM6IEFkZGVkLgorICAg
ICAgICBOZXcgc2xpZGVyIHRvIG1hdGNoIHRoZSBsb29rIG9mIHRoZSBzbGlkZXJzIHVzZWQgaW4g
dGhlIG5hdGl2ZSBPUyBYIGNvbG9yIHBpY2tlci4gVGhlIG1vc3QKKyAgICAgICAgaW50ZXJlc3Rp
bmcgZmVhdHVyZSBvZiB0aGVzZSBzbGlkZXJzIGlzIHRoYXQgdGhleSBjYW4gYmUgdHJhbnNmb3Jt
ZWQgdXNpbmcgQ1NTIGluIGFueSB3YXkKKyAgICAgICAgYW5kIHdpbGwgc3RpbGwgb3BlcmF0ZSBj
b3JyZWN0bHkgZHVlIHRvIGFsd2F5cyBjb252ZXJ0aW5nIHRoZSBtb3VzZSBjb29yZGluYXRlcyBp
biB0aGUgcGFnZQorICAgICAgICBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUgY29vcmRpbmF0ZSBz
eXN0ZW0gbG9jYWwgdG8gdGhlIGJhY2tpbmcgZWxlbWVudC4gRm9yIGluc3RhbmNlLCB0aGUKKyAg
ICAgICAgY29sb3IgcGlja2VyIHVzZXMgdHdvIHNsaWRlcnMgdHJhbnNmb3JtZWQgdG8gYmUgZGlz
cGxheWVkIHZlcnRpY2FsbHkuCisKKyAgICAgICAgQXMgaXQgc3RhbmRzIHRoZXNlIHNsaWRlcyBv
bmx5IHN1cHBvcnQgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSBhbmQgZmlyZSBhIHNpbmdsZSBkZWxl
Z2F0ZQorICAgICAgICBtZXRob2QgY2FsbCBzbGlkZXJWYWx1ZURpZENoYW5nZShzbGlkZXIsIG5l
d1ZhbHVlKS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlNsaWRlcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5nZXQgZWxlbWVudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNsaWRlci5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlk
ZXIucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlkZXIu
cHJvdG90eXBlLl9oYW5kbGVNb3VzZWRvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNsaWRl
ci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlbW92ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xp
ZGVyLnByb3RvdHlwZS5faGFuZGxlTW91c2V1cCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xp
ZGVyLnByb3RvdHlwZS5fbG9jYWxQb2ludEZvckV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TbGlkZXIucHJvdG90eXBlLmdldCBfbWF4WCk6CisKKyAgICAgICAgKiBXZWJJbnNwZWN0b3JV
SS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2o6CisgICAgICAgICogV2ViSW5zcGVjdG9y
VUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgIFVwZGF0
ZSBmaWxlIG5hbWVzIGZvciB0aGUgbmV3IGNvbG9yIHBpY2tlci4KKwogMjAxMy0xMS0wMSAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBjdXN0b20g
RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQoKSBpbiBmYXZvciBvZiBuYXRpdmUgdmVyc2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNr
ZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNr
ZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDk2YWQxOTI3NTMyNTFkYjU4
NTQzOWY5ZDRhN2RhNGIwOWU4YjQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NTU0NvbG9y
UGlja2VyLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEJyaWFuIEdyaW5zdGVhZCBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIE1hdHQgSG9sZGVuIDxqZnRob2xkZW5AeWFob28uY29tPgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS5jb2xvcnBp
Y2tlci1jb250YWluZXIgewotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAgIHBhZGRpbmc6
IDVweDsKLSAgICB3aWR0aDogMjEycHg7Ci0gICAgei1pbmRleDogMTA7Ci19Ci0KLS5jb2xvcnBp
Y2tlci1maWxsLXBhcmVudCB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsK
LSAgICBsZWZ0OiAwOwotICAgIHJpZ2h0OiAwOwotICAgIGJvdHRvbTogMDsKLX0KLQotLmNvbG9y
cGlja2VyLXRvcCB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHdpZHRoOiAxMDAlOwot
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLQotLmNvbG9ycGlja2VyLWNvbG9yIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgYm90
dG9tOiAwOwotICAgIHdpZHRoOiAxNjBweDsKLSAgICBib3JkZXI6IDFweCBzb2xpZCAjRDBEMEQw
OwotfQotCi0uY29sb3JwaWNrZXItYm90dG9tIHNwYW4gewotICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKLX0KLQotLmNvbG9ycGlja2VyLXRleHQgewotICAgIGZvbnQtZmFtaWx5OiBtb25vc3Bh
Y2U7Ci0gICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7Ci19Ci0KLS5jb2xvcnBpY2tlci1j
b2xvci10ZXh0LXZhbHVlIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKLSAgICBsZWZ0OiAzcHg7Ci0gICAgdG9wOiAtNnB4OwotICAgIHdo
aXRlLXNwYWNlOiBwcmUtd3JhcDsKLX0KLQotLmNvbG9ycGlja2VyLWh1ZSB7Ci0gICAgcG9zaXRp
b246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICB3aWR0aDogMzBweDsKLSAgICByaWdodDog
MDsKLSAgICBib3R0b206IDA7Ci0gICAgLXdlYmtpdC1ib3gtcmVmbGVjdDogcmlnaHQgLTI4cHg7
Ci19Ci0KLS5jb2xvcnBpY2tlci1maWxsIHsKLSAgICAvKiBTYW1lIGFzIGNvbG9ycGlja2VyLWNv
bG9yIHdpZHRoIHRvIGZvcmNlIGFzcGVjdCByYXRpby4gKi8KLSAgICBtYXJnaW4tdG9wOiAxNjBw
eDsKLX0KLQotLmNvbG9ycGlja2VyLXJhbmdlLWNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJl
bGF0aXZlOwotICAgIHBhZGRpbmctYm90dG9tOiA1cHg7Ci19Ci0KLS5jb2xvcnBpY2tlci1yYW5n
ZS1jb250YWluZXIgKiB7Ci0gICAgZm9udC1zaXplOiAxMXB4OwotICAgIHZlcnRpY2FsLWFsaWdu
OiBtaWRkbGU7Ci19Ci0KLS5jb2xvcnBpY2tlci1yYW5nZS1jb250YWluZXIgbGFiZWwgewotICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7Ci19Ci0KLS5j
b2xvcnBpY2tlci1yYW5nZS1jb250YWluZXIgaW5wdXQgewotICAgIG1hcmdpbjogM3B4IDAgMCAz
cHg7Ci0gICAgd2lkdGg6IDEzN3B4OwotfQotCi0uY29sb3JwaWNrZXItc2F0dXJhdGlvbiB7Ci0g
ICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgd2hpdGUs
IHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOwotfQotCi0uY29sb3JwaWNrZXItdmFsdWUgewotICAg
IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgYmxhY2ss
IHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOwotfQotCi0uY29sb3JwaWNrZXItaHVlIHsKLSAgICBi
YWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZjAwMDAgMCUsICNmZmZm
MDAgMTclLCAjMDBmZjAwIDMzJSwgIzAwZmZmZiA1MCUsICMwMDAwZmYgNjclLCAjZmYwMGZmIDgz
JSwgI2ZmMDAwMCAxMDAlKTsKLX0KLQotLmNvbG9ycGlja2VyLWRyYWdnZXIgewotICAgIGJvcmRl
ci1yYWRpdXM6IDVweDsKLSAgICBoZWlnaHQ6IDVweDsKLSAgICB3aWR0aDogNXB4OwotICAgIGJv
cmRlcjogMXB4IHNvbGlkIHdoaXRlOwotICAgIGN1cnNvcjogcG9pbnRlcjsKLSAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgYmFja2dyb3VuZDog
YmxhY2s7Ci19Ci0KLS5jb2xvcnBpY2tlci1zbGlkZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICB0b3A6IDA7Ci0gICAgY3Vyc29yOiBwb2ludGVyOwotICAgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOwotICAgIGhlaWdodDogNHB4OwotICAgIGxlZnQ6IC0xcHg7Ci0gICAgcmlnaHQ6
IC0xcHg7Ci19Ci0KLS5jb2xvcnBpY2tlci1jb250YWluZXIgLnN3YXRjaCB7Ci0gICAgd2lkdGg6
IDIwcHg7Ci0gICAgaGVpZ2h0OjIwcHg7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0uY29sb3JwaWNr
ZXItY29udGFpbmVyIC5zd2F0Y2gtaW5uZXIgewotICAgIGhlaWdodDogMTAwJTsKLSAgICB3aWR0
aDogIDEwMCU7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIGJvcmRlcjogMXB4IHNv
bGlkIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC42KTsgCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9DU1NDb2xvclBpY2tlci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NTU0NvbG9yUGlja2VyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNDcyMWE5M2IyYjI1ODQ2Y2VhOWE0ZTIwMTYzZjEyMmYxZDNhYTRj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NTU0NvbG9yUGlja2VyLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNDA2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQnJpYW4gR3Jp
bnN0ZWFkIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgTWF0dCBI
b2xkZW4gPGpmdGhvbGRlbkB5YWhvby5jb20+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi1XZWJJbnNwZWN0b3IuQ1NTQ29sb3JQaWNrZXIg
PSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOwotCi0g
ICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRo
aXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gImNvbG9ycGlja2VyLWNvbnRhaW5lciI7Ci0KLSAgICB2
YXIgdG9wRWxlbWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJjb2xvcnBp
Y2tlci10b3AiKTsKLSAgICB0b3BFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiY29sb3JwaWNr
ZXItZmlsbCIpOwotCi0gICAgdmFyIHRvcElubmVyRWxlbWVudCA9IHRvcEVsZW1lbnQuY3JlYXRl
Q2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci10b3AtaW5uZXIgY29sb3JwaWNrZXItZmlsbC1wYXJl
bnQiKTsKLSAgICB0aGlzLl9kcmFnZ2VyRWxlbWVudCA9IHRvcElubmVyRWxlbWVudC5jcmVhdGVD
aGlsZCgiZGl2IiwgImNvbG9ycGlja2VyLWNvbG9yIik7Ci0gICAgdGhpcy5fZHJhZ0hlbHBlckVs
ZW1lbnQgPSB0aGlzLl9kcmFnZ2VyRWxlbWVudAotICAgICAgICAuY3JlYXRlQ2hpbGQoImRpdiIs
ICJjb2xvcnBpY2tlci1zYXR1cmF0aW9uIGNvbG9ycGlja2VyLWZpbGwtcGFyZW50IikKLSAgICAg
ICAgLmNyZWF0ZUNoaWxkKCJkaXYiLCAiY29sb3JwaWNrZXItdmFsdWUgY29sb3JwaWNrZXItZmls
bC1wYXJlbnQiKQotICAgICAgICAuY3JlYXRlQ2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci1kcmFn
Z2VyIik7Ci0KLSAgICB0aGlzLl9zbGlkZXJFbGVtZW50ID0gdG9wSW5uZXJFbGVtZW50LmNyZWF0
ZUNoaWxkKCJkaXYiLCAiY29sb3JwaWNrZXItaHVlIik7Ci0gICAgdGhpcy5fc2xpZGVIZWxwZXIg
PSB0aGlzLl9zbGlkZXJFbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiY29sb3JwaWNrZXItc2xp
ZGVyIik7Ci0KLSAgICB2YXIgcmFuZ2VDb250YWluZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNo
aWxkKCJkaXYiLCAiY29sb3JwaWNrZXItcmFuZ2UtY29udGFpbmVyIik7Ci0gICAgdmFyIGFscGhh
TGFiZWwgPSByYW5nZUNvbnRhaW5lci5jcmVhdGVDaGlsZCgibGFiZWwiLCAiY29sb3JwaWNrZXIt
dGV4dCIpOwotICAgIGFscGhhTGFiZWwudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIk9wYWNpdHk6Iik7Ci0KLSAgICB0aGlzLl9hbHBoYUVsZW1lbnQgPSByYW5nZUNvbnRhaW5l
ci5jcmVhdGVDaGlsZCgiaW5wdXQiLCAiY29sb3JwaWNrZXItcmFuZ2UiKTsKLSAgICB0aGlzLl9h
bHBoYUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInJhbmdlIik7Ci0gICAgdGhpcy5fYWxw
aGFFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwgIjAiKTsKLSAgICB0aGlzLl9hbHBoYUVsZW1l
bnQuc2V0QXR0cmlidXRlKCJtYXgiLCAiMTAwIik7Ci0gICAgdGhpcy5fYWxwaGFFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGFscGhhRHJhZy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0K
LSAgICB2YXIgZGlzcGxheUNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRp
diIsICJjb2xvcnBpY2tlci1ib3R0b20iKTsKLQotICAgIHZhciBzd2F0Y2hFbGVtZW50ID0gZGlz
cGxheUNvbnRhaW5lci5jcmVhdGVDaGlsZCgic3BhbiIsICJzd2F0Y2giKTsKLSAgICB0aGlzLl9z
d2F0Y2hJbm5lckVsZW1lbnQgPSBzd2F0Y2hFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgInN3
YXRjaC1pbm5lciIpOwotICAgIAotICAgIHN3YXRjaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBjb2xvclN3YXRjaENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotCi0gICAgdGhp
cy5fZGlzcGxheUVsZW1lbnQgPSBkaXNwbGF5Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJzcGFuIiwg
ImNvbG9ycGlja2VyLXRleHQgY29sb3JwaWNrZXItY29sb3ItdGV4dC12YWx1ZSIpOwotCi0gICAg
bWFrZURyYWdnYWJsZSh0aGlzLl9zbGlkZXJFbGVtZW50LCBodWVEcmFnLmJpbmQodGhpcykpOwot
ICAgIG1ha2VEcmFnZ2FibGUodGhpcy5fZHJhZ2dlckVsZW1lbnQsIGNvbG9yRHJhZy5iaW5kKHRo
aXMpLCBjb2xvckRyYWdTdGFydC5iaW5kKHRoaXMpKTsKLQotICAgIGZ1bmN0aW9uIG1ha2VEcmFn
Z2FibGUoZWxlbWVudCwgb25tb3ZlLCBvbnN0YXJ0LCBvbnN0b3ApCi0gICAgewotICAgICAgICB2
YXIgZG9jID0gZG9jdW1lbnQ7Ci0gICAgICAgIHZhciBkcmFnZ2luZzsKLSAgICAgICAgdmFyIG9m
ZnNldDsKLSAgICAgICAgdmFyIHNjcm9sbE9mZnNldDsKLSAgICAgICAgdmFyIG1heEhlaWdodDsK
LSAgICAgICAgdmFyIG1heFdpZHRoOwotCi0gICAgICAgIGZ1bmN0aW9uIGNvbnN1bWUoZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZ1bmN0aW9uIG1vdmUoZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFk
cmFnZ2luZyB8fCAhb25tb3ZlKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAg
ICAgdmFyIGRyYWdYID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oZS5wYWdlWCAtIG9mZnNldC5sZWZ0
ICsgc2Nyb2xsT2Zmc2V0LmxlZnQsIG1heFdpZHRoKSk7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kg
PSBNYXRoLm1heCgwLCBNYXRoLm1pbihlLnBhZ2VZIC0gb2Zmc2V0LnRvcCArIHNjcm9sbE9mZnNl
dC50b3AsIG1heEhlaWdodCkpOwotCi0gICAgICAgICAgICBvbm1vdmUoZWxlbWVudCwgZHJhZ1gs
IGRyYWdZLCBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0YXJ0KGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlLmJ1dHRvbiAhPT0gMCB8fCBlLmN0cmxLZXkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZHJhZ2dpbmcpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAob25zdGFydCkKLSAgICAgICAgICAg
ICAgICBvbnN0YXJ0KGVsZW1lbnQsIGUpOwotCi0gICAgICAgICAgICBkcmFnZ2luZyA9IHRydWU7
Ci0gICAgICAgICAgICBtYXhIZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodDsKLSAgICAgICAg
ICAgIG1heFdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDsKLQotICAgICAgICAgICAgc2Nyb2xs
T2Zmc2V0ID0ge2xlZnQ6IDAsIHRvcDogMH07Ci0gICAgICAgICAgICB2YXIgYm91bmRpbmdSZWN0
ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIG9mZnNldCA9
IHtsZWZ0OiBib3VuZGluZ1JlY3QubGVmdCwgdG9wOiBib3VuZGluZ1JlY3QudG9wfTsKLQotICAg
ICAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IiwgY29uc3VtZSwgZmFs
c2UpOwotICAgICAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGNvbnN1
bWUsIGZhbHNlKTsKLSAgICAgICAgICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUi
LCBtb3ZlLCBmYWxzZSk7Ci0gICAgICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1
cCIsIHN0b3AsIGZhbHNlKTsKLQotICAgICAgICAgICAgbW92ZShlKTsKLSAgICAgICAgICAgIGNv
bnN1bWUoZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdG9wKGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmICghZHJhZ2dpbmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLCBjb25z
dW1lLCBmYWxzZSk7Ci0gICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ3N0
YXJ0IiwgY29uc3VtZSwgZmFsc2UpOwotICAgICAgICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIG1vdmUsIGZhbHNlKTsKLSAgICAgICAgICAgIGRvYy5yZW1vdmVFdmVu
dExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcCwgZmFsc2UpOwotCi0gICAgICAgICAgICBpZiAob25z
dG9wKQotICAgICAgICAgICAgICAgIG9uc3RvcChlbGVtZW50LCBlKTsKLQotICAgICAgICAgICAg
ZHJhZ2dpbmcgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vkb3duIiwgc3RhcnQsIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBodWVEcmFnKGVsZW1lbnQsIGRyYWdYLCBkcmFnWSkKLSAgICB7Ci0gICAgICAgIHRoaXMuaHN2
WzBdID0gZHJhZ1kgLyB0aGlzLnNsaWRlSGVpZ2h0OwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZURp
c3BsYXkodHJ1ZSk7Ci0gICAgfQotCi0gICAgdmFyIGluaXRpYWxIZWxwZXJPZmZzZXQ7Ci0KLSAg
ICBmdW5jdGlvbiBjb2xvckRyYWdTdGFydChlbGVtZW50LCBkcmFnWCwgZHJhZ1kpCi0gICAgewot
ICAgICAgICBpbml0aWFsSGVscGVyT2Zmc2V0ID0ge3g6IHRoaXMuX2RyYWdIZWxwZXJFbGVtZW50
Lm9mZnNldExlZnQsIHk6IHRoaXMuX2RyYWdIZWxwZXJFbGVtZW50Lm9mZnNldFRvcH07Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gY29sb3JEcmFnKGVsZW1lbnQsIGRyYWdYLCBkcmFnWSwgZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHsKLSAgICAgICAgICAgIGlmIChN
YXRoLmFicyhkcmFnWCAtIGluaXRpYWxIZWxwZXJPZmZzZXQueCkgPj0gTWF0aC5hYnMoZHJhZ1kg
LSBpbml0aWFsSGVscGVyT2Zmc2V0LnkpKQotICAgICAgICAgICAgICAgIGRyYWdZID0gaW5pdGlh
bEhlbHBlck9mZnNldC55OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGRyYWdY
ID0gaW5pdGlhbEhlbHBlck9mZnNldC54OwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5oc3Zb
MV0gPSBkcmFnWCAvIHRoaXMuZHJhZ1dpZHRoOwotICAgICAgICB0aGlzLmhzdlsyXSA9ICh0aGlz
LmRyYWdIZWlnaHQgLSBkcmFnWSkgLyB0aGlzLmRyYWdIZWlnaHQ7Ci0KLSAgICAgICAgdGhpcy5f
dXBkYXRlRGlzcGxheSh0cnVlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhbHBoYURyYWcoKQot
ICAgIHsKLSAgICAgICAgdGhpcy5oc3ZbM10gPSB0aGlzLl9hbHBoYUVsZW1lbnQudmFsdWUgLyAx
MDA7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheSh0cnVlKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBjb2xvclN3YXRjaENsaWNrZWQoKQotICAgIHsKLSAgICAgICAgLy8gQnkgY2hhbmdp
bmcgdGhpcyB2YWx1ZSwgdGhlIG5ldyBjb2xvciBmb3JtYXQKLSAgICAgICAgLy8gd2lsbCBiZSBw
cm9wYWdhdGVkIGRvd24gdG8gYW55IGxpc3RlbmVycyBhZnRlciB0aGUgVUkgaXMgdXBkYXRlZC4K
LSAgICAgICAgdGhpcy5fb3JpZ2luYWxGb3JtYXQgPSB0aGlzLmNvbG9yLm5leHRGb3JtYXQoKTsK
LSAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheSh0cnVlKTsKLSAgICB9Ci19OwotCi1XZWJJbnNw
ZWN0b3IuT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVuY3Rpb25zKFdlYkluc3BlY3Rvci5DU1NDb2xv
clBpY2tlcik7Ci0KLVdlYkluc3BlY3Rvci5DU1NDb2xvclBpY2tlci5FdmVudCA9IHsKLSAgICBD
b2xvckNoYW5nZWQ6ICJjc3MtY29sb3ItcGlja2VyLWNvbG9yLWNoYW5nZWQiCi19OwotCi1XZWJJ
bnNwZWN0b3IuQ1NTQ29sb3JQaWNrZXIucHJvdG90eXBlID0gewotICAgIGNvbnRydWN0b3I6IFdl
Ykluc3BlY3Rvci5DU1NDb2xvclBpY2tlciwKLQotICAgIGdldCBlbGVtZW50KCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OwotICAgIH0sCi0KLSAgICBzZXQgY29sb3IoY29s
b3IpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX29yaWdpbmFsRm9ybWF0KSB7Ci0gICAgICAg
ICAgICB0aGlzLl9vcmlnaW5hbEZvcm1hdCA9IGNvbG9yLmZvcm1hdDsKLSAgICAgICAgICAgIGlm
IChjb2xvci5mb3JtYXQgPT09IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRIRVgpCi0g
ICAgICAgICAgICAgICAgdGhpcy5fb3JpZ2luYWxGb3JtYXQgPSBXZWJJbnNwZWN0b3IuQ29sb3Iu
Rm9ybWF0LkhFWDsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciByZ2JhID0gKGNvbG9yLnJnYmEg
fHwgY29sb3IucmdiKS5zbGljZSgwKTsKLQotICAgICAgICBpZiAocmdiYS5sZW5ndGggPT09IDMp
Ci0gICAgICAgICAgICByZ2JhWzNdID0gMTsKLQotICAgICAgICB0aGlzLmhzdiA9IFdlYkluc3Bl
Y3Rvci5DU1NDb2xvclBpY2tlci5yZ2JhVG9IU1ZBKHJnYmFbMF0sIHJnYmFbMV0sIHJnYmFbMl0s
IHJnYmFbM10pOwotICAgIH0sCi0KLSAgICBnZXQgY29sb3IoKQotICAgewotICAgICAgIHZhciBy
Z2JhID0gV2ViSW5zcGVjdG9yLkNTU0NvbG9yUGlja2VyLmhzdmFUb1JHQkEodGhpcy5oc3ZbMF0s
IHRoaXMuaHN2WzFdLCB0aGlzLmhzdlsyXSwgdGhpcy5oc3ZbM10pOwotICAgICAgIHZhciBjb2xv
cjsKLSAgICAgICBpZiAocmdiYVszXSA9PT0gMSkKLSAgICAgICAgICAgY29sb3IgPSBXZWJJbnNw
ZWN0b3IuQ29sb3IuZnJvbVJHQihyZ2JhWzBdLCByZ2JhWzFdLCByZ2JhWzJdKTsKLSAgICAgICBl
bHNlCi0gICAgICAgICAgIGNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0JBKHJnYmFb
MF0sIHJnYmFbMV0sIHJnYmFbMl0sIHJnYmFbM10pOwotICAgICAgIHZhciBjb2xvclZhbHVlID0g
Y29sb3IudG9TdHJpbmcodGhpcy5vdXRwdXRDb2xvckZvcm1hdCk7Ci0gICAgICAgaWYgKCFjb2xv
clZhbHVlKQotICAgICAgICAgICBjb2xvclZhbHVlID0gY29sb3IudG9TdHJpbmcoKTsgLy8gdGhp
cy5vdXRwdXRDb2xvckZvcm1hdCBjYW4gYmUgaW52YWxpZCBmb3IgY3VycmVudCBjb2xvciAoZS5n
LiAibmlja25hbWUiKS4KLSAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihjb2xv
clZhbHVlKTsKLSAgICB9LAotCi0gICAgZ2V0IG91dHB1dENvbG9yRm9ybWF0KCkKLSAgICB7Ci0g
ICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9vcmlnaW5hbEZvcm1hdDsKLQotICAgICAgICBpZiAo
dGhpcy5oc3ZbM10gPT09IDEpIHsKLSAgICAgICAgICAgIC8vIFNpbXBsaWZ5IHRyYW5zcGFyZW50
IGZvcm1hdHMsIGFuZCBkb24ndCBhbGxvdyBTaG9ydEhleC4KLSAgICAgICAgICAgIGlmIChmb3Jt
YXQgPT09IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCQSkKLSAgICAgICAgICAgICAgICBm
b3JtYXQgPSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlJHQjsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKGZvcm1hdCA9PT0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBKQotICAgICAgICAg
ICAgICAgIGZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSFNMOwotICAgICAgICAg
ICAgZWxzZSBpZiAoZm9ybWF0ID09PSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LlNob3J0SEVY
KQotICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuSEVY
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gRXZlcnl0aGluZyBleGNlcHQgSFNM
KEEpIHNob3VsZCBiZSByZXR1cm5lZCBhcyBSR0JBIGlmIHRyYW5zcGFyZW5jeSBpcyBpbnZvbHZl
ZC4KLSAgICAgICAgICAgIHZhciBwcmludGFibGVUcmFuc3BhcmVudEZvcm1hdHMgPSBbCi0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0xBLAotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCQQotICAgICAgICAgICAgXTsKLQotICAg
ICAgICAgICAgaWYgKHByaW50YWJsZVRyYW5zcGFyZW50Rm9ybWF0cy5pbmRleE9mKGZvcm1hdCkg
PT09IC0xKQotICAgICAgICAgICAgICAgIGZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3Jt
YXQuUkdCQTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmb3JtYXQ7Ci0gICAgfSwKLQot
ICAgIGdldCBjb2xvckh1ZU9ubHkoKQotICAgIHsKLSAgICAgICAgdmFyIHJnYmEgPSBXZWJJbnNw
ZWN0b3IuQ1NTQ29sb3JQaWNrZXIuaHN2YVRvUkdCQSh0aGlzLmhzdlswXSwgMSwgMSwgMSk7Ci0g
ICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEocmdiYVswXSwgcmdiYVsx
XSwgcmdiYVsyXSwgcmdiYVszXSk7Ci0gICAgfSwKLQotICAgIHNldCBkaXNwbGF5VGV4dCh0ZXh0
KQotICAgIHsKLSAgICAgICAgdGhpcy5fZGlzcGxheUVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0
OwotICAgIH0sCi0KLSAgICBzaG93bjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5z
bGlkZUhlaWdodCA9IHRoaXMuX3NsaWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0OwotICAgICAgICB0
aGlzLmRyYWdXaWR0aCA9IHRoaXMuX2RyYWdnZXJFbGVtZW50Lm9mZnNldFdpZHRoOwotICAgICAg
ICB0aGlzLmRyYWdIZWlnaHQgPSB0aGlzLl9kcmFnZ2VyRWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0g
ICAgICAgIHRoaXMuX2RyYWdIZWxwZXJFbGVtZW50SGVpZ2h0ID0gdGhpcy5fZHJhZ0hlbHBlckVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgdGhpcy5zbGlkZUhlbHBlckhlaWdodCA9
IHRoaXMuX3NsaWRlSGVscGVyLm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIHRoaXMuX3VwZGF0
ZURpc3BsYXkoKTsKLSAgICB9LAotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX3VwZGF0ZUhlbHBl
ckxvY2F0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGggPSB0aGlzLmhzdlsw
XTsKLSAgICAgICAgdmFyIHMgPSB0aGlzLmhzdlsxXTsKLSAgICAgICAgdmFyIHYgPSB0aGlzLmhz
dlsyXTsKLQotICAgICAgICAvLyBXaGVyZSB0byBzaG93IHRoZSBsaXR0bGUgY2lyY2xlIHRoYXQg
ZGlzcGxheXMgeW91ciBjdXJyZW50IHNlbGVjdGVkIGNvbG9yLgotICAgICAgICB2YXIgZHJhZ1gg
PSBzICogdGhpcy5kcmFnV2lkdGg7Ci0gICAgICAgIHZhciBkcmFnWSA9IHRoaXMuZHJhZ0hlaWdo
dCAtICh2ICogdGhpcy5kcmFnSGVpZ2h0KTsKLQotICAgICAgICBkcmFnWCA9IE1hdGgubWF4KC10
aGlzLl9kcmFnSGVscGVyRWxlbWVudEhlaWdodCwKLSAgICAgICAgICAgIE1hdGgubWluKHRoaXMu
ZHJhZ1dpZHRoIC0gdGhpcy5fZHJhZ0hlbHBlckVsZW1lbnRIZWlnaHQsIGRyYWdYIC0gdGhpcy5f
ZHJhZ0hlbHBlckVsZW1lbnRIZWlnaHQpKTsKLSAgICAgICAgZHJhZ1kgPSBNYXRoLm1heCgtdGhp
cy5fZHJhZ0hlbHBlckVsZW1lbnRIZWlnaHQsCi0gICAgICAgICAgICBNYXRoLm1pbih0aGlzLmRy
YWdIZWlnaHQgLSB0aGlzLl9kcmFnSGVscGVyRWxlbWVudEhlaWdodCwgZHJhZ1kgLSB0aGlzLl9k
cmFnSGVscGVyRWxlbWVudEhlaWdodCkpOwotCi0gICAgICAgIHRoaXMuX2RyYWdIZWxwZXJFbGVt
ZW50LnBvc2l0aW9uQXQoZHJhZ1gsIGRyYWdZKTsKLQotICAgICAgICAvLyBXaGVyZSB0byBzaG93
IHRoZSBiYXIgdGhhdCBkaXNwbGF5cyB5b3VyIGN1cnJlbnQgc2VsZWN0ZWQgaHVlLgotICAgICAg
ICB2YXIgc2xpZGVZID0gKGggKiB0aGlzLnNsaWRlSGVpZ2h0KSAtIHRoaXMuc2xpZGVIZWxwZXJI
ZWlnaHQ7Ci0gICAgICAgIHRoaXMuX3NsaWRlSGVscGVyLnN0eWxlLnRvcCA9IHNsaWRlWSArICJw
eCI7Ci0KLSAgICAgICAgdGhpcy5fYWxwaGFFbGVtZW50LnZhbHVlID0gdGhpcy5oc3ZbM10gKiAx
MDA7Ci0gICAgfSwKLQotICAgIF91cGRhdGVEaXNwbGF5OiBmdW5jdGlvbihjb2xvcldhc0NoYW5n
ZWQpCi0gICAgewotICAgICAgICB0aGlzLl91cGRhdGVIZWxwZXJMb2NhdGlvbnMoKTsKLQotICAg
ICAgICB2YXIgcmdiID0gKHRoaXMuY29sb3IucmdiYSB8fCB0aGlzLmNvbG9yLnJnYikuc2xpY2Uo
MCk7Ci0KLSAgICAgICAgaWYgKHJnYi5sZW5ndGggPT09IDMpCi0gICAgICAgICAgICByZ2JbM10g
PSAxOwotCi0gICAgICAgIHZhciByZ2JIdWVPbmx5ID0gdGhpcy5jb2xvckh1ZU9ubHkucmdiOwot
Ci0gICAgICAgIHZhciBmbGF0Q29sb3IgPSAicmdiKCIgKyByZ2JIdWVPbmx5WzBdICsgIiwgIiAr
IHJnYkh1ZU9ubHlbMV0gKyAiLCAiICsgcmdiSHVlT25seVsyXSArICIpIjsKLSAgICAgICAgdmFy
IGZ1bGxDb2xvciA9ICJyZ2JhKCIgKyByZ2JbMF0gKyAiLCAiICsgcmdiWzFdICsgIiwgIiArIHJn
YlsyXSArICIsICIgKyByZ2JbM10gKyAiKSI7Ci0KLSAgICAgICAgdGhpcy5fZHJhZ2dlckVsZW1l
bnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gZmxhdENvbG9yOwotICAgICAgICB0aGlzLl9zd2F0
Y2hJbm5lckVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gZnVsbENvbG9yOwotCi0gICAg
ICAgIHRoaXMuX2FscGhhRWxlbWVudC52YWx1ZSA9IHRoaXMuaHN2WzNdICogMTAwOwotCi0gICAg
ICAgIHZhciBjb2xvclZhbHVlID0gdGhpcy5jb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9y
Rm9ybWF0KTsKLSAgICAgICAgaWYgKCFjb2xvclZhbHVlKQotICAgICAgICAgICAgY29sb3JWYWx1
ZSA9IHRoaXMuY29sb3IudG9TdHJpbmcoKTsgLy8gdGhpcy5vdXRwdXRDb2xvckZvcm1hdCBjYW4g
YmUgaW52YWxpZCBmb3IgY3VycmVudCBjb2xvciAoZS5nLiAibmlja25hbWUiKS4KLQotICAgICAg
ICB0aGlzLmRpc3BsYXlUZXh0ID0gY29sb3JWYWx1ZTsKLQotICAgICAgICBpZiAoY29sb3JXYXND
aGFuZ2VkKQotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkNTU0NvbG9yUGlja2VyLkV2ZW50LkNvbG9yQ2hhbmdlZCwge2NvbG9yOiB0aGlzLmNv
bG9yfSk7Ci0gICAgfQotfTsKLQotV2ViSW5zcGVjdG9yLkNTU0NvbG9yUGlja2VyLmhzdmFUb1JH
QkEgPSBmdW5jdGlvbihoLCBzLCB2LCBhKQotewotICAgIHZhciByLCBnLCBiOwotCi0gICAgdmFy
IGkgPSBNYXRoLmZsb29yKGggKiA2KTsKLSAgICB2YXIgZiA9IGggKiA2IC0gaTsKLSAgICB2YXIg
cCA9IHYgKiAoMSAtIHMpOwotICAgIHZhciBxID0gdiAqICgxIC0gZiAqIHMpOwotICAgIHZhciB0
ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpOwotCi0gICAgc3dpdGNoKGkgJSA2KSB7Ci0gICAgY2Fz
ZSAwOgotICAgICAgICByID0gdiwgZyA9IHQsIGIgPSBwOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIDE6Ci0gICAgICAgIHIgPSBxLCBnID0gdiwgYiA9IHA7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgMjoKLSAgICAgICAgciA9IHAsIGcgPSB2LCBiID0gdDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAzOgotICAgICAgICByID0gcCwgZyA9IHEsIGIgPSB2OwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIDQ6Ci0gICAgICAgIHIgPSB0LCBnID0gcCwgYiA9IHY7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgNToKLSAgICAgICAgciA9IHYsIGcgPSBwLCBiID0gcTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIFtNYXRoLnJvdW5kKHIgKiAyNTUpLCBNYXRoLnJvdW5k
KGcgKiAyNTUpLCBNYXRoLnJvdW5kKGIgKiAyNTUpLCBhXTsKLX07Ci0KLVdlYkluc3BlY3Rvci5D
U1NDb2xvclBpY2tlci5yZ2JhVG9IU1ZBID0gZnVuY3Rpb24ociwgZywgYiwgYSkKLXsKLSAgICBy
ID0gciAvIDI1NTsKLSAgICBnID0gZyAvIDI1NTsKLSAgICBiID0gYiAvIDI1NTsKLQotICAgIHZh
ciBtYXggPSBNYXRoLm1heChyLCBnLCBiKTsKLSAgICB2YXIgbWluID0gTWF0aC5taW4ociwgZywg
Yik7Ci0gICAgdmFyIGg7Ci0gICAgdmFyIHM7Ci0gICAgdmFyIHYgPSBtYXg7Ci0KLSAgICB2YXIg
ZCA9IG1heCAtIG1pbjsKLSAgICBzID0gbWF4ID8gZCAvIG1heCA6IDA7Ci0KLSAgICBpZihtYXgg
PT09IG1pbikgewotICAgICAgICAvLyBBY2hyb21hdGljLgotICAgICAgICBoID0gMDsKLSAgICB9
IGVsc2UgewotICAgICAgICBzd2l0Y2gobWF4KSB7Ci0gICAgICAgIGNhc2UgcjoKLSAgICAgICAg
ICAgIGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIGc6Ci0gICAgICAgICAgICBoID0gKGIgLSByKSAvIGQgKyAyOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgYjoKLSAgICAgICAgICAgIGggPSAociAtIGcp
IC8gZCArIDQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBoIC89IDY7
Ci0gICAgfQotICAgIHJldHVybiBbaCwgcywgdiwgYV07Ci19OwotCi1XZWJJbnNwZWN0b3IuQ1NT
Q29sb3JQaWNrZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJv
dG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcwppbmRleCBkMTA5
YWFlMjM1NjcxYzA2NzA1ZGUwMmFkOTgzYzNlMDBjZTI4MTEyLi44ZDc2ZDEzZGUyNDYwYmYzYzg1
MWYxNTE2MDZiZWEzNzE1NDQyMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvci5qcwpAQCAtNzQzLDE5ICs3NDMsMjMgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIHRoaXMuX2NvbG9yUGlja2VyUG9wb3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3Zlcih0
aGlzKTsKIAotICAgICAgICAgICAgdmFyIGNvbG9yUGlja2VyID0gbmV3IFdlYkluc3BlY3Rvci5D
U1NDb2xvclBpY2tlcjsKLSAgICAgICAgICAgIGNvbG9yUGlja2VyLmNvbG9yID0gY29sb3I7Cisg
ICAgICAgICAgICB2YXIgY29sb3JQaWNrZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yUGlja2Vy
OwogCi0gICAgICAgICAgICBjb2xvclBpY2tlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5DU1NDb2xvclBpY2tlci5FdmVudC5Db2xvckNoYW5nZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICBjb2xvclBpY2tlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db2xv
clBpY2tlci5FdmVudC5Db2xvckNoYW5nZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAg
ICAgICAgdXBkYXRlQ29kZU1pcnJvci5jYWxsKHRoaXMsIGV2ZW50LmRhdGEuY29sb3IudG9TdHJp
bmcoKSk7CiAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwogCiAgICAgICAgICAgICB2YXIgYm91
bmRzID0gV2ViSW5zcGVjdG9yLlJlY3QucmVjdEZyb21DbGllbnRSZWN0KHN3YXRjaC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKSk7CisgICAgICAgICAgICBjb25zdCBwYWRkaW5nID0gMjsKKyAgICAg
ICAgICAgIGJvdW5kcy5vcmlnaW4ueCAtPSBwYWRkaW5nOworICAgICAgICAgICAgYm91bmRzLm9y
aWdpbi55IC09IHBhZGRpbmc7CisgICAgICAgICAgICBib3VuZHMuc2l6ZS53aWR0aCArPSBwYWRk
aW5nICogMjsKKyAgICAgICAgICAgIGJvdW5kcy5zaXplLmhlaWdodCArPSBwYWRkaW5nICogMjsK
IAogICAgICAgICAgICAgdGhpcy5fY29sb3JQaWNrZXJQb3BvdmVyLmNvbnRlbnQgPSBjb2xvclBp
Y2tlci5lbGVtZW50OwogICAgICAgICAgICAgdGhpcy5fY29sb3JQaWNrZXJQb3BvdmVyLnByZXNl
bnQoYm91bmRzLCBbV2ViSW5zcGVjdG9yLlJlY3RFZGdlLk1JTl9YXSk7CiAKLSAgICAgICAgICAg
IGNvbG9yUGlja2VyLnNob3duKCk7CisgICAgICAgICAgICBjb2xvclBpY2tlci5jb2xvciA9IGNv
bG9yOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29sb3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db2xvci5qcwppbmRleCA1YmNiMzU1YjRiNzZjNzQ2MWY5NWZhN2M2ZWUxZWVjOGE2
OTFmY2RlLi42NGZmODA4NGZlNGJhMjJkNGJhNzFmYmU2YmM1NTNmZTQ3MzE5YWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2xvci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2xvci5qcwpAQCAtNDEzLDQwICs0
MTMsMjAgQEAgV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHMg
PSBwYXJzZUZsb2F0KGhzbFsxXSkgLyAxMDA7CiAgICAgICAgIHZhciBsID0gcGFyc2VGbG9hdCho
c2xbMl0pIC8gMTAwOwogCi0gICAgICAgIGlmIChzIDwgMCkKLSAgICAgICAgICAgIHMgPSAwOwot
Ci0gICAgICAgIGlmIChsIDw9IDAuNSkKLSAgICAgICAgICAgIHZhciBxID0gbCAqICgxICsgcyk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhciBxID0gbCArIHMgLSAobCAqIHMpOwotCi0g
ICAgICAgIHZhciBwID0gMiAqIGwgLSBxOwotCi0gICAgICAgIHZhciB0ciA9IGggKyAoMSAvIDMp
OwotICAgICAgICB2YXIgdGcgPSBoOwotICAgICAgICB2YXIgdGIgPSBoIC0gKDEgLyAzKTsKLQot
ICAgICAgICB2YXIgciA9IE1hdGgucm91bmQoaHVlVG9SR0IocCwgcSwgdHIpICogMjU1KTsKLSAg
ICAgICAgdmFyIGcgPSBNYXRoLnJvdW5kKGh1ZVRvUkdCKHAsIHEsIHRnKSAqIDI1NSk7Ci0gICAg
ICAgIHZhciBiID0gTWF0aC5yb3VuZChodWVUb1JHQihwLCBxLCB0YikgKiAyNTUpOwotICAgICAg
ICByZXR1cm4gW3IsIGcsIGJdOwotCi0gICAgICAgIGZ1bmN0aW9uIGh1ZVRvUkdCKHAsIHEsIGgp
IHsKLSAgICAgICAgICAgIGlmIChoIDwgMCkKLSAgICAgICAgICAgICAgICBoICs9IDE7Ci0gICAg
ICAgICAgICBlbHNlIGlmIChoID4gMSkKLSAgICAgICAgICAgICAgICBoIC09IDE7Ci0KLSAgICAg
ICAgICAgIGlmICgoaCAqIDYpIDwgMSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcCArIChxIC0g
cCkgKiBoICogNjsKLSAgICAgICAgICAgIGVsc2UgaWYgKChoICogMikgPCAxKQotICAgICAgICAg
ICAgICAgIHJldHVybiBxOwotICAgICAgICAgICAgZWxzZSBpZiAoKGggKiAzKSA8IDIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogKCgyIC8gMykgLSBoKSAqIDY7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIHA7Ci0gICAgICAgIH0KKyAgICAg
ICAgaCAqPSA2OworICAgICAgICBzID0gWworICAgICAgICAgICAgbCArPSBzICo9IGwgPCAuNSA/
IGwgOiAxIC0gbCwKKyAgICAgICAgICAgIGwgLSBoICUgMSAqIHMgKiAyLAorICAgICAgICAgICAg
bCAtPSBzICo9IDIsCisgICAgICAgICAgICBsLAorICAgICAgICAgICAgbCArIGggJSAxICogcywK
KyAgICAgICAgICAgIGwgKyBzCisgICAgICAgIF07CisgICAgICAgIHJldHVybiBbCisgICAgICAg
ICAgICBNYXRoLnJvdW5kKHNbIH5+aCAgICAlIDYgXSAqIDI1NSksCisgICAgICAgICAgICBNYXRo
LnJvdW5kKHNbIChofDE2KSAlIDYgXSAqIDI1NSksCisgICAgICAgICAgICBNYXRoLnJvdW5kKHNb
IChofDgpICAlIDYgXSAqIDI1NSkKKyAgICAgICAgXTsKICAgICB9LAogCiAgICAgLyoqCkBAIC04
NTEsMyArODMxLDc2IEBAIFdlYkluc3BlY3Rvci5Db2xvci5BZHZhbmNlZE5pY2tOYW1lcyA9IHsK
ICAgICAicmdiYSgwLDAsMCwwKSI6IFtbMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwXSwgInRyYW5z
cGFyZW50Il0sCiAgICAgImhzbGEoMCwwLDAsMCkiOiBbWzAsIDAsIDAsIDBdLCBbMCwgMCwgMCwg
MF0sICJ0cmFuc3BhcmVudCJdLAogfTsKKworV2ViSW5zcGVjdG9yLkNvbG9yLnJnYjJoc3YgPSBm
dW5jdGlvbiAociwgZywgYikKK3sKKyAgICByID0gKHIgLyAyNTUpOworICAgIGcgPSAoZyAvIDI1
NSk7CisgICAgYiA9IChiIC8gMjU1KTsKKworICAgIHZhciBtaW4gPSBNYXRoLm1pbihNYXRoLm1p
bihyLCBnKSwgYiksCisgICAgICAgIG1heCA9IE1hdGgubWF4KE1hdGgubWF4KHIsIGcpLCBiKSwK
KyAgICAgICAgZGVsdGEgPSBtYXggLSBtaW47CisKKyAgICB2YXIgdiA9IG1heCwKKyAgICAgICAg
cywKKyAgICAgICAgaDsKKworICAgIGlmIChtYXggPT0gbWluKQorICAgICAgICBoID0gMDsKKyAg
ICBlbHNlIGlmIChtYXggPT0gcikKKyAgICAgICAgaCA9ICg2MCAqICgoZyAtIGIpIC8gZGVsdGEp
KSAlIDM2MDsKKyAgICBlbHNlIGlmIChtYXggPT0gZykKKyAgICAgICAgaCA9IDYwICogKChiIC0g
cikgLyBkZWx0YSkgKyAxMjA7CisgICAgZWxzZSBpZiAobWF4ID09IGIpCisgICAgICAgIGggPSA2
MCAqICgociAtIGcpIC8gZGVsdGEpICsgMjQwOworCisgICAgaWYgKGggPCAwKQorICAgICAgICBo
ICs9IDM2MDsKKworICAgIC8vIFNhdHVyYXRpb24KKyAgICBpZiAobWF4ID09IDApCisgICAgICAg
IHMgPSAwOworICAgIGVsc2UKKyAgICAgICAgcyA9IDEgLSAobWluL21heCk7CisKKyAgICByZXR1
cm4gW2gsIHMsIHZdOworfQorCitXZWJJbnNwZWN0b3IuQ29sb3IuaHN2MnJnYiA9IGZ1bmN0aW9u
IChoLCBzLCB2KQoreworICAgIGlmIChzID09PSAwKQorICAgICAgICByZXR1cm4gW3Ysdix2XTsK
KworICAgIGggPSBoIC8gNjA7CisgICAgdmFyIGkgPSBNYXRoLmZsb29yKGgpOworICAgIHZhciBk
YXRhID0gWworICAgICAgICB2ICogKDEgLSBzKSwKKyAgICAgICAgdiAqICgxIC0gcyAqIChoIC0g
aSkpLAorICAgICAgICB2ICogKDEgLSBzICogKDEgLSAoaCAtIGkpKSkKKyAgICBdOworICAgIHZh
ciByZ2I7CisKKyAgICBzd2l0Y2ggKGkpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIHJnYiA9IFt2
LCBkYXRhWzJdLCBkYXRhWzBdXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAg
ICByZ2IgPSBbZGF0YVsxXSwgdiwgZGF0YVswXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
MjoKKyAgICAgICAgcmdiID0gW2RhdGFbMF0sIHYsIGRhdGFbMl1dOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIDM6CisgICAgICAgIHJnYiA9IFtkYXRhWzBdLCBkYXRhWzFdLCB2XTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSA0OgorICAgICAgICByZ2IgPSBbZGF0YVsyXSwgZGF0YVswXSwg
dl07CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJnYiA9IFt2LCBkYXRh
WzBdLCBkYXRhWzFdXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJnYjsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9y
UGlja2VyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yUGlj
a2VyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MmI4NWE3NDAyZWRjZDMwZTAyMzEyODEwMzU5M2JiM2JlNWI2
NWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29sb3JQaWNrZXIuY3NzCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29sb3It
cGlja2VyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDI1NnB4OworICAg
IGhlaWdodDogMjEwcHg7CisgICAgcGFkZGluZzogNXB4OworfQorCisuY29sb3ItcGlja2VyID4g
KiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworfQorCisuY29sb3ItcGlja2VyID4gLnNsaWRl
ciB7CisgICAgdG9wOiA3cHg7CisgICAgd2lkdGg6IDE5NnB4OworICAgIC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKC0xMDAlKTsKKyAgICAtd2Via2l0LXRyYW5z
Zm9ybS1vcmlnaW46IDAgMDsKK30KKworLmNvbG9yLXBpY2tlciA+IC5icmlnaHRuZXNzIHsKKyAg
ICBsZWZ0OiAyMTVweDsKK30KKworLmNvbG9yLXBpY2tlciA+IC5vcGFjaXR5IHsKKyAgICBsZWZ0
OiAyMzhweDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbG9yUGlja2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29sb3JQaWNrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhhY2UxZTE3ZmFmNTgyM2Y1NzAzYjMyN2M0NjIy
ZGVjZGI1OWFiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbG9yUGlja2VyLmpzCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
V2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rv
ci5PYmplY3QuY2FsbCh0aGlzKTsKKworICAgIHRoaXMuX2NvbG9yV2hlZWwgPSBuZXcgV2ViSW5z
cGVjdG9yLkNvbG9yV2hlZWwoKTsKKyAgICB0aGlzLl9jb2xvcldoZWVsLmRlbGVnYXRlID0gdGhp
czsKKyAgICB0aGlzLl9jb2xvcldoZWVsLmRpbWVuc2lvbiA9IDIwMDsKKworICAgIHRoaXMuX2Jy
aWdodG5lc3NTbGlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNsaWRlcigpOworICAgIHRoaXMuX2Jy
aWdodG5lc3NTbGlkZXIuZGVsZWdhdGUgPSB0aGlzOworICAgIHRoaXMuX2JyaWdodG5lc3NTbGlk
ZXIuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJicmlnaHRuZXNzIik7CisKKyAgICB0aGlzLl9vcGFj
aXR5U2xpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TbGlkZXIoKTsKKyAgICB0aGlzLl9vcGFjaXR5
U2xpZGVyLmRlbGVnYXRlID0gdGhpczsKKyAgICB0aGlzLl9vcGFjaXR5U2xpZGVyLmVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgib3BhY2l0eSIpOworCisgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gImNv
bG9yLXBpY2tlciI7CisKKyAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbG9y
V2hlZWwuZWxlbWVudCk7CisgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9icmln
aHRuZXNzU2xpZGVyLmVsZW1lbnQpOworICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fb3BhY2l0eVNsaWRlci5lbGVtZW50KTsKKworICAgIHRoaXMuX29wYWNpdHlQYXR0ZXJuID0g
J3VybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwnICsgYnRvYSgnPHN2ZyB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGZpbGw9InJnYigy
MDQsIDIwNCwgMjA0KSI+PHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMyIgLz48cmVjdCB4PSIzIiB5
PSIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIi8+PC9zdmc+JykgKyAnIiknOworCisgICAgdGhpcy5f
Y29sb3IgPSAid2hpdGUiOworfTsKKworV2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyLkV2ZW50ID0g
eworICAgIENvbG9yQ2hhbmdlZDogImNzcy1jb2xvci1waWNrZXItY29sb3ItY2hhbmdlZCIKK307
CisKK1dlYkluc3BlY3Rvci5Db2xvclBpY2tlci5wcm90b3R5cGUgPSB7CisgICAgY29udHJ1Y3Rv
cjogV2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyLAorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9y
Lk9iamVjdC5wcm90b3R5cGUsCisKKyAgICAvLyBQdWJsaWMKKyAgICAKKyAgICBnZXQgZWxlbWVu
dCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAgICB9LAorICAgIAor
ICAgIHNldCBicmlnaHRuZXNzKGJyaWdodG5lc3MpCisgICAgeworICAgICAgICBpZiAoYnJpZ2h0
bmVzcyA9PT0gdGhpcy5fYnJpZ2h0bmVzcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB0aGlzLl9jb2xvcldoZWVsLmJyaWdodG5lc3MgPSBicmlnaHRuZXNzOworCisgICAgICAgIHRo
aXMuX3VwZGF0ZUNvbG9yKCk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNsaWRlcnModGhpcy5fY29s
b3JXaGVlbC5yYXdDb2xvciwgdGhpcy5fY29sb3JXaGVlbC50aW50ZWRDb2xvcik7CisgICAgfSwK
KyAgICAKKyAgICBzZXQgb3BhY2l0eShvcGFjaXR5KQorICAgIHsKKyAgICAgICAgaWYgKG9wYWNp
dHkgPT09IHRoaXMuX29wYWNpdHkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhp
cy5fb3BhY2l0eSA9IG9wYWNpdHk7CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yKCk7CisgICAg
fSwKKworICAgIGdldCBjb2xvcigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7
CisgICAgfSwKKworICAgIHNldCBjb2xvcihjb2xvcikKKyAgICB7CisgICAgICAgIHRoaXMuX2Rv
bnRVcGRhdGVDb2xvciA9IHRydWU7CisKKyAgICAgICAgdGhpcy5fY29sb3JXaGVlbC50aW50ZWRD
b2xvciA9IGNvbG9yOworICAgICAgICB0aGlzLl9icmlnaHRuZXNzU2xpZGVyLnZhbHVlID0gdGhp
cy5fY29sb3JXaGVlbC5icmlnaHRuZXNzOworCisgICAgICAgIHRoaXMuX29wYWNpdHlTbGlkZXIu
dmFsdWUgPSBjb2xvci5hbHBoYSB8fCAxOworICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJzKHRo
aXMuX2NvbG9yV2hlZWwucmF3Q29sb3IsIGNvbG9yKTsKKworICAgICAgICBkZWxldGUgdGhpcy5f
ZG9udFVwZGF0ZUNvbG9yOworICAgIH0sCisKKyAgICBjb2xvcldoZWVsQ29sb3JEaWRDaGFuZ2U6
IGZ1bmN0aW9uKGNvbG9yV2hlZWwpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVDb2xvcigp
OworICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJzKHRoaXMuX2NvbG9yV2hlZWwucmF3Q29sb3Is
IHRoaXMuX2NvbG9yV2hlZWwudGludGVkQ29sb3IpOworICAgIH0sCisKKyAgICBzbGlkZXJWYWx1
ZURpZENoYW5nZTogZnVuY3Rpb24oc2xpZGVyLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChz
bGlkZXIgPT09IHRoaXMuX29wYWNpdHlTbGlkZXIpCisgICAgICAgICAgICB0aGlzLm9wYWNpdHkg
PSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAoc2xpZGVyID09PSB0aGlzLl9icmlnaHRuZXNzU2xp
ZGVyKQorICAgICAgICAgICAgdGhpcy5icmlnaHRuZXNzID0gdmFsdWU7CisgICAgfSwKKyAgICAK
KyAgICAvLyBQcml2YXRlCisgICAgCisgICAgX3VwZGF0ZUNvbG9yOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fZG9udFVwZGF0ZUNvbG9yKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHZhciByZ2IgPSB0aGlzLl9jb2xvcldoZWVsLnRpbnRlZENvbG9yLnJnYjsK
KyAgICAgICAgdGhpcy5fY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEocmdiWzBd
LCByZ2JbMV0sIHJnYlsyXSwgdGhpcy5fb3BhY2l0eSkudG9TdHJpbmcoKTsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyLkV2ZW50
LkNvbG9yQ2hhbmdlZCwge2NvbG9yOiB0aGlzLl9jb2xvcn0pOworICAgIH0sCisKKyAgICBfdXBk
YXRlU2xpZGVyczogZnVuY3Rpb24ocmF3Q29sb3IsIHRpbnRlZENvbG9yKQorICAgIHsKKyAgICAg
ICAgdmFyIHJnYiA9IHRoaXMuX2NvbG9yV2hlZWwudGludGVkQ29sb3IucmdiOworICAgICAgICB2
YXIgdHJhbnNwYXJlbnQgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEocmdiWzBdLCByZ2Jb
MV0sIHJnYlsyXSwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgdGhpcy5fb3BhY2l0eVNsaWRlci5l
bGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJsaW5lYXItZ3JhZGllbnQoOTBkZWcsICIg
KyB0cmFuc3BhcmVudCArICIsICIgKyB0aW50ZWRDb2xvciArICIpLCAiICsgdGhpcy5fb3BhY2l0
eVBhdHRlcm47CisKKyAgICAgICAgdGhpcy5fYnJpZ2h0bmVzc1NsaWRlci5lbGVtZW50LnN0eWxl
LmJhY2tncm91bmRJbWFnZSA9ICJsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGJsYWNrLCAiICsgcmF3
Q29sb3IgKyAiKSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29sb3JXaGVlbC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQxNjYzZDBiZGNhYmRmYjU5
YjljM2FhZDI0MDJjNTg0NGY2YWY2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuY3NzCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisuY29sb3Itd2hlZWwgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKwor
LmNvbG9yLXdoZWVsID4gLmNyb3NzaGFpciB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
IHRvcDogLTRweDsKKyAgICBsZWZ0OiAtM3B4OworICAgIHdpZHRoOiA1cHg7CisgICAgaGVpZ2h0
OiA1cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgYm9yZGVyLXJhZGl1czog
M3B4OworICAgIHBvaW50ZXItZXZlbnRzOiBub25lOworICAgIGJhY2tncm91bmQtY29sb3I6IHdo
aXRlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29sb3JXaGVlbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9y
V2hlZWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliOTE2OTQ5N2E1OTY3MTg3YTljY2VlNjljNTBlMzYyYTYy
MDJjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbG9yV2hlZWwuanMKQEAgLTAsMCArMSwyODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNw
ZWN0b3IuQ29sb3JXaGVlbCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuT2JqZWN0
LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLl9yYXdDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKTsKKyAgICB0aGlzLl90aW50ZWRDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKTsKKyAgICB0aGlzLl9maW5hbENhbnZhcyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImNhbnZhcyIpOworCisgICAgdGhpcy5fY3Jvc3NoYWlyID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fY3Jvc3NoYWlyLmNsYXNzTmFtZSA9ICJjcm9z
c2hhaXIiOworCisgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gImNvbG9yLXdoZWVsIjsKKworICAg
IHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZmluYWxDYW52YXMpOworICAgIHRoaXMu
X2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3Jvc3NoYWlyKTsKKworICAgIHRoaXMuX2ZpbmFs
Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMpOworfQorCitXZWJJbnNw
ZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUgPSB7CisgICAgY29udHJ1Y3RvcjogV2ViSW5zcGVj
dG9yLkNvbG9yV2hlZWwsCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3Rv
dHlwZSwKKworICAgIC8vIFB1YmxpYworCisgICAgc2V0IGRpbWVuc2lvbihkaW1lbnNpb24pCisg
ICAgeworICAgICAgICB0aGlzLl9maW5hbENhbnZhcy53aWR0aCA9IHRoaXMuX3RpbnRlZENhbnZh
cy53aWR0aCA9IHRoaXMuX3Jhd0NhbnZhcy53aWR0aCA9IGRpbWVuc2lvbjsKKyAgICAgICAgdGhp
cy5fZmluYWxDYW52YXMuaGVpZ2h0ID0gdGhpcy5fdGludGVkQ2FudmFzLmhlaWdodCA9IHRoaXMu
X3Jhd0NhbnZhcy5oZWlnaHQgPSBkaW1lbnNpb247CisKKyAgICAgICAgdGhpcy5fZGltZW5zaW9u
ID0gZGltZW5zaW9uOworICAgICAgICB0aGlzLl9yYWRpdXMgPSBkaW1lbnNpb24gLyAyIC0gMjsK
KworICAgICAgICB0aGlzLl9zZXRDcm9zc2hhaXJQb3NpdGlvbihuZXcgV2ViSW5zcGVjdG9yLlBv
aW50KGRpbWVuc2lvbiAvIDIsIGRpbWVuc2lvbiAvIDIpKTsKKworICAgICAgICB0aGlzLl9kcmF3
UmF3Q2FudmFzKCk7CisgICAgICAgIHRoaXMuX2RyYXcoKTsKKyAgICB9LAorICAgIAorICAgIGdl
dCBlbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0s
CisKKyAgICBnZXQgYnJpZ2h0bmVzcygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYnJp
Z2h0bmVzczsKKyAgICB9LAorCisgICAgc2V0IGJyaWdodG5lc3MoYnJpZ2h0bmVzcykKKyAgICB7
CisgICAgICAgIHRoaXMuX2JyaWdodG5lc3MgPSBicmlnaHRuZXNzOworICAgICAgICB0aGlzLl9k
cmF3KCk7CisgICAgfSwKKworICAgIGdldCB0aW50ZWRDb2xvcigpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fY3Jvc3NoYWlyUG9zaXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29s
b3JBdFBvaW50V2l0aEJyaWdodG5lc3ModGhpcy5fY3Jvc3NoYWlyUG9zaXRpb24ueCwgdGhpcy5f
Y3Jvc3NoYWlyUG9zaXRpb24ueSwgdGhpcy5fYnJpZ2h0bmVzcyk7CisKKyAgICAgICAgcmV0dXJu
IG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoIndoaXRlIik7CisgICAgfSwKKworICAgIHNldCB0aW50
ZWRDb2xvcih0aW50ZWRDb2xvcikKKyAgICB7CisgICAgICAgIHZhciBkYXRhID0gdGhpcy5fdGlu
dGVkQ29sb3JUb1BvaW50QW5kQnJpZ2h0bmVzcyh0aW50ZWRDb2xvcik7CisgICAgICAgIHRoaXMu
X3NldENyb3NzaGFpclBvc2l0aW9uKGRhdGEucG9pbnQpOworICAgICAgICB0aGlzLmJyaWdodG5l
c3MgPSBkYXRhLmJyaWdodG5lc3M7CisgICAgfSwKKyAgICAKKyAgICBnZXQgcmF3Q29sb3IoKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Nyb3NzaGFpclBvc2l0aW9uKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2NvbG9yQXRQb2ludFdpdGhCcmlnaHRuZXNzKHRoaXMuX2Nyb3NzaGFpclBv
c2l0aW9uLngsIHRoaXMuX2Nyb3NzaGFpclBvc2l0aW9uLnksIDEpOworCisgICAgICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJ3aGl0ZSIpOworICAgIH0sCisKKyAgICAvLyBQcm90
ZWN0ZWQKKworICAgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHN3aXRjaCAoZXZlbnQudHlwZSkgeworICAgICAgICBjYXNlICJtb3VzZWRvd24iOgorICAgICAg
ICAgICAgdGhpcy5faGFuZGxlTW91c2Vkb3duKGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlICJtb3VzZW1vdmUiOgorICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2Vt
b3ZlKGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJtb3VzZXVwIjoK
KyAgICAgICAgICAgIHRoaXMuX2hhbmRsZU1vdXNldXAoZXZlbnQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1v
dXNlZG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcywgdHJ1ZSk7CisKKyAgICAgICAgdGhpcy5fdXBkYXRl
Q29sb3JGb3JNb3VzZUV2ZW50KGV2ZW50KTsKKyAgICB9LAorCisgICAgX2hhbmRsZU1vdXNlbW92
ZTogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGVDb2xvckZvck1v
dXNlRXZlbnQoZXZlbnQpOworICAgIH0sCisKKyAgICBfaGFuZGxlTW91c2V1cDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vt
b3ZlIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJt
b3VzZXVwIiwgdGhpcywgdHJ1ZSk7CisgICAgfSwKKworICAgIF9wb2ludEluQ2lyY2xlRm9yRXZl
bnQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gZGlzdGFuY2UoYSwg
YikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyhhLngg
LSBiLngsIDIpICsgTWF0aC5wb3coYS55IC0gYi55LCAyKSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBhbmdsZUZyb21DZW50ZXJUb1BvaW50KGNlbnRlciwgcG9pbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHBvaW50LnkgLSBjZW50ZXIueSwgcG9p
bnQueCAtIGNlbnRlci54KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBvaW50T25D
aXJjdW1mZXJlbmNlKGMsIHIsIGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLlBvaW50KGMueCArIHIgKiBNYXRoLmNvcyhhKSwgYy55ICsgciAqIE1hdGgu
c2luKGEpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLl9kaW1l
bnNpb247CisgICAgICAgIHZhciBwb2ludCA9IHdpbmRvdy53ZWJraXRDb252ZXJ0UG9pbnRGcm9t
UGFnZVRvTm9kZSh0aGlzLl9maW5hbENhbnZhcywgbmV3IFdlYktpdFBvaW50KGV2ZW50LnBhZ2VY
LCBldmVudC5wYWdlWSkpOworICAgICAgICB2YXIgY2VudGVyID0gbmV3IFdlYkluc3BlY3Rvci5Q
b2ludChkaW1lbnNpb24gLyAyLCBkaW1lbnNpb24gLyAyKTsKKyAgICAgICAgaWYgKGRpc3RhbmNl
KHBvaW50LCBjZW50ZXIpID4gdGhpcy5fcmFkaXVzKSB7CisgICAgICAgICAgICB2YXIgYW5nbGUg
PSBhbmdsZUZyb21DZW50ZXJUb1BvaW50KGNlbnRlciwgcG9pbnQpOworICAgICAgICAgICAgcG9p
bnQgPSBwb2ludE9uQ2lyY3VtZmVyZW5jZShjZW50ZXIsIHRoaXMuX3JhZGl1cywgYW5nbGUpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBwb2ludDsKKyAgICB9LAorCisgICAgX3VwZGF0ZUNv
bG9yRm9yTW91c2VFdmVudDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgcG9p
bnQgPSB0aGlzLl9wb2ludEluQ2lyY2xlRm9yRXZlbnQoZXZlbnQpOworCisgICAgICAgIHRoaXMu
X3NldENyb3NzaGFpclBvc2l0aW9uKHBvaW50KTsKKworICAgICAgICBpZiAodGhpcy5kZWxlZ2F0
ZSAmJiB0eXBlb2YgdGhpcy5kZWxlZ2F0ZS5jb2xvcldoZWVsQ29sb3JEaWRDaGFuZ2UgPT09ICJm
dW5jdGlvbiIpCisgICAgICAgICAgICB0aGlzLmRlbGVnYXRlLmNvbG9yV2hlZWxDb2xvckRpZENo
YW5nZSh0aGlzKTsKKyAgICB9LAorCisgICAgX3NldENyb3NzaGFpclBvc2l0aW9uOiBmdW5jdGlv
bihwb2ludCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Nyb3NzaGFpclBvc2l0aW9uID0gcG9pbnQ7
CisgICAgICAgIHRoaXMuX2Nyb3NzaGFpci5zdHlsZS53ZWJraXRUcmFuc2Zvcm0gPSAidHJhbnNs
YXRlKCIgKyBNYXRoLnJvdW5kKHBvaW50LngpICsgInB4LCAiICsgTWF0aC5yb3VuZChwb2ludC55
KSArICJweCkiOworICAgIH0sCisKKyAgICBfdGludGVkQ29sb3JUb1BvaW50QW5kQnJpZ2h0bmVz
czogZnVuY3Rpb24oY29sb3IpCisgICAgeworICAgICAgICB2YXIgcmdiID0gY29sb3IucmdiOwor
ICAgICAgICB2YXIgaHN2ID0gV2ViSW5zcGVjdG9yLkNvbG9yLnJnYjJoc3YocmdiWzBdLCByZ2Jb
MV0sIHJnYlsyXSk7CisgICAgICAgIHZhciBjb3NIdWUgPSBNYXRoLmNvcyhoc3ZbMF0gKiBNYXRo
LlBJIC8gMTgwKTsKKyAgICAgICAgdmFyIHNpbkh1ZSA9IE1hdGguc2luKGhzdlswXSAqIE1hdGgu
UEkgLyAxODApOworICAgICAgICB2YXIgY2VudGVyID0gdGhpcy5fZGltZW5zaW9uIC8gMjsKKyAg
ICAgICAgdmFyIHggPSBjZW50ZXIgKyAoY2VudGVyICogY29zSHVlICogaHN2WzFdKTsKKyAgICAg
ICAgdmFyIHkgPSBjZW50ZXIgLSAoY2VudGVyICogc2luSHVlICogaHN2WzFdKTsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIHBvaW50OiBuZXcgV2ViSW5zcGVjdG9yLlBvaW50KHgsIHkp
LAorICAgICAgICAgICAgYnJpZ2h0bmVzczogaHN2WzJdCisgICAgICAgIH07CisgICAgfSwKKwor
ICAgIF9kcmF3UmF3Q2FudmFzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMu
X3Jhd0NhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIHZhciBkaW1lbnNpb24gPSB0
aGlzLl9kaW1lbnNpb247CisgICAgICAgIHZhciBjZW50ZXIgPSBkaW1lbnNpb24gLyAyOworCisg
ICAgICAgIGN0eC5maWxsU3R5bGUgPSAid2hpdGUiOworICAgICAgICBjdHguZmlsbFJlY3QoMCwg
MCwgZGltZW5zaW9uLCBkaW1lbnNpb24pOworCisgICAgICAgIHZhciBpbWFnZURhdGEgPSBjdHgu
Z2V0SW1hZ2VEYXRhKDAsIDAsIGRpbWVuc2lvbiwgZGltZW5zaW9uKTsKKyAgICAgICAgdmFyIGRh
dGEgPSBpbWFnZURhdGEuZGF0YTsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkaW1lbnNp
b247ICsraikgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaW1lbnNpb247ICsr
aSkgeworICAgICAgICAgICAgICAgIHZhciBwb3MgPSAoaiAqIGRpbWVuc2lvbiArIGkpICogNDsK
KyAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSB0aGlzLl9jb2xvckF0UG9pbnRXaXRoQnJpZ2h0
bmVzcyhpLCBqLCAxKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbG9yKQorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBkYXRhW3Bvc10gPSBjb2xvci5yZ2Jb
MF07CisgICAgICAgICAgICAgICAgZGF0YVtwb3MgKyAxXSA9IGNvbG9yLnJnYlsxXTsKKyAgICAg
ICAgICAgICAgICBkYXRhW3BvcyArIDJdID0gY29sb3IucmdiWzJdOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGN0eC5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAwKTsKKyAg
ICB9LAorCisgICAgX2NvbG9yQXRQb2ludFdpdGhCcmlnaHRuZXNzOiBmdW5jdGlvbih4LCB5LCBi
cmlnaHRuZXNzKQorICAgIHsKKyAgICAgICAgdmFyIGNlbnRlciA9IHRoaXMuX2RpbWVuc2lvbiAv
IDI7CisgICAgICAgIHZhciB4RGlzID0geCAtIGNlbnRlcjsKKyAgICAgICAgdmFyIHlEaXMgPSB5
IC0gY2VudGVyOworICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoeERpcyAqIHhEaXMg
KyB5RGlzICogeURpcyk7CisKKyAgICAgICAgaWYgKGRpc3RhbmNlID4gY2VudGVyKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgdmFyIGggPSBNYXRoLmF0YW4yKHkgLSBjZW50
ZXIsIGNlbnRlciAtIHgpICogMTgwIC8gTWF0aC5QSTsKKyAgICAgICAgaCA9IChoICsgMTgwKSAl
IDM2MDsKKyAgICAgICAgdmFyIHYgPSBicmlnaHRuZXNzOworICAgICAgICB2YXIgcyA9IE1hdGgu
bWF4KDAsIGRpc3RhbmNlKSAvIGNlbnRlcjsKKworICAgICAgICB2YXIgcmdiID0gV2ViSW5zcGVj
dG9yLkNvbG9yLmhzdjJyZ2IoaCwgcywgdik7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
Q29sb3IuZnJvbVJHQigKKyAgICAgICAgICAgIE1hdGgucm91bmQocmdiWzBdICogMjU1KSwKKyAg
ICAgICAgICAgIE1hdGgucm91bmQocmdiWzFdICogMjU1KSwKKyAgICAgICAgICAgIE1hdGgucm91
bmQocmdiWzJdICogMjU1KQorICAgICAgICApOworICAgIH0sCisgICAgCisgICAgX2RyYXdUaW50
ZWRDYW52YXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBjdHggPSB0aGlzLl90aW50
ZWRDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMu
X2RpbWVuc2lvbjsKKworICAgICAgICBjdHguc2F2ZSgpOworICAgICAgICBjdHguZHJhd0ltYWdl
KHRoaXMuX3Jhd0NhbnZhcywgMCwgMCwgZGltZW5zaW9uLCBkaW1lbnNpb24pOworICAgICAgICBp
ZiAodGhpcy5fYnJpZ2h0bmVzcyAhPT0gMSkgeworICAgICAgICAgICAgY3R4Lmdsb2JhbEFscGhh
ID0gMSAtIHRoaXMuX2JyaWdodG5lc3M7CisgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gImJs
YWNrIjsKKyAgICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBkaW1lbnNpb24sIGRpbWVuc2lv
bik7CisgICAgICAgIH0KKyAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICB9LAorICAgIAorICAg
IF9kcmF3OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9kcmF3VGludGVkQ2FudmFz
KCk7CisKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMuX2ZpbmFsQ2FudmFzLmdldENvbnRleHQoIjJk
Iik7CisgICAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLl9kaW1lbnNpb247CisKKyAgICAgICAg
Y3R4LnNhdmUoKTsKKyAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBkaW1lbnNpb24sIGRpbWVu
c2lvbik7CisgICAgICAgIGN0eC5iZWdpblBhdGgoKTsKKyAgICAgICAgY3R4LmFyYyhkaW1lbnNp
b24gLyAyLCBkaW1lbnNpb24gLyAyLCB0aGlzLl9yYWRpdXMgKyAxLCAwLCBNYXRoLlBJICogMiwg
dHJ1ZSk7IAorICAgICAgICBjdHguY2xvc2VQYXRoKCk7CisgICAgICAgIGN0eC5jbGlwKCk7Cisg
ICAgICAgIGN0eC5kcmF3SW1hZ2UodGhpcy5fdGludGVkQ2FudmFzLCAwLCAwLCBkaW1lbnNpb24s
IGRpbWVuc2lvbik7CisgICAgICAgIGN0eC5yZXN0b3JlKCk7CisgICAgfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVt
Yi5wbmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvU2xpZGVy
VGh1bWIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwZWEyOWQ2NzY4ZDM5NDJmYTJmZjY2ZDc3M2E2OTA4YTIw
YTg5YjUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMwMjAKemNtVjstM3A0YklQKTxoOzNLfExr
MDAwZTFOSkxUcTAwMGREMDAwcFAxXkBzNjJMQzNVMDAwMDlhN2JCbTAwMFhVCnowMDBYVTBSV251
N3l0a1lPPSZ8elAqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtb3kpY1VZNzY3Q3p0aQp6
V2UtK0Qqem1FSlk9SG5HQmRpRj41THUhU2teb19aNUU0TWVnQF83UDZjckppTkw5cHcpZTE8Umh+
bDZxeE14OSUKemgrMnpQVHNaQ0ArXjRtRGRoaE0rYGA3IXQ9YlkjSyZVdyFkZkRzWlZrPjtYbTA2
OXtISlVaQVBrNTVSJSQtUklBCno2LWVMJkFRMHh1IWU8ND0wMDhnPGQzYih3dXN7Myh1V3RZWDBD
M2VWQm9mRXJ8QVY/dkNSWUY7a3BTUSM2NlhzNgp6a1d2ODFFPnlAQTBMVH5zdXY0PlMzSUxQPDBC
bWBETEx2YUY0RkslKU5qP1B0KnJ9Nzs3WGE5ejlIfEhaalI2M2UKekNgVGokSylWMjdSZUA0MDA+
SHVtcHNZWTVFKEV9PzBmMVN5R0RpWXt5IylZdmojIVduS3d0b1huTDtlZzAzYkw1CnowN0QpViU+
eTd6MUU0VXt6dT43fmFEfSk/MFJYX3VtQ2N0KyhsWnBlbUN6YkBeNj1vfEE+elZwdXxpPU5ERys3
fQp6PFJZQXhuPEVvUT1MMWE2MzsrTmNgTyg0dEk2c2kqPUglaCNYNkoxMF51P243WXcmTChKfFhl
bns9QUY9MU9PMEQKeiYrcG5fPD5sNGBhS3swI2ItIXo9VEw5V3QwQkdPJlR7R0pXcGpyeWhkaWpm
YUlRJjIhb31wMDRKUktZZzNrJlRmCnpWeGhlLTxCTEIzR3ZST0dpKz1YfUtweV92ZGhoXm9ubjBQ
WXpAdmx4YWJhJER1MlBRWSVMR0MoWnVqUlN7Pk8hWAp6e2Y7VG87eHdeYkVFUzZKU2MkayRCMkNB
NnhsKWx0QTwzMkU2NnQ/M0BnSjdgMzZwbVgwSVleanopclJZd2FhWTQKemUobkpSaXc7PVFiXnQo
cl5EVEBUM3l9YTJYRVpXLV9XJUhzenhqX3FEKip0X20hI3RXMEtEaUpUJlI+Nk92VlRSCnowN1Jn
SER6SEhaNDhhdHZ6eiY/ajlsWEY3MCR+UDNLbnhfbkpQPCsjPGJXSXNwJXw3eThDMVlKKmFXcSgw
figrYQp6biZBKyUhNyhAdT1pbX10ZiRNTT0yNEVQVCFXZ2BVMj9SbU4yb3FyO0kqMVdzakBUbTMy
cDVALTFSYE5iRz9JWCUKekFuQXd7UTZrMDJhLTsmT0xUWnMrTkYod3NhdWhqQFR0TkRlK3NHZz9p
dXtWYU09X0x2dlFZIW4wKEMmU3MyPmBOCnojLU1aMmJUa2lMZlI+X2IoSGdXS0olRn5Ocl9vRjNi
I3dySWlqSEd8KEo+QllqTS1zYWpFNjtGaUM3dlkjfTtHZAp6U1QkQ1VIRGV1RUgrQl5wekBCMDYy
cVhmRmZEYE5wVVc1P0JZPVYlR01fNWMpTCNRUn1CZVc4XzJ2LVMlZ2ZZUz0KekI5b3wzdj9ZMkhg
TlZpKUk8YiZnTXl3fDhBcyEpfkMwLXtFNkpMYF5CbzRgdjxXMzQ5QzZGPm4zclRCOCtlal4+CnpR
PX5yOTVOVnVEQ2hMJUckPT43JHZWZzIwbXl4JVM1MEZvaWBebSVQdy1oP1hofmk4TXE5anRKbG9D
b2NXazJOdgp6ckpwaUZuVl9tcyY4ZVEkMiYjeFdwSVMrNnBtdEMlUS1gUyZHPEJMSyY2XmZPJWNM
ISUpekYlMFhLRDluRlg/bzsKejNFaEpwTVZIVyoocmY0az5GNFEjXm1oeW1oN0UocU5NYX0lWVot
ZVByeD4+eEZQVGlIMT1FK0EkVyQ9Ykc4PnNeCnptPUJuNVJhaCRhRHRyfUAkYFh9Mmx+JEYwbUZL
RWRSZFpFOClwQEU1Ukk2MUZ0Nm8tcHJiYm4+UH4paXkpRTJBTgp6c1UyMGpzV3pfOFFnPjMxUHxz
MGNxclBBTGc4RXwodldBNjVwb1UxSlJBYVpzOEkyKHAjeGlCYFNWR292UnMtdVMKelluVi05VGVB
Nz1PbStxUDgrST55T2pBUjFzJUVUYWshR0ZkYW1AaF4jPEFlPUlvWF5fJkxQZVgmVS1CYkVrNy0+
CnopQHJTMHQkd1hIK0lyZikrRzZjOz9IMjlwK1Y2RjZvanshfG8lSzN4SWA/JTZ4O0RCfHhgbiNp
YjxnVFAoX2B5LQp6PT9WNDleJHpMWChNUj1kXnJRNmA+aElSPyhIfVEzR3pkMTM4RWkyKVdBTXo3
VzlWeWBYfUhud2d5RTxXJVZAZmgKeiNBdV9ATnV3dllDaG11NDwyODV9SzR6P005QWQwQS1ldWZ0
SllpeUtHVFdyWXF7WmFFRGIxOD9ucjZEdXc5fENWCnolKlpVPHRrfHJ7PzJiOXJvTkp6OHpTK0Zu
e0VkYUJNViFTLWkjQ2hMbWZEdGwlTFNIQW1pTWZmUno2bUZSYHBpYgp6dFZ6fmY+biFWUyk+bXYk
OCZ7aFFuPnc0end5M1J9dDtCWWxaUW01KTZwdHk9RGZMcnMrQS18Pj48YTlmPjt+O1EKel9GP3VW
X0hGamg5bjJnTzlvOVFeSkE4NjxiPEIyYmFKPWlKO1dXZGsjSHF2U1M3I2UlcD52KHtINWFCIWtq
b082CnpjOSQxWlpLc04tWmw4TH5tRXtgbHkzKTFOXmBvMStvN31EMFpQZVkmSjtpO2lgJU55Sjhf
OFk2Sj99eUVAYl81YQp6YW0/ZUxyPDxxM15Oe0IrVVVwdHRVaS1ac1BxVW1ScDRLcEokbEp0UTtK
d1J4VV4rZk1XJXx6UDEzdHorMC10KUgKemhyWHUxQkh1bH1CWXhJP25TS1pTcDhHcmMlbChofHp1
fGZFN1YlQzZVOyk3YTxwSTVjOGlCSXxZWGN0eW5GT1Q9CnpIM2Z8WXk5T0B8SnszWD8yQFAydmEr
N2JzN3hFa1ZWPjhAbUVTa3wzJF9Ta21Te3dRPiVxQzE4KSk5X3wmantaVAp6ZXM4QXZPekYoRjIj
RFpFWT4yb1lYJklScGBGI3tBRGwpMXI+UVNeKWJhOGF8RVlfXiNTXkg8YmpgNUdGakpaNDgKellQ
TkVBWFJLOyRRZnk9Rm80QTB1czw/cjhoeGtTRG1sQVhuQm5qPF88aXl5LUomRUlVMF9TWCtHbzBq
X1JGLXNPCnp1STFkS3hma1o/JmRaKjZKWHRrYWtiRjNXbT1jJD1Lam5pVUxRcFJsUHZ4Zz5PJnRe
Umdxd3Y9TVpUaHFxRVdIOAp6eEpvPmQ9QUJsUl9CaD07ZU05PGFoRUdPeSN4bl58UVkoM3A4SXJq
cF5HI01uKjUwaG8qPlR3fEloMzR+b1RFfD0KelhfbUFyKkQkdnp3QCtwKEUwWWM2ZEZFfSg4PFU2
MV92OW5fYk14QzNZPXVuR3FxSWA0UCExTU1GUV9ZY1ROcW4tCnp4SmJRN1RHVFYmWDghOD1CTVg4
U2U3JXNjUGBJJE8qdG1GRUAhJXJBTVl8UndpJkdiT0UtX3RGeEAzNTFAWH4kRAp6WHY/eWV7WlFn
cVFkUlA1ZEVEfWpRaUlaXnI5JiUlUzJVSFdsKiE5KHVKbF5EVi07YlFXTDU4S20oXlFWZTx+TjEK
elUjeEpmc0lLXzFNITRxVVM1OUJtZUQhJjQrUz1ZcXg2MUE3TmI5OFFabWpvTnpwcU5ZWUMrWXxo
VlR1bzh9V19oCno4KChjby1nS2RRWVcwckl3OVUlUjEydGhhP09WKll0bFJSVEhseX0+b3F0YCtS
e2dFM3g0empYK1NiM19jWUVePQp6Z0I9dystdFV5YHl0T05NUzhLZ1JlZjRoQT90PE5xOGUkdXx6
dmgxM3hKUCRTI2gjQ1FyRiNlVk1lcGxzYlo+MGoKenVmTTt0MzJqbX5qVUdya2FPSW5UWmB6eWZu
cz5FdVN9RzMwTEZLX0ctPT0oZjw1MXxLJmNvY3AmRUpgU3hBaDM/CnpOTz4jTEk9XitTRXUoRnFK
KXludD0hflBDOWJPJHJ6UEpCPT89ajxKYjttVzJTRHY3cUNfVkF7PGJzcHFyKH55fAp6b2xaWUop
UzI5UV9lfWhtWWg2KVl5PU96dW88QTNLP283OHxfc1IzIz1ae19SeW0wZylfaFE+NndAYS0odTAy
UDcKemFRKSModVVse0hXJXRZTlMzSXRDXmlBdEsoZUtsTGBmOSt7Ykp6SVNFP3U4X3ozO35DOEBG
eUktNWpfank3bDtXCnpfVSN2VTNocXFZVTMhbXJ1bCZCK3twdHQkNTkpdWt7O180aVpRJUd8eits
aEFTcjZ8SDM1VEJrbD5nSSo7bkdMVQp6TjdXLW5CYU0lcEEwSGJIOG9seWwmWGVKJXZab1d6JTY/
WT1kRnlrbD1pbUx9YCVCTVF7TWhnZGBIUm9MdTZlMlIKemFfXzZEdVI2eWcjfi19VGN8R3hfe0hA
TzBlZWJ5TXk1R21XQURKbHBLPmtxayhmVlZAcl9mTExLSWVTP3s0ZSl9CnpeWk87enBFQ2RlMDNj
JlhRY1ZCPWRMO2s9ZlAoLTRgVHFhX2ZhdzRMYnVhKGA+UjxvPkkreT9lN2pLZVojWU8tQwp6MFFw
SG9LfiM5IXRkcU5IISFRKHZLTiR6aDMzU3JiWFlmKzgydHg0V0EmPWJsRWtzQz1tSldkJGY9QTtF
bH5FVFAKekxmaGFaXm9KakQ7QyRqLUkzazM9eV44b3BOI0pGQ1omSXFZLVdgdn01M1RoTU5hdWlN
bVN1JnRfRlVJPnUtMlpsCnpFR3ZOSkhESU5iJUJ7N2hyZklAdFl3YnhYbD5ANl5mUnU5VW9PNW00
aE0jdU1JVnQ3IzU9Pz1PYjhpMF5afl5YdAp6JkQ3KUM4MXZTM1U2YHttPGBxfkFBbipKQlQ/bno1
bl5Ga2pEQGw/ZjIxRkReaSg3VXZla3xmS3hOR3dkTHcqPHIKekFJRVYjbStaYXdmUkJLeEVYI3hV
ZXdZRDx2TWRpa0M0ZVgzOEJrTlgqRXBhOEtFKSZWXmdSSEMtbmxqUVEkOEk0Ck8wMDAwPE1OVU1u
TFNUWThKOzVPVwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iQDJ4LnBuZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVtYkAyeC5w
bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTVjOTFlZjljOGJmMzkxM2M5ZGZkMGJiOTVhYzA5OWY2Zjk1MjQwMQpH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzM0Nwp6Y21WK3U0ZWF1WFApPGg7M0t8TGswMDBlMU5K
TFRxMDAwXlEwMDFIZzFeQHM2TDFXMWQwMDAwOWE3YkJtMDAwWFUKejAwMFhVMFJXbnU3eXRrWU89
Jnx6UCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1veSljVVk3NjdDenRpCnpXZS0rRCp6
bUVKWT1IbkdCZGlGPjVMdSFTa15vX1o1RTRNZWdAXzdQNmNySmlOTDlwdyllMTxSaH5sNnF4TXg5
JQp6aCsyelBUc1pDQCteNG1EZGhoTStgYDchdD1iWSNLJlV3IWRmRHNaVms+O1htMDY5e0hKVVpB
UGs1NVIlJC1SSUEKejYtZUwmQVEweHUhZTw0PTAwOGc8ZDNiKHd1c3szKHVXdFlYMEMzZVZCb2ZF
cnxBVj92Q1JZRjtrcFNRIzY2WHM2CnprV3Y4MUU+eUBBMExUfnN1djQ+UzNJTFA8MEJtYERMTHZh
RjRGSyUpTmo/UHQqcn03OzdYYTl6OUh8SFpqUjYzZQp6Q2BUaiRLKVYyN1JlQDQwMD5IdW1wc1lZ
NUUoRX0/MGYxU3lHRGlZe3kjKVl2aiMhV25Ld3RvWG5MO2VnMDNiTDUKejA3RClWJT55N3oxRTRV
e3p1Pjd+YUR9KT8wUlhfdW1DY3QrKGxacGVtQ3piQF42PW98QT56VnB1fGk9TkRHKzd9Cno8UllB
eG48RW9RPUwxYTYzOytOY2BPKDR0STZzaSo9SCVoI1g2SjEwXnU/bjdZdyZMKEp8WGVuez1BRj0x
T08wRAp6Jitwbl88Pmw0YGFLezAjYi0hej1UTDlXdDBCR08mVHtHSldwanJ5aGRpamZhSVEmMiFv
fXAwNEpSS1lnM2smVGYKelZ4aGUtPEJMQjNHdlJPR2krPVh9S3B5X3ZkaGheb25uMFBZekB2bHhh
YmEkRHUyUFFZJUxHQyhadWpSU3s+TyFYCnp7ZjtUbzt4d15iRUVTNkpTYyRrJEIyQ0E2eGwpbHRB
PDMyRTY2dD8zQGdKN2AzNnBtWDBJWV5qeilyUll3YWFZNAp6ZShuSlJpdzs9UWJedChyXkRUQFQz
eX1hMlhFWlctX1clSHN6eGpfcUQqKnRfbSEjdFcwS0RpSlQmUj42T3ZWVFIKejA3UmdIRHpISFo0
OGF0dnp6Jj9qOWxYRjcwJH5QM0tueF9uSlA8KyM8YldJc3AlfDd5OEMxWUoqYVdxKDB+KCthCnpu
JkErJSE3KEB1PWltfXRmJE1NPTI0RVBUIVdnYFUyP1JtTjJvcXI7SSoxV3NqQFRtMzJwNUAtMVJg
TmJHP0lYJQp6QW5Bd3tRNmswMmEtOyZPTFRacytORih3c2F1aGpAVHRORGUrc0dnP2l1e1ZhTT1f
THZ2UVkhbjAoQyZTczI+YE4KeiMtTVoyYlRraUxmUj5fYihIZ1dLSiVGfk5yX29GM2Ijd3JJaWpI
R3woSj5CWWpNLXNhakU2O0ZpQzd2WSN9O0dkCnpTVCRDVUhEZXVFSCtCXnB6QEIwNjJxWGZGZkRg
TnBVVzU/Qlk9ViVHTV81YylMI1FSfUJlVzhfMnYtUyVnZllTPQp6QjlvfDN2P1kySGBOVmkpSTxi
JmdNeXd8OEFzISl+QzAte0U2SkxgXkJvNGB2PFczNDlDNkY+bjNyVEI4K2VqXj4KelE9fnI5NU5W
dURDaEwlRyQ9PjckdlZnMjBteXglUzUwRm9pYF5tJVB3LWg/WGh+aThNcTlqdEpsb0NvY1drMk52
CnpySnBpRm5WX21zJjhlUSQyJiN4V3BJUys2cG10QyVRLWBTJkc8QkxLJjZeZk8lY0whJSl6RiUw
WEtEOW5GWD9vOwp6M0VoSnBNVkhXKihyZjRrPkY0USNebWh5bWg3RShxTk1hfSVZWi1lUHJ4Pj54
RlBUaUgxPUUrQSRXJD1iRzg+c14Kem09Qm41UmFoJGFEdHJ9QCRgWH0ybH4kRjBtRktFZFJkWkU4
KXBARTVSSTYxRnQ2by1wcmJibj5QfilpeSlFMkFOCnpzVTIwanNXel84UWc+MzFQfHMwY3FyUEFM
ZzhFfCh2V0E2NXBvVTFKUkFhWnM4STIocCN4aUJgU1ZHb3ZScy11Uwp6WW5WLTlUZUE3PU9tK3FQ
OCtJPnlPakFSMXMlRVRhayFHRmRhbUBoXiM8QWU9SW9YXl8mTFBlWCZVLUJiRWs3LT4KeilAclMw
dCR3WEgrSXJmKStHNmM7P0gyOXArVjZGNm9qeyF8byVLM3hJYD8lNng7REJ8eGBuI2liPGdUUChf
YHktCno9P1Y0OV4kekxYKE1SPWReclE2YD5oSVI/KEh9UTNHemQxMzhFaTIpV0FNejdXOVZ5YFh9
SG53Z3lFPFclVkBmaAp6I0F1X0BOdXd2WUNobXU0PDI4NX1LNHo/TTlBZDBBLWV1ZnRKWWl5S0dU
V3JZcXtaYUVEYjE4P25yNkR1dzl8Q1YKeiUqWlU8dGt8cns/MmI5cm9OSno4elMrRm57RWRhQk1W
IVMtaSNDaExtZkR0bCVMU0hBbWlNZmZSejZtRlJgcGliCnp0Vnp+Zj5uIVZTKT5tdiQ4JntoUW4+
dzR6d3kzUn10O0JZbFpRbTUpNnB0eT1EZkxycytBLXw+PjxhOWY+O347UQp6X0Y/dVZfSEZqaDlu
MmdPOW85UV5KQTg2PGI8QjJiYUo9aUo7V1dkayNIcXZTUzcjZSVwPnYoe0g1YUIha2pvTzYKemM5
JDFaWktzTi1abDhMfm1Fe2BseTMpMU5eYG8xK283fUQwWlBlWSZKO2k7aWAlTnlKOF84WTZKP315
RUBiXzVhCnphbT9lTHI8PHEzXk57QitVVXB0dFVpLVpzUHFVbVJwNEtwSiRsSnRRO0p3UnhVXitm
TVclfHpQMTN0eiswLXQpSAp6aHJYdTFCSHVsfUJZeEk/blNLWlNwOEdyYyVsKGh8enV8ZkU3ViVD
NlU7KTdhPHBJNWM4aUJJfFlYY3R5bkZPVD0KekgzZnxZeTlPQHxKezNYPzJAUDJ2YSs3YnM3eEVr
VlY+OEBtRVNrfDMkX1NrbVN7d1E+JXFDMTgpKTlffCZqe1pUCnplczhBdk96RihGMiNEWkVZPjJv
WVgmSVJwYEYje0FEbCkxcj5RU14pYmE4YXxFWV9eI1NeSDxiamA1R0ZqSlo0OAp6WVBORUFYUks7
JFFmeT1GbzRBMHVzPD9yOGh4a1NEbWxBWG5Cbmo8XzxpeXktSiZFSVUwX1NYK0dvMGpfUkYtc08K
enVJMWRLeGZrWj8mZFoqNkpYdGtha2JGM1dtPWMkPUtqbmlVTFFwUmxQdnhnPk8mdF5SZ3F3dj1N
WlRocXFFV0g4Cnp4Sm8+ZD1BQmxSX0JoPTtlTTk8YWhFR095I3huXnxRWSgzcDhJcmpwXkcjTW4q
NTBobyo+VHd8SWgzNH5vVEV8PQp6WF9tQXIqRCR2endAK3AoRTBZYzZkRkV9KDg8VTYxX3Y5bl9i
TXhDM1k9dW5HcXFJYDRQITFNTUZRX1ljVE5xbi0KenhKYlE3VEdUViZYOCE4PUJNWDhTZTclc2NQ
YEkkTyp0bUZFQCElckFNWXxSd2kmR2JPRS1fdEZ4QDM1MUBYfiRECnpYdj95ZXtaUWdxUWRSUDVk
RUR9alFpSVpecjkmJSVTMlVIV2wqITkodUpsXkRWLTtiUVdMNThLbSheUVZlPH5OMQp6VSN4SmZz
SUtfMU0hNHFVUzU5Qm1lRCEmNCtTPVlxeDYxQTdOYjk4UVptam9OenBxTllZQytZfGhWVHVvOH1X
X2gKejgoKGNvLWdLZFFZVzBySXc5VSVSMTJ0aGE/T1YqWXRsUlJUSGx5fT5vcXRgK1J7Z0UzeDR6
algrU2IzX2NZRV49CnpnQj13Ky10VXlgeXRPTk1TOEtnUmVmNGhBP3Q8TnE4ZSR1fHp2aDEzeEpQ
JFMjaCNDUXJGI2VWTWVwbHNiWj4wagp6dWZNO3QzMmptfmpVR3JrYU9JblRaYHp5Zm5zPkV1U31H
MzBMRktfRy09PShmPDUxfEsmY29jcCZFSmBTeEFoMz8Kek5PPiNMST1eK1NFdShGcUopeW50PSF+
UEM5Yk8kcnpQSkI9Pz1qPEpiO21XMlNEdjdxQ19WQXs8YnNwcXIofnl8CnpvbFpZSilTMjlRX2V9
aG1ZaDYpWXk9T3p1bzxBM0s/bzc4fF9zUjMjPVp7X1J5bTBnKV9oUT42d0BhLSh1MDJQNwp6YVEp
Iyh1VWx7SFcldFlOUzNJdENeaUF0SyhlS2xMYGY5K3tiSnpJU0U/dThfejM7fkM4QEZ5SS01al9q
eTdsO1cKel9VI3ZVM2hxcVlVMyFtcnVsJkIre3B0dCQ1OSl1a3s7XzRpWlElR3x6K2xoQVNyNnxI
MzVUQmtsPmdJKjtuR0xVCnpON1ctbkJhTSVwQTBIYkg4b2x5bCZYZUoldlpvV3olNj9ZPWRGeWts
PWltTH1gJUJNUXtNaGdkYEhSb0x1NmUyUgp6YV9fNkR1UjZ5ZyN+LX1UY3xHeF97SEBPMGVlYnlN
eTVHbVdBREpscEs+a3FrKGZWVkByX2ZMTEtJZVM/ezRlKX0Kel5aTzt6cEVDZGUwM2MmWFFjVkI9
ZEw7az1mUCgtNGBUcWFfZmF3NExidWEoYD5SPG8+SSt5P2U3aktlWiNZTy1DCnowemdTYkt+Izkh
PzNYPWorZldwU3BEVVpUIztxVnRsUDBBQDNUPW1XJGY4NkYqcHUtZTVjejwxJFBqM31XQHQ5Zwp6
ODlIUnw2MGlMWWA0dzQycG9JanhHRk9IcyNGWkBCQXlTdGNGczw5Znd2citBZyU8PnA/ISE2Zjkt
UytaQm5oYDYKemphJDspMUM2Mnk8KU1Acl43K1RXWWhWJXhtOUhmKzFZe0M7eHgyZ2owYnB4dT5v
ZjJUXz5wRzFvJmFYR1RIVUdGCno+cSkme1BwWn1HNHEmUSM9fEwpJCU2Nm1DeGJTXkhAcUlzT0cj
VkZgTkBaS1lycEFSIzFFeWA7bzM4N2dVcVVZSgp6eTYoQWMrbldrREpyPC0/RHk9dTAlX3M8aFdS
UnRsUUs/aX45fkpmI3VuTDkzZG5zazcpOUVEdHZYcnRARUVlQVoKem1Ve1BFbmdPaFpnQHNpcTw9
SXRgS0c+T1FueVUmbmJKYlIjMXVWbGJSLX18Q1ZIaFVFU1cwPGY3ey1jJSU/QGd4CnplI28tdGQw
ckduJHRkPGImb2N+VGBFUmdVeiVvczlyUFhTPSEkJEpFVGRoYGVYPSFQLTR+NzY5MGRNQiM9YiFL
SQp6P3w7JkR7WTR0aCpLVzZ1JUh7SU1nTSkrYmZUTzhxJWtTOyZaUm9sX21zWGVTeDt8SHspaSFg
VUZlUU11el9UejYKenppNjVeaz4rPFJqXm9vQEYxSDNXdnVZLVpPZVhVJT9SbGNzNm9BJTBfXzgt
SnlSdl49MnFEQWBmVyNvc3xISHs+Cnoja3c9OCVLfXs+ai1zZlclak5FO3hwKXxjVF82VSE4dEBi
NzlVbVZicjUlTUB2IUB2M2ZrbiUqKSpRejw0MSVCKwp6JDhqPV9nQ09XUmombz5QKSo3JH48VkR9
PF5BKyNfeFIqbGhWaWlkUWQ8OVBYd158PDEpen0hZlIkWX5ASFZePWEKZEpOSkx8WVhEXmY1N2N4
PkJ7JT44MDAyb3ZQREhMa1YxbSh7Vkg1eFcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJU
aHVtYlByZXNzZWQucG5nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL1NsaWRlclRodW1iUHJlc3NlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcwYjZlMmY4YWI2MjY2ODI5
ODUwODk5YmZhYTMxM2I2NjAyMzM2NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzA3Ngp6Y21W
K2Y0RXl0bVApPGg7M0t8TGswMDBlMU5KTFRxMDAwZEQwMDBwUDFeQHM2MkxDM1UwMDAwOWE3YkJt
MDAwWFUKejAwMFhVMFJXbnU3eXRrWU89Jnx6UCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9k
Yy1veSljVVk3NjdDenRpCnpXZS0rRCp6bUVKWT1IbkdCZGlGPjVMdSFTa15vX1o1RTRNZWdAXzdQ
NmNySmlOTDlwdyllMTxSaH5sNnF4TXg5JQp6aCsyelBUc1pDQCteNG1EZGhoTStgYDchdD1iWSNL
JlV3IWRmRHNaVms+O1htMDY5e0hKVVpBUGs1NVIlJC1SSUEKejYtZUwmQVEweHUhZTw0PTAwOGc8
ZDNiKHd1c3szKHVXdFlYMEMzZVZCb2ZFcnxBVj92Q1JZRjtrcFNRIzY2WHM2CnprV3Y4MUU+eUBB
MExUfnN1djQ+UzNJTFA8MEJtYERMTHZhRjRGSyUpTmo/UHQqcn03OzdYYTl6OUh8SFpqUjYzZQp6
Q2BUaiRLKVYyN1JlQDQwMD5IdW1wc1lZNUUoRX0/MGYxU3lHRGlZe3kjKVl2aiMhV25Ld3RvWG5M
O2VnMDNiTDUKejA3RClWJT55N3oxRTRVe3p1Pjd+YUR9KT8wUlhfdW1DY3QrKGxacGVtQ3piQF42
PW98QT56VnB1fGk9TkRHKzd9Cno8UllBeG48RW9RPUwxYTYzOytOY2BPKDR0STZzaSo9SCVoI1g2
SjEwXnU/bjdZdyZMKEp8WGVuez1BRj0xT08wRAp6Jitwbl88Pmw0YGFLezAjYi0hej1UTDlXdDBC
R08mVHtHSldwanJ5aGRpamZhSVEmMiFvfXAwNEpSS1lnM2smVGYKelZ4aGUtPEJMQjNHdlJPR2kr
PVh9S3B5X3ZkaGheb25uMFBZekB2bHhhYmEkRHUyUFFZJUxHQyhadWpSU3s+TyFYCnp7ZjtUbzt4
d15iRUVTNkpTYyRrJEIyQ0E2eGwpbHRBPDMyRTY2dD8zQGdKN2AzNnBtWDBJWV5qeilyUll3YWFZ
NAp6ZShuSlJpdzs9UWJedChyXkRUQFQzeX1hMlhFWlctX1clSHN6eGpfcUQqKnRfbSEjdFcwS0Rp
SlQmUj42T3ZWVFIKejA3UmdIRHpISFo0OGF0dnp6Jj9qOWxYRjcwJH5QM0tueF9uSlA8KyM8YldJ
c3AlfDd5OEMxWUoqYVdxKDB+KCthCnpuJkErJSE3KEB1PWltfXRmJE1NPTI0RVBUIVdnYFUyP1Jt
TjJvcXI7SSoxV3NqQFRtMzJwNUAtMVJgTmJHP0lYJQp6QW5Bd3tRNmswMmEtOyZPTFRacytORih3
c2F1aGpAVHRORGUrc0dnP2l1e1ZhTT1fTHZ2UVkhbjAoQyZTczI+YE4KeiMtTVoyYlRraUxmUj5f
YihIZ1dLSiVGfk5yX29GM2Ijd3JJaWpIR3woSj5CWWpNLXNhakU2O0ZpQzd2WSN9O0dkCnpTVCRD
VUhEZXVFSCtCXnB6QEIwNjJxWGZGZkRgTnBVVzU/Qlk9ViVHTV81YylMI1FSfUJlVzhfMnYtUyVn
ZllTPQp6QjlvfDN2P1kySGBOVmkpSTxiJmdNeXd8OEFzISl+QzAte0U2SkxgXkJvNGB2PFczNDlD
NkY+bjNyVEI4K2VqXj4KelE9fnI5NU5WdURDaEwlRyQ9PjckdlZnMjBteXglUzUwRm9pYF5tJVB3
LWg/WGh+aThNcTlqdEpsb0NvY1drMk52CnpySnBpRm5WX21zJjhlUSQyJiN4V3BJUys2cG10QyVR
LWBTJkc8QkxLJjZeZk8lY0whJSl6RiUwWEtEOW5GWD9vOwp6M0VoSnBNVkhXKihyZjRrPkY0USNe
bWh5bWg3RShxTk1hfSVZWi1lUHJ4Pj54RlBUaUgxPUUrQSRXJD1iRzg+c14Kem09Qm41UmFoJGFE
dHJ9QCRgWH0ybH4kRjBtRktFZFJkWkU4KXBARTVSSTYxRnQ2by1wcmJibj5QfilpeSlFMkFOCnpz
VTIwanNXel84UWc+MzFQfHMwY3FyUEFMZzhFfCh2V0E2NXBvVTFKUkFhWnM4STIocCN4aUJgU1ZH
b3ZScy11Uwp6WW5WLTlUZUE3PU9tK3FQOCtJPnlPakFSMXMlRVRhayFHRmRhbUBoXiM8QWU9SW9Y
Xl8mTFBlWCZVLUJiRWs3LT4KeilAclMwdCR3WEgrSXJmKStHNmM7P0gyOXArVjZGNm9qeyF8byVL
M3hJYD8lNng7REJ8eGBuI2liPGdUUChfYHktCno9P1Y0OV4kekxYKE1SPWReclE2YD5oSVI/KEh9
UTNHemQxMzhFaTIpV0FNejdXOVZ5YFh9SG53Z3lFPFclVkBmaAp6I0F1X0BOdXd2WUNobXU0PDI4
NX1LNHo/TTlBZDBBLWV1ZnRKWWl5S0dUV3JZcXtaYUVEYjE4P25yNkR1dzl8Q1YKeiUqWlU8dGt8
cns/MmI5cm9OSno4elMrRm57RWRhQk1WIVMtaSNDaExtZkR0bCVMU0hBbWlNZmZSejZtRlJgcGli
Cnp0Vnp+Zj5uIVZTKT5tdiQ4JntoUW4+dzR6d3kzUn10O0JZbFpRbTUpNnB0eT1EZkxycytBLXw+
PjxhOWY+O347UQp6X0Y/dVZfSEZqaDluMmdPOW85UV5KQTg2PGI8QjJiYUo9aUo7V1dkayNIcXZT
UzcjZSVwPnYoe0g1YUIha2pvTzYKemM5JDFaWktzTi1abDhMfm1Fe2BseTMpMU5eYG8xK283fUQw
WlBlWSZKO2k7aWAlTnlKOF84WTZKP315RUBiXzVhCnphbT9lTHI8PHEzXk57QitVVXB0dFVpLVpz
UHFVbVJwNEtwSiRsSnRRO0p3UnhVXitmTVclfHpQMTN0eiswLXQpSAp6aHJYdTFCSHVsfUJZeEk/
blNLWlNwOEdyYyVsKGh8enV8ZkU3ViVDNlU7KTdhPHBJNWM4aUJJfFlYY3R5bkZPVD0KekgzZnxZ
eTlPQHxKezNYPzJAUDJ2YSs3YnM3eEVrVlY+OEBtRVNrfDMkX1NrbVN7d1E+JXFDMTgpKTlffCZq
e1pUCnplczhBdk96RihGMiNEWkVZPjJvWVgmSVJwYEYje0FEbCkxcj5RU14pYmE4YXxFWV9eI1Ne
SDxiamA1R0ZqSlo0OAp6WVBORUFYUks7JFFmeT1GbzRBMHVzPD9yOGh4a1NEbWxBWG5Cbmo8Xzxp
eXktSiZFSVUwX1NYK0dvMGpfUkYtc08KenVJMWRLeGZrWj8mZFoqNkpYdGtha2JGM1dtPWMkPUtq
bmlVTFFwUmxQdnhnPk8mdF5SZ3F3dj1NWlRocXFFV0g4Cnp4Sm8+ZD1BQmxSX0JoPTtlTTk8YWhF
R095I3huXnxRWSgzcDhJcmpwXkcjTW4qNTBobyo+VHd8SWgzNH5vVEV8PQp6WF9tQXIqRCR2endA
K3AoRTBZYzZkRkV9KDg8VTYxX3Y5bl9iTXhDM1k9dW5HcXFJYDRQITFNTUZRX1ljVE5xbi0KenhK
YlE3VEdUViZYOCE4PUJNWDhTZTclc2NQYEkkTyp0bUZFQCElckFNWXxSd2kmR2JPRS1fdEZ4QDM1
MUBYfiRECnpYdj95ZXtaUWdxUWRSUDVkRUR9alFpSVpecjkmJSVTMlVIV2wqITkodUpsXkRWLTti
UVdMNThLbSheUVZlPH5OMQp6VSN4SmZzSUtfMU0hNHFVUzU5Qm1lRCEmNCtTPVlxeDYxQTdOYjk4
UVptam9OenBxTllZQytZfGhWVHVvOH1XX2gKejgoKGNvLWdLZFFZVzBySXc5VSVSMTJ0aGE/T1Yq
WXRsUlJUSGx5fT5vcXRgK1J7Z0UzeDR6algrU2IzX2NZRV49CnpnQj13Ky10VXlgeXRPTk1TOEtn
UmVmNGhBP3Q8TnE4ZSR1fHp2aDEzeEpQJFMjaCNDUXJGI2VWTWVwbHNiWj4wagp6dWZNO3QzMmpt
fmpVR3JrYU9JblRaYHp5Zm5zPkV1U31HMzBMRktfRy09PShmPDUxfEsmY29jcCZFSmBTeEFoMz8K
ek5PPiNMST1eK1NFdShGcUopeW50PSF+UEM5Yk8kcnpQSkI9Pz1qPEpiO21XMlNEdjdxQ19WQXs8
YnNwcXIofnl8CnpvbFpZSilTMjlRX2V9aG1ZaDYpWXk9T3p1bzxBM0s/bzc4fF9zUjMjPVp7X1J5
bTBnKV9oUT42d0BhLSh1MDJQNwp6YVEpIyh1VWx7SFcldFlOUzNJdENeaUF0SyhlS2xMYGY5K3ti
SnpJU0U/dThfejM7fkM4QEZ5SS01al9qeTdsO1cKel9VI3ZVM2hxcVlVMyFtcnVsJkIre3B0dCQ1
OSl1a3s7XzRpWlElR3x6K2xoQVNyNnxIMzVUQmtsPmdJKjtuR0xVCnpON1ctbkJhTSVwQTBIYkg4
b2x5bCZYZUoldlpvV3olNj9ZPWRGeWtsPWltTH1gJUJNUXtNaGdkYEhSb0x1NmUyUgp6YV9fNkR1
UjZ5ZyN+LX1UY3xHeF97SEBPMGVlYnlNeTVHbVdBREpscEs+a3FrKGZWVkByX2ZMTEtJZVM/ezRl
KX0Kel5aTzt6cEVDZGUwM2MmWFFjVkI9ZEw7az1mUCgtNGBUcWFfZmF3NExidWEoYD5SPG8+SSt5
P2U3aktlWiNZTy1DCnowV25FTEt+IzkhdGRxVEowem5qb3pkTnE1eypZPmZDRVhUamJlam1tZmB2
KDg7ZDcrT1RPYGtzQX1fT0d3VHhZQwp6UWJaQWdJSk48YzlWYm5NI0g9eGY5NX5IenpSU0lIWFQq
RVlzWndRIUFgKihvckhGKjNsPXVGTmZtKWlUcWRkPUYKeihsaXxid1FyZHtwcT9iaiY9fDl0JjFU
Kmh2cjNYPTItSGc8cHJOJU03LUpVbWBQfWJwajlGLXsyUzgoJjc0SlBGCnooZz8kX0owNmM4VGRt
ZmB7c2A5RT1ZR0ZgdilPRFctdXBLSllDdCM3Xk1AI2tJKWBwLXhtLVQ9ZGM5ajxxSlZhbQp6VyVv
WTswOHRjbXZNanA7KzV5bXY8TT5LTWpfeE9wPDc9UTkwSFR6dHske0JuUVV5ZnUyTCZHJFBLSnVA
YzNWXmAKem1FYyZ8SWFkSU0wQGx7cnNkTFdsS2JPeVQmTip4QzZqJSN6MkFsKFcqWHt1b3ojNGQh
ZkJQRTheZ2FPQkYxRl8kClNkSXVLKDAwMDA8TU5VTW5MU1RaeHJyMml5CgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvU2xpZGVyVGh1bWJQcmVzc2VkQDJ4LnBuZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVtYlByZXNzZWRAMngucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJlYzU0MmY1OGM3MzE1NmI4ZGI1NzdiZDYzNWIwMzQ3NzZhZTAxYjEKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDM0NjMKemNtVjsyNFM0ZDJQKTxoOzNLfExrMDAwZTFOSkxUcTAwMF5RMDAx
SGcxXkBzNkwxVzFkMDAwMDlhN2JCbTAwMFhVCnowMDBYVTBSV251N3l0a1lPPSZ8elAqNy1aYlo+
S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtb3kpY1VZNzY3Q3p0aQp6V2UtK0Qqem1FSlk9SG5HQmRp
Rj41THUhU2teb19aNUU0TWVnQF83UDZjckppTkw5cHcpZTE8Umh+bDZxeE14OSUKemgrMnpQVHNa
Q0ArXjRtRGRoaE0rYGA3IXQ9YlkjSyZVdyFkZkRzWlZrPjtYbTA2OXtISlVaQVBrNTVSJSQtUklB
Cno2LWVMJkFRMHh1IWU8ND0wMDhnPGQzYih3dXN7Myh1V3RZWDBDM2VWQm9mRXJ8QVY/dkNSWUY7
a3BTUSM2NlhzNgp6a1d2ODFFPnlAQTBMVH5zdXY0PlMzSUxQPDBCbWBETEx2YUY0RkslKU5qP1B0
KnJ9Nzs3WGE5ejlIfEhaalI2M2UKekNgVGokSylWMjdSZUA0MDA+SHVtcHNZWTVFKEV9PzBmMVN5
R0RpWXt5IylZdmojIVduS3d0b1huTDtlZzAzYkw1CnowN0QpViU+eTd6MUU0VXt6dT43fmFEfSk/
MFJYX3VtQ2N0KyhsWnBlbUN6YkBeNj1vfEE+elZwdXxpPU5ERys3fQp6PFJZQXhuPEVvUT1MMWE2
MzsrTmNgTyg0dEk2c2kqPUglaCNYNkoxMF51P243WXcmTChKfFhlbns9QUY9MU9PMEQKeiYrcG5f
PD5sNGBhS3swI2ItIXo9VEw5V3QwQkdPJlR7R0pXcGpyeWhkaWpmYUlRJjIhb31wMDRKUktZZzNr
JlRmCnpWeGhlLTxCTEIzR3ZST0dpKz1YfUtweV92ZGhoXm9ubjBQWXpAdmx4YWJhJER1MlBRWSVM
R0MoWnVqUlN7Pk8hWAp6e2Y7VG87eHdeYkVFUzZKU2MkayRCMkNBNnhsKWx0QTwzMkU2NnQ/M0Bn
SjdgMzZwbVgwSVleanopclJZd2FhWTQKemUobkpSaXc7PVFiXnQocl5EVEBUM3l9YTJYRVpXLV9X
JUhzenhqX3FEKip0X20hI3RXMEtEaUpUJlI+Nk92VlRSCnowN1JnSER6SEhaNDhhdHZ6eiY/ajls
WEY3MCR+UDNLbnhfbkpQPCsjPGJXSXNwJXw3eThDMVlKKmFXcSgwfigrYQp6biZBKyUhNyhAdT1p
bX10ZiRNTT0yNEVQVCFXZ2BVMj9SbU4yb3FyO0kqMVdzakBUbTMycDVALTFSYE5iRz9JWCUKekFu
QXd7UTZrMDJhLTsmT0xUWnMrTkYod3NhdWhqQFR0TkRlK3NHZz9pdXtWYU09X0x2dlFZIW4wKEMm
U3MyPmBOCnojLU1aMmJUa2lMZlI+X2IoSGdXS0olRn5Ocl9vRjNiI3dySWlqSEd8KEo+QllqTS1z
YWpFNjtGaUM3dlkjfTtHZAp6U1QkQ1VIRGV1RUgrQl5wekBCMDYycVhmRmZEYE5wVVc1P0JZPVYl
R01fNWMpTCNRUn1CZVc4XzJ2LVMlZ2ZZUz0KekI5b3wzdj9ZMkhgTlZpKUk8YiZnTXl3fDhBcyEp
fkMwLXtFNkpMYF5CbzRgdjxXMzQ5QzZGPm4zclRCOCtlal4+CnpRPX5yOTVOVnVEQ2hMJUckPT43
JHZWZzIwbXl4JVM1MEZvaWBebSVQdy1oP1hofmk4TXE5anRKbG9Db2NXazJOdgp6ckpwaUZuVl9t
cyY4ZVEkMiYjeFdwSVMrNnBtdEMlUS1gUyZHPEJMSyY2XmZPJWNMISUpekYlMFhLRDluRlg/bzsK
ejNFaEpwTVZIVyoocmY0az5GNFEjXm1oeW1oN0UocU5NYX0lWVotZVByeD4+eEZQVGlIMT1FK0Ek
VyQ9Ykc4PnNeCnptPUJuNVJhaCRhRHRyfUAkYFh9Mmx+JEYwbUZLRWRSZFpFOClwQEU1Ukk2MUZ0
Nm8tcHJiYm4+UH4paXkpRTJBTgp6c1UyMGpzV3pfOFFnPjMxUHxzMGNxclBBTGc4RXwodldBNjVw
b1UxSlJBYVpzOEkyKHAjeGlCYFNWR292UnMtdVMKelluVi05VGVBNz1PbStxUDgrST55T2pBUjFz
JUVUYWshR0ZkYW1AaF4jPEFlPUlvWF5fJkxQZVgmVS1CYkVrNy0+CnopQHJTMHQkd1hIK0lyZikr
RzZjOz9IMjlwK1Y2RjZvanshfG8lSzN4SWA/JTZ4O0RCfHhgbiNpYjxnVFAoX2B5LQp6PT9WNDle
JHpMWChNUj1kXnJRNmA+aElSPyhIfVEzR3pkMTM4RWkyKVdBTXo3VzlWeWBYfUhud2d5RTxXJVZA
ZmgKeiNBdV9ATnV3dllDaG11NDwyODV9SzR6P005QWQwQS1ldWZ0SllpeUtHVFdyWXF7WmFFRGIx
OD9ucjZEdXc5fENWCnolKlpVPHRrfHJ7PzJiOXJvTkp6OHpTK0Zue0VkYUJNViFTLWkjQ2hMbWZE
dGwlTFNIQW1pTWZmUno2bUZSYHBpYgp6dFZ6fmY+biFWUyk+bXYkOCZ7aFFuPnc0end5M1J9dDtC
WWxaUW01KTZwdHk9RGZMcnMrQS18Pj48YTlmPjt+O1EKel9GP3VWX0hGamg5bjJnTzlvOVFeSkE4
NjxiPEIyYmFKPWlKO1dXZGsjSHF2U1M3I2UlcD52KHtINWFCIWtqb082CnpjOSQxWlpLc04tWmw4
TH5tRXtgbHkzKTFOXmBvMStvN31EMFpQZVkmSjtpO2lgJU55SjhfOFk2Sj99eUVAYl81YQp6YW0/
ZUxyPDxxM15Oe0IrVVVwdHRVaS1ac1BxVW1ScDRLcEokbEp0UTtKd1J4VV4rZk1XJXx6UDEzdHor
MC10KUgKemhyWHUxQkh1bH1CWXhJP25TS1pTcDhHcmMlbChofHp1fGZFN1YlQzZVOyk3YTxwSTVj
OGlCSXxZWGN0eW5GT1Q9CnpIM2Z8WXk5T0B8SnszWD8yQFAydmErN2JzN3hFa1ZWPjhAbUVTa3wz
JF9Ta21Te3dRPiVxQzE4KSk5X3wmantaVAp6ZXM4QXZPekYoRjIjRFpFWT4yb1lYJklScGBGI3tB
RGwpMXI+UVNeKWJhOGF8RVlfXiNTXkg8YmpgNUdGakpaNDgKellQTkVBWFJLOyRRZnk9Rm80QTB1
czw/cjhoeGtTRG1sQVhuQm5qPF88aXl5LUomRUlVMF9TWCtHbzBqX1JGLXNPCnp1STFkS3hma1o/
JmRaKjZKWHRrYWtiRjNXbT1jJD1Lam5pVUxRcFJsUHZ4Zz5PJnReUmdxd3Y9TVpUaHFxRVdIOAp6
eEpvPmQ9QUJsUl9CaD07ZU05PGFoRUdPeSN4bl58UVkoM3A4SXJqcF5HI01uKjUwaG8qPlR3fElo
MzR+b1RFfD0KelhfbUFyKkQkdnp3QCtwKEUwWWM2ZEZFfSg4PFU2MV92OW5fYk14QzNZPXVuR3Fx
SWA0UCExTU1GUV9ZY1ROcW4tCnp4SmJRN1RHVFYmWDghOD1CTVg4U2U3JXNjUGBJJE8qdG1GRUAh
JXJBTVl8UndpJkdiT0UtX3RGeEAzNTFAWH4kRAp6WHY/eWV7WlFncVFkUlA1ZEVEfWpRaUlaXnI5
JiUlUzJVSFdsKiE5KHVKbF5EVi07YlFXTDU4S20oXlFWZTx+TjEKelUjeEpmc0lLXzFNITRxVVM1
OUJtZUQhJjQrUz1ZcXg2MUE3TmI5OFFabWpvTnpwcU5ZWUMrWXxoVlR1bzh9V19oCno4KChjby1n
S2RRWVcwckl3OVUlUjEydGhhP09WKll0bFJSVEhseX0+b3F0YCtSe2dFM3g0empYK1NiM19jWUVe
PQp6Z0I9dystdFV5YHl0T05NUzhLZ1JlZjRoQT90PE5xOGUkdXx6dmgxM3hKUCRTI2gjQ1FyRiNl
Vk1lcGxzYlo+MGoKenVmTTt0MzJqbX5qVUdya2FPSW5UWmB6eWZucz5FdVN9RzMwTEZLX0ctPT0o
Zjw1MXxLJmNvY3AmRUpgU3hBaDM/CnpOTz4jTEk9XitTRXUoRnFKKXludD0hflBDOWJPJHJ6UEpC
PT89ajxKYjttVzJTRHY3cUNfVkF7PGJzcHFyKH55fAp6b2xaWUopUzI5UV9lfWhtWWg2KVl5PU96
dW88QTNLP283OHxfc1IzIz1ae19SeW0wZylfaFE+NndAYS0odTAyUDcKemFRKSModVVse0hXJXRZ
TlMzSXRDXmlBdEsoZUtsTGBmOSt7Ykp6SVNFP3U4X3ozO35DOEBGeUktNWpfank3bDtXCnpfVSN2
VTNocXFZVTMhbXJ1bCZCK3twdHQkNTkpdWt7O180aVpRJUd8eitsaEFTcjZ8SDM1VEJrbD5nSSo7
bkdMVQp6TjdXLW5CYU0lcEEwSGJIOG9seWwmWGVKJXZab1d6JTY/WT1kRnlrbD1pbUx9YCVCTVF7
TWhnZGBIUm9MdTZlMlIKemFfXzZEdVI2eWcjfi19VGN8R3hfe0hATzBlZWJ5TXk1R21XQURKbHBL
PmtxayhmVlZAcl9mTExLSWVTP3s0ZSl9CnpeWk87enBFQ2RlMDNjJlhRY1ZCPWRMO2s9ZlAoLTRg
VHFhX2ZhdzRMYnVhKGA+UjxvPkkreT9lN2pLZVojWU8tQwp6MDw9ailLfiM5IT8zUFZTOCZNUjdw
R2lXRVBCS05Tc1M3YDhCUENHJDB3Y0tkQ2o/eVIhaXtZYnMyam4kM3Z9bkEKejNyVkM0bzJfV1R8
S1E0ezMmVnNeUEAxJCF6KUQqb2FjRC0tK2VJZk9OfE5Ud3cyTDBOJXJKTkVkRkk/Uj1lJD1FCnpM
ZUw1YChJVF9sZUlRQkZwVm85NSpZaUA3PCN4elk8QS0kdFBVSFI8XytFRUo3Mz5sNGJZbyt+MyRV
YFhAKlgkPQp6ekUhbmEyeXR0YXYyTVR9Mm41enVSVFprTGlhO1ErNCFEaUV2aV5TaXRwZH55eGN6
P3JueVJZVCR6KU9fbFMhZWYKej5iMmtSVW8mN21qZTtEMit2RDswVnpKbSYwYTYmVFNuU0g8QCVS
andxWV9CRT4lOGMlYXskQSR2JE19T0gjZkl6CnpIZHxZJWE1WVdTbXpTNClgfV9NSmZQQGdAdGtp
cXVLI3pncG5WRmQ8O2N6JUMlV2B8QUpacVp2IXxWMEZJNTtAPwp6WHUhVHkxTF81YUNNRzVad3pz
IyN2TWVqcns4WEJ6V2Z2RDBVbWhNRmVnPXw0aHxgaUY9fnBQZHp+ST19U3BVdz4KeiZYJnopPiNV
ezdFLW8oNDdadyhMTUBMNX47MWg1djQxZ3FyeENJIzw5cXJyUS1GO2BiK2EyfF5ucGBlLUhhfGNB
CnpEakpRWmkoIVJjKjkjMWVrQnwzOUI5VU9kNUNGVH4/dWJNcHB+PWF+MGJ0UFpqUmU+TW0mQGhx
K3VQZkZ0MD5CRgp6R24hfk5uQCFCayZBcER0PDdwc25HS3goTzI3Xm5BcTZ7XndUUHVuKDZiZ2x3
MDIlMTkwUFRReldNcEpvcy1rdCoKelYzTzE2b0NlSDV5VUVaYiQhcz47bnlvPkdQWUUhWThqeV5k
KVdLM3pzTTAtdnE/U3YwPigzMUx2dllxVHFMeXgqCno0JjNPdnUzTjN2d3Fgb2Q9a3EjbjFMITZv
MlY3PHtuTTY0bXU2SlpJbkZNZU48ampCb3k1ak04YlpUbnFjfUdYYgp6THlOXj9aWF48MipSTjhr
KVhEMVY+WUg+cntTYDxUXnIrSn43K1FlYE9+fkRpNWxKMzY3REFqQ0UzNkRDaEhOeU4KcEU4UiMq
UnRUWSRKVHZeU3FraihjYXt6dnVvKjdyb21ValJFMDAyb3ZQREhMa1YxaWl2b0t5ZSsKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01haW4uaHRtbAppbmRleCA4NjZmYWQ2NDg3ZjIzNzMyNjI1OWViMjcxMWYwOGNmODkxZDIyZjEx
Li4zNTZlOGY1ZTNkMTc4Njk1NDBiMjZjN2RjOWQ3MzNjOWQ4Mjk2NjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0xMTgsNyArMTE4LDkg
QEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNvbXBsZXRpb25TdWdnZXN0aW9u
c1ZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNvZGVNaXJyb3JP
dmVycmlkZXMuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNvbnNvbGVQ
cm9tcHQuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNTU0NvbG9yUGlj
a2VyLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJTbGlkZXIuY3NzIj4K
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNvbG9yV2hlZWwuY3NzIj4KKyAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNvbG9yUGlja2VyLmNzcyI+CiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJDb2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9s
bGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJHb1RvTGluZURpYWxv
Zy5jc3MiPgogCkBAIC0zMjAsNyArMzIyLDkgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29tcHV0ZWRT
dHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJ1bGVzU3R5
bGVEZXRhaWxzUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNZXRyaWNzU3R5
bGVEZXRhaWxzUGFuZWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDU1NDb2xvclBp
Y2tlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlNsaWRlci5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9IkNvbG9yV2hlZWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJDb2xvclBpY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJ
bmRldGVybWluYXRlUHJvZ3Jlc3NTcGlubmVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NsaWRlci5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TbGlkZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NDA3MzQ1
ZDQ2ZjJlYzJlMjQwOTdjZDI0YmFhZWI3YmQwNmZmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TbGlkZXIuY3NzCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisuc2xpZGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
aGVpZ2h0OiAxMXB4OworICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2IoMTQ4LCAxNDgsIDE0OCk7
CisgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7Cit9CisKKy5zbGlkZXIgPiBpbWcgeworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAtNXB4OworICAgIHRvcDogLTVweDsKKyAg
ICB3aWR0aDogMTRweDsKKyAgICBoZWlnaHQ6IDE3cHg7CisgICAgY29udGVudDogLXdlYmtpdC1p
bWFnZS1zZXQodXJsKEltYWdlcy9TbGlkZXJUaHVtYi5wbmcpIDF4LCB1cmwoSW1hZ2VzL1NsaWRl
clRodW1iQDJ4LnBuZykgMngpOworfQorCisuc2xpZGVyID4gaW1nLmRyYWdnaW5nIHsKKyAgICBj
b250ZW50OiAtd2Via2l0LWltYWdlLXNldCh1cmwoSW1hZ2VzL1NsaWRlclRodW1iUHJlc3NlZC5w
bmcpIDF4LCB1cmwoSW1hZ2VzL1NsaWRlclRodW1iUHJlc3NlZEAyeC5wbmcpIDJ4KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NsaWRlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NsaWRlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNDk2MTM3NTI0OGMzZjcwNDIwMjM0M2EwNDUwYTVmNjMzMmUyYTQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU2xpZGVyLmpzCkBAIC0w
LDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlNsaWRlciA9IGZ1bmN0aW9u
KCkKK3sKKyAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgdGhpcy5fZWxlbWVudC5jbGFzc05hbWUgPSAic2xpZGVyIjsKKworICAgIHRoaXMuX2tu
b2IgPSB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlt
ZyIpKTsKKworICAgIHRoaXMuX3ZhbHVlID0gMDsKKyAgICB0aGlzLl9rbm9iWCA9IDA7CisgICAg
dGhpcy5fX21heFggPSAwOworCisgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCB0aGlzKTsKK307CisKK1dlYkluc3BlY3Rvci5TbGlkZXIuS25vYldpZHRoID0g
MTM7CisKK1dlYkluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlID0geworICAgIGNvbnRydWN0b3I6
IFdlYkluc3BlY3Rvci5TbGlkZXIsCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZSwKKyAgICAKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBlbGVtZW50KCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0sCisgICAgCisgICAgZ2V0
IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTsKKyAgICB9LAorICAg
IAorICAgIHNldCB2YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhbHVlID0gTWF0aC5tYXgo
TWF0aC5taW4odmFsdWUsIDEpLCAwKTsKKworICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3Zh
bHVlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7
CisKKyAgICAgICAgdGhpcy5fa25vYlggPSBNYXRoLnJvdW5kKHZhbHVlICogdGhpcy5fbWF4WCk7
CisgICAgICAgIHRoaXMuX2tub2Iuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZTNk
KCIgKyB0aGlzLl9rbm9iWCArICJweCwgMCwgMCkiOworCisgICAgICAgIGlmICh0aGlzLmRlbGVn
YXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRlLnNsaWRlclZhbHVlRGlkQ2hhbmdlID09PSAiZnVu
Y3Rpb24iKQorICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZS5zbGlkZXJWYWx1ZURpZENoYW5nZSh0
aGlzLCB2YWx1ZSk7CisgICAgfSwKKyAgICAKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGhhbmRs
ZUV2ZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZlbnQudHlw
ZSkgeworICAgICAgICBjYXNlICJtb3VzZWRvd24iOgorICAgICAgICAgICAgdGhpcy5faGFuZGxl
TW91c2Vkb3duKGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJtb3Vz
ZW1vdmUiOgorICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2Vtb3ZlKGV2ZW50KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJtb3VzZXVwIjoKKyAgICAgICAgICAgIHRoaXMu
X2hhbmRsZU1vdXNldXAoZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9LAorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU1vdXNlZG93bjogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSB0aGlzLl9rbm9iKQor
ICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICh0aGlzLl9sb2NhbFBvaW50Rm9yRXZlbnQoZXZlbnQp
LnggLSAzKSAvIHRoaXMuX21heFg7CisKKyAgICAgICAgdGhpcy5fc3RhcnRLbm9iWCA9IHRoaXMu
X2tub2JYOworICAgICAgICB0aGlzLl9zdGFydE1vdXNlWCA9IHRoaXMuX2xvY2FsUG9pbnRGb3JF
dmVudChldmVudCkueDsKKworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoImRy
YWdnaW5nIik7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIs
IHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIs
IHRoaXMsIHRydWUpOworICAgIH0sCisKKyAgICBfaGFuZGxlTW91c2Vtb3ZlOiBmdW5jdGlvbihl
dmVudCkKKyAgICB7CisgICAgICAgIHZhciBkeCA9IHRoaXMuX2xvY2FsUG9pbnRGb3JFdmVudChl
dmVudCkueCAtIHRoaXMuX3N0YXJ0TW91c2VYOworICAgICAgICB2YXIgeCA9IE1hdGgubWF4KE1h
dGgubWluKHRoaXMuX3N0YXJ0S25vYlggKyBkeCwgdGhpcy5fbWF4WCksIDApOworCisgICAgICAg
IHRoaXMudmFsdWUgPSB4IC8gdGhpcy5fbWF4WDsKKyAgICB9LAorCisgICAgX2hhbmRsZU1vdXNl
dXA6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xp
c3QucmVtb3ZlKCJkcmFnZ2luZyIpOworCisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3Rl
bmVyKCJtb3VzZW1vdmUiLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50
TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLCB0cnVlKTsKKyAgICB9LAorCisgICAgX2xvY2FsUG9p
bnRGb3JFdmVudDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gd2luZG93
LndlYmtpdENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKHRoaXMuX2VsZW1lbnQsIG5ldyBXZWJL
aXRQb2ludChldmVudC5wYWdlWCwgZXZlbnQucGFnZVkpKTsKKyAgICB9LAorCisgICAgZ2V0IF9t
YXhYKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9fbWF4WCA9PSAwICYmIGRvY3VtZW50LmJv
ZHkuY29udGFpbnModGhpcy5fZWxlbWVudCkpCisgICAgICAgICAgICB0aGlzLl9fbWF4WCA9IHRo
aXMuX2VsZW1lbnQub2Zmc2V0V2lkdGggLSBXZWJJbnNwZWN0b3IuU2xpZGVyLktub2JXaWR0aCAv
IDIgLSAxOworCisgICAgICAgIHJldHVybiB0aGlzLl9fbWF4WDsKKyAgICB9Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5z
cGVjdG9yVUkudmN4cHJvaiBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52
Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKaW5kZXggOGRhNTMwZjM3Mjg5M2NjZjMwN2I3
OGM1M2I5MWI2NGJmNzljMzYzNS4uOGI1NGIxZDhmZjU3YzRlNzkxOTEzOGRmM2E0YzY0ZGZjMGVj
NWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZj
eHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
V2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qCkBAIC0xLDQgKzEs
NCBAQAot77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KIDxQcm9qZWN0IERlZmF1bHRUYXJnZXRz
PSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3Nv
ZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KICAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJv
amVjdENvbmZpZ3VyYXRpb25zIj4NCiAgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9
IkRlYnVnX1dpbkNhaXJvfFdpbjMyIj4NCkBAIC0yMTQsOCArMjE0LDggQEAKICAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcyIgLz4N
CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb29raWVTdG9yYWdlT2JqZWN0
LmpzIiAvPg0KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvb2tpZVN0b3Jh
Z2VUcmVlRWxlbWVudC5qcyIgLz4NCi0gICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFj
ZVxDU1NDb2xvclBpY2tlci5jc3MiIC8+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRl
cmZhY2VcQ1NTQ29sb3JQaWNrZXIuanMiIC8+DQorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJ
bnRlcmZhY2VcQ29sb3JQaWNrZXIuY3NzIiAvPg0KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2Vy
SW50ZXJmYWNlXENvbG9yUGlja2VyLmpzIiAvPg0KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2Vy
SW50ZXJmYWNlXENTU0NvbXBsZXRpb25zLmpzIiAvPg0KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxV
c2VySW50ZXJmYWNlXENTU0tleXdvcmRDb21wbGV0aW9ucy5qcyIgLz4NCiAgICAgPE5vbmUgSW5j
bHVkZT0iLi5cVXNlckludGVyZmFjZVxDU1NNZWRpYS5qcyIgLz4NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52
Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4
cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYTBhZWI4YzJiZjI3NTYw
OGI4Y2MzZmU4MTA1ZDI2NzA4ZTIxMDU4Mi4uMGZiMmU5YzY5MDEyMzljNzIxMTUyNmZjNWNkMzI0
MjQ1MTc3OThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3Rv
clVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHBy
b2ouZmlsdGVycwpAQCAtMSw0ICsxLDQgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+DQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCiA8
UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
dC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQogICA8SXRlbUdyb3VwPg0KICAgICA8Rmls
dGVyIEluY2x1ZGU9IlJlc291cmNlIEZpbGVzIj4NCkBAIC0yNDksMTAgKzI0OSwxMCBAQAogICAg
IDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29va2llU3RvcmFnZVRyZWVFbGVtZW50
LmpzIj4NCiAgICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4NCiAgICAgPC9Ob25l
Pg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENTU0NvbG9yUGlja2VyLmNz
cyI+DQorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29sb3JQaWNrZXIuY3Nz
Ij4NCiAgICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4NCiAgICAgPC9Ob25lPg0K
LSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENTU0NvbG9yUGlja2VyLmpzIj4N
CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2xvclBpY2tlci5qcyI+DQog
ICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+DQogICAgIDwvTm9uZT4NCiAgICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDU1NDb21wbGV0aW9ucy5qcyI+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217031</attachid>
            <date>2013-11-15 02:29:44 -0800</date>
            <delta_ts>2013-11-15 03:00:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-124354-20131115112944.patch</filename>
            <type>text/plain</type>
            <size>78643</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
Y2NlNjM4ODlhNjkwMThhMzdlODA2YjAyOTE4NGM5MWZkZjkzN2VmLi42YmRiOGE4ZjY0YTNjYmZl
YWY2MjYxYWE0YzEzY2M2Mjg4OTA3MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzYgQEAKKzIwMTMtMTEtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXcgY29sb3IgcGlja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQzNTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgQmVnaW5uaW5nIG9mIGEgbmV3
IGNvbG9yIHBpY2tlci4gVGhlIGZvY3VzIG9mIHRoaXMgbmV3IHBpY2tlciBpcyB0byBsZXQgeW91
IHBpY2sgZnJvbQorICAgICAgICBhIGNvbG9yIHdoZWVsIGFzIHRoZSBwcmltYXJ5IG1lYW4gb2Yg
Y29sb3IgcGlja2luZywgd2l0aCBhZGRpdGlvbmFsIHNsaWRlciBjb250cm9scyBmb3IKKyAgICAg
ICAgdGhlIGJyaWdodG5lc3MgYW5kIHRoZSBvcGFjaXR5LCBiZXR0ZXIgbWF0Y2hpbmcgdGhlIGRl
ZmF1bHQgT1MgWCBjb2xvciBwaWNrZXIuIFRoaXMgaXMgdGhlCisgICAgICAgIGJhc2lzIGZvciBh
IGNvbG9yIHBpY2tlciB0aGF0IHdpbGwgZXZvbHZlIHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZzoK
KworICAgICAgICAtIGVkaXRhYmxlIENTUyB2YWx1ZSBsYWJlbCAoaHR0cDovL3dlYmtpdC5vcmcv
Yi8xMjQzNTYpCisgICAgICAgIC0gcGlja2luZyBhIGNvbG9yIGFueXdoZXJlIG9uIHNjcmVlbiAo
aHR0cDovL3dlYmtpdC5vcmcvYi8xMjQzNTcpCisgICAgICAgIC0gc3dhdGNoZXMgYmFzZWQgb24g
b3RoZXIgY29sb3JzIGluIHBhZ2UgKGh0dHA6Ly93ZWJraXQub3JnL2IvMTI0MzU4KQorCisgICAg
ICAgIE5vdGUgYWxzbyB0aGF0IHRoZSBjb2xvciB3aGVlbCBoYXMgbm90IGJlZW4gdGVzdGVkIG9u
IFJldGluYSBkaXNwbGF5cworICAgICAgICAoc2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTI0MzU1
KS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNrZXIuY3NzOiBSZW1vdmVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNrZXIuanM6IFJlbW92ZWQuCisg
ICAgICAgIFByZXZpb3VzIGNvbG9yIHBpY2tlciwgbm93IHJlbW92ZWQgaW4gZmF2b3Igb2YgdGhl
IG5ldyBDb2xvclBpY2tlciBjbGFzcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIEFkb3B0IG5ldyBjbGFzcyBuYW1l
IGZvciB0aGUgY29sb3IgcGlja2VyLCBhZGQgYSBsaXR0bGUgcGFkZGluZyB0byB0aGUgcG9wb3Zl
cgorICAgICAgICB0YXJnZXQgZnJhbWUgYW5kIHNldCB0aGUgYmFzZSBjb2xvciBhZnRlciB0aGUg
cGlja2VyIGhhcyBiZWVuIHByZXNlbnRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29s
b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9oc2xUb1JHQik6
CisgICAgICAgIFNpbXBsaWZpZWQgbWF0aC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9y
LnJnYjJoc3YpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLmhzdjJyZ2IpOgorICAgICAg
ICBOZXcgdXRpbGl0aWVzIHRvIGRlYWwgd2l0aCBIU1YgY29sb3JzIHVzZWQgaW4gdGhlIENvbG9y
V2hlZWwuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbG9yUGlja2VyLmNzczogQWRkZWQu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbG9yUGlja2VyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db2xvclBpY2tlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29s
b3JQaWNrZXIucHJvdG90eXBlLmdldCBlbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b2xvclBpY2tlci5wcm90b3R5cGUuc2V0IGJyaWdodG5lc3MpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yUGlja2VyLnByb3RvdHlwZS5zZXQgb3BhY2l0eSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29sb3JQaWNrZXIucHJvdG90eXBlLmdldCBjb2xvcik6CisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db2xvclBpY2tlci5wcm90b3R5cGUuc2V0IGNvbG9yKToKKyAgICAgICAgV2Ugc2V0
IHRoZSBfZG9udFVwZGF0ZUNvbG9yIGZsYWcgaGVyZSBzdWNoIHRoYXQgd2UgZG9uJ3QgYXR0ZW1w
dCB0bworICAgICAgICBub3RpZnkgYWJvdXQgYSBjb2xvciBjaGFuZ2UgYXQgdGhpcyBwb2ludCBp
biBjYXNlIHRoZSBzZWxlY3RlZCBjb2xvcgorICAgICAgICBpcyB0b28gc2F0dXJhdGVkIHRvIGJl
IHJlcHJlc2VudGVkIGFjY3VyYXRlbHkgb24gdGhlIGNvbG9yIHdoZWVsIGFuZAorICAgICAgICB3
ZSB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIGNvbG9yIGJ5IHZpcnR1ZSBvZiBwcmVzZW50aW5n
IHRoZSBwb3BvdmVyLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JQaWNrZXIucHJvdG90
eXBlLmNvbG9yV2hlZWxDb2xvckRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29s
b3JQaWNrZXIucHJvdG90eXBlLnNsaWRlclZhbHVlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db2xvclBpY2tlci5wcm90b3R5cGUuX3VwZGF0ZUNvbG9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvclBpY2tlci5wcm90b3R5cGUuX3VwZGF0ZVNsaWRlcnMpOgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Db2xvcldoZWVsLmNzczogQWRkZWQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuanM6IEFkZGVkLgorICAgICAgICBUaGUgQ29sb3JXaGVl
bCBtYWtlcyB1c2Ugb2YgdGhyZWUgZGlmZmVyZW50IDxjYW52YXM+IGVsZW1lbnRzIHRvIGRyYXcg
aXRzZWxmLgorICAgICAgICBUaGUgInJhdyIgY2FudmFzIGlzIHVzZWQgdG8gZHJhdyB0aGUgcmF3
LCB1bi10aW50ZWQgY29sb3Igd2hlZWwgd2l0aCBwb29yCisgICAgICAgIGFsaWFzaW5nLiBUaGUg
InJhdyIgY2FudmFzIGlzIG9ubHkgZHJhd24gd2hlbiB0aGUgZGltZW5zaW9uIGlzIGNoYW5nZWQu
CisgICAgICAgIFRoZSAidGludGVkIiBjYW52YXMgaXMgdXNlZCB0byBkcmF3IHRoZSAicmF3IiBj
YW52YXMgd2l0aCBhIGJsYWNrIG92ZXJsYXkKKyAgICAgICAgYmFzZWQgb24gdGhlIGJyaWdodG5l
c3Mgc2V0IG9uIHRoZSB3aGVlbC4gVGhlICJmaW5hbCIgY2FudmFzLCB0aGUgb25seSA8Y2FudmFz
PgorICAgICAgICBlbGVtZW50IGF0dGFjaGVkIHRvIHRoZSBET00sIGlzIHVzZWQgdG8gZHJhdyB0
aGUgInRpbnRlZCIgY2FudmFzIGludG8gYSBjaXJjbGUKKyAgICAgICAgY2xpcCBvZiBhIHNsaWdo
dGx5IG5hcnJvd2VyIHJhZGl1cyBzbyB0aGF0IHRoZSBkcmF3biBpbWFnZSBpcyB2aXN1YWxseSBt
b3JlIHBsZWFzaW5nCisgICAgICAgIGFuZCBjYW4gYmUgZGlzcGxheWVkIGFib3ZlIHZpcnR1YWxs
eSBhbnkgYmFja2dyb3VuZCBjb2xvci4KKworICAgICAgICBXZSB1c2UgY29sb3IgbWF0aCB0byBn
ZW5lcmF0ZSB0aGUgY29sb3Igd2hlZWwsIGNvdXJ0ZXN5IG9mIERlYW4gSmFja3NvbiwgYW5kIGFs
c28gdG8KKyAgICAgICAgZmlndXJlIG91dCB3aGVyZSB0byBwb3NpdGlvbiB0aGUgY3Jvc3NoYWly
IGZvciB0aGUgcHJvdmlkZWQgYmFzZSBjb2xvciBhcyB3ZWxsIGFzCisgICAgICAgIHRoZSBvcHBv
c2l0ZSBvcGVyYXRpb24gd2hlcmUgd2UgZ2V0IHRoZSBjb2xvciB1bmRlciB0aGUgbW91c2UgcG9p
bnRlci4KKworICAgICAgICBUaGUgY29sb3Igd2hlZWwgZmlyZXMgYSBzaW5nbGUgZGVsZWdhdGUg
bWV0aG9kIGNhbGwgY29sb3JXaGVlbENvbG9yRGlkQ2hhbmdlKGNvbG9yV2hlZWwpLAorICAgICAg
ICB0aGUgY29sb3JzIHRoZW1zZWx2ZXMgYmVpbmcgcmV0cmlldmVkIHZpYSB0aGUgcHVibGljIHBy
b3BlcnRpZXMgdGludGVkQ29sb3IgYW5kIHJhd0NvbG9yLgorCisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29sb3JXaGVlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5
cGUuc2V0IGRpbWVuc2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90
b3R5cGUuZ2V0IGVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJv
dG90eXBlLmdldCBicmlnaHRuZXNzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVs
LnByb3RvdHlwZS5zZXQgYnJpZ2h0bmVzcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3JX
aGVlbC5wcm90b3R5cGUuZ2V0IHRpbnRlZENvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b2xvcldoZWVsLnByb3RvdHlwZS5zZXQgdGludGVkQ29sb3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLmdldCByYXdDb2xvcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl9oYW5kbGVNb3VzZWRvd24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl9oYW5kbGVNb3VzZW1vdmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl9oYW5kbGVNb3VzZXVwKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5fcG9pbnRJbkNpcmNs
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5f
cG9pbnRJbkNpcmNsZUZvckV2ZW50LmFuZ2xlRnJvbUNlbnRlclRvUG9pbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl9wb2ludEluQ2lyY2xlRm9yRXZlbnQu
cG9pbnRPbkNpcmN1bWZlcmVuY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwu
cHJvdG90eXBlLl91cGRhdGVDb2xvckZvck1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yV2hlZWwucHJvdG90eXBlLl9zZXRDcm9zc2hhaXJQb3NpdGlvbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUuX3RpbnRlZENvbG9yVG9Qb2ludEFu
ZEJyaWdodG5lc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwucHJvdG90eXBl
Ll9kcmF3UmF3Q2FudmFzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcldoZWVsLnByb3Rv
dHlwZS5fY29sb3JBdFBvaW50V2l0aEJyaWdodG5lc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbG9yV2hlZWwucHJvdG90eXBlLl9kcmF3VGludGVkQ2FudmFzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db2xvcldoZWVsLnByb3RvdHlwZS5fZHJhdyk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVtYi5wbmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iQDJ4LnBuZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvU2xpZGVyVGh1bWJQcmVzc2VkLnBuZzogQWRkZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9JbWFnZXMvU2xpZGVyVGh1bWJQcmVzc2VkQDJ4LnBuZzogQWRkZWQuCisg
ICAgICAgIFN1cHBvcnRpbmcgYXJ0d29yayBmb3IgdGhlIG5ldyBTbGlkZXIgY2xhc3MuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgUmVtb3ZlIHRoZSBwcmV2
aW91cyBjb2xvciBwaWNrZXIgY2xhc3MgYW5kIGFkZCB0aGUgbmV3IG9uZSwgYXMgd2VsbCBhcyB0
aGUgbmV3IFNsaWRlciBjbGFzcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvU2xpZGVyLmNz
czogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1NsaWRlci5qczogQWRkZWQuCisg
ICAgICAgIE5ldyBzbGlkZXIgdG8gbWF0Y2ggdGhlIGxvb2sgb2YgdGhlIHNsaWRlcnMgdXNlZCBp
biB0aGUgbmF0aXZlIE9TIFggY29sb3IgcGlja2VyLiBUaGUgbW9zdAorICAgICAgICBpbnRlcmVz
dGluZyBmZWF0dXJlIG9mIHRoZXNlIHNsaWRlcnMgaXMgdGhhdCB0aGV5IGNhbiBiZSB0cmFuc2Zv
cm1lZCB1c2luZyBDU1MgaW4gYW55IHdheQorICAgICAgICBhbmQgd2lsbCBzdGlsbCBvcGVyYXRl
IGNvcnJlY3RseSBkdWUgdG8gYWx3YXlzIGNvbnZlcnRpbmcgdGhlIG1vdXNlIGNvb3JkaW5hdGVz
IGluIHRoZSBwYWdlCisgICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtIHRvIHRoZSBjb29yZGluYXRl
IHN5c3RlbSBsb2NhbCB0byB0aGUgYmFja2luZyBlbGVtZW50LiBGb3IgaW5zdGFuY2UsIHRoZQor
ICAgICAgICBjb2xvciBwaWNrZXIgdXNlcyB0d28gc2xpZGVycyB0cmFuc2Zvcm1lZCB0byBiZSBk
aXNwbGF5ZWQgdmVydGljYWxseS4KKworICAgICAgICBBcyBpdCBzdGFuZHMgdGhlc2Ugc2xpZGVz
IG9ubHkgc3VwcG9ydCB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxIGFuZCBmaXJlIGEgc2luZ2xlIGRl
bGVnYXRlCisgICAgICAgIG1ldGhvZCBjYWxsIHNsaWRlclZhbHVlRGlkQ2hhbmdlKHNsaWRlciwg
bmV3VmFsdWUpLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xpZGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLmdldCBlbGVtZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2xpZGVyLnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNs
aWRlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNsaWRl
ci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xp
ZGVyLnByb3RvdHlwZS5faGFuZGxlTW91c2Vtb3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
bGlkZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZXVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
bGlkZXIucHJvdG90eXBlLl9sb2NhbFBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNsaWRlci5wcm90b3R5cGUuZ2V0IF9tYXhYKToKKworICAgICAgICAqIFdlYkluc3BlY3Rv
clVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvajoKKyAgICAgICAgKiBXZWJJbnNwZWN0
b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgVXBk
YXRlIGZpbGUgbmFtZXMgZm9yIHRoZSBuZXcgY29sb3IgcGlja2VyLgorCiAyMDEzLTExLTAxICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGN1c3Rv
bSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCgpIGluIGZhdm9yIG9mIG5hdGl2ZSB2ZXJzaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9DU1NDb2xvclBp
Y2tlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9DU1NDb2xvclBp
Y2tlci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0OTZhZDE5Mjc1MzI1MWRi
NTg1NDM5ZjlkNGE3ZGE0YjA5ZThiNDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ1NTQ29s
b3JQaWNrZXIuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQnJpYW4gR3JpbnN0ZWFkIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTWF0dCBIb2xkZW4gPGpmdGhvbGRlbkB5YWhvby5jb20+Ci0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLmNvbG9y
cGlja2VyLWNvbnRhaW5lciB7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgcGFkZGlu
ZzogNXB4OwotICAgIHdpZHRoOiAyMTJweDsKLSAgICB6LWluZGV4OiAxMDsKLX0KLQotLmNvbG9y
cGlja2VyLWZpbGwtcGFyZW50IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAw
OwotICAgIGxlZnQ6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgYm90dG9tOiAwOwotfQotCi0uY29s
b3JwaWNrZXItdG9wIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgd2lkdGg6IDEwMCU7
Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotfQotCi0uY29sb3JwaWNrZXItY29sb3Igewot
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICBi
b3R0b206IDA7Ci0gICAgd2lkdGg6IDE2MHB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkICNEMEQw
RDA7Ci19Ci0KLS5jb2xvcnBpY2tlci1ib3R0b20gc3BhbiB7Ci0gICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOwotfQotCi0uY29sb3JwaWNrZXItdGV4dCB7Ci0gICAgZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsKLSAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDsKLX0KLQotLmNvbG9ycGlja2Vy
LWNvbG9yLXRleHQtdmFsdWUgewotICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Ci0gICAg
cG9zaXRpb246IHJlbGF0aXZlOwotICAgIGxlZnQ6IDNweDsKLSAgICB0b3A6IC02cHg7Ci0gICAg
d2hpdGUtc3BhY2U6IHByZS13cmFwOwotfQotCi0uY29sb3JwaWNrZXItaHVlIHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIHdpZHRoOiAzMHB4OwotICAgIHJpZ2h0
OiAwOwotICAgIGJvdHRvbTogMDsKLSAgICAtd2Via2l0LWJveC1yZWZsZWN0OiByaWdodCAtMjhw
eDsKLX0KLQotLmNvbG9ycGlja2VyLWZpbGwgewotICAgIC8qIFNhbWUgYXMgY29sb3JwaWNrZXIt
Y29sb3Igd2lkdGggdG8gZm9yY2UgYXNwZWN0IHJhdGlvLiAqLwotICAgIG1hcmdpbi10b3A6IDE2
MHB4OwotfQotCi0uY29sb3JwaWNrZXItcmFuZ2UtY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjog
cmVsYXRpdmU7Ci0gICAgcGFkZGluZy1ib3R0b206IDVweDsKLX0KLQotLmNvbG9ycGlja2VyLXJh
bmdlLWNvbnRhaW5lciAqIHsKLSAgICBmb250LXNpemU6IDExcHg7Ci0gICAgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsKLX0KLQotLmNvbG9ycGlja2VyLXJhbmdlLWNvbnRhaW5lciBsYWJlbCB7Ci0g
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKLX0KLQot
LmNvbG9ycGlja2VyLXJhbmdlLWNvbnRhaW5lciBpbnB1dCB7Ci0gICAgbWFyZ2luOiAzcHggMCAw
IDNweDsKLSAgICB3aWR0aDogMTM3cHg7Ci19Ci0KLS5jb2xvcnBpY2tlci1zYXR1cmF0aW9uIHsK
LSAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCB3aGl0
ZSwgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7Ci19Ci0KLS5jb2xvcnBpY2tlci12YWx1ZSB7Ci0g
ICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCBibGFj
aywgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7Ci19Ci0KLS5jb2xvcnBpY2tlci1odWUgewotICAg
IGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMDAwMCAwJSwgI2Zm
ZmYwMCAxNyUsICMwMGZmMDAgMzMlLCAjMDBmZmZmIDUwJSwgIzAwMDBmZiA2NyUsICNmZjAwZmYg
ODMlLCAjZmYwMDAwIDEwMCUpOwotfQotCi0uY29sb3JwaWNrZXItZHJhZ2dlciB7Ci0gICAgYm9y
ZGVyLXJhZGl1czogNXB4OwotICAgIGhlaWdodDogNXB4OwotICAgIHdpZHRoOiA1cHg7Ci0gICAg
Ym9yZGVyOiAxcHggc29saWQgd2hpdGU7Ci0gICAgY3Vyc29yOiBwb2ludGVyOwotICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICBiYWNrZ3JvdW5k
OiBibGFjazsKLX0KLQotLmNvbG9ycGlja2VyLXNsaWRlciB7Ci0gICAgcG9zaXRpb246IGFic29s
dXRlOwotICAgIHRvcDogMDsKLSAgICBjdXJzb3I6IHBvaW50ZXI7Ci0gICAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7Ci0gICAgaGVpZ2h0OiA0cHg7Ci0gICAgbGVmdDogLTFweDsKLSAgICByaWdo
dDogLTFweDsKLX0KLQotLmNvbG9ycGlja2VyLWNvbnRhaW5lciAuc3dhdGNoIHsKLSAgICB3aWR0
aDogMjBweDsKLSAgICBoZWlnaHQ6MjBweDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS5jb2xvcnBp
Y2tlci1jb250YWluZXIgLnN3YXRjaC1pbm5lciB7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIHdp
ZHRoOiAgMTAwJTsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjYpOyAKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NTU0NvbG9yUGlja2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNrZXIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDM0NzIxYTkzYjJiMjU4NDZjZWE5YTRlMjAxNjNmMTIyZjFkM2Fh
NGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ1NTQ29sb3JQaWNrZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0MDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBCcmlhbiBH
cmluc3RlYWQgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBNYXR0
IEhvbGRlbiA8amZ0aG9sZGVuQHlhaG9vLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLVdlYkluc3BlY3Rvci5DU1NDb2xvclBpY2tl
ciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7Ci0K
LSAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAg
dGhpcy5fZWxlbWVudC5jbGFzc05hbWUgPSAiY29sb3JwaWNrZXItY29udGFpbmVyIjsKLQotICAg
IHZhciB0b3BFbGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImNvbG9y
cGlja2VyLXRvcCIpOwotICAgIHRvcEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJjb2xvcnBp
Y2tlci1maWxsIik7Ci0KLSAgICB2YXIgdG9wSW5uZXJFbGVtZW50ID0gdG9wRWxlbWVudC5jcmVh
dGVDaGlsZCgiZGl2IiwgImNvbG9ycGlja2VyLXRvcC1pbm5lciBjb2xvcnBpY2tlci1maWxsLXBh
cmVudCIpOwotICAgIHRoaXMuX2RyYWdnZXJFbGVtZW50ID0gdG9wSW5uZXJFbGVtZW50LmNyZWF0
ZUNoaWxkKCJkaXYiLCAiY29sb3JwaWNrZXItY29sb3IiKTsKLSAgICB0aGlzLl9kcmFnSGVscGVy
RWxlbWVudCA9IHRoaXMuX2RyYWdnZXJFbGVtZW50Ci0gICAgICAgIC5jcmVhdGVDaGlsZCgiZGl2
IiwgImNvbG9ycGlja2VyLXNhdHVyYXRpb24gY29sb3JwaWNrZXItZmlsbC1wYXJlbnQiKQotICAg
ICAgICAuY3JlYXRlQ2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci12YWx1ZSBjb2xvcnBpY2tlci1m
aWxsLXBhcmVudCIpCi0gICAgICAgIC5jcmVhdGVDaGlsZCgiZGl2IiwgImNvbG9ycGlja2VyLWRy
YWdnZXIiKTsKLQotICAgIHRoaXMuX3NsaWRlckVsZW1lbnQgPSB0b3BJbm5lckVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci1odWUiKTsKLSAgICB0aGlzLl9zbGlkZUhlbHBl
ciA9IHRoaXMuX3NsaWRlckVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci1z
bGlkZXIiKTsKLQotICAgIHZhciByYW5nZUNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQuY3JlYXRl
Q2hpbGQoImRpdiIsICJjb2xvcnBpY2tlci1yYW5nZS1jb250YWluZXIiKTsKLSAgICB2YXIgYWxw
aGFMYWJlbCA9IHJhbmdlQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJsYWJlbCIsICJjb2xvcnBpY2tl
ci10ZXh0Iik7Ci0gICAgYWxwaGFMYWJlbC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiT3BhY2l0eToiKTsKLQotICAgIHRoaXMuX2FscGhhRWxlbWVudCA9IHJhbmdlQ29udGFp
bmVyLmNyZWF0ZUNoaWxkKCJpbnB1dCIsICJjb2xvcnBpY2tlci1yYW5nZSIpOwotICAgIHRoaXMu
X2FscGhhRWxlbWVudC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAicmFuZ2UiKTsKLSAgICB0aGlzLl9h
bHBoYUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCAiMCIpOwotICAgIHRoaXMuX2FscGhhRWxl
bWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsICIxMDAiKTsKLSAgICB0aGlzLl9hbHBoYUVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgYWxwaGFEcmFnLmJpbmQodGhpcyksIGZhbHNlKTsK
LQotICAgIHZhciBkaXNwbGF5Q29udGFpbmVyID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgi
ZGl2IiwgImNvbG9ycGlja2VyLWJvdHRvbSIpOwotCi0gICAgdmFyIHN3YXRjaEVsZW1lbnQgPSBk
aXNwbGF5Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJzcGFuIiwgInN3YXRjaCIpOwotICAgIHRoaXMu
X3N3YXRjaElubmVyRWxlbWVudCA9IHN3YXRjaEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAi
c3dhdGNoLWlubmVyIik7Ci0gICAgCi0gICAgc3dhdGNoRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGNvbG9yU3dhdGNoQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0KLSAgICB0
aGlzLl9kaXNwbGF5RWxlbWVudCA9IGRpc3BsYXlDb250YWluZXIuY3JlYXRlQ2hpbGQoInNwYW4i
LCAiY29sb3JwaWNrZXItdGV4dCBjb2xvcnBpY2tlci1jb2xvci10ZXh0LXZhbHVlIik7Ci0KLSAg
ICBtYWtlRHJhZ2dhYmxlKHRoaXMuX3NsaWRlckVsZW1lbnQsIGh1ZURyYWcuYmluZCh0aGlzKSk7
Ci0gICAgbWFrZURyYWdnYWJsZSh0aGlzLl9kcmFnZ2VyRWxlbWVudCwgY29sb3JEcmFnLmJpbmQo
dGhpcyksIGNvbG9yRHJhZ1N0YXJ0LmJpbmQodGhpcykpOwotCi0gICAgZnVuY3Rpb24gbWFrZURy
YWdnYWJsZShlbGVtZW50LCBvbm1vdmUsIG9uc3RhcnQsIG9uc3RvcCkKLSAgICB7Ci0gICAgICAg
IHZhciBkb2MgPSBkb2N1bWVudDsKLSAgICAgICAgdmFyIGRyYWdnaW5nOwotICAgICAgICB2YXIg
b2Zmc2V0OwotICAgICAgICB2YXIgc2Nyb2xsT2Zmc2V0OwotICAgICAgICB2YXIgbWF4SGVpZ2h0
OwotICAgICAgICB2YXIgbWF4V2lkdGg7Ci0KLSAgICAgICAgZnVuY3Rpb24gY29uc3VtZShlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gbW92ZShlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
IWRyYWdnaW5nIHx8ICFvbm1vdmUpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
ICAgICB2YXIgZHJhZ1ggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihlLnBhZ2VYIC0gb2Zmc2V0Lmxl
ZnQgKyBzY3JvbGxPZmZzZXQubGVmdCwgbWF4V2lkdGgpKTsKLSAgICAgICAgICAgIHZhciBkcmFn
WSA9IE1hdGgubWF4KDAsIE1hdGgubWluKGUucGFnZVkgLSBvZmZzZXQudG9wICsgc2Nyb2xsT2Zm
c2V0LnRvcCwgbWF4SGVpZ2h0KSk7Ci0KLSAgICAgICAgICAgIG9ubW92ZShlbGVtZW50LCBkcmFn
WCwgZHJhZ1ksIGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RhcnQoZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKGUuYnV0dG9uICE9PSAwIHx8IGUuY3RybEtleSkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChkcmFnZ2luZykKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChvbnN0YXJ0KQotICAgICAgICAg
ICAgICAgIG9uc3RhcnQoZWxlbWVudCwgZSk7Ci0KLSAgICAgICAgICAgIGRyYWdnaW5nID0gdHJ1
ZTsKLSAgICAgICAgICAgIG1heEhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0OwotICAgICAg
ICAgICAgbWF4V2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoOwotCi0gICAgICAgICAgICBzY3Jv
bGxPZmZzZXQgPSB7bGVmdDogMCwgdG9wOiAwfTsKLSAgICAgICAgICAgIHZhciBib3VuZGluZ1Jl
Y3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgb2Zmc2V0
ID0ge2xlZnQ6IGJvdW5kaW5nUmVjdC5sZWZ0LCB0b3A6IGJvdW5kaW5nUmVjdC50b3B9OwotCi0g
ICAgICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLCBjb25zdW1lLCBm
YWxzZSk7Ci0gICAgICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgY29u
c3VtZSwgZmFsc2UpOwotICAgICAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92
ZSIsIG1vdmUsIGZhbHNlKTsKLSAgICAgICAgICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXVwIiwgc3RvcCwgZmFsc2UpOwotCi0gICAgICAgICAgICBtb3ZlKGUpOwotICAgICAgICAgICAg
Y29uc3VtZShlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHN0b3AoZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKCFkcmFnZ2luZykKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIGNv
bnN1bWUsIGZhbHNlKTsKLSAgICAgICAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFn
c3RhcnQiLCBjb25zdW1lLCBmYWxzZSk7Ci0gICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0
ZW5lcigibW91c2Vtb3ZlIiwgbW92ZSwgZmFsc2UpOwotICAgICAgICAgICAgZG9jLnJlbW92ZUV2
ZW50TGlzdGVuZXIoIm1vdXNldXAiLCBzdG9wLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgIGlmIChv
bnN0b3ApCi0gICAgICAgICAgICAgICAgb25zdG9wKGVsZW1lbnQsIGUpOwotCi0gICAgICAgICAg
ICBkcmFnZ2luZyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZWRvd24iLCBzdGFydCwgZmFsc2UpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGh1ZURyYWcoZWxlbWVudCwgZHJhZ1gsIGRyYWdZKQotICAgIHsKLSAgICAgICAgdGhpcy5o
c3ZbMF0gPSBkcmFnWSAvIHRoaXMuc2xpZGVIZWlnaHQ7Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRl
RGlzcGxheSh0cnVlKTsKLSAgICB9Ci0KLSAgICB2YXIgaW5pdGlhbEhlbHBlck9mZnNldDsKLQot
ICAgIGZ1bmN0aW9uIGNvbG9yRHJhZ1N0YXJ0KGVsZW1lbnQsIGRyYWdYLCBkcmFnWSkKLSAgICB7
Ci0gICAgICAgIGluaXRpYWxIZWxwZXJPZmZzZXQgPSB7eDogdGhpcy5fZHJhZ0hlbHBlckVsZW1l
bnQub2Zmc2V0TGVmdCwgeTogdGhpcy5fZHJhZ0hlbHBlckVsZW1lbnQub2Zmc2V0VG9wfTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBjb2xvckRyYWcoZWxlbWVudCwgZHJhZ1gsIGRyYWdZLCBldmVu
dCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkgewotICAgICAgICAgICAgaWYg
KE1hdGguYWJzKGRyYWdYIC0gaW5pdGlhbEhlbHBlck9mZnNldC54KSA+PSBNYXRoLmFicyhkcmFn
WSAtIGluaXRpYWxIZWxwZXJPZmZzZXQueSkpCi0gICAgICAgICAgICAgICAgZHJhZ1kgPSBpbml0
aWFsSGVscGVyT2Zmc2V0Lnk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZHJh
Z1ggPSBpbml0aWFsSGVscGVyT2Zmc2V0Lng7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmhz
dlsxXSA9IGRyYWdYIC8gdGhpcy5kcmFnV2lkdGg7Ci0gICAgICAgIHRoaXMuaHN2WzJdID0gKHRo
aXMuZHJhZ0hlaWdodCAtIGRyYWdZKSAvIHRoaXMuZHJhZ0hlaWdodDsKLQotICAgICAgICB0aGlz
Ll91cGRhdGVEaXNwbGF5KHRydWUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFscGhhRHJhZygp
Ci0gICAgewotICAgICAgICB0aGlzLmhzdlszXSA9IHRoaXMuX2FscGhhRWxlbWVudC52YWx1ZSAv
IDEwMDsKLQotICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5KHRydWUpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGNvbG9yU3dhdGNoQ2xpY2tlZCgpCi0gICAgewotICAgICAgICAvLyBCeSBjaGFu
Z2luZyB0aGlzIHZhbHVlLCB0aGUgbmV3IGNvbG9yIGZvcm1hdAotICAgICAgICAvLyB3aWxsIGJl
IHByb3BhZ2F0ZWQgZG93biB0byBhbnkgbGlzdGVuZXJzIGFmdGVyIHRoZSBVSSBpcyB1cGRhdGVk
LgotICAgICAgICB0aGlzLl9vcmlnaW5hbEZvcm1hdCA9IHRoaXMuY29sb3IubmV4dEZvcm1hdCgp
OwotICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5KHRydWUpOwotICAgIH0KLX07Ci0KLVdlYklu
c3BlY3Rvci5PYmplY3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoV2ViSW5zcGVjdG9yLkNTU0Nv
bG9yUGlja2VyKTsKLQotV2ViSW5zcGVjdG9yLkNTU0NvbG9yUGlja2VyLkV2ZW50ID0gewotICAg
IENvbG9yQ2hhbmdlZDogImNzcy1jb2xvci1waWNrZXItY29sb3ItY2hhbmdlZCIKLX07Ci0KLVdl
Ykluc3BlY3Rvci5DU1NDb2xvclBpY2tlci5wcm90b3R5cGUgPSB7Ci0gICAgY29udHJ1Y3Rvcjog
V2ViSW5zcGVjdG9yLkNTU0NvbG9yUGlja2VyLAotCi0gICAgZ2V0IGVsZW1lbnQoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7Ci0gICAgfSwKLQotICAgIHNldCBjb2xvcihj
b2xvcikKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fb3JpZ2luYWxGb3JtYXQpIHsKLSAgICAg
ICAgICAgIHRoaXMuX29yaWdpbmFsRm9ybWF0ID0gY29sb3IuZm9ybWF0OwotICAgICAgICAgICAg
aWYgKGNvbG9yLmZvcm1hdCA9PT0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5TaG9ydEhFWCkK
LSAgICAgICAgICAgICAgICB0aGlzLl9vcmlnaW5hbEZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xv
ci5Gb3JtYXQuSEVYOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHJnYmEgPSAoY29sb3Iucmdi
YSB8fCBjb2xvci5yZ2IpLnNsaWNlKDApOwotCi0gICAgICAgIGlmIChyZ2JhLmxlbmd0aCA9PT0g
MykKLSAgICAgICAgICAgIHJnYmFbM10gPSAxOwotCi0gICAgICAgIHRoaXMuaHN2ID0gV2ViSW5z
cGVjdG9yLkNTU0NvbG9yUGlja2VyLnJnYmFUb0hTVkEocmdiYVswXSwgcmdiYVsxXSwgcmdiYVsy
XSwgcmdiYVszXSk7Ci0gICAgfSwKLQotICAgIGdldCBjb2xvcigpCi0gICB7Ci0gICAgICAgdmFy
IHJnYmEgPSBXZWJJbnNwZWN0b3IuQ1NTQ29sb3JQaWNrZXIuaHN2YVRvUkdCQSh0aGlzLmhzdlsw
XSwgdGhpcy5oc3ZbMV0sIHRoaXMuaHN2WzJdLCB0aGlzLmhzdlszXSk7Ci0gICAgICAgdmFyIGNv
bG9yOwotICAgICAgIGlmIChyZ2JhWzNdID09PSAxKQotICAgICAgICAgICBjb2xvciA9IFdlYklu
c3BlY3Rvci5Db2xvci5mcm9tUkdCKHJnYmFbMF0sIHJnYmFbMV0sIHJnYmFbMl0pOwotICAgICAg
IGVsc2UKLSAgICAgICAgICAgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEocmdi
YVswXSwgcmdiYVsxXSwgcmdiYVsyXSwgcmdiYVszXSk7Ci0gICAgICAgdmFyIGNvbG9yVmFsdWUg
PSBjb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9yRm9ybWF0KTsKLSAgICAgICBpZiAoIWNv
bG9yVmFsdWUpCi0gICAgICAgICAgIGNvbG9yVmFsdWUgPSBjb2xvci50b1N0cmluZygpOyAvLyB0
aGlzLm91dHB1dENvbG9yRm9ybWF0IGNhbiBiZSBpbnZhbGlkIGZvciBjdXJyZW50IGNvbG9yIChl
LmcuICJuaWNrbmFtZSIpLgotICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKGNv
bG9yVmFsdWUpOwotICAgIH0sCi0KLSAgICBnZXQgb3V0cHV0Q29sb3JGb3JtYXQoKQotICAgIHsK
LSAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX29yaWdpbmFsRm9ybWF0OwotCi0gICAgICAgIGlm
ICh0aGlzLmhzdlszXSA9PT0gMSkgewotICAgICAgICAgICAgLy8gU2ltcGxpZnkgdHJhbnNwYXJl
bnQgZm9ybWF0cywgYW5kIGRvbid0IGFsbG93IFNob3J0SGV4LgotICAgICAgICAgICAgaWYgKGZv
cm1hdCA9PT0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0JBKQotICAgICAgICAgICAgICAg
IGZvcm1hdCA9IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuUkdCOwotICAgICAgICAgICAgZWxz
ZSBpZiAoZm9ybWF0ID09PSBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEEpCi0gICAgICAg
ICAgICAgICAgZm9ybWF0ID0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5IU0w7Ci0gICAgICAg
ICAgICBlbHNlIGlmIChmb3JtYXQgPT09IFdlYkluc3BlY3Rvci5Db2xvci5Gb3JtYXQuU2hvcnRI
RVgpCi0gICAgICAgICAgICAgICAgZm9ybWF0ID0gV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5I
RVg7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBFdmVyeXRoaW5nIGV4Y2VwdCBI
U0woQSkgc2hvdWxkIGJlIHJldHVybmVkIGFzIFJHQkEgaWYgdHJhbnNwYXJlbmN5IGlzIGludm9s
dmVkLgotICAgICAgICAgICAgdmFyIHByaW50YWJsZVRyYW5zcGFyZW50Rm9ybWF0cyA9IFsKLSAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhTTEEsCi0gICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLkNvbG9yLkZvcm1hdC5SR0JBCi0gICAgICAgICAgICBdOwotCi0g
ICAgICAgICAgICBpZiAocHJpbnRhYmxlVHJhbnNwYXJlbnRGb3JtYXRzLmluZGV4T2YoZm9ybWF0
KSA9PT0gLTEpCi0gICAgICAgICAgICAgICAgZm9ybWF0ID0gV2ViSW5zcGVjdG9yLkNvbG9yLkZv
cm1hdC5SR0JBOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZvcm1hdDsKLSAgICB9LAot
Ci0gICAgZ2V0IGNvbG9ySHVlT25seSgpCi0gICAgewotICAgICAgICB2YXIgcmdiYSA9IFdlYklu
c3BlY3Rvci5DU1NDb2xvclBpY2tlci5oc3ZhVG9SR0JBKHRoaXMuaHN2WzBdLCAxLCAxLCAxKTsK
LSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQShyZ2JhWzBdLCByZ2Jh
WzFdLCByZ2JhWzJdLCByZ2JhWzNdKTsKLSAgICB9LAotCi0gICAgc2V0IGRpc3BsYXlUZXh0KHRl
eHQpCi0gICAgewotICAgICAgICB0aGlzLl9kaXNwbGF5RWxlbWVudC50ZXh0Q29udGVudCA9IHRl
eHQ7Ci0gICAgfSwKLQotICAgIHNob3duOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlz
LnNsaWRlSGVpZ2h0ID0gdGhpcy5fc2xpZGVyRWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0gICAgICAg
IHRoaXMuZHJhZ1dpZHRoID0gdGhpcy5fZHJhZ2dlckVsZW1lbnQub2Zmc2V0V2lkdGg7Ci0gICAg
ICAgIHRoaXMuZHJhZ0hlaWdodCA9IHRoaXMuX2RyYWdnZXJFbGVtZW50Lm9mZnNldEhlaWdodDsK
LSAgICAgICAgdGhpcy5fZHJhZ0hlbHBlckVsZW1lbnRIZWlnaHQgPSB0aGlzLl9kcmFnSGVscGVy
RWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICB0aGlzLnNsaWRlSGVscGVySGVpZ2h0
ID0gdGhpcy5fc2xpZGVIZWxwZXIub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgdGhpcy5fdXBk
YXRlRGlzcGxheSgpOwotICAgIH0sCi0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfdXBkYXRlSGVs
cGVyTG9jYXRpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgaCA9IHRoaXMuaHN2
WzBdOwotICAgICAgICB2YXIgcyA9IHRoaXMuaHN2WzFdOwotICAgICAgICB2YXIgdiA9IHRoaXMu
aHN2WzJdOwotCi0gICAgICAgIC8vIFdoZXJlIHRvIHNob3cgdGhlIGxpdHRsZSBjaXJjbGUgdGhh
dCBkaXNwbGF5cyB5b3VyIGN1cnJlbnQgc2VsZWN0ZWQgY29sb3IuCi0gICAgICAgIHZhciBkcmFn
WCA9IHMgKiB0aGlzLmRyYWdXaWR0aDsKLSAgICAgICAgdmFyIGRyYWdZID0gdGhpcy5kcmFnSGVp
Z2h0IC0gKHYgKiB0aGlzLmRyYWdIZWlnaHQpOwotCi0gICAgICAgIGRyYWdYID0gTWF0aC5tYXgo
LXRoaXMuX2RyYWdIZWxwZXJFbGVtZW50SGVpZ2h0LAotICAgICAgICAgICAgTWF0aC5taW4odGhp
cy5kcmFnV2lkdGggLSB0aGlzLl9kcmFnSGVscGVyRWxlbWVudEhlaWdodCwgZHJhZ1ggLSB0aGlz
Ll9kcmFnSGVscGVyRWxlbWVudEhlaWdodCkpOwotICAgICAgICBkcmFnWSA9IE1hdGgubWF4KC10
aGlzLl9kcmFnSGVscGVyRWxlbWVudEhlaWdodCwKLSAgICAgICAgICAgIE1hdGgubWluKHRoaXMu
ZHJhZ0hlaWdodCAtIHRoaXMuX2RyYWdIZWxwZXJFbGVtZW50SGVpZ2h0LCBkcmFnWSAtIHRoaXMu
X2RyYWdIZWxwZXJFbGVtZW50SGVpZ2h0KSk7Ci0KLSAgICAgICAgdGhpcy5fZHJhZ0hlbHBlckVs
ZW1lbnQucG9zaXRpb25BdChkcmFnWCwgZHJhZ1kpOwotCi0gICAgICAgIC8vIFdoZXJlIHRvIHNo
b3cgdGhlIGJhciB0aGF0IGRpc3BsYXlzIHlvdXIgY3VycmVudCBzZWxlY3RlZCBodWUuCi0gICAg
ICAgIHZhciBzbGlkZVkgPSAoaCAqIHRoaXMuc2xpZGVIZWlnaHQpIC0gdGhpcy5zbGlkZUhlbHBl
ckhlaWdodDsKLSAgICAgICAgdGhpcy5fc2xpZGVIZWxwZXIuc3R5bGUudG9wID0gc2xpZGVZICsg
InB4IjsKLQotICAgICAgICB0aGlzLl9hbHBoYUVsZW1lbnQudmFsdWUgPSB0aGlzLmhzdlszXSAq
IDEwMDsKLSAgICB9LAotCi0gICAgX3VwZGF0ZURpc3BsYXk6IGZ1bmN0aW9uKGNvbG9yV2FzQ2hh
bmdlZCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUhlbHBlckxvY2F0aW9ucygpOwotCi0g
ICAgICAgIHZhciByZ2IgPSAodGhpcy5jb2xvci5yZ2JhIHx8IHRoaXMuY29sb3IucmdiKS5zbGlj
ZSgwKTsKLQotICAgICAgICBpZiAocmdiLmxlbmd0aCA9PT0gMykKLSAgICAgICAgICAgIHJnYlsz
XSA9IDE7Ci0KLSAgICAgICAgdmFyIHJnYkh1ZU9ubHkgPSB0aGlzLmNvbG9ySHVlT25seS5yZ2I7
Ci0KLSAgICAgICAgdmFyIGZsYXRDb2xvciA9ICJyZ2IoIiArIHJnYkh1ZU9ubHlbMF0gKyAiLCAi
ICsgcmdiSHVlT25seVsxXSArICIsICIgKyByZ2JIdWVPbmx5WzJdICsgIikiOwotICAgICAgICB2
YXIgZnVsbENvbG9yID0gInJnYmEoIiArIHJnYlswXSArICIsICIgKyByZ2JbMV0gKyAiLCAiICsg
cmdiWzJdICsgIiwgIiArIHJnYlszXSArICIpIjsKLQotICAgICAgICB0aGlzLl9kcmFnZ2VyRWxl
bWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBmbGF0Q29sb3I7Ci0gICAgICAgIHRoaXMuX3N3
YXRjaElubmVyRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBmdWxsQ29sb3I7Ci0KLSAg
ICAgICAgdGhpcy5fYWxwaGFFbGVtZW50LnZhbHVlID0gdGhpcy5oc3ZbM10gKiAxMDA7Ci0KLSAg
ICAgICAgdmFyIGNvbG9yVmFsdWUgPSB0aGlzLmNvbG9yLnRvU3RyaW5nKHRoaXMub3V0cHV0Q29s
b3JGb3JtYXQpOwotICAgICAgICBpZiAoIWNvbG9yVmFsdWUpCi0gICAgICAgICAgICBjb2xvclZh
bHVlID0gdGhpcy5jb2xvci50b1N0cmluZygpOyAvLyB0aGlzLm91dHB1dENvbG9yRm9ybWF0IGNh
biBiZSBpbnZhbGlkIGZvciBjdXJyZW50IGNvbG9yIChlLmcuICJuaWNrbmFtZSIpLgotCi0gICAg
ICAgIHRoaXMuZGlzcGxheVRleHQgPSBjb2xvclZhbHVlOwotCi0gICAgICAgIGlmIChjb2xvcldh
c0NoYW5nZWQpCi0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuQ1NTQ29sb3JQaWNrZXIuRXZlbnQuQ29sb3JDaGFuZ2VkLCB7Y29sb3I6IHRoaXMu
Y29sb3J9KTsKLSAgICB9Ci19OwotCi1XZWJJbnNwZWN0b3IuQ1NTQ29sb3JQaWNrZXIuaHN2YVRv
UkdCQSA9IGZ1bmN0aW9uKGgsIHMsIHYsIGEpCi17Ci0gICAgdmFyIHIsIGcsIGI7Ci0KLSAgICB2
YXIgaSA9IE1hdGguZmxvb3IoaCAqIDYpOwotICAgIHZhciBmID0gaCAqIDYgLSBpOwotICAgIHZh
ciBwID0gdiAqICgxIC0gcyk7Ci0gICAgdmFyIHEgPSB2ICogKDEgLSBmICogcyk7Ci0gICAgdmFy
IHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7Ci0KLSAgICBzd2l0Y2goaSAlIDYpIHsKLSAgICBj
YXNlIDA6Ci0gICAgICAgIHIgPSB2LCBnID0gdCwgYiA9IHA7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgMToKLSAgICAgICAgciA9IHEsIGcgPSB2LCBiID0gcDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAyOgotICAgICAgICByID0gcCwgZyA9IHYsIGIgPSB0OwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIDM6Ci0gICAgICAgIHIgPSBwLCBnID0gcSwgYiA9IHY7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgNDoKLSAgICAgICAgciA9IHQsIGcgPSBwLCBiID0gdjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSA1OgotICAgICAgICByID0gdiwgZyA9IHAsIGIgPSBxOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gW01hdGgucm91bmQociAqIDI1NSksIE1hdGgucm91
bmQoZyAqIDI1NSksIE1hdGgucm91bmQoYiAqIDI1NSksIGFdOwotfTsKLQotV2ViSW5zcGVjdG9y
LkNTU0NvbG9yUGlja2VyLnJnYmFUb0hTVkEgPSBmdW5jdGlvbihyLCBnLCBiLCBhKQotewotICAg
IHIgPSByIC8gMjU1OwotICAgIGcgPSBnIC8gMjU1OwotICAgIGIgPSBiIC8gMjU1OwotCi0gICAg
dmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpOwotICAgIHZhciBtaW4gPSBNYXRoLm1pbihyLCBn
LCBiKTsKLSAgICB2YXIgaDsKLSAgICB2YXIgczsKLSAgICB2YXIgdiA9IG1heDsKLQotICAgIHZh
ciBkID0gbWF4IC0gbWluOwotICAgIHMgPSBtYXggPyBkIC8gbWF4IDogMDsKLQotICAgIGlmKG1h
eCA9PT0gbWluKSB7Ci0gICAgICAgIC8vIEFjaHJvbWF0aWMuCi0gICAgICAgIGggPSAwOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaChtYXgpIHsKLSAgICAgICAgY2FzZSByOgotICAgICAg
ICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgZzoKLSAgICAgICAgICAgIGggPSAoYiAtIHIpIC8gZCArIDI7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBiOgotICAgICAgICAgICAgaCA9IChyIC0g
ZykgLyBkICsgNDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGggLz0g
NjsKLSAgICB9Ci0gICAgcmV0dXJuIFtoLCBzLCB2LCBhXTsKLX07Ci0KLVdlYkluc3BlY3Rvci5D
U1NDb2xvclBpY2tlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IGQx
MDlhYWUyMzU2NzFjMDY3MDVkZTAyYWQ5ODNjM2UwMGNlMjgxMTIuLjhkNzZkMTNkZTI0NjBiZjNj
ODUxZjE1MTYwNmJlYTM3MTU0NDIxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0
RWRpdG9yLmpzCkBAIC03NDMsMTkgKzc0MywyMyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgdGhpcy5fY29sb3JQaWNrZXJQb3BvdmVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVy
KHRoaXMpOwogCi0gICAgICAgICAgICB2YXIgY29sb3JQaWNrZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkNTU0NvbG9yUGlja2VyOwotICAgICAgICAgICAgY29sb3JQaWNrZXIuY29sb3IgPSBjb2xvcjsK
KyAgICAgICAgICAgIHZhciBjb2xvclBpY2tlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29sb3JQaWNr
ZXI7CiAKLSAgICAgICAgICAgIGNvbG9yUGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkNTU0NvbG9yUGlja2VyLkV2ZW50LkNvbG9yQ2hhbmdlZCwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIGNvbG9yUGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNv
bG9yUGlja2VyLkV2ZW50LkNvbG9yQ2hhbmdlZCwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAg
ICAgICAgICB1cGRhdGVDb2RlTWlycm9yLmNhbGwodGhpcywgZXZlbnQuZGF0YS5jb2xvci50b1N0
cmluZygpKTsKICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7CiAKICAgICAgICAgICAgIHZhciBi
b3VuZHMgPSBXZWJJbnNwZWN0b3IuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3Qoc3dhdGNoLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpKTsKKyAgICAgICAgICAgIGNvbnN0IHBhZGRpbmcgPSAyOworICAg
ICAgICAgICAgYm91bmRzLm9yaWdpbi54IC09IHBhZGRpbmc7CisgICAgICAgICAgICBib3VuZHMu
b3JpZ2luLnkgLT0gcGFkZGluZzsKKyAgICAgICAgICAgIGJvdW5kcy5zaXplLndpZHRoICs9IHBh
ZGRpbmcgKiAyOworICAgICAgICAgICAgYm91bmRzLnNpemUuaGVpZ2h0ICs9IHBhZGRpbmcgKiAy
OwogCiAgICAgICAgICAgICB0aGlzLl9jb2xvclBpY2tlclBvcG92ZXIuY29udGVudCA9IGNvbG9y
UGlja2VyLmVsZW1lbnQ7CiAgICAgICAgICAgICB0aGlzLl9jb2xvclBpY2tlclBvcG92ZXIucHJl
c2VudChib3VuZHMsIFtXZWJJbnNwZWN0b3IuUmVjdEVkZ2UuTUlOX1hdKTsKIAotICAgICAgICAg
ICAgY29sb3JQaWNrZXIuc2hvd24oKTsKKyAgICAgICAgICAgIGNvbG9yUGlja2VyLmNvbG9yID0g
Y29sb3I7CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db2xvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbG9yLmpzCmluZGV4IDViY2IzNTViNGI3NmM3NDYxZjk1ZmE3YzZlZTFlZWM4
YTY5MWZjZGUuLmI3ZmRjNDdjODczMmJmYjM2YmFjYjgyM2Q4ZTA4NjkwMTEyMjI2YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yLmpzCkBAIC00MTMsNDAg
KzQxMywyMCBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
cyA9IHBhcnNlRmxvYXQoaHNsWzFdKSAvIDEwMDsKICAgICAgICAgdmFyIGwgPSBwYXJzZUZsb2F0
KGhzbFsyXSkgLyAxMDA7CiAKLSAgICAgICAgaWYgKHMgPCAwKQotICAgICAgICAgICAgcyA9IDA7
Ci0KLSAgICAgICAgaWYgKGwgPD0gMC41KQotICAgICAgICAgICAgdmFyIHEgPSBsICogKDEgKyBz
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFyIHEgPSBsICsgcyAtIChsICogcyk7Ci0K
LSAgICAgICAgdmFyIHAgPSAyICogbCAtIHE7Ci0KLSAgICAgICAgdmFyIHRyID0gaCArICgxIC8g
Myk7Ci0gICAgICAgIHZhciB0ZyA9IGg7Ci0gICAgICAgIHZhciB0YiA9IGggLSAoMSAvIDMpOwot
Ci0gICAgICAgIHZhciByID0gTWF0aC5yb3VuZChodWVUb1JHQihwLCBxLCB0cikgKiAyNTUpOwot
ICAgICAgICB2YXIgZyA9IE1hdGgucm91bmQoaHVlVG9SR0IocCwgcSwgdGcpICogMjU1KTsKLSAg
ICAgICAgdmFyIGIgPSBNYXRoLnJvdW5kKGh1ZVRvUkdCKHAsIHEsIHRiKSAqIDI1NSk7Ci0gICAg
ICAgIHJldHVybiBbciwgZywgYl07Ci0KLSAgICAgICAgZnVuY3Rpb24gaHVlVG9SR0IocCwgcSwg
aCkgewotICAgICAgICAgICAgaWYgKGggPCAwKQotICAgICAgICAgICAgICAgIGggKz0gMTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKGggPiAxKQotICAgICAgICAgICAgICAgIGggLT0gMTsKLQotICAg
ICAgICAgICAgaWYgKChoICogNikgPCAxKQotICAgICAgICAgICAgICAgIHJldHVybiBwICsgKHEg
LSBwKSAqIGggKiA2OwotICAgICAgICAgICAgZWxzZSBpZiAoKGggKiAyKSA8IDEpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHE7Ci0gICAgICAgICAgICBlbHNlIGlmICgoaCAqIDMpIDwgMikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoKDIgLyAzKSAtIGgpICogNjsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gcDsKLSAgICAgICAgfQorICAg
ICAgICBoICo9IDY7CisgICAgICAgIHZhciBzQXJyYXkgPSBbCisgICAgICAgICAgICBsICs9IHMg
Kj0gbCA8IC41ID8gbCA6IDEgLSBsLAorICAgICAgICAgICAgbCAtIGggJSAxICogcyAqIDIsCisg
ICAgICAgICAgICBsIC09IHMgKj0gMiwKKyAgICAgICAgICAgIGwsCisgICAgICAgICAgICBsICsg
aCAlIDEgKiBzLAorICAgICAgICAgICAgbCArIHMKKyAgICAgICAgXTsKKyAgICAgICAgcmV0dXJu
IFsKKyAgICAgICAgICAgIE1hdGgucm91bmQoc0FycmF5WyB+fmggICAgJSA2IF0gKiAyNTUpLAor
ICAgICAgICAgICAgTWF0aC5yb3VuZChzQXJyYXlbIChofDE2KSAlIDYgXSAqIDI1NSksCisgICAg
ICAgICAgICBNYXRoLnJvdW5kKHNBcnJheVsgKGh8OCkgICUgNiBdICogMjU1KQorICAgICAgICBd
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTg1MSwzICs4MzEsNzUgQEAgV2ViSW5zcGVjdG9yLkNv
bG9yLkFkdmFuY2VkTmlja05hbWVzID0gewogICAgICJyZ2JhKDAsMCwwLDApIjogW1swLCAwLCAw
LCAwXSwgWzAsIDAsIDAsIDBdLCAidHJhbnNwYXJlbnQiXSwKICAgICAiaHNsYSgwLDAsMCwwKSI6
IFtbMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwXSwgInRyYW5zcGFyZW50Il0sCiB9OworCitXZWJJ
bnNwZWN0b3IuQ29sb3IucmdiMmhzdiA9IGZ1bmN0aW9uKHIsIGcsIGIpCit7CisgICAgciAvPSAy
NTU7CisgICAgZyAvPSAyNTU7CisgICAgYiAvPSAyNTU7CisKKyAgICB2YXIgbWluID0gTWF0aC5t
aW4oTWF0aC5taW4ociwgZyksIGIpOworICAgIHZhciBtYXggPSBNYXRoLm1heChNYXRoLm1heChy
LCBnKSwgYik7CisgICAgdmFyIGRlbHRhID0gbWF4IC0gbWluOworCisgICAgdmFyIHYgPSBtYXg7
CisgICAgdmFyIHMsIGg7CisKKyAgICBpZiAobWF4ID09PSBtaW4pCisgICAgICAgIGggPSAwOwor
ICAgIGVsc2UgaWYgKG1heCA9PT0gcikKKyAgICAgICAgaCA9ICg2MCAqICgoZyAtIGIpIC8gZGVs
dGEpKSAlIDM2MDsKKyAgICBlbHNlIGlmIChtYXggPT09IGcpCisgICAgICAgIGggPSA2MCAqICgo
YiAtIHIpIC8gZGVsdGEpICsgMTIwOworICAgIGVsc2UgaWYgKG1heCA9PT0gYikKKyAgICAgICAg
aCA9IDYwICogKChyIC0gZykgLyBkZWx0YSkgKyAyNDA7CisKKyAgICBpZiAoaCA8IDApCisgICAg
ICAgIGggKz0gMzYwOworCisgICAgLy8gU2F0dXJhdGlvbgorICAgIGlmIChtYXggPT09IDApCisg
ICAgICAgIHMgPSAwOworICAgIGVsc2UKKyAgICAgICAgcyA9IDEgLSAobWluL21heCk7CisKKyAg
ICByZXR1cm4gW2gsIHMsIHZdOworfQorCitXZWJJbnNwZWN0b3IuQ29sb3IuaHN2MnJnYiA9IGZ1
bmN0aW9uKGgsIHMsIHYpCit7CisgICAgaWYgKHMgPT09IDApCisgICAgICAgIHJldHVybiBbdiwg
diwgdl07CisKKyAgICBoIC89IDYwOworICAgIHZhciBpID0gTWF0aC5mbG9vcihoKTsKKyAgICB2
YXIgZGF0YSA9IFsKKyAgICAgICAgdiAqICgxIC0gcyksCisgICAgICAgIHYgKiAoMSAtIHMgKiAo
aCAtIGkpKSwKKyAgICAgICAgdiAqICgxIC0gcyAqICgxIC0gKGggLSBpKSkpCisgICAgXTsKKyAg
ICB2YXIgcmdiOworCisgICAgc3dpdGNoIChpKSB7CisgICAgY2FzZSAwOgorICAgICAgICByZ2Ig
PSBbdiwgZGF0YVsyXSwgZGF0YVswXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAg
ICAgICAgcmdiID0gW2RhdGFbMV0sIHYsIGRhdGFbMF1dOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIDI6CisgICAgICAgIHJnYiA9IFtkYXRhWzBdLCB2LCBkYXRhWzJdXTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSAzOgorICAgICAgICByZ2IgPSBbZGF0YVswXSwgZGF0YVsxXSwgdl07Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgNDoKKyAgICAgICAgcmdiID0gW2RhdGFbMl0sIGRhdGFb
MF0sIHZdOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZ2IgPSBbdiwg
ZGF0YVswXSwgZGF0YVsxXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBy
Z2I7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b2xvclBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2xv
clBpY2tlci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiODVhNzQwMmVkY2QzMGUwMjMxMjgxMDM1OTNiYjNi
ZTViNjViYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbG9yUGlja2VyLmNzcwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmNv
bG9yLXBpY2tlciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAyNTZweDsK
KyAgICBoZWlnaHQ6IDIxMHB4OworICAgIHBhZGRpbmc6IDVweDsKK30KKworLmNvbG9yLXBpY2tl
ciA+ICogeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKK30KKworLmNvbG9yLXBpY2tlciA+IC5z
bGlkZXIgeworICAgIHRvcDogN3B4OworICAgIHdpZHRoOiAxOTZweDsKKyAgICAtd2Via2l0LXRy
YW5zZm9ybTogcm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtMTAwJSk7CisgICAgLXdlYmtpdC10
cmFuc2Zvcm0tb3JpZ2luOiAwIDA7Cit9CisKKy5jb2xvci1waWNrZXIgPiAuYnJpZ2h0bmVzcyB7
CisgICAgbGVmdDogMjE1cHg7Cit9CisKKy5jb2xvci1waWNrZXIgPiAub3BhY2l0eSB7CisgICAg
bGVmdDogMjM4cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db2xvclBpY2tlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbG9yUGlja2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNTNjOTc3MTY0NTAxZTdiYjI5ZWI2ZWU0
NjNkZWY4MTFiZjhlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db2xvclBpY2tlci5qcwpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1dlYkluc3BlY3Rvci5Db2xvclBpY2tlciA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNw
ZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLl9jb2xvcldoZWVsID0gbmV3IFdl
Ykluc3BlY3Rvci5Db2xvcldoZWVsKCk7CisgICAgdGhpcy5fY29sb3JXaGVlbC5kZWxlZ2F0ZSA9
IHRoaXM7CisgICAgdGhpcy5fY29sb3JXaGVlbC5kaW1lbnNpb24gPSAyMDA7CisKKyAgICB0aGlz
Ll9icmlnaHRuZXNzU2xpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TbGlkZXIoKTsKKyAgICB0aGlz
Ll9icmlnaHRuZXNzU2xpZGVyLmRlbGVnYXRlID0gdGhpczsKKyAgICB0aGlzLl9icmlnaHRuZXNz
U2xpZGVyLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYnJpZ2h0bmVzcyIpOworCisgICAgdGhpcy5f
b3BhY2l0eVNsaWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2xpZGVyKCk7CisgICAgdGhpcy5fb3Bh
Y2l0eVNsaWRlci5kZWxlZ2F0ZSA9IHRoaXM7CisgICAgdGhpcy5fb3BhY2l0eVNsaWRlci5lbGVt
ZW50LmNsYXNzTGlzdC5hZGQoIm9wYWNpdHkiKTsKKworICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9
ICJjb2xvci1waWNrZXIiOworCisgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9j
b2xvcldoZWVsLmVsZW1lbnQpOworICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
YnJpZ2h0bmVzc1NsaWRlci5lbGVtZW50KTsKKyAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX29wYWNpdHlTbGlkZXIuZWxlbWVudCk7CisKKyAgICB0aGlzLl9vcGFjaXR5UGF0dGVy
biA9ICd1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJyArIGJ0b2EoJzxzdmcgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBmaWxsPSJy
Z2IoMjA0LCAyMDQsIDIwNCkiPjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjMiIC8+PHJlY3QgeD0i
MyIgeT0iMyIgd2lkdGg9IjMiIGhlaWdodD0iMyIvPjwvc3ZnPicpICsgJyIpJzsKKworICAgIHRo
aXMuX2NvbG9yID0gIndoaXRlIjsKK307CisKK1dlYkluc3BlY3Rvci5Db2xvclBpY2tlci5FdmVu
dCA9IHsKKyAgICBDb2xvckNoYW5nZWQ6ICJjc3MtY29sb3ItcGlja2VyLWNvbG9yLWNoYW5nZWQi
Cit9OworCitXZWJJbnNwZWN0b3IuQ29sb3JQaWNrZXIucHJvdG90eXBlID0geworICAgIGNvbnRy
dWN0b3I6IFdlYkluc3BlY3Rvci5Db2xvclBpY2tlciwKKyAgICBfX3Byb3RvX186IFdlYkluc3Bl
Y3Rvci5PYmplY3QucHJvdG90eXBlLAorCisgICAgLy8gUHVibGljCisgICAgCisgICAgZ2V0IGVs
ZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisgICAgfSwKKyAg
ICAKKyAgICBzZXQgYnJpZ2h0bmVzcyhicmlnaHRuZXNzKQorICAgIHsKKyAgICAgICAgaWYgKGJy
aWdodG5lc3MgPT09IHRoaXMuX2JyaWdodG5lc3MpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdGhpcy5fY29sb3JXaGVlbC5icmlnaHRuZXNzID0gYnJpZ2h0bmVzczsKKworICAgICAg
ICB0aGlzLl91cGRhdGVDb2xvcigpOworICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJzKHRoaXMu
X2NvbG9yV2hlZWwucmF3Q29sb3IsIHRoaXMuX2NvbG9yV2hlZWwudGludGVkQ29sb3IpOworICAg
IH0sCisgICAgCisgICAgc2V0IG9wYWNpdHkob3BhY2l0eSkKKyAgICB7CisgICAgICAgIGlmIChv
cGFjaXR5ID09PSB0aGlzLl9vcGFjaXR5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMuX29wYWNpdHkgPSBvcGFjaXR5OworICAgICAgICB0aGlzLl91cGRhdGVDb2xvcigpOwor
ICAgIH0sCisKKyAgICBnZXQgY29sb3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nv
bG9yOworICAgIH0sCisKKyAgICBzZXQgY29sb3IoY29sb3IpCisgICAgeworICAgICAgICB0aGlz
Ll9kb250VXBkYXRlQ29sb3IgPSB0cnVlOworCisgICAgICAgIHRoaXMuX2NvbG9yV2hlZWwudGlu
dGVkQ29sb3IgPSBjb2xvcjsKKyAgICAgICAgdGhpcy5fYnJpZ2h0bmVzc1NsaWRlci52YWx1ZSA9
IHRoaXMuX2NvbG9yV2hlZWwuYnJpZ2h0bmVzczsKKworICAgICAgICB0aGlzLl9vcGFjaXR5U2xp
ZGVyLnZhbHVlID0gaXNOYU4oY29sb3IuYWxwaGEpID8gMSA6IGNvbG9yLmFscGhhOworICAgICAg
ICB0aGlzLl91cGRhdGVTbGlkZXJzKHRoaXMuX2NvbG9yV2hlZWwucmF3Q29sb3IsIGNvbG9yKTsK
KworICAgICAgICBkZWxldGUgdGhpcy5fZG9udFVwZGF0ZUNvbG9yOworICAgIH0sCisKKyAgICBj
b2xvcldoZWVsQ29sb3JEaWRDaGFuZ2U6IGZ1bmN0aW9uKGNvbG9yV2hlZWwpCisgICAgeworICAg
ICAgICB0aGlzLl91cGRhdGVDb2xvcigpOworICAgICAgICB0aGlzLl91cGRhdGVTbGlkZXJzKHRo
aXMuX2NvbG9yV2hlZWwucmF3Q29sb3IsIHRoaXMuX2NvbG9yV2hlZWwudGludGVkQ29sb3IpOwor
ICAgIH0sCisKKyAgICBzbGlkZXJWYWx1ZURpZENoYW5nZTogZnVuY3Rpb24oc2xpZGVyLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGlmIChzbGlkZXIgPT09IHRoaXMuX29wYWNpdHlTbGlkZXIpCisg
ICAgICAgICAgICB0aGlzLm9wYWNpdHkgPSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAoc2xpZGVy
ID09PSB0aGlzLl9icmlnaHRuZXNzU2xpZGVyKQorICAgICAgICAgICAgdGhpcy5icmlnaHRuZXNz
ID0gdmFsdWU7CisgICAgfSwKKyAgICAKKyAgICAvLyBQcml2YXRlCisgICAgCisgICAgX3VwZGF0
ZUNvbG9yOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZG9udFVwZGF0ZUNv
bG9yKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciByZ2IgPSB0aGlzLl9jb2xv
cldoZWVsLnRpbnRlZENvbG9yLnJnYjsKKyAgICAgICAgdGhpcy5fY29sb3IgPSBXZWJJbnNwZWN0
b3IuQ29sb3IuZnJvbVJHQkEocmdiWzBdLCByZ2JbMV0sIHJnYlsyXSwgdGhpcy5fb3BhY2l0eSku
dG9TdHJpbmcoKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkNvbG9yUGlja2VyLkV2ZW50LkNvbG9yQ2hhbmdlZCwge2NvbG9yOiB0aGlzLl9jb2xv
cn0pOworICAgIH0sCisKKyAgICBfdXBkYXRlU2xpZGVyczogZnVuY3Rpb24ocmF3Q29sb3IsIHRp
bnRlZENvbG9yKQorICAgIHsKKyAgICAgICAgdmFyIHJnYiA9IHRoaXMuX2NvbG9yV2hlZWwudGlu
dGVkQ29sb3IucmdiOworICAgICAgICB2YXIgdHJhbnNwYXJlbnQgPSBXZWJJbnNwZWN0b3IuQ29s
b3IuZnJvbVJHQkEocmdiWzBdLCByZ2JbMV0sIHJnYlsyXSwgMCkudG9TdHJpbmcoKTsKKworICAg
ICAgICB0aGlzLl9vcGFjaXR5U2xpZGVyLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZEltYWdlID0g
ImxpbmVhci1ncmFkaWVudCg5MGRlZywgIiArIHRyYW5zcGFyZW50ICsgIiwgIiArIHRpbnRlZENv
bG9yICsgIiksICIgKyB0aGlzLl9vcGFjaXR5UGF0dGVybjsKKyAgICAgICAgdGhpcy5fYnJpZ2h0
bmVzc1NsaWRlci5lbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJsaW5lYXItZ3JhZGll
bnQoOTBkZWcsIGJsYWNrLCAiICsgcmF3Q29sb3IgKyAiKSI7CisgICAgfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29sb3JXaGVlbC5jc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTQxNjYzZDBiZGNhYmRmYjU5YjljM2FhZDI0MDJjNTg0NGY2YWY2NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwu
Y3NzCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuY29sb3Itd2hlZWwgeworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKK30KKworLmNvbG9yLXdoZWVsID4gLmNyb3NzaGFpciB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogLTRweDsKKyAgICBsZWZ0OiAtM3B4OworICAg
IHdpZHRoOiA1cHg7CisgICAgaGVpZ2h0OiA1cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgYm9yZGVyLXJhZGl1czogM3B4OworICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwor
ICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29sb3JXaGVlbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU1OWY1MmFiNDli
MDZkODFkOGYzZWUwMWMwZGZiZmJkNWFmMjg2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbG9yV2hlZWwuanMKQEAgLTAsMCArMSwyODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbCA9IGZ1bmN0aW9uKCkKK3sK
KyAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7CisKKyAgICB0aGlzLl9yYXdDYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICB0aGlzLl90aW50ZWRD
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICB0aGlzLl9maW5h
bENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworCisgICAgdGhpcy5f
Y3Jvc3NoYWlyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fY3Jv
c3NoYWlyLmNsYXNzTmFtZSA9ICJjcm9zc2hhaXIiOworCisgICAgdGhpcy5fZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1l
ID0gImNvbG9yLXdoZWVsIjsKKworICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
ZmluYWxDYW52YXMpOworICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3Jvc3No
YWlyKTsKKworICAgIHRoaXMuX2ZpbmFsQ2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93
biIsIHRoaXMpOworfQorCitXZWJJbnNwZWN0b3IuQ29sb3JXaGVlbC5wcm90b3R5cGUgPSB7Cisg
ICAgY29udHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkNvbG9yV2hlZWwsCisgICAgX19wcm90b19fOiBX
ZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZSwKKworICAgIC8vIFB1YmxpYworCisgICAgc2V0
IGRpbWVuc2lvbihkaW1lbnNpb24pCisgICAgeworICAgICAgICB0aGlzLl9maW5hbENhbnZhcy53
aWR0aCA9IHRoaXMuX3RpbnRlZENhbnZhcy53aWR0aCA9IHRoaXMuX3Jhd0NhbnZhcy53aWR0aCA9
IGRpbWVuc2lvbjsKKyAgICAgICAgdGhpcy5fZmluYWxDYW52YXMuaGVpZ2h0ID0gdGhpcy5fdGlu
dGVkQ2FudmFzLmhlaWdodCA9IHRoaXMuX3Jhd0NhbnZhcy5oZWlnaHQgPSBkaW1lbnNpb247CisK
KyAgICAgICAgdGhpcy5fZGltZW5zaW9uID0gZGltZW5zaW9uOworICAgICAgICAvLyBXZSBzaHJp
bmsgdGhlIHJhZGl1cyBhIGJpdCBmb3IgYmV0dGVyIGFudGktYWxpYXNpbmcuCisgICAgICAgIHRo
aXMuX3JhZGl1cyA9IGRpbWVuc2lvbiAvIDIgLSAyOworCisgICAgICAgIHRoaXMuX3NldENyb3Nz
aGFpclBvc2l0aW9uKG5ldyBXZWJJbnNwZWN0b3IuUG9pbnQoZGltZW5zaW9uIC8gMiwgZGltZW5z
aW9uIC8gMikpOworCisgICAgICAgIHRoaXMuX2RyYXdSYXdDYW52YXMoKTsKKyAgICAgICAgdGhp
cy5fZHJhdygpOworICAgIH0sCisgICAgCisgICAgZ2V0IGVsZW1lbnQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisgICAgfSwKKworICAgIGdldCBicmlnaHRuZXNzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9icmlnaHRuZXNzOworICAgIH0sCisKKyAgICBz
ZXQgYnJpZ2h0bmVzcyhicmlnaHRuZXNzKQorICAgIHsKKyAgICAgICAgdGhpcy5fYnJpZ2h0bmVz
cyA9IGJyaWdodG5lc3M7CisgICAgICAgIHRoaXMuX2RyYXcoKTsKKyAgICB9LAorCisgICAgZ2V0
IHRpbnRlZENvbG9yKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jcm9zc2hhaXJQb3NpdGlv
bikKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2xvckF0UG9pbnRXaXRoQnJpZ2h0bmVzcyh0
aGlzLl9jcm9zc2hhaXJQb3NpdGlvbi54LCB0aGlzLl9jcm9zc2hhaXJQb3NpdGlvbi55LCB0aGlz
Ll9icmlnaHRuZXNzKTsKKworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2xvcigi
d2hpdGUiKTsKKyAgICB9LAorCisgICAgc2V0IHRpbnRlZENvbG9yKHRpbnRlZENvbG9yKQorICAg
IHsKKyAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl90aW50ZWRDb2xvclRvUG9pbnRBbmRCcmlnaHRu
ZXNzKHRpbnRlZENvbG9yKTsKKyAgICAgICAgdGhpcy5fc2V0Q3Jvc3NoYWlyUG9zaXRpb24oZGF0
YS5wb2ludCk7CisgICAgICAgIHRoaXMuYnJpZ2h0bmVzcyA9IGRhdGEuYnJpZ2h0bmVzczsKKyAg
ICB9LAorICAgIAorICAgIGdldCByYXdDb2xvcigpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
Y3Jvc3NoYWlyUG9zaXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sb3JBdFBvaW50
V2l0aEJyaWdodG5lc3ModGhpcy5fY3Jvc3NoYWlyUG9zaXRpb24ueCwgdGhpcy5fY3Jvc3NoYWly
UG9zaXRpb24ueSwgMSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3Io
IndoaXRlIik7CisgICAgfSwKKworICAgIC8vIFByb3RlY3RlZAorCisgICAgaGFuZGxlRXZlbnQ6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7Cisg
ICAgICAgIGNhc2UgIm1vdXNlZG93biI6CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVNb3VzZWRv
d24oZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6
CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVNb3VzZW1vdmUoZXZlbnQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgIm1vdXNldXAiOgorICAgICAgICAgICAgdGhpcy5faGFuZGxl
TW91c2V1cChldmVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0sCisK
KyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlTW91c2Vkb3duOiBmdW5jdGlvbihldmVudCkK
KyAgICB7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlz
LCB0cnVlKTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlz
LCB0cnVlKTsKKworICAgICAgICB0aGlzLl91cGRhdGVDb2xvckZvck1vdXNlRXZlbnQoZXZlbnQp
OworICAgIH0sCisKKyAgICBfaGFuZGxlTW91c2Vtb3ZlOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yRm9yTW91c2VFdmVudChldmVudCk7CisgICAgfSwK
KworICAgIF9oYW5kbGVNb3VzZXVwOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHdp
bmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLCB0cnVlKTsKKyAgICAg
ICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLCB0cnVlKTsKKyAg
ICB9LAorCisgICAgX3BvaW50SW5DaXJjbGVGb3JFdmVudDogZnVuY3Rpb24oZXZlbnQpCisgICAg
eworICAgICAgICBmdW5jdGlvbiBkaXN0YW5jZShhLCBiKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KGEueCAtIGIueCwgMikgKyBNYXRoLnBvdyhhLnkg
LSBiLnksIDIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFuZ2xlRnJvbUNlbnRl
clRvUG9pbnQoY2VudGVyLCBwb2ludCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE1h
dGguYXRhbjIocG9pbnQueSAtIGNlbnRlci55LCBwb2ludC54IC0gY2VudGVyLngpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gcG9pbnRPbkNpcmN1bWZlcmVuY2UoYywgciwgYSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUG9pbnQoYy54ICsg
ciAqIE1hdGguY29zKGEpLCBjLnkgKyByICogTWF0aC5zaW4oYSkpOworICAgICAgICB9CisKKyAg
ICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuX2RpbWVuc2lvbjsKKyAgICAgICAgdmFyIHBvaW50
ID0gd2luZG93LndlYmtpdENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKHRoaXMuX2ZpbmFsQ2Fu
dmFzLCBuZXcgV2ViS2l0UG9pbnQoZXZlbnQucGFnZVgsIGV2ZW50LnBhZ2VZKSk7CisgICAgICAg
IHZhciBjZW50ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvaW50KGRpbWVuc2lvbiAvIDIsIGRpbWVu
c2lvbiAvIDIpOworICAgICAgICBpZiAoZGlzdGFuY2UocG9pbnQsIGNlbnRlcikgPiB0aGlzLl9y
YWRpdXMpIHsKKyAgICAgICAgICAgIHZhciBhbmdsZSA9IGFuZ2xlRnJvbUNlbnRlclRvUG9pbnQo
Y2VudGVyLCBwb2ludCk7CisgICAgICAgICAgICBwb2ludCA9IHBvaW50T25DaXJjdW1mZXJlbmNl
KGNlbnRlciwgdGhpcy5fcmFkaXVzLCBhbmdsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHBvaW50OworICAgIH0sCisKKyAgICBfdXBkYXRlQ29sb3JGb3JNb3VzZUV2ZW50OiBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBwb2ludCA9IHRoaXMuX3BvaW50SW5DaXJjbGVG
b3JFdmVudChldmVudCk7CisKKyAgICAgICAgdGhpcy5fc2V0Q3Jvc3NoYWlyUG9zaXRpb24ocG9p
bnQpOworCisgICAgICAgIGlmICh0aGlzLmRlbGVnYXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRl
LmNvbG9yV2hlZWxDb2xvckRpZENoYW5nZSA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRo
aXMuZGVsZWdhdGUuY29sb3JXaGVlbENvbG9yRGlkQ2hhbmdlKHRoaXMpOworICAgIH0sCisKKyAg
ICBfc2V0Q3Jvc3NoYWlyUG9zaXRpb246IGZ1bmN0aW9uKHBvaW50KQorICAgIHsKKyAgICAgICAg
dGhpcy5fY3Jvc3NoYWlyUG9zaXRpb24gPSBwb2ludDsKKyAgICAgICAgdGhpcy5fY3Jvc3NoYWly
LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUoIiArIE1hdGgucm91bmQocG9pbnQu
eCkgKyAicHgsICIgKyBNYXRoLnJvdW5kKHBvaW50LnkpICsgInB4KSI7CisgICAgfSwKKworICAg
IF90aW50ZWRDb2xvclRvUG9pbnRBbmRCcmlnaHRuZXNzOiBmdW5jdGlvbihjb2xvcikKKyAgICB7
CisgICAgICAgIHZhciByZ2IgPSBjb2xvci5yZ2I7CisgICAgICAgIHZhciBoc3YgPSBXZWJJbnNw
ZWN0b3IuQ29sb3IucmdiMmhzdihyZ2JbMF0sIHJnYlsxXSwgcmdiWzJdKTsKKyAgICAgICAgdmFy
IGNvc0h1ZSA9IE1hdGguY29zKGhzdlswXSAqIE1hdGguUEkgLyAxODApOworICAgICAgICB2YXIg
c2luSHVlID0gTWF0aC5zaW4oaHN2WzBdICogTWF0aC5QSSAvIDE4MCk7CisgICAgICAgIHZhciBj
ZW50ZXIgPSB0aGlzLl9kaW1lbnNpb24gLyAyOworICAgICAgICB2YXIgeCA9IGNlbnRlciArIChj
ZW50ZXIgKiBjb3NIdWUgKiBoc3ZbMV0pOworICAgICAgICB2YXIgeSA9IGNlbnRlciAtIChjZW50
ZXIgKiBzaW5IdWUgKiBoc3ZbMV0pOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcG9p
bnQ6IG5ldyBXZWJJbnNwZWN0b3IuUG9pbnQoeCwgeSksCisgICAgICAgICAgICBicmlnaHRuZXNz
OiBoc3ZbMl0KKyAgICAgICAgfTsKKyAgICB9LAorCisgICAgX2RyYXdSYXdDYW52YXM6IGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgY3R4ID0gdGhpcy5fcmF3Q2FudmFzLmdldENvbnRleHQoIjJk
Iik7CisKKyAgICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuX2RpbWVuc2lvbjsKKyAgICAgICAg
dmFyIGNlbnRlciA9IGRpbWVuc2lvbiAvIDI7CisKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJ3
aGl0ZSI7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBkaW1lbnNpb24sIGRpbWVuc2lvbik7
CisKKyAgICAgICAgdmFyIGltYWdlRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgZGltZW5z
aW9uLCBkaW1lbnNpb24pOworICAgICAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOworICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRpbWVuc2lvbjsgKytqKSB7CisgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGRpbWVuc2lvbjsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFy
IGNvbG9yID0gdGhpcy5fY29sb3JBdFBvaW50V2l0aEJyaWdodG5lc3MoaSwgaiwgMSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb2xvcikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgdmFyIHBvcyA9IChqICogZGltZW5zaW9uICsgaSkgKiA0OworICAgICAg
ICAgICAgICAgIGRhdGFbcG9zXSA9IGNvbG9yLnJnYlswXTsKKyAgICAgICAgICAgICAgICBkYXRh
W3BvcyArIDFdID0gY29sb3IucmdiWzFdOworICAgICAgICAgICAgICAgIGRhdGFbcG9zICsgMl0g
PSBjb2xvci5yZ2JbMl07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY3R4LnB1
dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApOworICAgIH0sCisKKyAgICBfY29sb3JBdFBvaW50
V2l0aEJyaWdodG5lc3M6IGZ1bmN0aW9uKHgsIHksIGJyaWdodG5lc3MpCisgICAgeworICAgICAg
ICB2YXIgY2VudGVyID0gdGhpcy5fZGltZW5zaW9uIC8gMjsKKyAgICAgICAgdmFyIHhEaXMgPSB4
IC0gY2VudGVyOworICAgICAgICB2YXIgeURpcyA9IHkgLSBjZW50ZXI7CisgICAgICAgIHZhciBk
aXN0YW5jZSA9IE1hdGguc3FydCh4RGlzICogeERpcyArIHlEaXMgKiB5RGlzKTsKKworICAgICAg
ICBpZiAoZGlzdGFuY2UgPiBjZW50ZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAg
ICAgICB2YXIgaCA9IE1hdGguYXRhbjIoeSAtIGNlbnRlciwgY2VudGVyIC0geCkgKiAxODAgLyBN
YXRoLlBJOworICAgICAgICBoID0gKGggKyAxODApICUgMzYwOworICAgICAgICB2YXIgdiA9IGJy
aWdodG5lc3M7CisgICAgICAgIHZhciBzID0gTWF0aC5tYXgoMCwgZGlzdGFuY2UpIC8gY2VudGVy
OworCisgICAgICAgIHZhciByZ2IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuaHN2MnJnYihoLCBzLCB2
KTsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCKAorICAgICAgICAg
ICAgTWF0aC5yb3VuZChyZ2JbMF0gKiAyNTUpLAorICAgICAgICAgICAgTWF0aC5yb3VuZChyZ2Jb
MV0gKiAyNTUpLAorICAgICAgICAgICAgTWF0aC5yb3VuZChyZ2JbMl0gKiAyNTUpCisgICAgICAg
ICk7CisgICAgfSwKKyAgICAKKyAgICBfZHJhd1RpbnRlZENhbnZhczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIGN0eCA9IHRoaXMuX3RpbnRlZENhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICAgICAgICB2YXIgZGltZW5zaW9uID0gdGhpcy5fZGltZW5zaW9uOworCisgICAgICAgIGN0
eC5zYXZlKCk7CisgICAgICAgIGN0eC5kcmF3SW1hZ2UodGhpcy5fcmF3Q2FudmFzLCAwLCAwLCBk
aW1lbnNpb24sIGRpbWVuc2lvbik7CisgICAgICAgIGlmICh0aGlzLl9icmlnaHRuZXNzICE9PSAx
KSB7CisgICAgICAgICAgICBjdHguZ2xvYmFsQWxwaGEgPSAxIC0gdGhpcy5fYnJpZ2h0bmVzczsK
KyAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAiYmxhY2siOworICAgICAgICAgICAgY3R4LmZp
bGxSZWN0KDAsIDAsIGRpbWVuc2lvbiwgZGltZW5zaW9uKTsKKyAgICAgICAgfQorICAgICAgICBj
dHgucmVzdG9yZSgpOworICAgIH0sCisgICAgCisgICAgX2RyYXc6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2RyYXdUaW50ZWRDYW52YXMoKTsKKworICAgICAgICB2YXIgY3R4ID0g
dGhpcy5fZmluYWxDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgdmFyIGRpbWVuc2lv
biA9IHRoaXMuX2RpbWVuc2lvbjsKKworICAgICAgICBjdHguc2F2ZSgpOworICAgICAgICBjdHgu
Y2xlYXJSZWN0KDAsIDAsIGRpbWVuc2lvbiwgZGltZW5zaW9uKTsKKyAgICAgICAgY3R4LmJlZ2lu
UGF0aCgpOworICAgICAgICBjdHguYXJjKGRpbWVuc2lvbiAvIDIsIGRpbWVuc2lvbiAvIDIsIHRo
aXMuX3JhZGl1cyArIDEsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTsgCisgICAgICAgIGN0eC5jbG9z
ZVBhdGgoKTsKKyAgICAgICAgY3R4LmNsaXAoKTsKKyAgICAgICAgY3R4LmRyYXdJbWFnZSh0aGlz
Ll90aW50ZWRDYW52YXMsIDAsIDAsIGRpbWVuc2lvbiwgZGltZW5zaW9uKTsKKyAgICAgICAgY3R4
LnJlc3RvcmUoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iLnBuZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVtYi5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBl
YTI5ZDY3NjhkMzk0MmZhMmZmNjZkNzczYTY5MDhhMjBhODliNQpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMzAyMAp6Y21WOy0zcDRiSVApPGg7M0t8TGswMDBlMU5KTFRxMDAwZEQwMDBwUDFeQHM2
MkxDM1UwMDAwOWE3YkJtMDAwWFUKejAwMFhVMFJXbnU3eXRrWU89Jnx6UCo3LVpiWj5LTFoqVSs8
THFpfk5hJkttN1ktSW9kYy1veSljVVk3NjdDenRpCnpXZS0rRCp6bUVKWT1IbkdCZGlGPjVMdSFT
a15vX1o1RTRNZWdAXzdQNmNySmlOTDlwdyllMTxSaH5sNnF4TXg5JQp6aCsyelBUc1pDQCteNG1E
ZGhoTStgYDchdD1iWSNLJlV3IWRmRHNaVms+O1htMDY5e0hKVVpBUGs1NVIlJC1SSUEKejYtZUwm
QVEweHUhZTw0PTAwOGc8ZDNiKHd1c3szKHVXdFlYMEMzZVZCb2ZFcnxBVj92Q1JZRjtrcFNRIzY2
WHM2CnprV3Y4MUU+eUBBMExUfnN1djQ+UzNJTFA8MEJtYERMTHZhRjRGSyUpTmo/UHQqcn03OzdY
YTl6OUh8SFpqUjYzZQp6Q2BUaiRLKVYyN1JlQDQwMD5IdW1wc1lZNUUoRX0/MGYxU3lHRGlZe3kj
KVl2aiMhV25Ld3RvWG5MO2VnMDNiTDUKejA3RClWJT55N3oxRTRVe3p1Pjd+YUR9KT8wUlhfdW1D
Y3QrKGxacGVtQ3piQF42PW98QT56VnB1fGk9TkRHKzd9Cno8UllBeG48RW9RPUwxYTYzOytOY2BP
KDR0STZzaSo9SCVoI1g2SjEwXnU/bjdZdyZMKEp8WGVuez1BRj0xT08wRAp6Jitwbl88Pmw0YGFL
ezAjYi0hej1UTDlXdDBCR08mVHtHSldwanJ5aGRpamZhSVEmMiFvfXAwNEpSS1lnM2smVGYKelZ4
aGUtPEJMQjNHdlJPR2krPVh9S3B5X3ZkaGheb25uMFBZekB2bHhhYmEkRHUyUFFZJUxHQyhadWpS
U3s+TyFYCnp7ZjtUbzt4d15iRUVTNkpTYyRrJEIyQ0E2eGwpbHRBPDMyRTY2dD8zQGdKN2AzNnBt
WDBJWV5qeilyUll3YWFZNAp6ZShuSlJpdzs9UWJedChyXkRUQFQzeX1hMlhFWlctX1clSHN6eGpf
cUQqKnRfbSEjdFcwS0RpSlQmUj42T3ZWVFIKejA3UmdIRHpISFo0OGF0dnp6Jj9qOWxYRjcwJH5Q
M0tueF9uSlA8KyM8YldJc3AlfDd5OEMxWUoqYVdxKDB+KCthCnpuJkErJSE3KEB1PWltfXRmJE1N
PTI0RVBUIVdnYFUyP1JtTjJvcXI7SSoxV3NqQFRtMzJwNUAtMVJgTmJHP0lYJQp6QW5Bd3tRNmsw
MmEtOyZPTFRacytORih3c2F1aGpAVHRORGUrc0dnP2l1e1ZhTT1fTHZ2UVkhbjAoQyZTczI+YE4K
eiMtTVoyYlRraUxmUj5fYihIZ1dLSiVGfk5yX29GM2Ijd3JJaWpIR3woSj5CWWpNLXNhakU2O0Zp
Qzd2WSN9O0dkCnpTVCRDVUhEZXVFSCtCXnB6QEIwNjJxWGZGZkRgTnBVVzU/Qlk9ViVHTV81YylM
I1FSfUJlVzhfMnYtUyVnZllTPQp6QjlvfDN2P1kySGBOVmkpSTxiJmdNeXd8OEFzISl+QzAte0U2
SkxgXkJvNGB2PFczNDlDNkY+bjNyVEI4K2VqXj4KelE9fnI5NU5WdURDaEwlRyQ9PjckdlZnMjBt
eXglUzUwRm9pYF5tJVB3LWg/WGh+aThNcTlqdEpsb0NvY1drMk52CnpySnBpRm5WX21zJjhlUSQy
JiN4V3BJUys2cG10QyVRLWBTJkc8QkxLJjZeZk8lY0whJSl6RiUwWEtEOW5GWD9vOwp6M0VoSnBN
VkhXKihyZjRrPkY0USNebWh5bWg3RShxTk1hfSVZWi1lUHJ4Pj54RlBUaUgxPUUrQSRXJD1iRzg+
c14Kem09Qm41UmFoJGFEdHJ9QCRgWH0ybH4kRjBtRktFZFJkWkU4KXBARTVSSTYxRnQ2by1wcmJi
bj5QfilpeSlFMkFOCnpzVTIwanNXel84UWc+MzFQfHMwY3FyUEFMZzhFfCh2V0E2NXBvVTFKUkFh
WnM4STIocCN4aUJgU1ZHb3ZScy11Uwp6WW5WLTlUZUE3PU9tK3FQOCtJPnlPakFSMXMlRVRhayFH
RmRhbUBoXiM8QWU9SW9YXl8mTFBlWCZVLUJiRWs3LT4KeilAclMwdCR3WEgrSXJmKStHNmM7P0gy
OXArVjZGNm9qeyF8byVLM3hJYD8lNng7REJ8eGBuI2liPGdUUChfYHktCno9P1Y0OV4kekxYKE1S
PWReclE2YD5oSVI/KEh9UTNHemQxMzhFaTIpV0FNejdXOVZ5YFh9SG53Z3lFPFclVkBmaAp6I0F1
X0BOdXd2WUNobXU0PDI4NX1LNHo/TTlBZDBBLWV1ZnRKWWl5S0dUV3JZcXtaYUVEYjE4P25yNkR1
dzl8Q1YKeiUqWlU8dGt8cns/MmI5cm9OSno4elMrRm57RWRhQk1WIVMtaSNDaExtZkR0bCVMU0hB
bWlNZmZSejZtRlJgcGliCnp0Vnp+Zj5uIVZTKT5tdiQ4JntoUW4+dzR6d3kzUn10O0JZbFpRbTUp
NnB0eT1EZkxycytBLXw+PjxhOWY+O347UQp6X0Y/dVZfSEZqaDluMmdPOW85UV5KQTg2PGI8QjJi
YUo9aUo7V1dkayNIcXZTUzcjZSVwPnYoe0g1YUIha2pvTzYKemM5JDFaWktzTi1abDhMfm1Fe2Bs
eTMpMU5eYG8xK283fUQwWlBlWSZKO2k7aWAlTnlKOF84WTZKP315RUBiXzVhCnphbT9lTHI8PHEz
Xk57QitVVXB0dFVpLVpzUHFVbVJwNEtwSiRsSnRRO0p3UnhVXitmTVclfHpQMTN0eiswLXQpSAp6
aHJYdTFCSHVsfUJZeEk/blNLWlNwOEdyYyVsKGh8enV8ZkU3ViVDNlU7KTdhPHBJNWM4aUJJfFlY
Y3R5bkZPVD0KekgzZnxZeTlPQHxKezNYPzJAUDJ2YSs3YnM3eEVrVlY+OEBtRVNrfDMkX1NrbVN7
d1E+JXFDMTgpKTlffCZqe1pUCnplczhBdk96RihGMiNEWkVZPjJvWVgmSVJwYEYje0FEbCkxcj5R
U14pYmE4YXxFWV9eI1NeSDxiamA1R0ZqSlo0OAp6WVBORUFYUks7JFFmeT1GbzRBMHVzPD9yOGh4
a1NEbWxBWG5Cbmo8XzxpeXktSiZFSVUwX1NYK0dvMGpfUkYtc08KenVJMWRLeGZrWj8mZFoqNkpY
dGtha2JGM1dtPWMkPUtqbmlVTFFwUmxQdnhnPk8mdF5SZ3F3dj1NWlRocXFFV0g4Cnp4Sm8+ZD1B
QmxSX0JoPTtlTTk8YWhFR095I3huXnxRWSgzcDhJcmpwXkcjTW4qNTBobyo+VHd8SWgzNH5vVEV8
PQp6WF9tQXIqRCR2endAK3AoRTBZYzZkRkV9KDg8VTYxX3Y5bl9iTXhDM1k9dW5HcXFJYDRQITFN
TUZRX1ljVE5xbi0KenhKYlE3VEdUViZYOCE4PUJNWDhTZTclc2NQYEkkTyp0bUZFQCElckFNWXxS
d2kmR2JPRS1fdEZ4QDM1MUBYfiRECnpYdj95ZXtaUWdxUWRSUDVkRUR9alFpSVpecjkmJSVTMlVI
V2wqITkodUpsXkRWLTtiUVdMNThLbSheUVZlPH5OMQp6VSN4SmZzSUtfMU0hNHFVUzU5Qm1lRCEm
NCtTPVlxeDYxQTdOYjk4UVptam9OenBxTllZQytZfGhWVHVvOH1XX2gKejgoKGNvLWdLZFFZVzBy
SXc5VSVSMTJ0aGE/T1YqWXRsUlJUSGx5fT5vcXRgK1J7Z0UzeDR6algrU2IzX2NZRV49CnpnQj13
Ky10VXlgeXRPTk1TOEtnUmVmNGhBP3Q8TnE4ZSR1fHp2aDEzeEpQJFMjaCNDUXJGI2VWTWVwbHNi
Wj4wagp6dWZNO3QzMmptfmpVR3JrYU9JblRaYHp5Zm5zPkV1U31HMzBMRktfRy09PShmPDUxfEsm
Y29jcCZFSmBTeEFoMz8Kek5PPiNMST1eK1NFdShGcUopeW50PSF+UEM5Yk8kcnpQSkI9Pz1qPEpi
O21XMlNEdjdxQ19WQXs8YnNwcXIofnl8CnpvbFpZSilTMjlRX2V9aG1ZaDYpWXk9T3p1bzxBM0s/
bzc4fF9zUjMjPVp7X1J5bTBnKV9oUT42d0BhLSh1MDJQNwp6YVEpIyh1VWx7SFcldFlOUzNJdENe
aUF0SyhlS2xMYGY5K3tiSnpJU0U/dThfejM7fkM4QEZ5SS01al9qeTdsO1cKel9VI3ZVM2hxcVlV
MyFtcnVsJkIre3B0dCQ1OSl1a3s7XzRpWlElR3x6K2xoQVNyNnxIMzVUQmtsPmdJKjtuR0xVCnpO
N1ctbkJhTSVwQTBIYkg4b2x5bCZYZUoldlpvV3olNj9ZPWRGeWtsPWltTH1gJUJNUXtNaGdkYEhS
b0x1NmUyUgp6YV9fNkR1UjZ5ZyN+LX1UY3xHeF97SEBPMGVlYnlNeTVHbVdBREpscEs+a3FrKGZW
VkByX2ZMTEtJZVM/ezRlKX0Kel5aTzt6cEVDZGUwM2MmWFFjVkI9ZEw7az1mUCgtNGBUcWFfZmF3
NExidWEoYD5SPG8+SSt5P2U3aktlWiNZTy1DCnowUXBIb0t+IzkhdGRxTkghIVEodktOJHpoMzNT
cmJYWWYrODJ0eDRXQSY9YmxFa3NDPW1KV2QkZj1BO0VsfkVUUAp6TGZoYVpeb0pqRDtDJGotSTNr
Mz15XjhvcE4jSkZDWiZJcVktV2B2fTUzVGhNTmF1aU1tU3UmdF9GVUk+dS0yWmwKekVHdk5KSERJ
TmIlQns3aHJmSUB0WXdieFhsPkA2XmZSdTlVb081bTRoTSN1TUlWdDcjNT0/PU9iOGkwXlp+Xlh0
CnomRDcpQzgxdlMzVTZge208YHF+QUFuKkpCVD9uejVuXkZrakRAbD9mMjFGRF5pKDdVdmVrfGZL
eE5Hd2RMdyo8cgp6QUlFViNtK1phd2ZSQkt4RVgjeFVld1lEPHZNZGlrQzRlWDM4QmtOWCpFcGE4
S0UpJlZeZ1JIQy1ubGpRUSQ4STQKTzAwMDA8TU5VTW5MU1RZOEo7NU9XCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvU2xpZGVyVGh1bWJAMngucG5nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iQDJ4LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWM5MWVmOWM4
YmYzOTEzYzlkZmQwYmI5NWFjMDk5ZjZmOTUyNDAxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAz
MzQ3CnpjbVYrdTRlYXVYUCk8aDszS3xMazAwMGUxTkpMVHEwMDBeUTAwMUhnMV5AczZMMVcxZDAw
MDA5YTdiQm0wMDBYVQp6MDAwWFUwUldudTd5dGtZTz0mfHpQKjctWmJaPktMWipVKzxMcWl+TmEm
S203WS1Jb2RjLW95KWNVWTc2N0N6dGkKeldlLStEKnptRUpZPUhuR0JkaUY+NUx1IVNrXm9fWjVF
NE1lZ0BfN1A2Y3JKaU5MOXB3KWUxPFJofmw2cXhNeDklCnpoKzJ6UFRzWkNAK140bURkaGhNK2Bg
NyF0PWJZI0smVXchZGZEc1pWaz47WG0wNjl7SEpVWkFQazU1UiUkLVJJQQp6Ni1lTCZBUTB4dSFl
PDQ9MDA4ZzxkM2Iod3VzezModVd0WVgwQzNlVkJvZkVyfEFWP3ZDUllGO2twU1EjNjZYczYKemtX
djgxRT55QEEwTFR+c3V2ND5TM0lMUDwwQm1gRExMdmFGNEZLJSlOaj9QdCpyfTc7N1hhOXo5SHxI
WmpSNjNlCnpDYFRqJEspVjI3UmVANDAwPkh1bXBzWVk1RShFfT8wZjFTeUdEaVl7eSMpWXZqIyFX
bkt3dG9Ybkw7ZWcwM2JMNQp6MDdEKVYlPnk3ejFFNFV7enU+N35hRH0pPzBSWF91bUNjdCsobFpw
ZW1DemJAXjY9b3xBPnpWcHV8aT1OREcrN30KejxSWUF4bjxFb1E9TDFhNjM7K05jYE8oNHRJNnNp
Kj1IJWgjWDZKMTBedT9uN1l3JkwoSnxYZW57PUFGPTFPTzBECnomK3BuXzw+bDRgYUt7MCNiLSF6
PVRMOVd0MEJHTyZUe0dKV3BqcnloZGlqZmFJUSYyIW99cDA0SlJLWWczayZUZgp6VnhoZS08QkxC
M0d2Uk9HaSs9WH1LcHlfdmRoaF5vbm4wUFl6QHZseGFiYSREdTJQUVklTEdDKFp1alJTez5PIVgK
entmO1RvO3h3XmJFRVM2SlNjJGskQjJDQTZ4bClsdEE8MzJFNjZ0PzNAZ0o3YDM2cG1YMElZXmp6
KXJSWXdhYVk0CnplKG5KUml3Oz1RYl50KHJeRFRAVDN5fWEyWEVaVy1fVyVIc3p4al9xRCoqdF9t
ISN0VzBLRGlKVCZSPjZPdlZUUgp6MDdSZ0hEekhIWjQ4YXR2enomP2o5bFhGNzAkflAzS254X25K
UDwrIzxiV0lzcCV8N3k4QzFZSiphV3EoMH4oK2EKem4mQSslITcoQHU9aW19dGYkTU09MjRFUFQh
V2dgVTI/Um1OMm9xcjtJKjFXc2pAVG0zMnA1QC0xUmBOYkc/SVglCnpBbkF3e1E2azAyYS07Jk9M
VFpzK05GKHdzYXVoakBUdE5EZStzR2c/aXV7VmFNPV9MdnZRWSFuMChDJlNzMj5gTgp6Iy1NWjJi
VGtpTGZSPl9iKEhnV0tKJUZ+TnJfb0YzYiN3cklpakhHfChKPkJZak0tc2FqRTY7RmlDN3ZZI307
R2QKelNUJENVSERldUVIK0JecHpAQjA2MnFYZkZmRGBOcFVXNT9CWT1WJUdNXzVjKUwjUVJ9QmVX
OF8ydi1TJWdmWVM9CnpCOW98M3Y/WTJIYE5WaSlJPGImZ015d3w4QXMhKX5DMC17RTZKTGBeQm80
YHY8VzM0OUM2Rj5uM3JUQjgrZWpePgp6UT1+cjk1TlZ1RENoTCVHJD0+NyR2VmcyMG15eCVTNTBG
b2lgXm0lUHctaD9YaH5pOE1xOWp0SmxvQ29jV2syTnYKenJKcGlGblZfbXMmOGVRJDImI3hXcElT
KzZwbXRDJVEtYFMmRzxCTEsmNl5mTyVjTCElKXpGJTBYS0Q5bkZYP287CnozRWhKcE1WSFcqKHJm
NGs+RjRRI15taHltaDdFKHFOTWF9JVlaLWVQcng+PnhGUFRpSDE9RStBJFckPWJHOD5zXgp6bT1C
bjVSYWgkYUR0cn1AJGBYfTJsfiRGMG1GS0VkUmRaRTgpcEBFNVJJNjFGdDZvLXByYmJuPlB+KWl5
KUUyQU4KenNVMjBqc1d6XzhRZz4zMVB8czBjcXJQQUxnOEV8KHZXQTY1cG9VMUpSQWFaczhJMihw
I3hpQmBTVkdvdlJzLXVTCnpZblYtOVRlQTc9T20rcVA4K0k+eU9qQVIxcyVFVGFrIUdGZGFtQGhe
IzxBZT1Jb1heXyZMUGVYJlUtQmJFazctPgp6KUByUzB0JHdYSCtJcmYpK0c2Yzs/SDI5cCtWNkY2
b2p7IXxvJUszeElgPyU2eDtEQnx4YG4jaWI8Z1RQKF9geS0Kej0/VjQ5XiR6TFgoTVI9ZF5yUTZg
PmhJUj8oSH1RM0d6ZDEzOEVpMilXQU16N1c5VnlgWH1IbndneUU8VyVWQGZoCnojQXVfQE51d3ZZ
Q2htdTQ8Mjg1fUs0ej9NOUFkMEEtZXVmdEpZaXlLR1RXcllxe1phRURiMTg/bnI2RHV3OXxDVgp6
JSpaVTx0a3xyez8yYjlyb05Kejh6UytGbntFZGFCTVYhUy1pI0NoTG1mRHRsJUxTSEFtaU1mZlJ6
Nm1GUmBwaWIKenRWen5mPm4hVlMpPm12JDgme2hRbj53NHp3eTNSfXQ7QllsWlFtNSk2cHR5PURm
THJzK0EtfD4+PGE5Zj47fjtRCnpfRj91Vl9IRmpoOW4yZ085bzlRXkpBODY8YjxCMmJhSj1pSjtX
V2RrI0hxdlNTNyNlJXA+dih7SDVhQiFram9PNgp6YzkkMVpaS3NOLVpsOEx+bUV7YGx5MykxTl5g
bzErbzd9RDBaUGVZJko7aTtpYCVOeUo4XzhZNko/fXlFQGJfNWEKemFtP2VMcjw8cTNeTntCK1VV
cHR0VWktWnNQcVVtUnA0S3BKJGxKdFE7SndSeFVeK2ZNVyV8elAxM3R6KzAtdClICnpoclh1MUJI
dWx9Qll4ST9uU0taU3A4R3JjJWwoaHx6dXxmRTdWJUM2VTspN2E8cEk1YzhpQkl8WVhjdHluRk9U
PQp6SDNmfFl5OU9AfEp7M1g/MkBQMnZhKzdiczd4RWtWVj44QG1FU2t8MyRfU2ttU3t3UT4lcUMx
OCkpOV98Jmp7WlQKemVzOEF2T3pGKEYyI0RaRVk+Mm9ZWCZJUnBgRiN7QURsKTFyPlFTXiliYThh
fEVZX14jU15IPGJqYDVHRmpKWjQ4CnpZUE5FQVhSSzskUWZ5PUZvNEEwdXM8P3I4aHhrU0RtbEFY
bkJuajxfPGl5eS1KJkVJVTBfU1grR28wal9SRi1zTwp6dUkxZEt4ZmtaPyZkWio2Slh0a2FrYkYz
V209YyQ9S2puaVVMUXBSbFB2eGc+TyZ0XlJncXd2PU1aVGhxcUVXSDgKenhKbz5kPUFCbFJfQmg9
O2VNOTxhaEVHT3kjeG5efFFZKDNwOElyanBeRyNNbio1MGhvKj5Ud3xJaDM0fm9URXw9CnpYX21B
cipEJHZ6d0ArcChFMFljNmRGRX0oODxVNjFfdjluX2JNeEMzWT11bkdxcUlgNFAhMU1NRlFfWWNU
TnFuLQp6eEpiUTdUR1RWJlg4ITg9Qk1YOFNlNyVzY1BgSSRPKnRtRkVAISVyQU1ZfFJ3aSZHYk9F
LV90RnhAMzUxQFh+JEQKelh2P3lle1pRZ3FRZFJQNWRFRH1qUWlJWl5yOSYlJVMyVUhXbCohOSh1
SmxeRFYtO2JRV0w1OEttKF5RVmU8fk4xCnpVI3hKZnNJS18xTSE0cVVTNTlCbWVEISY0K1M9WXF4
NjFBN05iOThRWm1qb056cHFOWVlDK1l8aFZUdW84fVdfaAp6OCgoY28tZ0tkUVlXMHJJdzlVJVIx
MnRoYT9PVipZdGxSUlRIbHl9Pm9xdGArUntnRTN4NHpqWCtTYjNfY1lFXj0KemdCPXcrLXRVeWB5
dE9OTVM4S2dSZWY0aEE/dDxOcThlJHV8enZoMTN4SlAkUyNoI0NRckYjZVZNZXBsc2JaPjBqCnp1
Zk07dDMyam1+alVHcmthT0luVFpgenlmbnM+RXVTfUczMExGS19HLT09KGY8NTF8SyZjb2NwJkVK
YFN4QWgzPwp6Tk8+I0xJPV4rU0V1KEZxSil5bnQ9IX5QQzliTyRyelBKQj0/PWo8SmI7bVcyU0R2
N3FDX1ZBezxic3Bxcih+eXwKem9sWllKKVMyOVFfZX1obVloNilZeT1PenVvPEEzSz9vNzh8X3NS
MyM9WntfUnltMGcpX2hRPjZ3QGEtKHUwMlA3CnphUSkjKHVVbHtIVyV0WU5TM0l0Q15pQXRLKGVL
bExgZjkre2JKeklTRT91OF96Mzt+QzhARnlJLTVqX2p5N2w7Vwp6X1UjdlUzaHFxWVUzIW1ydWwm
Qit7cHR0JDU5KXVreztfNGlaUSVHfHorbGhBU3I2fEgzNVRCa2w+Z0kqO25HTFUKek43Vy1uQmFN
JXBBMEhiSDhvbHlsJlhlSiV2Wm9XeiU2P1k9ZEZ5a2w9aW1MfWAlQk1Re01oZ2RgSFJvTHU2ZTJS
CnphX182RHVSNnlnI34tfVRjfEd4X3tIQE8wZWVieU15NUdtV0FESmxwSz5rcWsoZlZWQHJfZkxM
S0llUz97NGUpfQp6XlpPO3pwRUNkZTAzYyZYUWNWQj1kTDtrPWZQKC00YFRxYV9mYXc0TGJ1YShg
PlI8bz5JK3k/ZTdqS2VaI1lPLUMKejB6Z1NiS34jOSE/M1g9aitmV3BTcERVWlQjO3FWdGxQMEFA
M1Q9bVckZjg2RipwdS1lNWN6PDEkUGozfVdAdDlnCno4OUhSfDYwaUxZYDR3NDJwb0lqeEdGT0hz
I0ZaQEJBeVN0Y0ZzPDlmd3ZyK0FnJTw+cD8hITZmOS1TK1pCbmhgNgp6amEkOykxQzYyeTwpTUBy
XjcrVFdZaFYleG05SGYrMVl7Qzt4eDJnajBicHh1Pm9mMlRfPnBHMW8mYVhHVEhVR0YKej5xKSZ7
UHBafUc0cSZRIz18TCkkJTY2bUN4YlNeSEBxSXNPRyNWRmBOQFpLWXJwQVIjMUV5YDtvMzg3Z1Vx
VVlKCnp5NihBYytuV2tESnI8LT9EeT11MCVfczxoV1JSdGxRSz9pfjl+SmYjdW5MOTNkbnNrNyk5
RUR0dlhydEBFRWVBWgp6bVV7UEVuZ09oWmdAc2lxPD1JdGBLRz5PUW55VSZuYkpiUiMxdVZsYlIt
fXxDVkhoVUVTVzA8Zjd7LWMlJT9AZ3gKemUjby10ZDByR24kdGQ8YiZvY35UYEVSZ1V6JW9zOXJQ
WFM9ISQkSkVUZGhgZVg9IVAtNH43NjkwZE1CIz1iIUtJCno/fDsmRHtZNHRoKktXNnUlSHtJTWdN
KStiZlRPOHEla1M7JlpSb2xfbXNYZVN4O3xIeylpIWBVRmVRTXV6X1R6Ngp6emk2NV5rPis8Umpe
b29ARjFIM1d2dVktWk9lWFUlP1JsY3M2b0ElMF9fOC1KeVJ2Xj0ycURBYGZXI29zfEhIez4KeiNr
dz04JUt9ez5qLXNmVyVqTkU7eHApfGNUXzZVITh0QGI3OVVtVmJyNSVNQHYhQHYzZmtuJSopKlF6
PDQxJUIrCnokOGo9X2dDT1dSaiZvPlApKjckfjxWRH08XkErI194UipsaFZpaWRRZDw5UFh3Xnw8
MSl6fSFmUiRZfkBIVl49YQpkSk5KTHxZWEReZjU3Y3g+QnslPjgwMDJvdlBESExrVjFtKHtWSDV4
VwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1NsaWRlclRodW1iUHJlc3NlZC5wbmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvU2xpZGVyVGh1bWJQcmVzc2VkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNzBiNmUyZjhhYjYyNjY4Mjk4NTA4OTliZmFhMzEzYjY2MDIzMzY2CkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMDc2CnpjbVYrZjRFeXRtUCk8aDszS3xMazAwMGUxTkpM
VHEwMDBkRDAwMHBQMV5AczYyTEMzVTAwMDA5YTdiQm0wMDBYVQp6MDAwWFUwUldudTd5dGtZTz0m
fHpQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2RjLW95KWNVWTc2N0N6dGkKeldlLStEKnpt
RUpZPUhuR0JkaUY+NUx1IVNrXm9fWjVFNE1lZ0BfN1A2Y3JKaU5MOXB3KWUxPFJofmw2cXhNeDkl
CnpoKzJ6UFRzWkNAK140bURkaGhNK2BgNyF0PWJZI0smVXchZGZEc1pWaz47WG0wNjl7SEpVWkFQ
azU1UiUkLVJJQQp6Ni1lTCZBUTB4dSFlPDQ9MDA4ZzxkM2Iod3VzezModVd0WVgwQzNlVkJvZkVy
fEFWP3ZDUllGO2twU1EjNjZYczYKemtXdjgxRT55QEEwTFR+c3V2ND5TM0lMUDwwQm1gRExMdmFG
NEZLJSlOaj9QdCpyfTc7N1hhOXo5SHxIWmpSNjNlCnpDYFRqJEspVjI3UmVANDAwPkh1bXBzWVk1
RShFfT8wZjFTeUdEaVl7eSMpWXZqIyFXbkt3dG9Ybkw7ZWcwM2JMNQp6MDdEKVYlPnk3ejFFNFV7
enU+N35hRH0pPzBSWF91bUNjdCsobFpwZW1DemJAXjY9b3xBPnpWcHV8aT1OREcrN30KejxSWUF4
bjxFb1E9TDFhNjM7K05jYE8oNHRJNnNpKj1IJWgjWDZKMTBedT9uN1l3JkwoSnxYZW57PUFGPTFP
TzBECnomK3BuXzw+bDRgYUt7MCNiLSF6PVRMOVd0MEJHTyZUe0dKV3BqcnloZGlqZmFJUSYyIW99
cDA0SlJLWWczayZUZgp6VnhoZS08QkxCM0d2Uk9HaSs9WH1LcHlfdmRoaF5vbm4wUFl6QHZseGFi
YSREdTJQUVklTEdDKFp1alJTez5PIVgKentmO1RvO3h3XmJFRVM2SlNjJGskQjJDQTZ4bClsdEE8
MzJFNjZ0PzNAZ0o3YDM2cG1YMElZXmp6KXJSWXdhYVk0CnplKG5KUml3Oz1RYl50KHJeRFRAVDN5
fWEyWEVaVy1fVyVIc3p4al9xRCoqdF9tISN0VzBLRGlKVCZSPjZPdlZUUgp6MDdSZ0hEekhIWjQ4
YXR2enomP2o5bFhGNzAkflAzS254X25KUDwrIzxiV0lzcCV8N3k4QzFZSiphV3EoMH4oK2EKem4m
QSslITcoQHU9aW19dGYkTU09MjRFUFQhV2dgVTI/Um1OMm9xcjtJKjFXc2pAVG0zMnA1QC0xUmBO
Ykc/SVglCnpBbkF3e1E2azAyYS07Jk9MVFpzK05GKHdzYXVoakBUdE5EZStzR2c/aXV7VmFNPV9M
dnZRWSFuMChDJlNzMj5gTgp6Iy1NWjJiVGtpTGZSPl9iKEhnV0tKJUZ+TnJfb0YzYiN3cklpakhH
fChKPkJZak0tc2FqRTY7RmlDN3ZZI307R2QKelNUJENVSERldUVIK0JecHpAQjA2MnFYZkZmRGBO
cFVXNT9CWT1WJUdNXzVjKUwjUVJ9QmVXOF8ydi1TJWdmWVM9CnpCOW98M3Y/WTJIYE5WaSlJPGIm
Z015d3w4QXMhKX5DMC17RTZKTGBeQm80YHY8VzM0OUM2Rj5uM3JUQjgrZWpePgp6UT1+cjk1TlZ1
RENoTCVHJD0+NyR2VmcyMG15eCVTNTBGb2lgXm0lUHctaD9YaH5pOE1xOWp0SmxvQ29jV2syTnYK
enJKcGlGblZfbXMmOGVRJDImI3hXcElTKzZwbXRDJVEtYFMmRzxCTEsmNl5mTyVjTCElKXpGJTBY
S0Q5bkZYP287CnozRWhKcE1WSFcqKHJmNGs+RjRRI15taHltaDdFKHFOTWF9JVlaLWVQcng+PnhG
UFRpSDE9RStBJFckPWJHOD5zXgp6bT1CbjVSYWgkYUR0cn1AJGBYfTJsfiRGMG1GS0VkUmRaRTgp
cEBFNVJJNjFGdDZvLXByYmJuPlB+KWl5KUUyQU4KenNVMjBqc1d6XzhRZz4zMVB8czBjcXJQQUxn
OEV8KHZXQTY1cG9VMUpSQWFaczhJMihwI3hpQmBTVkdvdlJzLXVTCnpZblYtOVRlQTc9T20rcVA4
K0k+eU9qQVIxcyVFVGFrIUdGZGFtQGheIzxBZT1Jb1heXyZMUGVYJlUtQmJFazctPgp6KUByUzB0
JHdYSCtJcmYpK0c2Yzs/SDI5cCtWNkY2b2p7IXxvJUszeElgPyU2eDtEQnx4YG4jaWI8Z1RQKF9g
eS0Kej0/VjQ5XiR6TFgoTVI9ZF5yUTZgPmhJUj8oSH1RM0d6ZDEzOEVpMilXQU16N1c5VnlgWH1I
bndneUU8VyVWQGZoCnojQXVfQE51d3ZZQ2htdTQ8Mjg1fUs0ej9NOUFkMEEtZXVmdEpZaXlLR1RX
cllxe1phRURiMTg/bnI2RHV3OXxDVgp6JSpaVTx0a3xyez8yYjlyb05Kejh6UytGbntFZGFCTVYh
Uy1pI0NoTG1mRHRsJUxTSEFtaU1mZlJ6Nm1GUmBwaWIKenRWen5mPm4hVlMpPm12JDgme2hRbj53
NHp3eTNSfXQ7QllsWlFtNSk2cHR5PURmTHJzK0EtfD4+PGE5Zj47fjtRCnpfRj91Vl9IRmpoOW4y
Z085bzlRXkpBODY8YjxCMmJhSj1pSjtXV2RrI0hxdlNTNyNlJXA+dih7SDVhQiFram9PNgp6Yzkk
MVpaS3NOLVpsOEx+bUV7YGx5MykxTl5gbzErbzd9RDBaUGVZJko7aTtpYCVOeUo4XzhZNko/fXlF
QGJfNWEKemFtP2VMcjw8cTNeTntCK1VVcHR0VWktWnNQcVVtUnA0S3BKJGxKdFE7SndSeFVeK2ZN
VyV8elAxM3R6KzAtdClICnpoclh1MUJIdWx9Qll4ST9uU0taU3A4R3JjJWwoaHx6dXxmRTdWJUM2
VTspN2E8cEk1YzhpQkl8WVhjdHluRk9UPQp6SDNmfFl5OU9AfEp7M1g/MkBQMnZhKzdiczd4RWtW
Vj44QG1FU2t8MyRfU2ttU3t3UT4lcUMxOCkpOV98Jmp7WlQKemVzOEF2T3pGKEYyI0RaRVk+Mm9Z
WCZJUnBgRiN7QURsKTFyPlFTXiliYThhfEVZX14jU15IPGJqYDVHRmpKWjQ4CnpZUE5FQVhSSzsk
UWZ5PUZvNEEwdXM8P3I4aHhrU0RtbEFYbkJuajxfPGl5eS1KJkVJVTBfU1grR28wal9SRi1zTwp6
dUkxZEt4ZmtaPyZkWio2Slh0a2FrYkYzV209YyQ9S2puaVVMUXBSbFB2eGc+TyZ0XlJncXd2PU1a
VGhxcUVXSDgKenhKbz5kPUFCbFJfQmg9O2VNOTxhaEVHT3kjeG5efFFZKDNwOElyanBeRyNNbio1
MGhvKj5Ud3xJaDM0fm9URXw9CnpYX21BcipEJHZ6d0ArcChFMFljNmRGRX0oODxVNjFfdjluX2JN
eEMzWT11bkdxcUlgNFAhMU1NRlFfWWNUTnFuLQp6eEpiUTdUR1RWJlg4ITg9Qk1YOFNlNyVzY1Bg
SSRPKnRtRkVAISVyQU1ZfFJ3aSZHYk9FLV90RnhAMzUxQFh+JEQKelh2P3lle1pRZ3FRZFJQNWRF
RH1qUWlJWl5yOSYlJVMyVUhXbCohOSh1SmxeRFYtO2JRV0w1OEttKF5RVmU8fk4xCnpVI3hKZnNJ
S18xTSE0cVVTNTlCbWVEISY0K1M9WXF4NjFBN05iOThRWm1qb056cHFOWVlDK1l8aFZUdW84fVdf
aAp6OCgoY28tZ0tkUVlXMHJJdzlVJVIxMnRoYT9PVipZdGxSUlRIbHl9Pm9xdGArUntnRTN4NHpq
WCtTYjNfY1lFXj0KemdCPXcrLXRVeWB5dE9OTVM4S2dSZWY0aEE/dDxOcThlJHV8enZoMTN4SlAk
UyNoI0NRckYjZVZNZXBsc2JaPjBqCnp1Zk07dDMyam1+alVHcmthT0luVFpgenlmbnM+RXVTfUcz
MExGS19HLT09KGY8NTF8SyZjb2NwJkVKYFN4QWgzPwp6Tk8+I0xJPV4rU0V1KEZxSil5bnQ9IX5Q
QzliTyRyelBKQj0/PWo8SmI7bVcyU0R2N3FDX1ZBezxic3Bxcih+eXwKem9sWllKKVMyOVFfZX1o
bVloNilZeT1PenVvPEEzSz9vNzh8X3NSMyM9WntfUnltMGcpX2hRPjZ3QGEtKHUwMlA3CnphUSkj
KHVVbHtIVyV0WU5TM0l0Q15pQXRLKGVLbExgZjkre2JKeklTRT91OF96Mzt+QzhARnlJLTVqX2p5
N2w7Vwp6X1UjdlUzaHFxWVUzIW1ydWwmQit7cHR0JDU5KXVreztfNGlaUSVHfHorbGhBU3I2fEgz
NVRCa2w+Z0kqO25HTFUKek43Vy1uQmFNJXBBMEhiSDhvbHlsJlhlSiV2Wm9XeiU2P1k9ZEZ5a2w9
aW1MfWAlQk1Re01oZ2RgSFJvTHU2ZTJSCnphX182RHVSNnlnI34tfVRjfEd4X3tIQE8wZWVieU15
NUdtV0FESmxwSz5rcWsoZlZWQHJfZkxMS0llUz97NGUpfQp6XlpPO3pwRUNkZTAzYyZYUWNWQj1k
TDtrPWZQKC00YFRxYV9mYXc0TGJ1YShgPlI8bz5JK3k/ZTdqS2VaI1lPLUMKejBXbkVMS34jOSF0
ZHFUSjB6bmpvemROcTV7Klk+ZkNFWFRqYmVqbW1mYHYoODtkNytPVE9ga3NBfV9PR3dUeFlDCnpR
YlpBZ0lKTjxjOVZibk0jSD14Zjk1fkh6elJTSUhYVCpFWXNad1EhQWAqKG9ySEYqM2w9dUZOZm0p
aVRxZGQ9Rgp6KGxpfGJ3UXJke3BxP2JqJj18OXQmMVQqaHZyM1g9Mi1IZzxwck4lTTctSlVtYFB9
YnBqOUYtezJTOCgmNzRKUEYKeihnPyRfSjA2YzhUZG1mYHtzYDlFPVlHRmB2KU9EVy11cEtKWUN0
IzdeTUAja0kpYHAteG0tVD1kYzlqPHFKVmFtCnpXJW9ZOzA4dGNtdk1qcDsrNXltdjxNPktNal94
T3A8Nz1ROTBIVHp0eyR7Qm5RVXlmdTJMJkckUEtKdUBjM1ZeYAp6bUVjJnxJYWRJTTBAbHtyc2RM
V2xLYk95VCZOKnhDNmolI3oyQWwoVypYe3VveiM0ZCFmQlBFOF5nYU9CRjFGXyQKU2RJdUsoMDAw
MDxNTlVNbkxTVFp4cnIyaXkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9TbGlkZXJUaHVtYlByZXNz
ZWRAMngucG5nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Ns
aWRlclRodW1iUHJlc3NlZEAyeC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVjNTQyZjU4YzczMTU2YjhkYjU3
N2JkNjM1YjAzNDc3NmFlMDFiMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzQ2Mwp6Y21WOzI0
UzRkMlApPGg7M0t8TGswMDBlMU5KTFRxMDAwXlEwMDFIZzFeQHM2TDFXMWQwMDAwOWE3YkJtMDAw
WFUKejAwMFhVMFJXbnU3eXRrWU89Jnx6UCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1v
eSljVVk3NjdDenRpCnpXZS0rRCp6bUVKWT1IbkdCZGlGPjVMdSFTa15vX1o1RTRNZWdAXzdQNmNy
SmlOTDlwdyllMTxSaH5sNnF4TXg5JQp6aCsyelBUc1pDQCteNG1EZGhoTStgYDchdD1iWSNLJlV3
IWRmRHNaVms+O1htMDY5e0hKVVpBUGs1NVIlJC1SSUEKejYtZUwmQVEweHUhZTw0PTAwOGc8ZDNi
KHd1c3szKHVXdFlYMEMzZVZCb2ZFcnxBVj92Q1JZRjtrcFNRIzY2WHM2CnprV3Y4MUU+eUBBMExU
fnN1djQ+UzNJTFA8MEJtYERMTHZhRjRGSyUpTmo/UHQqcn03OzdYYTl6OUh8SFpqUjYzZQp6Q2BU
aiRLKVYyN1JlQDQwMD5IdW1wc1lZNUUoRX0/MGYxU3lHRGlZe3kjKVl2aiMhV25Ld3RvWG5MO2Vn
MDNiTDUKejA3RClWJT55N3oxRTRVe3p1Pjd+YUR9KT8wUlhfdW1DY3QrKGxacGVtQ3piQF42PW98
QT56VnB1fGk9TkRHKzd9Cno8UllBeG48RW9RPUwxYTYzOytOY2BPKDR0STZzaSo9SCVoI1g2SjEw
XnU/bjdZdyZMKEp8WGVuez1BRj0xT08wRAp6Jitwbl88Pmw0YGFLezAjYi0hej1UTDlXdDBCR08m
VHtHSldwanJ5aGRpamZhSVEmMiFvfXAwNEpSS1lnM2smVGYKelZ4aGUtPEJMQjNHdlJPR2krPVh9
S3B5X3ZkaGheb25uMFBZekB2bHhhYmEkRHUyUFFZJUxHQyhadWpSU3s+TyFYCnp7ZjtUbzt4d15i
RUVTNkpTYyRrJEIyQ0E2eGwpbHRBPDMyRTY2dD8zQGdKN2AzNnBtWDBJWV5qeilyUll3YWFZNAp6
ZShuSlJpdzs9UWJedChyXkRUQFQzeX1hMlhFWlctX1clSHN6eGpfcUQqKnRfbSEjdFcwS0RpSlQm
Uj42T3ZWVFIKejA3UmdIRHpISFo0OGF0dnp6Jj9qOWxYRjcwJH5QM0tueF9uSlA8KyM8YldJc3Al
fDd5OEMxWUoqYVdxKDB+KCthCnpuJkErJSE3KEB1PWltfXRmJE1NPTI0RVBUIVdnYFUyP1JtTjJv
cXI7SSoxV3NqQFRtMzJwNUAtMVJgTmJHP0lYJQp6QW5Bd3tRNmswMmEtOyZPTFRacytORih3c2F1
aGpAVHRORGUrc0dnP2l1e1ZhTT1fTHZ2UVkhbjAoQyZTczI+YE4KeiMtTVoyYlRraUxmUj5fYihI
Z1dLSiVGfk5yX29GM2Ijd3JJaWpIR3woSj5CWWpNLXNhakU2O0ZpQzd2WSN9O0dkCnpTVCRDVUhE
ZXVFSCtCXnB6QEIwNjJxWGZGZkRgTnBVVzU/Qlk9ViVHTV81YylMI1FSfUJlVzhfMnYtUyVnZllT
PQp6QjlvfDN2P1kySGBOVmkpSTxiJmdNeXd8OEFzISl+QzAte0U2SkxgXkJvNGB2PFczNDlDNkY+
bjNyVEI4K2VqXj4KelE9fnI5NU5WdURDaEwlRyQ9PjckdlZnMjBteXglUzUwRm9pYF5tJVB3LWg/
WGh+aThNcTlqdEpsb0NvY1drMk52CnpySnBpRm5WX21zJjhlUSQyJiN4V3BJUys2cG10QyVRLWBT
Jkc8QkxLJjZeZk8lY0whJSl6RiUwWEtEOW5GWD9vOwp6M0VoSnBNVkhXKihyZjRrPkY0USNebWh5
bWg3RShxTk1hfSVZWi1lUHJ4Pj54RlBUaUgxPUUrQSRXJD1iRzg+c14Kem09Qm41UmFoJGFEdHJ9
QCRgWH0ybH4kRjBtRktFZFJkWkU4KXBARTVSSTYxRnQ2by1wcmJibj5QfilpeSlFMkFOCnpzVTIw
anNXel84UWc+MzFQfHMwY3FyUEFMZzhFfCh2V0E2NXBvVTFKUkFhWnM4STIocCN4aUJgU1ZHb3ZS
cy11Uwp6WW5WLTlUZUE3PU9tK3FQOCtJPnlPakFSMXMlRVRhayFHRmRhbUBoXiM8QWU9SW9YXl8m
TFBlWCZVLUJiRWs3LT4KeilAclMwdCR3WEgrSXJmKStHNmM7P0gyOXArVjZGNm9qeyF8byVLM3hJ
YD8lNng7REJ8eGBuI2liPGdUUChfYHktCno9P1Y0OV4kekxYKE1SPWReclE2YD5oSVI/KEh9UTNH
emQxMzhFaTIpV0FNejdXOVZ5YFh9SG53Z3lFPFclVkBmaAp6I0F1X0BOdXd2WUNobXU0PDI4NX1L
NHo/TTlBZDBBLWV1ZnRKWWl5S0dUV3JZcXtaYUVEYjE4P25yNkR1dzl8Q1YKeiUqWlU8dGt8cns/
MmI5cm9OSno4elMrRm57RWRhQk1WIVMtaSNDaExtZkR0bCVMU0hBbWlNZmZSejZtRlJgcGliCnp0
Vnp+Zj5uIVZTKT5tdiQ4JntoUW4+dzR6d3kzUn10O0JZbFpRbTUpNnB0eT1EZkxycytBLXw+Pjxh
OWY+O347UQp6X0Y/dVZfSEZqaDluMmdPOW85UV5KQTg2PGI8QjJiYUo9aUo7V1dkayNIcXZTUzcj
ZSVwPnYoe0g1YUIha2pvTzYKemM5JDFaWktzTi1abDhMfm1Fe2BseTMpMU5eYG8xK283fUQwWlBl
WSZKO2k7aWAlTnlKOF84WTZKP315RUBiXzVhCnphbT9lTHI8PHEzXk57QitVVXB0dFVpLVpzUHFV
bVJwNEtwSiRsSnRRO0p3UnhVXitmTVclfHpQMTN0eiswLXQpSAp6aHJYdTFCSHVsfUJZeEk/blNL
WlNwOEdyYyVsKGh8enV8ZkU3ViVDNlU7KTdhPHBJNWM4aUJJfFlYY3R5bkZPVD0KekgzZnxZeTlP
QHxKezNYPzJAUDJ2YSs3YnM3eEVrVlY+OEBtRVNrfDMkX1NrbVN7d1E+JXFDMTgpKTlffCZqe1pU
CnplczhBdk96RihGMiNEWkVZPjJvWVgmSVJwYEYje0FEbCkxcj5RU14pYmE4YXxFWV9eI1NeSDxi
amA1R0ZqSlo0OAp6WVBORUFYUks7JFFmeT1GbzRBMHVzPD9yOGh4a1NEbWxBWG5Cbmo8XzxpeXkt
SiZFSVUwX1NYK0dvMGpfUkYtc08KenVJMWRLeGZrWj8mZFoqNkpYdGtha2JGM1dtPWMkPUtqbmlV
TFFwUmxQdnhnPk8mdF5SZ3F3dj1NWlRocXFFV0g4Cnp4Sm8+ZD1BQmxSX0JoPTtlTTk8YWhFR095
I3huXnxRWSgzcDhJcmpwXkcjTW4qNTBobyo+VHd8SWgzNH5vVEV8PQp6WF9tQXIqRCR2endAK3Ao
RTBZYzZkRkV9KDg8VTYxX3Y5bl9iTXhDM1k9dW5HcXFJYDRQITFNTUZRX1ljVE5xbi0KenhKYlE3
VEdUViZYOCE4PUJNWDhTZTclc2NQYEkkTyp0bUZFQCElckFNWXxSd2kmR2JPRS1fdEZ4QDM1MUBY
fiRECnpYdj95ZXtaUWdxUWRSUDVkRUR9alFpSVpecjkmJSVTMlVIV2wqITkodUpsXkRWLTtiUVdM
NThLbSheUVZlPH5OMQp6VSN4SmZzSUtfMU0hNHFVUzU5Qm1lRCEmNCtTPVlxeDYxQTdOYjk4UVpt
am9OenBxTllZQytZfGhWVHVvOH1XX2gKejgoKGNvLWdLZFFZVzBySXc5VSVSMTJ0aGE/T1YqWXRs
UlJUSGx5fT5vcXRgK1J7Z0UzeDR6algrU2IzX2NZRV49CnpnQj13Ky10VXlgeXRPTk1TOEtnUmVm
NGhBP3Q8TnE4ZSR1fHp2aDEzeEpQJFMjaCNDUXJGI2VWTWVwbHNiWj4wagp6dWZNO3QzMmptfmpV
R3JrYU9JblRaYHp5Zm5zPkV1U31HMzBMRktfRy09PShmPDUxfEsmY29jcCZFSmBTeEFoMz8Kek5P
PiNMST1eK1NFdShGcUopeW50PSF+UEM5Yk8kcnpQSkI9Pz1qPEpiO21XMlNEdjdxQ19WQXs8YnNw
cXIofnl8CnpvbFpZSilTMjlRX2V9aG1ZaDYpWXk9T3p1bzxBM0s/bzc4fF9zUjMjPVp7X1J5bTBn
KV9oUT42d0BhLSh1MDJQNwp6YVEpIyh1VWx7SFcldFlOUzNJdENeaUF0SyhlS2xMYGY5K3tiSnpJ
U0U/dThfejM7fkM4QEZ5SS01al9qeTdsO1cKel9VI3ZVM2hxcVlVMyFtcnVsJkIre3B0dCQ1OSl1
a3s7XzRpWlElR3x6K2xoQVNyNnxIMzVUQmtsPmdJKjtuR0xVCnpON1ctbkJhTSVwQTBIYkg4b2x5
bCZYZUoldlpvV3olNj9ZPWRGeWtsPWltTH1gJUJNUXtNaGdkYEhSb0x1NmUyUgp6YV9fNkR1UjZ5
ZyN+LX1UY3xHeF97SEBPMGVlYnlNeTVHbVdBREpscEs+a3FrKGZWVkByX2ZMTEtJZVM/ezRlKX0K
el5aTzt6cEVDZGUwM2MmWFFjVkI9ZEw7az1mUCgtNGBUcWFfZmF3NExidWEoYD5SPG8+SSt5P2U3
aktlWiNZTy1DCnowPD1qKUt+IzkhPzNQVlM4Jk1SN3BHaVdFUEJLTlNzUzdgOEJQQ0ckMHdjS2RD
aj95UiFpe1liczJqbiQzdn1uQQp6M3JWQzRvMl9XVHxLUTR7MyZWc15QQDEkIXopRCpvYWNELS0r
ZUlmT058TlR3dzJMME4lckpORWRGST9SPWUkPUUKekxlTDVgKElUX2xlSVFCRnBWbzk1KllpQDc8
I3h6WTxBLSR0UFVIUjxfK0VFSjczPmw0YllvK34zJFVgWEAqWCQ9Cnp6RSFuYTJ5dHRhdjJNVH0y
bjV6dVJUWmtMaWE7USs0IURpRXZpXlNpdHBkfnl4Y3o/cm55UllUJHopT19sUyFlZgp6PmIya1JV
byY3bWplO0QyK3ZEOzBWekptJjBhNiZUU25TSDxAJVJqd3FZX0JFPiU4YyVheyRBJHYkTX1PSCNm
SXoKekhkfFklYTVZV1NtelM0KWB9X01KZlBAZ0B0a2lxdUsjemdwblZGZDw7Y3olQyVXYHxBSlpx
WnYhfFYwRkk1O0A/CnpYdSFUeTFMXzVhQ01HNVp3enMjI3ZNZWpyezhYQnpXZnZEMFVtaE1GZWc9
fDRofGBpRj1+cFBken5JPX1TcFV3Pgp6Jlgmeik+I1V7N0Utbyg0N1p3KExNQEw1fjsxaDV2NDFn
cXJ4Q0kjPDlxcnJRLUY7YGIrYTJ8Xm5wYGUtSGF8Y0EKekRqSlFaaSghUmMqOSMxZWtCfDM5QjlV
T2Q1Q0ZUfj91Yk1wcH49YX4wYnRQWmpSZT5NbSZAaHErdVBmRnQwPkJGCnpHbiF+Tm5AIUJrJkFw
RHQ8N3BzbkdLeChPMjdebkFxNnted1RQdW4oNmJnbHcwMiUxOTBQVFF6V01wSm9zLWt0Kgp6VjNP
MTZvQ2VINXlVRVpiJCFzPjtueW8+R1BZRSFZOGp5XmQpV0szenNNMC12cT9TdjA+KDMxTHZ2WXFU
cUx5eCoKejQmM092dTNOM3Z3cWBvZD1rcSNuMUwhNm8yVjc8e25NNjRtdTZKWkluRk1lTjxqakJv
eTVqTThiWlRucWN9R1hiCnpMeU5eP1pYXjwyKlJOOGspWEQxVj5ZSD5ye1NgPFRecitKfjcrUWVg
T35+RGk1bEozNjdEQWpDRTM2RENoSE55TgpwRThSIypSdFRZJEpUdl5TcWtqKGNhe3p2dW8qN3Jv
bVVqUkUwMDJvdlBESExrVjFpaXZvS3llKwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDg2NmZhZDY0
ODdmMjM3MzI2MjU5ZWIyNzExZjA4Y2Y4OTFkMjJmMTEuLjM1NmU4ZjVlM2QxNzg2OTU0MGIyNmM3
ZGM5ZDczM2M5ZDgyOTY2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwKQEAgLTExOCw3ICsxMTgsOSBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iQ29tcGxldGlvblN1Z2dlc3Rpb25zVmlldy5jc3MiPgogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iQ29kZU1pcnJvck92ZXJyaWRlcy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iQ29uc29sZVByb21wdC5jc3MiPgotICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iQ1NTQ29sb3JQaWNrZXIuY3NzIj4KKyAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IlNsaWRlci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iQ29sb3JXaGVlbC5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iQ29sb3JQaWNrZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkNv
ZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuY3NzIj4KICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9IkdvVG9MaW5lRGlhbG9nLmNzcyI+CiAKQEAgLTMyMCw3ICszMjIs
OSBAQAogICAgIDxzY3JpcHQgc3JjPSJDb21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1ldHJpY3NTdHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNTU0NvbG9yUGlja2VyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iU2xpZGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQ29sb3JX
aGVlbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNvbG9yUGlja2VyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkluZGV0ZXJtaW5hdGVQcm9ncmVzc1NwaW5u
ZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvU2xpZGVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1NsaWRlci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg0MDczNDVkNDZmMmVjMmUyNDA5N2NkMjRiYWFlYjdi
ZDA2ZmZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1NsaWRlci5jc3MKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zbGlkZXIg
eworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBoZWlnaHQ6IDExcHg7CisgICAgb3V0bGlu
ZTogMXB4IHNvbGlkIHJnYigxNDgsIDE0OCwgMTQ4KTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB3
aGl0ZTsKK30KKworLnNsaWRlciA+IGltZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
IGxlZnQ6IC01cHg7CisgICAgdG9wOiAtNXB4OworICAgIHdpZHRoOiAxNHB4OworICAgIGhlaWdo
dDogMTdweDsKKyAgICBjb250ZW50OiAtd2Via2l0LWltYWdlLXNldCh1cmwoSW1hZ2VzL1NsaWRl
clRodW1iLnBuZykgMXgsIHVybChJbWFnZXMvU2xpZGVyVGh1bWJAMngucG5nKSAyeCk7Cit9CisK
Ky5zbGlkZXIgPiBpbWcuZHJhZ2dpbmcgeworICAgIGNvbnRlbnQ6IC13ZWJraXQtaW1hZ2Utc2V0
KHVybChJbWFnZXMvU2xpZGVyVGh1bWJQcmVzc2VkLnBuZykgMXgsIHVybChJbWFnZXMvU2xpZGVy
VGh1bWJQcmVzc2VkQDJ4LnBuZykgMngpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvU2xpZGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvU2xpZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0YTIwNmUwYmRjMDZiMzgxOTRhMGZk
NTFmODUwMGFhZDkwN2M1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9TbGlkZXIuanMKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitXZWJJbnNwZWN0b3IuU2xpZGVyID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMuX2VsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9lbGVtZW50LmNsYXNz
TmFtZSA9ICJzbGlkZXIiOworCisgICAgdGhpcy5fa25vYiA9IHRoaXMuX2VsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikpOworCisgICAgdGhpcy5fdmFsdWUg
PSAwOworICAgIHRoaXMuX2tub2JYID0gMDsKKyAgICB0aGlzLl9fbWF4WCA9IDA7CisKKyAgICB0
aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMpOworfTsKKwor
V2ViSW5zcGVjdG9yLlNsaWRlci5Lbm9iV2lkdGggPSAxMzsKKworV2ViSW5zcGVjdG9yLlNsaWRl
ci5wcm90b3R5cGUgPSB7CisgICAgY29udHJ1Y3RvcjogV2ViSW5zcGVjdG9yLlNsaWRlciwKKyAg
ICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlLAorICAgIAorICAgIC8v
IFB1YmxpYworCisgICAgZ2V0IGVsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2VsZW1lbnQ7CisgICAgfSwKKyAgICAKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3ZhbHVlOworICAgIH0sCisgICAgCisgICAgc2V0IHZhbHVlKHZhbHVlKQor
ICAgIHsKKyAgICAgICAgdmFsdWUgPSBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgMSksIDApOwor
CisgICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKKworICAgICAgICB0aGlzLl9rbm9iWCA9
IE1hdGgucm91bmQodmFsdWUgKiB0aGlzLl9tYXhYKTsKKyAgICAgICAgdGhpcy5fa25vYi5zdHls
ZS53ZWJraXRUcmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoIiArIHRoaXMuX2tub2JYICsgInB4LCAw
LCAwKSI7CisKKyAgICAgICAgaWYgKHRoaXMuZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuZGVsZWdh
dGUuc2xpZGVyVmFsdWVEaWRDaGFuZ2UgPT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICB0aGlz
LmRlbGVnYXRlLnNsaWRlclZhbHVlRGlkQ2hhbmdlKHRoaXMsIHZhbHVlKTsKKyAgICB9LAorICAg
IAorICAgIC8vIFByb3RlY3RlZAorCisgICAgaGFuZGxlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7CisgICAgICAgIGNhc2UgIm1vdXNl
ZG93biI6CisgICAgICAgICAgICB0aGlzLl9oYW5kbGVNb3VzZWRvd24oZXZlbnQpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6CisgICAgICAgICAgICB0aGlz
Ll9oYW5kbGVNb3VzZW1vdmUoZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgIm1vdXNldXAiOgorICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2V1cChldmVudCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfaGFuZGxlTW91c2Vkb3duOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlm
IChldmVudC50YXJnZXQgIT09IHRoaXMuX2tub2IpCisgICAgICAgICAgICB0aGlzLnZhbHVlID0g
KHRoaXMuX2xvY2FsUG9pbnRGb3JFdmVudChldmVudCkueCAtIDMpIC8gdGhpcy5fbWF4WDsKKwor
ICAgICAgICB0aGlzLl9zdGFydEtub2JYID0gdGhpcy5fa25vYlg7CisgICAgICAgIHRoaXMuX3N0
YXJ0TW91c2VYID0gdGhpcy5fbG9jYWxQb2ludEZvckV2ZW50KGV2ZW50KS54OworCisgICAgICAg
IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKTsKKworICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcywgdHJ1ZSk7CisgICAgfSwKKwor
ICAgIF9oYW5kbGVNb3VzZW1vdmU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFy
IGR4ID0gdGhpcy5fbG9jYWxQb2ludEZvckV2ZW50KGV2ZW50KS54IC0gdGhpcy5fc3RhcnRNb3Vz
ZVg7CisgICAgICAgIHZhciB4ID0gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5fc3RhcnRLbm9iWCAr
IGR4LCB0aGlzLl9tYXhYKSwgMCk7CisKKyAgICAgICAgdGhpcy52YWx1ZSA9IHggLyB0aGlzLl9t
YXhYOworICAgIH0sCisKKyAgICBfaGFuZGxlTW91c2V1cDogZnVuY3Rpb24oZXZlbnQpCisgICAg
eworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7CisK
KyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMsIHRy
dWUpOworICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMs
IHRydWUpOworICAgIH0sCisKKyAgICBfbG9jYWxQb2ludEZvckV2ZW50OiBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIC8vIFdlIGNvbnZlcnQgYWxsIGV2ZW50IGNvb3JkaW5hdGVzIGZy
b20gcGFnZSBjb29yZGluYXRlcyB0byBsb2NhbCBjb29yZGluYXRlcyBzdWNoIHRoYXQgdGhlIHNs
aWRlcgorICAgICAgICAvLyBtYXkgYmUgdHJhbnNmb3JtZWQgdXNpbmcgQ1NTIFRyYW5zZm9ybXMg
YW5kIGludGVyYWN0aW9uIHdvcmtzIGFzIGV4cGVjdGVkLgorICAgICAgICByZXR1cm4gd2luZG93
LndlYmtpdENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKHRoaXMuX2VsZW1lbnQsIG5ldyBXZWJL
aXRQb2ludChldmVudC5wYWdlWCwgZXZlbnQucGFnZVkpKTsKKyAgICB9LAorCisgICAgZ2V0IF9t
YXhYKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9fbWF4WCA9PSAwICYmIGRvY3VtZW50LmJv
ZHkuY29udGFpbnModGhpcy5fZWxlbWVudCkpCisgICAgICAgICAgICB0aGlzLl9fbWF4WCA9IHRo
aXMuX2VsZW1lbnQub2Zmc2V0V2lkdGggLSBNYXRoLmNlaWwoV2ViSW5zcGVjdG9yLlNsaWRlci5L
bm9iV2lkdGggLyAyKTsKKworICAgICAgICByZXR1cm4gdGhpcy5fX21heFg7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9q
L1dlYkluc3BlY3RvclVJLnZjeHByb2ogYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVj
dG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qCmluZGV4IDhkYTUzMGYzNzI4OTNj
Y2YzMDdiNzhjNTNiOTFiNjRiZjc5YzM2MzUuLjhiNTRiMWQ4ZmY1N2M0ZTc5MTkxMzhkZjNhNGM2
NGRmYzBlYzViNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0
b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagpAQCAt
MSw0ICsxLDQgQEAKLe+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCiA8UHJvamVjdCBEZWZhdWx0
VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4NCiAgIDxJdGVtR3JvdXAgTGFi
ZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+DQogICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJ
bmNsdWRlPSJEZWJ1Z19XaW5DYWlyb3xXaW4zMiI+DQpAQCAtMjE0LDggKzIxNCw4IEBACiAgICAg
PE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb29raWVTdG9yYWdlQ29udGVudFZpZXcu
anMiIC8+DQogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ29va2llU3RvcmFn
ZU9iamVjdC5qcyIgLz4NCiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb29r
aWVTdG9yYWdlVHJlZUVsZW1lbnQuanMiIC8+DQotICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJ
bnRlcmZhY2VcQ1NTQ29sb3JQaWNrZXIuY3NzIiAvPg0KLSAgICA8Tm9uZSBJbmNsdWRlPSIuLlxV
c2VySW50ZXJmYWNlXENTU0NvbG9yUGlja2VyLmpzIiAvPg0KKyAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxVc2VySW50ZXJmYWNlXENvbG9yUGlja2VyLmNzcyIgLz4NCisgICAgPE5vbmUgSW5jbHVkZT0i
Li5cVXNlckludGVyZmFjZVxDb2xvclBpY2tlci5qcyIgLz4NCiAgICAgPE5vbmUgSW5jbHVkZT0i
Li5cVXNlckludGVyZmFjZVxDU1NDb21wbGV0aW9ucy5qcyIgLz4NCiAgICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxDU1NLZXl3b3JkQ29tcGxldGlvbnMuanMiIC8+DQogICAgIDxO
b25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ1NTTWVkaWEuanMiIC8+DQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVj
dG9yVUkudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3Rv
clVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzCmluZGV4IGEwYWViOGMy
YmYyNzU2MDhiOGNjM2ZlODEwNWQyNjcwOGUyMTA1ODIuLjUxN2UxZGJkM2FiNTRhYWM5M2QwMTUx
Mjc4MmI4OWFlMTljYTAxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJ
bnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JV
SS52Y3hwcm9qLmZpbHRlcnMKQEAgLTI0OSwxMCArMjQ5LDEwIEBACiAgICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxDb29raWVTdG9yYWdlVHJlZUVsZW1lbnQuanMiPg0KICAgICAg
IDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPg0KICAgICA8L05vbmU+DQotICAgIDxOb25l
IEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ1NTQ29sb3JQaWNrZXIuY3NzIj4NCisgICAgPE5v
bmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxDb2xvclBpY2tlci5jc3MiPg0KICAgICAgIDxG
aWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPg0KICAgICA8L05vbmU+DQotICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcQ1NTQ29sb3JQaWNrZXIuanMiPg0KKyAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXENvbG9yUGlja2VyLmpzIj4NCiAgICAgICA8RmlsdGVy
PlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4NCiAgICAgPC9Ob25lPg0KICAgICA8Tm9uZSBJbmNsdWRl
PSIuLlxVc2VySW50ZXJmYWNlXENTU0NvbXBsZXRpb25zLmpzIj4NCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>