<?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>54800</bug_id>
          
          <creation_ts>2011-02-19 02:05:07 -0800</creation_ts>
          <short_desc>SVG 1.1 2nd Edition color-prop-05-t.svg exposes bug in &apos;currentColor&apos; handling</short_desc>
          <delta_ts>2011-05-04 13:55:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55119</dependson>
          <blocked>59941</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>thakis</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354114</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-19 02:05:07 -0800</bug_when>
    <thetext>SVG 1.1 2nd Edition color-prop-05-t.svg exposes bug in &apos;currentColor&apos; handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354116</commentid>
    <comment_count>1</comment_count>
      <attachid>83067</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-19 02:19:48 -0800</bug_when>
    <thetext>Created attachment 83067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354117</commentid>
    <comment_count>2</comment_count>
      <attachid>83067</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-19 02:21:26 -0800</bug_when>
    <thetext>Comment on attachment 83067
Patch

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

&gt; LayoutTests/ChangeLog:7
&gt; +

Oops, I was too fast when using webkit-patch. Here&apos;s one line missing:
        Add new test from SVG 1.1 2nd Edition covering currentColor support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354118</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-19 02:22:39 -0800</bug_when>
    <thetext>Hm Platform detection doesn&apos;t seem to work too well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354119</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-19 02:33:29 -0800</bug_when>
    <thetext>Attachment 83067 did not build on qt:
Build output: http://queues.webkit.org/results/7938277</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354120</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-19 02:35:51 -0800</bug_when>
    <thetext>Attachment 83067 did not build on chromium:
Build output: http://queues.webkit.org/results/7934476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354121</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-19 03:01:09 -0800</bug_when>
    <thetext>Attachment 83067 did not build on win:
Build output: http://queues.webkit.org/results/7939297</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354122</commentid>
    <comment_count>7</comment_count>
      <attachid>83068</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-19 03:24:41 -0800</bug_when>
    <thetext>Created attachment 83068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354123</commentid>
    <comment_count>8</comment_count>
      <attachid>83068</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-19 03:43:28 -0800</bug_when>
    <thetext>Comment on attachment 83068
Patch

Before I start reviewing the patch. Could you please add a test, where we animate &apos;color&apos; and use fill=&quot;currentColor&quot; on the same object? I checked and it seems we do not have such a test:

&lt;rect color=&quot;red&quot; fill=&quot;currentColor&quot; width=&quot;100&quot; height=&quot;100&quot;&gt;
&lt;animate attributeName=&quot;color&quot; from=&quot;red&quot; to=&quot;green&quot; dur=&quot;3s&quot;/&gt;
&lt;/rect&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354124</commentid>
    <comment_count>9</comment_count>
      <attachid>83068</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-19 03:51:24 -0800</bug_when>
    <thetext>Comment on attachment 83068
Patch

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

&gt; Source/WebCore/rendering/style/SVGRenderStyle.h:73
&gt;      static float initialFillOpacity() { return 1.0f; }

Should this be changed to return 1; in this patch?

&gt; Source/WebCore/rendering/style/SVGRenderStyle.h:77
&gt;      static float initialStrokeOpacity() { return 1.0f; }

Ditto.

&gt; Source/WebCore/rendering/style/SVGRenderStyle.h:83
&gt;      static float initialStrokeMiterLimit() { return 4.0f; }
&gt;      static float initialStopOpacity() { return 1.0f; }

Ditto. I think when you are already changing something here, you could change following lines to match the style rule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354125</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-19 03:57:14 -0800</bug_when>
    <thetext>Attachment 83067 did not build on chromium:
Build output: http://queues.webkit.org/results/7932555</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354126</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-19 04:02:29 -0800</bug_when>
    <thetext>Attachment 83067 did not build on mac:
Build output: http://queues.webkit.org/results/7939309</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355127</commentid>
    <comment_count>12</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-22 01:39:21 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 83068 [details])
&gt; Before I start reviewing the patch. Could you please add a test, where we animate &apos;color&apos; and use fill=&quot;currentColor&quot; on the same object? I checked and it seems we do not have such a test:
&gt; 
&gt; &lt;rect color=&quot;red&quot; fill=&quot;currentColor&quot; width=&quot;100&quot; height=&quot;100&quot;&gt;
&gt; &lt;animate attributeName=&quot;color&quot; from=&quot;red&quot; to=&quot;green&quot; dur=&quot;3s&quot;/&gt;
&gt; &lt;/rect&gt;

LayoutTests/svg/animations/animate-color-* cover this?

var rect = createSVGElement(&quot;rect&quot;);
rect.setAttribute(&quot;id&quot;, &quot;rect&quot;);
rect.setAttribute(&quot;width&quot;, &quot;100&quot;);
rect.setAttribute(&quot;height&quot;, &quot;100&quot;);
rect.setAttribute(&quot;color&quot;, &quot;rgb(0,255,255)&quot;);
rect.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;);
rect.setAttribute(&quot;onclick&quot;, &quot;executeTest()&quot;);

var animate = createSVGElement(&quot;animate&quot;);
animate.setAttribute(&quot;id&quot;, &quot;animation&quot;);
animate.setAttribute(&quot;attributeName&quot;, &quot;color&quot;);
animate.setAttribute(&quot;from&quot;, &quot;rgb(255,0,0)&quot;);
animate.setAttribute(&quot;to&quot;, &quot;rgb(0,255,255)&quot;);
animate.setAttribute(&quot;begin&quot;, &quot;click&quot;);
animate.setAttribute(&quot;dur&quot;, &quot;4s&quot;);
animate.setAttribute(&quot;calcMode&quot;, &quot;discrete&quot;);

I&apos;ll add another test though, which doesn&apos;t use calcMode discrete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356303</commentid>
    <comment_count>13</comment_count>
      <attachid>83522</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-23 12:25:44 -0800</bug_when>
    <thetext>Created attachment 83522
Patch v2

Upon writing new testcases, I ran into problems as the SVGColor/SVGPaint API was not implemented correctly at all.
Took a while, but it&apos;s now fixed (except some issues, that can not be fixed atm because of our CSS OM Design, please read the ChangeLog carefully)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356367</commentid>
    <comment_count>14</comment_count>
      <attachid>83522</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-02-23 13:32:07 -0800</bug_when>
    <thetext>Comment on attachment 83522
Patch v2

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

See comments below. Anyway r=me. Great fix!

&gt; Source/WebCore/ChangeLog:27
&gt; +        It turns out the SVGPaint/SVGColor API is not implemented at all, fix that. Though the API doesn&apos;t work as expected (yet?) as
&gt; +        we don&apos;t support mutable CSSValue derived objects for various reasons (our CSSValues are shared, we&apos;d need copy-on-write support
&gt; +        to make that work, and handle style invalidation, currently a CSSValue is not tied to a RenderStyle in any way, making dynamic updates impossible).
&gt; +        So you can basically grab a SVGPaint/SVGColor object through getPropertyCSSValue(..), mutate it, that will all work as expected
&gt; +        but the change won&apos;t take effect (see CSSPrimitiveValue::setCssText, for more reasons why this API is not implemented in WebKit).

The first sentence sounds like a demand, rephrase it please.

It seems to me that you&apos;re trying to fix two problems with one patch. Please avoid this. The API is not part of the bug description. And together with the color serialization fix you&apos;re fixing three bugs. Would make it much easier to review if you split the patches. Also from a logical point of view. The size of the patch grows from 58k to 136k.

&gt; Source/WebCore/svg/SVGPaint.cpp:51
&gt; +        break;
&gt; +    case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR:
&gt; +    case SVGPaint::SVG_PAINTTYPE_RGBCOLOR:
&gt; +        return SVGColor::SVG_COLORTYPE_RGBCOLOR;
&gt; +    case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR:
&gt; +    case SVGPaint::SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR:
&gt; +        return SVGColor::SVG_COLORTYPE_RGBCOLOR_ICCCOLOR;
&gt; +    case SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR:
&gt; +    case SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR:
&gt; +        return SVGColor::SVG_COLORTYPE_CURRENTCOLOR;
&gt; +    }
&gt;  

I&apos;d replace the break with return SVGColor::SVG_COLORTYPE_UNKNOWN; and add a ASSERT_NOT_REACHED after the switch.

&gt; Source/WebCore/svg/SVGPaint.cpp:143
&gt; +    case SVG_PAINTTYPE_CURRENTCOLOR:
&gt; +        break;
&gt; +    case SVG_PAINTTYPE_NONE:
&gt;          return &quot;none&quot;;
&gt; -    if (m_paintType == SVG_PAINTTYPE_CURRENTCOLOR)
&gt; -        return &quot;currentColor&quot;;
&gt; -    if (m_paintType == SVG_PAINTTYPE_URI)
&gt; +    case SVG_PAINTTYPE_URI_NONE:
&gt; +        return makeString(&quot;url(&quot; + m_uri + &quot;) none&quot;);
&gt; +    case SVG_PAINTTYPE_URI_CURRENTCOLOR:
&gt; +    case SVG_PAINTTYPE_URI_RGBCOLOR:
&gt; +    case SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR:
&gt; +        return makeString(&quot;url(&quot; + m_uri + &quot;) &quot;, SVGColor::cssText());
&gt; +    case SVG_PAINTTYPE_URI:
&gt;          return &quot;url(&quot; + m_uri + &quot;)&quot;;
&gt; +    };
&gt;  
&gt;      return SVGColor::cssText();

Ditto.

&gt; Source/WebCore/svg/SVGPaint.cpp:163
&gt; +        break;
&gt; +    case SVG_PAINTTYPE_URI_NONE:
&gt; +    case SVG_PAINTTYPE_URI_CURRENTCOLOR:
&gt; +    case SVG_PAINTTYPE_URI_RGBCOLOR:
&gt; +    case SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR:
&gt; +    case SVG_PAINTTYPE_URI:
&gt; +        return referenceId == SVGURIReference::getTarget(m_uri);
&gt; +    }
&gt;  
&gt; -    return referenceId == SVGURIReference::getTarget(m_uri);
&gt; +    return false;

Ditto.

&gt; LayoutTests/svg/animations/script-tests/animate-color-fill-currentColor.js:36
&gt; +        // Opera doesn&apos;t support getPropertyCSSValue - no way to compare to their SVGPaint/SVGColor objects :(

This test doesn&apos;t work on opera anyway, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356726</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-02-24 00:30:09 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 83522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83522&amp;action=review
&gt; 
&gt; See comments below. Anyway r=me. Great fix!
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:27
&gt; &gt; +        It turns out the SVGPaint/SVGColor API is not implemented at all, fix that. Though the API doesn&apos;t work as expected (yet?) as
&gt; &gt; +        we don&apos;t support mutable CSSValue derived objects for various reasons (our CSSValues are shared, we&apos;d need copy-on-write support
&gt; &gt; +        to make that work, and handle style invalidation, currently a CSSValue is not tied to a RenderStyle in any way, making dynamic updates impossible).
&gt; &gt; +        So you can basically grab a SVGPaint/SVGColor object through getPropertyCSSValue(..), mutate it, that will all work as expected
&gt; &gt; +        but the change won&apos;t take effect (see CSSPrimitiveValue::setCssText, for more reasons why this API is not implemented in WebKit).
&gt; 
&gt; The first sentence sounds like a demand, rephrase it please.
Fixed.

&gt; 
&gt; It seems to me that you&apos;re trying to fix two problems with one patch. Please avoid this. The API is not part of the bug description. And together with the color serialization fix you&apos;re fixing three bugs. Would make it much easier to review if you split the patches. Also from a logical point of view. The size of the patch grows from 58k to 136k.
You&apos;re absolutely right, I&apos;m going to split up this beast.

&gt; &gt; Source/WebCore/svg/SVGPaint.cpp:51
&gt; &gt; +        break;
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR:
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_RGBCOLOR:
&gt; &gt; +        return SVGColor::SVG_COLORTYPE_RGBCOLOR;
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR:
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR:
&gt; &gt; +        return SVGColor::SVG_COLORTYPE_RGBCOLOR_ICCCOLOR;
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR:
&gt; &gt; +    case SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR:
&gt; &gt; +        return SVGColor::SVG_COLORTYPE_CURRENTCOLOR;
&gt; &gt; +    }
&gt; &gt;  
&gt; 
&gt; I&apos;d replace the break with return SVGColor::SVG_COLORTYPE_UNKNOWN; and add a ASSERT_NOT_REACHED after the switch.
Oh I had that before, but changed to this style, in order to avoid the ASSERT_NOT_REACHED. Hm, I think it&apos;s just a matter of preference, if you like, I&apos;ll change it.

&gt; &gt; LayoutTests/svg/animations/script-tests/animate-color-fill-currentColor.js:36
&gt; &gt; +        // Opera doesn&apos;t support getPropertyCSSValue - no way to compare to their SVGPaint/SVGColor objects :(
&gt; 
&gt; This test doesn&apos;t work on opera anyway, right?
Right :( No way to access SVGPaint/SVGColor objects at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357795</commentid>
    <comment_count>16</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-02-25 02:43:41 -0800</bug_when>
    <thetext>Hi Niko,

I don&apos;t have much time until maybe sunday evening, so just a short reaction. I think the change is fine and having that shared CSSValue was always risky.

&gt; In order to fix to bug we have to resolve all currentColor values for SVGPaint objects, in SVGCSSStyleSelector,

Spot the typo :)

Also is bug 38102 fixed with this?
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357872</commentid>
    <comment_count>17</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-02-25 06:13:08 -0800</bug_when>
    <thetext>Hi Niko,

Oh, and did you mean

&lt;g color=&quot;green&quot;&gt;&lt;rect fill=&quot;currentColor&quot;&gt; already worked fine in trunk

instead of

&lt;g color=&quot;red&quot;&gt;&lt;rect fill=&quot;currentColor&quot;/&gt; already worked fine in trunk

?
Just checking since we want to end up with green :)
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359712</commentid>
    <comment_count>18</comment_count>
      <attachid>84199</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-03-01 00:33:13 -0800</bug_when>
    <thetext>Created attachment 84199
Patch v3

New patch, after SVGColor/SVGPaint API has been implemented and landed.
This fixes the currentColor bug, and makes SVGPaint/SVGColor changes take immediate affect, as demanded by the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359714</commentid>
    <comment_count>19</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-03-01 00:34:19 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Hi Niko,
&gt; 
&gt; Oh, and did you mean
&gt; 
&gt; &lt;g color=&quot;green&quot;&gt;&lt;rect fill=&quot;currentColor&quot;&gt; already worked fine in trunk
&gt; 
&gt; instead of
&gt; 
&gt; &lt;g color=&quot;red&quot;&gt;&lt;rect fill=&quot;currentColor&quot;/&gt; already worked fine in trunk
&gt; 
&gt; ?
&gt; Just checking since we want to end up with green :)

Well it&apos;s just an example. I only meant to say, that picking up the parents style color worked fine, but not the other way round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359716</commentid>
    <comment_count>20</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-03-01 00:35:21 -0800</bug_when>
    <thetext>*** Bug 38102 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359746</commentid>
    <comment_count>21</comment_count>
      <attachid>84199</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-03-01 01:27:05 -0800</bug_when>
    <thetext>Comment on attachment 84199
Patch v3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359773</commentid>
    <comment_count>22</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-03-01 02:53:55 -0800</bug_when>
    <thetext>Committed r79985: &lt;http://trac.webkit.org/changeset/79985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396424</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-02 09:53:45 -0700</bug_when>
    <thetext>This is believed to have caused http://code.google.com/p/chromium/issues/detail?id=80880.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396429</commentid>
    <comment_count>24</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-05-02 10:03:53 -0700</bug_when>
    <thetext>I filed https://bugs.webkit.org/show_bug.cgi?id=59941 for the regression that this caused.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83067</attachid>
            <date>2011-02-19 02:19:48 -0800</date>
            <delta_ts>2011-02-19 03:24:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54800-20110219111945.patch</filename>
            <type>text/plain</type>
            <size>59815</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTE3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODggQEAKKzIwMTEtMDItMTkgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIDEuMSAybmQgRWRpdGlvbiBjb2xvci1wcm9w
LTA1LXQuc3ZnIGV4cG9zZXMgYnVnIGluICdjdXJyZW50Q29sb3InIGhhbmRsaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDgwMAorCisgICAgICAg
IFN0b3Agc3RvcmluZyBSZWZQdHI8U1ZHUGFpbnQ+IG9iamVjdHMgaW4gdGhlIFNWR1JlbmRlclN0
eWxlIGZvciBmaWxsL3N0cm9rZS4gVGhlc2UgYXJlIHRoZQorICAgICAgICBsYXN0IHR3byBvYmpl
Y3RzIHRoYXQgaGVsZCByZWZlcmVuY2VzIHRvIENTU1ZhbHVlcywgdGhleSdyZSBhbGwgZ29uZSBu
b3csIGFsaWduaW5nIGJldHRlciB3aXRoIFJlbmRlclN0eWxlLgorICAgICAgICBJdCdzIGFsc28g
ZGFuZ2Vyb3VzLCBhcyBhIFNWR1BhaW50IG9iamVjdCBjYW4gYmUgc2hhcmVkIGJ5IG11bHRpcGxl
IFNWR1JlbmRlclN0eWxlcyAoTWFwcGVkQXR0cmlidXRlLCB3aWxsCisgICAgICAgIG9uY2UgY3Jl
YXRlIGEgQ1NTU3R5bGVEZWNsYXJhdGlvbiBmb3IgZmlsbD0icmVkIiBhbmQgcmV1c2UgaXQgd2hl
cmUgcG9zc2libGUpLCBhbmQgaXQgd2FzIGVhc3kgdG8gbXV0YXRlIHRoZW0uCisgICAgICAgIElu
c3RlYWQgc3RvcmUgYSBDb2xvciwgYW4gVVJJIGFuZCBhIHBhaW50IHR5cGUgaW4gU1ZHUmVuZGVy
U3R5bGUsIGVub3VnaCB0byBjcmVhdGUgYSBTVkdQYWludCBvYmplY3QsIGlmIG5lZWRlZCAoZWcg
Zm9yIGNvbXB1dGVkIHN0eWxlcykuCisKKyAgICAgICAgPGcgY29sb3I9InJlZCI+PHJlY3QgZmls
bD0iY3VycmVudENvbG9yIi8+IGFscmVhZHkgd29ya2VkIGZpbmUgaW4gdHJ1bmssIGJ1dAorICAg
ICAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGNvbG9yPSJncmVlbiI+PHJlY3QgY29sb3I9InJl
ZCIvPiBwcm9jdWRlZCBhIHJlZCByZWN0YW5nbGUuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4
IHRvIGJ1ZyB3ZSBoYXZlIHRvIHJlc29sdmUgYWxsIGN1cnJlbnRDb2xvciB2YWx1ZXMgZm9yIFNW
R1BhaW50IG9iamVjdHMsIGluIFNWR0NTU1N0eWxlU2VsZWN0b3IsCisgICAgICAgIGFzIGl0J3Mg
YWxyZWFkeSBkb25lIGZvciBTVkdDb2xvciBvYmplY3RzIChzdG9wLWNvbG9yLCBmbG9vZC1jb2xv
ciwgZXRjLikgaW5zdGVhZCBvZiBpbiBSZW5kZXJTVkdSZXNvdXJjZTo6ZmlsbC9zdHJva2VQYWlu
dGluZ1Jlc291cmNlLAorICAgICAgICB3aGVuIHRyeWluZyB0byB1c2UgdGhlIHBhaW50IHNlcnZl
ci4gVGhlIGNvcnJlY3QgImNvbG9yIiB2YWx1ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZyb20gdGhl
IFJlbmRlclN0eWxlLCBpcyBkaXJlY3RseQorICAgICAgICBhdmFpbGFibGUgaW4gQ1NTU3R5bGVT
ZWxlY3RvcjogaW4gYXBwbHlQcm9wZXJ0eSBtX3N0eWxlLT5jb2xvcigpIGdpdmVzIHRoZSBkZXNp
cmVkIHZhbHVlLiBJbiBDU1NTdHlsZVNlbGVjdG9yIGl0J3MgaGFuZGxlZAorICAgICAgICBleGFj
dGx5IHRoaXMgd2F5IGZvciBub24tU1ZHIGN1cnJlbnRDb2xvciBwcm9wZXJ0aWVzLgorCisgICAg
ICAgIFdoaWxlIEkgd2FzIGF0IGl0IGNsZWFudXAgU1ZHUGFpbnQgJiBTVkdDb2xvciwgd2hpY2gg
Ym90aCB3ZXJlIGEgYml0IGNvbnZvbHV0ZWQuCisgICAgICAgIEZpeGVzIG9uZSBtb3JlIHRlc3Qg
b2YgdGhlIFNWRyAxLjEgMm5kIEVkaXRpb24gdGVzdHN1aXRlLgorCisgICAgICAgIFRlc3Q6IHN2
Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQuc3ZnCisKKyAgICAgICAgKiBjc3MvU1ZH
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZSk6IENyZWF0ZSBu
ZXcgU1ZHUGFpbnQgb2JqZWN0cywganVzdCBsaWtlIGl0J3MgZG9uZSBmb3IgYWxsIG90aGVyIHBy
b3BlcnRpZXMuCisgICAgICAgICogY3NzL1NWR0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOiBVc2UgbmV3IFNWR1BhaW50IGNyZWF0ZSgp
IGZ1bmN0aW9ucywgbm90IHJlbHlpbmcgYW55bW9yZSBvbiBzaXggZGlmZmVyZW50IGNyZWF0ZSgp
IG92ZXJsb2Fkcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdQYWludCk6
IERpdHRvLgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOiBSZXNvbHZlIFNW
R1BhaW50IGN1cnJlbnRDb2xvcnMsIGp1c3QgbGlrZSBpdCdzIGRvbmUgZm9yIFNWR0NvbG9yLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZGlmZik6IFN0eWxlRmlsbERhdGEncyBSZWZQdHI8U1ZH
UGFpbnQ+IGlzIGdvbmUsIHJlcGxhY2VkIGJ5IHBhaW50VHlwZS9wYWludFVyaS9wYWludENvbG9y
LCBhZGFwdCB0aGUgY29kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGUuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZp
bGxQYWludFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxG
aWxsUGFpbnRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bEZpbGxQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bFN0cm9rZVBhaW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5p
dGlhbFN0cm9rZVBhaW50Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6
OmluaXRpYWxTdHJva2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHls
ZTo6c2V0RmlsbFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzZXRT
dHJva2VQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50Q29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmZpbGxQYWludFVyaSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c3Ryb2tlUGFpbnRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZW5kZXJTdHlsZTo6aGFzU3Ryb2tlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRl
clN0eWxlOjpoYXNGaWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGVEZWZzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbGxEYXRhOjpTdHls
ZUZpbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRmlsbERhdGE6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9rZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmg6IERpdHRvLgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwOiBEaXR0by4gKCsgUmVtb3ZlIGN1
cnJlbnRDb2xvciBzdXBwb3J0LCBhbGwgaGFuZGxlZCBpbiB0aGUgQ1NTIGxldmVsIG5vdykuCisg
ICAgICAgIChXZWJDb3JlOjpyZXF1ZXN0UGFpbnRpbmdSZXNvdXJjZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0lt
YWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHA6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZXNvdXJjZXM6OmJ1aWxkQ2FjaGVkUmVzb3VyY2VzKToKKyAgICAgICAg
KiBzdmcvU1ZHQ29sb3IuY3BwOiBDbGVhbnVwIGNvZGUuCisgICAgICAgICogc3ZnL1NWR0NvbG9y
Lmg6IERpdHRvLiAoKyBBZGQgc2V0Q29sb3IoY29uc3QgQ29sb3ImKSBzZXR0ZXI9LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ29sb3I6OmNvbG9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
b2xvcjo6c2V0Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdQYWludC5jcHA6IFJlbW92ZSBzdGF0
aWMgUmVmUHRycywgZGVmYXVsdEZpbGwvZGVmYXVsdFN0cm9rZSwgbm8gbG9uZ2VyIHVzZWQuIElu
bGluZSB1cmkvc2V0VXJpIGZ1bmN0aW9ucywgcmVwbGFjZSBzaXggY29uc3RydWN0b3JzIHdpdGgg
b25lLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OlNWR1BhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50OjpzZXRQYWludCk6CisgICAgICAgICogc3ZnL1NWR1BhaW50Lmg6IFJl
cGxhY2Ugc2l4IG92ZXJsb2FkZWQgY3JlYXRlKCkgdmFyaWFudHMsIGJ5IHNwZWNpZmljIGNvbnN0
cnVjdG9ycyB0aGF0IGFyZSBtb3JlIGV4cGxhaW5hdG9yeS4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhaW50OjpjcmVhdGVVbmtub3duKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpjcmVh
dGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpjcmVhdGVDdXJyZW50Q29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OmNyZWF0ZUNvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50OjpjcmVhdGVVUkkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6
OmNyZWF0ZVVSSUFuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50Ojp1cmkpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OnNldFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYWludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50Ojppc1NWR1BhaW50
KToKKwogMjAxMS0wMi0xOSAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZp
c2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTVkdQYWludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTEzMyw3ICsxMzQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0
eWxlRGVjCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdG9wQ29sb3I6CiAgICAgICAgICAgICBy
ZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKHN2Z1N0eWxlLT5zdG9wQ29sb3Io
KS5yZ2IoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgotICAgICAgICAgICAgcmV0
dXJuIHN2Z1N0eWxlLT5maWxsUGFpbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBTVkdQYWludDo6
Y3JlYXRlKHN2Z1N0eWxlLT5maWxsUGFpbnRUeXBlKCksIHN2Z1N0eWxlLT5maWxsUGFpbnRVcmko
KSwgc3ZnU3R5bGUtPmZpbGxQYWludENvbG9yKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
S2VybmluZzoKICAgICAgICAgICAgIHJldHVybiBTVkdMZW5ndGg6OnRvQ1NTUHJpbWl0aXZlVmFs
dWUoc3ZnU3R5bGUtPmtlcm5pbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJF
bmQ6CkBAIC0xNDksNyArMTUwLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlYwogICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHN2Z1N0eWxlLT5tYXJrZXJTdGFydFJlc291cmNlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
VVJJKTsKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRp
ZmllcihDU1NWYWx1ZU5vbmUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlOgotICAg
ICAgICAgICAgcmV0dXJuIHN2Z1N0eWxlLT5zdHJva2VQYWludCgpOworICAgICAgICAgICAgcmV0
dXJuIFNWR1BhaW50OjpjcmVhdGUoc3ZnU3R5bGUtPnN0cm9rZVBhaW50VHlwZSgpLCBzdmdTdHls
ZS0+c3Ryb2tlUGFpbnRVcmkoKSwgc3ZnU3R5bGUtPnN0cm9rZVBhaW50Q29sb3IoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VEYXNoYXJyYXk6CiAgICAgICAgICAgICByZXR1cm4g
c3Ryb2tlRGFzaEFycmF5VG9DU1NWYWx1ZUxpc3Qoc3ZnU3R5bGUtPnN0cm9rZURhc2hBcnJheSgp
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZURhc2hvZmZzZXQ6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDE3ICsxNzks
MTcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJZAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlTdHJva2U6ICAgICAgICAgICAgICAgLy8gPHBhaW50PiB8IGluaGVyaXQKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAg
ICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGUoU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfTk9ORSk7CisgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRl
Tm9uZSgpOwogICAgICAgICAgICAgZWxzZSBpZiAoaWQgPT0gQ1NTVmFsdWVDdXJyZW50Y29sb3Ip
Ci0gICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKFNWR1BhaW50
OjpTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUik7CisgICAgICAgICAgICAgICAgcGFyc2VkVmFs
dWUgPSBTVkdQYWludDo6Y3JlYXRlQ3VycmVudENvbG9yKCk7CiAgICAgICAgICAgICBlbHNlIGlm
ICgoaWQgPj0gQ1NTVmFsdWVBY3RpdmVib3JkZXIgJiYgaWQgPD0gQ1NTVmFsdWVXaW5kb3d0ZXh0
KSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUpCi0gICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBT
VkdQYWludDo6Y3JlYXRlKFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+c3lzdGVtQ29sb3Io
aWQpKTsKKyAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGVDb2xv
cihSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnN5c3RlbUNvbG9yKGlkKSk7CiAgICAgICAg
ICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkg
ewogICAgICAgICAgICAgICAgIFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwogICAgICAg
ICAgICAgICAgIGlmIChtX3ZhbHVlTGlzdC0+bmV4dCgpICYmIHBhcnNlQ29sb3JGcm9tVmFsdWUo
bV92YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFyc2Vk
VmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcsIGMpOworICAgICAgICAgICAg
ICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGVVUklBbmRDb2xvcih2YWx1ZS0+
c3RyaW5nLCBjKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
cGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VS
SSwgdmFsdWUtPnN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZH
UGFpbnQ6OmNyZWF0ZVVSSSh2YWx1ZS0+c3RyaW5nKTsKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VTVkdQYWludCgpOwogCkBAIC0zMzksOCAr
MzM5LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVNWRwogewogICAg
IFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwogICAgIGlmICghcGFyc2VDb2xvckZyb21W
YWx1ZShtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLCBjKSkKLSAgICAgICAgcmV0dXJuIFNWR1BhaW50
OjpjcmVhdGUoKTsKLSAgICByZXR1cm4gU1ZHUGFpbnQ6OmNyZWF0ZShDb2xvcihjKSk7CisgICAg
ICAgIHJldHVybiBTVkdQYWludDo6Y3JlYXRlVW5rbm93bigpOworICAgIHJldHVybiBTVkdQYWlu
dDo6Y3JlYXRlQ29sb3IoQ29sb3IoYykpOwogfQogCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQ
YXJzZXI6OnBhcnNlU1ZHQ29sb3IoKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0
eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwxNyArMjMxLDM2
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgLy8g
ZW5kIG9mIGlkZW50IG9ubHkgcHJvcGVydGllcwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rmls
bDoKICAgICAgICAgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoZmls
bFBhaW50LCBGaWxsUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkK
LSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBhaW50KHN0YXRpY19jYXN0PFNWR1Bh
aW50Kj4odmFsdWUpKTsKKyAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnUGFyZW50U3R5bGUgPSBtX3BhcmVudFN0eWxl
LT5zdmdTdHlsZSgpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3Zn
UGFyZW50U3R5bGUtPmZpbGxQYWludFR5cGUoKSwgc3ZnUGFyZW50U3R5bGUtPmZpbGxQYWludENv
bG9yKCksIHN2Z1BhcmVudFN0eWxlLT5maWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAg
ICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxGaWxsUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50Q29sb3Io
KSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1NWR1Bh
aW50KCkpIHsKKyAgICAgICAgICAgICAgICBTVkdQYWludCogc3ZnUGFpbnQgPSBzdGF0aWNfY2Fz
dDxTVkdQYWludCo+KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBh
aW50KHN2Z1BhaW50LT5wYWludFR5cGUoKSwgY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZShzdmdQ
YWludCwgbV9zdHlsZS0+Y29sb3IoKSksIHN2Z1BhaW50LT51cmkoKSk7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U3Ryb2tlOgogICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElB
TChzdHJva2VQYWludCwgU3Ryb2tlUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZH
UGFpbnQoKSkKLSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQoc3RhdGlj
X2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
aXNJbmhlcml0KSB7CisgICAgICAgICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1Bh
cmVudFN0eWxlID0gbV9wYXJlbnRTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBz
dmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQoc3ZnUGFyZW50U3R5bGUtPnN0cm9rZVBhaW50VHlwZSgp
LCBzdmdQYXJlbnRTdHlsZS0+c3Ryb2tlUGFpbnRDb2xvcigpLCBzdmdQYXJlbnRTdHlsZS0+c3Ry
b2tlUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5z
ZXRTdHJva2VQYWludChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VHlwZSgpLCBT
VkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSwgU1ZHUmVuZGVyU3R5bGU6
OmluaXRpYWxTdHJva2VQYWludFVyaSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkgeworICAgICAg
ICAgICAgICAgIFNWR1BhaW50KiBzdmdQYWludCA9IHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFs
dWUpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQYWludChzdmdQYWludC0+
cGFpbnRUeXBlKCksIGNvbG9yRnJvbVNWR0NvbG9yQ1NTVmFsdWUoc3ZnUGFpbnQsIG1fc3R5bGUt
PmNvbG9yKCkpLCBzdmdQYWludC0+dXJpKCkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZVdpZHRoOgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGUuY3BwCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksOSBAQCBT
dHlsZURpZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uCiAgICAgLy8gU29tZSBzdHJv
a2UgcHJvcGVydGllcywgcmVxdWlyZXMgcmVsYXlvdXRzLCBhcyB0aGUgY2FjaGVkIHN0cm9rZSBi
b3VuZGFyaWVzIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkLgogICAgIGlmIChzdHJva2UgIT0gb3Ro
ZXItPnN0cm9rZSkgewogICAgICAgICBpZiAoc3Ryb2tlLT53aWR0aCAhPSBvdGhlci0+c3Ryb2tl
LT53aWR0aAotICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludCAhPSBvdGhlci0+c3Ryb2tlLT5w
YWludAorICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFR5cGUgIT0gb3RoZXItPnN0cm9rZS0+
cGFpbnRUeXBlCisgICAgICAgICAgICB8fCBzdHJva2UtPnBhaW50Q29sb3IgIT0gb3RoZXItPnN0
cm9rZS0+cGFpbnRDb2xvcgorICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFVyaSAhPSBvdGhl
ci0+c3Ryb2tlLT5wYWludFVyaQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5taXRlckxpbWl0ICE9
IG90aGVyLT5zdHJva2UtPm1pdGVyTGltaXQKICAgICAgICAgICAgIHx8IHN0cm9rZS0+ZGFzaEFy
cmF5ICE9IG90aGVyLT5zdHJva2UtPmRhc2hBcnJheQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5k
YXNoT2Zmc2V0ICE9IG90aGVyLT5zdHJva2UtPmRhc2hPZmZzZXQpCkBAIC0xOTEsNyArMTkzLDcg
QEAgU3R5bGVEaWZmZXJlbmNlIFNWR1JlbmRlclN0eWxlOjpkaWZmKGNvbgogICAgIH0KIAogICAg
IC8vIElmIGZpbGwgY2hhbmdlcywgd2UganVzdCBuZWVkIHRvIHJlcGFpbnQuIEZpbGwgYm91bmRh
cmllcyBhcmUgbm90IGluZmx1ZW5jZWQgYnkgdGhpcywgb25seSBieSB0aGUgUGF0aCwgdGhhdCBS
ZW5kZXJTVkdQYXRoIGNvbnRhaW5zLgotICAgIGlmIChmaWxsICE9IG90aGVyLT5maWxsKQorICAg
IGlmIChmaWxsLT5wYWludFR5cGUgIT0gb3RoZXItPmZpbGwtPnBhaW50VHlwZSB8fCBmaWxsLT5w
YWludENvbG9yICE9IG90aGVyLT5maWxsLT5wYWludENvbG9yIHx8IGZpbGwtPnBhaW50VXJpICE9
IG90aGVyLT5maWxsLT5wYWludFVyaSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJl
cGFpbnQ7CiAKICAgICAvLyBJZiBncmFkaWVudCBzdG9wcyBjaGFuZ2UsIHdlIGp1c3QgbmVlZCB0
byByZXBhaW50LiBTdHlsZSB1cGRhdGVzIGFyZSBhbHJlYWR5IGhhbmRsZWQgdGhyb3VnaCBSZW5k
ZXJTVkdHcmFkaWVudFNUb3AuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzEs
OSArNzEsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBFR2x5cGhPcmllbnRhdGlvbiBpbml0aWFs
R2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwoKSB7IHJldHVybiBHT18wREVHOyB9CiAgICAgc3Rh
dGljIEVHbHlwaE9yaWVudGF0aW9uIGluaXRpYWxHbHlwaE9yaWVudGF0aW9uVmVydGljYWwoKSB7
IHJldHVybiBHT19BVVRPOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxGaWxsT3BhY2l0eSgp
IHsgcmV0dXJuIDEuMGY7IH0KLSAgICBzdGF0aWMgU1ZHUGFpbnQqIGluaXRpYWxGaWxsUGFpbnQo
KSB7IHJldHVybiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKTsgfQorICAgIHN0YXRpYyBTVkdQYWlu
dDo6U1ZHUGFpbnRUeXBlIGluaXRpYWxGaWxsUGFpbnRUeXBlKCkgeyByZXR1cm4gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfUkdCQ09MT1I7IH0KKyAgICBzdGF0aWMgQ29sb3IgaW5pdGlhbEZpbGxQ
YWludENvbG9yKCkgeyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgc3RhdGljIFN0cmluZyBp
bml0aWFsRmlsbFBhaW50VXJpKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICBzdGF0aWMgZmxv
YXQgaW5pdGlhbFN0cm9rZU9wYWNpdHkoKSB7IHJldHVybiAxLjBmOyB9Ci0gICAgc3RhdGljIFNW
R1BhaW50KiBpbml0aWFsU3Ryb2tlUGFpbnQoKSB7IHJldHVybiBTVkdQYWludDo6ZGVmYXVsdFN0
cm9rZSgpOyB9CisgICAgc3RhdGljIFNWR1BhaW50OjpTVkdQYWludFR5cGUgaW5pdGlhbFN0cm9r
ZVBhaW50VHlwZSgpIHsgcmV0dXJuIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KKyAg
ICBzdGF0aWMgQ29sb3IgaW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSB7IHJldHVybiBDb2xvcigp
OyB9CisgICAgc3RhdGljIFN0cmluZyBpbml0aWFsU3Ryb2tlUGFpbnRVcmkoKSB7IHJldHVybiBT
dHJpbmcoKTsgfQogICAgIHN0YXRpYyBWZWN0b3I8U1ZHTGVuZ3RoPiBpbml0aWFsU3Ryb2tlRGFz
aEFycmF5KCkgeyByZXR1cm4gVmVjdG9yPFNWR0xlbmd0aD4oKTsgfQogICAgIHN0YXRpYyBmbG9h
dCBpbml0aWFsU3Ryb2tlTWl0ZXJMaW1pdCgpIHsgcmV0dXJuIDQuMGY7IH0KICAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbFN0b3BPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQpAQCAtMTUwLDEwICsx
NTQsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgZmlsbC5hY2Nlc3MoKS0+b3BhY2l0eSA9IG9i
ajsKICAgICB9CiAKLSAgICB2b2lkIHNldEZpbGxQYWludChQYXNzUmVmUHRyPFNWR1BhaW50PiBv
YmopCisgICAgdm9pZCBzZXRGaWxsUGFpbnQoU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSB0eXBlLCBj
b25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFN0cmluZyYgdXJpKQogICAgIHsKLSAgICAgICAgaWYg
KCEoZmlsbC0+cGFpbnQgPT0gb2JqKSkKLSAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50
ID0gb2JqOworICAgICAgICBpZiAoIShmaWxsLT5wYWludFR5cGUgPT0gdHlwZSkpCisgICAgICAg
ICAgICBmaWxsLmFjY2VzcygpLT5wYWludFR5cGUgPSB0eXBlOworICAgICAgICBpZiAoIShmaWxs
LT5wYWludENvbG9yID09IGNvbG9yKSkKKyAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50
Q29sb3IgPSBjb2xvcjsKKyAgICAgICAgaWYgKCEoZmlsbC0+cGFpbnRVcmkgPT0gdXJpKSkKKyAg
ICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50VXJpID0gdXJpOwogICAgIH0KIAogICAgIHZv
aWQgc2V0U3Ryb2tlT3BhY2l0eShmbG9hdCBvYmopCkBAIC0xNjIsMTAgKzE3MCwxNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPm9wYWNpdHkgPSBvYmo7CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRTdHJva2VQYWludChQYXNzUmVmUHRyPFNWR1BhaW50PiBvYmopCisgICAg
dm9pZCBzZXRTdHJva2VQYWludChTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHR5cGUsIGNvbnN0IENv
bG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB1cmkpCiAgICAgewotICAgICAgICBpZiAoIShzdHJv
a2UtPnBhaW50ID09IG9iaikpCi0gICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPnBhaW50ID0g
b2JqOworICAgICAgICBpZiAoIShzdHJva2UtPnBhaW50VHlwZSA9PSB0eXBlKSkKKyAgICAgICAg
ICAgIHN0cm9rZS5hY2Nlc3MoKS0+cGFpbnRUeXBlID0gdHlwZTsKKyAgICAgICAgaWYgKCEoc3Ry
b2tlLT5wYWludENvbG9yID09IGNvbG9yKSkKKyAgICAgICAgICAgIHN0cm9rZS5hY2Nlc3MoKS0+
cGFpbnRDb2xvciA9IGNvbG9yOworICAgICAgICBpZiAoIShzdHJva2UtPnBhaW50VXJpID09IHVy
aSkpCisgICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPnBhaW50VXJpID0gdXJpOwogICAgIH0K
IAogICAgIHZvaWQgc2V0U3Ryb2tlRGFzaEFycmF5KGNvbnN0IFZlY3RvcjxTVkdMZW5ndGg+JiBv
YmopCkBAIC0yOTMsOSArMzA1LDEzIEBAIHB1YmxpYzoKICAgICBFR2x5cGhPcmllbnRhdGlvbiBn
bHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIChFR2x5cGhPcmllbnRh
dGlvbikgc3ZnX2luaGVyaXRlZF9mbGFncy5fZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw7IH0K
ICAgICBFR2x5cGhPcmllbnRhdGlvbiBnbHlwaE9yaWVudGF0aW9uVmVydGljYWwoKSBjb25zdCB7
IHJldHVybiAoRUdseXBoT3JpZW50YXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2dseXBoT3Jp
ZW50YXRpb25WZXJ0aWNhbDsgfQogICAgIGZsb2F0IGZpbGxPcGFjaXR5KCkgY29uc3QgeyByZXR1
cm4gZmlsbC0+b3BhY2l0eTsgfQotICAgIFNWR1BhaW50KiBmaWxsUGFpbnQoKSBjb25zdCB7IHJl
dHVybiBmaWxsLT5wYWludC5nZXQoKTsgfQorICAgIGNvbnN0IFNWR1BhaW50OjpTVkdQYWludFR5
cGUmIGZpbGxQYWludFR5cGUoKSBjb25zdCB7IHJldHVybiBmaWxsLT5wYWludFR5cGU7IH0KKyAg
ICBjb25zdCBDb2xvciYgZmlsbFBhaW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBmaWxsLT5wYWlu
dENvbG9yOyB9CisgICAgY29uc3QgU3RyaW5nJiBmaWxsUGFpbnRVcmkoKSBjb25zdCB7IHJldHVy
biBmaWxsLT5wYWludFVyaTsgfSAgICAKICAgICBmbG9hdCBzdHJva2VPcGFjaXR5KCkgY29uc3Qg
eyByZXR1cm4gc3Ryb2tlLT5vcGFjaXR5OyB9Ci0gICAgU1ZHUGFpbnQqIHN0cm9rZVBhaW50KCkg
Y29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludC5nZXQoKTsgfQorICAgIGNvbnN0IFNWR1BhaW50
OjpTVkdQYWludFR5cGUmIHN0cm9rZVBhaW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+
cGFpbnRUeXBlOyB9CisgICAgY29uc3QgQ29sb3ImIHN0cm9rZVBhaW50Q29sb3IoKSBjb25zdCB7
IHJldHVybiBzdHJva2UtPnBhaW50Q29sb3I7IH0KKyAgICBjb25zdCBTdHJpbmcmIHN0cm9rZVBh
aW50VXJpKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludFVyaTsgfQogICAgIFZlY3RvcjxT
VkdMZW5ndGg+IHN0cm9rZURhc2hBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+ZGFzaEFy
cmF5OyB9CiAgICAgZmxvYXQgc3Ryb2tlTWl0ZXJMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIHN0cm9r
ZS0+bWl0ZXJMaW1pdDsgfQogICAgIFNWR0xlbmd0aCBzdHJva2VXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIHN0cm9rZS0+d2lkdGg7IH0KQEAgLTMyMCw4ICszMzYsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXNNYXNrZXIoKSBjb25zdCB7IHJldHVybiAhbWFza2VyUmVzb3VyY2UoKS5pc0VtcHR5KCk7
IH0KICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuICFmaWx0ZXJSZXNvdXJjZSgp
LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuICFtYXJr
ZXJTdGFydFJlc291cmNlKCkuaXNFbXB0eSgpIHx8ICFtYXJrZXJNaWRSZXNvdXJjZSgpLmlzRW1w
dHkoKSB8fCAhbWFya2VyRW5kUmVzb3VyY2UoKS5pc0VtcHR5KCk7IH0KLSAgICBib29sIGhhc1N0
cm9rZSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZVBhaW50KCktPnBhaW50VHlwZSgpICE9IFNWR1Bh
aW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KLSAgICBib29sIGhhc0ZpbGwoKSBjb25zdCB7IHJl
dHVybiBmaWxsUGFpbnQoKS0+cGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVf
Tk9ORTsgfQorICAgIGJvb2wgaGFzU3Ryb2tlKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlUGFpbnRU
eXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORTsgfQorICAgIGJvb2wgaGFzRmls
bCgpIGNvbnN0IHsgcmV0dXJuIGZpbGxQYWludFR5cGUoKSAhPSBTVkdQYWludDo6U1ZHX1BBSU5U
VFlQRV9OT05FOyB9CiAgICAgYm9vbCBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoKSBjb25zdCB7IHJl
dHVybiB3cml0aW5nTW9kZSgpID09IFdNX1RCUkwgfHwgd3JpdGluZ01vZGUoKSA9PSBXTV9UQjsg
fQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGVEZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsMzUgKzM3LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3R5bGVG
aWxsRGF0YTo6U3R5bGVGaWxsRGF0YSgpCiAgICAgOiBvcGFjaXR5KFNWR1JlbmRlclN0eWxlOjpp
bml0aWFsRmlsbE9wYWNpdHkoKSkKLSAgICAsIHBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0aWFs
RmlsbFBhaW50KCkpCisgICAgLCBwYWludFR5cGUoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxs
UGFpbnRUeXBlKCkpCisgICAgLCBwYWludENvbG9yKFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmls
bFBhaW50Q29sb3IoKSkKKyAgICAsIHBhaW50VXJpKFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmls
bFBhaW50VXJpKCkpCiB7CiB9CiAKIFN0eWxlRmlsbERhdGE6OlN0eWxlRmlsbERhdGEoY29uc3Qg
U3R5bGVGaWxsRGF0YSYgb3RoZXIpCiAgICAgOiBSZWZDb3VudGVkPFN0eWxlRmlsbERhdGE+KCkK
ICAgICAsIG9wYWNpdHkob3RoZXIub3BhY2l0eSkKLSAgICAsIHBhaW50KG90aGVyLnBhaW50KQor
ICAgICwgcGFpbnRUeXBlKG90aGVyLnBhaW50VHlwZSkKKyAgICAsIHBhaW50Q29sb3Iob3RoZXIu
cGFpbnRDb2xvcikKKyAgICAsIHBhaW50VXJpKG90aGVyLnBhaW50VXJpKQogewogfQogCiBib29s
IFN0eWxlRmlsbERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWxsRGF0YSYgb3RoZXIpIGNv
bnN0CiB7Ci0gICAgaWYgKG9wYWNpdHkgIT0gb3RoZXIub3BhY2l0eSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKCFwYWludCB8fCAhb3RoZXIucGFpbnQpCi0gICAgICAgIHJldHVy
biBwYWludCA9PSBvdGhlci5wYWludDsKLQotICAgIGlmIChwYWludC0+cGFpbnRUeXBlKCkgIT0g
b3RoZXIucGFpbnQtPnBhaW50VHlwZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAocGFpbnQtPnBhaW50VHlwZSgpID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSSkKLSAg
ICAgICAgcmV0dXJuIHBhaW50LT51cmkoKSA9PSBvdGhlci5wYWludC0+dXJpKCk7Ci0KLSAgICBp
ZiAocGFpbnQtPnBhaW50VHlwZSgpID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JHQkNPTE9S
KQotICAgICAgICByZXR1cm4gcGFpbnQtPmNvbG9yKCkgPT0gb3RoZXIucGFpbnQtPmNvbG9yKCk7
Ci0KLSAgICByZXR1cm4gcGFpbnQgPT0gb3RoZXIucGFpbnQ7CisgICAgcmV0dXJuIG9wYWNpdHkg
PT0gb3RoZXIub3BhY2l0eSAKKyAgICAgICAgJiYgcGFpbnRUeXBlID09IG90aGVyLnBhaW50VHlw
ZQorICAgICAgICAmJiBwYWludENvbG9yID09IG90aGVyLnBhaW50Q29sb3IKKyAgICAgICAgJiYg
cGFpbnRVcmkgPT0gb3RoZXIucGFpbnRVcmk7CiB9CiAKIFN0eWxlU3Ryb2tlRGF0YTo6U3R5bGVT
dHJva2VEYXRhKCkKQEAgLTc0LDcgKzY2LDkgQEAgU3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9r
ZURhdGEoKQogICAgICwgd2lkdGgoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VXaWR0aCgp
KQogICAgICwgZGFzaE9mZnNldChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZURhc2hPZmZz
ZXQoKSkKICAgICAsIGRhc2hBcnJheShTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZURhc2hB
cnJheSgpKQotICAgICwgcGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWludCgp
KQorICAgICwgcGFpbnRUeXBlKFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRUeXBl
KCkpCisgICAgLCBwYWludENvbG9yKFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRD
b2xvcigpKQorICAgICwgcGFpbnRVcmkoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWlu
dFVyaSgpKQogewogfQogCkBAIC04NSwxOCArNzksMjIgQEAgU3R5bGVTdHJva2VEYXRhOjpTdHls
ZVN0cm9rZURhdGEoY29uc3QgUwogICAgICwgd2lkdGgob3RoZXIud2lkdGgpCiAgICAgLCBkYXNo
T2Zmc2V0KG90aGVyLmRhc2hPZmZzZXQpCiAgICAgLCBkYXNoQXJyYXkob3RoZXIuZGFzaEFycmF5
KQotICAgICwgcGFpbnQob3RoZXIucGFpbnQpCisgICAgLCBwYWludFR5cGUob3RoZXIucGFpbnRU
eXBlKQorICAgICwgcGFpbnRDb2xvcihvdGhlci5wYWludENvbG9yKQorICAgICwgcGFpbnRVcmko
b3RoZXIucGFpbnRVcmkpCiB7CiB9CiAKIGJvb2wgU3R5bGVTdHJva2VEYXRhOjpvcGVyYXRvcj09
KGNvbnN0IFN0eWxlU3Ryb2tlRGF0YSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBhaW50
ID09IG90aGVyLnBhaW50Ci0gICAgICAgICYmIHdpZHRoID09IG90aGVyLndpZHRoCisgICAgcmV0
dXJuIHdpZHRoID09IG90aGVyLndpZHRoCiAgICAgICAgICYmIG9wYWNpdHkgPT0gb3RoZXIub3Bh
Y2l0eQogICAgICAgICAmJiBtaXRlckxpbWl0ID09IG90aGVyLm1pdGVyTGltaXQKICAgICAgICAg
JiYgZGFzaE9mZnNldCA9PSBvdGhlci5kYXNoT2Zmc2V0Ci0gICAgICAgICYmIGRhc2hBcnJheSA9
PSBvdGhlci5kYXNoQXJyYXk7CisgICAgICAgICYmIGRhc2hBcnJheSA9PSBvdGhlci5kYXNoQXJy
YXkKKyAgICAgICAgJiYgcGFpbnRUeXBlID09IG90aGVyLnBhaW50VHlwZQorICAgICAgICAmJiBw
YWludENvbG9yID09IG90aGVyLnBhaW50Q29sb3IKKyAgICAgICAgJiYgcGFpbnRVcmkgPT0gb3Ro
ZXIucGFpbnRVcmk7CiB9CiAKIFN0eWxlU3RvcERhdGE6OlN0eWxlU3RvcERhdGEoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURl
ZnMuaAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGVEZWZzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDggQEAKICNk
ZWZpbmUgU1ZHUmVuZGVyU3R5bGVEZWZzX2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAi
Q29sb3IuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgorI2luY2x1ZGUgIlNWR1BhaW50LmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtOTgs
NyArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHlsZUZpbGxEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU3R5bGVGaWxsRGF0YSk7IH0KICAgICAgICAgUGFzc1JlZlB0cjxTdHlsZUZpbGxEYXRhPiBj
b3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlRmlsbERhdGEoKnRoaXMpKTsg
fQotICAgICAgICAKKwogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWxsRGF0
YSYpIGNvbnN0OwogICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVGaWxsRGF0YSYg
b3RoZXIpIGNvbnN0CiAgICAgICAgIHsKQEAgLTEwNiw3ICsxMDUsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIH0KIAogICAgICAgICBmbG9hdCBvcGFjaXR5OwotICAgICAgICBSZWZQ
dHI8U1ZHUGFpbnQ+IHBhaW50OworICAgICAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50
VHlwZTsKKyAgICAgICAgQ29sb3IgcGFpbnRDb2xvcjsKKyAgICAgICAgU3RyaW5nIHBhaW50VXJp
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3R5bGVGaWxsRGF0YSgpOwpAQCAtMTMxLDcgKzEz
Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU1ZHTGVuZ3RoIGRhc2hPZmZzZXQ7
CiAgICAgICAgIFZlY3RvcjxTVkdMZW5ndGg+IGRhc2hBcnJheTsKIAotICAgICAgICBSZWZQdHI8
U1ZHUGFpbnQ+IHBhaW50OworICAgICAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50VHlw
ZTsKKyAgICAgICAgQ29sb3IgcGFpbnRDb2xvcjsKKyAgICAgICAgU3RyaW5nIHBhaW50VXJpOwog
CiAgICAgcHJpdmF0ZTogICAgICAgIAogICAgICAgICBTdHlsZVN0cm9rZURhdGEoKTsKQEAgLTI2
Miw1ICsyNjUsNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQotCiAjZW5kaWYgLy8gU1ZHUmVuZGVyU3R5bGVEZWZz
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2UuY3BwCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwzMyArNTEs
MzYgQEAgc3RhdGljIGlubGluZSBSZW5kZXJTVkdSZXNvdXJjZSogcmVxdWVzdAogICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgU1ZHUGFpbnQqIHBhaW50ID0gbW9kZSA9PSBBcHBs
eVRvRmlsbE1vZGUgPyBzdmdTdHlsZS0+ZmlsbFBhaW50KCkgOiBzdmdTdHlsZS0+c3Ryb2tlUGFp
bnQoKTsKLSAgICBBU1NFUlQocGFpbnQpOwotCi0gICAgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSBw
YWludFR5cGUgPSBwYWludC0+cGFpbnRUeXBlKCk7CisgICAgYm9vbCBhcHBseVRvRmlsbCA9IG1v
ZGUgPT0gQXBwbHlUb0ZpbGxNb2RlOworICAgIFNWR1BhaW50OjpTVkdQYWludFR5cGUgcGFpbnRU
eXBlID0gYXBwbHlUb0ZpbGwgPyBzdmdTdHlsZS0+ZmlsbFBhaW50VHlwZSgpIDogc3ZnU3R5bGUt
PnN0cm9rZVBhaW50VHlwZSgpOwogICAgIGlmIChwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19Q
QUlOVFRZUEVfTk9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBDb2xvciBjb2xvcjsKLSAg
ICBpZiAocGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JHQkNPTE9SCi0gICAg
ICAgIHx8IHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0ND
T0xPUgotICAgICAgICB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJ
X1JHQkNPTE9SCi0gICAgICAgIHx8IHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9VUklfUkdCQ09MT1JfSUNDQ09MT1IpCi0gICAgICAgIGNvbG9yID0gcGFpbnQtPmNvbG9yKCk7
Ci0gICAgZWxzZSBpZiAocGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX0NVUlJF
TlRDT0xPUiB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJX0NVUlJF
TlRDT0xPUikKLSAgICAgICAgY29sb3IgPSBzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5Q29sb3IpOworICAgIHN3aXRjaCAocGFpbnRUeXBlKSB7CisgICAgY2FzZSBTVkdQ
YWludDo6U1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZH
X1BBSU5UVFlQRV9SR0JDT0xPUjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JH
QkNPTE9SX0lDQ0NPTE9SOgorICAgIGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJX0NV
UlJFTlRDT0xPUjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xP
UjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xP
UjoKKyAgICAgICAgY29sb3IgPSBhcHBseVRvRmlsbCA/IHN2Z1N0eWxlLT5maWxsUGFpbnRDb2xv
cigpIDogc3ZnU3R5bGUtPnN0cm9rZVBhaW50Q29sb3IoKTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKKyAgICB9CiAKICAgICBpZiAoc3R5bGUtPmluc2lkZUxpbmsoKSA9PSBJbnNpZGVW
aXNpdGVkTGluaykgewogICAgICAgICBSZW5kZXJTdHlsZSogdmlzaXRlZFN0eWxlID0gc3R5bGUt
PmdldENhY2hlZFBzZXVkb1N0eWxlKFZJU0lURURfTElOSyk7CiAgICAgICAgIEFTU0VSVCh2aXNp
dGVkU3R5bGUpOwogCi0gICAgICAgIGlmIChTVkdQYWludCogdmlzaXRlZFBhaW50ID0gbW9kZSA9
PSBBcHBseVRvRmlsbE1vZGUgPyB2aXNpdGVkU3R5bGUtPnN2Z1N0eWxlKCktPmZpbGxQYWludCgp
IDogdmlzaXRlZFN0eWxlLT5zdmdTdHlsZSgpLT5zdHJva2VQYWludCgpKSB7Ci0gICAgICAgICAg
ICAvLyBGb3IgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IsICdjb2xvcicgYWxyZWFkeSBjb250
YWlucyB0aGUgJ3Zpc2l0ZWRDb2xvcicuCi0gICAgICAgICAgICBpZiAodmlzaXRlZFBhaW50LT5w
YWludFR5cGUoKSA8IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9OT05FICYmIHZpc2l0ZWRQ
YWludC0+cGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9S
KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQ29sb3ImIHZpc2l0ZWRDb2xvciA9IHZpc2l0ZWRQ
YWludC0+Y29sb3IoKTsKLSAgICAgICAgICAgICAgICBpZiAodmlzaXRlZENvbG9yLmlzVmFsaWQo
KSkKLSAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBDb2xvcih2aXNpdGVkQ29sb3IucmVkKCks
IHZpc2l0ZWRDb2xvci5ncmVlbigpLCB2aXNpdGVkQ29sb3IuYmx1ZSgpLCBjb2xvci5hbHBoYSgp
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1Zpc2l0
ZWRTdHlsZSA9IHZpc2l0ZWRTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgU1ZHUGFpbnQ6OlNW
R1BhaW50VHlwZSB2aXNpdGVkUGFpbnRUeXBlID0gYXBwbHlUb0ZpbGwgPyBzdmdWaXNpdGVkU3R5
bGUtPmZpbGxQYWludFR5cGUoKSA6IHN2Z1Zpc2l0ZWRTdHlsZS0+c3Ryb2tlUGFpbnRUeXBlKCk7
CisKKyAgICAgICAgLy8gRm9yIFNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SLCAnY29sb3InIGFs
cmVhZHkgY29udGFpbnMgdGhlICd2aXNpdGVkQ29sb3InLgorICAgICAgICBpZiAodmlzaXRlZFBh
aW50VHlwZSA8IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9OT05FICYmIHZpc2l0ZWRQYWlu
dFR5cGUgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SKSB7CisgICAgICAg
ICAgICBjb25zdCBDb2xvciYgdmlzaXRlZENvbG9yID0gYXBwbHlUb0ZpbGwgPyBzdmdWaXNpdGVk
U3R5bGUtPmZpbGxQYWludENvbG9yKCkgOiBzdmdWaXNpdGVkU3R5bGUtPnN0cm9rZVBhaW50Q29s
b3IoKTsKKyAgICAgICAgICAgIGlmICh2aXNpdGVkQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICAg
ICAgICAgIGNvbG9yID0gQ29sb3IodmlzaXRlZENvbG9yLnJlZCgpLCB2aXNpdGVkQ29sb3IuZ3Jl
ZW4oKSwgdmlzaXRlZENvbG9yLmJsdWUoKSwgY29sb3IuYWxwaGEoKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAJKHJldmlzaW9uIDc4OTkxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTQsOCArMjU0LDggQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXI6OmRyYXdDb250ZQogICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG9sZFJlbmRlclN0eWxl
ID0gcmVuZGVyZXItPnN0eWxlKCk7CiAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3UmVu
ZGVyU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUob2xkUmVuZGVyU3R5bGUuZ2V0KCkpOwogICAg
ICAgICBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBuZXdSZW5kZXJTdHlsZS5nZXQoKS0+YWNj
ZXNzU1ZHU3R5bGUoKTsKLSAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxQYWludChTVkdQYWludDo6
ZGVmYXVsdEZpbGwoKSk7Ci0gICAgICAgIHN2Z1N0eWxlLT5zZXRTdHJva2VQYWludChTVkdQYWlu
dDo6ZGVmYXVsdFN0cm9rZSgpKTsKKyAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxQYWludChTVkdS
ZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFR5cGUoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxGaWxsUGFpbnRDb2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFVyaSgp
KTsKKyAgICAgICAgc3ZnU3R5bGUtPnNldFN0cm9rZVBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0
aWFsU3Ryb2tlUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRD
b2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VXJpKCkpOwogICAgICAg
ICBzdmdTdHlsZS0+c2V0RmlsbFJ1bGUobmV3Q2xpcFJ1bGUpOwogICAgICAgICBuZXdSZW5kZXJT
dHlsZS5nZXQoKS0+c2V0T3BhY2l0eSgxLjBmKTsKICAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxP
cGFjaXR5KDEuMGYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNv
dXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVzb3VyY2VzLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MiwxNSArMTUyLDEy
IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRhcmdldFJlZmVyZW5jZUZyb20KICAgICByZXR1cm4g
U1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQodGFyZ2V0KTsKIH0KIAotc3RhdGljIGlubGluZSBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogcGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChE
b2N1bWVudCogZG9jdW1lbnQsIFNWR1BhaW50KiBwYWludCwgQXRvbWljU3RyaW5nJiBpZCwgYm9v
bCYgaGFzUGVuZGluZ1Jlc291cmNlKQorc3RhdGljIGlubGluZSBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lciogcGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IFNWR1BhaW50OjpTVkdQYWludFR5cGUmIHBhaW50VHlwZSwgY29uc3QgU3RyaW5nJiBw
YWludFVyaSwgQXRvbWljU3RyaW5nJiBpZCwgYm9vbCYgaGFzUGVuZGluZ1Jlc291cmNlKQogewot
ICAgIEFTU0VSVChwYWludCk7Ci0KLSAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50VHlw
ZSA9IHBhaW50LT5wYWludFR5cGUoKTsKICAgICBpZiAocGFpbnRUeXBlICE9IFNWR1BhaW50OjpT
VkdfUEFJTlRUWVBFX1VSSSAmJiBwYWludFR5cGUgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVf
VVJJX1JHQkNPTE9SKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlkID0gU1ZHVVJJUmVmZXJl
bmNlOjpnZXRUYXJnZXQocGFpbnQtPnVyaSgpKTsKKyAgICBpZCA9IFNWR1VSSVJlZmVyZW5jZTo6
Z2V0VGFyZ2V0KHBhaW50VXJpKTsKICAgICBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogY29u
dGFpbmVyID0gZ2V0UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXJCeUlkKGRvY3VtZW50LCBpZCk7
CiAgICAgaWYgKCFjb250YWluZXIpIHsKICAgICAgICAgaGFzUGVuZGluZ1Jlc291cmNlID0gdHJ1
ZTsKQEAgLTI1OSw3ICsyNTYsNyBAQCBib29sIFNWR1Jlc291cmNlczo6YnVpbGRDYWNoZWRSZXNv
dXJjZXMoCiAgICAgICAgIGlmIChzdHlsZS0+aGFzRmlsbCgpKSB7CiAgICAgICAgICAgICBib29s
IGhhc1BlbmRpbmdSZXNvdXJjZSA9IGZhbHNlOwogICAgICAgICAgICAgQXRvbWljU3RyaW5nIGlk
OwotICAgICAgICAgICAgaWYgKHNldEZpbGwocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPmZpbGxQYWludCgpLCBpZCwgaGFzUGVuZGluZ1Jlc291cmNlKSkpCisg
ICAgICAgICAgICBpZiAoc2V0RmlsbChwYWludGluZ1Jlc291cmNlRnJvbVNWR1BhaW50KGRvY3Vt
ZW50LCBzdHlsZS0+ZmlsbFBhaW50VHlwZSgpLCBzdHlsZS0+ZmlsbFBhaW50VXJpKCksIGlkLCBo
YXNQZW5kaW5nUmVzb3VyY2UpKSkKICAgICAgICAgICAgICAgICBmb3VuZFJlc291cmNlcyA9IHRy
dWU7CiAgICAgICAgICAgICBlbHNlIGlmIChoYXNQZW5kaW5nUmVzb3VyY2UpCiAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXJQZW5kaW5nUmVzb3VyY2UoZXh0ZW5zaW9ucywgaWQsIGVsZW1lbnQpOwpA
QCAtMjY4LDcgKzI2NSw3IEBAIGJvb2wgU1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNl
cygKICAgICAgICAgaWYgKHN0eWxlLT5oYXNTdHJva2UoKSkgewogICAgICAgICAgICAgYm9vbCBo
YXNQZW5kaW5nUmVzb3VyY2UgPSBmYWxzZTsKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBpZDsK
LSAgICAgICAgICAgIGlmIChzZXRTdHJva2UocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPnN0cm9rZVBhaW50KCksIGlkLCBoYXNQZW5kaW5nUmVzb3VyY2UpKSkK
KyAgICAgICAgICAgIGlmIChzZXRTdHJva2UocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPnN0cm9rZVBhaW50VHlwZSgpLCBzdHlsZS0+c3Ryb2tlUGFpbnRVcmko
KSwgaWQsIGhhc1BlbmRpbmdSZXNvdXJjZSkpKQogICAgICAgICAgICAgICAgIGZvdW5kUmVzb3Vy
Y2VzID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1BlbmRpbmdSZXNvdXJjZSkKICAg
ICAgICAgICAgICAgICByZWdpc3RlclBlbmRpbmdSZXNvdXJjZShleHRlbnNpb25zLCBpZCwgZWxl
bWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAJKHJldmlzaW9uIDc4OTkxKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksNiAr
MTksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHQ29sb3IuaCIKIApAQCAtMjgsMTEgKzI5LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1TVkdDb2xvcjo6U1ZHQ29sb3IoKQotICAgIDogbV9jb2xvclR5cGUoU1ZHX0NP
TE9SVFlQRV9VTktOT1dOKQotewotfQotCiBTVkdDb2xvcjo6U1ZHQ29sb3IoY29uc3QgU3RyaW5n
JiByZ2JDb2xvcikKICAgICA6IG1fY29sb3JUeXBlKFNWR19DT0xPUlRZUEVfUkdCQ09MT1IpCiB7
CkBAIC05Nyw2ICs5Myw0IEBAIFN0cmluZyBTVkdDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CiAKIH0K
IAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDb2xvci5oCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
b2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw4IEBACiAKICNpZm5kZWYgU1ZHQ29s
b3JfaAogI2RlZmluZSBTVkdDb2xvcl9oCi0jaWYgRU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zMiwyOSArMzIsMjkgQEAgY2xhc3MgUkdCQ29sb3I7CiAK
IGNsYXNzIFNWR0NvbG9yIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKKyAgICBlbnVtIFNW
R0NvbG9yVHlwZSB7CisgICAgICAgIFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDAsCisgICAgICAg
IFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxLAorICAgICAgICBTVkdfQ09MT1JUWVBFX1JHQkNP
TE9SX0lDQ0NPTE9SID0gMiwKKyAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgPSAz
CisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NvbG9yPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBjb2xvcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQ29s
b3IoY29sb3IpKTsKICAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDb2xvcj4gY3Jl
YXRlKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHQ29sb3IoY29sb3IpKTsKICAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdD
b2xvcj4gY3JlYXRlQ3VycmVudENvbG9yKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU1ZHQ29sb3IoU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpKTsKICAgICB9CiAKLSAg
ICBlbnVtIFNWR0NvbG9yVHlwZSB7Ci0gICAgICAgIFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDAs
Ci0gICAgICAgIFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxLAotICAgICAgICBTVkdfQ09MT1JU
WVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMiwKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5U
Q09MT1IgPSAzCi0gICAgfTsKLQotICAgIC8vICdTVkdDb2xvcicgZnVuY3Rpb25zCiAgICAgdW5z
aWduZWQgc2hvcnQgY29sb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclR5cGU7IH0KLQog
ICAgIFBhc3NSZWZQdHI8UkdCQ29sb3I+IHJnYkNvbG9yKCkgY29uc3Q7CiAKICAgICBzdGF0aWMg
Q29sb3IgY29sb3JGcm9tUkdCQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJik7CkBAIC02NSwxOSAr
NjUsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sb3IodW5zaWduZWQgc2hvcnQgY29sb3JU
eXBlLCBjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBt
X2NvbG9yOyB9CisgICAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9jb2xv
ciA9IGNvbG9yOyB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdDb2xvcigpOwotICAgIFNWR0NvbG9y
KGNvbnN0IFN0cmluZyYgY29sb3IpOwotICAgIFNWR0NvbG9yKGNvbnN0IENvbG9yJik7Ci0KKyAg
ICBTVkdDb2xvcihTVkdDb2xvclR5cGUpOwogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBTVkdDb2xvcihTVkdDb2xvclR5cGUpOworICAgIFNWR0Nv
bG9yKGNvbnN0IFN0cmluZyYpOworICAgIFNWR0NvbG9yKGNvbnN0IENvbG9yJik7CiAKICAgICBz
dGF0aWMgdm9pZCBjcmVhdGUoaW50KTsgLy8gY29tcGlsZS10aW1lIGd1YXJkIAotCiAgICAgdmly
dHVhbCBib29sIGlzU1ZHQ29sb3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBDb2xv
ciBtX2NvbG9yOwpAQCAtODgsNSArODYsMyBAQCBwcml2YXRlOgogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWRykKICNlbmRpZiAvLyBTVkdDb2xvcl9oCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhaW50LmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFpbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLTIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTI4LDYyICsyOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVNWR1BhaW50OjpTVkdQYWludCgpCi0gICAgOiBtX3BhaW50VHlwZShTVkdfUEFJTlRUWVBFX1VO
S05PV04pCi17Ci19Ci0KLVNWR1BhaW50OjpTVkdQYWludChjb25zdCBTdHJpbmcmIHVyaSkKLSAg
ICA6IG1fcGFpbnRUeXBlKFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SKQotewotICAgIHNldFVy
aSh1cmkpOwotfQotCi1TVkdQYWludDo6U1ZHUGFpbnQoU1ZHUGFpbnRUeXBlIHBhaW50VHlwZSkK
LSAgICA6IG1fcGFpbnRUeXBlKHBhaW50VHlwZSkKLXsKLX0KLQotU1ZHUGFpbnQ6OlNWR1BhaW50
KFNWR1BhaW50VHlwZSBwYWludFR5cGUsIGNvbnN0IFN0cmluZyYgdXJpLCBjb25zdCBTdHJpbmcm
IHJnYlBhaW50LCBjb25zdCBTdHJpbmcmKQotICAgIDogU1ZHQ29sb3IocmdiUGFpbnQpCitTVkdQ
YWludDo6U1ZHUGFpbnQoU1ZHQ29sb3JUeXBlIGNvbG9yVHlwZSwgU1ZHUGFpbnRUeXBlIHBhaW50
VHlwZSkKKyAgICA6IFNWR0NvbG9yKGNvbG9yVHlwZSkKICAgICAsIG1fcGFpbnRUeXBlKHBhaW50
VHlwZSkKIHsKLSAgICBzZXRVcmkodXJpKTsKLX0KLQotU1ZHUGFpbnQ6OlNWR1BhaW50KGNvbnN0
IENvbG9yJiBjKQotICAgIDogU1ZHQ29sb3IoYykKLSAgICAsIG1fcGFpbnRUeXBlKFNWR19QQUlO
VFRZUEVfUkdCQ09MT1IpCi17Ci19Ci0KLVNWR1BhaW50OjpTVkdQYWludChjb25zdCBTdHJpbmcm
IHVyaSwgY29uc3QgQ29sb3ImIGMpCi0gICAgOiBTVkdDb2xvcihjKQotICAgICwgbV9wYWludFR5
cGUoU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IpCi17Ci0gICAgc2V0VXJpKHVyaSk7Ci19Ci0K
LVNWR1BhaW50KiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKQotewotICAgIHN0YXRpYyBTVkdQYWlu
dCogc3RhdGljRGVmYXVsdEZpbGwgPSBjcmVhdGUoQ29sb3I6OmJsYWNrKS5yZWxlYXNlUmVmKCk7
Ci0gICAgcmV0dXJuIHN0YXRpY0RlZmF1bHRGaWxsOwotfQotCi1TVkdQYWludCogU1ZHUGFpbnQ6
OmRlZmF1bHRTdHJva2UoKQotewotICAgIHN0YXRpYyBTVkdQYWludCogc3RhdGljRGVmYXVsdFN0
cm9rZSA9IGNyZWF0ZShTVkdfUEFJTlRUWVBFX05PTkUpLnJlbGVhc2VSZWYoKTsKLSAgICByZXR1
cm4gc3RhdGljRGVmYXVsdFN0cm9rZTsKLX0KLQotU3RyaW5nIFNWR1BhaW50Ojp1cmkoKSBjb25z
dAotewotICAgIHJldHVybiBtX3VyaTsKLX0KLQotdm9pZCBTVkdQYWludDo6c2V0VXJpKGNvbnN0
IFN0cmluZyYgdXJpKQotewotICAgIG1fdXJpID0gdXJpOwogfQogCiB2b2lkIFNWR1BhaW50Ojpz
ZXRQYWludChTVkdQYWludFR5cGUgcGFpbnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3Qg
U3RyaW5nJiByZ2JQYWludCwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpCkBAIC05MSw3
ICszOSw3IEBAIHZvaWQgU1ZHUGFpbnQ6OnNldFBhaW50KFNWR1BhaW50VHlwZSBwYWkKICAgICBt
X3BhaW50VHlwZSA9IHBhaW50VHlwZTsKIAogICAgIGlmIChtX3BhaW50VHlwZSA9PSBTVkdfUEFJ
TlRUWVBFX1VSSSkKLSAgICAgICAgc2V0VXJpKHVyaSk7CisgICAgICAgIG1fdXJpID0gdXJpOwog
ICAgIGVsc2UgaWYgKG1fcGFpbnRUeXBlID09IFNWR19QQUlOVFRZUEVfUkdCQ09MT1IpCiAgICAg
ICAgIHNldFJHQkNvbG9yKHJnYlBhaW50KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYWludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5oCShy
ZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWlhbC5jb20+CisgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDkgKzIyLDEwIEBACiAKICNpZm5kZWYgU1ZH
UGFpbnRfaAogI2RlZmluZSBTVkdQYWludF9oCisKICNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw0OSArNDQs
ODcgQEAgcHVibGljOgogICAgICAgICBTVkdfUEFJTlRUWVBFX1VSSSA9IDEwNwogICAgIH07CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdQYWludD4gY3JlYXRlVW5rbm93bigpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1BhaW50KFNWR19DT0xPUlRZUEVfVU5LTk9XTiwgU1ZHX1BBSU5UVFlQ
RV9VTktOT1dOKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNy
ZWF0ZU5vbmUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoU1ZHX0NPTE9SVFlQRV9VTktO
T1dOLCBTVkdfUEFJTlRUWVBFX05PTkUpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHUGFpbnQ+IGNyZWF0ZShTVkdQYWludFR5cGUgdHlwZSkKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1BhaW50PiBjcmVhdGVDdXJyZW50Q29sb3IoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdQYWludCh0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHUGFpbnQoU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IsIFNWR19QQUlOVFRZUEVfQ1VS
UkVOVENPTE9SKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVh
dGUoY29uc3QgQ29sb3ImIGNvbG9yKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+
IGNyZWF0ZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHUGFpbnQoY29sb3IpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCBTVkdf
UEFJTlRUWVBFX1JHQkNPTE9SKSk7CisgICAgICAgIHBhaW50LT5zZXRDb2xvcihjb2xvcik7Cisg
ICAgICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1BhaW50PiBjcmVhdGUoU1ZHUGFpbnRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXJp
KQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZVVSSShjb25zdCBTdHJp
bmcmIHVyaSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQodHlw
ZSwgdXJpLCBTdHJpbmcoKSwgU3RyaW5nKCkpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1VOS05PV04sIFNWR19Q
QUlOVFRZUEVfVVJJKSk7CisgICAgICAgIHBhaW50LT5zZXRVcmkodXJpKTsKKyAgICAgICAgcmV0
dXJuIHBhaW50LnJlbGVhc2UoKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFp
bnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGNvbG9yKQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZVVSSUFuZENvbG9yKGNvbnN0IFN0cmlu
ZyYgdXJpLCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR1BhaW50KHVyaSwgY29sb3IpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCBTVkdf
UEFJTlRUWVBFX1VSSV9SR0JDT0xPUikpOworICAgICAgICBwYWludC0+c2V0Q29sb3IoY29sb3Ip
OworICAgICAgICBwYWludC0+c2V0VXJpKHVyaSk7CisgICAgICAgIHJldHVybiBwYWludC5yZWxl
YXNlKCk7CiAgICAgfQogCi0gICAgLy8gJ1NWR1BhaW50JyBmdW5jdGlvbnMKICAgICBTVkdQYWlu
dFR5cGUgcGFpbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wYWludFR5cGU7IH0KLSAgICBTdHJp
bmcgdXJpKCkgY29uc3Q7CisgICAgU3RyaW5nIHVyaSgpIGNvbnN0IHsgcmV0dXJuIG1fdXJpOyB9
CiAKLSAgICB2b2lkIHNldFVyaShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFVyaShjb25z
dCBTdHJpbmcmIHVyaSkgeyBtX3VyaSA9IHVyaTsgfQogICAgIHZvaWQgc2V0UGFpbnQoU1ZHUGFp
bnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgU3RyaW5nJiByZ2JQYWludCwgY29uc3Qg
U3RyaW5nJiBpY2NQYWludCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIAotICAgIHN0YXRpYyBTVkdQ
YWludCogZGVmYXVsdEZpbGwoKTsKLSAgICBzdGF0aWMgU1ZHUGFpbnQqIGRlZmF1bHRTdHJva2Uo
KTsKIAogICAgIGJvb2wgbWF0Y2hlc1RhcmdldFVSSShjb25zdCBTdHJpbmcmIHJlZmVyZW5jZUlk
KTsKIAogcHJpdmF0ZToKLSAgICBTVkdQYWludCgpOwotICAgIFNWR1BhaW50KGNvbnN0IFN0cmlu
ZyYgdXJpKTsKLSAgICBTVkdQYWludChTVkdQYWludFR5cGUpOwotICAgIFNWR1BhaW50KFNWR1Bh
aW50VHlwZSwgY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IFN0cmluZyYgcmdiUGFpbnQsIGNvbnN0
IFN0cmluZyYgaWNjUGFpbnQpOwotICAgIFNWR1BhaW50KGNvbnN0IENvbG9yJiBjKTsKLSAgICBT
VkdQYWludChjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGMpOworICAgIGZyaWVuZCBj
bGFzcyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb247CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdQYWludD4gY3JlYXRlKGNvbnN0IFNWR1BhaW50VHlwZSYgdHlwZSwgY29uc3QgU3RyaW5n
JiB1cmksIGNvbnN0IENvbG9yJiBjb2xvcikKKyAgICB7CisgICAgICAgIFNWR0NvbG9yOjpTVkdD
b2xvclR5cGUgY29sb3JUeXBlOworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2Fz
ZSBTVkdfUEFJTlRUWVBFX05PTkU6CisgICAgICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9VTktOT1dO
OgorICAgICAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJOgorICAgICAgICBjYXNlIFNWR19QQUlO
VFRZUEVfVVJJX05PTkU6CisgICAgICAgICAgICBjb2xvclR5cGUgPSBTVkdDb2xvcjo6U1ZHX0NP
TE9SVFlQRV9VTktOT1dOOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1ZHX1BB
SU5UVFlQRV9SR0JDT0xPUjoKKyAgICAgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lD
Q0NPTE9SOgorICAgICAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SOgorICAgICAg
ICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgICAgICAgICAg
Y29sb3JUeXBlID0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfUkdCQ09MT1I7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1I6Cisg
ICAgICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1I6CisgICAgICAgICAgICBjb2xv
clR5cGUgPSBTVkdDb2xvcjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1I7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfTsKKworICAgICAgICBSZWZQdHI8U1ZHUGFpbnQ+IHBhaW50ID0g
YWRvcHRSZWYobmV3IFNWR1BhaW50KGNvbG9yVHlwZSwgdHlwZSkpOworICAgICAgICBwYWludC0+
c2V0Q29sb3IoY29sb3IpOworICAgICAgICBwYWludC0+c2V0VXJpKHVyaSk7CisgICAgICAgIHJl
dHVybiBwYWludC5yZWxlYXNlKCk7CisgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHUGFp
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKK3ByaXZhdGU6CisgICAgU1ZHUGFpbnQoU1ZH
Q29sb3I6OlNWR0NvbG9yVHlwZSwgU1ZHUGFpbnRUeXBlKTsKKworICAgIHZpcnR1YWwgYm9vbCBp
c1NWR1BhaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNz
c1RleHQoKSBjb25zdDsKIAogICAgIFNWR1BhaW50VHlwZSBtX3BhaW50VHlwZTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDc5MTE3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMTkgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1t
ZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU1ZHIDEuMSAybmQgRWRpdGlvbiBjb2xvci1wcm9wLTA1LXQuc3ZnIGV4cG9zZXMg
YnVnIGluICdjdXJyZW50Q29sb3InIGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDgwMAorCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0w
NS10LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0Mt
U1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LnN2ZzogQWRkZWQuCisKIDIwMTEt
MDItMTkgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xLVNFL2Nv
bG9yLXByb3AtMDUtdC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVj
dGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACiswMzNiODExYzFkYmFlMmQw
ZmVhYjYzYzcwOTFmZGNlMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1cz
Qy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3At
MDUtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgNDgweDM2MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNDgweDM2MAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAs
MCkgc2l6ZSA0ODB4MzYwCisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAo
MCwwKSBzaXplIDB4MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEyMCw2MCkgc2l6
ZSAxNTB4MTUwCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMjAsNjApIHNpemUg
MTUweDE1MAorICAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTIwLDYwKSBzaXplIDE1
MHgxNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19XSBbeD0xMjAuMDBdIFt5
PTYwLjAwXSBbd2lkdGg9MTUwLjAwXSBbaGVpZ2h0PTE1MC4wMF0KKyAgICBSZW5kZXJTVkdDb250
YWluZXIge2d9IGF0ICgxMCwzMTQpIHNpemUgMjI3eDMzCisgICAgICBSZW5kZXJTVkdUZXh0IHt0
ZXh0fSBhdCAoMTAsMzE0KSBzaXplIDIyN3gzMyBjb250YWlucyAxIGNodW5rKHMpCisgICAgICAg
IFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIyN3gzMworICAgICAg
ICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAwKSBzdGFydE9mZnNldCAwIGVu
ZE9mZnNldCAyIHdpZHRoIDQwLjkwOiAiJFIiCisgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAy
IGF0ICg1MC41MSwzNDAuMDApIHN0YXJ0T2Zmc2V0IDIgZW5kT2Zmc2V0IDMgd2lkdGggMTcuNzk6
ICJlIgorICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMyBhdCAoNjcuODIsMzQwLjAwKSBzdGFy
dE9mZnNldCAzIGVuZE9mZnNldCAxMiB3aWR0aCAxMTcuMzg6ICJ2aXNpb246IDEiCisgICAgICAg
ICAgY2h1bmsgMSB0ZXh0IHJ1biA0IGF0ICgxODIuODMsMzQwLjAwKSBzdGFydE9mZnNldCAxMiBl
bmRPZmZzZXQgMTYgd2lkdGggNTMuMzg6ICIuOCAkIgorICAgIFJlbmRlclNWR1BhdGgge3JlY3R9
IGF0ICgwLDApIHNpemUgNDgweDM2MCBbc3Ryb2tlPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAw
MDBdfV0gW3g9MS4wMF0gW3k9MS4wMF0gW3dpZHRoPTQ3OC4wMF0gW2hlaWdodD0zNTguMDBdCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0w
NS10LnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9XM0MtU1ZHLTEuMS1TRS9j
b2xvci1wcm9wLTA1LXQuc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACis8c3ZnIHZl
cnNpb249IjEuMSIgYmFzZVByb2ZpbGU9InRpbnkiIGlkPSJzdmctcm9vdCIKKyAgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDQ4MCAzNjAiCisgIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGxpbmsiPgorICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorICA8IS0tPSAgU1ZHIDEuMSAybmQgRWRp
dGlvbiBUZXN0IENhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPS0tPgor
ICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PS0tPgorICA8IS0tPSAgQ29weXJpZ2h0IDIwMDkgV29ybGQgV2lk
ZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgICAgICAgICAgPS0tPgorICA8IS0tPSAg
SW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIEV1cm9wZWFuIFJlc2VhcmNoIENvbnNvcnRpdW0gZm9y
ICAgICAgICAgPS0tPgorICA8IS0tPSAgSW5mb3JtYXRpY3MgYW5kIE1hdGhlbWF0aWNzIChFUkNJ
TSksIEtlaW8gVW5pdmVyc2l0eSkuICAgICAgICAgICAgPS0tPgorICA8IS0tPSAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PS0tPgorICA8IS0tPSAgU2VlIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgPS0tPgorICA8IS0tPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgorICA8
ZDpTVkdUZXN0Q2FzZSB4bWxuczpkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAyL3N2Zy90ZXN0
c3VpdGUvZGVzY3JpcHRpb24vIgorICAgIHRlbXBsYXRlLXZlcnNpb249IjEuNCIgcmV2aWV3ZXI9
IkNMIiBhdXRob3I9IkNOIiBzdGF0dXM9ImFjY2VwdGVkIgorICAgIHZlcnNpb249IiRSZXZpc2lv
bjogMS44ICQiIHRlc3RuYW1lPSIkUkNTZmlsZTogY29sb3ItcHJvcC0wNS10LnN2Zyx2ICQiPgor
ICAgIDxkOnRlc3REZXNjcmlwdGlvbiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvY29sb3IuaHRtbCNDb2xvclByb3Bl
cnR5Ij4KKyAgICAgIDxwPgorICAgICAgICBUZXN0cyB0aGUgY29sb3IgdGhhdCBpcyB1c2VkIGZv
ciB0aGUgY3VycmVudENvbG9yIHZhbHVlIGluIHRoZSBmaWxsCisgICAgICAgIGF0dHJpYnV0ZSB3
aGVuIG1vcmUgdGhhbiBvbmUgY29sb3IgaXMgc3BlY2lmaWVkLgorICAgICAgPC9wPgorICAgICAg
PHA+CisgICAgICAgIFRoaXMgaXMgaWxsdXN0cmF0ZWQgdXNpbmcgYSBzaW5nbGUgcmVjdGFuZ2xl
IHRoYXQgaXMgYSBjaGlsZCBvZiBhIGdyb3VwCisgICAgICAgIGVsZW1lbnQuIEEgZmlsbCBpcyBz
cGVjaWZpZWQgZm9yIHRoZSBncm91cCBlbGVtZW50IGJ1dCBub3QgdGhlCisgICAgICAgIHJlY3Rh
bmdsZS4gQ29sb3VyIGlzIHNwZWNpZmVkIGZvciB0aGUgcmVjdGFuZ2xlIGFuZCB0aGUgZ3JvdXAg
ZWxlbWVudC4KKyAgICAgIDwvcD4KKyAgICA8L2Q6dGVzdERlc2NyaXB0aW9uPgorICAgIDxkOm9w
ZXJhdG9yU2NyaXB0IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICAg
IDxwPlJ1biB0aGUgdGVzdC4gTm8gaW50ZXJhY3Rpb24gcmVxdWlyZWQuPC9wPgorICAgIDwvZDpv
cGVyYXRvclNjcmlwdD4KKyAgICA8ZDpwYXNzQ3JpdGVyaWEgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorICAgICAgPHA+CisgICAgICAgIFRoZSB0ZXN0IGlzIHBhc3NlZCBp
ZiB0aGUgdXNlciBhZ2VudCByZW5kZXJzIHRoZSByZWN0YW5nbGUgd2l0aCBhIGdyZWVuCisgICAg
ICAgIGZpbGwuCisgICAgICA8L3A+CisgICAgPC9kOnBhc3NDcml0ZXJpYT4KKyAgPC9kOlNWR1Rl
c3RDYXNlPgorICA8dGl0bGUgaWQ9InRlc3QtdGl0bGUiPiRSQ1NmaWxlOiBjb2xvci1wcm9wLTA1
LXQuc3ZnLHYgJDwvdGl0bGU+CisgIDxkZWZzPgorICAgIDxmb250LWZhY2UgZm9udC1mYW1pbHk9
IlNWR0ZyZWVTYW5zQVNDSUkiIHVuaWNvZGUtcmFuZ2U9IlUrMC03RiI+CisgICAgICA8Zm9udC1m
YWNlLXNyYz4KKyAgICAgICAgPGZvbnQtZmFjZS11cmkgeGxpbms6aHJlZj0iLi4vY3VzdG9tL3Jl
c291cmNlcy9TVkdGcmVlU2Fucy5zdmcjYXNjaWkiLz4KKyAgICAgIDwvZm9udC1mYWNlLXNyYz4K
KyAgICA8L2ZvbnQtZmFjZT4KKyAgPC9kZWZzPgorICA8ZyBpZD0idGVzdC1ib2R5LWNvbnRlbnQi
IGZvbnQtZmFtaWx5PSJTVkdGcmVlU2Fuc0FTQ0lJLHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTgi
PgorICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciIgY29sb3I9ImxpbWUiPgorICAgICAgPHJlY3Qg
eD0iMTIwIiB5PSI2MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGNvbG9yPSJyZWQiLz4KKyAg
ICA8L2c+CisgIDwvZz4KKyAgPGcgZm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUksc2Fucy1z
ZXJpZiIgZm9udC1zaXplPSIzMiI+CisgICAgPHRleHQgaWQ9InJldmlzaW9uIiB4PSIxMCIgeT0i
MzQwIiBzdHJva2U9Im5vbmUiIGZpbGw9ImJsYWNrIj4kUmV2aXNpb246IDEuOCAkPC90ZXh0Pgor
ICA8L2c+CisgIDxyZWN0IGlkPSJ0ZXN0LWZyYW1lIiB4PSIxIiB5PSIxIiB3aWR0aD0iNDc4IiBo
ZWlnaHQ9IjM1OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIi8+CisgIDwhLS0gY29tbWVu
dCBvdXQgdGhpcyB3YXRlcm1hcmsgb25jZSB0aGUgdGVzdCBpcyBhcHByb3ZlZCAtLT4KKyAgPCEt
LTxnIGlkPSJkcmFmdC13YXRlcm1hcmsiPgorICAgIDxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI0
NzgiIGhlaWdodD0iMjAiIGZpbGw9InJlZCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIx
Ii8+CisgICAgPHRleHQgZm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUksc2Fucy1zZXJpZiIg
Zm9udC13ZWlnaHQ9ImJvbGQiIGZvbnQtc2l6ZT0iMjAiIHg9IjI0MCIKKyAgICAgIHRleHQtYW5j
aG9yPSJtaWRkbGUiIHk9IjE4IiBzdHJva2Utd2lkdGg9IjAuNSIgc3Ryb2tlPSJibGFjayIgZmls
bD0id2hpdGUiPkRSQUZUPC90ZXh0PgorICA8L2c+LS0+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xLVNF
L2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUt
dHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhF
VWdBQUFlQUFBQUZvQ0FZQUFBQ1BOeWdnQUFBQzdtbERRMUJKUTBNZ1VISnZabWxzWlFBQWVBR0YK
Vk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JGaWF3emJIN1pGa0dRelNkWnVO
dXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042cktHS2hGeTN4elc1TXRxWHF3
TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpxCi9JZ0FqcUlKUVRRbFZkdnNU
aVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFBNEVlYTJTcXc3eGR4Q2xrU0Fv
ZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUExTGM1L1RiaFR6U1hUUUlOSU9K
VDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdjVHZZT2tMMmQ5SDVPczk0K3dp
SENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0eHFwCitEWENGRjhRVFNlaVZI
SFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhCWDBtMXhPdjRuZFdVZUY1anhO
bjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQQm94TkxKeVB5T3JCaHVUZXpK
MUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhRZjRxcjhsUDVYbjV5MXl3MkZi
M2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1YXNlWHE4Cm11d2FQK3hYbHpI
bWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1OXNmenM5NGk3UExyWFdjNjJK
aXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtURW1kb3JuSVltWHhTN3hrdGhM
cXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZVWi9EUFZSbEJuTTBsU0o5My9D
S21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNIdkVLRmxwVzV6CnJnSVh2OUY5
OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5PV2xzMDVVb2NzbjVPNjZjcGlV
c3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZmRXAwcGxrL3F2OFJHdy9iQlMr
Zm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZSNEFlM2RCWkRreHRrR1lEbHgv
akF6Tzh6TTdEQXpzME1WWmlaVG9KS3FNS1BEVEE0ek16TXpvK013eC9QM3ExUlB5YnJaCjJkMjc5
ZWg2L1hUVjNveG1OT3FlcDNYenFVSFNIck9TOXR0dnYwNGlRSUFBQVFJRVZpTnd3QUVIZEh2bW53
TVBQTERiZi8vOVY1T3IKWEFnUUlFQ0F3SkZZSUhFM2FjLzhzKysrKzNaYXdaR1FDQkFnUUlEQUVT
OXcyR0dIZFVjNTRyT1JBd0VDQkFnUUlEQVdFSURISXBZSgpFQ0JBZ01BS0JBVGdGU0RMZ2dBQkFn
UUlqQVVFNExHSVpRSUVDQkFnc0FJQkFYZ0Z5TElnUUlBQUFRSmpBUUY0TEdLWkFBRUNCQWlzClFF
QUFYZ0d5TEFnUUlFQ0F3RmhBQUI2TFdDWkFnQUFCQWlzUUVJQlhnQ3dMQWdRSUVDQXdGaENBeHlL
V0NSQWdRSURBQ2dRRTRCVWcKeTRJQUFRSUVDSXdGQk9DeGlHVUNCQWdRSUxBQ0FRRjRCY2l5SUVD
QUFBRUNZd0VCZUN4aW1RQUJBZ1FJckVCQUFGNEJzaXdJRUNCQQpnTUJZUUFBZWkxZ21RSUFBQVFJ
ckVCQ0FWNEFzQ3dJRUNCQWdNQllRZ01jaWxna1FJRUNBd0FvRUJPQVZJTXVDQUFFQ0JBaU1CUVRn
CnNZaGxBZ1FJRUNDd0FnRUJlQVhJc2lCQWdBQUJBbU1CQVhnc1lwa0FBUUlFQ0t4QVFBQmVBYklz
Q0JBZ1FJREFXRUFBSG90WUprQ0EKQUFFQ0t4QVFnRmVBTEFzQ0JBZ1FJREFXRUlESElwWUpFQ0JB
Z01BS0JBVGdGU0RMZ2dBQkFnUUlqQVVFNExHSVpRSUVDQkFnc0FJQgpBWGdGeUxJZ1FJQUFBUUpq
QVFGNExHS1pBQUVDQkFpc1FFQUFYZ0d5TEFnUUlFQ0F3RmhBQUI2TFdDWkFnQUFCQWlzUUVJQlhn
Q3dMCkFnUUlFQ0F3RmhDQXh5S1dDUkFnUUlEQUNnUUU0QlVneTRJQUFRSUVDSXdGQk9DeGlHVUNC
QWdRSUxBQ0FRRjRCY2l5SUVDQUFBRUMKWXdFQmVDeGltUUFCQWdRSXJFQkFBRjRCc2l3SUVDQkFn
TUJZUUFBZWkxZ21RSUFBQVFJckVCQ0FWNEFzQ3dJRUNCQWdNQllRZ01jaQpsZ2tRSUVDQXdBb0VC
T0FWSU11Q0FBRUNCQWlNQlFUZ3NZaGxBZ1FJRUNDd0FnRUJlQVhJc2lCQWdBQUJBbU1CQVhnc1lw
a0FBUUlFCkNLeEFRQUJlQWJJc0NCQWdRSURBV0VBQUhvdFlKa0NBQUFFQ0t4QVFnRmVBTEFzQ0JB
Z1FJREFXRUlESElwWUpFQ0JBZ01BS0JBVGcKRlNETGdnQUJBZ1FJakFVRTRMR0laUUlFQ0JBZ3NB
SUJBWGdGeUxJZ1FJQUFBUUpqQVFGNExHS1pBQUVDQkFpc1FFQUFYZ0d5TEFnUQpJRUNBd0ZoQUFC
NkxXQ1pBZ0FBQkFpc1FFSUJYZ0N3TEFnUUlFQ0F3RnRoei9JTGw3U1d3UjdmSDl2cEN2czF1SVRE
clpydEZPUlNDClFNc0NXc0F0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1Rz
QkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQKMTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNE
UXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQQpnRUN6QWdK
d3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5
RXlCQWdFQ3pBZ0p3CnMxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFC
QWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUkKRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3Nn
QURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQQozSEx0
S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlF
Q0RRc29BQTNITHRLVHNCCkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pB
Z0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2cKQURkYmRRcE9nQUFCQWkwTENNQXQx
NTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwTwpn
QUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5D
c2dBRGRiZFFwT2dBQUJBaTBMCkNNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNI
THRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnkKRXlCQWdFQ3pBZ0p3czFXbjRB
UUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VD
egpBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01B
dDE1NnlFeUJBZ0VDekFnSndzMVduCjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFw
T2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFEKc29BQTNITHRLVHNCQWdR
SU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FB
M0hMdApLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVdu
NEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJCk5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJB
Z0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGIKZFFwT2dBQUJBaTBM
Q01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJk
UXBPZ0FBQgpBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JB
Z1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0CjE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFz
b0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkEKZ0VDekFnSndz
MVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5
QkFnRUN6QWdKdwpzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFp
MExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJCkVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FE
ZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEKM0hMdEtU
c0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNE
UXNvQUEzSEx0S1RzQgpBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdK
d3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnCkFEZGJkUXBPZ0FBQkFpMExDTUF0MTU2
eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE8KZ0FB
QkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3Nn
QURkYmRRcE9nQUFCQWkwTApDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0
S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5CkV5QkFnRUN6QWdKd3MxV240QVFJ
RUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3oK
QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQx
NTZ5RXlCQWdFQ3pBZ0p3czFXbgo0QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9n
QUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRCnNvQUEzSEx0S1RzQkFnUUlO
Q3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNI
THQKS1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRB
UUlFQ0RRc29BQTNITHRLVHNCQWdRSQpOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdF
Q3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiCmRRcE9nQUFCQWkwTENN
QXQxNTZ5RXlCQWdFQ3pBbnMyVzNJRjM1REFySnR0YUQwckVTQkFnTUJxQmJTQVYrc3ROd0lFQ0JB
ZzBBc0kKd0hZRUFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011
U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQQpQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01B
VG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzCkh5QkFnQUFCQWhN
SUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFC
QWhNSUNNQVQKb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJB
Z0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQgpBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJz
SHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2CkxBa1FJRUNB
Z0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJ
RUNBZ0FCc0h5QkEKZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZM
QWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011UwpBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQ
QUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJCkVDQXdn
WUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVD
QXdnWUFBUEFHNkxBa1EKSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFn
UUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQgpBaE1JQ01BVG9NdVNBQUVDQkFnSXdQ
WUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDCkJB
Z0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFF
Q0JBZ0l3UFlCQWdRSUVDQXcKZ1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011
U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQQpnQUJzSHlCQWdBQUJBaE1JQ01B
VG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1J
CkNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFC
QWhNSUNNQVRvTXVTQUFFQ0JBZ0kKd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJB
Z0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQQpQQUc2TEFrUUlFQ0FnQUJz
SHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0Fn
QUJzCkh5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJ
RUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVQKb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZM
QWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQgpBZ1FJRUNBd2dZQUFQ
QUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZ
QUFQQUc2CkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSWJFa0EvdDczdnRmZCt0YTM3cDd4akdkTThC
VmtTYUI5Z1VjODRoSDkvNkUvLy9uUDdYOFoKMzRBQWdRMEo3TG1odGRaWjZiZS8vVzMzOHBlL3ZQ
dm5QLy9aM2VNZTkxaG43Zis5ZmNnaGgzUWYvT0FITjdUdVVZNXlsTzdZeHo1MgpkN3JUbmE0NzYx
blAyaDMxcUVmZDBPZW1XdW5mLy81MzkrWTN2N25QZnErOTl1b3VmT0VMYjJsUkRqNzQ0TzQvLy9s
UGQvS1RuN3k3CnpHVXVzNlhidHJGcEJON3hqbmQwWC96aUY3c25QL25KM1hHUGU5eHBDaUZYQWdS
V0tyRFRBZmdmLy9oSDkvclh2NzU3MTd2ZTFYM2kKRTUvb0MvMzJ0Nys5dTlTbEx0VmQ2RUlYNnU1
d2h6dDA1enZmK2RiOE10LzYxcmU2RzkvNHhtdSt2OVliSnpyUmlmcVd3cjc3N3R2bAorZTZZL3Zy
WHY4Ni8yejc3N05POTZFVXYydEppM3ZLV3Qreis5cmUvZFZlKzhwVzc5N3puUFZ1NjdkWTJsZ09k
K043a0pqZnBibkdMClcyeEo4WC8wb3g5MU9jajU2bGUvMnYzcFQzL3FUbmpDRTNabk9jdFp1bXRk
NjFyZE9jNXhqaTNKSXh2NS9PYy8zNzM2MWEvdVB2bkoKVDNaZis5clgrdTNtLzg5NXpuT2U3bnJY
dTE3L25mN3YvLzV2eS9LeklRSUVkak9CL2ZmZmYxYUMyV3d6NmQzdmZ2ZnNOS2M1emF4OApsYVYv
ZDduTFhXYWxWYnh3MHgvNzJNZVdmbmE5YlovMnRLZWRmZi83MzErNDdhbGZQUFRRUStmZnJRVGdM
Uy9Pc1k1MXJINzdKUUJ2CitiWmIyMkFNc3ErVUx0eGRMbm81cUpuZDZVNTNtcFVlbDNuOWpmZkRt
OTcwcHJQZi9lNTN1NVJYNmYyWjNlQUdOMWd6ajVybm1jOTgKNWxrNUNOaWx2SHlZQUlIZFQ2REcz
VTIzZ05QaXV1WTFyOWwzZ2U2eHh4N2R0YTk5N2I1ck9PTy9GNy80eGJ2clh2ZTYzVUVISGRSOQo5
N3ZmN1o3em5PZDBoeDEyV1BmYzV6NjMvS2FzbmM1NzN2TjJqMzNzWTlkY0lhM3RuLzcwcDkzYjN2
YTI3djN2ZjMrL1hwYlQ0dm5VCnB6NjE1dWU4c2IwRnZ2R05iOHozaDEzOXB1bFIySHZ2dmJ2UGZ2
YXo4MDJkNUNRbjZidjVmL09iMzNRWlprbDZ6V3RlMDMzNzI5L3UKaDA5T2NJSVR6TmZkNkpPLy8v
M3YzWld1ZEtXK3V6bWZTY3Y2aGplOFlmZktWNzZ5KzhsUGZ0STk1U2xQNmNyQmFmZUdON3loeTl5
Swp5MS8rOG4xTC9CU25PTVZHczdBZUFRS3RDTlJJdkpGamhETHVPQ3Zqc1AyUmV4bW5tbjM4NHgv
dlAxYTZvUHZYU3BkeXY1eVd4Tld2CmZ2WDVFWDdwWXR0aDg4TVdjUG1SMmVIOXRWNG9QMUR6N1Ji
ajJZYy8vT0cxVnAzMDlmSkRPOHZmdi83MXJ5MHZSemtnT2NLMnZlV0YKUFlJMm1ONlAwbFU3M3hk
MnRRVjg3M3ZmZTc2dE01emhETE15UCtGd0pmL1FoejQwTy92Wnp6NWZwd3l4SE83OWpTNDg1akdQ
bVcvagpudmU4NTZ6TUYrZy9lb0VMWEtCL3ZRVDZmcmwwVGMvS0FXNy9XcG5ndU5ITlc0OEFnUVlF
YXR6ZDFDem9USnJLVVhyU0FRY2MwRjN5CmtwZnNuNC8vT2VZeGo5bTkrTVV2N281MnRLUDFiMjNs
R0dqNW9lek9mLzd6ejdNc1A0eno1N3ZUazJNYzR4aGQvcXJCVnBidDZFYy8KK2hHMjdhMHM1MVp1
Nnc5LytFUDMxcmUrdFNzQnJMdktWYTdTbmUxc1ordGJobHVSUjFxLzZiVkp5cGhyNWpLa05UeE1s
N3ZjNWZyVwpkaVlESnIzMHBTL3Rmdi83M3c5WDJkRHpsN3prSmYxNmFmays5YWxQN2ZiYzgzK2RV
T1UzNDNDZkwxM2QzYzF1ZHJQK3RjeTErTXRmCi9uSzQ5eTBRSU5DK3dLWUM4SmUrOUtYNU43N09k
YTR6Zjc3b3ljbE9kckx1WWhlN1dQL1dWNzd5bFVXcjdQUnI2WmFyNlJlLytFVjkKdXVaamFZWDJr
MXd5MmVVNzMvbE9QMXQ3elpWWC9NWi8vL3ZmN21jLysxbmY5Wm51OUhTdGIyWEtFRUNHQXpKUjdu
T2YrMXlYMmVlNwpraElJTTFzM1hiVS8vL25QZDJWVG0vcHNoaDZ5eitWMG5mZSs5NzM5RU1pbU5y
Qms1VXdJcktmL1hPRUtWMWh6b3RXcFRuV3FmdmdsCm04cE05MHlpMmt6SzVMenNmMGtadXNrUVRr
M0Q1L1cxckpPVWJ1dlVvVVNBd1BZUzJGUUF6b3pRbW1wTG9DNHZldHh2di8yNjV6Ly8KK2QzOTdu
ZS9SVy92OUd2RDB6VFNHbHdyWldacFpzY2UvL2pINzJlV3BzV2VsdE9KVDN6aUxpMk0vUENPMC8z
dmYvL3UwcGUrZFAvMwptYzk4WnZ6MkRzdDN1OXZkNXV2WG1hd0orSFViYTQxdDU4QWhwMnlkOHBT
bjdNcUVzdTZpRjcxb2Q0bExYS0lmVDg5eVBwZnRMRXJYCnVNWTErdTNmOTc3M1hmUjIvOXF2Zi8z
cjdsNzN1bGVYY2N5Y3VwWFp0UmU1eUVYNjVjeE9mK0VMWDlpTlcxM0RqVjN0YWxmcjg2amoKOTkv
ODVqZjc0SlB0WGZDQ0YrekxXeWJpZGVjNjE3bTZONzNwVGNPUDd2QTgxdFhqRmE5NHhRN3ZiK1NG
MUhucEFqN2NYL0xmaWpScwp5YVkrbHFYaCt6Vm9MMXQvK041dy9US1JidmpXd3VkcGRlZi9ULzV5
UUNzUklMRE5CR3BmOUVhNnpVdVgyWHo4Nm5XdmU5MzhJK014CjRQa2JTNTdzN0Jod05ubTcyOTF1
WG82blAvM3BDM01wWFgyejBwMDRYNjlVMnc3UDgzN1dHNlpuUC92WjgvVXlScmNzbFNBM0srY2sK
OSt0bmJMeTBadnZWTS9aYjgxczBDL3FqSC8zb3JFemdtYTlUMXgwL2xzazZzNHk3ajFNNS9hci83
RnF6b0dONzBwT2VkTjN0bDhsMAovVmp5ZVB0WnJ1Vjd5RU1lTXZ2QUJ6NHdPODV4anJOMGV5OTR3
UXNXYmFaLzdZeG5QT1A4czQ5Ly9PUFhYRyt6Yjd6bExXK1piM2RYCnhvRExnZE44TytVZ2JXa3h5
c0hQZk4xeWdMWjAzZkdibVE5UXgzWEg4eDdHWThEanoxb21RR0Q3Q05TNHU2a1c4UENpRHc5KzhJ
TzcKWC83eWx5Vm1yRGFsRlpFeHVxU01yK1o4eVhIS3VhRzN2LzN0K3haa0x1S1I4MmJMQVVQM2tZ
OThwRXNMTExOUWs5TENMTUc4SDF1cwoyN2pSalc0MEg1ZDc0eHZmdUxTVitOclh2clpMRjNKU3p2
ZE5YdXVsZEVPV1UxQzZkT1VtbGNscS9VVk15bVN5cmdTVTdrRVBlbEIvCjBaRzg5NzczdmE4cmdT
MVBONXd5Y3pZdDVEcHJOK2VVUHV0WnorckhMek9HbWpIMGpFMG54Zkd1ZDczcjBtM25uTmlVTjEy
a0dYL04KTUVUbUFhUWJlRGdVa05iNHNJZGs2VVozc3pmUGVjNXpkdWMrOTduN1VxV3J2cHhtdDdD
RTJYOXkzbnZTbWM1MHB2NTg5NFVycnZGaQo5dGM2TEpQNUZGczVOMktOTEwxTWdNRHVMRkFqOFVh
UExYTGtYcjVQLzFlNnhXYmw5S05aK1NIdmwrc3M2STFzYTJkYXdKbjVXcnJsCjV2bVhpV0E3WkZV
bXE4ektLUnY5T21XQ3k2d0VuUjNXeVF0UGV0S1Q1dHNwM1lxSGF3a09XemwxcHZlaWphUzFGSXUw
YW43NHd4L08KVjFuV0FpNlRkK2I1TG1vZFp5T2xTM2UrVGpub21XKzNQbG5XQWk1ZHgvUFBsdTcz
K1N6Yit0azhmdnJUbjU2Vmkwdk0xMHNQeGpqVgpGbkMrWDg0N0x1Tys0MVg2YlZlRHJMZVc5YU1m
L2VqWmZlNXpuLzZ2ak9YdXNKMmRmV0dyV3NESlA5K3ZERlgwSm1WWVk1YVcvNWUvCi9PVlpaaVdY
MDUxbWozdmM0MlpsMktWL3Z4ekF6RW93M3FsaXArZW8vdi9KZm5PYjI5eG1WZzVxWm1WaVlmOTZu
UVc5VXh2M0lRSUUKbWhDb2NiZXJUelphNnRMNm1aVVpuUE1ma2ZwamtzZDB3K1kwb2F5elhob0c0
SFNYbG5NaDEvd3JWeUNhbFJiS3ZQc3UzYjVsZkhsaApGazk0d2hQbVpWdXZXL0sydDczdGZOM1NN
cDV2cjF4V2MvNTZhZG5OWHg4K0tTM0RlWG5LeEozaFczMHdyeTdqSVB1d2h6MXN2dTFjCjBHUlJT
bGQydW0xeklKRlRiY1pwclFCY3hyVG4yODVCUlE1RzFrcGxYSEcrYnBsdHU4TnF3d0Q4cUVjOWFv
ZjM2d3Zwd3EvZnRaejMKWFY5ZXllTldCdUFVT0JlOUtLM2grZmVwMzJ2NG1JdGo1QUJtVjFLWkU3
Rm1Icmw0VFU1NXFzTVp1NUtQenhJZ3NIc0sxTGk3ZnA5cAorZlVacGt3UXltemk4a1BSalNkQXBX
dXl0SFM2MDUvKzlQMXBIT24yM1VoS2Qya3VQTERXWHk3QWtRbE9oYkxmWEM3NlViN0F3azJuCm16
VXBaVXRabHFYaDVMQXl6amxmTlJjVHFaTmtjZ3BJelhlK1FubVNTd2pXMTNQWnpZMm1ZVGQxbmJR
MS9teldLYTM5dm90L016UEkKNDFSVEpvY3RteWlYcnZkY1lqRXBYZEcxSzcxK3ZqNm1MRmwzclpU
OW9hYnFVWmRiZTh5UVJCbnJYbHJzVE9oTGQveXVwQ2MrOFluOQpzRU1KNWp0c0poZXYyWHZ2dmZ1
SmVabnhYWWNTZGxqUkN3UUlOQyt3NlFDY2I1eFp4R1d5VXBlWnZIbk1ETnRoeWc5eHhqUXpBem5q
Cmh6blBjbG5LelJYeXc3ZldYeDJ6ck52SXVPWGQ3MzczL2lwYjliVTg1dFNRak9FbFphWnZ5cmtz
Wlh5MG5xYzduQkdkY3RUVHJISmEKMEtMWjBLOTYxYXY2VFplV1l2OGRsK1V6Zkc5bzlkQ0hQclE3
OE1BRHQreEg5Z3RmK01JOHE2dGU5YXJ6NTR1ZXhMeU9oV2RjUFZkMwpXcFJ5QTR4VG4vclVpOTdx
WHhzZVVLeTVVZ052NUFwWHVaSmI2anJmNmZyWHYzNzN6R2MrczcveVZRNzRNdGNnNSt6bTFLUE1w
bi9aCnkxNjJTOThxOHhKeVNsSk9yeXFYdjV3ZjhOV041djlXeHR4emxialNXMVJmOWtpQXdEWVMy
SE5Ydmt0dWhwQ1djSUpkZnBUeW81OVQKVGpLNXBNejA3VGVkVTFUU0dudHh1VERIV3VteWw3MXNO
MnlCTGxvdnA0cWsxZm1BQnp5Z1B5OHlFNHR5ZWswbUZkV1Uxa0tDY0ZKKwp3SElBc05HVTAzYUdL
WmU1VEg1SmFRWFh5VE5aemlrNVpYd3dUN3ViMy96bTgwbE4vUXZyL0pNYktPUkNFcm1rWjFwY09W
VXJyZm44CjBHYVNXLzRTR0dPNzJUUThoemdYZWxndmxTcyt6VmY1OFk5LzNHVXkwamdkR1M2Qm1M
b3NZN0g5dnBPRHIvUUlaSjhjcGh6dzVUenQKbkp0YnJnWGRUL0xMYVZFNXRXdG5VMXJTT2U4NGZ6
bXZPaFBjTXZFdiswWUNmQ2JzL2VwWHYrb3Y3NXIzaHIwTk81dW56eEVnc1BzSQo3RlFMZUszaUgr
OTR4K3U3S3pOYk5ETjZheGRvcnY2VDJibTdraEtRRXNoelRtUk4yZTR3NVlleHBsemNJbDNnNi8z
VmdEMiswbERPCmc2MUJNQUY0bUhMZDNwb3kyM296S1MzUGRCV241VnU3Z05OamtDQ1FsbFlPWUhL
YndlUmZXL01iM1g1K3NKT1NSMXJtNjZXYzAxdlQKOEJ6Vitsb2V4OE1Ndy9lMnkvTmMxUzBIUTBs
bGN0NE93YmQrejdTUTYvNlgyMEUrOHBHUHJHL3Q4bVB0MXM0QldIcVZmdkNESDNRNQpEemdwQjUr
NVRhRkVnTUQyRXRpbEZ2QXlpclFVMG9WV3gyRnp2OU5jR0dKWFV3SlV0cE1mcGE5Ly9ldjlPR3o5
OGFxUHlTTzNSTXdwClBodE45V0NocnArdTZaeVM5THpuUGEvTHFUaTVpbFM5cjI5dEdhY0x1NzVX
UDdlUngydzdQOTY1NkVlQ2NWcGM2UUhJUVVOU2Z0eHoKS2t6K3lxU3lmcjJOYmpmclpUdzM5Mlpl
TDNobW5ab1N0SStNS1ZjS3E3ZDB6RDVRSnVZdFpjajhnUFFLcEdXYU9zdU5Rc1pESkVzMwpzTUUz
YytHTnRJYjMybXV2L2lwZCtmK1Rnd09KQUlIdEk3Q3BBSHpITzk2eDd4YkxrWG02bnRkTEdUZXJB
YmdHbC9VK3M5NzdHWWRMCjEya0NjRm90T1orMnRpUnJpelhieUJXdnl1emQ5VGEzOVAxMEx5Y0FK
NlVWbkdDYnJzTGFtdC9NNUt0RkdXV2lWN3JKYTFkNU9aV3AKLzFGUHk3NTI0VC93Z1Evc3JuakZL
eDd1K3RlTHRwWFhobVBlNlk1ZjcwcFJDU0kxRGUzcWEwZUd4ei8rOFkvOVBwM3ZtbUMzM3YxMwpj
NUJYWnFqM0FUaTlKeG02eUtURGphU2NOMTZ2R3BZNkh1YTFhQUpiNmlSZDRUbEFHdzR2YkNRdjZ4
QWdzUHNMYktvTE9xMjF0UDV5ClpMNlJOR3hWcnRjYTI4ajI2anJwNnE2cGRydG1PWk9GNm50cnpU
Q3VuOHRqV2orNTFWeit4bDNRZVQ4L2ZuVUNVdTJHcnBPdjh1T1oKaVRSYm1YSmdrYUNlTHZ4MHR5
ZmxoM21qczhrekpsbFRacXF2bDhvNXp2TlZNcDUrWkV4MXRudSsrM0JmV21ZeHZPQklaa1Z2TkdX
aQpXLzcvNUM5bkRBelRzUGRtK0hvdDN4SFJ5aDdtNHprQkFxc1gyRlFBcnBOQU1pRmswUkg3dVBq
RFUyalNhdGlxbEM3YW1zWS9tbWt0CkppWHZkRkV2Uy9raHpIaHIvaFpkb3ppelllc2RhWEphVUdi
QVpyWnNVbVpKRDhkUWwrVXpmQyt0OVhUM0pzOWxhWjk5OXBtL2ZlaWgKaDg2ZkwzdVMwMWRxU210
cldjcEVzdFJqVXE3cVZBODBsbjFtTzc2WEE4TjgvNlJNUk10d3c3S1VHMURVR1RhV3FuZ0FBQVc5
U1VSQgpWUE9wLzQyTXRkZnREWHNrY2tPTFlWcnIvMVA5UHpTY01EZjhuT2NFQ0xRcnNLa0FuQWtp
U2VuZVRMZllzcFFmbEhMZDMzNlZCTEwxClRvdFp0cTN4ZS9VV2JubDlPUEVxeThOelZuTjZSNTFj
ay9lR0taT085dDEzMy82bEJNUmN2bkZSeW16b21qTGpPck9ya3pZNythcHUKSTdPVGE4dDdXU3Ux
WEJTaWZtVGRydVM2WW96clJmdlRZcytsTEJlbGpCRVB4K016QS9pSVRMbDhZejNIdTk0TjZJak1i
N3p0Qk5hYQpmeVlIamxQRytwT3l6MmFXL1ZyQk1PdGtTS0FlQUphTHgrU2xEYWY2L3ljZjJNaGxL
QTgrK09ENTZXRnI3WjhienR5S0JBanNkZ0tiCkNzQjN2dk9kNStmTmxwdUVyM25OM053K0xlZnEx
c2t0YWMzbFZtNWJsWVl0ejlvYXFkc3VWODJhbjVlY0FKZFRmc2JudU9Zek9SMG8KcmRxa2pHM1gx
bjNkVG4zTW5YOHlucHhVdTJ6VFdzeDJkeVpsRWs5TnQ3clZyWGFZNlp3Zi8xekx1dDdwS0YyVE9a
ZDZJeW5kNHNPWgp1Y2tyOTYwZFhtUWpZL0hsa3FIejRKeTcrd3lEOFVieTJldzZPWVVuUVM1L0NT
cXJUcGtzVmZQUGZqdE9tUXhYcnNiV3Y1eEFuZDZOCjlCQU1VMXJHNlEycFF4QVo2bmo0d3g4K1hH
WGQ1N253Um1hM0o3M3puZS9zNTFIay84cWlsQWw0dFJja2Q0SXFOd1padEpyWENCQm8KV0dCVEFU
aUJxRndUdC8rNm1meVVINVBjUnU5cFQzdGEvMXE2ZlBPamtZczMxTnZZWmFid1ZzL2VyRjJHeVRU
bkY5Y1dTWllUc05LZApYQU4rTGdoU2IyT1hMdHJjUGkvbnU1YkxDV2IxZnJaMC9VNzlDd3YrR2Jh
QzgzYSs0ODdPR2s2dzI2dE05a25LcVNhNU1FZThNckV0Cno5TTFuY2xyZFp3eEYrc1lqdTMySDF6
eVQ0SmREZGk1QUVwbTljWWl0d05NWFdRb29FNEV5dmhpeHBjMzA0MjZKT3RtMzByd3pieUcKZXB2
THpIWElQcEp1MzV6L25mMHR6K3Z3UStZMjVQbGFCMjNMSUhLS1VUMjNPdjlIVXZmcFRha1Q0dEly
ay85VCtiK1ZDV0xaejNKTwpjRDFBV0xadDd4RWcwSmhBdVFqRXJQeW5MdzJ2amFjUzlOYTkzVjBK
aExQY25LRjBFUy9jOFBCYTBPTmJzeTM4d09ERkVsUnpUY3I1Clh6bmRhZkR1LzU2V0ZzdXNCTFg1
T3NQMTg3eDBpODlLSUoyVjhkVWRQanQrb1hTYnpyZVQ3MVZtUVk5WE9kenlzcHN4Wk1YY3VLR2MK
VXpyZjVyaHNXYzZOQWNyRlJnNjMzYnBRWnNmMm4xM3Jkb1NsMjMyVzZ3M25aaFNMdHAzWHlvVS9a
dVhLV1hXVE96eVdvTngvTm9iTApVcTViWFBNb3dXWGhxcm11ZFYxbml0c1JIblRRUWZQOFM4dDFZ
Um56WWhrVG41VjdNcy9YcldVZVBwWUxieXk4TWNXYUcxM3dSdXAvCmVGT1Q0ZmFIejB2UW41V1c4
b0l0ZUlrQWdaWUZhdHpkSTA4eUpwbUxFV3dtcGVzc0xZV2NMcFBKUEhuTWtYMjZac3U5VGZzckJn
MWIKcXB2WjlsYXVtMjdqakZlbjJ6bGx6cWs2dWVwVXVtZHIxL0pXNXJmUmJaV2RwemZMYmYzU1Ja
NFdiN3FRTTFHbkJJRytGVnhiWkJ2ZAo1bmk5ekxUTldIQXVVWG5JSVlmMDV3V25UakpXbkt0dFpX
eGVPcnhBNmlWWHZNcDV0K21oeU9sdXVUcFdlaUhTS2gxZVN2VHduOXo4ClV1b2wrV1RHZmg0ekw2
SGNvN252cWNpdEhuT0ZyT0Y4aDgzbjRCTUVDT3lPQW9tM2liczdIWUNIWHlwanJia1VaY1lXMTV0
OU8veWMKNXdRSS9FOGdjdzB5TXpvVEhJZHpIUGdRSUxEOUJHb0ExZ1RhZm5Yckd4RWdRSUJBQXdJ
Q2NBT1ZwSWdFQ0JBZ3NQMEVOblVweXJXKwpmaTVTbi9IVm5aMFp2TloydlU3Z3lDS1FjZWVNQ2Ju
aTFaR2x4bjFQQWwyM0pRRTRwLzc0NGJBN0VkaDVnZUYxb1hkK0t6NUpnRUJMCkFycWdXNm90WlNW
QWdBQ0JiU01nQUcrYnF2UkZDQkFnUUtBbEFRRzRwZHBTVmdJRUNCRFlOZ0lDOExhcFNsK0VBQUVD
QkZvU0VJQmIKcWkxbEpVQ0FBSUZ0SXlBQWI1dXE5RVVJRUNCQW9DVUJBYmlsMmxKV0FnUUlFTmcy
QWdMd3RxbEtYNFFBQVFJRVdoSVFnRnVxTFdVbApRSUFBZ1cwaklBQnZtNnIwUlFnUUlFQ2dKUUVC
dUtYYVVsWUNCQWdRMkRZQ0F2QzJxVXBmaEFBQkFnUmFFdWh2eG5EZ2dRZTJWR1psCkpVQ0FBQUVD
elFvazV1Njc3NzdkSHJPU0RqamdnR2EvaUlJVElFQ0FBSUhXQlBiYmI3L3Uvd0VjQUxXREQ4Z1lI
QUFBQUFCSlJVNUUKcmtKZ2dnPT0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83068</attachid>
            <date>2011-02-19 03:24:41 -0800</date>
            <delta_ts>2011-02-23 12:25:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54800-20110219122437.patch</filename>
            <type>text/plain</type>
            <size>59871</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTE3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODggQEAKKzIwMTEtMDItMTkgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIDEuMSAybmQgRWRpdGlvbiBjb2xvci1wcm9w
LTA1LXQuc3ZnIGV4cG9zZXMgYnVnIGluICdjdXJyZW50Q29sb3InIGhhbmRsaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDgwMAorCisgICAgICAg
IFN0b3Agc3RvcmluZyBSZWZQdHI8U1ZHUGFpbnQ+IG9iamVjdHMgaW4gdGhlIFNWR1JlbmRlclN0
eWxlIGZvciBmaWxsL3N0cm9rZS4gVGhlc2UgYXJlIHRoZQorICAgICAgICBsYXN0IHR3byBvYmpl
Y3RzIHRoYXQgaGVsZCByZWZlcmVuY2VzIHRvIENTU1ZhbHVlcywgdGhleSdyZSBhbGwgZ29uZSBu
b3csIGFsaWduaW5nIGJldHRlciB3aXRoIFJlbmRlclN0eWxlLgorICAgICAgICBJdCdzIGFsc28g
ZGFuZ2Vyb3VzLCBhcyBhIFNWR1BhaW50IG9iamVjdCBjYW4gYmUgc2hhcmVkIGJ5IG11bHRpcGxl
IFNWR1JlbmRlclN0eWxlcyAoTWFwcGVkQXR0cmlidXRlLCB3aWxsCisgICAgICAgIG9uY2UgY3Jl
YXRlIGEgQ1NTU3R5bGVEZWNsYXJhdGlvbiBmb3IgZmlsbD0icmVkIiBhbmQgcmV1c2UgaXQgd2hl
cmUgcG9zc2libGUpLCBhbmQgaXQgd2FzIGVhc3kgdG8gbXV0YXRlIHRoZW0uCisgICAgICAgIElu
c3RlYWQgc3RvcmUgYSBDb2xvciwgYW4gVVJJIGFuZCBhIHBhaW50IHR5cGUgaW4gU1ZHUmVuZGVy
U3R5bGUsIGVub3VnaCB0byBjcmVhdGUgYSBTVkdQYWludCBvYmplY3QsIGlmIG5lZWRlZCAoZWcg
Zm9yIGNvbXB1dGVkIHN0eWxlcykuCisKKyAgICAgICAgPGcgY29sb3I9InJlZCI+PHJlY3QgZmls
bD0iY3VycmVudENvbG9yIi8+IGFscmVhZHkgd29ya2VkIGZpbmUgaW4gdHJ1bmssIGJ1dAorICAg
ICAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGNvbG9yPSJncmVlbiI+PHJlY3QgY29sb3I9InJl
ZCIvPiBwcm9jdWRlZCBhIHJlZCByZWN0YW5nbGUuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZml4
IHRvIGJ1ZyB3ZSBoYXZlIHRvIHJlc29sdmUgYWxsIGN1cnJlbnRDb2xvciB2YWx1ZXMgZm9yIFNW
R1BhaW50IG9iamVjdHMsIGluIFNWR0NTU1N0eWxlU2VsZWN0b3IsCisgICAgICAgIGFzIGl0J3Mg
YWxyZWFkeSBkb25lIGZvciBTVkdDb2xvciBvYmplY3RzIChzdG9wLWNvbG9yLCBmbG9vZC1jb2xv
ciwgZXRjLikgaW5zdGVhZCBvZiBpbiBSZW5kZXJTVkdSZXNvdXJjZTo6ZmlsbC9zdHJva2VQYWlu
dGluZ1Jlc291cmNlLAorICAgICAgICB3aGVuIHRyeWluZyB0byB1c2UgdGhlIHBhaW50IHNlcnZl
ci4gVGhlIGNvcnJlY3QgImNvbG9yIiB2YWx1ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZyb20gdGhl
IFJlbmRlclN0eWxlLCBpcyBkaXJlY3RseQorICAgICAgICBhdmFpbGFibGUgaW4gQ1NTU3R5bGVT
ZWxlY3RvcjogaW4gYXBwbHlQcm9wZXJ0eSBtX3N0eWxlLT5jb2xvcigpIGdpdmVzIHRoZSBkZXNp
cmVkIHZhbHVlLiBJbiBDU1NTdHlsZVNlbGVjdG9yIGl0J3MgaGFuZGxlZAorICAgICAgICBleGFj
dGx5IHRoaXMgd2F5IGZvciBub24tU1ZHIGN1cnJlbnRDb2xvciBwcm9wZXJ0aWVzLgorCisgICAg
ICAgIFdoaWxlIEkgd2FzIGF0IGl0IGNsZWFudXAgU1ZHUGFpbnQgJiBTVkdDb2xvciwgd2hpY2gg
Ym90aCB3ZXJlIGEgYml0IGNvbnZvbHV0ZWQuCisgICAgICAgIEZpeGVzIG9uZSBtb3JlIHRlc3Qg
b2YgdGhlIFNWRyAxLjEgMm5kIEVkaXRpb24gdGVzdHN1aXRlLgorCisgICAgICAgIFRlc3Q6IHN2
Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQuc3ZnCisKKyAgICAgICAgKiBjc3MvU1ZH
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJvcGVydHlDU1NWYWx1ZSk6IENyZWF0ZSBu
ZXcgU1ZHUGFpbnQgb2JqZWN0cywganVzdCBsaWtlIGl0J3MgZG9uZSBmb3IgYWxsIG90aGVyIHBy
b3BlcnRpZXMuCisgICAgICAgICogY3NzL1NWR0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOiBVc2UgbmV3IFNWR1BhaW50IGNyZWF0ZSgp
IGZ1bmN0aW9ucywgbm90IHJlbHlpbmcgYW55bW9yZSBvbiBzaXggZGlmZmVyZW50IGNyZWF0ZSgp
IG92ZXJsb2Fkcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdQYWludCk6
IERpdHRvLgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOiBSZXNvbHZlIFNW
R1BhaW50IGN1cnJlbnRDb2xvcnMsIGp1c3QgbGlrZSBpdCdzIGRvbmUgZm9yIFNWR0NvbG9yLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZGlmZik6IFN0eWxlRmlsbERhdGEncyBSZWZQdHI8U1ZH
UGFpbnQ+IGlzIGdvbmUsIHJlcGxhY2VkIGJ5IHBhaW50VHlwZS9wYWludFVyaS9wYWludENvbG9y
LCBhZGFwdCB0aGUgY29kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGUuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZp
bGxQYWludFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxG
aWxsUGFpbnRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bEZpbGxQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bFN0cm9rZVBhaW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5p
dGlhbFN0cm9rZVBhaW50Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6
OmluaXRpYWxTdHJva2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHls
ZTo6c2V0RmlsbFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzZXRT
dHJva2VQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50Q29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmZpbGxQYWludFVyaSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c3Ryb2tlUGFpbnRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZW5kZXJTdHlsZTo6aGFzU3Ryb2tlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRl
clN0eWxlOjpoYXNGaWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGVEZWZzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbGxEYXRhOjpTdHls
ZUZpbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRmlsbERhdGE6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9rZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmg6IERpdHRvLgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwOiBEaXR0by4gKCsgUmVtb3ZlIGN1
cnJlbnRDb2xvciBzdXBwb3J0LCBhbGwgaGFuZGxlZCBpbiB0aGUgQ1NTIGxldmVsIG5vdykuCisg
ICAgICAgIChXZWJDb3JlOjpyZXF1ZXN0UGFpbnRpbmdSZXNvdXJjZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlbnRJbnRvTWFza0lt
YWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHA6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZXNvdXJjZXM6OmJ1aWxkQ2FjaGVkUmVzb3VyY2VzKToKKyAgICAgICAg
KiBzdmcvU1ZHQ29sb3IuY3BwOiBDbGVhbnVwIGNvZGUuCisgICAgICAgICogc3ZnL1NWR0NvbG9y
Lmg6IERpdHRvLiAoKyBBZGQgc2V0Q29sb3IoY29uc3QgQ29sb3ImKSBzZXR0ZXI9LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ29sb3I6OmNvbG9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
b2xvcjo6c2V0Q29sb3IpOgorICAgICAgICAqIHN2Zy9TVkdQYWludC5jcHA6IFJlbW92ZSBzdGF0
aWMgUmVmUHRycywgZGVmYXVsdEZpbGwvZGVmYXVsdFN0cm9rZSwgbm8gbG9uZ2VyIHVzZWQuIElu
bGluZSB1cmkvc2V0VXJpIGZ1bmN0aW9ucywgcmVwbGFjZSBzaXggY29uc3RydWN0b3JzIHdpdGgg
b25lLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OlNWR1BhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50OjpzZXRQYWludCk6CisgICAgICAgICogc3ZnL1NWR1BhaW50Lmg6IFJl
cGxhY2Ugc2l4IG92ZXJsb2FkZWQgY3JlYXRlKCkgdmFyaWFudHMsIGJ5IHNwZWNpZmljIGNvbnN0
cnVjdG9ycyB0aGF0IGFyZSBtb3JlIGV4cGxhaW5hdG9yeS4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhaW50OjpjcmVhdGVVbmtub3duKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpjcmVh
dGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpjcmVhdGVDdXJyZW50Q29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OmNyZWF0ZUNvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50OjpjcmVhdGVVUkkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6
OmNyZWF0ZVVSSUFuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50Ojp1cmkpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OnNldFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYWludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50Ojppc1NWR1BhaW50
KToKKwogMjAxMS0wMi0xOSAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZp
c2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTVkdQYWludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTEzMyw3ICsxMzQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0
eWxlRGVjCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdG9wQ29sb3I6CiAgICAgICAgICAgICBy
ZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKHN2Z1N0eWxlLT5zdG9wQ29sb3Io
KS5yZ2IoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgotICAgICAgICAgICAgcmV0
dXJuIHN2Z1N0eWxlLT5maWxsUGFpbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBTVkdQYWludDo6
Y3JlYXRlKHN2Z1N0eWxlLT5maWxsUGFpbnRUeXBlKCksIHN2Z1N0eWxlLT5maWxsUGFpbnRVcmko
KSwgc3ZnU3R5bGUtPmZpbGxQYWludENvbG9yKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
S2VybmluZzoKICAgICAgICAgICAgIHJldHVybiBTVkdMZW5ndGg6OnRvQ1NTUHJpbWl0aXZlVmFs
dWUoc3ZnU3R5bGUtPmtlcm5pbmcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJrZXJF
bmQ6CkBAIC0xNDksNyArMTUwLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlYwogICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHN2Z1N0eWxlLT5tYXJrZXJTdGFydFJlc291cmNlKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
VVJJKTsKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRp
ZmllcihDU1NWYWx1ZU5vbmUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlOgotICAg
ICAgICAgICAgcmV0dXJuIHN2Z1N0eWxlLT5zdHJva2VQYWludCgpOworICAgICAgICAgICAgcmV0
dXJuIFNWR1BhaW50OjpjcmVhdGUoc3ZnU3R5bGUtPnN0cm9rZVBhaW50VHlwZSgpLCBzdmdTdHls
ZS0+c3Ryb2tlUGFpbnRVcmkoKSwgc3ZnU3R5bGUtPnN0cm9rZVBhaW50Q29sb3IoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VEYXNoYXJyYXk6CiAgICAgICAgICAgICByZXR1cm4g
c3Ryb2tlRGFzaEFycmF5VG9DU1NWYWx1ZUxpc3Qoc3ZnU3R5bGUtPnN0cm9rZURhc2hBcnJheSgp
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZURhc2hvZmZzZXQ6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDE3ICsxNzks
MTcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUoaW50IHByb3BJZAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlTdHJva2U6ICAgICAgICAgICAgICAgLy8gPHBhaW50PiB8IGluaGVyaXQKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAg
ICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGUoU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfTk9ORSk7CisgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRl
Tm9uZSgpOwogICAgICAgICAgICAgZWxzZSBpZiAoaWQgPT0gQ1NTVmFsdWVDdXJyZW50Y29sb3Ip
Ci0gICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKFNWR1BhaW50
OjpTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUik7CisgICAgICAgICAgICAgICAgcGFyc2VkVmFs
dWUgPSBTVkdQYWludDo6Y3JlYXRlQ3VycmVudENvbG9yKCk7CiAgICAgICAgICAgICBlbHNlIGlm
ICgoaWQgPj0gQ1NTVmFsdWVBY3RpdmVib3JkZXIgJiYgaWQgPD0gQ1NTVmFsdWVXaW5kb3d0ZXh0
KSB8fCBpZCA9PSBDU1NWYWx1ZU1lbnUpCi0gICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBT
VkdQYWludDo6Y3JlYXRlKFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+c3lzdGVtQ29sb3Io
aWQpKTsKKyAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGVDb2xv
cihSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnN5c3RlbUNvbG9yKGlkKSk7CiAgICAgICAg
ICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkg
ewogICAgICAgICAgICAgICAgIFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwogICAgICAg
ICAgICAgICAgIGlmIChtX3ZhbHVlTGlzdC0+bmV4dCgpICYmIHBhcnNlQ29sb3JGcm9tVmFsdWUo
bV92YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFyc2Vk
VmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcsIGMpOworICAgICAgICAgICAg
ICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGVVUklBbmRDb2xvcih2YWx1ZS0+
c3RyaW5nLCBjKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
cGFyc2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlKFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VS
SSwgdmFsdWUtPnN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZH
UGFpbnQ6OmNyZWF0ZVVSSSh2YWx1ZS0+c3RyaW5nKTsKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VTVkdQYWludCgpOwogCkBAIC0zMzksOCAr
MzM5LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVNWRwogewogICAg
IFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwogICAgIGlmICghcGFyc2VDb2xvckZyb21W
YWx1ZShtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLCBjKSkKLSAgICAgICAgcmV0dXJuIFNWR1BhaW50
OjpjcmVhdGUoKTsKLSAgICByZXR1cm4gU1ZHUGFpbnQ6OmNyZWF0ZShDb2xvcihjKSk7CisgICAg
ICAgIHJldHVybiBTVkdQYWludDo6Y3JlYXRlVW5rbm93bigpOworICAgIHJldHVybiBTVkdQYWlu
dDo6Y3JlYXRlQ29sb3IoQ29sb3IoYykpOwogfQogCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQ
YXJzZXI6OnBhcnNlU1ZHQ29sb3IoKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0
eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwxNyArMjMxLDM2
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgLy8g
ZW5kIG9mIGlkZW50IG9ubHkgcHJvcGVydGllcwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rmls
bDoKICAgICAgICAgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoZmls
bFBhaW50LCBGaWxsUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkK
LSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBhaW50KHN0YXRpY19jYXN0PFNWR1Bh
aW50Kj4odmFsdWUpKTsKKyAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnUGFyZW50U3R5bGUgPSBtX3BhcmVudFN0eWxl
LT5zdmdTdHlsZSgpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3Zn
UGFyZW50U3R5bGUtPmZpbGxQYWludFR5cGUoKSwgc3ZnUGFyZW50U3R5bGUtPmZpbGxQYWludENv
bG9yKCksIHN2Z1BhcmVudFN0eWxlLT5maWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAg
ICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxGaWxsUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50Q29sb3Io
KSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1NWR1Bh
aW50KCkpIHsKKyAgICAgICAgICAgICAgICBTVkdQYWludCogc3ZnUGFpbnQgPSBzdGF0aWNfY2Fz
dDxTVkdQYWludCo+KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBh
aW50KHN2Z1BhaW50LT5wYWludFR5cGUoKSwgY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZShzdmdQ
YWludCwgbV9zdHlsZS0+Y29sb3IoKSksIHN2Z1BhaW50LT51cmkoKSk7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
U3Ryb2tlOgogICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElB
TChzdHJva2VQYWludCwgU3Ryb2tlUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZH
UGFpbnQoKSkKLSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQoc3RhdGlj
X2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
aXNJbmhlcml0KSB7CisgICAgICAgICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1Bh
cmVudFN0eWxlID0gbV9wYXJlbnRTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBz
dmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQoc3ZnUGFyZW50U3R5bGUtPnN0cm9rZVBhaW50VHlwZSgp
LCBzdmdQYXJlbnRTdHlsZS0+c3Ryb2tlUGFpbnRDb2xvcigpLCBzdmdQYXJlbnRTdHlsZS0+c3Ry
b2tlUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5z
ZXRTdHJva2VQYWludChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VHlwZSgpLCBT
VkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSwgU1ZHUmVuZGVyU3R5bGU6
OmluaXRpYWxTdHJva2VQYWludFVyaSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkgeworICAgICAg
ICAgICAgICAgIFNWR1BhaW50KiBzdmdQYWludCA9IHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFs
dWUpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQYWludChzdmdQYWludC0+
cGFpbnRUeXBlKCksIGNvbG9yRnJvbVNWR0NvbG9yQ1NTVmFsdWUoc3ZnUGFpbnQsIG1fc3R5bGUt
PmNvbG9yKCkpLCBzdmdQYWludC0+dXJpKCkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZVdpZHRoOgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5
bGUuY3BwCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksOSBAQCBT
dHlsZURpZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uCiAgICAgLy8gU29tZSBzdHJv
a2UgcHJvcGVydGllcywgcmVxdWlyZXMgcmVsYXlvdXRzLCBhcyB0aGUgY2FjaGVkIHN0cm9rZSBi
b3VuZGFyaWVzIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkLgogICAgIGlmIChzdHJva2UgIT0gb3Ro
ZXItPnN0cm9rZSkgewogICAgICAgICBpZiAoc3Ryb2tlLT53aWR0aCAhPSBvdGhlci0+c3Ryb2tl
LT53aWR0aAotICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludCAhPSBvdGhlci0+c3Ryb2tlLT5w
YWludAorICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFR5cGUgIT0gb3RoZXItPnN0cm9rZS0+
cGFpbnRUeXBlCisgICAgICAgICAgICB8fCBzdHJva2UtPnBhaW50Q29sb3IgIT0gb3RoZXItPnN0
cm9rZS0+cGFpbnRDb2xvcgorICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFVyaSAhPSBvdGhl
ci0+c3Ryb2tlLT5wYWludFVyaQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5taXRlckxpbWl0ICE9
IG90aGVyLT5zdHJva2UtPm1pdGVyTGltaXQKICAgICAgICAgICAgIHx8IHN0cm9rZS0+ZGFzaEFy
cmF5ICE9IG90aGVyLT5zdHJva2UtPmRhc2hBcnJheQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5k
YXNoT2Zmc2V0ICE9IG90aGVyLT5zdHJva2UtPmRhc2hPZmZzZXQpCkBAIC0xOTEsNyArMTkzLDcg
QEAgU3R5bGVEaWZmZXJlbmNlIFNWR1JlbmRlclN0eWxlOjpkaWZmKGNvbgogICAgIH0KIAogICAg
IC8vIElmIGZpbGwgY2hhbmdlcywgd2UganVzdCBuZWVkIHRvIHJlcGFpbnQuIEZpbGwgYm91bmRh
cmllcyBhcmUgbm90IGluZmx1ZW5jZWQgYnkgdGhpcywgb25seSBieSB0aGUgUGF0aCwgdGhhdCBS
ZW5kZXJTVkdQYXRoIGNvbnRhaW5zLgotICAgIGlmIChmaWxsICE9IG90aGVyLT5maWxsKQorICAg
IGlmIChmaWxsLT5wYWludFR5cGUgIT0gb3RoZXItPmZpbGwtPnBhaW50VHlwZSB8fCBmaWxsLT5w
YWludENvbG9yICE9IG90aGVyLT5maWxsLT5wYWludENvbG9yIHx8IGZpbGwtPnBhaW50VXJpICE9
IG90aGVyLT5maWxsLT5wYWludFVyaSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJl
cGFpbnQ7CiAKICAgICAvLyBJZiBncmFkaWVudCBzdG9wcyBjaGFuZ2UsIHdlIGp1c3QgbmVlZCB0
byByZXBhaW50LiBTdHlsZSB1cGRhdGVzIGFyZSBhbHJlYWR5IGhhbmRsZWQgdGhyb3VnaCBSZW5k
ZXJTVkdHcmFkaWVudFNUb3AuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzEs
OSArNzEsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBFR2x5cGhPcmllbnRhdGlvbiBpbml0aWFs
R2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwoKSB7IHJldHVybiBHT18wREVHOyB9CiAgICAgc3Rh
dGljIEVHbHlwaE9yaWVudGF0aW9uIGluaXRpYWxHbHlwaE9yaWVudGF0aW9uVmVydGljYWwoKSB7
IHJldHVybiBHT19BVVRPOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxGaWxsT3BhY2l0eSgp
IHsgcmV0dXJuIDEuMGY7IH0KLSAgICBzdGF0aWMgU1ZHUGFpbnQqIGluaXRpYWxGaWxsUGFpbnQo
KSB7IHJldHVybiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKTsgfQorICAgIHN0YXRpYyBTVkdQYWlu
dDo6U1ZHUGFpbnRUeXBlIGluaXRpYWxGaWxsUGFpbnRUeXBlKCkgeyByZXR1cm4gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfUkdCQ09MT1I7IH0KKyAgICBzdGF0aWMgQ29sb3IgaW5pdGlhbEZpbGxQ
YWludENvbG9yKCkgeyByZXR1cm4gQ29sb3I6OmJsYWNrOyB9CisgICAgc3RhdGljIFN0cmluZyBp
bml0aWFsRmlsbFBhaW50VXJpKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICBzdGF0aWMgZmxv
YXQgaW5pdGlhbFN0cm9rZU9wYWNpdHkoKSB7IHJldHVybiAxLjBmOyB9Ci0gICAgc3RhdGljIFNW
R1BhaW50KiBpbml0aWFsU3Ryb2tlUGFpbnQoKSB7IHJldHVybiBTVkdQYWludDo6ZGVmYXVsdFN0
cm9rZSgpOyB9CisgICAgc3RhdGljIFNWR1BhaW50OjpTVkdQYWludFR5cGUgaW5pdGlhbFN0cm9r
ZVBhaW50VHlwZSgpIHsgcmV0dXJuIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KKyAg
ICBzdGF0aWMgQ29sb3IgaW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSB7IHJldHVybiBDb2xvcigp
OyB9CisgICAgc3RhdGljIFN0cmluZyBpbml0aWFsU3Ryb2tlUGFpbnRVcmkoKSB7IHJldHVybiBT
dHJpbmcoKTsgfQogICAgIHN0YXRpYyBWZWN0b3I8U1ZHTGVuZ3RoPiBpbml0aWFsU3Ryb2tlRGFz
aEFycmF5KCkgeyByZXR1cm4gVmVjdG9yPFNWR0xlbmd0aD4oKTsgfQogICAgIHN0YXRpYyBmbG9h
dCBpbml0aWFsU3Ryb2tlTWl0ZXJMaW1pdCgpIHsgcmV0dXJuIDQuMGY7IH0KICAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbFN0b3BPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQpAQCAtMTUwLDEwICsx
NTQsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgZmlsbC5hY2Nlc3MoKS0+b3BhY2l0eSA9IG9i
ajsKICAgICB9CiAKLSAgICB2b2lkIHNldEZpbGxQYWludChQYXNzUmVmUHRyPFNWR1BhaW50PiBv
YmopCisgICAgdm9pZCBzZXRGaWxsUGFpbnQoU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSB0eXBlLCBj
b25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFN0cmluZyYgdXJpKQogICAgIHsKLSAgICAgICAgaWYg
KCEoZmlsbC0+cGFpbnQgPT0gb2JqKSkKLSAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50
ID0gb2JqOworICAgICAgICBpZiAoIShmaWxsLT5wYWludFR5cGUgPT0gdHlwZSkpCisgICAgICAg
ICAgICBmaWxsLmFjY2VzcygpLT5wYWludFR5cGUgPSB0eXBlOworICAgICAgICBpZiAoIShmaWxs
LT5wYWludENvbG9yID09IGNvbG9yKSkKKyAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50
Q29sb3IgPSBjb2xvcjsKKyAgICAgICAgaWYgKCEoZmlsbC0+cGFpbnRVcmkgPT0gdXJpKSkKKyAg
ICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50VXJpID0gdXJpOwogICAgIH0KIAogICAgIHZv
aWQgc2V0U3Ryb2tlT3BhY2l0eShmbG9hdCBvYmopCkBAIC0xNjIsMTAgKzE3MCwxNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPm9wYWNpdHkgPSBvYmo7CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRTdHJva2VQYWludChQYXNzUmVmUHRyPFNWR1BhaW50PiBvYmopCisgICAg
dm9pZCBzZXRTdHJva2VQYWludChTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHR5cGUsIGNvbnN0IENv
bG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB1cmkpCiAgICAgewotICAgICAgICBpZiAoIShzdHJv
a2UtPnBhaW50ID09IG9iaikpCi0gICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPnBhaW50ID0g
b2JqOworICAgICAgICBpZiAoIShzdHJva2UtPnBhaW50VHlwZSA9PSB0eXBlKSkKKyAgICAgICAg
ICAgIHN0cm9rZS5hY2Nlc3MoKS0+cGFpbnRUeXBlID0gdHlwZTsKKyAgICAgICAgaWYgKCEoc3Ry
b2tlLT5wYWludENvbG9yID09IGNvbG9yKSkKKyAgICAgICAgICAgIHN0cm9rZS5hY2Nlc3MoKS0+
cGFpbnRDb2xvciA9IGNvbG9yOworICAgICAgICBpZiAoIShzdHJva2UtPnBhaW50VXJpID09IHVy
aSkpCisgICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPnBhaW50VXJpID0gdXJpOwogICAgIH0K
IAogICAgIHZvaWQgc2V0U3Ryb2tlRGFzaEFycmF5KGNvbnN0IFZlY3RvcjxTVkdMZW5ndGg+JiBv
YmopCkBAIC0yOTMsOSArMzA1LDEzIEBAIHB1YmxpYzoKICAgICBFR2x5cGhPcmllbnRhdGlvbiBn
bHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIChFR2x5cGhPcmllbnRh
dGlvbikgc3ZnX2luaGVyaXRlZF9mbGFncy5fZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw7IH0K
ICAgICBFR2x5cGhPcmllbnRhdGlvbiBnbHlwaE9yaWVudGF0aW9uVmVydGljYWwoKSBjb25zdCB7
IHJldHVybiAoRUdseXBoT3JpZW50YXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2dseXBoT3Jp
ZW50YXRpb25WZXJ0aWNhbDsgfQogICAgIGZsb2F0IGZpbGxPcGFjaXR5KCkgY29uc3QgeyByZXR1
cm4gZmlsbC0+b3BhY2l0eTsgfQotICAgIFNWR1BhaW50KiBmaWxsUGFpbnQoKSBjb25zdCB7IHJl
dHVybiBmaWxsLT5wYWludC5nZXQoKTsgfQorICAgIGNvbnN0IFNWR1BhaW50OjpTVkdQYWludFR5
cGUmIGZpbGxQYWludFR5cGUoKSBjb25zdCB7IHJldHVybiBmaWxsLT5wYWludFR5cGU7IH0KKyAg
ICBjb25zdCBDb2xvciYgZmlsbFBhaW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBmaWxsLT5wYWlu
dENvbG9yOyB9CisgICAgY29uc3QgU3RyaW5nJiBmaWxsUGFpbnRVcmkoKSBjb25zdCB7IHJldHVy
biBmaWxsLT5wYWludFVyaTsgfSAgICAKICAgICBmbG9hdCBzdHJva2VPcGFjaXR5KCkgY29uc3Qg
eyByZXR1cm4gc3Ryb2tlLT5vcGFjaXR5OyB9Ci0gICAgU1ZHUGFpbnQqIHN0cm9rZVBhaW50KCkg
Y29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludC5nZXQoKTsgfQorICAgIGNvbnN0IFNWR1BhaW50
OjpTVkdQYWludFR5cGUmIHN0cm9rZVBhaW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+
cGFpbnRUeXBlOyB9CisgICAgY29uc3QgQ29sb3ImIHN0cm9rZVBhaW50Q29sb3IoKSBjb25zdCB7
IHJldHVybiBzdHJva2UtPnBhaW50Q29sb3I7IH0KKyAgICBjb25zdCBTdHJpbmcmIHN0cm9rZVBh
aW50VXJpKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludFVyaTsgfQogICAgIFZlY3RvcjxT
VkdMZW5ndGg+IHN0cm9rZURhc2hBcnJheSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+ZGFzaEFy
cmF5OyB9CiAgICAgZmxvYXQgc3Ryb2tlTWl0ZXJMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIHN0cm9r
ZS0+bWl0ZXJMaW1pdDsgfQogICAgIFNWR0xlbmd0aCBzdHJva2VXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIHN0cm9rZS0+d2lkdGg7IH0KQEAgLTMyMCw4ICszMzYsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXNNYXNrZXIoKSBjb25zdCB7IHJldHVybiAhbWFza2VyUmVzb3VyY2UoKS5pc0VtcHR5KCk7
IH0KICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuICFmaWx0ZXJSZXNvdXJjZSgp
LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuICFtYXJr
ZXJTdGFydFJlc291cmNlKCkuaXNFbXB0eSgpIHx8ICFtYXJrZXJNaWRSZXNvdXJjZSgpLmlzRW1w
dHkoKSB8fCAhbWFya2VyRW5kUmVzb3VyY2UoKS5pc0VtcHR5KCk7IH0KLSAgICBib29sIGhhc1N0
cm9rZSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZVBhaW50KCktPnBhaW50VHlwZSgpICE9IFNWR1Bh
aW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KLSAgICBib29sIGhhc0ZpbGwoKSBjb25zdCB7IHJl
dHVybiBmaWxsUGFpbnQoKS0+cGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVf
Tk9ORTsgfQorICAgIGJvb2wgaGFzU3Ryb2tlKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlUGFpbnRU
eXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORTsgfQorICAgIGJvb2wgaGFzRmls
bCgpIGNvbnN0IHsgcmV0dXJuIGZpbGxQYWludFR5cGUoKSAhPSBTVkdQYWludDo6U1ZHX1BBSU5U
VFlQRV9OT05FOyB9CiAgICAgYm9vbCBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoKSBjb25zdCB7IHJl
dHVybiB3cml0aW5nTW9kZSgpID09IFdNX1RCUkwgfHwgd3JpdGluZ01vZGUoKSA9PSBXTV9UQjsg
fQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGVEZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsMzUgKzM3LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3R5bGVG
aWxsRGF0YTo6U3R5bGVGaWxsRGF0YSgpCiAgICAgOiBvcGFjaXR5KFNWR1JlbmRlclN0eWxlOjpp
bml0aWFsRmlsbE9wYWNpdHkoKSkKLSAgICAsIHBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0aWFs
RmlsbFBhaW50KCkpCisgICAgLCBwYWludFR5cGUoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxs
UGFpbnRUeXBlKCkpCisgICAgLCBwYWludENvbG9yKFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmls
bFBhaW50Q29sb3IoKSkKKyAgICAsIHBhaW50VXJpKFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmls
bFBhaW50VXJpKCkpCiB7CiB9CiAKIFN0eWxlRmlsbERhdGE6OlN0eWxlRmlsbERhdGEoY29uc3Qg
U3R5bGVGaWxsRGF0YSYgb3RoZXIpCiAgICAgOiBSZWZDb3VudGVkPFN0eWxlRmlsbERhdGE+KCkK
ICAgICAsIG9wYWNpdHkob3RoZXIub3BhY2l0eSkKLSAgICAsIHBhaW50KG90aGVyLnBhaW50KQor
ICAgICwgcGFpbnRUeXBlKG90aGVyLnBhaW50VHlwZSkKKyAgICAsIHBhaW50Q29sb3Iob3RoZXIu
cGFpbnRDb2xvcikKKyAgICAsIHBhaW50VXJpKG90aGVyLnBhaW50VXJpKQogewogfQogCiBib29s
IFN0eWxlRmlsbERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWxsRGF0YSYgb3RoZXIpIGNv
bnN0CiB7Ci0gICAgaWYgKG9wYWNpdHkgIT0gb3RoZXIub3BhY2l0eSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKCFwYWludCB8fCAhb3RoZXIucGFpbnQpCi0gICAgICAgIHJldHVy
biBwYWludCA9PSBvdGhlci5wYWludDsKLQotICAgIGlmIChwYWludC0+cGFpbnRUeXBlKCkgIT0g
b3RoZXIucGFpbnQtPnBhaW50VHlwZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAocGFpbnQtPnBhaW50VHlwZSgpID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSSkKLSAg
ICAgICAgcmV0dXJuIHBhaW50LT51cmkoKSA9PSBvdGhlci5wYWludC0+dXJpKCk7Ci0KLSAgICBp
ZiAocGFpbnQtPnBhaW50VHlwZSgpID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JHQkNPTE9S
KQotICAgICAgICByZXR1cm4gcGFpbnQtPmNvbG9yKCkgPT0gb3RoZXIucGFpbnQtPmNvbG9yKCk7
Ci0KLSAgICByZXR1cm4gcGFpbnQgPT0gb3RoZXIucGFpbnQ7CisgICAgcmV0dXJuIG9wYWNpdHkg
PT0gb3RoZXIub3BhY2l0eSAKKyAgICAgICAgJiYgcGFpbnRUeXBlID09IG90aGVyLnBhaW50VHlw
ZQorICAgICAgICAmJiBwYWludENvbG9yID09IG90aGVyLnBhaW50Q29sb3IKKyAgICAgICAgJiYg
cGFpbnRVcmkgPT0gb3RoZXIucGFpbnRVcmk7CiB9CiAKIFN0eWxlU3Ryb2tlRGF0YTo6U3R5bGVT
dHJva2VEYXRhKCkKQEAgLTc0LDcgKzY2LDkgQEAgU3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9r
ZURhdGEoKQogICAgICwgd2lkdGgoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VXaWR0aCgp
KQogICAgICwgZGFzaE9mZnNldChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZURhc2hPZmZz
ZXQoKSkKICAgICAsIGRhc2hBcnJheShTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZURhc2hB
cnJheSgpKQotICAgICwgcGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWludCgp
KQorICAgICwgcGFpbnRUeXBlKFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRUeXBl
KCkpCisgICAgLCBwYWludENvbG9yKFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRD
b2xvcigpKQorICAgICwgcGFpbnRVcmkoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWlu
dFVyaSgpKQogewogfQogCkBAIC04NSwxOCArNzksMjIgQEAgU3R5bGVTdHJva2VEYXRhOjpTdHls
ZVN0cm9rZURhdGEoY29uc3QgUwogICAgICwgd2lkdGgob3RoZXIud2lkdGgpCiAgICAgLCBkYXNo
T2Zmc2V0KG90aGVyLmRhc2hPZmZzZXQpCiAgICAgLCBkYXNoQXJyYXkob3RoZXIuZGFzaEFycmF5
KQotICAgICwgcGFpbnQob3RoZXIucGFpbnQpCisgICAgLCBwYWludFR5cGUob3RoZXIucGFpbnRU
eXBlKQorICAgICwgcGFpbnRDb2xvcihvdGhlci5wYWludENvbG9yKQorICAgICwgcGFpbnRVcmko
b3RoZXIucGFpbnRVcmkpCiB7CiB9CiAKIGJvb2wgU3R5bGVTdHJva2VEYXRhOjpvcGVyYXRvcj09
KGNvbnN0IFN0eWxlU3Ryb2tlRGF0YSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBhaW50
ID09IG90aGVyLnBhaW50Ci0gICAgICAgICYmIHdpZHRoID09IG90aGVyLndpZHRoCisgICAgcmV0
dXJuIHdpZHRoID09IG90aGVyLndpZHRoCiAgICAgICAgICYmIG9wYWNpdHkgPT0gb3RoZXIub3Bh
Y2l0eQogICAgICAgICAmJiBtaXRlckxpbWl0ID09IG90aGVyLm1pdGVyTGltaXQKICAgICAgICAg
JiYgZGFzaE9mZnNldCA9PSBvdGhlci5kYXNoT2Zmc2V0Ci0gICAgICAgICYmIGRhc2hBcnJheSA9
PSBvdGhlci5kYXNoQXJyYXk7CisgICAgICAgICYmIGRhc2hBcnJheSA9PSBvdGhlci5kYXNoQXJy
YXkKKyAgICAgICAgJiYgcGFpbnRUeXBlID09IG90aGVyLnBhaW50VHlwZQorICAgICAgICAmJiBw
YWludENvbG9yID09IG90aGVyLnBhaW50Q29sb3IKKyAgICAgICAgJiYgcGFpbnRVcmkgPT0gb3Ro
ZXIucGFpbnRVcmk7CiB9CiAKIFN0eWxlU3RvcERhdGE6OlN0eWxlU3RvcERhdGEoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURl
ZnMuaAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGVEZWZzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDggQEAKICNk
ZWZpbmUgU1ZHUmVuZGVyU3R5bGVEZWZzX2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAi
Q29sb3IuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgorI2luY2x1ZGUgIlNWR1BhaW50LmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtOTgs
NyArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTdHlsZUZpbGxEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU3R5bGVGaWxsRGF0YSk7IH0KICAgICAgICAgUGFzc1JlZlB0cjxTdHlsZUZpbGxEYXRhPiBj
b3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlRmlsbERhdGEoKnRoaXMpKTsg
fQotICAgICAgICAKKwogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWxsRGF0
YSYpIGNvbnN0OwogICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVGaWxsRGF0YSYg
b3RoZXIpIGNvbnN0CiAgICAgICAgIHsKQEAgLTEwNiw3ICsxMDUsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIH0KIAogICAgICAgICBmbG9hdCBvcGFjaXR5OwotICAgICAgICBSZWZQ
dHI8U1ZHUGFpbnQ+IHBhaW50OworICAgICAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50
VHlwZTsKKyAgICAgICAgQ29sb3IgcGFpbnRDb2xvcjsKKyAgICAgICAgU3RyaW5nIHBhaW50VXJp
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3R5bGVGaWxsRGF0YSgpOwpAQCAtMTMxLDcgKzEz
Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU1ZHTGVuZ3RoIGRhc2hPZmZzZXQ7
CiAgICAgICAgIFZlY3RvcjxTVkdMZW5ndGg+IGRhc2hBcnJheTsKIAotICAgICAgICBSZWZQdHI8
U1ZHUGFpbnQ+IHBhaW50OworICAgICAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50VHlw
ZTsKKyAgICAgICAgQ29sb3IgcGFpbnRDb2xvcjsKKyAgICAgICAgU3RyaW5nIHBhaW50VXJpOwog
CiAgICAgcHJpdmF0ZTogICAgICAgIAogICAgICAgICBTdHlsZVN0cm9rZURhdGEoKTsKQEAgLTI2
Miw1ICsyNjUsNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQotCiAjZW5kaWYgLy8gU1ZHUmVuZGVyU3R5bGVEZWZz
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2UuY3BwCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwzMyArNTEs
MzYgQEAgc3RhdGljIGlubGluZSBSZW5kZXJTVkdSZXNvdXJjZSogcmVxdWVzdAogICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgU1ZHUGFpbnQqIHBhaW50ID0gbW9kZSA9PSBBcHBs
eVRvRmlsbE1vZGUgPyBzdmdTdHlsZS0+ZmlsbFBhaW50KCkgOiBzdmdTdHlsZS0+c3Ryb2tlUGFp
bnQoKTsKLSAgICBBU1NFUlQocGFpbnQpOwotCi0gICAgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSBw
YWludFR5cGUgPSBwYWludC0+cGFpbnRUeXBlKCk7CisgICAgYm9vbCBhcHBseVRvRmlsbCA9IG1v
ZGUgPT0gQXBwbHlUb0ZpbGxNb2RlOworICAgIFNWR1BhaW50OjpTVkdQYWludFR5cGUgcGFpbnRU
eXBlID0gYXBwbHlUb0ZpbGwgPyBzdmdTdHlsZS0+ZmlsbFBhaW50VHlwZSgpIDogc3ZnU3R5bGUt
PnN0cm9rZVBhaW50VHlwZSgpOwogICAgIGlmIChwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19Q
QUlOVFRZUEVfTk9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBDb2xvciBjb2xvcjsKLSAg
ICBpZiAocGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JHQkNPTE9SCi0gICAg
ICAgIHx8IHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0ND
T0xPUgotICAgICAgICB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJ
X1JHQkNPTE9SCi0gICAgICAgIHx8IHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9VUklfUkdCQ09MT1JfSUNDQ09MT1IpCi0gICAgICAgIGNvbG9yID0gcGFpbnQtPmNvbG9yKCk7
Ci0gICAgZWxzZSBpZiAocGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX0NVUlJF
TlRDT0xPUiB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJX0NVUlJF
TlRDT0xPUikKLSAgICAgICAgY29sb3IgPSBzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5Q29sb3IpOworICAgIHN3aXRjaCAocGFpbnRUeXBlKSB7CisgICAgY2FzZSBTVkdQ
YWludDo6U1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZH
X1BBSU5UVFlQRV9SR0JDT0xPUjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JH
QkNPTE9SX0lDQ0NPTE9SOgorICAgIGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJX0NV
UlJFTlRDT0xPUjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xP
UjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xP
UjoKKyAgICAgICAgY29sb3IgPSBhcHBseVRvRmlsbCA/IHN2Z1N0eWxlLT5maWxsUGFpbnRDb2xv
cigpIDogc3ZnU3R5bGUtPnN0cm9rZVBhaW50Q29sb3IoKTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKKyAgICB9CiAKICAgICBpZiAoc3R5bGUtPmluc2lkZUxpbmsoKSA9PSBJbnNpZGVW
aXNpdGVkTGluaykgewogICAgICAgICBSZW5kZXJTdHlsZSogdmlzaXRlZFN0eWxlID0gc3R5bGUt
PmdldENhY2hlZFBzZXVkb1N0eWxlKFZJU0lURURfTElOSyk7CiAgICAgICAgIEFTU0VSVCh2aXNp
dGVkU3R5bGUpOwogCi0gICAgICAgIGlmIChTVkdQYWludCogdmlzaXRlZFBhaW50ID0gbW9kZSA9
PSBBcHBseVRvRmlsbE1vZGUgPyB2aXNpdGVkU3R5bGUtPnN2Z1N0eWxlKCktPmZpbGxQYWludCgp
IDogdmlzaXRlZFN0eWxlLT5zdmdTdHlsZSgpLT5zdHJva2VQYWludCgpKSB7Ci0gICAgICAgICAg
ICAvLyBGb3IgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IsICdjb2xvcicgYWxyZWFkeSBjb250
YWlucyB0aGUgJ3Zpc2l0ZWRDb2xvcicuCi0gICAgICAgICAgICBpZiAodmlzaXRlZFBhaW50LT5w
YWludFR5cGUoKSA8IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9OT05FICYmIHZpc2l0ZWRQ
YWludC0+cGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9S
KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQ29sb3ImIHZpc2l0ZWRDb2xvciA9IHZpc2l0ZWRQ
YWludC0+Y29sb3IoKTsKLSAgICAgICAgICAgICAgICBpZiAodmlzaXRlZENvbG9yLmlzVmFsaWQo
KSkKLSAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBDb2xvcih2aXNpdGVkQ29sb3IucmVkKCks
IHZpc2l0ZWRDb2xvci5ncmVlbigpLCB2aXNpdGVkQ29sb3IuYmx1ZSgpLCBjb2xvci5hbHBoYSgp
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1Zpc2l0
ZWRTdHlsZSA9IHZpc2l0ZWRTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgU1ZHUGFpbnQ6OlNW
R1BhaW50VHlwZSB2aXNpdGVkUGFpbnRUeXBlID0gYXBwbHlUb0ZpbGwgPyBzdmdWaXNpdGVkU3R5
bGUtPmZpbGxQYWludFR5cGUoKSA6IHN2Z1Zpc2l0ZWRTdHlsZS0+c3Ryb2tlUGFpbnRUeXBlKCk7
CisKKyAgICAgICAgLy8gRm9yIFNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SLCAnY29sb3InIGFs
cmVhZHkgY29udGFpbnMgdGhlICd2aXNpdGVkQ29sb3InLgorICAgICAgICBpZiAodmlzaXRlZFBh
aW50VHlwZSA8IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9OT05FICYmIHZpc2l0ZWRQYWlu
dFR5cGUgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SKSB7CisgICAgICAg
ICAgICBjb25zdCBDb2xvciYgdmlzaXRlZENvbG9yID0gYXBwbHlUb0ZpbGwgPyBzdmdWaXNpdGVk
U3R5bGUtPmZpbGxQYWludENvbG9yKCkgOiBzdmdWaXNpdGVkU3R5bGUtPnN0cm9rZVBhaW50Q29s
b3IoKTsKKyAgICAgICAgICAgIGlmICh2aXNpdGVkQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICAg
ICAgICAgIGNvbG9yID0gQ29sb3IodmlzaXRlZENvbG9yLnJlZCgpLCB2aXNpdGVkQ29sb3IuZ3Jl
ZW4oKSwgdmlzaXRlZENvbG9yLmJsdWUoKSwgY29sb3IuYWxwaGEoKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAJKHJldmlzaW9uIDc4OTkxKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTQsOCArMjU0LDggQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXI6OmRyYXdDb250ZQogICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG9sZFJlbmRlclN0eWxl
ID0gcmVuZGVyZXItPnN0eWxlKCk7CiAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3UmVu
ZGVyU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUob2xkUmVuZGVyU3R5bGUuZ2V0KCkpOwogICAg
ICAgICBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBuZXdSZW5kZXJTdHlsZS5nZXQoKS0+YWNj
ZXNzU1ZHU3R5bGUoKTsKLSAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxQYWludChTVkdQYWludDo6
ZGVmYXVsdEZpbGwoKSk7Ci0gICAgICAgIHN2Z1N0eWxlLT5zZXRTdHJva2VQYWludChTVkdQYWlu
dDo6ZGVmYXVsdFN0cm9rZSgpKTsKKyAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxQYWludChTVkdS
ZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFR5cGUoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxGaWxsUGFpbnRDb2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFVyaSgp
KTsKKyAgICAgICAgc3ZnU3R5bGUtPnNldFN0cm9rZVBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0
aWFsU3Ryb2tlUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRD
b2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VXJpKCkpOwogICAgICAg
ICBzdmdTdHlsZS0+c2V0RmlsbFJ1bGUobmV3Q2xpcFJ1bGUpOwogICAgICAgICBuZXdSZW5kZXJT
dHlsZS5nZXQoKS0+c2V0T3BhY2l0eSgxLjBmKTsKICAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxP
cGFjaXR5KDEuMGYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNv
dXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVzb3VyY2VzLmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MiwxNSArMTUyLDEy
IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRhcmdldFJlZmVyZW5jZUZyb20KICAgICByZXR1cm4g
U1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQodGFyZ2V0KTsKIH0KIAotc3RhdGljIGlubGluZSBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogcGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChE
b2N1bWVudCogZG9jdW1lbnQsIFNWR1BhaW50KiBwYWludCwgQXRvbWljU3RyaW5nJiBpZCwgYm9v
bCYgaGFzUGVuZGluZ1Jlc291cmNlKQorc3RhdGljIGlubGluZSBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lciogcGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IFNWR1BhaW50OjpTVkdQYWludFR5cGUmIHBhaW50VHlwZSwgY29uc3QgU3RyaW5nJiBw
YWludFVyaSwgQXRvbWljU3RyaW5nJiBpZCwgYm9vbCYgaGFzUGVuZGluZ1Jlc291cmNlKQogewot
ICAgIEFTU0VSVChwYWludCk7Ci0KLSAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50VHlw
ZSA9IHBhaW50LT5wYWludFR5cGUoKTsKICAgICBpZiAocGFpbnRUeXBlICE9IFNWR1BhaW50OjpT
VkdfUEFJTlRUWVBFX1VSSSAmJiBwYWludFR5cGUgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVf
VVJJX1JHQkNPTE9SKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlkID0gU1ZHVVJJUmVmZXJl
bmNlOjpnZXRUYXJnZXQocGFpbnQtPnVyaSgpKTsKKyAgICBpZCA9IFNWR1VSSVJlZmVyZW5jZTo6
Z2V0VGFyZ2V0KHBhaW50VXJpKTsKICAgICBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogY29u
dGFpbmVyID0gZ2V0UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXJCeUlkKGRvY3VtZW50LCBpZCk7
CiAgICAgaWYgKCFjb250YWluZXIpIHsKICAgICAgICAgaGFzUGVuZGluZ1Jlc291cmNlID0gdHJ1
ZTsKQEAgLTI1OSw3ICsyNTYsNyBAQCBib29sIFNWR1Jlc291cmNlczo6YnVpbGRDYWNoZWRSZXNv
dXJjZXMoCiAgICAgICAgIGlmIChzdHlsZS0+aGFzRmlsbCgpKSB7CiAgICAgICAgICAgICBib29s
IGhhc1BlbmRpbmdSZXNvdXJjZSA9IGZhbHNlOwogICAgICAgICAgICAgQXRvbWljU3RyaW5nIGlk
OwotICAgICAgICAgICAgaWYgKHNldEZpbGwocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPmZpbGxQYWludCgpLCBpZCwgaGFzUGVuZGluZ1Jlc291cmNlKSkpCisg
ICAgICAgICAgICBpZiAoc2V0RmlsbChwYWludGluZ1Jlc291cmNlRnJvbVNWR1BhaW50KGRvY3Vt
ZW50LCBzdHlsZS0+ZmlsbFBhaW50VHlwZSgpLCBzdHlsZS0+ZmlsbFBhaW50VXJpKCksIGlkLCBo
YXNQZW5kaW5nUmVzb3VyY2UpKSkKICAgICAgICAgICAgICAgICBmb3VuZFJlc291cmNlcyA9IHRy
dWU7CiAgICAgICAgICAgICBlbHNlIGlmIChoYXNQZW5kaW5nUmVzb3VyY2UpCiAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXJQZW5kaW5nUmVzb3VyY2UoZXh0ZW5zaW9ucywgaWQsIGVsZW1lbnQpOwpA
QCAtMjY4LDcgKzI2NSw3IEBAIGJvb2wgU1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNl
cygKICAgICAgICAgaWYgKHN0eWxlLT5oYXNTdHJva2UoKSkgewogICAgICAgICAgICAgYm9vbCBo
YXNQZW5kaW5nUmVzb3VyY2UgPSBmYWxzZTsKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBpZDsK
LSAgICAgICAgICAgIGlmIChzZXRTdHJva2UocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPnN0cm9rZVBhaW50KCksIGlkLCBoYXNQZW5kaW5nUmVzb3VyY2UpKSkK
KyAgICAgICAgICAgIGlmIChzZXRTdHJva2UocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQYWludChk
b2N1bWVudCwgc3R5bGUtPnN0cm9rZVBhaW50VHlwZSgpLCBzdHlsZS0+c3Ryb2tlUGFpbnRVcmko
KSwgaWQsIGhhc1BlbmRpbmdSZXNvdXJjZSkpKQogICAgICAgICAgICAgICAgIGZvdW5kUmVzb3Vy
Y2VzID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1BlbmRpbmdSZXNvdXJjZSkKICAg
ICAgICAgICAgICAgICByZWdpc3RlclBlbmRpbmdSZXNvdXJjZShleHRlbnNpb25zLCBpZCwgZWxl
bWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAJKHJldmlzaW9uIDc4OTkxKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksNiAr
MTksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHQ29sb3IuaCIKIApAQCAtMjgsMTEgKzI5LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1TVkdDb2xvcjo6U1ZHQ29sb3IoKQotICAgIDogbV9jb2xvclR5cGUoU1ZHX0NP
TE9SVFlQRV9VTktOT1dOKQotewotfQotCiBTVkdDb2xvcjo6U1ZHQ29sb3IoY29uc3QgU3RyaW5n
JiByZ2JDb2xvcikKICAgICA6IG1fY29sb3JUeXBlKFNWR19DT0xPUlRZUEVfUkdCQ09MT1IpCiB7
CkBAIC05Nyw2ICs5Myw0IEBAIFN0cmluZyBTVkdDb2xvcjo6Y3NzVGV4dCgpIGNvbnN0CiAKIH0K
IAotLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDb2xvci5oCShyZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
b2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw4IEBACiAKICNpZm5kZWYgU1ZHQ29s
b3JfaAogI2RlZmluZSBTVkdDb2xvcl9oCi0jaWYgRU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zMiwyOSArMzIsMjkgQEAgY2xhc3MgUkdCQ29sb3I7CiAK
IGNsYXNzIFNWR0NvbG9yIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKKyAgICBlbnVtIFNW
R0NvbG9yVHlwZSB7CisgICAgICAgIFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDAsCisgICAgICAg
IFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxLAorICAgICAgICBTVkdfQ09MT1JUWVBFX1JHQkNP
TE9SX0lDQ0NPTE9SID0gMiwKKyAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgPSAz
CisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NvbG9yPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBjb2xvcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQ29s
b3IoY29sb3IpKTsKICAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDb2xvcj4gY3Jl
YXRlKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHQ29sb3IoY29sb3IpKTsKICAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdD
b2xvcj4gY3JlYXRlQ3VycmVudENvbG9yKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU1ZHQ29sb3IoU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpKTsKICAgICB9CiAKLSAg
ICBlbnVtIFNWR0NvbG9yVHlwZSB7Ci0gICAgICAgIFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDAs
Ci0gICAgICAgIFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxLAotICAgICAgICBTVkdfQ09MT1JU
WVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMiwKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9DVVJSRU5U
Q09MT1IgPSAzCi0gICAgfTsKLQotICAgIC8vICdTVkdDb2xvcicgZnVuY3Rpb25zCiAgICAgdW5z
aWduZWQgc2hvcnQgY29sb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclR5cGU7IH0KLQog
ICAgIFBhc3NSZWZQdHI8UkdCQ29sb3I+IHJnYkNvbG9yKCkgY29uc3Q7CiAKICAgICBzdGF0aWMg
Q29sb3IgY29sb3JGcm9tUkdCQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJik7CkBAIC02NSwxOSAr
NjUsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29sb3IodW5zaWduZWQgc2hvcnQgY29sb3JU
eXBlLCBjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBt
X2NvbG9yOyB9CisgICAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9jb2xv
ciA9IGNvbG9yOyB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdDb2xvcigpOwotICAgIFNWR0NvbG9y
KGNvbnN0IFN0cmluZyYgY29sb3IpOwotICAgIFNWR0NvbG9yKGNvbnN0IENvbG9yJik7Ci0KKyAg
ICBTVkdDb2xvcihTVkdDb2xvclR5cGUpOwogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBTVkdDb2xvcihTVkdDb2xvclR5cGUpOworICAgIFNWR0Nv
bG9yKGNvbnN0IFN0cmluZyYpOworICAgIFNWR0NvbG9yKGNvbnN0IENvbG9yJik7CiAKICAgICBz
dGF0aWMgdm9pZCBjcmVhdGUoaW50KTsgLy8gY29tcGlsZS10aW1lIGd1YXJkIAotCiAgICAgdmly
dHVhbCBib29sIGlzU1ZHQ29sb3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBDb2xv
ciBtX2NvbG9yOwpAQCAtODgsNSArODYsMyBAQCBwcml2YXRlOgogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWRykKICNlbmRpZiAvLyBTVkdDb2xvcl9oCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhaW50LmNwcAkocmV2aXNpb24gNzg5OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFpbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLTIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTI4LDYyICsyOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVNWR1BhaW50OjpTVkdQYWludCgpCi0gICAgOiBtX3BhaW50VHlwZShTVkdfUEFJTlRUWVBFX1VO
S05PV04pCi17Ci19Ci0KLVNWR1BhaW50OjpTVkdQYWludChjb25zdCBTdHJpbmcmIHVyaSkKLSAg
ICA6IG1fcGFpbnRUeXBlKFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SKQotewotICAgIHNldFVy
aSh1cmkpOwotfQotCi1TVkdQYWludDo6U1ZHUGFpbnQoU1ZHUGFpbnRUeXBlIHBhaW50VHlwZSkK
LSAgICA6IG1fcGFpbnRUeXBlKHBhaW50VHlwZSkKLXsKLX0KLQotU1ZHUGFpbnQ6OlNWR1BhaW50
KFNWR1BhaW50VHlwZSBwYWludFR5cGUsIGNvbnN0IFN0cmluZyYgdXJpLCBjb25zdCBTdHJpbmcm
IHJnYlBhaW50LCBjb25zdCBTdHJpbmcmKQotICAgIDogU1ZHQ29sb3IocmdiUGFpbnQpCitTVkdQ
YWludDo6U1ZHUGFpbnQoU1ZHQ29sb3JUeXBlIGNvbG9yVHlwZSwgU1ZHUGFpbnRUeXBlIHBhaW50
VHlwZSkKKyAgICA6IFNWR0NvbG9yKGNvbG9yVHlwZSkKICAgICAsIG1fcGFpbnRUeXBlKHBhaW50
VHlwZSkKIHsKLSAgICBzZXRVcmkodXJpKTsKLX0KLQotU1ZHUGFpbnQ6OlNWR1BhaW50KGNvbnN0
IENvbG9yJiBjKQotICAgIDogU1ZHQ29sb3IoYykKLSAgICAsIG1fcGFpbnRUeXBlKFNWR19QQUlO
VFRZUEVfUkdCQ09MT1IpCi17Ci19Ci0KLVNWR1BhaW50OjpTVkdQYWludChjb25zdCBTdHJpbmcm
IHVyaSwgY29uc3QgQ29sb3ImIGMpCi0gICAgOiBTVkdDb2xvcihjKQotICAgICwgbV9wYWludFR5
cGUoU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IpCi17Ci0gICAgc2V0VXJpKHVyaSk7Ci19Ci0K
LVNWR1BhaW50KiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKQotewotICAgIHN0YXRpYyBTVkdQYWlu
dCogc3RhdGljRGVmYXVsdEZpbGwgPSBjcmVhdGUoQ29sb3I6OmJsYWNrKS5yZWxlYXNlUmVmKCk7
Ci0gICAgcmV0dXJuIHN0YXRpY0RlZmF1bHRGaWxsOwotfQotCi1TVkdQYWludCogU1ZHUGFpbnQ6
OmRlZmF1bHRTdHJva2UoKQotewotICAgIHN0YXRpYyBTVkdQYWludCogc3RhdGljRGVmYXVsdFN0
cm9rZSA9IGNyZWF0ZShTVkdfUEFJTlRUWVBFX05PTkUpLnJlbGVhc2VSZWYoKTsKLSAgICByZXR1
cm4gc3RhdGljRGVmYXVsdFN0cm9rZTsKLX0KLQotU3RyaW5nIFNWR1BhaW50Ojp1cmkoKSBjb25z
dAotewotICAgIHJldHVybiBtX3VyaTsKLX0KLQotdm9pZCBTVkdQYWludDo6c2V0VXJpKGNvbnN0
IFN0cmluZyYgdXJpKQotewotICAgIG1fdXJpID0gdXJpOwogfQogCiB2b2lkIFNWR1BhaW50Ojpz
ZXRQYWludChTVkdQYWludFR5cGUgcGFpbnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3Qg
U3RyaW5nJiByZ2JQYWludCwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpCkBAIC05MSw3
ICszOSw3IEBAIHZvaWQgU1ZHUGFpbnQ6OnNldFBhaW50KFNWR1BhaW50VHlwZSBwYWkKICAgICBt
X3BhaW50VHlwZSA9IHBhaW50VHlwZTsKIAogICAgIGlmIChtX3BhaW50VHlwZSA9PSBTVkdfUEFJ
TlRUWVBFX1VSSSkKLSAgICAgICAgc2V0VXJpKHVyaSk7CisgICAgICAgIG1fdXJpID0gdXJpOwog
ICAgIGVsc2UgaWYgKG1fcGFpbnRUeXBlID09IFNWR19QQUlOVFRZUEVfUkdCQ09MT1IpCiAgICAg
ICAgIHNldFJHQkNvbG9yKHJnYlBhaW50KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYWludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5oCShy
ZXZpc2lvbiA3ODk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWlhbC5jb20+CisgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDkgKzIyLDEwIEBACiAKICNpZm5kZWYgU1ZH
UGFpbnRfaAogI2RlZmluZSBTVkdQYWludF9oCisKICNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw0OSArNDQs
ODYgQEAgcHVibGljOgogICAgICAgICBTVkdfUEFJTlRUWVBFX1VSSSA9IDEwNwogICAgIH07CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdQYWludD4gY3JlYXRlVW5rbm93bigpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1BhaW50KFNWR19DT0xPUlRZUEVfVU5LTk9XTiwgU1ZHX1BBSU5UVFlQ
RV9VTktOT1dOKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNy
ZWF0ZU5vbmUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoU1ZHX0NPTE9SVFlQRV9VTktO
T1dOLCBTVkdfUEFJTlRUWVBFX05PTkUpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHUGFpbnQ+IGNyZWF0ZShTVkdQYWludFR5cGUgdHlwZSkKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1BhaW50PiBjcmVhdGVDdXJyZW50Q29sb3IoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdQYWludCh0eXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHUGFpbnQoU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IsIFNWR19QQUlOVFRZUEVfQ1VS
UkVOVENPTE9SKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVh
dGUoY29uc3QgQ29sb3ImIGNvbG9yKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+
IGNyZWF0ZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHUGFpbnQoY29sb3IpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCBTVkdf
UEFJTlRUWVBFX1JHQkNPTE9SKSk7CisgICAgICAgIHBhaW50LT5zZXRDb2xvcihjb2xvcik7Cisg
ICAgICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1BhaW50PiBjcmVhdGUoU1ZHUGFpbnRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXJp
KQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZVVSSShjb25zdCBTdHJp
bmcmIHVyaSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQodHlw
ZSwgdXJpLCBTdHJpbmcoKSwgU3RyaW5nKCkpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1VOS05PV04sIFNWR19Q
QUlOVFRZUEVfVVJJKSk7CisgICAgICAgIHBhaW50LT5zZXRVcmkodXJpKTsKKyAgICAgICAgcmV0
dXJuIHBhaW50LnJlbGVhc2UoKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFp
bnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGNvbG9yKQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZVVSSUFuZENvbG9yKGNvbnN0IFN0cmlu
ZyYgdXJpLCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR1BhaW50KHVyaSwgY29sb3IpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBw
YWludCA9IGFkb3B0UmVmKG5ldyBTVkdQYWludChTVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCBTVkdf
UEFJTlRUWVBFX1VSSV9SR0JDT0xPUikpOworICAgICAgICBwYWludC0+c2V0Q29sb3IoY29sb3Ip
OworICAgICAgICBwYWludC0+c2V0VXJpKHVyaSk7CisgICAgICAgIHJldHVybiBwYWludC5yZWxl
YXNlKCk7CiAgICAgfQogCi0gICAgLy8gJ1NWR1BhaW50JyBmdW5jdGlvbnMKICAgICBTVkdQYWlu
dFR5cGUgcGFpbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9wYWludFR5cGU7IH0KLSAgICBTdHJp
bmcgdXJpKCkgY29uc3Q7CisgICAgU3RyaW5nIHVyaSgpIGNvbnN0IHsgcmV0dXJuIG1fdXJpOyB9
CiAKLSAgICB2b2lkIHNldFVyaShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFVyaShjb25z
dCBTdHJpbmcmIHVyaSkgeyBtX3VyaSA9IHVyaTsgfQogICAgIHZvaWQgc2V0UGFpbnQoU1ZHUGFp
bnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgU3RyaW5nJiByZ2JQYWludCwgY29uc3Qg
U3RyaW5nJiBpY2NQYWludCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIAotICAgIHN0YXRpYyBTVkdQ
YWludCogZGVmYXVsdEZpbGwoKTsKLSAgICBzdGF0aWMgU1ZHUGFpbnQqIGRlZmF1bHRTdHJva2Uo
KTsKIAogICAgIGJvb2wgbWF0Y2hlc1RhcmdldFVSSShjb25zdCBTdHJpbmcmIHJlZmVyZW5jZUlk
KTsKIAogcHJpdmF0ZToKLSAgICBTVkdQYWludCgpOwotICAgIFNWR1BhaW50KGNvbnN0IFN0cmlu
ZyYgdXJpKTsKLSAgICBTVkdQYWludChTVkdQYWludFR5cGUpOwotICAgIFNWR1BhaW50KFNWR1Bh
aW50VHlwZSwgY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IFN0cmluZyYgcmdiUGFpbnQsIGNvbnN0
IFN0cmluZyYgaWNjUGFpbnQpOwotICAgIFNWR1BhaW50KGNvbnN0IENvbG9yJiBjKTsKLSAgICBT
VkdQYWludChjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGMpOworICAgIGZyaWVuZCBj
bGFzcyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb247CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdQYWludD4gY3JlYXRlKGNvbnN0IFNWR1BhaW50VHlwZSYgdHlwZSwgY29uc3QgU3RyaW5n
JiB1cmksIGNvbnN0IENvbG9yJiBjb2xvcikKKyAgICB7CisgICAgICAgIFNWR0NvbG9yOjpTVkdD
b2xvclR5cGUgY29sb3JUeXBlID0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfVU5LTk9XTjsKKyAg
ICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9OT05FOgor
ICAgICAgICBjYXNlIFNWR19QQUlOVFRZUEVfVU5LTk9XTjoKKyAgICAgICAgY2FzZSBTVkdfUEFJ
TlRUWVBFX1VSSToKKyAgICAgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1VSSV9OT05FOgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUjoKKyAgICAg
ICAgY2FzZSBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgICAgICBjYXNlIFNW
R19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SOgorICAgICAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJ
X1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgICAgICAgICAgY29sb3JUeXBlID0gU1ZHQ29sb3I6OlNW
R19DT0xPUlRZUEVfUkdCQ09MT1I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBT
VkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1I6CisgICAgICAgIGNhc2UgU1ZHX1BBSU5UVFlQ
RV9DVVJSRU5UQ09MT1I6CisgICAgICAgICAgICBjb2xvclR5cGUgPSBTVkdDb2xvcjo6U1ZHX0NP
TE9SVFlQRV9DVVJSRU5UQ09MT1I7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfTsKKwor
ICAgICAgICBSZWZQdHI8U1ZHUGFpbnQ+IHBhaW50ID0gYWRvcHRSZWYobmV3IFNWR1BhaW50KGNv
bG9yVHlwZSwgdHlwZSkpOworICAgICAgICBwYWludC0+c2V0Q29sb3IoY29sb3IpOworICAgICAg
ICBwYWludC0+c2V0VXJpKHVyaSk7CisgICAgICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7Cisg
ICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHUGFpbnQoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKK3ByaXZhdGU6CisgICAgU1ZHUGFpbnQoU1ZHQ29sb3I6OlNWR0NvbG9yVHlwZSwgU1ZH
UGFpbnRUeXBlKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1NWR1BhaW50KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogICAgIFNW
R1BhaW50VHlwZSBtX3BhaW50VHlwZTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTE3KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEt
MDItMTkgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHIDEuMSAybmQgRWRp
dGlvbiBjb2xvci1wcm9wLTA1LXQuc3ZnIGV4cG9zZXMgYnVnIGluICdjdXJyZW50Q29sb3InIGhh
bmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NDgwMAorCisgICAgICAgIEFkZCBuZXcgdGVzdCBmcm9tIFNWRyAxLjEgMm5kIEVkaXRpb24gY292
ZXJpbmcgY3VycmVudENvbG9yIHN1cHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3Zn
L1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1
LXQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL1czQy1T
VkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQuc3ZnOiBBZGRlZC4KKwogMjAxMS0w
Mi0xOSAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29s
b3ItcHJvcC0wNS10LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzAzM2I4MTFjMWRiYWUyZDBm
ZWFiNjNjNzA5MWZkY2UwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzND
LVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0w
NS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA0ODB4MzYwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCits
YXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCww
KSBzaXplIDQ4MHgzNjAKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgw
LDApIHNpemUgMHgwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMTIwLDYwKSBzaXpl
IDE1MHgxNTAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEyMCw2MCkgc2l6ZSAx
NTB4MTUwCisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgxMjAsNjApIHNpemUgMTUw
eDE1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBGRjAwXX1dIFt4PTEyMC4wMF0gW3k9
NjAuMDBdIFt3aWR0aD0xNTAuMDBdIFtoZWlnaHQ9MTUwLjAwXQorICAgIFJlbmRlclNWR0NvbnRh
aW5lciB7Z30gYXQgKDEwLDMxNCkgc2l6ZSAyMjd4MzMKKyAgICAgIFJlbmRlclNWR1RleHQge3Rl
eHR9IGF0ICgxMCwzMTQpIHNpemUgMjI3eDMzIGNvbnRhaW5zIDEgY2h1bmsocykKKyAgICAgICAg
UmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjI3eDMzCisgICAgICAg
ICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5k
T2Zmc2V0IDIgd2lkdGggNDAuOTA6ICIkUiIKKyAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDIg
YXQgKDUwLjUxLDM0MC4wMCkgc3RhcnRPZmZzZXQgMiBlbmRPZmZzZXQgMyB3aWR0aCAxNy43OTog
ImUiCisgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAzIGF0ICg2Ny44MiwzNDAuMDApIHN0YXJ0
T2Zmc2V0IDMgZW5kT2Zmc2V0IDEyIHdpZHRoIDExNy4zODogInZpc2lvbjogMSIKKyAgICAgICAg
ICBjaHVuayAxIHRleHQgcnVuIDQgYXQgKDE4Mi44MywzNDAuMDApIHN0YXJ0T2Zmc2V0IDEyIGVu
ZE9mZnNldCAxNiB3aWR0aCA1My4zODogIi44ICQiCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0g
YXQgKDAsMCkgc2l6ZSA0ODB4MzYwIFtzdHJva2U9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAw
MF19XSBbeD0xLjAwXSBbeT0xLjAwXSBbd2lkdGg9NDc4LjAwXSBbaGVpZ2h0PTM1OC4wMF0KSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQuc3ZnCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1
LXQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL1czQy1TVkctMS4xLVNFL2Nv
bG9yLXByb3AtMDUtdC5zdmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKzxzdmcgdmVy
c2lvbj0iMS4xIiBiYXNlUHJvZmlsZT0idGlueSIgaWQ9InN2Zy1yb290IgorICB3aWR0aD0iMTAw
JSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgNDgwIDM2MCIKKyAgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluayI+CisgIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisgIDwhLS09ICBTVkcgMS4xIDJuZCBFZGl0
aW9uIFRlc3QgQ2FzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9LS0+Cisg
IDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09LS0+CisgIDwhLS09ICBDb3B5cmlnaHQgMjAwOSBXb3JsZCBXaWRl
IFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyAgICAgICAgICA9LS0+CisgIDwhLS09ICBJ
bnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVzZWFyY2ggQ29uc29ydGl1bSBmb3Ig
ICAgICAgICA9LS0+CisgIDwhLS09ICBJbmZvcm1hdGljcyBhbmQgTWF0aGVtYXRpY3MgKEVSQ0lN
KSwgS2VpbyBVbml2ZXJzaXR5KS4gICAgICAgICAgICA9LS0+CisgIDwhLS09ICBBbGwgUmlnaHRz
IFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
LS0+CisgIDwhLS09ICBTZWUgaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8uICAg
ICAgICAgICAgICAgICAgICAgICAgICA9LS0+CisgIDwhLS09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisgIDxk
OlNWR1Rlc3RDYXNlIHhtbG5zOmQ9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDIvc3ZnL3Rlc3Rz
dWl0ZS9kZXNjcmlwdGlvbi8iCisgICAgdGVtcGxhdGUtdmVyc2lvbj0iMS40IiByZXZpZXdlcj0i
Q0wiIGF1dGhvcj0iQ04iIHN0YXR1cz0iYWNjZXB0ZWQiCisgICAgdmVyc2lvbj0iJFJldmlzaW9u
OiAxLjggJCIgdGVzdG5hbWU9IiRSQ1NmaWxlOiBjb2xvci1wcm9wLTA1LXQuc3ZnLHYgJCI+Cisg
ICAgPGQ6dGVzdERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9jb2xvci5odG1sI0NvbG9yUHJvcGVy
dHkiPgorICAgICAgPHA+CisgICAgICAgIFRlc3RzIHRoZSBjb2xvciB0aGF0IGlzIHVzZWQgZm9y
IHRoZSBjdXJyZW50Q29sb3IgdmFsdWUgaW4gdGhlIGZpbGwKKyAgICAgICAgYXR0cmlidXRlIHdo
ZW4gbW9yZSB0aGFuIG9uZSBjb2xvciBpcyBzcGVjaWZpZWQuCisgICAgICA8L3A+CisgICAgICA8
cD4KKyAgICAgICAgVGhpcyBpcyBpbGx1c3RyYXRlZCB1c2luZyBhIHNpbmdsZSByZWN0YW5nbGUg
dGhhdCBpcyBhIGNoaWxkIG9mIGEgZ3JvdXAKKyAgICAgICAgZWxlbWVudC4gQSBmaWxsIGlzIHNw
ZWNpZmllZCBmb3IgdGhlIGdyb3VwIGVsZW1lbnQgYnV0IG5vdCB0aGUKKyAgICAgICAgcmVjdGFu
Z2xlLiBDb2xvdXIgaXMgc3BlY2lmZWQgZm9yIHRoZSByZWN0YW5nbGUgYW5kIHRoZSBncm91cCBl
bGVtZW50LgorICAgICAgPC9wPgorICAgIDwvZDp0ZXN0RGVzY3JpcHRpb24+CisgICAgPGQ6b3Bl
cmF0b3JTY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgICAg
PHA+UnVuIHRoZSB0ZXN0LiBObyBpbnRlcmFjdGlvbiByZXF1aXJlZC48L3A+CisgICAgPC9kOm9w
ZXJhdG9yU2NyaXB0PgorICAgIDxkOnBhc3NDcml0ZXJpYSB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+CisgICAgICA8cD4KKyAgICAgICAgVGhlIHRlc3QgaXMgcGFzc2VkIGlm
IHRoZSB1c2VyIGFnZW50IHJlbmRlcnMgdGhlIHJlY3RhbmdsZSB3aXRoIGEgZ3JlZW4KKyAgICAg
ICAgZmlsbC4KKyAgICAgIDwvcD4KKyAgICA8L2Q6cGFzc0NyaXRlcmlhPgorICA8L2Q6U1ZHVGVz
dENhc2U+CisgIDx0aXRsZSBpZD0idGVzdC10aXRsZSI+JFJDU2ZpbGU6IGNvbG9yLXByb3AtMDUt
dC5zdmcsdiAkPC90aXRsZT4KKyAgPGRlZnM+CisgICAgPGZvbnQtZmFjZSBmb250LWZhbWlseT0i
U1ZHRnJlZVNhbnNBU0NJSSIgdW5pY29kZS1yYW5nZT0iVSswLTdGIj4KKyAgICAgIDxmb250LWZh
Y2Utc3JjPgorICAgICAgICA8Zm9udC1mYWNlLXVyaSB4bGluazpocmVmPSIuLi9jdXN0b20vcmVz
b3VyY2VzL1NWR0ZyZWVTYW5zLnN2ZyNhc2NpaSIvPgorICAgICAgPC9mb250LWZhY2Utc3JjPgor
ICAgIDwvZm9udC1mYWNlPgorICA8L2RlZnM+CisgIDxnIGlkPSJ0ZXN0LWJvZHktY29udGVudCIg
Zm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUksc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxOCI+
CisgICAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0ibGltZSI+CisgICAgICA8cmVjdCB4
PSIxMjAiIHk9IjYwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgY29sb3I9InJlZCIvPgorICAg
IDwvZz4KKyAgPC9nPgorICA8ZyBmb250LWZhbWlseT0iU1ZHRnJlZVNhbnNBU0NJSSxzYW5zLXNl
cmlmIiBmb250LXNpemU9IjMyIj4KKyAgICA8dGV4dCBpZD0icmV2aXNpb24iIHg9IjEwIiB5PSIz
NDAiIHN0cm9rZT0ibm9uZSIgZmlsbD0iYmxhY2siPiRSZXZpc2lvbjogMS44ICQ8L3RleHQ+Cisg
IDwvZz4KKyAgPHJlY3QgaWQ9InRlc3QtZnJhbWUiIHg9IjEiIHk9IjEiIHdpZHRoPSI0NzgiIGhl
aWdodD0iMzU4IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiLz4KKyAgPCEtLSBjb21tZW50
IG91dCB0aGlzIHdhdGVybWFyayBvbmNlIHRoZSB0ZXN0IGlzIGFwcHJvdmVkIC0tPgorICA8IS0t
PGcgaWQ9ImRyYWZ0LXdhdGVybWFyayI+CisgICAgPHJlY3QgeD0iMSIgeT0iMSIgd2lkdGg9IjQ3
OCIgaGVpZ2h0PSIyMCIgZmlsbD0icmVkIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEi
Lz4KKyAgICA8dGV4dCBmb250LWZhbWlseT0iU1ZHRnJlZVNhbnNBU0NJSSxzYW5zLXNlcmlmIiBm
b250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIyMCIgeD0iMjQwIgorICAgICAgdGV4dC1hbmNo
b3I9Im1pZGRsZSIgeT0iMTgiIHN0cm9rZS13aWR0aD0iMC41IiBzdHJva2U9ImJsYWNrIiBmaWxs
PSJ3aGl0ZSI+RFJBRlQ8L3RleHQ+CisgIDwvZz4tLT4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0
ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5
IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0Uv
Y29sb3ItcHJvcC0wNS10LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10
eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVV
Z0FBQWVBQUFBRm9DQVlBQUFDUE55Z2dBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpW
TTlyRTBFVS9qWnVxZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51
dnVKcldsaU9UaTBTcmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdN
NSs4OTQzNzMxdmR0OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1Rp
UUdRWU56K1h2bjJIb1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9n
OAozNkVweDNRSTMrUFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pU
MWNWSStuTmVMbE5jZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lI
Q0N4bXRQMGE0alo3MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhI
WkxnM3htSzc5VnZKS2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5u
M3RUZAo3MFhhQXE4d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekox
SkdxN2RHSkVzVUY3TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIz
bEsyYm1ycnk0RHZGNVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekht
Z2pXUHhIT3crL0V0WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2Mkpp
emRXbTVkbgovV3BJKys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExx
d3ZpWUczSENKMlZoaW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NL
bVEwbmJrT2IvcVAyOGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4
TFp1YTZOK09Qd0VXRHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVz
eFEyME5TVXRjbAoxMlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytm
bXNVdGwrVGhyV2daZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZEJaRGt4dGtHWURseC9q
QXpPOHpNN0RBenMwTVZaaVpUb0pLcU1LUERUQTR6TXpNem8rTXd4L1AzcTFSUHlicloKMmQyNzll
aDYvWFRWM294bU5PcWVwM1h6cVVIU0hyT1M5dHR2djA0aVFJQUFBUUlFVmlOd3dBRUhkSHZtbndN
UFBMRGJmLy85VjVPcgpYQWdRSUVDQXdKRllJSEUzYWMvOHMrKysrM1phd1pHUUNCQWdRSURBRVM5
dzJHR0hkVWM1NHJPUkF3RUNCQWdRSURBV0VJREhJcFlKCkVDQkFnTUFLQkFUZ0ZTRExnZ0FCQWdR
SWpBVUU0TEdJWlFJRUNCQWdzQUlCQVhnRnlMSWdRSUFBQVFKakFRRjRMR0taQUFFQ0JBaXMKUUVB
QVhnR3lMQWdRSUVDQXdGaEFBQjZMV0NaQWdBQUJBaXNRRUlCWGdDd0xBZ1FJRUNBd0ZoQ0F4eUtX
Q1JBZ1FJREFDZ1FFNEJVZwp5NElBQVFJRUNJd0ZCT0N4aUdVQ0JBZ1FJTEFDQVFGNEJjaXlJRUNB
QUFFQ1l3RUJlQ3hpbVFBQkFnUUlyRUJBQUY0QnNpd0lFQ0JBCmdNQllRQUFlaTFnbVFJQUFBUUly
RUJDQVY0QXNDd0lFQ0JBZ01CWVFnTWNpbGdrUUlFQ0F3QW9FQk9BVklNdUNBQUVDQkFpTUJRVGcK
c1lobEFnUUlFQ0N3QWdFQmVBWElzaUJBZ0FBQkFtTUJBWGdzWXBrQUFRSUVDS3hBUUFCZUFiSXND
QkFnUUlEQVdFQUFIb3RZSmtDQQpBQUVDS3hBUWdGZUFMQXNDQkFnUUlEQVdFSURISXBZSkVDQkFn
TUFLQkFUZ0ZTRExnZ0FCQWdRSWpBVUU0TEdJWlFJRUNCQWdzQUlCCkFYZ0Z5TElnUUlBQUFRSmpB
UUY0TEdLWkFBRUNCQWlzUUVBQVhnR3lMQWdRSUVDQXdGaEFBQjZMV0NaQWdBQUJBaXNRRUlCWGdD
d0wKQWdRSUVDQXdGaENBeHlLV0NSQWdRSURBQ2dRRTRCVWd5NElBQVFJRUNJd0ZCT0N4aUdVQ0JB
Z1FJTEFDQVFGNEJjaXlJRUNBQUFFQwpZd0VCZUN4aW1RQUJBZ1FJckVCQUFGNEJzaXdJRUNCQWdN
QllRQUFlaTFnbVFJQUFBUUlyRUJDQVY0QXNDd0lFQ0JBZ01CWVFnTWNpCmxna1FJRUNBd0FvRUJP
QVZJTXVDQUFFQ0JBaU1CUVRnc1lobEFnUUlFQ0N3QWdFQmVBWElzaUJBZ0FBQkFtTUJBWGdzWXBr
QUFRSUUKQ0t4QVFBQmVBYklzQ0JBZ1FJREFXRUFBSG90WUprQ0FBQUVDS3hBUWdGZUFMQXNDQkFn
UUlEQVdFSURISXBZSkVDQkFnTUFLQkFUZwpGU0RMZ2dBQkFnUUlqQVVFNExHSVpRSUVDQkFnc0FJ
QkFYZ0Z5TElnUUlBQUFRSmpBUUY0TEdLWkFBRUNCQWlzUUVBQVhnR3lMQWdRCklFQ0F3RmhBQUI2
TFdDWkFnQUFCQWlzUUVJQlhnQ3dMQWdRSUVDQXdGdGh6L0lMbDdTV3dSN2ZIOXZwQ3ZzMXVJVERy
WnJ0Rk9SU0MKUU1zQ1dzQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNC
QWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdAoxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RR
c29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBCmdFQ3pBZ0p3
czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlF
eUJBZ0VDekFnSncKczFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJB
aTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSQpFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dB
RGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBCjNITHRL
VHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVD
RFFzb0FBM0hMdEtUc0IKQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFn
SndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZwpBRGRiZFFwT2dBQUJBaTBMQ01BdDE1
NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPCmdB
QUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNz
Z0FEZGJkUXBPZ0FBQkFpMEwKQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hM
dEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eQpFeUJBZ0VDekFnSndzMVduNEFR
SUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6
CkFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0
MTU2eUV5QkFnRUN6QWdKd3MxV24KNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBP
Z0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUQpzb0FBM0hMdEtUc0JBZ1FJ
TkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEz
SEx0CktUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240
QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUkKTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFn
RUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYgpkUXBPZ0FBQkFpMExD
TUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRR
cE9nQUFCCkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFn
UUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQKMTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNv
QUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQQpnRUN6QWdKd3Mx
V240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlC
QWdFQ3pBZ0p3CnMxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkw
TENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUkKRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURk
YmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQQozSEx0S1Rz
QkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RR
c29BQTNITHRLVHNCCkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3
czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2cKQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5
RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwTwpnQUFC
QWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dB
RGRiZFFwT2dBQUJBaTBMCkNNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRL
VHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnkKRXlCQWdFQ3pBZ0p3czFXbjRBUUlF
Q0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDegpB
Z0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1
NnlFeUJBZ0VDekFnSndzMVduCjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dB
QUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFEKc29BQTNITHRLVHNCQWdRSU5D
c2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hM
dApLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFR
SUVDRFFzb0FBM0hMdEtUc0JBZ1FJCk5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VD
ekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGIKZFFwT2dBQUJBaTBMQ01B
dDE1NnlFeUJBZ0VDekFuczJXM0lGMzVEQXJKdHRhRDByRVNCQWdNQnFCYlNBVitzdE53SUVDQkFn
MEFzSQp3SFlFQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVT
QUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBClBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFU
b011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnMKSHlCQWdBQUJBaE1J
Q01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJB
aE1JQ01BVApvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFn
QUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCCkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNI
eUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzYKTEFrUUlFQ0Fn
QUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlF
Q0FnQUJzSHlCQQpnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxB
a1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTCkFBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBB
RzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUkKRUNBd2dZ
QUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNB
d2dZQUFQQUc2TEFrUQpJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdR
SUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCCkFoTUlDTUFUb011U0FBRUNCQWdJd1BZ
QkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUMKQkFn
SXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVD
QkFnSXdQWUJBZ1FJRUNBdwpnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVT
QUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBCmdBQnNIeUJBZ0FBQkFoTUlDTUFU
b011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUkK
Q01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJB
aE1JQ01BVG9NdVNBQUVDQkFnSQp3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFn
QUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBClBBRzZMQWtRSUVDQWdBQnNI
eUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdB
QnMKSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlF
Q0FnQUJzSHlCQWdBQUJBaE1JQ01BVApvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxB
a1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCCkFnUUlFQ0F3Z1lBQVBB
RzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lB
QVBBRzYKTEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JYkVrQS90NzN2dGZkK3RhMzdwN3hqR2RNOEJW
a1NhQjlnVWM4NGhIOS82RS8vL25QN1g4WgozNEFBZ1EwSjdMbWh0ZFpaNmJlLy9XMzM4cGUvdlB2
blAvL1ozZU1lOTFobjdmKzlmY2doaDNRZi9PQUhON1R1VVk1eWxPN1l4ejUyCmQ3clRuYTQ3NjFu
UDJoMzFxRWZkME9lbVd1bmYvLzUzOStZM3Y3blBmcSs5OXVvdWZPRUxiMmxSRGo3NDRPNC8vL2xQ
ZC9LVG43eTcKekdVdXM2WGJ0ckZwQk43eGpuZDBYL3ppRjdzblAvbkozWEdQZTl4cENpRlhBZ1JX
S3JEVEFmZ2YvL2hIOS9yWHY3NTcxN3ZlMVgzaQpFNS9vQy8zMnQ3Kzl1OVNsTHRWZDZFSVg2dTV3
aHp0MDV6dmYrZGI4TXQvNjFyZTZHOS80eG11K3Y5WWJKenJSaWZxV3dyNzc3dHZsCitlNlkvdnJY
djg2LzJ6Nzc3Tk85NkVVdjJ0SmkzdktXdCt6KzlyZS9kVmUrOHBXNzk3em5QVnU2N2RZMmxnT2Qr
TjdrSmpmcGJuR0wKVzJ4SjhYLzBveDkxT2NqNTZsZS8ydjNwVDMvcVRuakNFM1puT2N0WnVtdGQ2
MXJkT2M1eGppM0pJeHY1L09jLzM3MzYxYS91UHZuSgpUM1pmKzlyWCt1M20vODk1em5PZTduclh1
MTcvbmY3di8vNXZ5L0t6SVFJRWRqT0IvZmZmZjFhQzJXd3o2ZDN2ZnZmc05LYzV6YXg4CmxhVi9k
N25MWFdhbFZieHcweC83Mk1lV2ZuYTliWi8ydEtlZGZmLzczMSs0N2FsZlBQVFFRK2ZmclFUZ0xT
L09zWTUxckg3N0pRQnYKK2JaYjIyQU1zcStVTHR4ZExubzVxSm5kNlU1M21wVWVsM245amZmRG05
NzBwclBmL2U1M3U1Ulg2ZjJaM2VBR04xZ3pqNXJubWM5OAo1bGs1Q05pbHZIeVlBSUhkVDZERzNV
MjNnTlBpdXVZMXI5bDNnZTZ4eHg3ZHRhOTk3YjVyT09PL0Y3LzR4YnZyWHZlNjNVRUhIZFI5Cjk3
dmY3Wjd6bk9kMGh4MTJXUGZjNXo2My9LYXNuYzU3M3ZOMmozM3NZOWRjSWEzdG4vNzBwOTNiM3Zh
Mjd2M3ZmMysvWHBiVDR2blUKcHo2MTV1ZThzYjBGdnZHTmI4ejNoMTM5cHVsUjJIdnZ2YnZQZnZh
ejgwMmQ1Q1FuNmJ2NWYvT2IzM1FaWmtsNnpXdGUwMzM3MjkvdQpoMDlPY0lJVHpOZmQ2Sk8vLy8z
djNaV3VkS1crdXptZlNjdjZoamU4WWZmS1Y3NnkrOGxQZnRJOTVTbFA2Y3JCYWZlR043eWh5OXlL
CnkxLys4bjFML0JTbk9NVkdzN0FlQVFLdENOUkl2SkZqaERMdU9DdmpzUDJSZXhtbm1uMzg0eC92
UDFhNm9QdlhTcGR5djV5V3hOV3YKZnZYNUVYN3BZdHRoODhNV2NQbVIyZUg5dFY0b1AxRHo3UmJq
MlljLy9PRzFWcDMwOWZKRE84dmZ2LzcxcnkwdlJ6a2dPY0sydmVXRgpQWUkybU42UDBsVTczeGQy
dFFWODczdmZlNzZ0TTV6aERMTXlQK0Z3SmYvUWh6NDBPL3Zaeno1ZnB3eXhITzc5alM0ODVqR1Bt
Vy9qCm52ZTg1NnpNRitnL2VvRUxYS0IvdlFUNmZybDBUYy9LQVc3L1dwbmd1TkhOVzQ4QWdRWUVh
dHpkMUN6b1RKcktVWHJTQVFjYzBGM3kKa3Bmc240Ly9PZVl4ajltOStNVXY3bzUydEtQMWIyM2xH
R2o1b2V6T2YvN3p6N01zUDR6ejU3dlRrMk1jNHhoZC9xckJWcGJ0NkVjLworaEcyN2EwczUxWnU2
dzkvK0VQMzFyZSt0U3NCckx2S1ZhN1NuZTFzWit0YmhsdVJSMXEvNmJWSnlwaHI1aktrTlR4TWw3
dmM1ZnJXCmRpWURKcjMwcFMvdGZ2LzczdzlYMmREemw3emtKZjE2YWZrKzlhbFA3ZmJjODMrZFVP
VTM0M0NmTDEzZDNjMXVkclArdGN5MStNdGYKL25LNDl5MFFJTkMrd0tZQzhKZSs5S1g1Tjc3T2Rh
NHpmNzdveWNsT2RyTHVZaGU3V1AvV1Y3N3lsVVdyN1BScjZaYXI2UmUvK0VWOQp1dVpqYVlYMmsx
d3kyZVU3My9sT1AxdDd6WlZYL01aLy8vdmY3bWMvKzFuZjlabnU5SFN0YjJYS0VFQ0dBekpSN25P
ZisxeVgyZWU3CmtoSUlNMXMzWGJVLy8vblBkMlZUbS9wc2hoNnl6K1YwbmZlKzk3MzlFTWltTnJC
azVVd0lyS2YvWE9FS1YxaHpvdFdwVG5XcWZ2Z2wKbThwTTkweWkya3pLNUx6c2Ywa1p1c2tRVGsz
RDUvVzFySk9VYnV2VW9VU0F3UFlTMkZRQXpvelFtbXBMb0M0dmV0eHZ2LzI2NXovLworZDM5N25l
L1JXL3Y5R3ZEMHpUU0dsd3JaV1pwWnNjZS8vakg3MmVXcHNXZWx0T0pUM3ppTGkyTS9QQ08wLzN2
Zi8vdTBwZStkUC8zCm1jOThadnoyRHN0M3U5dmQ1dXZYbWF3SitIVWJhNDF0NThBaHAyeWQ4cFNu
N01xRXN1NmlGNzFvZDRsTFhLSWZUODl5UHBmdExFclgKdU1ZMSt1M2Y5NzczWGZSMi85cXZmLzNy
N2w3M3VsZVhjY3ljdXBYWnRSZTV5RVg2NWN4T2YrRUxYOWlOVzEzRGpWM3RhbGZyODZqago5OS84
NWpmNzRKUHRYZkNDRit6TFd5YmlkZWM2MTdtNk43M3BUY09QN3ZBODF0WGpGYTk0eFE3dmIrU0Yx
SG5wQWo3Y1gvTGZpalJzCnlhWStscVhoK3pWb0wxdC8rTjV3L1RLUmJ2ald3dWRwZGVmL1QvNXlR
Q3NSSUxETkJHcGY5RWE2elV1WDJYejg2bld2ZTkzOEkrTXgKNFBrYlM1N3M3Qmh3Tm5tNzI5MXVY
bzZuUC8zcEMzTXBYWDJ6MHAwNFg2OVUydzdQODM3V0c2Wm5QL3ZaOC9VeVJyY3NsU0EzSytjawo5
K3RuYkx5MFp2dlZNL1piODFzMEMvcWpILzNvckV6Z21hOVQxeDAvbHNrNnM0eTdqMU01L2FyLzdG
cXpvR043MHBPZWROM3RsOGwwCi9WanllUHRacnVWN3lFTWVNdnZBQno0d084NXhqck4wZXk5NHdR
c1diYVovN1l4blBPUDhzNDkvL09QWFhHK3piN3psTFcrWmIzZFgKeG9ETGdkTjhPK1VnYldreHlz
SFBmTjF5Z0xaMDNmR2JtUTlReDNYSDh4N0dZOERqejFvbVFHRDdDTlM0dTZrVzhQQ2lEdzkrOElP
NwpYLzd5bHlWbXJEYWxGWkV4dXFTTXIrWjh5WEhLdWFHM3YvM3QreFprTHVLUjgyYkxBVVAza1k5
OHBFc0xMTE5RazlMQ0xNRzhIMXVzCjI3alJqVzQwSDVkNzR4dmZ1TFNWK05yWHZyWkxGM0pTenZk
Tlh1dWxkRU9XVTFDNmRPVW1sY2xxL1VWTXltU3lyZ1NVN2tFUGVsQi8KMFpHODk3NzN2YThyZ1Mx
UE41d3ljell0NURwck4rZVVQdXRaeitySEx6T0dtakgwakUwbnhmR3VkNzNyMG0zbm5OaVVOMTJr
R1gvTgpNRVRtQWFRYmVEZ1VrTmI0c0lkazZVWjNzemZQZWM1emR1Yys5N243VXFXcnZweG10N0NF
Mlg5eTNudlNtYzUwcHY1ODk0VXJydkZpCjl0YzZMSlA1RkZzNU4yS05MTDFNZ01EdUxGQWo4VWFQ
TFhMa1hyNVAvMWU2eFdibDlLTlorU0h2bCtzczZJMXNhMmRhd0puNVdycmwKNXZtWGlXQTdaRlVt
cTh6S0tSdjlPbVdDeTZ3RW5SM1d5UXRQZXRLVDV0c3AzWXFIYXdrT1d6bDFwdmVpamFTMUZJdTBh
bjc0d3gvTwpWMW5XQWk2VGQrYjVMbW9kWnlPbFMzZStUam5vbVcrM1BsbldBaTVkeC9QUGx1NzMr
U3piK3RrOGZ2clRuNTZWaTB2TTEwc1B4ampWCkZuQytYODQ3THVPKzQxWDZiVmVEckxlVzlhTWYv
ZWpaZmU1em4vNnZqT1h1c0oyZGZXR3JXc0RKUDkrdkRGWDBKbVZZWTVhVy81ZS8KL09WWlppV1gw
NTFtajN2YzQyWmwyS1Yvdnh6QXpFb3czcWxpcCtlby92L0pmbk9iMjl4bVZnNXFabVZpWWY5Nm5R
VzlVeHYzSVFJRQptaENvY2JlclR6WmE2dEw2bVpVWm5QTWZrZnBqa3NkMHcrWTBvYXl6WGhvRzRI
U1hsbk1oMS93clZ5Q2FsUmJLdlBzdTNiNWxmSGxoCkZrOTR3aFBtWlZ1dlcvSzJ0NzN0Zk4zU01w
NXZyMXhXYy81NmFkbk5YeDgrS1MzRGVYbkt4SjNoVzMwd3J5N2pJUHV3aHoxc3Z1MWMKMEdSUlNs
ZDJ1bTF6SUpGVGJjWnByUUJjeHJUbjI4NUJSUTVHMWtwbFhIRyticGx0dThOcXd3RDhxRWM5YW9m
MzZ3dnB3cS9mdFp6MwpYVjlleWVOV0J1QVVPQmU5S0szaCtmZXAzMnY0bUl0ajVBQm1WMUtaRTdG
bUhybDRUVTU1cXNNWnU1S1B6eElnc0hzSzFMaTdmcDlwCitmVVpwa3dReW16aThrUFJqU2RBcFd1
eXRIUzYwNS8rOVAxcEhPbjIzVWhLZDJrdVBMRFdYeTdBa1FsT2hiTGZYQzc2VWI3QXdrMm4KbXpV
cFpVdFpscVhoNUxBeXpqbGZOUmNUcVpOa2NncEl6WGUrUW5tU1N3alcxM1BaelkybVlUZDFuYlEx
L216V0thMzl2b3QvTXpQSQo0MVJUSm9jdG15aVhydmRjWWpFcFhkRzFLNzErdmo2bUxGbDNyWlQ5
b2FicVVaZGJlOHlRUkJuclhscnNUT2hMZC95dXBDYys4WW45CnNFTUo1anRzSmhldjJYdnZ2ZnVK
ZVpueFhZY1NkbGpSQ3dRSU5DK3c2UUNjYjV4WnhHV3lVcGVadkhuTUROdGh5Zzl4eGpRekF6bmoK
aHpuUGNsbkt6Ulh5dzdmV1h4MnpyTnZJdU9YZDczNzMvaXBiOWJVODV0U1FqT0VsWmFadnlya3Na
WHkwbnFjN25CR2RjdFRUckhKYQowS0xaMEs5NjFhdjZUWmVXWXY4ZGwrVXpmRzlvOWRDSFByUTc4
TUFEdCt4SDlndGYrTUk4cTZ0ZTlhcno1NHVleEx5T2hXZGNQVmQzCldwUnlBNHhUbi9yVWk5N3FY
eHNlVUt5NVVnTnY1QXBYdVpKYjZqcmY2ZnJYdjM3M3pHYytzNy95VlE3NE10Y2c1K3ptMUtQTXBu
L1oKeTE2MlM5OHE4eEp5U2xKT3J5cVh2NXdmOE5XTjV2OVd4dHh6bGJqU1cxUmY5a2lBd0RZUzJI
Tlh2a3R1aHBDV2NJSmRmcFR5bzU5VApUaks1cE16MDdUZWRVMVRTR250eHVUREhXdW15bDcxc04y
eUJMbG92cDRxazFmbUFCenlnUHk4eUU0dHllazBtRmRXVTFrS0NjRkorCndISUFzTkdVMDNhR0ta
ZTVUSDVKYVFYWHlUTlp6aWs1Wlh3d1Q3dWIzL3ptODBsTi9RdnIvSk1iS09SQ0VybWtaMXBjT1ZV
cnJmbjgKMEdhU1cvNFNHR083MlRROGh6Z1hlbGd2bFNzK3pWZjU4WTkvM0dVeTBqZ2RHUzZCbUxv
c1k3SDl2cE9Eci9RSVpKOGNwaHp3NVR6dApuSnRicmdYZFQvTExhVkU1dFd0blUxclNPZTg0Znpt
dk9oUGNNdkV2KzBZQ2ZDYnMvZXBYditvdjc1cjNocjBOTzV1bnp4RWdzUHNJCjdGUUxlSzNpSCs5
NHgrdTdLek5iTkRONmF4ZG9ydjZUMmJtN2toS1FFc2h6VG1STjJlNHc1WWV4cGx6Y0lsM2c2LzNW
Z0QyKzBsRE8KZzYxQk1BRjRtSExkM3BveTIzb3pLUzNQZEJXbjVWdTdnTk5qa0NDUWxsWU9ZSEti
d2VSZlcvTWIzWDUrc0pPU1Ixcm02NldjMDF2VAo4QnpWK2xvZXg4TU13L2UyeS9OYzFTMEhRMGxs
Y3Q0T3diZCt6N1NRNi82WDIwRSs4cEdQckcvdDhtUHQxczRCV0hxVmZ2Q0RIM1E1CkR6Z3BCNSs1
VGFGRWdNRDJFdGlsRnZBeWlyUVUwb1ZXeDJGenY5TmNHR0pYVXdKVXRwTWZwYTkvL2V2OU9Hejk4
YXFQeVNPM1JNd3AKUGh0TjlXQ2hycCt1Nlp5UzlMem5QYS9McVRpNWlsUzlyMjl0R2FjTHU3NVdQ
N2VSeDJ3N1A5NjU2RWVDY1ZwYzZRSElRVU5TZnR4egpLa3oreXFTeWZyMk5iamZyWlR3MzkyWmVM
M2htblpvU3RJK01LVmNLcTdkMHpENVFKdVl0WmNqOGdQUUtwR1dhT3N1TlFzWkRKRXMzCnNNRTNj
K0dOdEliMzJtdXYvaXBkK2YrVGd3T0pBSUh0STdDcEFIekhPOTZ4N3hiTGtYbTZudGRMR1RlckFi
Z0dsL1Urczk3N0dZZEwKMTJrQ2NGb3RPWisydGlScml6WGJ5Qld2eXV6ZDlUYTM5UDEwTHljQUo2
VVZuR0NicnNMYW10L001S3RGR1dXaVY3ckphMWQ1T1pXcAovMUZQeTc1MjRUL3dnUS9zcm5qRkt4
N3UrdGVMdHBYWGhtUGU2WTVmNzBwUkNTSTFEZTNxYTBlR3h6Lys4WS85UHAzdm1tQzMzdjEzCmM1
QlhacWozQVRpOUp4bTZ5S1REamFTY04xNnZHcFk2SHVhMWFBSmI2aVJkNFRsQUd3NHZiQ1F2NnhB
Z3NQc0xiS29MT3EyMXRQNXkKWkw2Uk5HeFZydGNhMjhqMjZqcnA2cTZwZHJ0bU9aT0Y2bnRyelRD
dW44dGpXais1MVZ6K3hsM1FlVDgvZm5VQ1V1MkdycE92OHVPWgppVFJibVhKZ2thQ2VMdngwdHlm
bGgzbWpzOGt6SmxsVFpxcXZsOG81enZOVk1wNStaRXgxdG51KyszQmZXbVl4dk9CSVprVnZOR1dp
ClcvNy81QzluREF6VHNQZG0rSG90M3hIUnloN200emtCQXFzWDJGUUFycE5BTWlGazBSSDd1UGpE
VTJqU2F0aXFsQzdhbXNZL21ta3QKSmlYdmRGRXZTL2toekhoci9oWmRveml6WWVzZGFYSmFVR2JB
WnJac1VtWkpEOGRRbCtVemZDK3Q5WFQzSnM5bGFaOTk5cG0vZmVpaApoODZmTDN1UzAxZHFTbXRy
V2NwRXN0UmpVcTdxVkE4MGxuMW1PNzZYQThOOC82Uk1STXR3dzdLVUcxRFVHVGFXcW5nQUFBVzlT
VVJCClZQT3AvNDJNdGRmdERYc2tja09MWVZyci8xUDlQelNjTURmOG5PY0VDTFFyc0trQW5Ba2lT
ZW5lVExmWXNwUWZsSExkMzM2VkJMTDEKVG90WnRxM3hlL1VXYm5sOU9QRXF5OE56Vm5ONlI1MWNr
L2VHS1pPTzl0MTMzLzZsQk1SY3ZuRlJ5bXpvbWpMak9yT3Jrelk3K2FwdQpJN09UYTh0N1dTdTFY
QlNpZm1UZHJ1UzZZb3pyUmZ2VFlzK2xMQmVsakJFUHgrTXpBL2lJVExsOFl6M0h1OTRONklqTWI3
enRCTmFhCmZ5WUhqbFBHK3BPeXoyYVcvVnJCTU90a1NLQWVBSmFMeCtTbERhZjYveWNmMk1obEtB
OCsrT0Q1NldGcjdaOGJ6dHlLQkFqc2RnS2IKQ3NCM3Z2T2Q1K2ZObHB1RXIzbk4zTncrTGVmcTFz
a3RhYzNsVm01YmxZWXR6OW9hcWRzdVY4MmFuNWVjQUpkVGZzYm51T1l6T1IwbwpyZHFrakczWDFu
M2RUbjNNblg4eW5weFV1MnpUV3N4MmR5WmxFazlOdDdyVnJYYVk2WndmLzF6THV0N3BLRjJUT1pk
Nkl5bmQ0c09aCnVja3I5NjBkWG1RalkvSGxrcUh6NEp5Nyt3eUQ4VWJ5MmV3Nk9ZVW5RUzUvQ1Nx
clRwa3NWZlBQZmp0T21ReFhyc2JXdjV4QW5kNk4KOUJBTVUxckc2UTJwUXhBWjZuajR3eDgrWEdY
ZDU3bndSbWEzSjczem5lL3M1MUhrLzhxaWxBbDR0UmNrZDRJcU53Wlp0SnJYQ0JCbwpXR0JUQVRp
QnFGd1R0Lys2bWZ5VUg1UGNSdTlwVDN0YS8xcTZmUE9qa1lzMzFOdllaYWJ3VnMvZXJGMkd5VFRu
RjljV1NaWVRzTktkClhBTitMZ2hTYjJPWEx0cmNQaS9udTViTENXYjFmclowL1U3OUN3ditHYmFD
ODNhKzQ4N09HazZ3MjZ0TTlrbktxU2E1TUVlOE1yRXQKejlNMW5jbHJkWnd4RitzWWp1MzJIMXp5
VDRKZERkaTVBRXBtOWNZaXR3Tk1YV1Fvb0U0RXl2aGl4cGMzMDQyNkpPdG0zMHJ3emJ5RwplcHZM
ekhYSVBwSnUzNXovbmYwdHordndRK1kyNVBsYUIyM0xJSEtLVVQyM092OUhVdmZwVGFrVDR0SXJr
LzlUK2IrVkNXTFp6M0pPCmNEMUFXTFp0N3hFZzBKaEF1UWpFclB5bkx3MnZqYWNTOU5hOTNWMEpo
TFBjbktGMEVTL2M4UEJhME9OYnN5Mzh3T0RGRWxSelRjcjUKWHpuZGFmRHUvNTZXRnN1c0JMWDVP
c1AxODd4MGk4OUtJSjJWOGRVZFBqdCtvWFNienJlVDcxVm1RWTlYT2R6eXNwc3haTVhjdUtHYwpV
enJmNXJoc1djNk5BY3JGUmc2MzNicFFac2YybjEzcmRvU2wyMzJXNnczblpoU0x0cDNYeW9VL1p1
WEtXWFdUT3p5V29OeC9Ob2JMClVxNWJYUE1vd1dYaHFybXVkVjFuaXRzUkhuVFFRZlA4Uzh0MVlS
bnpZaGtUbjVWN01zL1hyV1VlUHBZTGJ5eThNY1dhRzEzd1J1cC8KZUZPVDRmYUh6MHZRbjVXVzhv
SXRlSWtBZ1pZRmF0emRJMDh5SnBtTEVXd21wZXNzTFlXY0xwUEpQSG5Na1gyNlpzdTlUZnNyQmcx
YgpxcHZaOWxhdW0yN2pqRmVuMnpsbHpxazZ1ZXBVdW1kcjEvSlc1cmZSYlpXZHB6ZkxiZjNTUlo0
V2I3cVFNMUduQklHK0ZWeGJaQnZkCjVuaTl6TFROV0hBdVVYbklJWWYwNXdXblRqSlduS3R0Wld4
ZU9yeEE2aVZYdk1wNXQrbWh5T2x1dVRwV2VpSFNLaDFlU3ZUd245ejgKVXVvbCtXVEdmaDR6TDZI
Y283bnZxY2l0SG5PRnJPRjhoODNuNEJNRUNPeU9Bb20zaWJzN0hZQ0hYeXBqcmJrVVpjWVcxNXQ5
Ty95Ywo1d1FJL0U4Z2N3MHlNem9USElkekhQZ1FJTEQ5QkdvQTFnVGFmblhyR3hFZ1FJQkFBd0lD
Y0FPVnBJZ0VDQkFnc1AwRU5uVXB5clcrCmZpNVNuL0hWblowWnZOWjJ2VTdneUNLUWNlZU1DYm5p
MVpHbHhuMVBBbDIzSlFFNHAvNzQ0YkE3RWRoNWdlRjFvWGQrS3o1SmdFQkwKQXJxZ1c2b3RaU1ZB
Z0FDQmJTTWdBRyticXZSRkNCQWdRS0FsQVFHNHBkcFNWZ0lFQ0JEWU5nSUM4TGFwU2wrRUFBRUNC
Rm9TRUlCYgpxaTFsSlVDQUFJRnRJeUFBYjV1cTlFVUlFQ0JBb0NVQkFiaWwybEpXQWdRSUVOZzJB
Z0x3dHFsS1g0UUFBUUlFV2hJUWdGdXFMV1VsClFJQUFnVzBqSUFCdm02cjBSUWdRSUVDZ0pRRUJ1
S1hhVWxZQ0JBZ1EyRFlDQXZDMnFVcGZoQUFCQWdSYUV1aHZ4bkRnZ1FlMlZHWmwKSlVDQUFBRUN6
UW9rNXU2Nzc3N2RIck9TRGpqZ2dHYS9pSUlUSUVDQUFJSFdCUGJiYjcvdS93RWNBTFdERDhnWUhB
QUFBQUJKUlU1RQpya0pnZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83522</attachid>
            <date>2011-02-23 12:25:44 -0800</date>
            <delta_ts>2011-03-01 00:33:13 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>NewFinalPatch.diff</filename>
            <type>text/plain</type>
            <size>139826</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDcwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTI0IEBACisyMDExLTAyLTIzICBOaWtvbGFz
IFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyAxLjEgMm5kIEVkaXRpb24gY29sb3ItcHJv
cC0wNS10LnN2ZyBleHBvc2VzIGJ1ZyBpbiAnY3VycmVudENvbG9yJyBoYW5kbGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4MDAKKworICAgICAg
ICBTdG9wIHN0b3JpbmcgUmVmUHRyPFNWR1BhaW50PiBvYmplY3RzIGluIHRoZSBTVkdSZW5kZXJT
dHlsZSBmb3IgZmlsbC9zdHJva2UuIFRoZXNlIGFyZSB0aGUKKyAgICAgICAgbGFzdCB0d28gb2Jq
ZWN0cyB0aGF0IGhlbGQgcmVmZXJlbmNlcyB0byBDU1NWYWx1ZXMsIHRoZXkncmUgYWxsIGdvbmUg
bm93LCBhbGlnbmluZyBiZXR0ZXIgd2l0aCBSZW5kZXJTdHlsZS4KKyAgICAgICAgSXQncyBhbHNv
IGRhbmdlcm91cywgYXMgYSBTVkdQYWludCBvYmplY3QgY2FuIGJlIHNoYXJlZCBieSBtdWx0aXBs
ZSBTVkdSZW5kZXJTdHlsZXMgKE1hcHBlZEF0dHJpYnV0ZSwgd2lsbAorICAgICAgICBvbmNlIGNy
ZWF0ZSBhIENTU1N0eWxlRGVjbGFyYXRpb24gZm9yIGZpbGw9InJlZCIgYW5kIHJldXNlIGl0IHdo
ZXJlIHBvc3NpYmxlKSwgYW5kIGl0IHdhcyBlYXN5IHRvIG11dGF0ZSB0aGVtLgorICAgICAgICBJ
bnN0ZWFkIHN0b3JlIGEgQ29sb3IsIGFuIFVSSSBhbmQgYSBwYWludCB0eXBlIGluIFNWR1JlbmRl
clN0eWxlLCBlbm91Z2ggdG8gY3JlYXRlIGEgU1ZHUGFpbnQgb2JqZWN0LCBpZiBuZWVkZWQgKGVn
IGZvciBjb21wdXRlZCBzdHlsZXMpLgorCisgICAgICAgIDxnIGNvbG9yPSJyZWQiPjxyZWN0IGZp
bGw9ImN1cnJlbnRDb2xvciIvPiBhbHJlYWR5IHdvcmtlZCBmaW5lIGluIHRydW5rLCBidXQKKyAg
ICAgICAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0iZ3JlZW4iPjxyZWN0IGNvbG9yPSJy
ZWQiLz4gcHJvY3VkZWQgYSByZWQgcmVjdGFuZ2xlLgorCisgICAgICAgIEluIG9yZGVyIHRvIGZp
eCB0byBidWcgd2UgaGF2ZSB0byByZXNvbHZlIGFsbCBjdXJyZW50Q29sb3IgdmFsdWVzIGZvciBT
VkdQYWludCBvYmplY3RzLCBpbiBTVkdDU1NTdHlsZVNlbGVjdG9yLAorICAgICAgICBhcyBpdCdz
IGFscmVhZHkgZG9uZSBmb3IgU1ZHQ29sb3Igb2JqZWN0cyAoc3RvcC1jb2xvciwgZmxvb2QtY29s
b3IsIGV0Yy4pIGluc3RlYWQgb2YgaW4gUmVuZGVyU1ZHUmVzb3VyY2U6OmZpbGwvc3Ryb2tlUGFp
bnRpbmdSZXNvdXJjZSwKKyAgICAgICAgd2hlbiB0cnlpbmcgdG8gdXNlIHRoZSBwYWludCBzZXJ2
ZXIuIFRoZSBjb3JyZWN0ICJjb2xvciIgdmFsdWUgdGhhdCBzaG91bGQgYmUgdXNlZCBmcm9tIHRo
ZSBSZW5kZXJTdHlsZSwgaXMgZGlyZWN0bHkKKyAgICAgICAgYXZhaWxhYmxlIGluIENTU1N0eWxl
U2VsZWN0b3I6IGluIGFwcGx5UHJvcGVydHkgbV9zdHlsZS0+Y29sb3IoKSBnaXZlcyB0aGUgZGVz
aXJlZCB2YWx1ZS4gSW4gQ1NTU3R5bGVTZWxlY3RvciBpdCdzIGhhbmRsZWQKKyAgICAgICAgZXhh
Y3RseSB0aGlzIHdheSBmb3Igbm9uLVNWRyBjdXJyZW50Q29sb3IgcHJvcGVydGllcy4gQWxzbyBm
aXggY29tcHV0ZWQgc3R5bGVzLCB3aGljaCBkaWQgbm90IHJlc29sdmUgY3VycmVudENvbG9yIGZv
ciBTVkdQYWludC9TVkdDb2xvci4KKworICAgICAgICBJdCB0dXJucyBvdXQgdGhlIFNWR1BhaW50
L1NWR0NvbG9yIEFQSSBpcyBub3QgaW1wbGVtZW50ZWQgYXQgYWxsLCBmaXggdGhhdC4gVGhvdWdo
IHRoZSBBUEkgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkICh5ZXQ/KSBhcworICAgICAgICB3ZSBk
b24ndCBzdXBwb3J0IG11dGFibGUgQ1NTVmFsdWUgZGVyaXZlZCBvYmplY3RzIGZvciB2YXJpb3Vz
IHJlYXNvbnMgKG91ciBDU1NWYWx1ZXMgYXJlIHNoYXJlZCwgd2UnZCBuZWVkIGNvcHktb24td3Jp
dGUgc3VwcG9ydAorICAgICAgICB0byBtYWtlIHRoYXQgd29yaywgYW5kIGhhbmRsZSBzdHlsZSBp
bnZhbGlkYXRpb24sIGN1cnJlbnRseSBhIENTU1ZhbHVlIGlzIG5vdCB0aWVkIHRvIGEgUmVuZGVy
U3R5bGUgaW4gYW55IHdheSwgbWFraW5nIGR5bmFtaWMgdXBkYXRlcyBpbXBvc3NpYmxlKS4KKyAg
ICAgICAgU28geW91IGNhbiBiYXNpY2FsbHkgZ3JhYiBhIFNWR1BhaW50L1NWR0NvbG9yIG9iamVj
dCB0aHJvdWdoIGdldFByb3BlcnR5Q1NTVmFsdWUoLi4pLCBtdXRhdGUgaXQsIHRoYXQgd2lsbCBh
bGwgd29yayBhcyBleHBlY3RlZAorICAgICAgICBidXQgdGhlIGNoYW5nZSB3b24ndCB0YWtlIGVm
ZmVjdCAoc2VlIENTU1ByaW1pdGl2ZVZhbHVlOjpzZXRDc3NUZXh0LCBmb3IgbW9yZSByZWFzb25z
IHdoeSB0aGlzIEFQSSBpcyBub3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0KS4KKworICAgICAgICBX
ZSBjYW4gc3RpbGwgZmlndXJlIG91dCB3aGV0aGVyIHdlIHdhbnQgdG8gaW1wbGVtZW50IGNvcHkt
b24td3JpdGUsIGJ1dCBubyBicm93c2VyIGN1cnJlbnRseSBzdXBwb3J0cyBzdHlsZSBtdXRhdGlv
biB0aHJvdWdoIHRoYXQgQ1NTT00gQVBJLgorCisgICAgICAgIFRlc3RzOiBzdmcvVzNDLVNWRy0x
LjEtU0UvY29sb3ItcHJvcC0wNS10LnN2ZyAoZml4ZWQsIHRha2VuIGZyb20gU1ZHIDEuMSAybmQg
RWRpdGlvbikKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY29sb3ItZmls
bC1jdXJyZW50Q29sb3IuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2RvbS9TVkdDb2xvci5odG1s
CisgICAgICAgICAgICAgICBzdmcvZG9tL1NWR1BhaW50Lmh0bWwKKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbTogUmVtb3ZlIFNWR1BhaW50VHlwZSBoYW5kbGlu
Zy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogRGl0dG8u
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTogRGl0dG8u
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IERpdHRvLgor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDogQWRkIGFkanVzdFNW
R1BhaW50Rm9yQ3VycmVudENvbG9yKCkgbWV0aG9kLCBpbXBsZW1lbnRlZCBpbiBTVkdDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uCisgICAgICAgICogY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmFkanVzdFNWR1BhaW50Rm9yQ3VycmVudENvbG9yKTogUmVwbGFjZSAiY3VycmVudENv
bG9yIiBieSBzdHlsZS0+Y29sb3IoKSwgaWYgbmVlZGVkIGZvciBTVkdQYWludCBvYmplY3RzLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQcm9w
ZXJ0eUNTU1ZhbHVlKTogUGlwZSBTVkdDb2xvciB0aHJvdWdoIGN1cnJlbnRDb2xvck9yVmFsaWRD
b2xvciwgU1ZHUGFpbnQgb2JqZWN0cyB0aHJvdWdoIGFkanVzdFNWR1BhaW50Rm9yQ3VycmVudENv
bG9yKCkuCisgICAgICAgICogY3NzL1NWR0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOiBVc2UgbmV3IFNWR1BhaW50IGNyZWF0ZSgpIGZ1
bmN0aW9ucywgbm90IHJlbHlpbmcgYW55bW9yZSBvbiBzaXggZGlmZmVyZW50IGNyZWF0ZSgpIG92
ZXJsb2Fkcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdQYWludCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR0NvbG9yKTogVXNlIG5l
dyBTVkdDb2xvciBjcmVhdGUoKSBmdW5jdGlvbnMuCisgICAgICAgICogY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlT
VkdQcm9wZXJ0eSk6IFN0b3JlIGZpbGxQYWludFR5cGUvQ29sb3IvVXJpIHNlcGVyYXRlZCBpbiB0
aGUgUmVuZGVyU3R5bGUsIGRvbid0IHN0b3JlIGEgcmVmY291bnRlZCBTVkdQYWludCBvYmplY3Qu
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpkaWZmKTogQWRhcHQgdG8gUmVmUHRyPFNWR1BhaW50
PiByZW1vdmFsLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbE9wYWNp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFp
bnRVcmkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VP
cGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tl
UGFpbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ry
b2tlUGFpbnRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bFN0cm9rZVBhaW50VXJpKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0
aWFsU3Ryb2tlTWl0ZXJMaW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbFN0b3BPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpp
bml0aWFsRmxvb2RPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpz
ZXRGaWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OnNldFN0cm9r
ZVBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpmaWxsUGFpbnRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpmaWxsUGFpbnRDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50VXJpKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVuZGVyU3R5bGU6OnN0cm9rZVBhaW50Q29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVuZGVyU3R5bGU6OnN0cm9rZVBhaW50VXJpKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlbmRlclN0eWxlOjpoYXNTdHJva2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5
bGU6Omhhc0ZpbGwpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURl
ZnMuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRmlsbERhdGE6OlN0eWxlRmls
bERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGaWxsRGF0YTo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVN0cm9rZURhdGE6OlN0eWxlU3Ryb2tlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVN0cm9rZURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaDogRGl0dG8uCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHA6IERpdHRvLiAoKyBSZW1vdmUgY3VycmVu
dENvbG9yIHN1cHBvcnQsIGFsbCBoYW5kbGVkIGluIHRoZSBDU1MgbGV2ZWwgbm93KS4KKyAgICAg
ICAgKFdlYkNvcmU6OnJlcXVlc3RQYWludGluZ1Jlc291cmNlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHA6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50aW5nUmVzb3VyY2VGcm9tU1ZHUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUmVzb3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNlcyk6CisgICAgICAgICogc3ZnL1NWR0Nv
bG9yLmNwcDogUmV3cml0ZSwgdG8gYWN0dWFsbHkgaW1wbGVtZW50IHRoZSBTVkdDb2xvciBBUEku
CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6U1ZHQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ29sb3I6OnNldFJHQkNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpj
b2xvckZyb21SR0JDb2xvclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0
UkdCQ29sb3JJQ0NDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0Q29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29sb3I6OmNzc1RleHQpOiBSZXR1cm5zIHNlcmlhbGl6
ZWQgY29sb3JzIG5vdywgYWZmZWN0aW5nIHNldmVyYWwgdGVzdGNhc2VzLCB0aGF0IG5lZWQgcmVi
YXNlbGluZXMuCisgICAgICAgICogc3ZnL1NWR0NvbG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdDb2xvcjo6Y3JlYXRlRnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6
Y3JlYXRlRnJvbUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbG9yOjpjb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6Y29sb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0NvbG9yOjpzZXRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0Q29s
b3JUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHQ29sb3IuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YWludC5jcHA6IFJld3JpdGUsIHRvIGFjdHVhbGx5IGltcGxlbWVudCB0aGUgU1ZHUGFpbnQgQVBJ
LgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JUeXBlRm9yUGFpbnRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhaW50OjpTVkdQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludDo6
c2V0VXJpKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpzZXRQYWludCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYWludDo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWlu
dDo6bWF0Y2hlc1RhcmdldFVSSSk6CisgICAgICAgICogc3ZnL1NWR1BhaW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYWludDo6Y3JlYXRlVW5rbm93bik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYWludDo6Y3JlYXRlTm9uZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludDo6Y3JlYXRl
Q3VycmVudENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpjcmVhdGVDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYWludDo6Y3JlYXRlVVJJKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhaW50OjpjcmVhdGVVUklBbmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YWludDo6cGFpbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50Ojp1cmkpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YWludDo6aXNTVkdQYWludCk6CisgICAgICAgICogc3ZnL1NWR1BhaW50LmlkbDoKKwogMjAxMS0w
Mi0yMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gNzkzNDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDcgKzUyLDcgQEAgbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0gKCAiYm9vbGVhbiIg
PT4gMQogCiBteSAlc3RyaW5nVHlwZUhhc2ggPSAoIkRPTVN0cmluZyIgPT4gMSwgIkF0b21pY1N0
cmluZyIgPT4gMSk7CiAKLW15ICVub25Qb2ludGVyVHlwZUhhc2ggPSAoIkRPTVRpbWVTdGFtcCIg
PT4gMSwgIkNvbXBhcmVIb3ciID0+IDEsICJTVkdQYWludFR5cGUiID0+IDEpOworbXkgJW5vblBv
aW50ZXJUeXBlSGFzaCA9ICgiRE9NVGltZVN0YW1wIiA9PiAxLCAiQ29tcGFyZUhvdyIgPT4gMSk7
CiAKIG15ICVzdmdBbmltYXRlZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAi
U1ZHQW5pbWF0ZWRCb29sZWFuIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNW
R0FuaW1hdGVkRW51bWVyYXRpb24iID0+IDEsICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMjM5Miw3ICsyMzkyLDYg
QEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIk5vZGVGaWx0ZXIiID0+ICJSZWZQdHI8Tm9kZUZp
bHRlcj4iLAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiIsCiAgICAgIklEQktleSIgPT4gIlJlZlB0cjxJREJLZXk+IiwKLSAgICAi
U1ZHUGFpbnRUeXBlIiA9PiAiU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSIsCiAgICAgImJvb2xlYW4i
ID0+ICJib29sIiwKICAgICAiZG91YmxlIiA9PiAiZG91YmxlIiwKICAgICAiZmxvYXQiID0+ICJm
bG9hdCIsCkBAIC0yNDc5LDcgKzI0NzgsNiBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICBy
ZXR1cm4gInZhbHVlVG9EYXRlKGV4ZWMsICR2YWx1ZSkiIGlmICR0eXBlIGVxICJEYXRlIjsKICAg
ICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUudG9JbnQzMihl
eGVjKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKLSAgICByZXR1cm4gInN0YXRpY19jYXN0
PFNWR1BhaW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS50b0ludDMyKGV4ZWMpKSIgaWYgJHR5cGUg
ZXEgIlNWR1BhaW50VHlwZSI7CiAKICAgICBpZiAoJHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAg
ICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCAkdmFsdWUpIiBp
ZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydE51bGxUb051bGxTdHJp
bmcifSB8fCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwpAQCAt
MjUzOCw3ICsyNTM2LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4gImpz
TnVtYmVyKHN0ZDo6bWF4KDAsICIgLiAkdmFsdWUgLiAiKSkiOwogICAgIH0KIAotICAgIGlmICgk
Y29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkdHlwZSBlcSAiU1ZHUGFp
bnRUeXBlIiBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikg
ewogICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9KU051bWJlckNlbGwuaD4ifSA9IDE7
CiAgICAgICAgIHJldHVybiAianNOdW1iZXIoJHZhbHVlKSI7CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBt
CShyZXZpc2lvbiA3OTM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0JKHdvcmtpbmcgY29weSkKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdWIg
R2V0T2JqQ1R5cGUKIAogICAgIHJldHVybiAiaWQgPCRuYW1lPiIgaWYgSXNQcm90b2NvbFR5cGUo
JHR5cGUpOwogICAgIHJldHVybiAkbmFtZSBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVU
eXBlKCR0eXBlKSBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKLSAgICByZXR1cm4gInVuc2ln
bmVkIHNob3J0IiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyIgb3IgJHR5cGUgZXEgIlNWR1BhaW50
VHlwZSI7CisgICAgcmV0dXJuICJ1bnNpZ25lZCBzaG9ydCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVI
b3ciOwogICAgIHJldHVybiAiJG5hbWUgKiI7CiB9CiAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdWIg
R2V0UHJvcGVydHlBdHRyaWJ1dGVzCiAgICAgICAgIHB1c2goQGF0dHJpYnV0ZXMsICJjb3B5Iik7
CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkg
ewogICAgICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAicmV0YWluIik7Ci0gICAgfSBlbHNpZiAoISRj
b2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpICYmICEkY29kZUdlbmVyYXRvci0+SXNQ
cmltaXRpdmVUeXBlKCR0eXBlKSAmJiAkdHlwZSBuZSAiRE9NVGltZVN0YW1wIiAmJiAkdHlwZSBu
ZSAiQ29tcGFyZUhvdyIgJiYgJHR5cGUgbmUgIlNWR1BhaW50VHlwZSIpIHsKKyAgICB9IGVsc2lm
ICghJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkgJiYgISRjb2RlR2VuZXJhdG9y
LT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpICYmICR0eXBlIG5lICJET01UaW1lU3RhbXAiICYmICR0
eXBlIG5lICJDb21wYXJlSG93IikgewogICAgICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAicmV0YWlu
Iik7CiAgICAgfQogCkBAIC01MTUsNyArNTE1LDYgQEAgc3ViIEdldE9iakNUeXBlR2V0dGVyCiAg
ICAgcmV0dXJuICRhcmdOYW1lIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5
cGUpIG9yICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpIG9yIElzTmF0aXZlT2Jq
Q1R5cGUoJHR5cGUpOwogICAgIHJldHVybiAkYXJnTmFtZSAuICJOb2RlIiBpZiAkdHlwZSBlcSAi
RXZlbnRUYXJnZXQiOwogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8V2ViQ29yZTo6UmFuZ2U6OkNv
bXBhcmVIb3c+KCRhcmdOYW1lKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwotICAgIHJldHVy
biAic3RhdGljX2Nhc3Q8V2ViQ29yZTo6U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJGFyZ05hbWUp
IiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAgICByZXR1cm4gIldURjo6Z2V0UHRyKG5h
dGl2ZUV2ZW50TGlzdGVuZXIpIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CiAgICAgcmV0
dXJuICJXVEY6OmdldFB0cihuYXRpdmVOb2RlRmlsdGVyKSIgaWYgJHR5cGUgZXEgIk5vZGVGaWx0
ZXIiOwogICAgIHJldHVybiAiV1RGOjpnZXRQdHIobmF0aXZlUmVzb2x2ZXIpIiBpZiAkdHlwZSBl
cSAiWFBhdGhOU1Jlc29sdmVyIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA3OTM0NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNv
cHkpCkBAIC0yODA0LDcgKzI4MDQsNiBAQCBzdWIgR2V0TmF0aXZlVHlwZQogICAgIHJldHVybiAi
Ym9vbCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOwogICAgIHJldHVybiAiU3RyaW5nIiBpZiAkdHlw
ZSBlcSAiRE9NU3RyaW5nIjsKICAgICByZXR1cm4gIlJhbmdlOjpDb21wYXJlSG93IiBpZiAkdHlw
ZSBlcSAiQ29tcGFyZUhvdyI7Ci0gICAgcmV0dXJuICJTVkdQYWludDo6U1ZHUGFpbnRUeXBlIiBp
ZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAgICByZXR1cm4gIkRPTVRpbWVTdGFtcCIgaWYg
JHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICJ1bnNpZ25lZCIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGludCI7CiAgICAgcmV0dXJuICJOb2RlKiIgaWYgJHR5cGUgZXEgIkV2ZW50
VGFyZ2V0IiBhbmQgJGlzUGFyYW1ldGVyOwpAQCAtMjg4MSw3ICsyODgwLDYgQEAgc3ViIEpTVmFs
dWVUb05hdGl2ZQogICAgIHJldHVybiAidG9VSW50MzIoJHZhbHVlKSIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CiAgICAgcmV0dXJuICJ0
b0ludDY0KCR2YWx1ZSkiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciIG9yICR0eXBl
IGVxICJsb25nIGxvbmciOwogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVI
b3c+KCR2YWx1ZS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwotICAg
IHJldHVybiAic3RhdGljX2Nhc3Q8U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJHZhbHVlLT5Ub0lu
dDMyKCktPkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwogICAgIHJl
dHVybiAidG9XZWJDb3JlRGF0ZSgkdmFsdWUpIiBpZiAkdHlwZSBlcSAiRGF0ZSI7CiAgICAgcmV0
dXJuICJ2OFZhbHVlVG9XZWJDb3JlRE9NU3RyaW5nTGlzdCgkdmFsdWUpIiBpZiAkdHlwZSBlcSAi
RE9NU3RyaW5nTGlzdCI7CiAKQEAgLTMwMzUsNyArMzAzMyw2IEBAIG15ICVub25fd3JhcHBlcl90
eXBlcyA9ICgKICAgICAnRE9NU3RyaW5nJyA9PiAxLAogICAgICdDb21wYXJlSG93JyA9PiAxLAog
ICAgICdTZXJpYWxpemVkU2NyaXB0VmFsdWUnID0+IDEsCi0gICAgJ1NWR1BhaW50VHlwZScgPT4g
MSwKICAgICAnRE9NVGltZVN0YW1wJyA9PiAxLAogICAgICdKU09iamVjdCcgPT4gMSwKICAgICAn
RE9NT2JqZWN0JyA9PiAxLApAQCAtMzExMiw3ICszMTA5LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1
ZQogICAgIHJldHVybiAidjhEYXRlT3JOdWxsKCR2YWx1ZSkiIGlmICR0eXBlIGVxICJEYXRlIjsK
ICAgICAjIGxvbmcgbG9uZyBhbmQgdW5zaWduZWQgbG9uZyBsb25nIGFyZSBub3QgcmVwcmVzZW50
YWJsZSBpbiBFQ01BU2NyaXB0LgogICAgIHJldHVybiAidjg6Ok51bWJlcjo6TmV3KHN0YXRpY19j
YXN0PGRvdWJsZT4oJHZhbHVlKSkiIGlmICR0eXBlIGVxICJsb25nIGxvbmciIG9yICR0eXBlIGVx
ICJ1bnNpZ25lZCBsb25nIGxvbmciIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiOwotICAgIHJl
dHVybiAidjg6Ok51bWJlcjo6TmV3KCR2YWx1ZSkiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1p
dGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJTVkdQYWludFR5cGUiOworICAgIHJldHVybiAi
djg6Ok51bWJlcjo6TmV3KCR2YWx1ZSkiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5
cGUoJHR5cGUpOwogICAgIHJldHVybiAiJHZhbHVlLnY4VmFsdWUoKSIgaWYgJG5hdGl2ZVR5cGUg
ZXEgIlNjcmlwdFZhbHVlIjsKIAogICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBl
KCR0eXBlKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDkgKzIy
LDkgQEAKICNkZWZpbmUgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uX2gKIAogI2luY2x1ZGUg
IkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM0LDYgKzM0LDcgQEAgY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBOb2RlOwog
Y2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBTaGFkb3dEYXRhOworY2xhc3MgU1ZHUGFpbnQ7CiAK
IGVudW0gRVVwZGF0ZUxheW91dCB7IERvTm90VXBkYXRlTGF5b3V0ID0gZmFsc2UsIFVwZGF0ZUxh
eW91dCA9IHRydWUgfTsKIApAQCAtNzYsNyArNzcsMTAgQEAgcHJpdmF0ZToKIAogICAgIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yU2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqLCBpbnQsIFJl
bmRlclN0eWxlKikgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3Vy
cmVudENvbG9yT3JWYWxpZENvbG9yKFJlbmRlclN0eWxlKiwgY29uc3QgQ29sb3ImKSBjb25zdDsK
LSAgICAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGFkanVzdFNW
R1BhaW50Rm9yQ3VycmVudENvbG9yKFBhc3NSZWZQdHI8U1ZHUGFpbnQ+LCBSZW5kZXJTdHlsZSop
IGNvbnN0OworI2VuZGlmCisKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogICAgIFBzZXVkb0lk
IG1fcHNldWRvRWxlbWVudFNwZWNpZmllcjsKICAgICBib29sIG1fYWxsb3dWaXNpdGVkU3R5bGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU1ZHUGFpbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw2ICs2MCwxNCBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gc3Ryb2tlRGFzaEFyCiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwog
fQogCitQYXNzUmVmUHRyPFNWR1BhaW50PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmFk
anVzdFNWR1BhaW50Rm9yQ3VycmVudENvbG9yKFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IG5ld1BhaW50
LCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Cit7CisgICAgUmVmUHRyPFNWR1BhaW50PiBwYWlu
dCA9IG5ld1BhaW50OworICAgIGlmIChwYWludC0+cGFpbnRUeXBlKCkgPT0gU1ZHUGFpbnQ6OlNW
R19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SIHx8IHBhaW50LT5wYWludFR5cGUoKSA9PSBTVkdQYWlu
dDo6U1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SKQorICAgICAgICBwYWludC0+c2V0Q29s
b3Ioc3R5bGUtPmNvbG9yKCkpOworICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7Cit9CisKIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0U1ZHUHJv
cGVydHlDU1NWYWx1ZShpbnQgcHJvcGVydHlJRCwgRVVwZGF0ZUxheW91dCB1cGRhdGVMYXlvdXQp
IGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IG1fbm9kZS5nZXQoKTsKQEAgLTEyNywxMyArMTM2
LDEzIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAg
ICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+ZmlsdGVy
UmVzb3VyY2UoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOwogICAgICAgICAgICAgcmV0
dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZENvbG9yOgotICAgICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVDb2xvcihzdmdTdHlsZS0+Zmxvb2RDb2xvcigpLnJnYigp
KTsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50Q29sb3JPclZhbGlkQ29sb3Ioc3R5bGUsIHN2
Z1N0eWxlLT5mbG9vZENvbG9yKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdD
b2xvcjoKLSAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlQ29sb3Io
c3ZnU3R5bGUtPmxpZ2h0aW5nQ29sb3IoKS5yZ2IoKSk7CisgICAgICAgICAgICByZXR1cm4gY3Vy
cmVudENvbG9yT3JWYWxpZENvbG9yKHN0eWxlLCBzdmdTdHlsZS0+bGlnaHRpbmdDb2xvcigpKTsK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0b3BDb2xvcjoKLSAgICAgICAgICAgIHJldHVybiBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlQ29sb3Ioc3ZnU3R5bGUtPnN0b3BDb2xvcigpLnJnYigp
KTsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50Q29sb3JPclZhbGlkQ29sb3Ioc3R5bGUsIHN2
Z1N0eWxlLT5zdG9wQ29sb3IoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgotICAg
ICAgICAgICAgcmV0dXJuIHN2Z1N0eWxlLT5maWxsUGFpbnQoKTsKKyAgICAgICAgICAgIHJldHVy
biBhZGp1c3RTVkdQYWludEZvckN1cnJlbnRDb2xvcihTVkdQYWludDo6Y3JlYXRlKHN2Z1N0eWxl
LT5maWxsUGFpbnRUeXBlKCksIHN2Z1N0eWxlLT5maWxsUGFpbnRVcmkoKSwgc3ZnU3R5bGUtPmZp
bGxQYWludENvbG9yKCkpLCBzdHlsZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlLZXJuaW5n
OgogICAgICAgICAgICAgcmV0dXJuIFNWR0xlbmd0aDo6dG9DU1NQcmltaXRpdmVWYWx1ZShzdmdT
dHlsZS0+a2VybmluZygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmtlckVuZDoKQEAg
LTE0OSw3ICsxNTgsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVj
CiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3ZnU3R5
bGUtPm1hcmtlclN0YXJ0UmVzb3VyY2UoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOwog
ICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENT
U1ZhbHVlTm9uZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6Ci0gICAgICAgICAg
ICByZXR1cm4gc3ZnU3R5bGUtPnN0cm9rZVBhaW50KCk7CisgICAgICAgICAgICByZXR1cm4gYWRq
dXN0U1ZHUGFpbnRGb3JDdXJyZW50Q29sb3IoU1ZHUGFpbnQ6OmNyZWF0ZShzdmdTdHlsZS0+c3Ry
b2tlUGFpbnRUeXBlKCksIHN2Z1N0eWxlLT5zdHJva2VQYWludFVyaSgpLCBzdmdTdHlsZS0+c3Ry
b2tlUGFpbnRDb2xvcigpKSwgc3R5bGUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tl
RGFzaGFycmF5OgogICAgICAgICAgICAgcmV0dXJuIHN0cm9rZURhc2hBcnJheVRvQ1NTVmFsdWVM
aXN0KHN2Z1N0eWxlLT5zdHJva2VEYXNoQXJyYXkoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlTdHJva2VEYXNob2Zmc2V0OgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAJ
KHJldmlzaW9uIDc5MzQ1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3OSwxNyArMTc5LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlOiAgICAgICAg
ICAgICAgIC8vIDxwYWludD4gfCBpbmhlcml0CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQYWlu
dDo6Y3JlYXRlKFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkUpOworICAgICAgICAgICAgICAg
IHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZU5vbmUoKTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKGlkID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQotICAgICAgICAgICAgICAgIHBhcnNlZFZh
bHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZShTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09M
T1IpOworICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZUN1cnJl
bnRDb2xvcigpOwogICAgICAgICAgICAgZWxzZSBpZiAoKGlkID49IENTU1ZhbHVlQWN0aXZlYm9y
ZGVyICYmIGlkIDw9IENTU1ZhbHVlV2luZG93dGV4dCkgfHwgaWQgPT0gQ1NTVmFsdWVNZW51KQot
ICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZShSZW5kZXJUaGVt
ZTo6ZGVmYXVsdFRoZW1lKCktPnN5c3RlbUNvbG9yKGlkKSk7CisgICAgICAgICAgICAgICAgcGFy
c2VkVmFsdWUgPSBTVkdQYWludDo6Y3JlYXRlQ29sb3IoUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVt
ZSgpLT5zeXN0ZW1Db2xvcihpZCkpOwogICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQg
PT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpIHsKICAgICAgICAgICAgICAgICBSR0JBMzIg
YyA9IENvbG9yOjp0cmFuc3BhcmVudDsKICAgICAgICAgICAgICAgICBpZiAobV92YWx1ZUxpc3Qt
Pm5leHQoKSAmJiBwYXJzZUNvbG9yRnJvbVZhbHVlKG1fdmFsdWVMaXN0LT5jdXJyZW50KCksIGMp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNyZWF0ZSh2
YWx1ZS0+c3RyaW5nLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdQ
YWludDo6Y3JlYXRlVVJJQW5kQ29sb3IodmFsdWUtPnN0cmluZywgYyk7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gU1ZHUGFpbnQ6OmNy
ZWF0ZShTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUkksIHZhbHVlLT5zdHJpbmcpOworICAgICAg
ICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR1BhaW50OjpjcmVhdGVVUkkodmFsdWUtPnN0
cmluZyk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9
IHBhcnNlU1ZHUGFpbnQoKTsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVNWR1ZhbHVlKGludCBwcm9wSWQKICAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6ICAgICAg
ICAgICAgICAgIC8vIDxjb2xvcj4gfCBpbmhlcml0CiAgICAgICAgIGlmICgoaWQgPj0gQ1NTVmFs
dWVBcXVhICYmIGlkIDw9IENTU1ZhbHVlV2luZG93dGV4dCkgfHwKICAgICAgICAgICAgKGlkID49
IENTU1ZhbHVlQWxpY2VibHVlICYmIGlkIDw9IENTU1ZhbHVlWWVsbG93Z3JlZW4pKQotICAgICAg
ICAgICAgcGFyc2VkVmFsdWUgPSBTVkdDb2xvcjo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcpOworICAg
ICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdDb2xvcjo6Y3JlYXRlRnJvbVN0cmluZyh2YWx1ZS0+
c3RyaW5nKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVNW
R0NvbG9yKCk7CiAKQEAgLTIxNCw3ICsyMTQsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdW
YWx1ZShpbnQgcHJvcElkCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6CiAgICAg
ICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVBcXVhICYmIGlkIDw9IENTU1ZhbHVlV2luZG93dGV4dCkg
fHwKICAgICAgICAgICAgKGlkID49IENTU1ZhbHVlQWxpY2VibHVlICYmIGlkIDw9IENTU1ZhbHVl
WWVsbG93Z3JlZW4pKQotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdDb2xvcjo6Y3JlYXRl
KHZhbHVlLT5zdHJpbmcpOworICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdDb2xvcjo6Y3Jl
YXRlRnJvbVN0cmluZyh2YWx1ZS0+c3RyaW5nKTsKICAgICAgICAgZWxzZSBpZiAoaWQgPT0gQ1NT
VmFsdWVDdXJyZW50Y29sb3IpCiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IFNWR0NvbG9yOjpj
cmVhdGVDdXJyZW50Q29sb3IoKTsKICAgICAgICAgZWxzZSAvLyBUT0RPIDogc3ZnY29sb3IgKGlj
Y0NvbG9yKQpAQCAtMzM5LDggKzMzOSw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNl
cjo6cGFyc2VTVkcKIHsKICAgICBSR0JBMzIgYyA9IENvbG9yOjp0cmFuc3BhcmVudDsKICAgICBp
ZiAoIXBhcnNlQ29sb3JGcm9tVmFsdWUobV92YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYykpCi0gICAg
ICAgIHJldHVybiBTVkdQYWludDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIFNWR1BhaW50OjpjcmVh
dGUoQ29sb3IoYykpOworICAgICAgICByZXR1cm4gU1ZHUGFpbnQ6OmNyZWF0ZVVua25vd24oKTsK
KyAgICByZXR1cm4gU1ZHUGFpbnQ6OmNyZWF0ZUNvbG9yKENvbG9yKGMpKTsKIH0KIAogUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVNWR0NvbG9yKCkKQEAgLTM0OCwxMSArMzQ4
LDkgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVNWRwogICAgIFJHQkEz
MiBjID0gQ29sb3I6OnRyYW5zcGFyZW50OwogICAgIGlmICghcGFyc2VDb2xvckZyb21WYWx1ZSht
X3ZhbHVlTGlzdC0+Y3VycmVudCgpLCBjKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IFNWR0NvbG9yOjpjcmVhdGUoQ29sb3IoYykpOworICAgIHJldHVybiBTVkdDb2xvcjo6Y3JlYXRl
RnJvbUNvbG9yKENvbG9yKGMpKTsKIH0KIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKLQot
Ly8gdmltOnRzPTQ6bm9ldApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNl
bGVjdG9yLmNwcAkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwxNyArMjMxLDM2IEBAIHZv
aWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eSgKICAgICAgICAgLy8gZW5kIG9m
IGlkZW50IG9ubHkgcHJvcGVydGllcwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKICAg
ICAgICAgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoZmlsbFBhaW50
LCBGaWxsUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkKLSAgICAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4o
dmFsdWUpKTsKKyAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgICAgICBj
b25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnUGFyZW50U3R5bGUgPSBtX3BhcmVudFN0eWxlLT5zdmdT
dHlsZSgpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3ZnUGFyZW50
U3R5bGUtPmZpbGxQYWludFR5cGUoKSwgc3ZnUGFyZW50U3R5bGUtPmZpbGxQYWludENvbG9yKCks
IHN2Z1BhcmVudFN0eWxlLT5maWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAg
ICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxs
UGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50Q29sb3IoKSwgU1ZH
UmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRVcmkoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkp
IHsKKyAgICAgICAgICAgICAgICBTVkdQYWludCogc3ZnUGFpbnQgPSBzdGF0aWNfY2FzdDxTVkdQ
YWludCo+KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBhaW50KHN2
Z1BhaW50LT5wYWludFR5cGUoKSwgY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZShzdmdQYWludCwg
bV9zdHlsZS0+Y29sb3IoKSksIHN2Z1BhaW50LT51cmkoKSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tl
OgogICAgICAgICB7Ci0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdHJv
a2VQYWludCwgU3Ryb2tlUGFpbnQpCi0gICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQo
KSkKLSAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQoc3RhdGljX2Nhc3Q8
U1ZHUGFpbnQqPih2YWx1ZSkpOwotICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXNJbmhl
cml0KSB7CisgICAgICAgICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1BhcmVudFN0
eWxlID0gbV9wYXJlbnRTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBzdmdzdHls
ZS0+c2V0U3Ryb2tlUGFpbnQoc3ZnUGFyZW50U3R5bGUtPnN0cm9rZVBhaW50VHlwZSgpLCBzdmdQ
YXJlbnRTdHlsZS0+c3Ryb2tlUGFpbnRDb2xvcigpLCBzdmdQYXJlbnRTdHlsZS0+c3Ryb2tlUGFp
bnRVcmkoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJv
a2VQYWludChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VHlwZSgpLCBTVkdSZW5k
ZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxTdHJva2VQYWludFVyaSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkgeworICAgICAgICAgICAg
ICAgIFNWR1BhaW50KiBzdmdQYWludCA9IHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUpOwor
ICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQYWludChzdmdQYWludC0+cGFpbnRU
eXBlKCksIGNvbG9yRnJvbVNWR0NvbG9yQ1NTVmFsdWUoc3ZnUGFpbnQsIG1fc3R5bGUtPmNvbG9y
KCkpLCBzdmdQYWludC0+dXJpKCkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZVdpZHRoOgpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3Bw
CShyZXZpc2lvbiA3OTM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdS
ZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksOSBAQCBTdHlsZURp
ZmZlcmVuY2UgU1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uCiAgICAgLy8gU29tZSBzdHJva2UgcHJv
cGVydGllcywgcmVxdWlyZXMgcmVsYXlvdXRzLCBhcyB0aGUgY2FjaGVkIHN0cm9rZSBib3VuZGFy
aWVzIG5lZWQgdG8gYmUgcmVjYWxjdWxhdGVkLgogICAgIGlmIChzdHJva2UgIT0gb3RoZXItPnN0
cm9rZSkgewogICAgICAgICBpZiAoc3Ryb2tlLT53aWR0aCAhPSBvdGhlci0+c3Ryb2tlLT53aWR0
aAotICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludCAhPSBvdGhlci0+c3Ryb2tlLT5wYWludAor
ICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFR5cGUgIT0gb3RoZXItPnN0cm9rZS0+cGFpbnRU
eXBlCisgICAgICAgICAgICB8fCBzdHJva2UtPnBhaW50Q29sb3IgIT0gb3RoZXItPnN0cm9rZS0+
cGFpbnRDb2xvcgorICAgICAgICAgICAgfHwgc3Ryb2tlLT5wYWludFVyaSAhPSBvdGhlci0+c3Ry
b2tlLT5wYWludFVyaQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5taXRlckxpbWl0ICE9IG90aGVy
LT5zdHJva2UtPm1pdGVyTGltaXQKICAgICAgICAgICAgIHx8IHN0cm9rZS0+ZGFzaEFycmF5ICE9
IG90aGVyLT5zdHJva2UtPmRhc2hBcnJheQogICAgICAgICAgICAgfHwgc3Ryb2tlLT5kYXNoT2Zm
c2V0ICE9IG90aGVyLT5zdHJva2UtPmRhc2hPZmZzZXQpCkBAIC0xOTEsNyArMTkzLDcgQEAgU3R5
bGVEaWZmZXJlbmNlIFNWR1JlbmRlclN0eWxlOjpkaWZmKGNvbgogICAgIH0KIAogICAgIC8vIElm
IGZpbGwgY2hhbmdlcywgd2UganVzdCBuZWVkIHRvIHJlcGFpbnQuIEZpbGwgYm91bmRhcmllcyBh
cmUgbm90IGluZmx1ZW5jZWQgYnkgdGhpcywgb25seSBieSB0aGUgUGF0aCwgdGhhdCBSZW5kZXJT
VkdQYXRoIGNvbnRhaW5zLgotICAgIGlmIChmaWxsICE9IG90aGVyLT5maWxsKQorICAgIGlmIChm
aWxsLT5wYWludFR5cGUgIT0gb3RoZXItPmZpbGwtPnBhaW50VHlwZSB8fCBmaWxsLT5wYWludENv
bG9yICE9IG90aGVyLT5maWxsLT5wYWludENvbG9yIHx8IGZpbGwtPnBhaW50VXJpICE9IG90aGVy
LT5maWxsLT5wYWludFVyaSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQ7
CiAKICAgICAvLyBJZiBncmFkaWVudCBzdG9wcyBjaGFuZ2UsIHdlIGp1c3QgbmVlZCB0byByZXBh
aW50LiBTdHlsZSB1cGRhdGVzIGFyZSBhbHJlYWR5IGhhbmRsZWQgdGhyb3VnaCBSZW5kZXJTVkdH
cmFkaWVudFNUb3AuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTUgKzcw
LDE5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU1ZHV3JpdGluZ01vZGUgaW5pdGlhbFdyaXRpbmdN
b2RlKCkgeyByZXR1cm4gV01fTFJUQjsgfQogICAgIHN0YXRpYyBFR2x5cGhPcmllbnRhdGlvbiBp
bml0aWFsR2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwoKSB7IHJldHVybiBHT18wREVHOyB9CiAg
ICAgc3RhdGljIEVHbHlwaE9yaWVudGF0aW9uIGluaXRpYWxHbHlwaE9yaWVudGF0aW9uVmVydGlj
YWwoKSB7IHJldHVybiBHT19BVVRPOyB9Ci0gICAgc3RhdGljIGZsb2F0IGluaXRpYWxGaWxsT3Bh
Y2l0eSgpIHsgcmV0dXJuIDEuMGY7IH0KLSAgICBzdGF0aWMgU1ZHUGFpbnQqIGluaXRpYWxGaWxs
UGFpbnQoKSB7IHJldHVybiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKTsgfQotICAgIHN0YXRpYyBm
bG9hdCBpbml0aWFsU3Ryb2tlT3BhY2l0eSgpIHsgcmV0dXJuIDEuMGY7IH0KLSAgICBzdGF0aWMg
U1ZHUGFpbnQqIGluaXRpYWxTdHJva2VQYWludCgpIHsgcmV0dXJuIFNWR1BhaW50OjpkZWZhdWx0
U3Ryb2tlKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZpbGxPcGFjaXR5KCkgeyByZXR1
cm4gMTsgfQorICAgIHN0YXRpYyBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIGluaXRpYWxGaWxsUGFp
bnRUeXBlKCkgeyByZXR1cm4gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09MT1I7IH0KKyAg
ICBzdGF0aWMgQ29sb3IgaW5pdGlhbEZpbGxQYWludENvbG9yKCkgeyByZXR1cm4gQ29sb3I6OmJs
YWNrOyB9CisgICAgc3RhdGljIFN0cmluZyBpbml0aWFsRmlsbFBhaW50VXJpKCkgeyByZXR1cm4g
U3RyaW5nKCk7IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFN0cm9rZU9wYWNpdHkoKSB7IHJl
dHVybiAxOyB9CisgICAgc3RhdGljIFNWR1BhaW50OjpTVkdQYWludFR5cGUgaW5pdGlhbFN0cm9r
ZVBhaW50VHlwZSgpIHsgcmV0dXJuIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KKyAg
ICBzdGF0aWMgQ29sb3IgaW5pdGlhbFN0cm9rZVBhaW50Q29sb3IoKSB7IHJldHVybiBDb2xvcigp
OyB9CisgICAgc3RhdGljIFN0cmluZyBpbml0aWFsU3Ryb2tlUGFpbnRVcmkoKSB7IHJldHVybiBT
dHJpbmcoKTsgfQogICAgIHN0YXRpYyBWZWN0b3I8U1ZHTGVuZ3RoPiBpbml0aWFsU3Ryb2tlRGFz
aEFycmF5KCkgeyByZXR1cm4gVmVjdG9yPFNWR0xlbmd0aD4oKTsgfQotICAgIHN0YXRpYyBmbG9h
dCBpbml0aWFsU3Ryb2tlTWl0ZXJMaW1pdCgpIHsgcmV0dXJuIDQuMGY7IH0KLSAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbFN0b3BPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQorICAgIHN0YXRpYyBm
bG9hdCBpbml0aWFsU3Ryb2tlTWl0ZXJMaW1pdCgpIHsgcmV0dXJuIDQ7IH0KKyAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbFN0b3BPcGFjaXR5KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBDb2xv
ciBpbml0aWFsU3RvcENvbG9yKCkgeyByZXR1cm4gQ29sb3IoMCwgMCwgMCk7IH0KLSAgICBzdGF0
aWMgZmxvYXQgaW5pdGlhbEZsb29kT3BhY2l0eSgpIHsgcmV0dXJuIDEuMGY7IH0KKyAgICBzdGF0
aWMgZmxvYXQgaW5pdGlhbEZsb29kT3BhY2l0eSgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMg
Q29sb3IgaW5pdGlhbEZsb29kQ29sb3IoKSB7IHJldHVybiBDb2xvcigwLCAwLCAwKTsgfQogICAg
IHN0YXRpYyBDb2xvciBpbml0aWFsTGlnaHRpbmdDb2xvcigpIHsgcmV0dXJuIENvbG9yKDI1NSwg
MjU1LCAyNTUpOyB9CiAgICAgc3RhdGljIFNoYWRvd0RhdGEqIGluaXRpYWxTaGFkb3coKSB7IHJl
dHVybiAwOyB9CkBAIC0xNTAsMTAgKzE1NCwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBmaWxs
LmFjY2VzcygpLT5vcGFjaXR5ID0gb2JqOwogICAgIH0KIAotICAgIHZvaWQgc2V0RmlsbFBhaW50
KFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IG9iaikKKyAgICB2b2lkIHNldEZpbGxQYWludChTVkdQYWlu
dDo6U1ZHUGFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgU3RyaW5nJiB1
cmkpCiAgICAgewotICAgICAgICBpZiAoIShmaWxsLT5wYWludCA9PSBvYmopKQotICAgICAgICAg
ICAgZmlsbC5hY2Nlc3MoKS0+cGFpbnQgPSBvYmo7CisgICAgICAgIGlmICghKGZpbGwtPnBhaW50
VHlwZSA9PSB0eXBlKSkKKyAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPnBhaW50VHlwZSA9IHR5
cGU7CisgICAgICAgIGlmICghKGZpbGwtPnBhaW50Q29sb3IgPT0gY29sb3IpKQorICAgICAgICAg
ICAgZmlsbC5hY2Nlc3MoKS0+cGFpbnRDb2xvciA9IGNvbG9yOworICAgICAgICBpZiAoIShmaWxs
LT5wYWludFVyaSA9PSB1cmkpKQorICAgICAgICAgICAgZmlsbC5hY2Nlc3MoKS0+cGFpbnRVcmkg
PSB1cmk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRTdHJva2VPcGFjaXR5KGZsb2F0IG9iaikKQEAg
LTE2MiwxMCArMTcwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHN0cm9rZS5hY2Nlc3MoKS0+
b3BhY2l0eSA9IG9iajsKICAgICB9CiAKLSAgICB2b2lkIHNldFN0cm9rZVBhaW50KFBhc3NSZWZQ
dHI8U1ZHUGFpbnQ+IG9iaikKKyAgICB2b2lkIHNldFN0cm9rZVBhaW50KFNWR1BhaW50OjpTVkdQ
YWludFR5cGUgdHlwZSwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHVyaSkKICAg
ICB7Ci0gICAgICAgIGlmICghKHN0cm9rZS0+cGFpbnQgPT0gb2JqKSkKLSAgICAgICAgICAgIHN0
cm9rZS5hY2Nlc3MoKS0+cGFpbnQgPSBvYmo7CisgICAgICAgIGlmICghKHN0cm9rZS0+cGFpbnRU
eXBlID09IHR5cGUpKQorICAgICAgICAgICAgc3Ryb2tlLmFjY2VzcygpLT5wYWludFR5cGUgPSB0
eXBlOworICAgICAgICBpZiAoIShzdHJva2UtPnBhaW50Q29sb3IgPT0gY29sb3IpKQorICAgICAg
ICAgICAgc3Ryb2tlLmFjY2VzcygpLT5wYWludENvbG9yID0gY29sb3I7CisgICAgICAgIGlmICgh
KHN0cm9rZS0+cGFpbnRVcmkgPT0gdXJpKSkKKyAgICAgICAgICAgIHN0cm9rZS5hY2Nlc3MoKS0+
cGFpbnRVcmkgPSB1cmk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRTdHJva2VEYXNoQXJyYXkoY29u
c3QgVmVjdG9yPFNWR0xlbmd0aD4mIG9iaikKQEAgLTI5Myw5ICszMDUsMTMgQEAgcHVibGljOgog
ICAgIEVHbHlwaE9yaWVudGF0aW9uIGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsKCkgY29uc3Qg
eyByZXR1cm4gKEVHbHlwaE9yaWVudGF0aW9uKSBzdmdfaW5oZXJpdGVkX2ZsYWdzLl9nbHlwaE9y
aWVudGF0aW9uSG9yaXpvbnRhbDsgfQogICAgIEVHbHlwaE9yaWVudGF0aW9uIGdseXBoT3JpZW50
YXRpb25WZXJ0aWNhbCgpIGNvbnN0IHsgcmV0dXJuIChFR2x5cGhPcmllbnRhdGlvbikgc3ZnX2lu
aGVyaXRlZF9mbGFncy5fZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOyB9CiAgICAgZmxvYXQgZmls
bE9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBmaWxsLT5vcGFjaXR5OyB9Ci0gICAgU1ZHUGFpbnQq
IGZpbGxQYWludCgpIGNvbnN0IHsgcmV0dXJuIGZpbGwtPnBhaW50LmdldCgpOyB9CisgICAgY29u
c3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgZmlsbFBhaW50VHlwZSgpIGNvbnN0IHsgcmV0dXJu
IGZpbGwtPnBhaW50VHlwZTsgfQorICAgIGNvbnN0IENvbG9yJiBmaWxsUGFpbnRDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIGZpbGwtPnBhaW50Q29sb3I7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZpbGxQ
YWludFVyaSgpIGNvbnN0IHsgcmV0dXJuIGZpbGwtPnBhaW50VXJpOyB9ICAgIAogICAgIGZsb2F0
IHN0cm9rZU9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBzdHJva2UtPm9wYWNpdHk7IH0KLSAgICBT
VkdQYWludCogc3Ryb2tlUGFpbnQoKSBjb25zdCB7IHJldHVybiBzdHJva2UtPnBhaW50LmdldCgp
OyB9CisgICAgY29uc3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgc3Ryb2tlUGFpbnRUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludFR5cGU7IH0KKyAgICBjb25zdCBDb2xvciYgc3Ry
b2tlUGFpbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+cGFpbnRDb2xvcjsgfQorICAg
IGNvbnN0IFN0cmluZyYgc3Ryb2tlUGFpbnRVcmkoKSBjb25zdCB7IHJldHVybiBzdHJva2UtPnBh
aW50VXJpOyB9CiAgICAgVmVjdG9yPFNWR0xlbmd0aD4gc3Ryb2tlRGFzaEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gc3Ryb2tlLT5kYXNoQXJyYXk7IH0KICAgICBmbG9hdCBzdHJva2VNaXRlckxpbWl0
KCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlLT5taXRlckxpbWl0OyB9CiAgICAgU1ZHTGVuZ3RoIHN0
cm9rZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlLT53aWR0aDsgfQpAQCAtMzIwLDggKzMz
Niw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc01hc2tlcigpIGNvbnN0IHsgcmV0dXJuICFtYXNr
ZXJSZXNvdXJjZSgpLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyBy
ZXR1cm4gIWZpbHRlclJlc291cmNlKCkuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNNYXJrZXJz
KCkgY29uc3QgeyByZXR1cm4gIW1hcmtlclN0YXJ0UmVzb3VyY2UoKS5pc0VtcHR5KCkgfHwgIW1h
cmtlck1pZFJlc291cmNlKCkuaXNFbXB0eSgpIHx8ICFtYXJrZXJFbmRSZXNvdXJjZSgpLmlzRW1w
dHkoKTsgfQotICAgIGJvb2wgaGFzU3Ryb2tlKCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlUGFpbnQo
KS0+cGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORTsgfQotICAgIGJv
b2wgaGFzRmlsbCgpIGNvbnN0IHsgcmV0dXJuIGZpbGxQYWludCgpLT5wYWludFR5cGUoKSAhPSBT
VkdQYWludDo6U1ZHX1BBSU5UVFlQRV9OT05FOyB9CisgICAgYm9vbCBoYXNTdHJva2UoKSBjb25z
dCB7IHJldHVybiBzdHJva2VQYWludFR5cGUoKSAhPSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9O
T05FOyB9CisgICAgYm9vbCBoYXNGaWxsKCkgY29uc3QgeyByZXR1cm4gZmlsbFBhaW50VHlwZSgp
ICE9IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KICAgICBib29sIGlzVmVydGljYWxX
cml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlKCkgPT0gV01fVEJSTCB8fCB3
cml0aW5nTW9kZSgpID09IFdNX1RCOyB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwCShy
ZXZpc2lvbiA3OTM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5k
ZXJTdHlsZURlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywzNSArMzcsMjcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBTdHlsZUZpbGxEYXRhOjpTdHlsZUZpbGxEYXRhKCkKICAgICA6IG9w
YWNpdHkoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsT3BhY2l0eSgpKQotICAgICwgcGFpbnQo
U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnQoKSkKKyAgICAsIHBhaW50VHlwZShTVkdS
ZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFR5cGUoKSkKKyAgICAsIHBhaW50Q29sb3IoU1ZH
UmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRDb2xvcigpKQorICAgICwgcGFpbnRVcmkoU1ZH
UmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRVcmkoKSkKIHsKIH0KIAogU3R5bGVGaWxsRGF0
YTo6U3R5bGVGaWxsRGF0YShjb25zdCBTdHlsZUZpbGxEYXRhJiBvdGhlcikKICAgICA6IFJlZkNv
dW50ZWQ8U3R5bGVGaWxsRGF0YT4oKQogICAgICwgb3BhY2l0eShvdGhlci5vcGFjaXR5KQotICAg
ICwgcGFpbnQob3RoZXIucGFpbnQpCisgICAgLCBwYWludFR5cGUob3RoZXIucGFpbnRUeXBlKQor
ICAgICwgcGFpbnRDb2xvcihvdGhlci5wYWludENvbG9yKQorICAgICwgcGFpbnRVcmkob3RoZXIu
cGFpbnRVcmkpCiB7CiB9CiAKIGJvb2wgU3R5bGVGaWxsRGF0YTo6b3BlcmF0b3I9PShjb25zdCBT
dHlsZUZpbGxEYXRhJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAob3BhY2l0eSAhPSBvdGhlci5v
cGFjaXR5KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIXBhaW50IHx8ICFvdGhl
ci5wYWludCkKLSAgICAgICAgcmV0dXJuIHBhaW50ID09IG90aGVyLnBhaW50OwotCi0gICAgaWYg
KHBhaW50LT5wYWludFR5cGUoKSAhPSBvdGhlci5wYWludC0+cGFpbnRUeXBlKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmIChwYWludC0+cGFpbnRUeXBlKCkgPT0gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfVVJJKQotICAgICAgICByZXR1cm4gcGFpbnQtPnVyaSgpID09IG90aGVy
LnBhaW50LT51cmkoKTsKLQotICAgIGlmIChwYWludC0+cGFpbnRUeXBlKCkgPT0gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfUkdCQ09MT1IpCi0gICAgICAgIHJldHVybiBwYWludC0+Y29sb3IoKSA9
PSBvdGhlci5wYWludC0+Y29sb3IoKTsKLQotICAgIHJldHVybiBwYWludCA9PSBvdGhlci5wYWlu
dDsKKyAgICByZXR1cm4gb3BhY2l0eSA9PSBvdGhlci5vcGFjaXR5IAorICAgICAgICAmJiBwYWlu
dFR5cGUgPT0gb3RoZXIucGFpbnRUeXBlCisgICAgICAgICYmIHBhaW50Q29sb3IgPT0gb3RoZXIu
cGFpbnRDb2xvcgorICAgICAgICAmJiBwYWludFVyaSA9PSBvdGhlci5wYWludFVyaTsKIH0KIAog
U3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9rZURhdGEoKQpAQCAtNzQsNyArNjYsOSBAQCBTdHls
ZVN0cm9rZURhdGE6OlN0eWxlU3Ryb2tlRGF0YSgpCiAgICAgLCB3aWR0aChTVkdSZW5kZXJTdHls
ZTo6aW5pdGlhbFN0cm9rZVdpZHRoKCkpCiAgICAgLCBkYXNoT2Zmc2V0KFNWR1JlbmRlclN0eWxl
Ojppbml0aWFsU3Ryb2tlRGFzaE9mZnNldCgpKQogICAgICwgZGFzaEFycmF5KFNWR1JlbmRlclN0
eWxlOjppbml0aWFsU3Ryb2tlRGFzaEFycmF5KCkpCi0gICAgLCBwYWludChTVkdSZW5kZXJTdHls
ZTo6aW5pdGlhbFN0cm9rZVBhaW50KCkpCisgICAgLCBwYWludFR5cGUoU1ZHUmVuZGVyU3R5bGU6
OmluaXRpYWxTdHJva2VQYWludFR5cGUoKSkKKyAgICAsIHBhaW50Q29sb3IoU1ZHUmVuZGVyU3R5
bGU6OmluaXRpYWxTdHJva2VQYWludENvbG9yKCkpCisgICAgLCBwYWludFVyaShTVkdSZW5kZXJT
dHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VXJpKCkpCiB7CiB9CiAKQEAgLTg1LDE4ICs3OSwyMiBA
QCBTdHlsZVN0cm9rZURhdGE6OlN0eWxlU3Ryb2tlRGF0YShjb25zdCBTCiAgICAgLCB3aWR0aChv
dGhlci53aWR0aCkKICAgICAsIGRhc2hPZmZzZXQob3RoZXIuZGFzaE9mZnNldCkKICAgICAsIGRh
c2hBcnJheShvdGhlci5kYXNoQXJyYXkpCi0gICAgLCBwYWludChvdGhlci5wYWludCkKKyAgICAs
IHBhaW50VHlwZShvdGhlci5wYWludFR5cGUpCisgICAgLCBwYWludENvbG9yKG90aGVyLnBhaW50
Q29sb3IpCisgICAgLCBwYWludFVyaShvdGhlci5wYWludFVyaSkKIHsKIH0KIAogYm9vbCBTdHls
ZVN0cm9rZURhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVTdHJva2VEYXRhJiBvdGhlcikgY29u
c3QKIHsKLSAgICByZXR1cm4gcGFpbnQgPT0gb3RoZXIucGFpbnQKLSAgICAgICAgJiYgd2lkdGgg
PT0gb3RoZXIud2lkdGgKKyAgICByZXR1cm4gd2lkdGggPT0gb3RoZXIud2lkdGgKICAgICAgICAg
JiYgb3BhY2l0eSA9PSBvdGhlci5vcGFjaXR5CiAgICAgICAgICYmIG1pdGVyTGltaXQgPT0gb3Ro
ZXIubWl0ZXJMaW1pdAogICAgICAgICAmJiBkYXNoT2Zmc2V0ID09IG90aGVyLmRhc2hPZmZzZXQK
LSAgICAgICAgJiYgZGFzaEFycmF5ID09IG90aGVyLmRhc2hBcnJheTsKKyAgICAgICAgJiYgZGFz
aEFycmF5ID09IG90aGVyLmRhc2hBcnJheQorICAgICAgICAmJiBwYWludFR5cGUgPT0gb3RoZXIu
cGFpbnRUeXBlCisgICAgICAgICYmIHBhaW50Q29sb3IgPT0gb3RoZXIucGFpbnRDb2xvcgorICAg
ICAgICAmJiBwYWludFVyaSA9PSBvdGhlci5wYWludFVyaTsKIH0KIAogU3R5bGVTdG9wRGF0YTo6
U3R5bGVTdG9wRGF0YSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGVEZWZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCShyZXZpc2lvbiA3OTM0NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksOSArMjksOCBAQAogI2RlZmluZSBTVkdSZW5kZXJTdHlsZURlZnNfaAogCiAjaWYg
RU5BQkxFKFNWRykKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCisjaW5jbHVkZSAiU1ZHUGFpbnQuaCIKICNpbmNs
dWRlICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC05OCw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlRmlsbERhdGE+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUZpbGxEYXRhKTsgfQogICAgICAgICBQYXNz
UmVmUHRyPFN0eWxlRmlsbERhdGE+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcg
U3R5bGVGaWxsRGF0YSgqdGhpcykpOyB9Ci0gICAgICAgIAorCiAgICAgICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBTdHlsZUZpbGxEYXRhJikgY29uc3Q7CiAgICAgICAgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBTdHlsZUZpbGxEYXRhJiBvdGhlcikgY29uc3QKICAgICAgICAgewpAQCAtMTA2LDcg
KzEwNSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAgICAgICAgIGZsb2F0
IG9wYWNpdHk7Ci0gICAgICAgIFJlZlB0cjxTVkdQYWludD4gcGFpbnQ7CisgICAgICAgIFNWR1Bh
aW50OjpTVkdQYWludFR5cGUgcGFpbnRUeXBlOworICAgICAgICBDb2xvciBwYWludENvbG9yOwor
ICAgICAgICBTdHJpbmcgcGFpbnRVcmk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBTdHlsZUZp
bGxEYXRhKCk7CkBAIC0xMzEsNyArMTMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBTVkdMZW5ndGggZGFzaE9mZnNldDsKICAgICAgICAgVmVjdG9yPFNWR0xlbmd0aD4gZGFzaEFy
cmF5OwogCi0gICAgICAgIFJlZlB0cjxTVkdQYWludD4gcGFpbnQ7CisgICAgICAgIFNWR1BhaW50
OjpTVkdQYWludFR5cGUgcGFpbnRUeXBlOworICAgICAgICBDb2xvciBwYWludENvbG9yOworICAg
ICAgICBTdHJpbmcgcGFpbnRVcmk7CiAKICAgICBwcml2YXRlOiAgICAgICAgCiAgICAgICAgIFN0
eWxlU3Ryb2tlRGF0YSgpOwpAQCAtMjYyLDUgKzI2NSw0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KICNlbmRp
ZiAvLyBTVkdSZW5kZXJTdHlsZURlZnNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDc5MzQ1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUxLDMzICs1MSwzNiBAQCBzdGF0aWMgaW5saW5lIFJlbmRlclNWR1Jlc291
cmNlKiByZXF1ZXN0CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBTVkdQYWlu
dCogcGFpbnQgPSBtb2RlID09IEFwcGx5VG9GaWxsTW9kZSA/IHN2Z1N0eWxlLT5maWxsUGFpbnQo
KSA6IHN2Z1N0eWxlLT5zdHJva2VQYWludCgpOwotICAgIEFTU0VSVChwYWludCk7Ci0KLSAgICBT
VkdQYWludDo6U1ZHUGFpbnRUeXBlIHBhaW50VHlwZSA9IHBhaW50LT5wYWludFR5cGUoKTsKKyAg
ICBib29sIGFwcGx5VG9GaWxsID0gbW9kZSA9PSBBcHBseVRvRmlsbE1vZGU7CisgICAgU1ZHUGFp
bnQ6OlNWR1BhaW50VHlwZSBwYWludFR5cGUgPSBhcHBseVRvRmlsbCA/IHN2Z1N0eWxlLT5maWxs
UGFpbnRUeXBlKCkgOiBzdmdTdHlsZS0+c3Ryb2tlUGFpbnRUeXBlKCk7CiAgICAgaWYgKHBhaW50
VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9OT05FKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIENvbG9yIGNvbG9yOwotICAgIGlmIChwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19Q
QUlOVFRZUEVfUkdCQ09MT1IKLSAgICAgICAgfHwgcGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdf
UEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SCi0gICAgICAgIHx8IHBhaW50VHlwZSA9PSBTVkdQ
YWludDo6U1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IKLSAgICAgICAgfHwgcGFpbnRUeXBlID09
IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xPUikKLSAgICAgICAg
Y29sb3IgPSBwYWludC0+Y29sb3IoKTsKLSAgICBlbHNlIGlmIChwYWludFR5cGUgPT0gU1ZHUGFp
bnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SIHx8IHBhaW50VHlwZSA9PSBTVkdQYWludDo6
U1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SKQotICAgICAgICBjb2xvciA9IHN0eWxlLT52
aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7CisgICAgc3dpdGNoIChwYWlu
dFR5cGUpIHsKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUjoK
KyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1JHQkNPTE9SOgorICAgIGNhc2UgU1ZH
UGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1I6CisgICAgY2FzZSBTVkdQYWlu
dDo6U1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SOgorICAgIGNhc2UgU1ZHUGFpbnQ6OlNW
R19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SOgorICAgIGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgICAgICBjb2xvciA9IGFwcGx5VG9GaWxsID8g
c3ZnU3R5bGUtPmZpbGxQYWludENvbG9yKCkgOiBzdmdTdHlsZS0+c3Ryb2tlUGFpbnRDb2xvcigp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KIAogICAgIGlmIChzdHlsZS0+
aW5zaWRlTGluaygpID09IEluc2lkZVZpc2l0ZWRMaW5rKSB7CiAgICAgICAgIFJlbmRlclN0eWxl
KiB2aXNpdGVkU3R5bGUgPSBzdHlsZS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUoVklTSVRFRF9MSU5L
KTsKICAgICAgICAgQVNTRVJUKHZpc2l0ZWRTdHlsZSk7CiAKLSAgICAgICAgaWYgKFNWR1BhaW50
KiB2aXNpdGVkUGFpbnQgPSBtb2RlID09IEFwcGx5VG9GaWxsTW9kZSA/IHZpc2l0ZWRTdHlsZS0+
c3ZnU3R5bGUoKS0+ZmlsbFBhaW50KCkgOiB2aXNpdGVkU3R5bGUtPnN2Z1N0eWxlKCktPnN0cm9r
ZVBhaW50KCkpIHsKLSAgICAgICAgICAgIC8vIEZvciBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xP
UiwgJ2NvbG9yJyBhbHJlYWR5IGNvbnRhaW5zIHRoZSAndmlzaXRlZENvbG9yJy4KLSAgICAgICAg
ICAgIGlmICh2aXNpdGVkUGFpbnQtPnBhaW50VHlwZSgpIDwgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfVVJJX05PTkUgJiYgdmlzaXRlZFBhaW50LT5wYWludFR5cGUoKSAhPSBTVkdQYWludDo6U1ZH
X1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBDb2xvciYg
dmlzaXRlZENvbG9yID0gdmlzaXRlZFBhaW50LT5jb2xvcigpOwotICAgICAgICAgICAgICAgIGlm
ICh2aXNpdGVkQ29sb3IuaXNWYWxpZCgpKQotICAgICAgICAgICAgICAgICAgICBjb2xvciA9IENv
bG9yKHZpc2l0ZWRDb2xvci5yZWQoKSwgdmlzaXRlZENvbG9yLmdyZWVuKCksIHZpc2l0ZWRDb2xv
ci5ibHVlKCksIGNvbG9yLmFscGhhKCkpOwotICAgICAgICAgICAgfQorICAgICAgICBjb25zdCBT
VkdSZW5kZXJTdHlsZSogc3ZnVmlzaXRlZFN0eWxlID0gdmlzaXRlZFN0eWxlLT5zdmdTdHlsZSgp
OworICAgICAgICBTVkdQYWludDo6U1ZHUGFpbnRUeXBlIHZpc2l0ZWRQYWludFR5cGUgPSBhcHBs
eVRvRmlsbCA/IHN2Z1Zpc2l0ZWRTdHlsZS0+ZmlsbFBhaW50VHlwZSgpIDogc3ZnVmlzaXRlZFN0
eWxlLT5zdHJva2VQYWludFR5cGUoKTsKKworICAgICAgICAvLyBGb3IgU1ZHX1BBSU5UVFlQRV9D
VVJSRU5UQ09MT1IsICdjb2xvcicgYWxyZWFkeSBjb250YWlucyB0aGUgJ3Zpc2l0ZWRDb2xvcicu
CisgICAgICAgIGlmICh2aXNpdGVkUGFpbnRUeXBlIDwgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVf
VVJJX05PTkUgJiYgdmlzaXRlZFBhaW50VHlwZSAhPSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9D
VVJSRU5UQ09MT1IpIHsKKyAgICAgICAgICAgIGNvbnN0IENvbG9yJiB2aXNpdGVkQ29sb3IgPSBh
cHBseVRvRmlsbCA/IHN2Z1Zpc2l0ZWRTdHlsZS0+ZmlsbFBhaW50Q29sb3IoKSA6IHN2Z1Zpc2l0
ZWRTdHlsZS0+c3Ryb2tlUGFpbnRDb2xvcigpOworICAgICAgICAgICAgaWYgKHZpc2l0ZWRDb2xv
ci5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgY29sb3IgPSBDb2xvcih2aXNpdGVkQ29sb3Iu
cmVkKCksIHZpc2l0ZWRDb2xvci5ncmVlbigpLCB2aXNpdGVkQ29sb3IuYmx1ZSgpLCBjb2xvci5h
bHBoYSgpKTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkocmV2
aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlQ2xpcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw4ICsyNTQsOCBAQCBib29s
IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlCiAgICAgICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gb2xkUmVuZGVyU3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKICAgICAgICAgUmVm
UHRyPFJlbmRlclN0eWxlPiBuZXdSZW5kZXJTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShvbGRS
ZW5kZXJTdHlsZS5nZXQoKSk7CiAgICAgICAgIFNWR1JlbmRlclN0eWxlKiBzdmdTdHlsZSA9IG5l
d1JlbmRlclN0eWxlLmdldCgpLT5hY2Nlc3NTVkdTdHlsZSgpOwotICAgICAgICBzdmdTdHlsZS0+
c2V0RmlsbFBhaW50KFNWR1BhaW50OjpkZWZhdWx0RmlsbCgpKTsKLSAgICAgICAgc3ZnU3R5bGUt
PnNldFN0cm9rZVBhaW50KFNWR1BhaW50OjpkZWZhdWx0U3Ryb2tlKCkpOworICAgICAgICBzdmdT
dHlsZS0+c2V0RmlsbFBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50VHlwZSgp
LCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludENvbG9yKCksIFNWR1JlbmRlclN0eWxl
Ojppbml0aWFsRmlsbFBhaW50VXJpKCkpOworICAgICAgICBzdmdTdHlsZS0+c2V0U3Ryb2tlUGFp
bnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWludFR5cGUoKSwgU1ZHUmVuZGVyU3R5
bGU6OmluaXRpYWxTdHJva2VQYWludENvbG9yKCksIFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ry
b2tlUGFpbnRVcmkoKSk7CiAgICAgICAgIHN2Z1N0eWxlLT5zZXRGaWxsUnVsZShuZXdDbGlwUnVs
ZSk7CiAgICAgICAgIG5ld1JlbmRlclN0eWxlLmdldCgpLT5zZXRPcGFjaXR5KDEuMGYpOwogICAg
ICAgICBzdmdTdHlsZS0+c2V0RmlsbE9wYWNpdHkoMS4wZik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCShyZXZpc2lvbiA3OTM0NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTUyLDE1ICsxNTIsMTIgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdGFyZ2V0UmVm
ZXJlbmNlRnJvbQogICAgIHJldHVybiBTVkdVUklSZWZlcmVuY2U6OmdldFRhcmdldCh0YXJnZXQp
OwogfQogCi1zdGF0aWMgaW5saW5lIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiBwYWludGlu
Z1Jlc291cmNlRnJvbVNWR1BhaW50KERvY3VtZW50KiBkb2N1bWVudCwgU1ZHUGFpbnQqIHBhaW50
LCBBdG9taWNTdHJpbmcmIGlkLCBib29sJiBoYXNQZW5kaW5nUmVzb3VyY2UpCitzdGF0aWMgaW5s
aW5lIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiBwYWludGluZ1Jlc291cmNlRnJvbVNWR1Bh
aW50KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgcGFp
bnRUeXBlLCBjb25zdCBTdHJpbmcmIHBhaW50VXJpLCBBdG9taWNTdHJpbmcmIGlkLCBib29sJiBo
YXNQZW5kaW5nUmVzb3VyY2UpCiB7Ci0gICAgQVNTRVJUKHBhaW50KTsKLQotICAgIFNWR1BhaW50
OjpTVkdQYWludFR5cGUgcGFpbnRUeXBlID0gcGFpbnQtPnBhaW50VHlwZSgpOwogICAgIGlmIChw
YWludFR5cGUgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJICYmIHBhaW50VHlwZSAhPSBT
VkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgaWQgPSBTVkdVUklSZWZlcmVuY2U6OmdldFRhcmdldChwYWludC0+dXJpKCkpOworICAg
IGlkID0gU1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQocGFpbnRVcmkpOwogICAgIFJlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyKiBjb250YWluZXIgPSBnZXRSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lckJ5SWQoZG9jdW1lbnQsIGlkKTsKICAgICBpZiAoIWNvbnRhaW5lcikgewogICAgICAgICBo
YXNQZW5kaW5nUmVzb3VyY2UgPSB0cnVlOwpAQCAtMjU5LDcgKzI1Niw3IEBAIGJvb2wgU1ZHUmVz
b3VyY2VzOjpidWlsZENhY2hlZFJlc291cmNlcygKICAgICAgICAgaWYgKHN0eWxlLT5oYXNGaWxs
KCkpIHsKICAgICAgICAgICAgIGJvb2wgaGFzUGVuZGluZ1Jlc291cmNlID0gZmFsc2U7CiAgICAg
ICAgICAgICBBdG9taWNTdHJpbmcgaWQ7Ci0gICAgICAgICAgICBpZiAoc2V0RmlsbChwYWludGlu
Z1Jlc291cmNlRnJvbVNWR1BhaW50KGRvY3VtZW50LCBzdHlsZS0+ZmlsbFBhaW50KCksIGlkLCBo
YXNQZW5kaW5nUmVzb3VyY2UpKSkKKyAgICAgICAgICAgIGlmIChzZXRGaWxsKHBhaW50aW5nUmVz
b3VyY2VGcm9tU1ZHUGFpbnQoZG9jdW1lbnQsIHN0eWxlLT5maWxsUGFpbnRUeXBlKCksIHN0eWxl
LT5maWxsUGFpbnRVcmkoKSwgaWQsIGhhc1BlbmRpbmdSZXNvdXJjZSkpKQogICAgICAgICAgICAg
ICAgIGZvdW5kUmVzb3VyY2VzID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1BlbmRp
bmdSZXNvdXJjZSkKICAgICAgICAgICAgICAgICByZWdpc3RlclBlbmRpbmdSZXNvdXJjZShleHRl
bnNpb25zLCBpZCwgZWxlbWVudCk7CkBAIC0yNjgsNyArMjY1LDcgQEAgYm9vbCBTVkdSZXNvdXJj
ZXM6OmJ1aWxkQ2FjaGVkUmVzb3VyY2VzKAogICAgICAgICBpZiAoc3R5bGUtPmhhc1N0cm9rZSgp
KSB7CiAgICAgICAgICAgICBib29sIGhhc1BlbmRpbmdSZXNvdXJjZSA9IGZhbHNlOwogICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIGlkOwotICAgICAgICAgICAgaWYgKHNldFN0cm9rZShwYWludGlu
Z1Jlc291cmNlRnJvbVNWR1BhaW50KGRvY3VtZW50LCBzdHlsZS0+c3Ryb2tlUGFpbnQoKSwgaWQs
IGhhc1BlbmRpbmdSZXNvdXJjZSkpKQorICAgICAgICAgICAgaWYgKHNldFN0cm9rZShwYWludGlu
Z1Jlc291cmNlRnJvbVNWR1BhaW50KGRvY3VtZW50LCBzdHlsZS0+c3Ryb2tlUGFpbnRUeXBlKCks
IHN0eWxlLT5zdHJva2VQYWludFVyaSgpLCBpZCwgaGFzUGVuZGluZ1Jlc291cmNlKSkpCiAgICAg
ICAgICAgICAgICAgZm91bmRSZXNvdXJjZXMgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAo
aGFzUGVuZGluZ1Jlc291cmNlKQogICAgICAgICAgICAgICAgIHJlZ2lzdGVyUGVuZGluZ1Jlc291
cmNlKGV4dGVuc2lvbnMsIGlkLCBlbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDb2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9yLmNw
cAkocmV2aXNpb24gNzkzNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSw2ICsyMCw3IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdDb2xv
ci5oIgogCkBAIC0yOCwyOCArMzAsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdD
b2xvcjo6U1ZHQ29sb3IoKQotICAgIDogbV9jb2xvclR5cGUoU1ZHX0NPTE9SVFlQRV9VTktOT1dO
KQotewotfQotCi1TVkdDb2xvcjo6U1ZHQ29sb3IoY29uc3QgU3RyaW5nJiByZ2JDb2xvcikKLSAg
ICA6IG1fY29sb3JUeXBlKFNWR19DT0xPUlRZUEVfUkdCQ09MT1IpCi17Ci0gICAgc2V0UkdCQ29s
b3IocmdiQ29sb3IpOwotfQotCi1TVkdDb2xvcjo6U1ZHQ29sb3IoU1ZHQ29sb3JUeXBlIGNvbG9y
VHlwZSkKK1NWR0NvbG9yOjpTVkdDb2xvcihjb25zdCBTVkdDb2xvclR5cGUmIGNvbG9yVHlwZSkK
ICAgICA6IG1fY29sb3JUeXBlKGNvbG9yVHlwZSkKIHsKIH0KIAotU1ZHQ29sb3I6OlNWR0NvbG9y
KGNvbnN0IENvbG9yJiBjKQotICAgIDogbV9jb2xvcihjKQotICAgICwgbV9jb2xvclR5cGUoU1ZH
X0NPTE9SVFlQRV9SR0JDT0xPUikKLXsKLX0KLQogUGFzc1JlZlB0cjxSR0JDb2xvcj4gU1ZHQ29s
b3I6OnJnYkNvbG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gUkdCQ29sb3I6OmNyZWF0ZShtX2Nv
bG9yLnJnYigpKTsKQEAgLTU4LDQ1ICs0MywxMDggQEAgUGFzc1JlZlB0cjxSR0JDb2xvcj4gU1ZH
Q29sb3I6OnJnYkNvbG9yKAogdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3IoY29uc3QgU3RyaW5n
JiByZ2JDb2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQ29sb3IgY29sb3IgPSBTVkdD
b2xvcjo6Y29sb3JGcm9tUkdCQ29sb3JTdHJpbmcocmdiQ29sb3IpOwotICAgIGlmIChjb2xvci5p
c1ZhbGlkKCkpCi0gICAgICAgIG1fY29sb3IgPSBjb2xvcjsKLSAgICBlbHNlCisgICAgaWYgKCFj
b2xvci5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBTVkdFeGNlcHRpb246OlNWR19JTlZBTElE
X1ZBTFVFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29sb3IgPSBjb2xv
cjsKKyAgICBtX2NvbG9yVHlwZSA9IFNWR19DT0xPUlRZUEVfUkdCQ09MT1I7CiB9CiAKIENvbG9y
IFNWR0NvbG9yOjpjb2xvckZyb21SR0JDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3Ry
aW5nKQogewotICAgIFN0cmluZyBzID0gY29sb3JTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCk7Ci0g
ICAgLy8gRklYTUU6IHJld29yayBjc3MgcGFyc2VyIHNvIGl0IGlzIG1vcmUgc3ZnIGF3YXJlCisg
ICAgLy8gRklYTUU6IFJld29yayBjc3MgcGFyc2VyIHNvIGl0IGlzIG1vcmUgU1ZHIGF3YXJlLgog
ICAgIFJHQkEzMiBjb2xvcjsKLSAgICBpZiAoQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbG9yLCBz
KSkKKyAgICBpZiAoQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNvbG9yLCBjb2xvclN0cmluZy5zdHJp
cFdoaXRlU3BhY2UoKSkpCiAgICAgICAgIHJldHVybiBjb2xvcjsKICAgICByZXR1cm4gQ29sb3Io
KTsKIH0KIAotdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3JJQ0NDb2xvcihjb25zdCBTdHJpbmcm
IC8qIHJnYkNvbG9yICovLCBjb25zdCBTdHJpbmcmIC8qIGljY0NvbG9yICovLCBFeGNlcHRpb25D
b2RlJikKK3ZvaWQgU1ZHQ29sb3I6OnNldFJHQkNvbG9ySUNDQ29sb3IoY29uc3QgU3RyaW5nJiBy
Z2JDb2xvciwgY29uc3QgU3RyaW5nJiBpY2NDb2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgLy8gVE9ETzogaW1wbGVtZW50IG1lIQorICAgIGlmIChyZ2JDb2xvci5pc0VtcHR5KCkgfHwg
aWNjQ29sb3IuaXNFbXB0eSgpKSB7CisgICAgICAgIGVjID0gU1ZHRXhjZXB0aW9uOjpTVkdfSU5W
QUxJRF9WQUxVRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTog
Tm8gc3VwcG9ydCBmb3IgSUNDIGNvbG9ycy4gV2UncmUganVzdCBpZ25vcmluZyBpdC4KKyAgICBz
ZXRSR0JDb2xvcihyZ2JDb2xvciwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jb2xvclR5cGUgPSBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SOwogfQog
Ci12b2lkIFNWR0NvbG9yOjpzZXRDb2xvcih1bnNpZ25lZCBzaG9ydCBjb2xvclR5cGUsIGNvbnN0
IFN0cmluZyYgLyogcmdiQ29sb3IgKi8gLCBjb25zdCBTdHJpbmcmIC8qIGljY0NvbG9yICovLCBF
eGNlcHRpb25Db2RlJikKK3ZvaWQgU1ZHQ29sb3I6OnNldENvbG9yKHVuc2lnbmVkIHNob3J0IGNv
bG9yVHlwZSwgY29uc3QgU3RyaW5nJiByZ2JDb2xvciwgY29uc3QgU3RyaW5nJiBpY2NDb2xvciwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gVE9ETzogaW1wbGVtZW50IG1lIQotICAgIG1f
Y29sb3JUeXBlID0gY29sb3JUeXBlOworICAgIGlmIChjb2xvclR5cGUgPiBTVkdfQ09MT1JUWVBF
X0NVUlJFTlRDT0xPUikgeworICAgICAgICBlYyA9IFNWR0V4Y2VwdGlvbjo6U1ZHX1dST05HX1RZ
UEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYm9vbCByZXF1aXJlc1JHQkNv
bG9yID0gZmFsc2U7CisgICAgYm9vbCByZXF1aXJlc0lDQ0NvbG9yID0gZmFsc2U7CisKKyAgICBT
VkdDb2xvclR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFNWR0NvbG9yVHlwZT4oY29sb3JUeXBlKTsK
KyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFNWR19DT0xPUlRZUEVfVU5LTk9XTjoKKyAg
ICAgICAgLy8gU3BlYzogSXQgaXMgaW52YWxpZCB0byBhdHRlbXB0IHRvIGRlZmluZSBhIG5ldyB2
YWx1ZSBvZiB0aGlzIHR5cGUgb3IgdG8gYXR0ZW1wdCB0byBzd2l0Y2ggYW4gZXhpc3RpbmcgdmFs
dWUgdG8gdGhpcyB0eXBlLgorICAgICAgICBlYyA9IFNWR0V4Y2VwdGlvbjo6U1ZHX0lOVkFMSURf
VkFMVUVfRVJSOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBTVkdfQ09MT1JUWVBFX1JHQkNP
TE9SX0lDQ0NPTE9SOgorICAgICAgICByZXF1aXJlc0lDQ0NvbG9yID0gdHJ1ZTsKKyAgICBjYXNl
IFNWR19DT0xPUlRZUEVfUkdCQ09MT1I6CisgICAgICAgIHJlcXVpcmVzUkdCQ29sb3IgPSB0cnVl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SOgor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBTcGVjOiBJZiBjb2xvclR5cGUgcmVxdWly
ZXMgYW4gUkdCQ29sb3IsIHRoZW4gcmdiQ29sb3IgbXVzdCBiZSBhIHN0cmluZyB0aGF0IG1hdGNo
ZXMgPGNvbG9yPjsgb3RoZXJ3aXNlLCByZ2JDb2xvciBtdXN0IGJlIG51bGwuCisgICAgaWYgKHJl
cXVpcmVzUkdCQ29sb3IgJiYgcmdiQ29sb3IuaXNFbXB0eSgpKSB7CisgICAgICAgIGVjID0gU1ZH
RXhjZXB0aW9uOjpTVkdfSU5WQUxJRF9WQUxVRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyBTcGVjOiBJZiBjb2xvclR5cGUgcmVxdWlyZXMgYW4gU1ZHSUNDQ29sb3IsIHRo
ZW4gaWNjQ29sb3IgbXVzdCBiZSBhIHN0cmluZyB0aGF0IG1hdGNoZXMgPGljY2NvbG9yPjsgb3Ro
ZXJ3aXNlLCBpY2NDb2xvciBtdXN0IGJlIG51bGwuCisgICAgaWYgKHJlcXVpcmVzSUNDQ29sb3Ig
JiYgaWNjQ29sb3IuaXNFbXB0eSgpKSB7CisgICAgICAgIGVjID0gU1ZHRXhjZXB0aW9uOjpTVkdf
SU5WQUxJRF9WQUxVRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2NvbG9y
VHlwZSA9IHR5cGU7CisgICAgaWYgKCFyZXF1aXJlc1JHQkNvbG9yKSB7CisgICAgICAgIEFTU0VS
VCghcmVxdWlyZXNJQ0NDb2xvcik7CisgICAgICAgIG1fY29sb3IgPSBDb2xvcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJlcXVpcmVzSUNDQ29sb3IpCisgICAgICAgIHNl
dFJHQkNvbG9ySUNDQ29sb3IocmdiQ29sb3IsIGljY0NvbG9yLCBlYyk7CisgICAgZWxzZQorICAg
ICAgICBzZXRSR0JDb2xvcihyZ2JDb2xvciwgZWMpOwogfQogCiBTdHJpbmcgU1ZHQ29sb3I6OmNz
c1RleHQoKSBjb25zdAogewotICAgIGlmIChtX2NvbG9yVHlwZSA9PSBTVkdfQ09MT1JUWVBFX1JH
QkNPTE9SKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBVc2UgQ29sb3I6OnNlcmlhbGl6ZWQoKSBpbnN0
ZWFkLgotICAgICAgICByZXR1cm4gbV9jb2xvci5uYW1lRm9yUmVuZGVyVHJlZUFzVGV4dCgpOwor
ICAgIHN3aXRjaCAobV9jb2xvclR5cGUpIHsKKyAgICBjYXNlIFNWR19DT0xPUlRZUEVfVU5LTk9X
TjoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgU1ZHX0NPTE9SVFlQRV9SR0JD
T0xPUl9JQ0NDT0xPUjoKKyAgICBjYXNlIFNWR19DT0xPUlRZUEVfUkdCQ09MT1I6CisgICAgICAg
IC8vIEZJWE1FOiBObyBJQ0MgY29sb3Igc3VwcG9ydC4KKyAgICAgICAgcmV0dXJuIG1fY29sb3Iu
c2VyaWFsaXplZCgpOworICAgIGNhc2UgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1I6CisgICAg
ICAgIGlmIChtX2NvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2NvbG9yLnNl
cmlhbGl6ZWQoKTsKKyAgICAgICAgcmV0dXJuICJjdXJyZW50Q29sb3IiOwogICAgIH0KIAorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogfQogCi0v
LyB2aW06dHM9NDpub2V0CiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKLQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbG9yLmgJKHJldmlzaW9uIDc5MzQ1KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDggKzIxLDggQEAKIAog
I2lmbmRlZiBTVkdDb2xvcl9oCiAjZGVmaW5lIFNWR0NvbG9yX2gKLSNpZiBFTkFCTEUoU1ZHKQog
CisjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNvbG9y
LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTMyLDYxICszMyw1OSBAQCBjbGFz
cyBSR0JDb2xvcjsKIAogY2xhc3MgU1ZHQ29sb3IgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NvbG9yPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBj
b2xvcikKKyAgICBlbnVtIFNWR0NvbG9yVHlwZSB7CisgICAgICAgIFNWR19DT0xPUlRZUEVfVU5L
Tk9XTiA9IDAsCisgICAgICAgIFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxLAorICAgICAgICBT
VkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMiwKKyAgICAgICAgU1ZHX0NPTE9SVFlQ
RV9DVVJSRU5UQ09MT1IgPSAzCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0Nv
bG9yPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgcmdiQ29sb3IpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0NvbG9yKGNvbG9yKSk7CisgICAgICAgIFJlZlB0
cjxTVkdDb2xvcj4gY29sb3IgPSBhZG9wdFJlZihuZXcgU1ZHQ29sb3IoU1ZHX0NPTE9SVFlQRV9S
R0JDT0xPUikpOworICAgICAgICBjb2xvci0+c2V0Q29sb3IoY29sb3JGcm9tUkdCQ29sb3JTdHJp
bmcocmdiQ29sb3IpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yLnJlbGVhc2UoKTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQ29sb3I+IGNyZWF0ZShjb25zdCBDb2xvciYgY29sb3Ip
CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDb2xvcj4gY3JlYXRlRnJvbUNvbG9yKGNvbnN0
IENvbG9yJiByZ2JDb2xvcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZH
Q29sb3IoY29sb3IpKTsKKyAgICAgICAgUmVmUHRyPFNWR0NvbG9yPiBjb2xvciA9IGFkb3B0UmVm
KG5ldyBTVkdDb2xvcihTVkdfQ09MT1JUWVBFX1JHQkNPTE9SKSk7CisgICAgICAgIGNvbG9yLT5z
ZXRDb2xvcihyZ2JDb2xvcik7CisgICAgICAgIHJldHVybiBjb2xvci5yZWxlYXNlKCk7CiAgICAg
fQorCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQ29sb3I+IGNyZWF0ZUN1cnJlbnRDb2xvcigp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0NvbG9yKFNWR19DT0xPUlRZ
UEVfQ1VSUkVOVENPTE9SKSk7CiAgICAgfQogCi0gICAgZW51bSBTVkdDb2xvclR5cGUgewotICAg
ICAgICBTVkdfQ09MT1JUWVBFX1VOS05PV04gPSAwLAotICAgICAgICBTVkdfQ09MT1JUWVBFX1JH
QkNPTE9SID0gMSwKLSAgICAgICAgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDIs
Ci0gICAgICAgIFNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SID0gMwotICAgIH07Ci0KLSAgICAv
LyAnU1ZHQ29sb3InIGZ1bmN0aW9ucwotICAgIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29sb3JUeXBlOyB9Ci0KKyAgICBjb25zdCBDb2xvciYgY29sb3IoKSBj
b25zdCB7IHJldHVybiBtX2NvbG9yOyB9CisgICAgY29uc3QgU1ZHQ29sb3JUeXBlJiBjb2xvclR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yVHlwZTsgfQogICAgIFBhc3NSZWZQdHI8UkdCQ29s
b3I+IHJnYkNvbG9yKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tUkdCQ29s
b3JTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2b2lkIHNldFJHQkNvbG9yKGNvbnN0IFN0
cmluZyYgcmdiQ29sb3IpIHsgRXhjZXB0aW9uQ29kZSBpZ25vcmVkID0gMDsgc2V0UkdCQ29sb3Io
cmdiQ29sb3IsIGlnbm9yZWQpOyB9CiAgICAgdm9pZCBzZXRSR0JDb2xvcihjb25zdCBTdHJpbmcm
IHJnYkNvbG9yLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRSR0JDb2xvcklDQ0NvbG9y
KGNvbnN0IFN0cmluZyYgcmdiQ29sb3IsIGNvbnN0IFN0cmluZyYgaWNjQ29sb3IsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldENvbG9yKHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZSwgY29u
c3QgU3RyaW5nJiByZ2JDb2xvciwgY29uc3QgU3RyaW5nJiBpY2NDb2xvciwgRXhjZXB0aW9uQ29k
ZSYpOwogCi0gICAgY29uc3QgQ29sb3ImIGNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvcjsg
fQotCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQ29sb3IoKTsKLSAgICBTVkdDb2xvcihjb25zdCBTdHJp
bmcmIGNvbG9yKTsKLSAgICBTVkdDb2xvcihjb25zdCBDb2xvciYpOworICAgIGZyaWVuZCBjbGFz
cyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb247CiAKKyAgICBTVkdDb2xvcihjb25zdCBTVkdD
b2xvclR5cGUmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKLXByaXZh
dGU6Ci0gICAgU1ZHQ29sb3IoU1ZHQ29sb3JUeXBlKTsKLQotICAgIHN0YXRpYyB2b2lkIGNyZWF0
ZShpbnQpOyAvLyBjb21waWxlLXRpbWUgZ3VhcmQgCisgICAgdm9pZCBzZXRDb2xvcihjb25zdCBD
b2xvciYgY29sb3IpIHsgbV9jb2xvciA9IGNvbG9yOyB9CisgICAgdm9pZCBzZXRDb2xvclR5cGUo
Y29uc3QgU1ZHQ29sb3JUeXBlJiB0eXBlKSB7IG1fY29sb3JUeXBlID0gdHlwZTsgfQogCitwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0NvbG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgQ29sb3IgbV9jb2xvcjsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX2NvbG9yVHlwZTsK
KyAgICBTVkdDb2xvclR5cGUgbV9jb2xvclR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQogI2VuZGlmIC8vIFNWR0NvbG9yX2gKLQotLy8g
dmltOnRzPTQ6bm9ldApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9yLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuaWRsCShyZXZpc2lvbiA3OTM0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDI1ICsyMiwyMyBAQAogbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlv
bmFsPVNWR10gU1ZHQ29sb3IgOiBDU1NWYWx1ZSB7Ci0gICAgICAgIC8vIENvbG9yIFR5cGVzCi0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xPUlRZUEVfVU5LTk9XTiAgICAgICAg
ICAgPSAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ09MT1JUWVBFX1JHQkNP
TE9SICAgICAgICAgID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9S
VFlQRV9VTktOT1dOID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9S
VFlQRV9SR0JDT0xPUiA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DT0xP
UlRZUEVfUkdCQ09MT1JfSUNDQ09MT1IgPSAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUiAgICAgID0gMzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgPSAzOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2xvclR5cGU7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBSR0JDb2xvciAgcmdiQ29sb3I7Ci0gICAgICAgIC8qcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0lDQ0NvbG9yICAgIGljY0NvbG9yOyovCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSR0JDb2xvciByZ2JDb2xvcjsKKyAgICAgICAgLy8gRklYTUU6IHJlYWRvbmx5IGF0dHJp
YnV0ZSBTVkdJQ0NDb2xvciBpY2NDb2xvcjsKIAotICAgICAgICB2b2lkIHNldFJHQkNvbG9yKGlu
IERPTVN0cmluZyByZ2JDb2xvcikKLSAgICAgICAgICAgIHJhaXNlcyhTVkdFeGNlcHRpb24pOwot
ICAgICAgICB2b2lkIHNldFJHQkNvbG9ySUNDQ29sb3IoaW4gRE9NU3RyaW5nIHJnYkNvbG9yLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBpY2NDb2xvcikK
LSAgICAgICAgICAgIHJhaXNlcyhTVkdFeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldENvbG9y
KGluIHVuc2lnbmVkIHNob3J0IGNvbG9yVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgcmdiQ29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGlj
Y0NvbG9yKQotICAgICAgICAgICAgcmFpc2VzKFNWR0V4Y2VwdGlvbik7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFJHQkNv
bG9yKGluIERPTVN0cmluZyByZ2JDb2xvcikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24sIFNWR0V4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWly
ZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0UkdCQ29sb3JJQ0NDb2xvcihpbiBET01TdHJp
bmcgcmdiQ29sb3IsIGluIERPTVN0cmluZyBpY2NDb2xvcikKKyAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2lu
ZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0Q29sb3IoaW4gdW5zaWduZWQg
c2hvcnQgY29sb3JUeXBlLCBpbiBET01TdHJpbmcgcmdiQ29sb3IsIGluIERPTVN0cmluZyBpY2ND
b2xvcikKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7CiAg
ICAgfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFpbnQuY3BwCShyZXZpc2lvbiA3OTM0NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAtMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsOTYgKzI0LDE0MyBAQAogI2lm
IEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHUGFpbnQuaCIKIAorI2luY2x1ZGUgIlNWR0V4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGFpbnQ6
OlNWR1BhaW50KCkKLSAgICA6IG1fcGFpbnRUeXBlKFNWR19QQUlOVFRZUEVfVU5LTk9XTikKK3N0
YXRpYyBpbmxpbmUgU1ZHQ29sb3I6OlNWR0NvbG9yVHlwZSBjb2xvclR5cGVGb3JQYWludFR5cGUo
Y29uc3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgcGFpbnRUeXBlKQogewotfQotCi1TVkdQYWlu
dDo6U1ZHUGFpbnQoY29uc3QgU3RyaW5nJiB1cmkpCi0gICAgOiBtX3BhaW50VHlwZShTVkdfUEFJ
TlRUWVBFX1VSSV9SR0JDT0xPUikKLXsKLSAgICBzZXRVcmkodXJpKTsKLX0KKyAgICBzd2l0Y2gg
KHBhaW50VHlwZSkgeworICAgIGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORToKKyAg
ICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VOS05PV046CisgICAgY2FzZSBTVkdQYWlu
dDo6U1ZHX1BBSU5UVFlQRV9VUkk6CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9V
UklfTk9ORToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9VUklfUkdCQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xP
UjoKKyAgICAgICAgcmV0dXJuIFNWR0NvbG9yOjpTVkdfQ09MT1JUWVBFX1JHQkNPTE9SOworICAg
IGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAg
IGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1I6CisgICAgICAg
IHJldHVybiBTVkdDb2xvcjo6U1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUjsKKyAgICBj
YXNlIFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1I6CisgICAgY2FzZSBT
VkdQYWludDo6U1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1I6CisgICAgICAgIHJldHVybiBTVkdD
b2xvcjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1I7CisgICAgfQogCi1TVkdQYWludDo6U1ZH
UGFpbnQoU1ZHUGFpbnRUeXBlIHBhaW50VHlwZSkKLSAgICA6IG1fcGFpbnRUeXBlKHBhaW50VHlw
ZSkKLXsKKyAgICByZXR1cm4gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfVU5LTk9XTjsKIH0KIAot
U1ZHUGFpbnQ6OlNWR1BhaW50KFNWR1BhaW50VHlwZSBwYWludFR5cGUsIGNvbnN0IFN0cmluZyYg
dXJpLCBjb25zdCBTdHJpbmcmIHJnYlBhaW50LCBjb25zdCBTdHJpbmcmKQotICAgIDogU1ZHQ29s
b3IocmdiUGFpbnQpCitTVkdQYWludDo6U1ZHUGFpbnQoY29uc3QgU1ZHUGFpbnRUeXBlJiBwYWlu
dFR5cGUsIFN0cmluZyB1cmkpCisgICAgOiBTVkdDb2xvcihjb2xvclR5cGVGb3JQYWludFR5cGUo
cGFpbnRUeXBlKSkKICAgICAsIG1fcGFpbnRUeXBlKHBhaW50VHlwZSkKKyAgICAsIG1fdXJpKHVy
aSkKIHsKLSAgICBzZXRVcmkodXJpKTsKLX0KLQotU1ZHUGFpbnQ6OlNWR1BhaW50KGNvbnN0IENv
bG9yJiBjKQotICAgIDogU1ZHQ29sb3IoYykKLSAgICAsIG1fcGFpbnRUeXBlKFNWR19QQUlOVFRZ
UEVfUkdCQ09MT1IpCi17Ci19Ci0KLVNWR1BhaW50OjpTVkdQYWludChjb25zdCBTdHJpbmcmIHVy
aSwgY29uc3QgQ29sb3ImIGMpCi0gICAgOiBTVkdDb2xvcihjKQotICAgICwgbV9wYWludFR5cGUo
U1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IpCi17Ci0gICAgc2V0VXJpKHVyaSk7Ci19Ci0KLVNW
R1BhaW50KiBTVkdQYWludDo6ZGVmYXVsdEZpbGwoKQotewotICAgIHN0YXRpYyBTVkdQYWludCog
c3RhdGljRGVmYXVsdEZpbGwgPSBjcmVhdGUoQ29sb3I6OmJsYWNrKS5yZWxlYXNlUmVmKCk7Ci0g
ICAgcmV0dXJuIHN0YXRpY0RlZmF1bHRGaWxsOwotfQotCi1TVkdQYWludCogU1ZHUGFpbnQ6OmRl
ZmF1bHRTdHJva2UoKQotewotICAgIHN0YXRpYyBTVkdQYWludCogc3RhdGljRGVmYXVsdFN0cm9r
ZSA9IGNyZWF0ZShTVkdfUEFJTlRUWVBFX05PTkUpLnJlbGVhc2VSZWYoKTsKLSAgICByZXR1cm4g
c3RhdGljRGVmYXVsdFN0cm9rZTsKLX0KLQotU3RyaW5nIFNWR1BhaW50Ojp1cmkoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3VyaTsKIH0KIAogdm9pZCBTVkdQYWludDo6c2V0VXJpKGNvbnN0IFN0
cmluZyYgdXJpKQogeworICAgIC8vIFNwZWM6IFNldHMgdGhlIHBhaW50VHlwZSB0byBTVkdfUEFJ
TlRUWVBFX1VSSV9OT05FIGFuZCBzZXRzIHVyaSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgogICAg
IG1fdXJpID0gdXJpOwotfQotCi12b2lkIFNWR1BhaW50OjpzZXRQYWludChTVkdQYWludFR5cGUg
cGFpbnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgU3RyaW5nJiByZ2JQYWludCwgY29u
c3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpCi17Ci0gICAgbV9wYWludFR5cGUgPSBwYWludFR5
cGU7CisgICAgbV9wYWludFR5cGUgPSBTVkdfUEFJTlRUWVBFX1VSSV9OT05FOworICAgIHNldENv
bG9yKENvbG9yKCkpOworICAgIHNldENvbG9yVHlwZShjb2xvclR5cGVGb3JQYWludFR5cGUobV9w
YWludFR5cGUpKTsKK30KKwordm9pZCBTVkdQYWludDo6c2V0UGFpbnQodW5zaWduZWQgc2hvcnQg
cGFpbnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgU3RyaW5nJiByZ2JDb2xvciwgY29u
c3QgU3RyaW5nJiBpY2NDb2xvciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKChwYWlu
dFR5cGUgPiBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SICYmIHBhaW50VHlwZSA8IFNW
R19QQUlOVFRZUEVfTk9ORSkgfHwgcGFpbnRUeXBlID4gU1ZHX1BBSU5UVFlQRV9VUkkpIHsKKyAg
ICAgICAgZWMgPSBTVkdFeGNlcHRpb246OlNWR19XUk9OR19UWVBFX0VSUjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGJvb2wgcmVxdWlyZXNVUkkgPSBmYWxzZTsKKworICAgIFNWR1Bh
aW50VHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8U1ZHUGFpbnRUeXBlPihwYWludFR5cGUpOworICAg
IHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9VTktOT1dOOgorICAgICAg
ICAvLyBTcGVjOiBJdCBpcyBpbnZhbGlkIHRvIGF0dGVtcHQgdG8gZGVmaW5lIGEgbmV3IHZhbHVl
IG9mIHRoaXMgdHlwZSBvciB0byBhdHRlbXB0IHRvIHN3aXRjaCBhbiBleGlzdGluZyB2YWx1ZSB0
byB0aGlzIHR5cGUuCisgICAgICAgIGVjID0gU1ZHRXhjZXB0aW9uOjpTVkdfSU5WQUxJRF9WQUxV
RV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfUkdCQ09MT1I6
CisgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgIGNhc2UgU1ZH
X1BBSU5UVFlQRV9OT05FOgorICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1I6Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9VUklfTk9ORToKKyAgICBjYXNl
IFNWR19QQUlOVFRZUEVfVVJJX0NVUlJFTlRDT0xPUjoKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVf
VVJJX1JHQkNPTE9SOgorICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09M
T1I6CisgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1VSSToKKyAgICAgICAgcmVxdWlyZXNVUkkgPSB0
cnVlOworICAgICAgICBicmVhazsKKyAgICB9OworCisgICAgLy8gU3BlYzogSWYgcGFpbnRUeXBl
IHJlcXVpcmVzIGEgVVJJLCB0aGVuIHVyaSBtdXN0IGJlIG5vbi1udWxsOyBvdGhlcndpc2UsIHVy
aSBtdXN0IGJlIG51bGwuCisgICAgaWYgKHJlcXVpcmVzVVJJICYmIHVyaS5pc0VtcHR5KCkpIHsg
CisgICAgICAgIGVjID0gU1ZHRXhjZXB0aW9uOjpTVkdfSU5WQUxJRF9WQUxVRV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTVkdDb2xvcjo6U1ZHQ29sb3JUeXBlIGNvbG9yVHlw
ZSA9IGNvbG9yVHlwZUZvclBhaW50VHlwZSh0eXBlKTsKKyAgICBpZiAoY29sb3JUeXBlID09IFNW
R0NvbG9yOjpTVkdfQ09MT1JUWVBFX1VOS05PV04pIHsKKyAgICAgICAgLy8gVGhlIHN0YW5kYXJk
IHNldENvbG9yKCkgY29kZSBwYXRoIHVzZWQgaW4gdGhlIGVsc2UgYnJhbmNoCisgICAgICAgIC8v
IHJhaXNlcyBhbiBleGNlcHRpb24gd2hlbiBhdHRlbXB0aW5nIHRvIHN3aXRjaCB0byBhbiB1bmtu
b3duIGNvbG9yIHR5cGUuCisgICAgICAgIC8vIEhlcmUgd2UgZXhwbGljaXRlbHkgd2FudCB0byBy
ZXNldCB0byBDb2xvcigpIGFuZCBhbiB1bmtub3duIHR5cGUsIHNvIGZvcmNlIGl0LgorICAgICAg
ICBzZXRDb2xvclR5cGUoY29sb3JUeXBlKTsKKyAgICAgICAgc2V0Q29sb3IoQ29sb3IoKSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgc2V0Q29sb3IoY29sb3JUeXBlLCByZ2JDb2xvciwgaWNjQ29s
b3IsIGVjKTsKKyAgICAgICAgaWYgKGVjKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAot
ICAgIGlmIChtX3BhaW50VHlwZSA9PSBTVkdfUEFJTlRUWVBFX1VSSSkKLSAgICAgICAgc2V0VXJp
KHVyaSk7Ci0gICAgZWxzZSBpZiAobV9wYWludFR5cGUgPT0gU1ZHX1BBSU5UVFlQRV9SR0JDT0xP
UikKLSAgICAgICAgc2V0UkdCQ29sb3IocmdiUGFpbnQpOworICAgIG1fcGFpbnRUeXBlID0gdHlw
ZTsKKyAgICBtX3VyaSA9IHJlcXVpcmVzVVJJID8gdXJpIDogU3RyaW5nKCk7CiB9CiAKIFN0cmlu
ZyBTVkdQYWludDo6Y3NzVGV4dCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcGFpbnRUeXBlID09IFNW
R19QQUlOVFRZUEVfTk9ORSkKKyAgICBzd2l0Y2ggKG1fcGFpbnRUeXBlKSB7CisgICAgY2FzZSBT
VkdfUEFJTlRUWVBFX1VOS05PV046CisgICAgY2FzZSBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SOgor
ICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUjoKKyAgICBjYXNlIFNWR19Q
QUlOVFRZUEVfQ1VSUkVOVENPTE9SOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNWR19QQUlO
VFRZUEVfTk9ORToKICAgICAgICAgcmV0dXJuICJub25lIjsKLSAgICBpZiAobV9wYWludFR5cGUg
PT0gU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IpCi0gICAgICAgIHJldHVybiAiY3VycmVudENv
bG9yIjsKLSAgICBpZiAobV9wYWludFR5cGUgPT0gU1ZHX1BBSU5UVFlQRV9VUkkpCisgICAgY2Fz
ZSBTVkdfUEFJTlRUWVBFX1VSSV9OT05FOgorICAgICAgICByZXR1cm4gbWFrZVN0cmluZygidXJs
KCIgKyBtX3VyaSArICIpIG5vbmUiKTsKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX0NVUlJF
TlRDT0xPUjoKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SOgorICAgIGNhc2Ug
U1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1I6CisgICAgICAgIHJldHVybiBtYWtl
U3RyaW5nKCJ1cmwoIiArIG1fdXJpICsgIikgIiwgU1ZHQ29sb3I6OmNzc1RleHQoKSk7CisgICAg
Y2FzZSBTVkdfUEFJTlRUWVBFX1VSSToKICAgICAgICAgcmV0dXJuICJ1cmwoIiArIG1fdXJpICsg
IikiOworICAgIH07CiAKICAgICByZXR1cm4gU1ZHQ29sb3I6OmNzc1RleHQoKTsKIH0KIAogYm9v
bCBTVkdQYWludDo6bWF0Y2hlc1RhcmdldFVSSShjb25zdCBTdHJpbmcmIHJlZmVyZW5jZUlkKQog
ewotICAgIGlmIChtX3BhaW50VHlwZSAhPSBTVkdfUEFJTlRUWVBFX1VSSSAmJiBtX3BhaW50VHlw
ZSAhPSBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHN3aXRjaCAobV9wYWludFR5cGUpIHsKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfVU5LTk9X
TjoKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfUkdCQ09MT1I6CisgICAgY2FzZSBTVkdfUEFJTlRU
WVBFX1JHQkNPTE9SX0lDQ0NPTE9SOgorICAgIGNhc2UgU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09M
T1I6CisgICAgY2FzZSBTVkdfUEFJTlRUWVBFX05PTkU6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU1ZHX1BBSU5UVFlQRV9VUklfTk9ORToKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX0NV
UlJFTlRDT0xPUjoKKyAgICBjYXNlIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SOgorICAgIGNh
c2UgU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1I6CisgICAgY2FzZSBTVkdfUEFJ
TlRUWVBFX1VSSToKKyAgICAgICAgcmV0dXJuIHJlZmVyZW5jZUlkID09IFNWR1VSSVJlZmVyZW5j
ZTo6Z2V0VGFyZ2V0KG1fdXJpKTsKKyAgICB9CiAKLSAgICByZXR1cm4gcmVmZXJlbmNlSWQgPT0g
U1ZHVVJJUmVmZXJlbmNlOjpnZXRUYXJnZXQobV91cmkpOworICAgIHJldHVybiBmYWxzZTsKIH0K
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmgJKHJldmlzaW9uIDc5MzQ1KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxz
YW0ud2VpbmlnQGdtaWFsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjEsOSArMjIsMTAgQEAKIAogI2lmbmRlZiBTVkdQYWludF9oCiAjZGVmaW5lIFNWR1BhaW50
X2gKKwogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNs
dWRlICJTVkdDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDQ5ICs0NCw2MyBAQCBwdWJsaWM6CiAgICAgICAgIFNW
R19QQUlOVFRZUEVfVVJJID0gMTA3CiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R1BhaW50PiBjcmVhdGUoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGVV
bmtub3duKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhaW50KFNWR19QQUlOVFRZUEVfVU5LTk9X
TikpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKFNWR1Bh
aW50VHlwZSB0eXBlKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZU5v
bmUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCh0eXBlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoU1ZHX1BBSU5UVFlQRV9OT05F
KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGUoY29uc3Qg
Q29sb3ImIGNvbG9yKQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZUN1
cnJlbnRDb2xvcigpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhaW50
KGNvbG9yKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoU1ZHX1BBSU5U
VFlQRV9DVVJSRU5UQ09MT1IpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFp
bnQ+IGNyZWF0ZShTVkdQYWludFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB1cmkpCisKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9y
KQorICAgIHsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBwYWludCA9IGFkb3B0UmVmKG5ldyBT
VkdQYWludChTVkdfUEFJTlRUWVBFX1JHQkNPTE9SKSk7CisgICAgICAgIHBhaW50LT5zZXRDb2xv
cihjb2xvcik7CisgICAgICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7CisgICAgfQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZVVSSShjb25zdCBTdHJpbmcmIHVyaSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQodHlwZSwgdXJpLCBT
dHJpbmcoKSwgU3RyaW5nKCkpKTsKKyAgICAgICAgUmVmUHRyPFNWR1BhaW50PiBwYWludCA9IGFk
b3B0UmVmKG5ldyBTVkdQYWludChTVkdfUEFJTlRUWVBFX1VSSSwgdXJpKSk7CisgICAgICAgIHJl
dHVybiBwYWludC5yZWxlYXNlKCk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1Bh
aW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IENvbG9yJiBjb2xvcikKKworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGVVUklBbmRDb2xvcihjb25zdCBTdHJp
bmcmIHVyaSwgY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdQYWludCh1cmksIGNvbG9yKSk7CisgICAgICAgIFJlZlB0cjxTVkdQYWludD4g
cGFpbnQgPSBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1Is
IHVyaSkpOworICAgICAgICBwYWludC0+c2V0Q29sb3IoY29sb3IpOworICAgICAgICByZXR1cm4g
cGFpbnQucmVsZWFzZSgpOwogICAgIH0KIAotICAgIC8vICdTVkdQYWludCcgZnVuY3Rpb25zCi0g
ICAgU1ZHUGFpbnRUeXBlIHBhaW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRUeXBlOyB9
Ci0gICAgU3RyaW5nIHVyaSgpIGNvbnN0OworICAgIGNvbnN0IFNWR1BhaW50VHlwZSYgcGFpbnRU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9wYWludFR5cGU7IH0KKyAgICBTdHJpbmcgdXJpKCkgY29u
c3QgeyByZXR1cm4gbV91cmk7IH0KIAogICAgIHZvaWQgc2V0VXJpKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZvaWQgc2V0UGFpbnQoU1ZHUGFpbnRUeXBlLCBjb25zdCBTdHJpbmcmIHVyaSwgY29uc3Qg
U3RyaW5nJiByZ2JQYWludCwgY29uc3QgU3RyaW5nJiBpY2NQYWludCwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIAotICAgIHN0YXRpYyBTVkdQYWludCogZGVmYXVsdEZpbGwoKTsKLSAgICBzdGF0aWMg
U1ZHUGFpbnQqIGRlZmF1bHRTdHJva2UoKTsKKyAgICB2b2lkIHNldFBhaW50KHVuc2lnbmVkIHNo
b3J0IHBhaW50VHlwZSwgY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IFN0cmluZyYgcmdiQ29sb3Is
IGNvbnN0IFN0cmluZyYgaWNjQ29sb3IsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJvb2wgbWF0
Y2hlc1RhcmdldFVSSShjb25zdCBTdHJpbmcmIHJlZmVyZW5jZUlkKTsKIAogcHJpdmF0ZToKLSAg
ICBTVkdQYWludCgpOwotICAgIFNWR1BhaW50KGNvbnN0IFN0cmluZyYgdXJpKTsKLSAgICBTVkdQ
YWludChTVkdQYWludFR5cGUpOwotICAgIFNWR1BhaW50KFNWR1BhaW50VHlwZSwgY29uc3QgU3Ry
aW5nJiB1cmksIGNvbnN0IFN0cmluZyYgcmdiUGFpbnQsIGNvbnN0IFN0cmluZyYgaWNjUGFpbnQp
OwotICAgIFNWR1BhaW50KGNvbnN0IENvbG9yJiBjKTsKLSAgICBTVkdQYWludChjb25zdCBTdHJp
bmcmIHVyaSwgY29uc3QgQ29sb3ImIGMpOworICAgIGZyaWVuZCBjbGFzcyBDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb247CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdQYWludCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKGNv
bnN0IFNWR1BhaW50VHlwZSYgdHlwZSwgY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IENvbG9yJiBj
b2xvcikKKyAgICB7CisgICAgICAgIFJlZlB0cjxTVkdQYWludD4gcGFpbnQgPSBhZG9wdFJlZihu
ZXcgU1ZHUGFpbnQodHlwZSwgdXJpKSk7CisgICAgICAgIHBhaW50LT5zZXRDb2xvcihjb2xvcik7
CisgICAgICAgIHJldHVybiBwYWludC5yZWxlYXNlKCk7CisgICAgfQogCitwcml2YXRlOgorICAg
IFNWR1BhaW50KGNvbnN0IFNWR1BhaW50VHlwZSYsIFN0cmluZyB1cmkgPSBTdHJpbmcoKSk7CisK
KyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdQYWludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKICAgICBTVkdQYWludFR5cGUgbV9w
YWludFR5cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFpbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5pZGwJKHJldmlzaW9uIDc5MzQ1KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MjcgKzI2LDIzIEBACiBtb2R1bGUgc3ZnIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
U1ZHXSBTVkdQYWludCA6IFNWR0NvbG9yIHsKLSAgICAgICAgLy8gU1ZHUGFpbnRUeXBlCi0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVU5LTk9XTiAgICAgICAgICAg
ICAgID0gMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JD
T0xPUiAgICAgICAgICAgICAgPSAxOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
UEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SICAgICA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19QQUlOVFRZUEVfTk9ORSAgICAgICAgICAgICAgICAgID0gMTAxOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUiAgICAg
ICAgICA9IDEwMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9V
UklfTk9ORSAgICAgICAgICAgICAgPSAxMDM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19QQUlOVFRZUEVfVVJJX0NVUlJFTlRDT0xPUiAgICAgID0gMTA0OwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUiAgICAgICAgICA9IDEw
NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VTktOT1dOID0g
MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiA9
IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1Jf
SUNDQ09MT1IgPSAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBF
X05PTkUgPSAxMDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVf
Q1VSUkVOVENPTE9SID0gMTAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJ
TlRUWVBFX1VSSV9OT05FID0gMTAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdf
UEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1IgPSAxMDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SID0gMTA1OwogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDEwNjsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUkkgICAgICAgICAg
ICAgICAgICAgPSAxMDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZ
UEVfVVJJID0gMTA3OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQYWludFR5cGUg
cGFpbnRUeXBlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcGFp
bnRUeXBlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVyaTsKIAotICAg
ICAgICB2b2lkIHNldFVyaShpbiBET01TdHJpbmcgdXJpKTsKLSAgICAgICAgdm9pZCBzZXRQYWlu
dChpbiBTVkdQYWludFR5cGUgcGFpbnRUeXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgdXJpLCAKLSAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcmdiQ29s
b3IsIAotICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBpY2NDb2xvcikKLSAgICAg
ICAgICAgIHJhaXNlcyhTVkdFeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
LCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRVcmkoaW4gRE9NU3RyaW5nIHVy
aSk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJh
aXNlXSB2b2lkIHNldFBhaW50KGluIHVuc2lnbmVkIHNob3J0IHBhaW50VHlwZSwgaW4gRE9NU3Ry
aW5nIHVyaSwgaW4gRE9NU3RyaW5nIHJnYkNvbG9yLCBpbiBET01TdHJpbmcgaWNjQ29sb3IpCisg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgIH07CiAK
IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDcwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzAxMS0wMi0yMyAgTmlrb2xhcyBaaW1tZXJt
YW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTVkcgMS4xIDJuZCBFZGl0aW9uIGNvbG9yLXByb3AtMDUtdC5z
dmcgZXhwb3NlcyBidWcgaW4gJ2N1cnJlbnRDb2xvcicgaGFuZGxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODAwCisKKyAgICAgICAgQWRkIG5l
dyB0ZXN0IGZyb20gU1ZHIDEuMSAybmQgRWRpdGlvbiBjb3ZlcmluZyBjdXJyZW50Q29sb3Igc3Vw
cG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3It
cHJvcC0wNS10LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0w
NS10LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL1czQy1TVkctMS4xLVNFL2Nv
bG9yLXByb3AtMDUtdC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1h
dGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY29sb3ItdHJhbnNwYXJlbnQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY3VycmVudENv
bG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWR5bmFt
aWMtdXBkYXRlLWF0dHJpYnV0ZU5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL2FuaW1hdGUtaW5oZXJpdC1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVu
dENvbG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
YW5pbWF0ZS1jb2xvci10cmFuc3BhcmVudC5qczoKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9z
Y3JpcHQtdGVzdHMvYW5pbWF0ZS1jdXJyZW50Q29sb3IuanM6CisgICAgICAgICogc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1hdGUtaW5oZXJpdC1jc3MtcHJvcGVydHkuanM6CisgICAg
ICAgICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFByZXNlbnRhdGlvbkF0dHJpYnV0ZS1tb2RpZnkuc3ZnOgorICAg
ICAgICAqIHN2Zy9jdXN0b20vcmdiY29sb3Itc3ludGF4LnN2ZzoKKyAgICAgICAgKiBzdmcvZG9t
L1NWR0NvbG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9TVkdDb2xv
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZG9tL1NWR1BhaW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9TVkdQYWludC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdDb2xvci5qczogQWRkZWQuCisgICAgICAgICogc3Zn
L2RvbS9zY3JpcHQtdGVzdHMvU1ZHUGFpbnQuanM6IEFkZGVkLgorCiAyMDExLTAyLTIzICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
UXQgcmViYXNlbGluZSBmb3IgbXkgY3Jhc2hlciB0ZXN0IGluIHI3OTQ2Mi4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4
cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9j
b2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEg
QEAKKzAzM2I4MTFjMWRiYWUyZDBmZWFiNjNjNzA5MWZkY2UwClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1T
RS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNW
Ry0xLjEtU0UvY29sb3ItcHJvcC0wNS10LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA0ODB4MzYwCitsYXllciBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKKyAgUmVuZGVy
U1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDQ4MHgzNjAKKyAgICBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUgMHgwCisgICAgUmVuZGVyU1ZHQ29udGFpbmVy
IHtnfSBhdCAoMTIwLDYwKSBzaXplIDE1MHgxNTAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDEyMCw2MCkgc2l6ZSAxNTB4MTUwCisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9
IGF0ICgxMjAsNjApIHNpemUgMTUweDE1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDBG
RjAwXX1dIFt4PTEyMC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0xNTAuMDBdIFtoZWlnaHQ9MTUwLjAw
XQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEwLDMxNCkgc2l6ZSAyMjd4MzMKKyAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgxMCwzMTQpIHNpemUgMjI3eDMzIGNvbnRhaW5z
IDEgY2h1bmsocykKKyAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjI3eDMzCisgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzNDAu
MDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDIgd2lkdGggNDAuOTA6ICIkUiIKKyAgICAgICAg
ICBjaHVuayAxIHRleHQgcnVuIDIgYXQgKDUwLjUxLDM0MC4wMCkgc3RhcnRPZmZzZXQgMiBlbmRP
ZmZzZXQgMyB3aWR0aCAxNy43OTogImUiCisgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAzIGF0
ICg2Ny44MiwzNDAuMDApIHN0YXJ0T2Zmc2V0IDMgZW5kT2Zmc2V0IDEyIHdpZHRoIDExNy4zODog
InZpc2lvbjogMSIKKyAgICAgICAgICBjaHVuayAxIHRleHQgcnVuIDQgYXQgKDE4Mi44MywzNDAu
MDApIHN0YXJ0T2Zmc2V0IDEyIGVuZE9mZnNldCAxNiB3aWR0aCA1My4zODogIi44ICQiCisgICAg
UmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSA0ODB4MzYwIFtzdHJva2U9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeD0xLjAwXSBbeT0xLjAwXSBbd2lkdGg9NDc4LjAw
XSBbaGVpZ2h0PTM1OC4wMF0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9XM0MtU1ZHLTEuMS1TRS9j
b2xvci1wcm9wLTA1LXQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9XM0MtU1ZH
LTEuMS1TRS9jb2xvci1wcm9wLTA1LXQuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
c3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC5zdmcJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjAgQEAKKzxzdmcgdmVyc2lvbj0iMS4xIiBiYXNlUHJvZmlsZT0idGlueSIgaWQ9InN2
Zy1yb290IgorICB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgNDgwIDM2
MCIKKyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CisgIDwhLS09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisgIDwh
LS09ICBTVkcgMS4xIDJuZCBFZGl0aW9uIFRlc3QgQ2FzZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9LS0+CisgIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CisgIDwhLS09ICBDb3B5
cmlnaHQgMjAwOSBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLCAoTWFzc2FjaHVzZXR0cyAgICAg
ICAgICA9LS0+CisgIDwhLS09ICBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgRXVyb3BlYW4gUmVz
ZWFyY2ggQ29uc29ydGl1bSBmb3IgICAgICAgICA9LS0+CisgIDwhLS09ICBJbmZvcm1hdGljcyBh
bmQgTWF0aGVtYXRpY3MgKEVSQ0lNKSwgS2VpbyBVbml2ZXJzaXR5KS4gICAgICAgICAgICA9LS0+
CisgIDwhLS09ICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9LS0+CisgIDwhLS09ICBTZWUgaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8uICAgICAgICAgICAgICAgICAgICAgICAgICA9LS0+CisgIDwhLS09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09LS0+CisgIDxkOlNWR1Rlc3RDYXNlIHhtbG5zOmQ9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvMDIvc3ZnL3Rlc3RzdWl0ZS9kZXNjcmlwdGlvbi8iCisgICAgdGVtcGxhdGUtdmVy
c2lvbj0iMS40IiByZXZpZXdlcj0iQ0wiIGF1dGhvcj0iQ04iIHN0YXR1cz0iYWNjZXB0ZWQiCisg
ICAgdmVyc2lvbj0iJFJldmlzaW9uOiAxLjggJCIgdGVzdG5hbWU9IiRSQ1NmaWxlOiBjb2xvci1w
cm9wLTA1LXQuc3ZnLHYgJCI+CisgICAgPGQ6dGVzdERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9j
b2xvci5odG1sI0NvbG9yUHJvcGVydHkiPgorICAgICAgPHA+CisgICAgICAgIFRlc3RzIHRoZSBj
b2xvciB0aGF0IGlzIHVzZWQgZm9yIHRoZSBjdXJyZW50Q29sb3IgdmFsdWUgaW4gdGhlIGZpbGwK
KyAgICAgICAgYXR0cmlidXRlIHdoZW4gbW9yZSB0aGFuIG9uZSBjb2xvciBpcyBzcGVjaWZpZWQu
CisgICAgICA8L3A+CisgICAgICA8cD4KKyAgICAgICAgVGhpcyBpcyBpbGx1c3RyYXRlZCB1c2lu
ZyBhIHNpbmdsZSByZWN0YW5nbGUgdGhhdCBpcyBhIGNoaWxkIG9mIGEgZ3JvdXAKKyAgICAgICAg
ZWxlbWVudC4gQSBmaWxsIGlzIHNwZWNpZmllZCBmb3IgdGhlIGdyb3VwIGVsZW1lbnQgYnV0IG5v
dCB0aGUKKyAgICAgICAgcmVjdGFuZ2xlLiBDb2xvdXIgaXMgc3BlY2lmZWQgZm9yIHRoZSByZWN0
YW5nbGUgYW5kIHRoZSBncm91cCBlbGVtZW50LgorICAgICAgPC9wPgorICAgIDwvZDp0ZXN0RGVz
Y3JpcHRpb24+CisgICAgPGQ6b3BlcmF0b3JTY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorICAgICAgPHA+UnVuIHRoZSB0ZXN0LiBObyBpbnRlcmFjdGlvbiByZXF1
aXJlZC48L3A+CisgICAgPC9kOm9wZXJhdG9yU2NyaXB0PgorICAgIDxkOnBhc3NDcml0ZXJpYSB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgICA8cD4KKyAgICAgICAg
VGhlIHRlc3QgaXMgcGFzc2VkIGlmIHRoZSB1c2VyIGFnZW50IHJlbmRlcnMgdGhlIHJlY3Rhbmds
ZSB3aXRoIGEgZ3JlZW4KKyAgICAgICAgZmlsbC4KKyAgICAgIDwvcD4KKyAgICA8L2Q6cGFzc0Ny
aXRlcmlhPgorICA8L2Q6U1ZHVGVzdENhc2U+CisgIDx0aXRsZSBpZD0idGVzdC10aXRsZSI+JFJD
U2ZpbGU6IGNvbG9yLXByb3AtMDUtdC5zdmcsdiAkPC90aXRsZT4KKyAgPGRlZnM+CisgICAgPGZv
bnQtZmFjZSBmb250LWZhbWlseT0iU1ZHRnJlZVNhbnNBU0NJSSIgdW5pY29kZS1yYW5nZT0iVSsw
LTdGIj4KKyAgICAgIDxmb250LWZhY2Utc3JjPgorICAgICAgICA8Zm9udC1mYWNlLXVyaSB4bGlu
azpocmVmPSIuLi9jdXN0b20vcmVzb3VyY2VzL1NWR0ZyZWVTYW5zLnN2ZyNhc2NpaSIvPgorICAg
ICAgPC9mb250LWZhY2Utc3JjPgorICAgIDwvZm9udC1mYWNlPgorICA8L2RlZnM+CisgIDxnIGlk
PSJ0ZXN0LWJvZHktY29udGVudCIgZm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUksc2Fucy1z
ZXJpZiIgZm9udC1zaXplPSIxOCI+CisgICAgPGcgZmlsbD0iY3VycmVudENvbG9yIiBjb2xvcj0i
bGltZSI+CisgICAgICA8cmVjdCB4PSIxMjAiIHk9IjYwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1
MCIgY29sb3I9InJlZCIvPgorICAgIDwvZz4KKyAgPC9nPgorICA8ZyBmb250LWZhbWlseT0iU1ZH
RnJlZVNhbnNBU0NJSSxzYW5zLXNlcmlmIiBmb250LXNpemU9IjMyIj4KKyAgICA8dGV4dCBpZD0i
cmV2aXNpb24iIHg9IjEwIiB5PSIzNDAiIHN0cm9rZT0ibm9uZSIgZmlsbD0iYmxhY2siPiRSZXZp
c2lvbjogMS44ICQ8L3RleHQ+CisgIDwvZz4KKyAgPHJlY3QgaWQ9InRlc3QtZnJhbWUiIHg9IjEi
IHk9IjEiIHdpZHRoPSI0NzgiIGhlaWdodD0iMzU4IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAw
MDAiLz4KKyAgPCEtLSBjb21tZW50IG91dCB0aGlzIHdhdGVybWFyayBvbmNlIHRoZSB0ZXN0IGlz
IGFwcHJvdmVkIC0tPgorICA8IS0tPGcgaWQ9ImRyYWZ0LXdhdGVybWFyayI+CisgICAgPHJlY3Qg
eD0iMSIgeT0iMSIgd2lkdGg9IjQ3OCIgaGVpZ2h0PSIyMCIgZmlsbD0icmVkIiBzdHJva2U9ImJs
YWNrIiBzdHJva2Utd2lkdGg9IjEiLz4KKyAgICA8dGV4dCBmb250LWZhbWlseT0iU1ZHRnJlZVNh
bnNBU0NJSSxzYW5zLXNlcmlmIiBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIyMCIgeD0i
MjQwIgorICAgICAgdGV4dC1hbmNob3I9Im1pZGRsZSIgeT0iMTgiIHN0cm9rZS13aWR0aD0iMC41
IiBzdHJva2U9ImJsYWNrIiBmaWxsPSJ3aGl0ZSI+RFJBRlQ8L3RleHQ+CisgIDwvZz4tLT4KKzwv
c3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xvci1maWxs
LWN1cnJlbnRDb2xvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xvci1maWxsLWN1cnJlbnRDb2xvci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNvbG9y
LWZpbGwtY3VycmVudENvbG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUZXN0cyBhbmltYXRpb24g
b24gJ2N1cnJlbnRDb2xvcicuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0lu
aXRpYWwgY29uZGl0aW9uOgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHJlY3QpLmdldFByb3BlcnR5VmFsdWUoJ2ZpbGwnKSBpcyAiI2ZmMDAwMCIKK1BBU1MgKGZp
bGxQYWludCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgnZmlsbCcpKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1BhaW50
XSIKK1BBU1MgZmlsbFBhaW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX0NV
UlJFTlRDT0xPUgorUEFTUyBmaWxsUGFpbnQudXJpIGlzICIiCitQQVNTIGZpbGxQYWludC5jb2xv
clR5cGUgaXMgU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IKK1BBU1MgKGZpbGxD
b2xvciA9IGZpbGxQYWludC5yZ2JDb2xvcikudG9TdHJpbmcoKSBpcyAiW29iamVjdCBSR0JDb2xv
cl0iCitQQVNTIGZpbGxDb2xvci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfTlVNQkVSKSBpcyAyNTUKK1BBU1MgZmlsbENvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKKworSGFsZi10aW1l
IGNvbmRpdGlvbjoKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShy
ZWN0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmaWxsJykgaXMgIiM4MDQwMDAiCitQQVNTIChmaWxsUGFp
bnQgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3QpLmdldFByb3Bl
cnR5Q1NTVmFsdWUoJ2ZpbGwnKSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQ
QVNTIGZpbGxQYWludC5wYWludFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9DVVJSRU5U
Q09MT1IKK1BBU1MgZmlsbFBhaW50LnVyaSBpcyAiIgorUEFTUyBmaWxsUGFpbnQuY29sb3JUeXBl
IGlzIFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SCitQQVNTIChmaWxsQ29sb3Ig
PSBmaWxsUGFpbnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgor
UEFTUyBmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05V
TUJFUikgaXMgMTI4CitQQVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDY0CitQQVNTIGZpbGxDb2xvci5ibHVlLmdldEZsb2F0
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorCitFbmQgY29uZGl0aW9u
OgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3QpLmdldFBy
b3BlcnR5VmFsdWUoJ2ZpbGwnKSBpcyAiIzAwODAwMCIKK1BBU1MgKGZpbGxQYWludCA9IGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgnZmlsbCcpKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1BhaW50XSIKK1BBU1MgZmlsbFBh
aW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUgorUEFT
UyBmaWxsUGFpbnQudXJpIGlzICIiCitQQVNTIGZpbGxQYWludC5jb2xvclR5cGUgaXMgU1ZHQ29s
b3IuU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IKK1BBU1MgKGZpbGxDb2xvciA9IGZpbGxQYWlu
dC5yZ2JDb2xvcikudG9TdHJpbmcoKSBpcyAiW29iamVjdCBSR0JDb2xvcl0iCitQQVNTIGZpbGxD
b2xvci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAw
CitQQVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19OVU1CRVIpIGlzIDEyOAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xvci1maWxsLWN1cnJlbnRDb2xvci5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1j
b2xvci1maWxsLWN1cnJlbnRDb2xvci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3IuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0ZS1jb2xvci10cmFuc3BhcmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xvci10cmFuc3BhcmVudC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDc5MzQ1KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZS1jb2xvci10cmFuc3BhcmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsOCAr
NSw4IEBAIFRlc3RzIHRoYXQgJ3RyYW5zcGFyZW50JyBpcyB0cmVhdGVkIGFzIGEKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnIzAwRkYwMCcK
LVBBU1MgcmVjdC5zdHlsZS5maWxsIGlzICcjN0YwMDAwJworUEFTUyByZWN0LnN0eWxlLmZpbGwg
aXMgJyMwMGZmMDAnCitQQVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnIzdmMDAwMCcKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jdXJyZW50Q29sb3ItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY3VycmVudENvbG9y
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzkzNDUpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRlLWN1cnJlbnRDb2xvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTUsNyArNSw3IEBAIFRlc3RzIGFuaW1hdGlvbiBvbiAnY3VycmVudENvbG9yJy4KIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnI0ZGMDAwMCcK
K1BBU1MgcmVjdC5zdHlsZS5maWxsIGlzICcjZmYwMDAwJwogUEFTUyByZWN0LnN0eWxlLmZpbGwg
aXMgJyM4MDQwMDAnCiBQQVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnIzAwODAwMCcKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L2FuaW1hdGUtZHluYW1pYy11cGRhdGUtYXR0cmlidXRlTmFtZS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1keW5hbWljLXVwZGF0
ZS1hdHRyaWJ1dGVOYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzkzNDUpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlLWR5bmFtaWMtdXBkYXRlLWF0dHJpYnV0ZU5hbWUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogUEFTUyByZWN0LnN0eWxlLmNvbG9yIGlz
ICdyZ2IoMCwgMTI4LCAwKScKLUZBSUwgcmVjdC5zdHlsZS5maWxsIHNob3VsZCBiZSAjMDA4MDAw
LiBXYXMgI0ZGMDAwMC4KK0ZBSUwgcmVjdC5zdHlsZS5maWxsIHNob3VsZCBiZSAjMDA4MDAwLiBX
YXMgI2ZmMDAwMC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1pbmhlcml0LWNz
cy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvYW5pbWF0ZS1pbmhlcml0LWNzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDc5MzQ1KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1pbmhlcml0
LWNzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBA
IFRlc3RzIGFuaW1hdGlvbiB3aXRoICdpbmhlcml0Jy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1QQVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnI0ZGMDAwMCcKK1BBU1MgcmVjdC5zdHls
ZS5maWxsIGlzICcjZmYwMDAwJwogUEFTUyByZWN0LnN0eWxlLmZpbGwgaXMgJyM4MDQwMDAnCiBQ
QVNTIHJlY3Quc3R5bGUuZmlsbCBpcyAnIzAwODAwMCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9h
bmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVu
dENvbG9yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2Ny
aXB0LXRlc3RzL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3IuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNzQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBhbmltYXRpb24gb24gJ2N1cnJl
bnRDb2xvcicuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3Vt
ZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmli
dXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwcHgiKTsK
K3JlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJmaWxsIiwgImN1cnJlbnRDb2xvciIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImNvbG9yIiwgInJl
ZCIpOworCit2YXIgYW5pbWF0ZUNvbG9yID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZUNvbG9y
Iik7CithbmltYXRlQ29sb3Iuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRlQ29sb3IiKTsKK2Fu
aW1hdGVDb2xvci5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiY29sb3IiKTsKK2FuaW1h
dGVDb2xvci5zZXRBdHRyaWJ1dGUoImZyb20iLCAicmVkIik7CithbmltYXRlQ29sb3Iuc2V0QXR0
cmlidXRlKCJ0byIsICJncmVlbiIpOworYW5pbWF0ZUNvbG9yLnNldEF0dHJpYnV0ZSgiZHVyIiwg
IjNzIik7CithbmltYXRlQ29sb3Iuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5p
bWF0ZUNvbG9yLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJmcmVlemUiKTsKK3JlY3QuYXBwZW5kQ2hp
bGQoYW5pbWF0ZUNvbG9yKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCitm
dW5jdGlvbiBjaGVja0ZpbGxDb2xvcihyZWQsIGdyZWVuLCBibHVlLCBoZXgpIHsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
cmVjdCkuZ2V0UHJvcGVydHlWYWx1ZSgnZmlsbCcpIiwgaGV4KTsKKworICAgIHRyeSB7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiKGZpbGxQYWludCA9IGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZmlsbCcpKS50
b1N0cmluZygpIiwgIltvYmplY3QgU1ZHUGFpbnRdIik7CisgICAgICAgIHNob3VsZEJlKCJmaWxs
UGFpbnQucGFpbnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SIik7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICIiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImZpbGxQYWludC5jb2xvclR5cGUiLCAiU1ZHQ29sb3IuU1ZHX0NPTE9S
VFlQRV9DVVJSRU5UQ09MT1IiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoZmls
bENvbG9yID0gZmlsbFBhaW50LnJnYkNvbG9yKS50b1N0cmluZygpIiwgIltvYmplY3QgUkdCQ29s
b3JdIik7CisgICAgICAgIHNob3VsZEJlKCJmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikiLCAiIiArIHJlZCk7CisgICAgICAgIHNob3VsZEJl
KCJmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVN
QkVSKSIsICIiICsgZ3JlZW4pOworICAgICAgICBzaG91bGRCZSgiZmlsbENvbG9yLmJsdWUuZ2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICIiICsgYmx1ZSk7Cisg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgIC8vIE9wZXJhIGRvZXNuJ3Qgc3VwcG9ydCBnZXRQcm9w
ZXJ0eUNTU1ZhbHVlIC0gbm8gd2F5IHRvIGNvbXBhcmUgdG8gdGhlaXIgU1ZHUGFpbnQvU1ZHQ29s
b3Igb2JqZWN0cyA6KAorICAgIH0KK30KKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0
aW9uIHNhbXBsZTEoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbml0aWFsIGNvbmRp
dGlvbjoiKTsKKyAgICBjaGVja0ZpbGxDb2xvcigyNTUsIDAsIDAsICIjZmYwMDAwIik7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJIYWxmLXRp
bWUgY29uZGl0aW9uOiIpOworICAgIGNoZWNrRmlsbENvbG9yKDEyOCwgNjQsIDAsICIjODA0MDAw
Iik7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVn
KCJFbmQgY29uZGl0aW9uOiIpOworICAgIGNoZWNrRmlsbENvbG9yKDAsIDEyOCwgMCwgIiMwMDgw
MDAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRW
YWx1ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1w
bGVDYWxsYmFja10KKyAgICAgICAgWyJhbmltYXRlQ29sb3IiLCAwLjAsICAgICJyZWN0Iiwgc2Ft
cGxlMV0sCisgICAgICAgIFsiYW5pbWF0ZUNvbG9yIiwgMS41LCAgICAicmVjdCIsIHNhbXBsZTJd
LAorICAgICAgICBbImFuaW1hdGVDb2xvciIsIDMuMCwgICAgInJlY3QiLCBzYW1wbGUzXQorICAg
IF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVn
aW4gdGVzdCBhc3luYworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3Qo
KSIpOword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLXRyYW5zcGFyZW50LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNv
bG9yLXRyYW5zcGFyZW50LmpzCShyZXZpc2lvbiA3OTM0NSkKKysrIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLXRyYW5zcGFyZW50LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMSwxMiArMjEsMTIgQEAgcm9vdFNWR0VsZW1lbnQuYXBwZW5kQ2hpbGQo
cmVjdCk7CiAvLyBTZXR1cCBhbmltYXRpb24gdGVzdAogZnVuY3Rpb24gZXhwZWN0VHJhbnNwYXJl
bnQoKSB7CiAgICAgLy8gQ2hlY2sgaW5pdGlhbC9lbmQgY29uZGl0aW9ucwotICAgIHNob3VsZEJl
KCJyZWN0LnN0eWxlLmZpbGwiLCAiJyMwMEZGMDAnIik7CisgICAgc2hvdWxkQmUoInJlY3Quc3R5
bGUuZmlsbCIsICInIzAwZmYwMCciKTsKIH0KIAogZnVuY3Rpb24gZXhwZWN0T3RoZXJDb2xvcigp
IHsKICAgICAvLyBDaGVjayBoYWxmLXRpbWUgY29uZGl0aW9ucwotICAgIHNob3VsZEJlKCJyZWN0
LnN0eWxlLmZpbGwiLCAiJyM3RjAwMDAnIik7CisgICAgc2hvdWxkQmUoInJlY3Quc3R5bGUuZmls
bCIsICInIzdmMDAwMCciKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1jdXJyZW50Q29s
b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRl
c3RzL2FuaW1hdGUtY3VycmVudENvbG9yLmpzCShyZXZpc2lvbiA3OTM0NSkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWN1cnJlbnRDb2xvci5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCByb290U1ZHRWxlbWVudC5hcHBlbmRDaGls
ZChyZWN0KTsKIC8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CiBmdW5jdGlvbiBzYW1wbGUxKCkgewog
ICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKLSAgICBzaG91bGRCZSgicmVjdC5z
dHlsZS5maWxsIiwgIicjRkYwMDAwJyIpOworICAgIHNob3VsZEJlKCJyZWN0LnN0eWxlLmZpbGwi
LCAiJyNmZjAwMDAnIik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTIoKSB7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1pbmhlcml0LWNzcy1wcm9w
ZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvYW5pbWF0ZS1pbmhlcml0LWNzcy1wcm9wZXJ0eS5qcwkocmV2aXNpb24gNzkzNDUpCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvYW5pbWF0ZS1pbmhlcml0
LWNzcy1wcm9wZXJ0eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCByb290U1ZH
RWxlbWVudC5hcHBlbmRDaGlsZChnKTsKIC8vIFNldHVwIGFuaW1hdGlvbiB0ZXN0CiBmdW5jdGlv
biBzYW1wbGUxKCkgewogICAgIC8vIENoZWNrIGluaXRpYWwvZW5kIGNvbmRpdGlvbnMKLSAgICBz
aG91bGRCZSgicmVjdC5zdHlsZS5maWxsIiwgIicjRkYwMDAwJyIpOworICAgIHNob3VsZEJlKCJy
ZWN0LnN0eWxlLmZpbGwiLCAiJyNmZjAwMDAnIik7CiB9CiAKIGZ1bmN0aW9uIHNhbXBsZTIoKSB7
CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS1iYXNpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc5MzQ1KQorKysgTGF5b3V0VGVzdHMvc3Zn
L2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMzcyLDcgKzM3Miw3IEBAIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY29sb3ItaW50
ZXIKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY29sb3ItaW50ZXJwb2xhdGlvbi1m
aWx0ZXJzKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGNvbG9yLXJlbmRlcmluZykgOiBhdXRvCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKGNvbG9yLXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQot
cmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShmaWxsKSA6ICMwMDAwRkYKK3JlY3Q6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoZmlsbCkgOiAjMDAwMGZmCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKGZpbGwpIDogW29iamVjdCBTVkdQYWludF0KIHJlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoZmlsbC1vcGFjaXR5KSA6IDEKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoZmlsbC1vcGFjaXR5KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCkBAIC0zODgsNyAr
Mzg4LDcgQEAgcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShtYXJrZXItc3RhcgogcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShtYXJrZXItc3RhcnQpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoc2hhcGUtcmVuZGVyaW5n
KSA6IGF1dG8KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoc2hhcGUtcmVuZGVyaW5n
KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCi1yZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKHN0cm9rZSkgOiAjRkZBNTAwCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHN0cm9r
ZSkgOiAjZmZhNTAwCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0cm9rZSkgOiBb
b2JqZWN0IFNWR1BhaW50XQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2UtZGFz
aGFycmF5KSA6IG5vbmUKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoc3Ryb2tlLWRh
c2hhcnJheSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQpAQCAtODE0LDcgKzgxNCw3IEBA
IGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUobWFya2VyLXN0YXJ0KSAKIGc6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUobWFya2VyLXN0YXJ0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVd
CiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHNoYXBlLXJlbmRlcmluZykgOiBhdXRvCiBnOiBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHNoYXBlLXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1By
aW1pdGl2ZVZhbHVlXQotZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2UpIDogI0ZGQTUw
MAorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHJva2UpIDogI2ZmYTUwMAogZzogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZShzdHJva2UpIDogW29iamVjdCBTVkdQYWludF0KIGc6IHN0eWxl
LmdldFByb3BlcnR5VmFsdWUoc3Ryb2tlLWRhc2hhcnJheSkgOiBub25lCiBnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHN0cm9rZS1kYXNoYXJyYXkpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0UHJlc2VudGF0aW9uQXR0cmli
dXRlLW1vZGlmeS5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRQ
cmVzZW50YXRpb25BdHRyaWJ1dGUtbW9kaWZ5LnN2ZwkocmV2aXNpb24gNzkzNDUpCisrKyBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2dldFByZXNlbnRhdGlvbkF0dHJpYnV0ZS1tb2RpZnkuc3ZnCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgIGZpbGwuc2V0UkdCQ29sb3Io
ImdyZWVuIik7CiAgICAgICAgIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlyc3Ry
ZWN0Iik7CiAgICAgICAgIGZpbGwgPSByZWN0LmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZSgiZmls
bCIpOwotICAgICAgICBpZiAoZmlsbC5jc3NUZXh0ICE9ICcjRkYwMDAwJykgeworICAgICAgICBp
ZiAoZmlsbC5jc3NUZXh0ICE9ICcjZmYwMDAwJykgewogICAgICAgICAgICAgbG9nKCJDaGFuZ2lu
ZyBmaWxsIFBBIHNob3VsZCBub3QgY2hhbmdlIGZpcnN0cmVjdCBmaWxsIFBBIik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmdi
Y29sb3Itc3ludGF4LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jn
YmNvbG9yLXN5bnRheC5zdmcJKHJldmlzaW9uIDc5MzQ1KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9yZ2Jjb2xvci1zeW50YXguc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5ICs0NSw5IEBA
CiAgICAgICAgIGlmICghZXhwZWN0c0V4Y2VwdGlvbihjb2wsICIjZmZmZmYiKSkgcmV0dXJuOwog
ICAgICAgICBpZiAoIWV4cGVjdHNFeGNlcHRpb24oY29sLCAiI2ZmZmZmZmYiKSkgcmV0dXJuOwog
ICAgICAgICBpZiAoIWV4cGVjdHNFeGNlcHRpb24oY29sLCAiZ3JlZW4sIikpIHJldHVybjsKLSAg
ICAgICAgaWYgKCFleHBlY3RzVmFsaWQoY29sLCAicmdiKDAsIDEwLCAyMCkiLCAiIzAwMEExNCIp
KSByZXR1cm47Ci0gICAgICAgIGlmICghZXhwZWN0c1ZhbGlkKGNvbCwgIiNGRkYiLCAiI0ZGRkZG
RiIpKSByZXR1cm47Ci0gICAgICAgIGlmICghZXhwZWN0c1ZhbGlkKGNvbCwgIiNGRkZGRkYiLCAi
I0ZGRkZGRiIpKSByZXR1cm47CisgICAgICAgIGlmICghZXhwZWN0c1ZhbGlkKGNvbCwgInJnYigw
LCAxMCwgMjApIiwgIiMwMDBhMTQiKSkgcmV0dXJuOworICAgICAgICBpZiAoIWV4cGVjdHNWYWxp
ZChjb2wsICIjRkZGIiwgIiNmZmZmZmYiKSkgcmV0dXJuOworICAgICAgICBpZiAoIWV4cGVjdHNW
YWxpZChjb2wsICIjRkZGRkZGIiwgIiNmZmZmZmYiKSkgcmV0dXJuOwogICAgICAgICBpZiAoIWV4
cGVjdHNWYWxpZChjb2wsICIgZ3JlZW4iLCAiIzAwODAwMCIpKSByZXR1cm47CiAgICAgICAgIGlm
ICghZXhwZWN0c1ZhbGlkKGNvbCwgImdyZWVuICIsICIjMDA4MDAwIikpIHJldHVybjsKICAgICAg
ICAgaWYgKCFleHBlY3RzVmFsaWQoY29sLCAiZ3JlZW4iLCAiIzAwODAwMCIpKSByZXR1cm47Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vU1ZHQ29sb3ItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDY3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBTVkdDb2xvciBBUEkK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworQ2hlY2sgaW5pdGlhbCBjb2xvciB2
YWx1ZXMKK1BBU1MgKHN0b3BDb2xvciA9IHN0b3BFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoJ3N0b3AtY29sb3InKSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdDb2xvcl0iCitQ
QVNTIHN0b3BDb2xvci5jb2xvclR5cGUgaXMgU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xP
UgorUEFTUyAocmdiQ29sb3IgPSBzdG9wQ29sb3IucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltv
YmplY3QgUkdCQ29sb3JdIgorUEFTUyByZ2JDb2xvci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAyNTUKK1BBU1MgcmdiQ29sb3IuZ3JlZW4uZ2V0Rmxv
YXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitQQVNTIHJnYkNvbG9y
LmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitQ
QVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3RvcEVsZW1lbnQpLnN0
b3BDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1RyeSBpbnZhbGlkIGFyZ3VtZW50cyBmb3Ig
c2V0Q29sb3IoKQorUEFTUyBzdG9wQ29sb3Iuc2V0Q29sb3IobnVsbCwgbnVsbCwgbnVsbCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0
aW9uIDEuCitQQVNTIHN0b3BDb2xvci5zZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JH
QkNPTE9SLCBzdmdFbGVtZW50LCAnJyk7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFM
SURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBzdG9wQ29sb3Iuc2V0Q29s
b3IoU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiwgJycsICcnKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMS4KK1BB
U1Mgc3RvcENvbG9yLnNldENvbG9yKFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9S
ICsgMSwgJycsICcnKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6
IERPTSBTVkcgRXhjZXB0aW9uIDAuCitQQVNTIHN0b3BDb2xvci5zZXRDb2xvcigpIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHN0b3BDb2xv
ci5zZXRDb2xvcihzdG9wQ29sb3IpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMuCisKK1RyeSBhc3NpZ25pbmcgdG8gdGhlIHJlYWRvbmx5IGNvbG9yVHlw
ZSBwcm9wZXJ0eSwgd2hpY2ggc2lsZW50bHkgZmFpbHMKK1BBU1Mgc3RvcENvbG9yLmNvbG9yVHlw
ZSA9IFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfVU5LS05PV047IGlzIHVuZGVmaW5lZC4KK1BBU1Mg
c3RvcENvbG9yLmNvbG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SCitQ
QVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3RvcEVsZW1lbnQpLnN0
b3BDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3QgdXNpbmcgc2V0Q29sb3IoKSBhbmQg
U1ZHX0NPTE9SVFlQRV9VTktOT1dOCitQQVNTIHN0b3BDb2xvci5zZXRDb2xvcihTVkdDb2xvci5T
VkdfQ09MT1JUWVBFX1VOS0tOT1dOLCAnJywgJycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZH
X0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBzdG9wQ29sb3Iu
c2V0Q29sb3IoU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9VTktLTk9XTiwgJ3JnYigwLDEyOCwxMjgp
JywgJycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00g
U1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBzdG9wQ29sb3Iuc2V0Q29sb3IoU1ZHQ29sb3IuU1ZHX0NP
TE9SVFlQRV9VTktLTk9XTiwgJycsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9u
IDEuCitQQVNTIHN0b3BDb2xvci5zZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1VOS0tO
T1dOLCAncmdiKDAsMCwwKScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDEu
CisKK1Rlc3QgdXNpbmcgc2V0Q29sb3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0ND
T0xPUgorUEFTUyBzdG9wQ29sb3Iuc2V0Q29sb3IoU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JD
T0xPUl9JQ0NDT0xPUiwgJ3JnYig3NywwLDc3KScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIp
JykgaXMgdW5kZWZpbmVkLgorUEFTUyBzdG9wQ29sb3IuY29sb3JUeXBlIGlzIFNWR0NvbG9yLlNW
R19DT0xPUlRZUEVfUkdCQ09MT1JfSUNDQ09MT1IKK1BBU1Mgc3RvcENvbG9yLmNvbG9yVHlwZSBp
cyBTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SCitQQVNTIChyZ2JDb2xv
ciA9IHN0b3BDb2xvci5yZ2JDb2xvcikudG9TdHJpbmcoKSBpcyAiW29iamVjdCBSR0JDb2xvcl0i
CitQQVNTIHJnYkNvbG9yLnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19O
VU1CRVIpIGlzIDc3CitQQVNTIHJnYkNvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyByZ2JDb2xvci5ibHVlLmdldEZsb2F0VmFs
dWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgNzcKK0ZBSUwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdG9wRWxlbWVudCkuc3RvcENvbG9yIHNob3VsZCBi
ZSByZ2IoNzcsIDAsIDc3KS4gV2FzIHJnYigyNTUsIDAsIDApLgorCitUZXN0IHVzaW5nIHNldENv
bG9yKCkgYW5kIFNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SCitQQVNTIHN0b3BDb2xvci5zZXRD
b2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUiwgJ3JnYig3NywwLDc3KScs
ICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykgaXMgdW5kZWZpbmVkLgorUEFTUyBzdG9wQ29s
b3IuY29sb3JUeXBlIGlzIFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SCitQQVNT
IHN0b3BDb2xvci5jb2xvclR5cGUgaXMgU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09M
T1IKK1BBU1MgKHJnYkNvbG9yID0gc3RvcENvbG9yLnJnYkNvbG9yKS50b1N0cmluZygpIGlzICJb
b2JqZWN0IFJHQkNvbG9yXSIKK1BBU1MgcmdiQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyByZ2JDb2xvci5ncmVlbi5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK1BBU1MgcmdiQ29sb3Iu
Ymx1ZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK0ZB
SUwgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdG9wRWxlbWVudCkuc3Rv
cENvbG9yIHNob3VsZCBiZSAjMDBGRjAwLiBXYXMgcmdiKDI1NSwgMCwgMCkuCisKK1Rlc3QgdXNp
bmcgc2V0Q29sb3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUgorUEFTUyBzdG9wQ29sb3Iu
c2V0Q29sb3IoU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiwgJ3JnYigwLDc3LDApJywg
J2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSBpcyB1bmRlZmluZWQuCitQQVNTIHN0b3BDb2xv
ci5jb2xvclR5cGUgaXMgU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUgorUEFTUyBzdG9w
Q29sb3IuY29sb3JUeXBlIGlzIFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfUkdCQ09MT1IKK1BBU1Mg
KHJnYkNvbG9yID0gc3RvcENvbG9yLnJnYkNvbG9yKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFJH
QkNvbG9yXSIKK1BBU1MgcmdiQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyByZ2JDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDc3CitQQVNTIHJnYkNvbG9yLmJsdWUuZ2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitGQUlMIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3RvcEVsZW1lbnQpLnN0b3BDb2xvciBz
aG91bGQgYmUgcmdiKDAsIDc3LCAwKS4gV2FzIHJnYigyNTUsIDAsIDApLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9kb20vU1ZHQ29sb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR0NvbG9yLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0Nv
bG9yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1NWR0Nv
bG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2RvbS9TVkdQYWludC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2RvbS9TVkdQYWludC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR1BhaW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyMTkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIFNWR1BhaW50IEFQSQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworCitDaGVjayBpbml0aWFsIHBhaW50IHZhbHVlcworUEFT
UyAoZmlsbFBhaW50ID0gcmVjdEVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZmls
bCcpKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1BhaW50XSIKK1BBU1MgZmlsbFBhaW50LnBh
aW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX1JHQkNPTE9SCitQQVNTIGZpbGxQYWlu
dC51cmkgaXMgIiIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09M
T1JUWVBFX1JHQkNPTE9SCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFpbnQucmdiQ29sb3IpLnRv
U3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxsQ29sb3IucmVkLmdldEZs
b2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29s
b3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAx
MjgKK1BBU1MgZmlsbENvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfTlVNQkVSKSBpcyAwCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUocmVjdEVsZW1lbnQpLmZpbGwgaXMgIiMwMDgwMDAiCisKK1RyeSBpbnZhbGlkIGFyZ3VtZW50
cyBmb3Igc2V0UGFpbnQoKQorUEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQobnVsbCwgbnVsbCwgbnVs
bCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERP
TSBTVkcgRXhjZXB0aW9uIDEuCitQQVNTIGZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdf
UEFJTlRUWVBFX1JHQkNPTE9SLCBzdmdFbGVtZW50LCAnJywgJycpOyB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMS4KK1BBU1Mg
ZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfUkdCQ09MT1IsICcnLCAn
JykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUND
Q09MT1IgKyAxLCAnJywgJycsICcnKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdf
VFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCitQQVNTIGZpbGxQYWludC5zZXRQYWludChT
VkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUgLSAxLCAnJywgJycsICcnKTsgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCitQQVNT
IGZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSSArIDEsICcnLCAn
JywgJycpOyB0aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19XUk9OR19UWVBFX0VSUjogRE9NIFNW
RyBFeGNlcHRpb24gMC4KK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZmlsbFBhaW50LnNldFBh
aW50KGZpbGxQYWludCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KKworVHJ5IGludmFsaWQgYXJndW1lbnRzIGZvciBzZXRVcmkoKQorUEFTUyBmaWxs
UGFpbnQuc2V0VXJpKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KKworVHJ5IGFzc2lnbmluZyB0byB0aGUgcmVhZG9ubHkgcGFpbnRUeXBlIHByb3Bl
cnR5LCB3aGljaCBzaWxlbnRseSBmYWlscworUEFTUyBmaWxsUGFpbnQucGFpbnRUeXBlID0gU1ZH
UGFpbnQuU1ZHX1BBSU5UVFlQRV9VTktLTk9XTjsgaXMgdW5kZWZpbmVkLgorUEFTUyBmaWxsUGFp
bnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfUkdCQ09MT1IKK1BBU1MgZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCBpcyAi
IzAwODAwMCIKKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBFX1VOS05P
V04KK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfVU5LS05P
V04sICcnLCAnJywgJycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVf
RVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFp
bnQuU1ZHX1BBSU5UVFlQRV9VTktLTk9XTiwgJ3VybCgjZm9vKScsICcnLCAnJykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDEu
CitQQVNTIGZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VOS0tOT1dO
LCAnJywgJ3JnYigwLDEyOCwxMjgpJywgJycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lO
VkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBmaWxsUGFpbnQuc2V0
UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VTktLTk9XTiwgJycsICcnLCAnaWNjLWNvbG9y
KG15UkdCLCAwLCAxLCAyKScpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFM
VUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQoU1ZH
UGFpbnQuU1ZHX1BBSU5UVFlQRV9VTktLTk9XTiwgJ3VybCgjZm9vKScsICdyZ2IoMCwwLDApJywg
J2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19J
TlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMS4KKworVGVzdCB1c2luZyBzZXRQ
YWludCgpIGFuZCBTVkdfUEFJTlRUWVBFX05PTkUgLSBhCitQQVNTIGZpbGxQYWludC5zZXRQYWlu
dChTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUsICcnLCAnJywgJycpIGlzIHVuZGVmaW5lZC4K
K1BBU1MgZmlsbFBhaW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUK
K0ZBSUwgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCku
ZmlsbCBzaG91bGQgYmUgbm9uZS4gV2FzICMwMDgwMDAuCisKK1Jlc2V0IHN0eWxlIHRvIGluaXRp
YWwgdmFsdWUKK1BBU1MgKGZpbGxQYWludCA9IHJlY3RFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoJ2ZpbGwnKSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQQVNT
IGZpbGxQYWludC5wYWludFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgor
UEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5m
aWxsIGlzICIjMDA4MDAwIgorCitUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZ
UEVfTk9ORSAtIGIKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZ
UEVfTk9ORSwgJ3VybCgjZm9vKScsICcnLCAnJykgaXMgdW5kZWZpbmVkLgorUEFTUyBmaWxsUGFp
bnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORQorRkFJTCBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIHNob3VsZCBi
ZSBub25lLiBXYXMgIzAwODAwMC4KKworUmVzZXQgc3R5bGUgdG8gaW5pdGlhbCB2YWx1ZQorUEFT
UyAoZmlsbFBhaW50ID0gcmVjdEVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZmls
bCcpKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1BhaW50XSIKK1BBU1MgZmlsbFBhaW50LnBh
aW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX1JHQkNPTE9SCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgaXMgIiMwMDgw
MDAiCisKK1Rlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9OT05FIC0gYwor
UEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9OT05FLCAnJywg
J3JnYigwLDEyOCwxMjgpJywgJycpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50LnBhaW50
VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUKK0ZBSUwgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCBzaG91bGQgYmUgbm9uZS4g
V2FzICMwMDgwMDAuCisKK1Jlc2V0IHN0eWxlIHRvIGluaXRpYWwgdmFsdWUKK1BBU1MgKGZpbGxQ
YWludCA9IHJlY3RFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2ZpbGwnKSkudG9T
dHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQQVNTIGZpbGxQYWludC5wYWludFR5cGUg
aXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIGlzICIjMDA4MDAwIgorCitU
ZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfTk9ORSAtIGQKK1BBU1MgZmls
bFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORSwgJycsICcnLCAnaWNj
LWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50LnBh
aW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUKK0ZBSUwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCBzaG91bGQgYmUgbm9u
ZS4gV2FzICMwMDgwMDAuCisKK1Jlc2V0IHN0eWxlIHRvIGluaXRpYWwgdmFsdWUKK1BBU1MgKGZp
bGxQYWludCA9IHJlY3RFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2ZpbGwnKSku
dG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQQVNTIGZpbGxQYWludC5wYWludFR5
cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIGlzICIjMDA4MDAwIgor
CitUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfTk9ORSAtIGUKK1BBU1Mg
ZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORSwgJ3VybCgjZm9v
KScsICdyZ2IoMCwwLDApJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSBpcyB1bmRlZmlu
ZWQuCitGQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1l
bnQpLmZpbGwgc2hvdWxkIGJlIG5vbmUuIFdhcyAjMDA4MDAwLgorCitUZXN0IHVzaW5nIHNldFBh
aW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJIC0gYQorUEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQo
U1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUkksICcnLCAnJywgJycpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFTUyBm
aWxsUGFpbnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORQorRkFJTCBk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIHNo
b3VsZCBiZSBub25lLiBXYXMgIzAwODAwMC4KKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBT
VkdfUEFJTlRUWVBFX1VSSSAtIGIKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNW
R19QQUlOVFRZUEVfVVJJLCAnJywgJ3JnYigwLDEyOCwxMjgpJywgJycpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxLgorUEFT
UyBmaWxsUGFpbnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORQorRkFJ
TCBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxs
IHNob3VsZCBiZSBub25lLiBXYXMgIzAwODAwMC4KKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFu
ZCBTVkdfUEFJTlRUWVBFX1VSSSAtIGMKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50
LlNWR19QQUlOVFRZUEVfVVJJLCAnJywgJycsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhj
ZXB0aW9uIDEuCitQQVNTIGZpbGxQYWludC5wYWludFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5U
VFlQRV9OT05FCitGQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVj
dEVsZW1lbnQpLmZpbGwgc2hvdWxkIGJlIG5vbmUuIFdhcyAjMDA4MDAwLgorCitUZXN0IHVzaW5n
IHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJIC0gZAorUEFTUyBmaWxsUGFpbnQuc2V0
UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUkksICd1cmwoI3Rlc3QpJywgJycsICcnKSBp
cyB1bmRlZmluZWQuCitQQVNTIGZpbGxQYWludC5wYWludFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BB
SU5UVFlQRV9VUkkKK1BBU1MgZmlsbFBhaW50LnVyaSBpcyAidXJsKCN0ZXN0KSIKK1BBU1MgZmls
bFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1VOS05PV04KK1BBU1Mg
KGZpbGxDb2xvciA9IGZpbGxQYWludC5yZ2JDb2xvcikudG9TdHJpbmcoKSBpcyAiW29iamVjdCBS
R0JDb2xvcl0iCitQQVNTIGZpbGxDb2xvci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitQQVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK1BBU1MgZmlsbENvbG9yLmJsdWUu
Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitGQUlMIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgc2hv
dWxkIGJlIHVybCgjdGVzdCkuIFdhcyAjMDA4MDAwLgorCitSZXNldCBzdHlsZSB0byBpbml0aWFs
IHZhbHVlCitQQVNTIChmaWxsUGFpbnQgPSByZWN0RWxlbWVudC5zdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKCdmaWxsJykpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgU1ZHUGFpbnRdIgorUEFTUyBm
aWxsUGFpbnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfUkdCQ09MT1IKK1BB
U1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmls
bCBpcyAiIzAwODAwMCIKKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBF
X1VSSSAtIGUKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVf
VVJJLCAndXJsKCNmb28pJywgJ3JnYigwLDAsMCknLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAy
KScpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5T
VkdfUEFJTlRUWVBFX1VSSQorUEFTUyBmaWxsUGFpbnQudXJpIGlzICJ1cmwoI2ZvbykiCitQQVNT
IGZpbGxQYWludC5jb2xvclR5cGUgaXMgU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9VTktOT1dOCitQ
QVNTIChmaWxsQ29sb3IgPSBmaWxsUGFpbnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmpl
Y3QgUkdCQ29sb3JdIgorUEFTUyBmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitQQVNTIGZpbGxDb2xvci5i
bHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorRkFJ
TCBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxs
IHNob3VsZCBiZSB1cmwoI2ZvbykuIFdhcyAjMDA4MDAwLgorCitUZXN0IHVzaW5nIHNldFBhaW50
KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJX05PTkUKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNW
R1BhaW50LlNWR19QQUlOVFRZUEVfVVJJX05PTkUsICd1cmwoI3Rlc3QpJywgJ3JnYigwLDAsMCkn
LCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBh
aW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9OT05FCitQQVNTIGZp
bGxQYWludC51cmkgaXMgInVybCgjdGVzdCkiCitQQVNTIGZpbGxQYWludC5jb2xvclR5cGUgaXMg
U1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9VTktOT1dOCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFp
bnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxs
Q29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMg
MAorUEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfTlVNQkVSKSBpcyAwCitQQVNTIGZpbGxDb2xvci5ibHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorRkFJTCBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIHNob3VsZCBiZSB1cmwoI3Rlc3QpLiBX
YXMgIzAwODAwMC4KKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBFX1VS
SV9DVVJSRU5UQ09MT1IKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlO
VFRZUEVfVVJJX0NVUlJFTlRDT0xPUiwgJ3VybCgjZm9vKScsICdyZ2IoMCwwLDApJywgJ2ljYy1j
b2xvcihteVJHQiwgMCwgMSwgMiknKSBpcyB1bmRlZmluZWQuCitQQVNTIGZpbGxQYWludC5wYWlu
dFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SCitQQVNTIGZp
bGxQYWludC51cmkgaXMgInVybCgjZm9vKSIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBT
VkdDb2xvci5TVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUgorUEFTUyAoZmlsbENvbG9yID0gZmls
bFBhaW50LnJnYkNvbG9yKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFJHQkNvbG9yXSIKK1BBU1Mg
ZmlsbENvbG9yLnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIp
IGlzIDAKK1BBU1MgZmlsbENvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK0ZBSUwgZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCBzaG91bGQgYmUgdXJsKCNmb28p
LiBXYXMgIzAwODAwMC4KKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBF
X1VSSV9SR0JDT0xPUgorUEFTUyBmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5U
VFlQRV9VUklfUkdCQ09MT1IsICd1cmwoI3Rlc3QpJywgJ3JnYig3NywwLDc3KScsICdpY2MtY29s
b3IobXlSR0IsIDAsIDEsIDIpJykgaXMgdW5kZWZpbmVkLgorUEFTUyBmaWxsUGFpbnQucGFpbnRU
eXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SCitQQVNTIGZpbGxQYWlu
dC51cmkgaXMgInVybCgjdGVzdCkiCitQQVNTIGZpbGxQYWludC5jb2xvclR5cGUgaXMgU1ZHQ29s
b3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUgorUEFTUyAoZmlsbENvbG9yID0gZmlsbFBhaW50LnJn
YkNvbG9yKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFJHQkNvbG9yXSIKK1BBU1MgZmlsbENvbG9y
LnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDc3CitQ
QVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19O
VU1CRVIpIGlzIDAKK1BBU1MgZmlsbENvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyA3NworRkFJTCBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRD
b21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIHNob3VsZCBiZSB1cmwoI3Rlc3QpIHJnYig3
NywwLDc3KS4gV2FzICMwMDgwMDAuCisKK1Rlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BB
SU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1IKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNW
R1BhaW50LlNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SLCAndXJsKCNmb28pJywg
J3JnYig3NywwLDc3KScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykgaXMgdW5kZWZpbmVk
LgorUEFTUyBmaWxsUGFpbnQucGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfVVJJ
X1JHQkNPTE9SX0lDQ0NPTE9SCitQQVNTIGZpbGxQYWludC51cmkgaXMgInVybCgjZm9vKSIKK1BB
U1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9S
X0lDQ0NPTE9SCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFpbnQucmdiQ29sb3IpLnRvU3RyaW5n
KCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFs
dWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgNzcKK1BBU1MgZmlsbENvbG9yLmdy
ZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFT
UyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1C
RVIpIGlzIDc3CitGQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVj
dEVsZW1lbnQpLmZpbGwgc2hvdWxkIGJlIHVybCgjZm9vKSByZ2IoNzcsMCw3NykpLiBXYXMgIzAw
ODAwMC4KKworVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBFX1JHQkNPTE9S
X0lDQ0NPTE9SCitQQVNTIGZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBF
X1JHQkNPTE9SX0lDQ0NPTE9SLCAndXJsKCN0ZXN0KScsICdyZ2IoNzcsMCw3NyknLCAnaWNjLWNv
bG9yKG15UkdCLCAwLCAxLCAyKScpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50LnBhaW50
VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SCitQQVNTIGZp
bGxQYWludC51cmkgaXMgIiIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5T
VkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFp
bnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxs
Q29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMg
NzcKK1BBU1MgZmlsbENvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUu
Q1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDc3CitGQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgc2hvdWxkIGJlIHJnYig3NywwLDc3
KS4gV2FzICMwMDgwMDAuCisKK1Rlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQ
RV9DVVJSRU5UQ09MT1IKK1BBU1MgZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlO
VFRZUEVfQ1VSUkVOVENPTE9SLCAndXJsKCNmb28pJywgJ3JnYig3NywwLDc3KScsICdpY2MtY29s
b3IobXlSR0IsIDAsIDEsIDIpJykgaXMgdW5kZWZpbmVkLgorUEFTUyBmaWxsUGFpbnQucGFpbnRU
eXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SCitQQVNTIGZpbGxQYWlu
dC51cmkgaXMgIiIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09M
T1JUWVBFX0NVUlJFTlRDT0xPUgorUEFTUyAoZmlsbENvbG9yID0gZmlsbFBhaW50LnJnYkNvbG9y
KS50b1N0cmluZygpIGlzICJbb2JqZWN0IFJHQkNvbG9yXSIKK1BBU1MgZmlsbENvbG9yLnJlZC5n
ZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK1BBU1MgZmls
bENvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikg
aXMgMAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19OVU1CRVIpIGlzIDAKK0ZBSUwgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShyZWN0RWxlbWVudCkuZmlsbCBzaG91bGQgYmUgIzAwRkYwMC4gV2FzICMwMDgwMDAuCisK
K1Rlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgorUEFTUyBm
aWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiwgJ3VybCgj
dGVzdCknLCAncmdiKDAsNzcsMCknLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRU
WVBFX1JHQkNPTE9SCitQQVNTIGZpbGxQYWludC51cmkgaXMgIiIKK1BBU1MgZmlsbFBhaW50LmNv
bG9yVHlwZSBpcyBTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SCitQQVNTIChmaWxsQ29s
b3IgPSBmaWxsUGFpbnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3Jd
IgorUEFTUyBmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NT
X05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyA3NworUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKK0ZBSUwgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCBzaG91bGQgYmUg
IzAwNEQwMC4gV2FzICMwMDgwMDAuCisKK1Rlc3QgdXNpbmcgc2V0VXJpKCkKK1BBU1MgZmlsbFBh
aW50LnNldFVyaSgndXJsKCNmb29iYXIpJyk7IGlzIHVuZGVmaW5lZC4KK1BBU1MgZmlsbFBhaW50
LnBhaW50VHlwZSBpcyBTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9OT05FCitQQVNTIGZpbGxQ
YWludC51cmkgaXMgInVybCgjZm9vYmFyKSIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBT
VkdDb2xvci5TVkdfQ09MT1JUWVBFX1VOS05PV04KK1BBU1MgKGZpbGxDb2xvciA9IGZpbGxQYWlu
dC5yZ2JDb2xvcikudG9TdHJpbmcoKSBpcyAiW29iamVjdCBSR0JDb2xvcl0iCitQQVNTIGZpbGxD
b2xvci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAw
CitQQVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19OVU1CRVIpIGlzIDAKK1BBU1MgZmlsbENvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCitGQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgc2hvdWxkIGJlIHVybCgjZm9vYmFyKS4g
V2FzICMwMDgwMDAuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdQYWludC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vU1ZHUGFpbnQuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9kb20vU1ZHUGFpbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvU1ZHUGFpbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdD
b2xvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9T
VkdDb2xvci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRl
c3RzL1NWR0NvbG9yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc2IEBACitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU1ZHQ29sb3IgQVBJIik7CisKKy8vIFNldHVwIGEgcmVh
bCBTVkcgZG9jdW1lbnQsIGFzIHdlIHdhbnQgdG8gYWNjZXNzIENTUyBzdHlsZSBpbmZvcm1hdGlv
bi4KK3ZhciBzdmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIsICJzdmciKTsKK3N2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0
aCIsICIxNTAiKTsKK3N2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNTAiKTsKKwor
dmFyIHN0b3BFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIsICJzdG9wIik7CitzdG9wRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0eWxl
IiwgInN0b3AtY29sb3I6IHJlZDsgY29sb3I6IGdyZWVuIik7CitzdmdFbGVtZW50LmFwcGVuZENo
aWxkKHN0b3BFbGVtZW50KTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIp
LmFwcGVuZENoaWxkKHN2Z0VsZW1lbnQpOworCisvLyBGSVhNRTogTW9zdCB0ZXN0cyB0aGF0IGV4
YW1pbmUgdGhlIGNvbXB1dGVkIHN0eWxlIGFmdGVyIG1vZGlmeWluZyB0aGUgU1ZHQ29sb3Igb2Jq
ZWN0IGZhaWwsIGFzIHdlIGRvbid0IHN1cHBvcnQKKy8vIGludmFsaWRhdGlvbiBvZiB0aGUgc3R5
bGUsIGlmIGEgQ1NTVmFsdWUgY2hhbmdlcywgaXQncyBhbHNvIGRhbmdlcm91cywgYXMgdGhlIENT
U1ZhbHVlcyBhcmUgcG9zc2libHkgc2hhcmVkLgorLy8gV2Ugd291bGQgbmVlZCBjb3B5LW9uLXdy
aXRlIHN1cHBvcnQgZm9yIENTU1ZhbHVlIGZpcnN0LCB0byBtYWtlIHRoaXMgd29yay4gSXQncyBs
b3cgcHJpb3JpdHkgdGhvdWdoLgorLy8gTm8tb25lIHN1cHBvcnRzIG1vZGlmeWluZyB0aGUgU1ZH
Q29sb3Igb2JqZWN0LgorCitmdW5jdGlvbiBjaGVja1N0b3BDb2xvcih0eXBlLCByZWQsIGdyZWVu
LCBibHVlKSB7CisgICAgc2hvdWxkQmUoInN0b3BDb2xvci5jb2xvclR5cGUiLCB0eXBlKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIihyZ2JDb2xvciA9IHN0b3BDb2xvci5yZ2JDb2xvciku
dG9TdHJpbmcoKSIsICJbb2JqZWN0IFJHQkNvbG9yXSIpOworICAgIHNob3VsZEJlKCJyZ2JDb2xv
ci5yZWQuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICIiICsg
cmVkKTsKKyAgICBzaG91bGRCZSgicmdiQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICIiICsgZ3JlZW4pOworICAgIHNob3VsZEJlKCJyZ2JD
b2xvci5ibHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikiLCAi
IiArIGJsdWUpOworfQorCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW5pdGlhbCBjb2xvciB2
YWx1ZXMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiKHN0b3BDb2xvciA9IHN0b3BFbGVtZW50
LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3N0b3AtY29sb3InKSkudG9TdHJpbmcoKSIsICJb
b2JqZWN0IFNWR0NvbG9yXSIpOworY2hlY2tTdG9wQ29sb3IoIlNWR0NvbG9yLlNWR19DT0xPUlRZ
UEVfUkdCQ09MT1IiLCAyNTUsIDAsIDApOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHN0b3BFbGVtZW50KS5zdG9wQ29sb3IiLCAi
cmdiKDI1NSwgMCwgMCkiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRyeSBpbnZhbGlkIGFyZ3Vt
ZW50cyBmb3Igc2V0Q29sb3IoKSIpOworc2hvdWxkVGhyb3coInN0b3BDb2xvci5zZXRDb2xvcihu
dWxsLCBudWxsLCBudWxsKSIpOworc2hvdWxkVGhyb3coInN0b3BDb2xvci5zZXRDb2xvcihTVkdD
b2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCBzdmdFbGVtZW50LCAnJyk7Iik7CitzaG91bGRU
aHJvdygic3RvcENvbG9yLnNldENvbG9yKFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfUkdCQ09MT1Is
ICcnLCAnJykiKTsKK3Nob3VsZFRocm93KCJzdG9wQ29sb3Iuc2V0Q29sb3IoU1ZHQ29sb3IuU1ZH
X0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IgKyAxLCAnJywgJycpOyIpOworc2hvdWxkVGhyb3coInN0
b3BDb2xvci5zZXRDb2xvcigpIik7CitzaG91bGRUaHJvdygic3RvcENvbG9yLnNldENvbG9yKHN0
b3BDb2xvcikiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRyeSBhc3NpZ25pbmcgdG8gdGhlIHJl
YWRvbmx5IGNvbG9yVHlwZSBwcm9wZXJ0eSwgd2hpY2ggc2lsZW50bHkgZmFpbHMiKTsKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJzdG9wQ29sb3IuY29sb3JUeXBlID0gU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQ
RV9VTktLTk9XTjsiKTsKK3Nob3VsZEJlKCJzdG9wQ29sb3IuY29sb3JUeXBlIiwgIlNWR0NvbG9y
LlNWR19DT0xPUlRZUEVfUkdCQ09MT1IiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdG9wRWxlbWVudCkuc3RvcENvbG9yIiwg
InJnYigyNTUsIDAsIDApIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldENv
bG9yKCkgYW5kIFNWR19DT0xPUlRZUEVfVU5LTk9XTiIpOworc2hvdWxkVGhyb3coInN0b3BDb2xv
ci5zZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1VOS0tOT1dOLCAnJywgJycpIik7Citz
aG91bGRUaHJvdygic3RvcENvbG9yLnNldENvbG9yKFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfVU5L
S05PV04sICdyZ2IoMCwxMjgsMTI4KScsICcnKSIpOworc2hvdWxkVGhyb3coInN0b3BDb2xvci5z
ZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1VOS0tOT1dOLCAnJywgJ2ljYy1jb2xvciht
eVJHQiwgMCwgMSwgMiknKSIpOworc2hvdWxkVGhyb3coInN0b3BDb2xvci5zZXRDb2xvcihTVkdD
b2xvci5TVkdfQ09MT1JUWVBFX1VOS0tOT1dOLCAncmdiKDAsMCwwKScsICdpY2MtY29sb3IobXlS
R0IsIDAsIDEsIDIpJykiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdXNpbmcgc2V0Q29s
b3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiIpOworc2hvdWxkQmVVbmRl
ZmluZWQoInN0b3BDb2xvci5zZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9S
X0lDQ0NPTE9SLCAncmdiKDc3LDAsNzcpJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSIp
Oworc2hvdWxkQmUoInN0b3BDb2xvci5jb2xvclR5cGUiLCAiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQ
RV9SR0JDT0xPUl9JQ0NDT0xPUiIpOworLy8gRklYTUU6IE5vIHN1cHBvcnQgZm9yIElDQyBjb2xv
cnMuCitjaGVja1N0b3BDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0ND
T0xPUiIsIDc3LCAwLCA3Nyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1
bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoc3RvcEVsZW1lbnQpLnN0b3BDb2xvciIsICJyZ2IoNzcs
IDAsIDc3KSIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB1c2luZyBzZXRDb2xvcigpIGFu
ZCBTVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUiIpOworc2hvdWxkQmVVbmRlZmluZWQoInN0b3BD
b2xvci5zZXRDb2xvcihTVkdDb2xvci5TVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUiwgJ3JnYig3
NywwLDc3KScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykiKTsKK3Nob3VsZEJlKCJzdG9w
Q29sb3IuY29sb3JUeXBlIiwgIlNWR0NvbG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SIik7
CitjaGVja1N0b3BDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IiLCAw
LCAwLCAwKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShzdG9wRWxlbWVudCkuc3RvcENvbG9yIiwgIiMwMEZGMDAiKTsKKworZGVi
dWcoIiIpOworZGVidWcoIlRlc3QgdXNpbmcgc2V0Q29sb3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9S
R0JDT0xPUiIpOworc2hvdWxkQmVVbmRlZmluZWQoInN0b3BDb2xvci5zZXRDb2xvcihTVkdDb2xv
ci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SLCAncmdiKDAsNzcsMCknLCAnaWNjLWNvbG9yKG15UkdC
LCAwLCAxLCAyKScpIik7CitzaG91bGRCZSgic3RvcENvbG9yLmNvbG9yVHlwZSIsICJTVkdDb2xv
ci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SIik7CitjaGVja1N0b3BDb2xvcigiU1ZHQ29sb3IuU1ZH
X0NPTE9SVFlQRV9SR0JDT0xPUiIsIDAsIDc3LCAwKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzdG9wRWxlbWVudCkuc3RvcENv
bG9yIiwgInJnYigwLCA3NywgMCkiKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRlc3RzL1NWR1BhaW50LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRlc3RzL1NWR1BhaW50LmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9zY3JpcHQtdGVzdHMvU1ZHUGFpbnQuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEyIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgU1ZHUGFpbnQgQVBJIik7CisKKy8vIFNldHVwIGEgcmVhbCBTVkcgZG9jdW1lbnQs
IGFzIHdlIHdhbnQgdG8gYWNjZXNzIENTUyBzdHlsZSBpbmZvcm1hdGlvbi4KK3ZhciBzdmdFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIsICJzdmciKTsKK3N2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxNTAiKTsKK3N2
Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiNTAiKTsKKwordmFyIHJlY3RFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs
ICJyZWN0Iik7CityZWN0RWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImNvbG9yOiBsaW1l
OyBmaWxsOiBncmVlbiIpOworcmVjdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxNTAi
KTsKK3JlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjUwIik7CitzdmdFbGVtZW50
LmFwcGVuZENoaWxkKHJlY3RFbGVtZW50KTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNj
cmlwdGlvbiIpLmFwcGVuZENoaWxkKHN2Z0VsZW1lbnQpOworCisvLyBGSVhNRTogTW9zdCB0ZXN0
cyB0aGF0IGV4YW1pbmUgdGhlIGNvbXB1dGVkIHN0eWxlIGFmdGVyIG1vZGlmeWluZyB0aGUgU1ZH
UGFpbnQgb2JqZWN0IGZhaWwsIGFzIHdlIGRvbid0IHN1cHBvcnQKKy8vIGludmFsaWRhdGlvbiBv
ZiB0aGUgc3R5bGUsIGlmIGEgQ1NTVmFsdWUgY2hhbmdlcywgaXQncyBhbHNvIGRhbmdlcm91cywg
YXMgdGhlIENTU1ZhbHVlcyBhcmUgcG9zc2libHkgc2hhcmVkLgorLy8gV2Ugd291bGQgbmVlZCBj
b3B5LW9uLXdyaXRlIHN1cHBvcnQgZm9yIENTU1ZhbHVlIGZpcnN0LCB0byBtYWtlIHRoaXMgd29y
ay4gSXQncyBsb3cgcHJpb3JpdHkgdGhvdWdoLgorLy8gTm8tb25lIHN1cHBvcnRzIG1vZGlmeWlu
ZyB0aGUgU1ZHUGFpbnQgb2JqZWN0LgorCitmdW5jdGlvbiByZXNldFN0eWxlKCkgeworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiUmVzZXQgc3R5bGUgdG8gaW5pdGlhbCB2YWx1ZSIpOworICAg
IHJlY3RFbGVtZW50LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiY29sb3I6IGxpbWU7IGZpbGw6IGdy
ZWVuIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoZmlsbFBhaW50ID0gcmVjdEVsZW1l
bnQuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZmlsbCcpKS50b1N0cmluZygpIiwgIltvYmpl
Y3QgU1ZHUGFpbnRdIik7CisgICAgc2hvdWxkQmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZH
UGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiIpOworfQorCitmdW5jdGlvbiBjaGVja0ZpbGxD
b2xvcih0eXBlLCByZWQsIGdyZWVuLCBibHVlKSB7CisgICAgc2hvdWxkQmUoImZpbGxQYWludC5j
b2xvclR5cGUiLCB0eXBlKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIihmaWxsQ29sb3Ig
PSBmaWxsUGFpbnQucmdiQ29sb3IpLnRvU3RyaW5nKCkiLCAiW29iamVjdCBSR0JDb2xvcl0iKTsK
KyAgICBzaG91bGRCZSgiZmlsbENvbG9yLnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZh
bHVlLkNTU19OVU1CRVIpIiwgIiIgKyByZWQpOworICAgIHNob3VsZEJlKCJmaWxsQ29sb3IuZ3Jl
ZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICIiICsgZ3Jl
ZW4pOworICAgIHNob3VsZEJlKCJmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlLkNTU19OVU1CRVIpIiwgIiIgKyBibHVlKTsKK30KKworZGVidWcoIiIpOworZGVi
dWcoIkNoZWNrIGluaXRpYWwgcGFpbnQgdmFsdWVzIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
IihmaWxsUGFpbnQgPSByZWN0RWxlbWVudC5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdmaWxs
JykpLnRvU3RyaW5nKCkiLCAiW29iamVjdCBTVkdQYWludF0iKTsKK3Nob3VsZEJlKCJmaWxsUGFp
bnQucGFpbnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVfUkdCQ09MT1IiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICIiKTsKK2NoZWNrRmlsbENvbG9yKCJT
VkdDb2xvci5TVkdfQ09MT1JUWVBFX1JHQkNPTE9SIiwgMCwgMTI4LCAwKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxl
bWVudCkuZmlsbCIsICIjMDA4MDAwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUcnkgaW52YWxp
ZCBhcmd1bWVudHMgZm9yIHNldFBhaW50KCkiKTsKK3Nob3VsZFRocm93KCJmaWxsUGFpbnQuc2V0
UGFpbnQobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCkiKTsKK3Nob3VsZFRocm93KCJmaWxsUGFpbnQu
c2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiwgc3ZnRWxlbWVudCwgJycs
ICcnKTsiKTsKK3Nob3VsZFRocm93KCJmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BB
SU5UVFlQRV9SR0JDT0xPUiwgJycsICcnKSIpOworc2hvdWxkVGhyb3coImZpbGxQYWludC5zZXRQ
YWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SICsgMSwgJycsICcn
LCAnJyk7Iik7CitzaG91bGRUaHJvdygiZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19Q
QUlOVFRZUEVfTk9ORSAtIDEsICcnLCAnJywgJycpOyIpOworc2hvdWxkVGhyb3coImZpbGxQYWlu
dC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSSArIDEsICcnLCAnJywgJycpOyIp
Oworc2hvdWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludCgpIik7CitzaG91bGRUaHJvdygiZmls
bFBhaW50LnNldFBhaW50KGZpbGxQYWludCkiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRyeSBp
bnZhbGlkIGFyZ3VtZW50cyBmb3Igc2V0VXJpKCkiKTsKK3Nob3VsZFRocm93KCJmaWxsUGFpbnQu
c2V0VXJpKCkiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRyeSBhc3NpZ25pbmcgdG8gdGhlIHJl
YWRvbmx5IHBhaW50VHlwZSBwcm9wZXJ0eSwgd2hpY2ggc2lsZW50bHkgZmFpbHMiKTsKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJmaWxsUGFpbnQucGFpbnRUeXBlID0gU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQ
RV9VTktLTk9XTjsiKTsKK3Nob3VsZEJlKCJmaWxsUGFpbnQucGFpbnRUeXBlIiwgIlNWR1BhaW50
LlNWR19QQUlOVFRZUEVfUkdCQ09MT1IiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICIjMDA4
MDAwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNW
R19QQUlOVFRZUEVfVU5LTk9XTiIpOworc2hvdWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludChT
VkdQYWludC5TVkdfUEFJTlRUWVBFX1VOS0tOT1dOLCAnJywgJycsICcnKSIpOworc2hvdWxkVGhy
b3coImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VOS0tOT1dOLCAn
dXJsKCNmb28pJywgJycsICcnKSIpOworc2hvdWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludChT
VkdQYWludC5TVkdfUEFJTlRUWVBFX1VOS0tOT1dOLCAnJywgJ3JnYigwLDEyOCwxMjgpJywgJycp
Iik7CitzaG91bGRUaHJvdygiZmlsbFBhaW50LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZ
UEVfVU5LS05PV04sICcnLCAnJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSIpOworc2hv
dWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VOS0tO
T1dOLCAndXJsKCNmb28pJywgJ3JnYigwLDAsMCknLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAy
KScpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNW
R19QQUlOVFRZUEVfTk9ORSAtIGEiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJmaWxsUGFpbnQuc2V0
UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9OT05FLCAnJywgJycsICcnKSIpOworc2hvdWxk
QmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9OT05FIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVk
U3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAibm9uZSIpOworcmVzZXRTdHlsZSgpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJl
Y3RFbGVtZW50KS5maWxsIiwgIiMwMDgwMDAiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qg
dXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9OT05FIC0gYiIpOworc2hvdWxkQmVV
bmRlZmluZWQoImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUs
ICd1cmwoI2ZvbyknLCAnJywgJycpIik7CitzaG91bGRCZSgiZmlsbFBhaW50LnBhaW50VHlwZSIs
ICJTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIs
ICJub25lIik7CityZXNldFN0eWxlKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAiIzAwODAw
MCIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdf
UEFJTlRUWVBFX05PTkUgLSBjIik7CitzaG91bGRCZVVuZGVmaW5lZCgiZmlsbFBhaW50LnNldFBh
aW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfTk9ORSwgJycsICdyZ2IoMCwxMjgsMTI4KScsICcn
KSIpOworc2hvdWxkQmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZHUGFpbnQuU1ZHX1BBSU5U
VFlQRV9OT05FIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAibm9uZSIpOworcmVzZXRTdHls
ZSgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIiwgIiMwMDgwMDAiKTsKKworZGVidWcoIiIpOwor
ZGVidWcoIlRlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9OT05FIC0gZCIp
Oworc2hvdWxkQmVVbmRlZmluZWQoImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJ
TlRUWVBFX05PTkUsICcnLCAnJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSIpOworc2hv
dWxkQmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9OT05F
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAibm9uZSIpOworcmVzZXRTdHlsZSgpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxl
KHJlY3RFbGVtZW50KS5maWxsIiwgIiMwMDgwMDAiKTsKKworZGVidWcoIiIpOworZGVidWcoIlRl
c3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9OT05FIC0gZSIpOworc2hvdWxk
QmVVbmRlZmluZWQoImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX05P
TkUsICd1cmwoI2ZvbyknLCAncmdiKDAsMCwwKScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIp
JykiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29t
cHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICJub25lIik7CisKK2RlYnVnKCIiKTsKK2Rl
YnVnKCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJIC0gYSIpOwor
c2hvdWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VS
SSwgJycsICcnLCAnJykiKTsKK3Nob3VsZEJlKCJmaWxsUGFpbnQucGFpbnRUeXBlIiwgIlNWR1Bh
aW50LlNWR19QQUlOVFRZUEVfTk9ORSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIiwgIm5vbmUi
KTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BB
SU5UVFlQRV9VUkkgLSBiIik7CitzaG91bGRUaHJvdygiZmlsbFBhaW50LnNldFBhaW50KFNWR1Bh
aW50LlNWR19QQUlOVFRZUEVfVVJJLCAnJywgJ3JnYigwLDEyOCwxMjgpJywgJycpIik7CitzaG91
bGRCZSgiZmlsbFBhaW50LnBhaW50VHlwZSIsICJTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0
ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICJub25lIik7CisKK2RlYnVnKCIiKTsKK2RlYnVn
KCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJIC0gYyIpOworc2hv
dWxkVGhyb3coImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSSwg
JycsICcnLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIik7CitzaG91bGRCZSgiZmlsbFBh
aW50LnBhaW50VHlwZSIsICJTVkdQYWludC5TVkdfUEFJTlRUWVBFX05PTkUiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0
RWxlbWVudCkuZmlsbCIsICJub25lIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5n
IHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJIC0gZCIpOworc2hvdWxkQmVVbmRlZmlu
ZWQoImZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSSwgJ3VybCgj
dGVzdCknLCAnJywgJycpIik7CitzaG91bGRCZSgiZmlsbFBhaW50LnBhaW50VHlwZSIsICJTVkdQ
YWludC5TVkdfUEFJTlRUWVBFX1VSSSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxsUGFp
bnQudXJpIiwgInVybCgjdGVzdCkiKTsKK2NoZWNrRmlsbENvbG9yKCJTVkdDb2xvci5TVkdfQ09M
T1JUWVBFX1VOS05PV04iLCAwLCAwLCAwKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICJ1cmwo
I3Rlc3QpIik7CityZXNldFN0eWxlKCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAiIzAwODAw
MCIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdf
UEFJTlRUWVBFX1VSSSAtIGUiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJmaWxsUGFpbnQuc2V0UGFp
bnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUkksICd1cmwoI2ZvbyknLCAncmdiKDAsMCwwKScs
ICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykiKTsKK3Nob3VsZEJlKCJmaWxsUGFpbnQucGFp
bnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVfVVJJIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImZpbGxQYWludC51cmkiLCAidXJsKCNmb28pIik7CitjaGVja0ZpbGxDb2xvcigiU1ZH
Q29sb3IuU1ZHX0NPTE9SVFlQRV9VTktOT1dOIiwgMCwgMCwgMCk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQp
LmZpbGwiLCAidXJsKCNmb28pIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNl
dFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJX05PTkUiKTsKK3Nob3VsZEJlVW5kZWZpbmVk
KCJmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUklfTk9ORSwgJ3Vy
bCgjdGVzdCknLCAncmdiKDAsMCwwKScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykiKTsK
K3Nob3VsZEJlKCJmaWxsUGFpbnQucGFpbnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVf
VVJJX05PTkUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICJ1cmwo
I3Rlc3QpIik7CitjaGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9VTktOT1dO
IiwgMCwgMCwgMCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAidXJsKCN0ZXN0KSIpOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBF
X1VSSV9DVVJSRU5UQ09MT1IiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJmaWxsUGFpbnQuc2V0UGFp
bnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SLCAndXJsKCNmb28pJywg
J3JnYigwLDAsMCknLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIik7CitzaG91bGRCZSgi
ZmlsbFBhaW50LnBhaW50VHlwZSIsICJTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5U
Q09MT1IiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICJ1cmwoI2Zv
bykiKTsKK2NoZWNrRmlsbENvbG9yKCJTVkdDb2xvci5TVkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xP
UiIsIDAsIDAsIDApOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kZWZhdWx0Vmll
dy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIiwgInVybCgjZm9vKSIpOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB1c2luZyBzZXRQYWludCgpIGFuZCBTVkdfUEFJTlRUWVBF
X1VSSV9SR0JDT0xPUiIpOworc2hvdWxkQmVVbmRlZmluZWQoImZpbGxQYWludC5zZXRQYWludChT
VkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUiwgJ3VybCgjdGVzdCknLCAncmdiKDc3
LDAsNzcpJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSIpOworc2hvdWxkQmUoImZpbGxQ
YWludC5wYWludFR5cGUiLCAiU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1IiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICJ1cmwoI3Rlc3QpIik7Citj
aGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiIsIDc3LCAwLCA3
Nyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAidXJsKCN0ZXN0KSByZ2IoNzcsMCw3NykiKTsK
KworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5U
VFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1IiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJmaWxsUGFp
bnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1Is
ICd1cmwoI2ZvbyknLCAncmdiKDc3LDAsNzcpJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMikn
KSIpOworc2hvdWxkQmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZHUGFpbnQuU1ZHX1BBSU5U
VFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1IiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZmls
bFBhaW50LnVyaSIsICJ1cmwoI2ZvbykiKTsKKy8vIEZJWE1FOiBObyBzdXBwb3J0IGZvciBJQ0Mg
Y29sb3JzLgorY2hlY2tGaWxsQ29sb3IoIlNWR0NvbG9yLlNWR19DT0xPUlRZUEVfUkdCQ09MT1Jf
SUNDQ09MT1IiLCA3NywgMCwgNzcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIiwgInVybCgjZm9v
KSByZ2IoNzcsMCw3NykpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldFBh
aW50KCkgYW5kIFNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1IiKTsKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xP
Ul9JQ0NDT0xPUiwgJ3VybCgjdGVzdCknLCAncmdiKDc3LDAsNzcpJywgJ2ljYy1jb2xvcihteVJH
QiwgMCwgMSwgMiknKSIpOworc2hvdWxkQmUoImZpbGxQYWludC5wYWludFR5cGUiLCAiU1ZHUGFp
bnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJmaWxsUGFpbnQudXJpIiwgIiIpOworLy8gRklYTUU6IE5vIHN1cHBvcnQgZm9yIElDQyBj
b2xvcnMuCitjaGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9J
Q0NDT0xPUiIsIDc3LCAwLCA3Nyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRl
ZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAicmdiKDc3LDAs
NzcpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNW
R19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SIik7CitzaG91bGRCZVVuZGVmaW5lZCgiZmlsbFBhaW50
LnNldFBhaW50KFNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SLCAndXJsKCNmb28p
JywgJ3JnYig3NywwLDc3KScsICdpY2MtY29sb3IobXlSR0IsIDAsIDEsIDIpJykiKTsKK3Nob3Vs
ZEJlKCJmaWxsUGFpbnQucGFpbnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVO
VENPTE9SIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGxQYWludC51cmkiLCAiIik7Citj
aGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IiLCAwLCAw
LCAwKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29t
cHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICIjMDBGRjAwIik7CisKK2RlYnVnKCIiKTsK
K2RlYnVnKCJUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfUkdCQ09MT1Ii
KTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJmaWxsUGFpbnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BB
SU5UVFlQRV9SR0JDT0xPUiwgJ3VybCgjdGVzdCknLCAncmdiKDAsNzcsMCknLCAnaWNjLWNvbG9y
KG15UkdCLCAwLCAxLCAyKScpIik7CitzaG91bGRCZSgiZmlsbFBhaW50LnBhaW50VHlwZSIsICJT
VkdQYWludC5TVkdfUEFJTlRUWVBFX1JHQkNPTE9SIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImZpbGxQYWludC51cmkiLCAiIik7CitjaGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9S
VFlQRV9SR0JDT0xPUiIsIDAsIDc3LCAwKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0RWxlbWVudCkuZmlsbCIsICIjMDA0
RDAwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHVzaW5nIHNldFVyaSgpIik7CitzaG91
bGRCZVVuZGVmaW5lZCgiZmlsbFBhaW50LnNldFVyaSgndXJsKCNmb29iYXIpJyk7Iik7CitzaG91
bGRCZSgiZmlsbFBhaW50LnBhaW50VHlwZSIsICJTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9O
T05FIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGxQYWludC51cmkiLCAidXJsKCNmb29i
YXIpIik7CitjaGVja0ZpbGxDb2xvcigiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9VTktOT1dOIiwg
MCwgMCwgMCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3Lmdl
dENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwiLCAidXJsKCNmb29iYXIpIik7CisKK3N1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5wbmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUt
dHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQt
ZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZUFBQUFGb0NBWUFB
QUNQTnlnZ0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlD
RnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJl
MmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURY
TFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdW
dFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1
eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJs
dVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5V
LzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25D
UU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgw
TUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5
dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01
R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhN
bHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZx
dkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNi
Wkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhG
K1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJG
cTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxG
ck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4
QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNkQlpEa3h0a0dZRGx4L2pBek84ek03REF6czBNVlpp
WlRvSktxTUtQRFRBNHpNek16bytNd3gvUDNxMVJQeWJyWgoyZDI3OWVoNi9YVFYzb3htTk9xZXAz
WHpxVUhTSHJPUzl0dHZ2MDRpUUlBQUFRSUVWaU53d0FFSGRIdm1ud01QUExEYmYvLzlWNU9yClhB
Z1FJRUNBd0pGWUlIRTNhYy84cysrKyszWmF3WkdRQ0JBZ1FJREFFUzl3MkdHSGRVYzU0ck9SQXdF
Q0JBZ1FJREFXRUlESElwWUoKRUNCQWdNQUtCQVRnRlNETGdnQUJBZ1FJakFVRTRMR0laUUlFQ0JB
Z3NBSUJBWGdGeUxJZ1FJQUFBUUpqQVFGNExHS1pBQUVDQkFpcwpRRUFBWGdHeUxBZ1FJRUNBd0Zo
QUFCNkxXQ1pBZ0FBQkFpc1FFSUJYZ0N3TEFnUUlFQ0F3RmhDQXh5S1dDUkFnUUlEQUNnUUU0QlVn
Cnk0SUFBUUlFQ0l3RkJPQ3hpR1VDQkFnUUlMQUNBUUY0QmNpeUlFQ0FBQUVDWXdFQmVDeGltUUFC
QWdRSXJFQkFBRjRCc2l3SUVDQkEKZ01CWVFBQWVpMWdtUUlBQUFRSXJFQkNBVjRBc0N3SUVDQkFn
TUJZUWdNY2lsZ2tRSUVDQXdBb0VCT0FWSU11Q0FBRUNCQWlNQlFUZwpzWWhsQWdRSUVDQ3dBZ0VC
ZUFYSXNpQkFnQUFCQW1NQkFYZ3NZcGtBQVFJRUNLeEFRQUJlQWJJc0NCQWdRSURBV0VBQUhvdFlK
a0NBCkFBRUNLeEFRZ0ZlQUxBc0NCQWdRSURBV0VJREhJcFlKRUNCQWdNQUtCQVRnRlNETGdnQUJB
Z1FJakFVRTRMR0laUUlFQ0JBZ3NBSUIKQVhnRnlMSWdRSUFBQVFKakFRRjRMR0taQUFFQ0JBaXNR
RUFBWGdHeUxBZ1FJRUNBd0ZoQUFCNkxXQ1pBZ0FBQkFpc1FFSUJYZ0N3TApBZ1FJRUNBd0ZoQ0F4
eUtXQ1JBZ1FJREFDZ1FFNEJVZ3k0SUFBUUlFQ0l3RkJPQ3hpR1VDQkFnUUlMQUNBUUY0QmNpeUlF
Q0FBQUVDCll3RUJlQ3hpbVFBQkFnUUlyRUJBQUY0QnNpd0lFQ0JBZ01CWVFBQWVpMWdtUUlBQUFR
SXJFQkNBVjRBc0N3SUVDQkFnTUJZUWdNY2kKbGdrUUlFQ0F3QW9FQk9BVklNdUNBQUVDQkFpTUJR
VGdzWWhsQWdRSUVDQ3dBZ0VCZUFYSXNpQkFnQUFCQW1NQkFYZ3NZcGtBQVFJRQpDS3hBUUFCZUFi
SXNDQkFnUUlEQVdFQUFIb3RZSmtDQUFBRUNLeEFRZ0ZlQUxBc0NCQWdRSURBV0VJREhJcFlKRUNC
QWdNQUtCQVRnCkZTRExnZ0FCQWdRSWpBVUU0TEdJWlFJRUNCQWdzQUlCQVhnRnlMSWdRSUFBQVFK
akFRRjRMR0taQUFFQ0JBaXNRRUFBWGdHeUxBZ1EKSUVDQXdGaEFBQjZMV0NaQWdBQUJBaXNRRUlC
WGdDd0xBZ1FJRUNBd0Z0aHovSUxsN1NXd1I3Zkg5dnBDdnMxdUlURHJacnRGT1JTQwpRTXNDV3NB
dDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBP
Z0FBQkFpMExDTUF0CjE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJ
TkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkEKZ0VDekFnSndzMVduNEFRSUVDRFFzb0FB
M0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKdwpzMVdu
NEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFn
RUN6QWdKd3MxV240QVFJCkVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExD
TUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEKM0hMdEtUc0JBZ1FJTkNzZ0FEZGJk
UXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQgpB
Z1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNv
QUEzSEx0S1RzQkFnUUlOQ3NnCkFEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3Mx
V240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE8KZ0FBQkFpMExDTUF0MTU2eUV5
QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkw
TApDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURk
YmRRcE9nQUFCQWkwTENNQXQxNTZ5CkV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1Rz
QkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3oKQWdKd3MxV240QVFJRUNE
UXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3
czFXbgo0QVFJRUNEUXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5
RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRCnNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYmRRcE9nQUFC
QWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHQKS1RzQkFnUUlOQ3Nn
QURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRL
VHNCQWdRSQpOQ3NnQURkYmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlF
Q0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiCmRRcE9nQUFCQWkwTENNQXQxNTZ5RXlCQWdFQ3pB
Z0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUIKQWkwTENNQXQx
NTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dB
QUJBaTBMQ01BdAoxNTZ5RXlCQWdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNITHRLVHNCQWdRSU5D
c2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBCmdFQ3pBZ0p3czFXbjRBUUlFQ0RRc29BQTNI
THRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSncKczFXbjRB
UUlFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VD
ekFnSndzMVduNEFRSQpFQ0RRc29BQTNITHRLVHNCQWdRSU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01B
dDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBCjNITHRLVHNCQWdRSU5Dc2dBRGRiZFFw
T2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0IKQWdR
SU5Dc2dBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FB
M0hMdEtUc0JBZ1FJTkNzZwpBRGRiZFFwT2dBQUJBaTBMQ01BdDE1NnlFeUJBZ0VDekFnSndzMVdu
NEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPCmdBQUJBaTBMQ01BdDE1NnlFeUJB
Z0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMEwK
Q01BdDE1NnlFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJk
UXBPZ0FBQkFpMExDTUF0MTU2eQpFeUJBZ0VDekFnSndzMVduNEFRSUVDRFFzb0FBM0hMdEtUc0JB
Z1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6CkFnSndzMVduNEFRSUVDRFFz
b0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3Mx
V24KNEFRSUVDRFFzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5
QkFnRUN6QWdKd3MxV240QVFJRUNEUQpzb0FBM0hMdEtUc0JBZ1FJTkNzZ0FEZGJkUXBPZ0FBQkFp
MExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0CktUc0JBZ1FJTkNzZ0FE
ZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNEUXNvQUEzSEx0S1Rz
QkFnUUkKTkNzZ0FEZGJkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QWdKd3MxV240QVFJRUNE
UXNvQUEzSEx0S1RzQkFnUUlOQ3NnQURkYgpkUXBPZ0FBQkFpMExDTUF0MTU2eUV5QkFnRUN6QW5z
MlczSUYzNURBckp0dGFEMHJFU0JBZ01CcUJiU0FWK3N0TndJRUNCQWcwQXNJCndIWUVBZ1FJRUNB
d2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJ
RUNBd2dZQUEKUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlC
QWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCcwpIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJ
d1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUCm9NdVNBQUVD
QkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNB
QUVDQkFnSXdQWUIKQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRv
TXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNgpMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlD
TUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBCmdBQUJB
aE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdB
QUJBaE1JQ01BVG9NdVMKQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5
QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSQpFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdB
QnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRCklF
Q0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFr
UUlFQ0FnQUJzSHlCQWdBQUIKQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFH
NkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQwpCQWdJd1BZQkFnUUlFQ0F3Z1lB
QVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3
CmdZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUJBZ1FJ
RUNBd2dZQUFQQUc2TEFrUUlFQ0EKZ0FCc0h5QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlC
QWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSQpDTUFUb011U0FBRUNCQWdJ
d1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFoTUlDTUFUb011U0FBRUNC
QWdJCndQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdBQUJBaE1JQ01BVG9NdVNB
QUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUEKUEFHNkxBa1FJRUNBZ0FCc0h5QkFnQUFCQWhNSUNNQVRv
TXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCcwpIeUJBZ0FBQkFoTUlD
TUFUb011U0FBRUNCQWdJd1BZQkFnUUlFQ0F3Z1lBQVBBRzZMQWtRSUVDQWdBQnNIeUJBZ0FBQkFo
TUlDTUFUCm9NdVNBQUVDQkFnSXdQWUJBZ1FJRUNBd2dZQUFQQUc2TEFrUUlFQ0FnQUJzSHlCQWdB
QUJBaE1JQ01BVG9NdVNBQUVDQkFnSXdQWUIKQWdRSUVDQXdnWUFBUEFHNkxBa1FJRUNBZ0FCc0h5
QkFnQUFCQWhNSUNNQVRvTXVTQUFFQ0JBZ0l3UFlCQWdRSUVDQXdnWUFBUEFHNgpMQWtRSUVDQWdB
QnNIeUJBZ0FBQkFoTUliRWtBL3Q3M3Z0ZmQrdGEzN3A3eGpHZE04QlZrU2FCOWdVYzg0aEg5LzZF
Ly8vblA3WDhaCjM0QUFnUTBKN0xtaHRkWlo2YmUvL1czMzhwZS92UHZuUC8vWjNlTWU5MWhuN2Yr
OWZjZ2hoM1FmL09BSE43VHVVWTV5bE83WXh6NTIKZDdyVG5hNDc2MW5QMmgzMXFFZmQwT2VtV3Vu
Zi8vNTM5K1kzdjduUGZxKzk5dW91Zk9FTGIybFJEajc0NE80Ly8vbFBkL0tUbjd5Nwp6R1V1czZY
YnRyRnBCTjd4am5kMFgvemlGN3NuUC9uSjNYR1BlOXhwQ2lGWEFnUldLckRUQWZnZi8vaEg5L3JY
djc1NzE3dmUxWDNpCkU1L29DLzMydDcrOXU5U2xMdFZkNkVJWDZ1NXdoenQwNXp2ZitkYjhNdC82
MXJlNkc5LzR4bXUrdjlZYkp6clJpZnFXd3I3Nzd0dmwKK2U2WS92clh2ODYvMno3NzdOTzk2RVV2
MnRKaTN2S1d0K3orOXJlL2RWZSs4cFc3OTd6blBWdTY3ZFkybGdPZCtON2tKamZwYm5HTApXMnhK
OFgvMG94OTFPY2o1NmxlLzJ2M3BUMy9xVG5qQ0UzWm5PY3RadW10ZDYxcmRPYzV4amkzSkl4djUv
T2MvMzczNjFhL3VQdm5KClQzWmYrOXJYK3UzbS84OTV6bk9lN25yWHUxNy9uZjd2Ly81dnkvS3pJ
UUlFZGpPQi9mZmZmMWFDMld3ejZkM3ZmdmZzTktjNXpheDgKbGFWL2Q3bkxYV2FsVmJ4dzB4Lzcy
TWVXZm5hOWJaLzJ0S2VkZmYvNzMxKzQ3YWxmUFBUUVErZmZyUVRnTFMvT3NZNTFySDc3SlFCdgor
YlpiMjJBTXNxK1VMdHhkTG5vNXFKbmQ2VTUzbXBVZWwzbjlqZmZEbTk3MHByUGYvZTUzdTVSWDZm
MlozZUFHTjFnemo1cm5tYzk4CjVsazVDTmlsdkh5WUFJSGRUNkRHM1UyM2dOUGl1dVkxcjlsM2dl
Nnh4eDdkdGE5OTdiNXJPT08vRjcvNHhidnJYdmU2M1VFSEhkUjkKOTd2ZjdaN3puT2QwaHgxMldQ
ZmM1ejYzL0thc25jNTczdk4yajMzc1k5ZGNJYTN0bi83MHA5M2IzdmEyN3YzdmYzKy9YcGJUNHZu
VQpwejYxNXVlOHNiMEZ2dkdOYjh6M2gxMzlwdWxSMkh2dnZidlBmdmF6ODAyZDVDUW42YnY1Zi9P
YjMzUVpaa2w2eld0ZTAzMzcyOS91CmgwOU9jSUlUek5mZDZKTy8vLzN2M1pXdWRLVyt1em1mU2N2
NmhqZThZZmZLVjc2eSs4bFBmdEk5NVNsUDZjckJhZmVHTjd5aHk5eUsKeTEvKzhuMUwvQlNuT01W
R3M3QWVBUUt0Q05SSXZKRmpoREx1T0N2anNQMlJleG1ubW4zODR4L3ZQMWE2b1B2WFNwZHl2NXlX
eE5Xdgpmdlg1RVg3cFl0dGg4OE1XY1BtUjJlSDl0VjRvUDFEejdSYmoyWWMvL09HMVZwMzA5ZkpE
Tzh2ZnYvNzFyeTB2UnprZ09jSzJ2ZVdGClBZSTJtTjZQMGxVNzN4ZDJ0UVY4NzN2ZmU3NnRNNXpo
RExNeVArRndKZi9RaHo0ME8vdlp6ejVmcHd5eEhPNzlqUzQ4NWpHUG1XL2oKbnZlODU2ek1GK2cv
ZW9FTFhLQi92UVQ2ZnJsMFRjL0tBVzcvV3BuZ3VOSE5XNDhBZ1FZRWF0emQxQ3pvVEpyS1VYclNB
UWNjMEYzeQprcGZzbjQvL09lWXhqOW05K01VdjdvNTJ0S1AxYjIzbEdHajVvZXpPZi83eno3TXNQ
NHp6NTd2VGsyTWM0eGhkL3FyQlZwYnQ2RWMvCitoRzI3YTBzNTFadTZ3OS8rRVAzMXJlK3RTc0Jy
THZLVmE3U25lMXNaK3RiaGx1UlIxcS82YlZKeXBocjVqS2tOVHhNbDd2YzVmclcKZGlZREpyMzBw
Uy90ZnYvNzN3OVgyZER6bDd6a0pmMTZhZmsrOWFsUDdmYmM4MytkVU9VMzQzQ2ZMMTNkM2MxdWRy
UCt0Y3kxK010Zgovbks0OXkwUUlOQyt3S1lDOEplKzlLWDVONzdPZGE0emY3N295Y2xPZHJMdVlo
ZTdXUC9XVjc3eWxVV3I3UFJyNlphcjZSZS8rRVY5CnV1WmphWVgyazF3eTJlVTczL2xPUDF0N3pa
VlgvTVovLy92ZjdtYy8rMW5mOVpudTlIU3RiMlhLRUVDR0F6SlI3bk9mKzF5WDJlZTcKa2hJSU0x
czNYYlUvLy9uUGQyVlRtL3BzaGg2eXorVjBuZmUrOTczOUVNaW1OckJrNVV3SXJLZi9YT0VLVjFo
em90V3BUbldxZnZnbAptOHBNOTB5aTJreks1THpzZjBrWnVza1FUazNENS9XMXJKT1VidXZVb1VT
QXdQWVMyRlFBem96UW1tcExvQzR2ZXR4dnYvMjY1ei8vCitkMzk3bmUvUlcvdjlHdkQwelRTR2x3
clpXWnBac2NlLy9qSDcyZVdwc1dlbHRPSlQzemlMaTJNL1BDTzAvM3ZmLy91MHBlK2RQLzMKbWM5
OFp2ejJEc3QzdTl2ZDV1dlhtYXdKK0hVYmE0MXQ1OEFocDJ5ZDhwU243TXFFc3U2aUY3MW9kNGxM
WEtJZlQ4OXlQcGZ0TEVyWAp1TVkxK3UzZjk3NzNYZlIyLzlxdmYvM3I3bDczdWxlWGNjeWN1cFha
dFJlNXlFWDY1Y3hPZitFTFg5aU5XMTNEalYzdGFsZnI4NmpqCjk5Lzg1amY3NEpQdFhmQ0NGK3pM
V3liaWRlYzYxN202TjczcFRjT1A3dkE4MXRYakZhOTR4UTd2YitTRjFIbnBBajdjWC9MZmlqUnMK
eWFZK2xxWGgrelZvTDF0LytONXcvVEtSYnZqV3d1ZHBkZWYvVC81eVFDc1JJTEROQkdwZjlFYTZ6
VXVYMlh6ODZuV3ZlOTM4SStNeAo0UGtiUzU3czdCaHdObm03MjkxdVhvNm5QLzNwQzNNcFhYMnow
cDA0WDY5VTJ3N1A4MzdXRzZablAvdlo4L1V5UnJjc2xTQTNLK2NrCjkrdG5iTHkwWnZ2Vk0vWmI4
MXMwQy9xakgvM29yRXpnbWE5VDF4MC9sc2s2czR5N2oxTTUvYXIvN0Zxem9HTjcwcE9lZE4zdGw4
bDAKL1ZqeWVQdFpydVY3eUVNZU12dkFCejR3Tzg1eGpyTjBleTk0d1FzV2JhWi83WXhuUE9QOHM0
OS8vT1BYWEcremI3emxMVytaYjNkWAp4b0RMZ2ROOE8rVWdiV2t4eXNIUGZOMXlnTFowM2ZHYm1R
OVF4M1hIOHg3R1k4RGp6MW9tUUdEN0NOUzR1NmtXOFBDaUR3OSs4SU83ClgvN3lseVZtckRhbEZa
RXh1cVNNcitaOHlYSEt1YUczdi8zdCt4WmtMdUtSODJiTEFVUDNrWTk4cEVzTExMTlFrOUxDTE1H
OEgxdXMKMjdqUmpXNDBINWQ3NHh2ZnVMU1YrTnJYdnJaTEYzSlN6dmROWHV1bGRFT1dVMUM2ZE9V
bWxjbHEvVVZNeW1TeXJnU1U3a0VQZWxCLwowWkc4OTc3M3ZhOHJnUzFQTjV3eWN6WXQ1RHByTitl
VVB1dFp6K3JITHpPR21qSDBqRTBueGZHdWQ3M3IwbTNubk5pVU4xMmtHWC9OCk1FVG1BYVFiZURn
VWtOYjRzSWRrNlVaM3N6ZlBlYzV6ZHVjKzk3bjdVcVdydnB4bXQ3Q0UyWDl5M252U21jNTBwdjU4
OTRVcnJ2RmkKOXRjNkxKUDVGRnM1TjJLTkxMMU1nTUR1TEZBajhVYVBMWExrWHI1UC8xZTZ4V2Js
OUtOWitTSHZsK3NzNkkxc2EyZGF3Sm41V3JybAo1dm1YaVdBN1pGVW1xOHpLS1J2OU9tV0N5NndF
blIzV3lRdFBldEtUNXRzcDNZcUhhd2tPV3psMXB2ZWlqYVMxRkl1MGFuNzR3eC9PClYxbldBaTZU
ZCtiNUxtb2RaeU9sUzNlK1Rqbm9tVyszUGxuV0FpNWR4L1BQbHU3MytTemIrdGs4ZnZyVG41NlZp
MHZNMTBzUHhqalYKRm5DK1g4NDdMdU8rNDFYNmJWZURyTGVXOWFNZi9lalpmZTV6bi82dmpPWHVz
SjJkZldHcldzREpQOSt2REZYMEptVllZNWFXLzVlLwovT1ZaWmlXWDA1MW1qM3ZjNDJabDJLVi92
eHpBekVvdzNxbGlwK2VvL3YvSmZuT2IyOXhtVmc1cVptVmlZZjk2blFXOVV4djNJUUlFCm1oQ29j
YmVyVHpaYTZ0TDZtWlVablBNZmtmcGprc2QwdytZMG9heXpYaG9HNEhTWGxuTWgxL3dyVnlDYWxS
Ykt2UHN1M2I1bGZIbGgKRms5NHdoUG1aVnV2Vy9LMnQ3M3RmTjNTTXA1dnIxeFdjLzU2YWRuTlh4
OCtLUzNEZVhuS3hKM2hXMzB3cnk3aklQdXdoejFzdnUxYwowR1JSU2xkMnVtMXpJSkZUYmNacHJR
QmN4clRuMjg1QlJRNUcxa3BsWEhHK2JwbHR1OE5xd3dEOHFFYzlhb2YzNnd2cHdxL2Z0WnozClhW
OWV5ZU5XQnVBVU9CZTlLSzNoK2ZlcDMydjRtSXRqNUFCbVYxS1pFN0ZtSHJsNFRVNTVxc01adTVL
UHp4SWdzSHNLMUxpN2ZwOXAKK2ZVWnBrd1F5bXppOGtQUmpTZEFwV3V5dEhTNjA1Lys5UDFwSE9u
MjNVaEtkMmt1UExEV1h5N0FrUWxPaGJMZlhDNzZVYjdBd2sybgptelVwWlV0WmxxWGg1TEF5emps
Zk5SY1RxWk5rY2dwSXpYZStRbm1TU3dqVzEzUFp6WTJtWVRkMW5iUTEvbXpXS2EzOXZvdC9NelBJ
CjQxUlRKb2N0bXlpWHJ2ZGNZakVwWGRHMUs3MSt2ajZtTEZsM3JaVDlvYWJxVVpkYmU4eVFSQm5y
WGxyc1RPaExkL3l1cENjKzhZbjkKc0VNSjVqdHNKaGV2Mlh2dnZmdUplWm54WFljU2RsalJDd1FJ
TkMrdzZRQ2NiNXhaeEdXeVVwZVp2SG5NRE50aHlnOXh4alF6QXpuagpoem5QY2xuS3pSWHl3N2ZX
WHgyenJOdkl1T1hkNzM3My9pcGI5YlU4NXRTUWpPRWxaYVp2eXJrc1pYeTBucWM3bkJHZGN0VFRy
SEphCjBLTFowSzk2MWF2NlRaZVdZdjhkbCtVemZHOW85ZENIUHJRNzhNQUR0K3hIOWd0ZitNSThx
NnRlOWFyejU0dWV4THlPaFdkY1BWZDMKV3BSeUE0eFRuL3JVaTk3cVh4c2VVS3k1VWdOdjVBcFh1
WkpiNmpyZjZmclh2MzczekdjK3M3L3lWUTc0TXRjZzUrem0xS1BNcG4vWgp5MTYyUzk4cTh4SnlT
bEpPcnlxWHY1d2Y4TldONXY5V3h0eHpsYmpTVzFSZjlraUF3RFlTMkhOWHZrdHVocENXY0lKZGZw
VHlvNTlUClRqSzVwTXowN1RlZFUxVFNHbnR4dVRESFd1bXlsNzFzTjJ5Qkxsb3ZwNHFrMWZtQUJ6
eWdQeTh5RTR0eWVrMG1GZFdVMWtLQ2NGSisKd0hJQXNOR1UwM2FHS1plNVRINUphUVhYeVROWnpp
azVaWHd3VDd1YjMvem04MGxOL1F2ci9KTWJLT1JDRXJta1oxcGNPVlVycmZuOAowR2FTVy80U0dH
TzcyVFE4aHpnWGVsZ3ZsU3MrelZmNThZOS8zR1V5MGpnZEdTNkJtTG9zWTdIOXZwT0RyL1FJWko4
Y3Boenc1VHp0Cm5KdGJyZ1hkVC9MTGFWRTV0V3RuVTFyU09lODRmem12T2hQY012RXYrMFlDZkNi
cy9lcFh2K292NzVyM2hyME5PNXVuenhFZ3NQc0kKN0ZRTGVLM2lIKzk0eCt1N0t6TmJORE42YXhk
b3J2NlQyYm03a2hLUUVzaHpUbVJOMmU0dzVZZXhwbHpjSWwzZzYvM1ZnRDIrMGxETwpnNjFCTUFG
NG1ITGQzcG95MjNvektTM1BkQlduNVZ1N2dOTmprQ0NRbGxZT1lIS2J3ZVJmVy9NYjNYNStzSk9T
UjFybTY2V2MwMXZUCjhCelYrbG9leDhNTXcvZTJ5L05jMVMwSFEwbGxjdDRPd2JkK3o3U1E2LzZY
MjBFKzhwR1ByRy90OG1QdDFzNEJXSHFWZnZDREgzUTUKRHpncEI1KzVUYUZFZ01EMkV0aWxGdkF5
aXJRVTBvVld4MkZ6djlOY0dHSlhVd0pVdHBNZnBhOS8vZXY5T0d6OThhcVB5U08zUk13cApQaHRO
OVdDaHJwK3U2WnlTOUx6blBhL0xxVGk1aWxTOXIyOXRHYWNMdTc1V1A3ZVJ4Mnc3UDk2NTZFZUNj
VnBjNlFISVFVTlNmdHh6Cktreit5cVN5ZnIyTmJqZnJaVHczOTJaZUwzaG1uWm9TdEkrTUtWY0tx
N2QwekQ1UUp1WXRaY2o4Z1BRS3BHV2FPc3VOUXNaREpFczMKc01FM2MrR050SWIzMm11di9pcGQr
ZitUZ3dPSkFJSHRJN0NwQUh6SE85Nng3eGJMa1htNm50ZExHVGVyQWJnR2wvVStzOTc3R1lkTAox
MmtDY0ZvdE9aKzJ0aVJyaXpYYnlCV3Z5dXpkOVRhMzlQMTBMeWNBSjZVVm5HQ2Jyc0xhbXQvTTVL
dEZHV1dpVjdySmExZDVPWldwCi8xRlB5NzUyNFQvd2dRL3NybmpGS3g3dSt0ZUx0cFhYaG1QZTZZ
NWY3MHBSQ1NJMURlM3FhMGVHeHovKzhZLzlQcDN2bW1DMzN2MTMKYzVCWFpxajNBVGk5SnhtNnlL
VERqYVNjTjE2dkdwWTZIdWExYUFKYjZpUmQ0VGxBR3c0dmJDUXY2eEFnc1BzTGJLb0xPcTIxdFA1
eQpaTDZSTkd4VnJ0Y2EyOGoyNmpycDZxNnBkcnRtT1pPRjZudHJ6VEN1bjh0aldqKzUxVnoreGwz
UWVUOC9mblVDVXUyR3JwT3Y4dU9aCmlUUmJtWEpna2FDZUx2eDB0eWZsaDNtanM4a3pKbGxUWnFx
dmw4bzV6dk5WTXA1K1pFeDF0bnUrKzNCZldtWXh2T0JJWmtWdk5HV2kKVy83LzVDOW5EQXpUc1Bk
bStIb3QzeEhSeWg3bTR6a0JBcXNYMkZRQXJwTkFNaUZrMFJIN3VQakRVMmpTYXRpcWxDN2Ftc1kv
bW1rdApKaVh2ZEZFdlMva2h6SGhyL2haZG96aXpZZXNkYVhKYVVHYkFaclpzVW1aSkQ4ZFFsK1V6
ZkMrdDlYVDNKczlsYVo5OTlwbS9mZWloCmg4NmZMM3VTMDFkcVNtdHJXY3BFc3RSalVxN3FWQTgw
bG4xbU83NlhBOE44LzZSTVJNdHd3N0tVRzFEVUdUYVdxbmdBQUFXOVNVUkIKVlBPcC80Mk10ZGZ0
RFhza2NrT0xZVnJyLzFQOVB6U2NNRGY4bk9jRUNMUXJzS2tBbkFraVNlbmVUTGZZc3BRZmxITGQz
MzZWQkxMMQpUb3RadHEzeGUvVVdibmw5T1BFcXk4TnpWbk42UjUxY2svZUdLWk9POXQxMzMvNmxC
TVJjdm5GUnltem9takxqT3JPcmt6WTcrYXB1Ckk3T1RhOHQ3V1N1MVhCU2lmbVRkcnVTNllvenJS
ZnZUWXMrbExCZWxqQkVQeCtNekEvaUlUTGw4WXozSHU5NE42SWpNYjd6dEJOYWEKZnlZSGpsUEcr
cE95ejJhVy9WckJNT3RrU0tBZUFKYUx4K1NsRGFmNi95Y2YyTWhsS0E4KytPRDU2V0ZyN1o4Ynp0
eUtCQWpzZGdLYgpDc0IzdnZPZDUrZk5scHVFcjNuTjNOdytMZWZxMXNrdGFjM2xWbTVibFlZdHo5
b2FxZHN1VjgyYW41ZWNBSmRUZnNibnVPWXpPUjBvCnJkcWtqRzNYMW4zZFRuM01uWDh5bnB4VXUy
elRXc3gyZHlabEVrOU50N3JWclhhWTZad2YvMXpMdXQ3cEtGMlRPWmQ2SXluZDRzT1oKdWNrcjk2
MGRYbVFqWS9IbGtxSHo0Snk3K3d5RDhVYnkyZXc2T1lVblFTNS9DU3FyVHBrc1ZmUFBmanRPbVF4
WHJzYld2NXhBbmQ2Tgo5QkFNVTFyRzZRMnBReEFaNm5qNHd4OCtYR1hkNTdud1JtYTNKNzN6bmUv
czUxSGsvOHFpbEFsNHRSY2tkNElxTndaWnRKclhDQkJvCldHQlRBVGlCcUZ3VHQvKzZtZnlVSDVQ
Y1J1OXBUM3RhLzFxNmZQT2prWXMzMU52WVphYndWcy9lckYyR3lUVG5GOWNXU1pZVHNOS2QKWEFO
K0xnaFNiMk9YTHRyY1BpL251NWJMQ1diMWZyWjAvVTc5Q3d2K0diYUM4M2ErNDg3T0drNncyNnRN
OWtuS3FTYTVNRWU4TXJFdAp6OU0xbmNscmRad3hGK3NZanUzMkgxenlUNEpkRGRpNUFFcG05Y1lp
dHdOTVhXUW9vRTRFeXZoaXhwYzMwNDI2Sk90bTMwcnd6YnlHCmVwdkx6SFhJUHBKdTM1ei9uZjB0
eit2d1ErWTI1UGxhQjIzTElIS0tVVDIzT3Y5SFV2ZnBUYWtUNHRJcmsvOVQrYitWQ1dMWnozSk8K
Y0QxQVdMWnQ3eEVnMEpoQXVRakVyUHluTHcydmphY1M5TmE5M1YwSmhMUGNuS0YwRVMvYzhQQmEw
T05ic3kzOHdPREZFbFJ6VGNyNQpYem5kYWZEdS81NldGc3VzQkxYNU9zUDE4N3gwaTg5S0lKMlY4
ZFVkUGp0K29YU2J6cmVUNzFWbVFZOVhPZHp5c3BzeFpNWGN1S0djClV6cmY1cmhzV2M2TkFjckZS
ZzYzM2JwUVpzZjJuMTNyZG9TbDIzMlc2dzNuWmhTTHRwM1h5b1UvWnVYS1dYV1RPenlXb054L05v
YkwKVXE1YlhQTW93V1hocXJtdWRWMW5pdHNSSG5UUVFmUDhTOHQxWVJuelloa1RuNVY3TXMvWHJX
VWVQcFlMYnl5OE1jV2FHMTN3UnVwLwplRk9UNGZhSHowdlFuNVdXOG9JdGVJa0FnWllGYXR6ZEkw
OHlKcG1MRVd3bXBlc3NMWVdjTHBQSlBIbk1rWDI2WnN1OVRmc3JCZzFiCnFwdlo5bGF1bTI3ampG
ZW4yemxsenFrNnVlcFV1bWRyMS9KVzVyZlJiWldkcHpmTGJmM1NSWjRXYjdxUU0xR25CSUcrRlZ4
YlpCdmQKNW5pOXpMVE5XSEF1VVhuSUlZZjA1d1duVGpKV25LdHRaV3hlT3J4QTZpVlh2TXA1dCtt
aHlPbHV1VHBXZWlIU0toMWVTdlR3bjl6OApVdW9sK1dUR2ZoNHpMNkhjbzdudnFjaXRIbk9Gck9G
OGg4M240Qk1FQ095T0FvbTNpYnM3SFlDSFh5cGpyYmtVWmNZVzE1dDlPL3ljCjV3UUkvRThnY3cw
eU16b1RISWR6SFBnUUlMRDlCR29BMWdUYWZuWHJHeEVnUUlCQUF3SUNjQU9WcElnRUNCQWdzUDBF
Tm5VcHlyVysKZmk1U24vSFZuWjBadk5aMnZVN2d5Q0tRY2VlTUNibmkxWkdseG4xUEFsMjNKUUU0
cC83NDRiQTdFZGg1Z2VGMW9YZCtLejVKZ0VCTApBcnFnVzZvdFpTVkFnQUNCYlNNZ0FHK2JxdlJG
Q0JBZ1FLQWxBUUc0cGRwU1ZnSUVDQkRZTmdJQzhMYXBTbCtFQUFFQ0JGb1NFSUJiCnFpMWxKVUNB
QUlGdEl5QUFiNXVxOUVVSUVDQkFvQ1VCQWJpbDJsSldBZ1FJRU5nMkFnTHd0cWxLWDRRQUFRSUVX
aElRZ0Z1cUxXVWwKUUlBQWdXMGpJQUJ2bTZyMFJRZ1FJRUNnSlFFQnVLWGFVbFlDQkFnUTJEWUNB
dkMycVVwZmhBQUJBZ1JhRXVodnhuRGdnUWUyVkdabApKVUNBQUFFQ3pRb2s1dTY3Nzc3ZEhyT1NE
ampnZ0dhL2lJSVRJRUNBQUlIV0JQYmJiNy91L3dFY0FMV0REOGdZSEFBQUFBQkpSVTVFCnJrSmdn
Zz09Cgo=
</data>
<flag name="review"
          id="75351"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84199</attachid>
            <date>2011-03-01 00:33:13 -0800</date>
            <delta_ts>2011-03-01 01:27:05 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>NewSVGPaintPatch.diff</filename>
            <type>text/plain</type>
            <size>112680</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5ODc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTA3IEBACisyMDExLTAyLTI4ICBOaWtvbGFz
IFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWRyAxLjEgMm5kIEVkaXRpb24gY29sb3ItcHJv
cC0wNS10LnN2ZyBleHBvc2VzIGJ1ZyBpbiAnY3VycmVudENvbG9yJyBoYW5kbGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4MDAKKworICAgICAg
ICBTdG9wIHN0b3JpbmcgUmVmUHRyPFNWR1BhaW50PiBvYmplY3RzIGluIHRoZSBTVkdSZW5kZXJT
dHlsZSBmb3IgZmlsbC9zdHJva2UuIFRoZXNlIGFyZSB0aGUgbGFzdAorICAgICAgICB0d28gb2Jq
ZWN0cyB0aGF0IGhlbGQgcmVmZXJlbmNlcyB0byBDU1NWYWx1ZXMsIHRoZXkncmUgYWxsIGdvbmUg
bm93LCBhbGlnbmluZyBiZXR0ZXIgd2l0aCBSZW5kZXJTdHlsZS4KKyAgICAgICAgSXQncyBhbHNv
IGRhbmdlcm91cywgYXMgYSBTVkdQYWludCBvYmplY3QgY2FuIGJlIHNoYXJlZCBieSBtdWx0aXBs
ZSBTVkdSZW5kZXJTdHlsZXMgKE1hcHBlZEF0dHJpYnV0ZSB3aWxsCisgICAgICAgIG9uY2UgY3Jl
YXRlIGEgQ1NTU3R5bGVEZWNsYXJhdGlvbiBmb3IgZmlsbD0icmVkIiBhbmQgcmV1c2UgaXQgd2hl
cmUgcG9zc2libGUpLCBhbmQgaXQgd2FzIGVhc3kgdG8KKyAgICAgICAgYWNjaWRlbnRseSBtdXRh
dGUgdGhlIG9iamVjdCwgYWZmZWN0aW5nIG11bHRpcGxlIHN0eWxlcy4gSW5zdGVhZCBzdG9yZSBh
IENvbG9yLCBhbiBVUkkgYW5kIGEgcGFpbnQKKyAgICAgICAgdHlwZSBpbiBTVkdSZW5kZXJTdHls
ZSwgZW5vdWdoIHRvIGNyZWF0ZSBhIFNWR1BhaW50IG9iamVjdCwgaWYgbmVlZGVkIChlZyBmb3Ig
Y29tcHV0ZWQgc3R5bGVzKS4KKworICAgICAgICA8ZyBjb2xvcj0icmVkIj48cmVjdCBmaWxsPSJj
dXJyZW50Q29sb3IiLz4gYWxyZWFkeSB3b3JrZWQgZmluZSBpbiB0cnVuaywgYnV0CisgICAgICAg
IDxnIGZpbGw9ImN1cnJlbnRDb2xvciIgY29sb3I9ImdyZWVuIj48cmVjdCBjb2xvcj0icmVkIi8+
IHByb2N1ZGVkIGEgcmVkIHJlY3RhbmdsZS4KKworICAgICAgICBJbiBvcmRlciB0byBmaXggdG8g
YnVnIHdlIGhhdmUgdG8gcmVzb2x2ZSBhbGwgY3VycmVudENvbG9yIHZhbHVlcyBmb3IgU1ZHUGFp
bnQgb2JqZWN0cywgaW4gU1ZHQ1NTU3R5bGVTZWxlY3RvciwKKyAgICAgICAgYXMgaXQncyBhbHJl
YWR5IGRvbmUgZm9yIFNWR0NvbG9yIG9iamVjdHMgKHN0b3AtY29sb3IsIGZsb29kLWNvbG9yLCBl
dGMuKSBpbnN0ZWFkIG9mIGluIFJlbmRlclNWR1Jlc291cmNlOjpmaWxsL3N0cm9rZVBhaW50aW5n
UmVzb3VyY2UsCisgICAgICAgIHdoZW4gdHJ5aW5nIHRvIHVzZSB0aGUgcGFpbnQgc2VydmVyLiBU
aGUgY29ycmVjdCAiY29sb3IiIHZhbHVlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZnJvbSB0aGUgUmVu
ZGVyU3R5bGUsIGlzIGRpcmVjdGx5CisgICAgICAgIGF2YWlsYWJsZSBpbiBDU1NTdHlsZVNlbGVj
dG9yOiBpbiBhcHBseVByb3BlcnR5IG1fc3R5bGUtPmNvbG9yKCkgZ2l2ZXMgdGhlIGRlc2lyZWQg
dmFsdWUuIEluIENTU1N0eWxlU2VsZWN0b3IgaXQncyBoYW5kbGVkCisgICAgICAgIGV4YWN0bHkg
dGhpcyB3YXkgZm9yIG5vbi1TVkcgY3VycmVudENvbG9yIHByb3BlcnRpZXMuIEFsc28gZml4IGNv
bXB1dGVkIHN0eWxlcywgd2hpY2ggZGlkIG5vdCByZXNvbHZlIGN1cnJlbnRDb2xvciBmb3IgU1ZH
UGFpbnQvU1ZHQ29sb3IuCisKKyAgICAgICAgQSBwcmV2aW91cyBwYXRjaCBpbXBsZW1lbnRlZCB0
aGUgU1ZHUGFpbnQvU1ZHQ29sb3IgQVBJLiBTVkcgZGVtYW5kcyB0aGVzZSBDU1NWYWx1ZXMgdG8g
YmUgbXV0YWJsZS4gSW50cm9kdWNlCisgICAgICAgIENTU011dGFibGVWYWx1ZSwgd2hpY2ggZXh0
ZW5kcyBDU1NWYWx1ZSBieSBhIE5vZGUgcG9pbnRlciwgYW5kIGxldCBTVkdQYWludC9TVkdDb2xv
ciBpbmhlcml0IGZyb20gaXQuCisgICAgICAgIE11dGF0aW5nIGEgU1ZHUGFpbnQvU1ZHQ29sb3Ig
b2JqZWN0IG5vdyB0YWtlcyBpbW1lZGlhdGUgZWZmZWN0LCB3aGljaCBpcyByZWZsZWN0ZWQgaW4g
dGhlIGlubGluZSBzdHlsZSAvIGNvbXB1dGVkIHN0eWxlLgorICAgICAgICAoTm90ZSB0aGF0IGdl
dFByZXNlbnRhdGlvbkF0dHJpYnV0ZSgpIGFscmVhZHkgdGFrZXMgY2FyZSBvZiByZW1vdmluZyB0
aGUgQ1NTVmFsdWUgZnJvbSB0aGUgbWFwcGVkIGF0dHJpYnV0ZSBjYWNoZSwgc28gdGhhdCBpdCdz
IG5vIGxvbmdlciBzaGFyZWQuKQorCisgICAgICAgIEFkZCBzZXZlcmFsIG5ldyB0ZXN0cyBjb3Zl
cmluZyB0aGUgcGF0Y2guCisKKyAgICAgICAgVGVzdHM6IHN2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xv
ci1wcm9wLTA1LXQuc3ZnCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNv
bG9yLWZpbGwtY3VycmVudENvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIHN2Zy9jdXN0b20vU1ZH
UGFpbnQtbXV0YXRlLWF0dHJpYnV0ZS5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9jdXN0b20vU1ZH
UGFpbnQtbXV0YXRlLWlubGluZS1zdHlsZS5zdmcKKworICAgICAgICAqIEdOVU1ha2VmaWxlLmFt
OiBBZGQgQ1NTTXV0YWJsZVZhbHVlLmgKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAg
ICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDogUmVzZXQgdGhlIE5vZGUg
cG9pbnRlciBpbiBhbGwgQ1NTTXV0YWJsZVZhbHVlcyBiZWxvbmdpbmcgdG8gdGhpcyBzdHlsZSBk
ZWNsYXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
Ojp+Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5oOiBBZGQgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKiBjc3MvQ1NTTXV0
YWJsZVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVZhbHVlOjpD
U1NNdXRhYmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVZhbHVlOjp+Q1NT
TXV0YWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVWYWx1ZTo6aXNNdXRh
YmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVZhbHVlOjpub2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVWYWx1ZTo6c2V0Tm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NNdXRhYmxlVmFsdWU6OnNldE5lZWRzU3R5bGVSZWNhbGMpOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBTZXQgdGhlIE5vZGUgb2JqZWN0IG9mIGEg
Q1NTTXV0YWJsZVZhbHVlIHRvIHRoZSBOb2RlLCB0aGlzIHN0eWxlIGRlY2xhcmF0aW9uIGJlbG9u
Z3MgdG8uCisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NW
YWx1ZTo6aXNNdXRhYmxlVmFsdWUpOiBSZXR1cm4gZmFsc2UsIGRlZmF1bHQuCisgICAgICAgICog
Y3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmFkanVzdFNWR1BhaW50Rm9yQ3VycmVudENv
bG9yKTogQWRkIGhlbHBlciBmdW5jdGlvbiwgcmVzb2x2aW5nIGN1cnJlbnRDb2xvciB2YWx1ZXMg
Zm9yIFNWR1BhaW50IG9iamVjdHMuCisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFNWR1Byb3BlcnR5Q1NTVmFsdWUpOiBVc2UgY3VycmVudENvbG9yT3JW
YWxpZENvbG9yL2FkanVzdFNWR1BhaW50Rm9yQ3VycmVudENvbG9yIHRvIHJlc29sdmUgU1ZHQ29s
b3IvU1ZHUGFpbnQgdmFsdWVzLgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkp
OiBTdG9yZSBmaWxsL3N0cm9rZSB1cmksIGNvbG9yLCBwYWludCB0eXBlIHNlcGVyYXRlZCBpbiBT
VkdSZW5kZXJTdHlsZSwgZG9uJ3Qgc3RvcmUgdGhlIGZ1bGwgU1ZHUGFpbnQgb2JqZWN0IGFueW1v
cmUuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpkaWZmKTogQWRhcHQgdG8gU1ZHUGFpbnQgY2hh
bmdlcy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaDogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxPcGFjaXR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsRmlsbFBhaW50VXJp
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlT3BhY2l0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBh
aW50Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJv
a2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0
cm9rZU1pdGVyTGltaXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmluaXRp
YWxTdG9wT3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bEZsb29kT3BhY2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6c2V0Rmls
bFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpzZXRTdHJva2VQYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdHlsZTo6ZmlsbFBhaW50Q29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3R5bGU6OmZpbGxQYWludFVyaSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZW5kZXJTdHlsZTo6c3Ryb2tlUGFpbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1JlbmRlclN0eWxlOjpzdHJva2VQYWludENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlbmRlclN0eWxlOjpzdHJva2VQYWludFVyaSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5k
ZXJTdHlsZTo6aGFzU3Ryb2tlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN0eWxlOjpo
YXNGaWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNw
cDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbGxEYXRhOjpTdHlsZUZpbGxEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRmlsbERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpTdHlsZVN0cm9rZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTdHJva2VEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmg6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnJl
cXVlc3RQYWludGluZ1Jlc291cmNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
UmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpw
YWludGluZ1Jlc291cmNlRnJvbVNWR1BhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jlc291
cmNlczo6YnVpbGRDYWNoZWRSZXNvdXJjZXMpOgorICAgICAgICAqIHN2Zy9TVkdDb2xvci5jcHA6
IENhbGwgc2V0TmVlZHNTdHlsZVJlY2FsYygpIGFmdGVyIG11dGF0aW5nIHRoZSBvYmplY3QuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdDb2xvcjo6c2V0UkdCQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ29sb3I6OnNldFJHQkNvbG9ySUNDQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Q29sb3I6OnNldENvbG9yKToKKyAgICAgICAgKiBzdmcvU1ZHQ29sb3IuaDoKKyAgICAgICAgKiBz
dmcvU1ZHUGFpbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50OjpzZXRV
cmkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OnNldFBhaW50KToKKyAgICAgICAgKiBz
dmcvU1ZHUGFpbnQuaDoKKwogMjAxMS0wMi0yNSAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMDIsNiArMTAwMiw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCBcCisJU291cmNlL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZXNwYWNl
LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NPTVV0aWxzLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvY3NzL0NTU09NVXRpbHMuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA3OTc3
NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTA0
NCw2ICsxMDQ0LDcgQEAKICAgICAgICAgICAgICdjc3MvQ1NTTWVkaWFSdWxlLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAnLAogICAgICAgICAgICAg
J2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oJywKKyAgICAgICAgICAgICdjc3MvQ1NT
TXV0YWJsZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NOYW1lc3BhY2UuaCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU09NVXRpbHMuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTT01VdGls
cy5oJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDcg
QEAKIAkJMDg5N0Q5N0EwRjAwN0E0NjAwNDExQkIzIC8qIFdNTE1ldGFFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4OTdEOTc4MEYwMDdB
NDYwMDQxMUJCMyAvKiBXTUxNZXRhRWxlbWVudC5jcHAgKi87IH07CiAJCTA4OTdEOTdCMEYwMDdB
NDYwMDQxMUJCMyAvKiBXTUxNZXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg5N0Q5NzkwRjAwN0E0NjAwNDExQkIzIC8qIFdNTE1ldGFF
bGVtZW50LmggKi87IH07CiAJCTA4OUE4RTA3MTI4RDhCM0QwMEU3QTUzNCAvKiBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODlBOEUwNjEyOEQ4QjNEMDBFN0E1MzQgLyogU1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oICovOyB9OworCQkwODlGMEQ1MTEzMTZDRTkz
MDA1ODc3QUQgLyogQ1NTTXV0YWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODlGMEQ1MDEzMTZDRTkzMDA1ODc3QUQgLyogQ1NTTXV0YWJs
ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDhBNDg0NzcwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhBNDg0NzUwRTUyNzJDNTAw
QzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwICovOyB9OwogCQkwOEE0ODQ3ODBFNTI3MkM1MDBD
M0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQu
aCAqLzsgfTsKIAkJMDhBNDhBNkUwRTg2Q0Y2RDAwRTIyNUREIC8qIEpTU1ZHRWxlbWVudEluc3Rh
bmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4QTQ4QTZEMEU4NkNGNkQwMEUyMjVERCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3Rv
bS5jcHAgKi87IH07CkBAIC02NDcyLDYgKzY0NzMsNyBAQAogCQkwODk3RDk3ODBGMDA3QTQ2MDA0
MTFCQjMgLyogV01MTWV0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV01MTWV0YUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODk3RDk3OTBGMDA3QTQ2MDA0MTFCQjMgLyogV01MTWV0YUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MTWV0YUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg5QThFMDYxMjhEOEIzRDAwRTdBNTM0IC8qIFNWR0FuaW1hdGVkUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwODlGMEQ1MDEzMTZDRTkzMDA1ODc3QUQgLyogQ1NTTXV0YWJsZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU011dGFibGVWYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEE0ODQ3NTBFNTI3MkM1MDBDM0ZFNzYg
LyogU2NyaXB0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTY3JpcHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhBNDg0
NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NyaXB0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwOEE0OEE2RDBFODZDRjZEMDBFMjI1REQgLyogSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50
SW5zdGFuY2VDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg1NjAs
NiArMTg1NjIsNyBAQAogCQkJCTg1QzU2Q0EyMEFBODlDMTAwMEQ5NTc1NSAvKiBDU1NNZWRpYVJ1
bGUuaWRsICovLAogCQkJCUE4MEU2REY5MEExOTkwNjcwMDdGQjhDNSAvKiBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5jcHAgKi8sCiAJCQkJQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmggKi8sCisJCQkJMDg5RjBENTAxMzE2Q0U5MzAwNTg3
N0FEIC8qIENTU011dGFibGVWYWx1ZS5oICovLAogCQkJCUE4MEU3MzQ3MEExOTlDNzcwMDdGQjhD
NSAvKiBDU1NOYW1lc3BhY2UuaCAqLywKIAkJCQlGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyog
Q1NTT01VdGlscy5jcHAgKi8sCiAJCQkJRjk4RkZGNDMxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09N
VXRpbHMuaCAqLywKQEAgLTIyNDgxLDYgKzIyNDg0LDcgQEAKIAkJCQk5M0YxOTlFRDA4MjQ1RTU5
MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRTUxMkUw
Q0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDg5RjBENTExMzE2Q0U5MzAwNTg3N0FEIC8qIENTU011dGFibGVWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5oCShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjIsOSArMjIsOSBA
QAogI2RlZmluZSBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb25faAogCiAjaW5jbHVkZSAiQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzQsNiArMzQsNyBAQCBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKIGNsYXNzIE5vZGU7CiBjbGFz
cyBSZW5kZXJTdHlsZTsKIGNsYXNzIFNoYWRvd0RhdGE7CitjbGFzcyBTVkdQYWludDsKIAogZW51
bSBFVXBkYXRlTGF5b3V0IHsgRG9Ob3RVcGRhdGVMYXlvdXQgPSBmYWxzZSwgVXBkYXRlTGF5b3V0
ID0gdHJ1ZSB9OwogCkBAIC03Niw3ICs3NywxMCBAQCBwcml2YXRlOgogCiAgICAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gdmFsdWVGb3JTaGFkb3coY29uc3QgU2hhZG93RGF0YSosIGludCwgUmVuZGVy
U3R5bGUqKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjdXJyZW50
Q29sb3JPclZhbGlkQ29sb3IoUmVuZGVyU3R5bGUqLCBjb25zdCBDb2xvciYpIGNvbnN0OwotICAg
IAorI2lmIEVOQUJMRShTVkcpCisgICAgUGFzc1JlZlB0cjxTVkdQYWludD4gYWRqdXN0U1ZHUGFp
bnRGb3JDdXJyZW50Q29sb3IoUGFzc1JlZlB0cjxTVkdQYWludD4sIFJlbmRlclN0eWxlKikgY29u
c3Q7CisjZW5kaWYKKwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiAgICAgUHNldWRvSWQgbV9w
c2V1ZG9FbGVtZW50U3BlY2lmaWVyOwogICAgIGJvb2wgbV9hbGxvd1Zpc2l0ZWRTdHlsZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
LmNwcAkocmV2aXNpb24gNzk3NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5j
bHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKIAogI2luY2x1ZGUgIkNTU0ltYWdl
VmFsdWUuaCIKKyNpbmNsdWRlICJDU1NNdXRhYmxlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQYXJz
ZXIuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eUxvbmdoYW5kLmgiCiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgpAQCAtOTEsNiArOTIsMTcgQEAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OkNTU011dGFibGVTdAogICAgIH0KIH0KIAorQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
On5DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCit7CisgICAgY29uc3QgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yIGVuZCA9IHRoaXMtPmVuZCgpOworICAgIGZvciAo
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yIGl0ID0gYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CisgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IGl0LT52YWx1ZSgpOwor
ICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS0+aXNNdXRhYmxlVmFsdWUoKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBzdGF0aWNfY2FzdDxDU1NNdXRhYmxlVmFsdWUqPih2YWx1
ZSktPnNldE5vZGUoMCk7CisgICAgfQorfQorIAogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24m
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpvcGVyYXRvcj0oY29uc3QgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24mIG90aGVyKQogewogICAgIEFTU0VSVCghbV9pdGVyYXRvckNvdW50KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oCShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw4IEBAIHByaXZhdGU6
CiAKIGNsYXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIENTU1N0eWxlRGVj
bGFyYXRpb24gewogcHVibGljOgorICAgIHZpcnR1YWwgfkNTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKCk7CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlVmFsdWUu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlVmFsdWUuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBD
U1NNdXRhYmxlVmFsdWVfaAorI2RlZmluZSBDU1NNdXRhYmxlVmFsdWVfaAorCisjaW5jbHVkZSAi
Q1NTVmFsdWUuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQ1NTTXV0YWJsZVZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsKK3B1YmxpYzoKKyAgICBD
U1NNdXRhYmxlVmFsdWUoKQorICAgICAgICA6IG1fbm9kZSgwKQorICAgIHsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIH5DU1NNdXRhYmxlVmFsdWUoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRh
YmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBOb2RlKiBub2RlKCkgY29u
c3QgeyByZXR1cm4gbV9ub2RlOyB9CisgICAgdm9pZCBzZXROb2RlKE5vZGUqIG5vZGUpIHsgbV9u
b2RlID0gbm9kZTsgfQorCisgICAgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9ub2RlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX25vZGUt
PnNldE5lZWRzU3R5bGVSZWNhbGMoRnVsbFN0eWxlQ2hhbmdlKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgTm9kZSogbV9ub2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gQ1NTTXV0YWJsZVZhbHVlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMCArMjIsMTMg
QEAKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAKICNpbmNsdWRlICJDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU011dGFibGVWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC00Miw3ICs0NSwyOCBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NTdHlsZURlY2xhcmF0aW9uCiAgICAgaW50IHByb3BJRCA9IGNzc1Byb3BlcnR5
SUQocHJvcGVydHlOYW1lKTsKICAgICBpZiAoIXByb3BJRCkKICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgcmV0dXJuIGdldFByb3BlcnR5Q1NTVmFsdWUocHJvcElEKTsKKworICAgIC8vIFNob3J0LWN1
dCwgbm90IGludm9sdmluZyBhbnkgY2hhbmdlIHRvIHRoZSByZWZjb3VudC4KKyAgICBpZiAoIWlz
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5Q1NT
VmFsdWUocHJvcElEKTsKKworICAgIC8vIFNsb3cgcGF0aC4KKyAgICBSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wSUQpOworICAgIGlmICghdmFsdWUgfHwg
IXZhbHVlLT5pc011dGFibGVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gdmFsdWUucmVsZWFzZSgp
OworCisgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKj4odGhpcyktPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzU3R5bGVkRWxl
bWVudCgpKQorICAgICAgICByZXR1cm4gdmFsdWUucmVsZWFzZSgpOworCisgICAgTm9kZSogYXNz
b2NpYXRlZE5vZGUgPSBzdGF0aWNfY2FzdDxDU1NNdXRhYmxlVmFsdWUqPih2YWx1ZS5nZXQoKSkt
Pm5vZGUoKTsKKyAgICBpZiAoYXNzb2NpYXRlZE5vZGUpIHsKKyAgICAgICAgQVNTRVJUKGFzc29j
aWF0ZWROb2RlID09IG5vZGUpOworICAgICAgICByZXR1cm4gdmFsdWUucmVsZWFzZSgpOworICAg
IH0KKworICAgIHN0YXRpY19jYXN0PENTU011dGFibGVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+c2V0
Tm9kZShub2RlKTsKKyAgICByZXR1cm4gdmFsdWUucmVsZWFzZSgpOwogfQogCiBTdHJpbmcgQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcgJnByb3BlcnR5
TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgPSAwOwogICAgIHZv
aWQgc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgeyB9IC8vIEZJWE1F
OiBOb3QgaW1wbGVtZW50ZWQuCiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlVmFsdWUoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzQm9yZGVySW1hZ2VW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ3Vyc29y
SW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
Rm9udEZhbWlseVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTVkdQYWludC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU5LDYgKzYwLDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBz
dHJva2VEYXNoQXIKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8
U1ZHUGFpbnQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6YWRqdXN0U1ZHUGFpbnRGb3JD
dXJyZW50Q29sb3IoUGFzc1JlZlB0cjxTVkdQYWludD4gbmV3UGFpbnQsIFJlbmRlclN0eWxlKiBz
dHlsZSkgY29uc3QKK3sKKyAgICBSZWZQdHI8U1ZHUGFpbnQ+IHBhaW50ID0gbmV3UGFpbnQ7Cisg
ICAgaWYgKHBhaW50LT5wYWludFR5cGUoKSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9DVVJS
RU5UQ09MT1IgfHwgcGFpbnQtPnBhaW50VHlwZSgpID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBF
X1VSSV9DVVJSRU5UQ09MT1IpCisgICAgICAgIHBhaW50LT5zZXRDb2xvcihzdHlsZS0+Y29sb3Io
KSk7CisgICAgcmV0dXJuIHBhaW50LnJlbGVhc2UoKTsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVlKGlu
dCBwcm9wZXJ0eUlELCBFVXBkYXRlTGF5b3V0IHVwZGF0ZUxheW91dCkgY29uc3QKIHsKICAgICBO
b2RlKiBub2RlID0gbV9ub2RlLmdldCgpOwpAQCAtMTI3LDEzICsxMzYsMTMgQEAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgICAgIHJldHVybiBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN2Z1N0eWxlLT5maWx0ZXJSZXNvdXJjZSgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7CiAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZsb29kQ29sb3I6Ci0gICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZUNvbG9yKHN2Z1N0eWxlLT5mbG9vZENvbG9yKCkucmdiKCkpOworICAgICAgICAgICAg
cmV0dXJuIGN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcihzdHlsZSwgc3ZnU3R5bGUtPmZsb29kQ29s
b3IoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaWdodGluZ0NvbG9yOgotICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVDb2xvcihzdmdTdHlsZS0+bGlnaHRp
bmdDb2xvcigpLnJnYigpKTsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50Q29sb3JPclZhbGlk
Q29sb3Ioc3R5bGUsIHN2Z1N0eWxlLT5saWdodGluZ0NvbG9yKCkpOwogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5U3RvcENvbG9yOgotICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGVDb2xvcihzdmdTdHlsZS0+c3RvcENvbG9yKCkucmdiKCkpOworICAgICAgICAgICAg
cmV0dXJuIGN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcihzdHlsZSwgc3ZnU3R5bGUtPnN0b3BDb2xv
cigpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6Ci0gICAgICAgICAgICByZXR1cm4g
c3ZnU3R5bGUtPmZpbGxQYWludCgpOworICAgICAgICAgICAgcmV0dXJuIGFkanVzdFNWR1BhaW50
Rm9yQ3VycmVudENvbG9yKFNWR1BhaW50OjpjcmVhdGUoc3ZnU3R5bGUtPmZpbGxQYWludFR5cGUo
KSwgc3ZnU3R5bGUtPmZpbGxQYWludFVyaSgpLCBzdmdTdHlsZS0+ZmlsbFBhaW50Q29sb3IoKSks
IHN0eWxlKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUtlcm5pbmc6CiAgICAgICAgICAgICBy
ZXR1cm4gU1ZHTGVuZ3RoOjp0b0NTU1ByaW1pdGl2ZVZhbHVlKHN2Z1N0eWxlLT5rZXJuaW5nKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFya2VyRW5kOgpAQCAtMTQ5LDcgKzE1OCw3IEBA
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgICAgICAg
ICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdmdTdHlsZS0+bWFya2VyU3RhcnRS
ZXNvdXJjZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7CiAgICAgICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVOb25lKTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKLSAgICAgICAgICAgIHJldHVybiBzdmdTdHls
ZS0+c3Ryb2tlUGFpbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RTVkdQYWludEZvckN1
cnJlbnRDb2xvcihTVkdQYWludDo6Y3JlYXRlKHN2Z1N0eWxlLT5zdHJva2VQYWludFR5cGUoKSwg
c3ZnU3R5bGUtPnN0cm9rZVBhaW50VXJpKCksIHN2Z1N0eWxlLT5zdHJva2VQYWludENvbG9yKCkp
LCBzdHlsZSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VEYXNoYXJyYXk6CiAgICAg
ICAgICAgICByZXR1cm4gc3Ryb2tlRGFzaEFycmF5VG9DU1NWYWx1ZUxpc3Qoc3ZnU3R5bGUtPnN0
cm9rZURhc2hBcnJheSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZURhc2hvZmZz
ZXQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCShy
ZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDE3ICsyMzEsMzYgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KAogICAgICAgICAvLyBlbmQgb2YgaWRlbnQgb25seSBw
cm9wZXJ0aWVzCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgogICAgICAgICB7Ci0gICAg
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChmaWxsUGFpbnQsIEZpbGxQYWludCkK
LSAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQotICAgICAgICAgICAgICAgIHN2
Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSkpOworICAg
ICAgICAgICAgaWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgICAgIGNvbnN0IFNWR1JlbmRl
clN0eWxlKiBzdmdQYXJlbnRTdHlsZSA9IG1fcGFyZW50U3R5bGUtPnN2Z1N0eWxlKCk7CisgICAg
ICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZpbGxQYWludChzdmdQYXJlbnRTdHlsZS0+ZmlsbFBh
aW50VHlwZSgpLCBzdmdQYXJlbnRTdHlsZS0+ZmlsbFBhaW50Q29sb3IoKSwgc3ZnUGFyZW50U3R5
bGUtPmZpbGxQYWludFVyaSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoaXNJbml0aWFsKSB7CisgICAgICAgICAgICAgICAgc3Znc3R5
bGUtPnNldEZpbGxQYWludChTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZpbGxQYWludFR5cGUoKSwg
U1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRDb2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbEZpbGxQYWludFVyaSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkgeworICAgICAgICAg
ICAgICAgIFNWR1BhaW50KiBzdmdQYWludCA9IHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUp
OworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3ZnUGFpbnQtPnBhaW50
VHlwZSgpLCBjb2xvckZyb21TVkdDb2xvckNTU1ZhbHVlKHN2Z1BhaW50LCBtX3N0eWxlLT5jb2xv
cigpKSwgc3ZnUGFpbnQtPnVyaSgpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6CiAgICAgICAgIHsK
LSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0cm9rZVBhaW50LCBTdHJv
a2VQYWludCkKLSAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQotICAgICAgICAg
ICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQYWludChzdGF0aWNfY2FzdDxTVkdQYWludCo+KHZh
bHVlKSk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnUGFyZW50U3R5bGUgPSBtX3BhcmVu
dFN0eWxlLT5zdmdTdHlsZSgpOworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQ
YWludChzdmdQYXJlbnRTdHlsZS0+c3Ryb2tlUGFpbnRUeXBlKCksIHN2Z1BhcmVudFN0eWxlLT5z
dHJva2VQYWludENvbG9yKCksIHN2Z1BhcmVudFN0eWxlLT5zdHJva2VQYWludFVyaSgpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNJ
bml0aWFsKSB7CisgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVBhaW50KFNWR1Jl
bmRlclN0eWxlOjppbml0aWFsU3Ryb2tlUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0eWxlOjppbml0
aWFsU3Ryb2tlUGFpbnRDb2xvcigpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50
VXJpKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKSB7CisgICAgICAgICAgICAgICAgU1ZHUGFpbnQq
IHN2Z1BhaW50ID0gc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgc3Znc3R5bGUtPnNldFN0cm9rZVBhaW50KHN2Z1BhaW50LT5wYWludFR5cGUoKSwgY29sb3JG
cm9tU1ZHQ29sb3JDU1NWYWx1ZShzdmdQYWludCwgbV9zdHlsZS0+Y29sb3IoKSksIHN2Z1BhaW50
LT51cmkoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlV2lkdGg6CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDc5
Nzc3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw5IEBAIFN0eWxlRGlmZmVyZW5jZSBTVkdS
ZW5kZXJTdHlsZTo6ZGlmZihjb24KICAgICAvLyBTb21lIHN0cm9rZSBwcm9wZXJ0aWVzLCByZXF1
aXJlcyByZWxheW91dHMsIGFzIHRoZSBjYWNoZWQgc3Ryb2tlIGJvdW5kYXJpZXMgbmVlZCB0byBi
ZSByZWNhbGN1bGF0ZWQuCiAgICAgaWYgKHN0cm9rZSAhPSBvdGhlci0+c3Ryb2tlKSB7CiAgICAg
ICAgIGlmIChzdHJva2UtPndpZHRoICE9IG90aGVyLT5zdHJva2UtPndpZHRoCi0gICAgICAgICAg
ICB8fCBzdHJva2UtPnBhaW50ICE9IG90aGVyLT5zdHJva2UtPnBhaW50CisgICAgICAgICAgICB8
fCBzdHJva2UtPnBhaW50VHlwZSAhPSBvdGhlci0+c3Ryb2tlLT5wYWludFR5cGUKKyAgICAgICAg
ICAgIHx8IHN0cm9rZS0+cGFpbnRDb2xvciAhPSBvdGhlci0+c3Ryb2tlLT5wYWludENvbG9yCisg
ICAgICAgICAgICB8fCBzdHJva2UtPnBhaW50VXJpICE9IG90aGVyLT5zdHJva2UtPnBhaW50VXJp
CiAgICAgICAgICAgICB8fCBzdHJva2UtPm1pdGVyTGltaXQgIT0gb3RoZXItPnN0cm9rZS0+bWl0
ZXJMaW1pdAogICAgICAgICAgICAgfHwgc3Ryb2tlLT5kYXNoQXJyYXkgIT0gb3RoZXItPnN0cm9r
ZS0+ZGFzaEFycmF5CiAgICAgICAgICAgICB8fCBzdHJva2UtPmRhc2hPZmZzZXQgIT0gb3RoZXIt
PnN0cm9rZS0+ZGFzaE9mZnNldCkKQEAgLTE5MSw3ICsxOTMsNyBAQCBTdHlsZURpZmZlcmVuY2Ug
U1ZHUmVuZGVyU3R5bGU6OmRpZmYoY29uCiAgICAgfQogCiAgICAgLy8gSWYgZmlsbCBjaGFuZ2Vz
LCB3ZSBqdXN0IG5lZWQgdG8gcmVwYWludC4gRmlsbCBib3VuZGFyaWVzIGFyZSBub3QgaW5mbHVl
bmNlZCBieSB0aGlzLCBvbmx5IGJ5IHRoZSBQYXRoLCB0aGF0IFJlbmRlclNWR1BhdGggY29udGFp
bnMuCi0gICAgaWYgKGZpbGwgIT0gb3RoZXItPmZpbGwpCisgICAgaWYgKGZpbGwtPnBhaW50VHlw
ZSAhPSBvdGhlci0+ZmlsbC0+cGFpbnRUeXBlIHx8IGZpbGwtPnBhaW50Q29sb3IgIT0gb3RoZXIt
PmZpbGwtPnBhaW50Q29sb3IgfHwgZmlsbC0+cGFpbnRVcmkgIT0gb3RoZXItPmZpbGwtPnBhaW50
VXJpKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKIAogICAgIC8vIElm
IGdyYWRpZW50IHN0b3BzIGNoYW5nZSwgd2UganVzdCBuZWVkIHRvIHJlcGFpbnQuIFN0eWxlIHVw
ZGF0ZXMgYXJlIGFscmVhZHkgaGFuZGxlZCB0aHJvdWdoIFJlbmRlclNWR0dyYWRpZW50U1RvcC4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHls
ZS5oCShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
VkdSZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxNSArNzAsMTkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBTVkdXcml0aW5nTW9kZSBpbml0aWFsV3JpdGluZ01vZGUoKSB7IHJldHVy
biBXTV9MUlRCOyB9CiAgICAgc3RhdGljIEVHbHlwaE9yaWVudGF0aW9uIGluaXRpYWxHbHlwaE9y
aWVudGF0aW9uSG9yaXpvbnRhbCgpIHsgcmV0dXJuIEdPXzBERUc7IH0KICAgICBzdGF0aWMgRUds
eXBoT3JpZW50YXRpb24gaW5pdGlhbEdseXBoT3JpZW50YXRpb25WZXJ0aWNhbCgpIHsgcmV0dXJu
IEdPX0FVVE87IH0KLSAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZpbGxPcGFjaXR5KCkgeyByZXR1
cm4gMS4wZjsgfQotICAgIHN0YXRpYyBTVkdQYWludCogaW5pdGlhbEZpbGxQYWludCgpIHsgcmV0
dXJuIFNWR1BhaW50OjpkZWZhdWx0RmlsbCgpOyB9Ci0gICAgc3RhdGljIGZsb2F0IGluaXRpYWxT
dHJva2VPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQotICAgIHN0YXRpYyBTVkdQYWludCogaW5p
dGlhbFN0cm9rZVBhaW50KCkgeyByZXR1cm4gU1ZHUGFpbnQ6OmRlZmF1bHRTdHJva2UoKTsgfQor
ICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsRmlsbE9wYWNpdHkoKSB7IHJldHVybiAxOyB9CisgICAg
c3RhdGljIFNWR1BhaW50OjpTVkdQYWludFR5cGUgaW5pdGlhbEZpbGxQYWludFR5cGUoKSB7IHJl
dHVybiBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xPUjsgfQorICAgIHN0YXRpYyBDb2xv
ciBpbml0aWFsRmlsbFBhaW50Q29sb3IoKSB7IHJldHVybiBDb2xvcjo6YmxhY2s7IH0KKyAgICBz
dGF0aWMgU3RyaW5nIGluaXRpYWxGaWxsUGFpbnRVcmkoKSB7IHJldHVybiBTdHJpbmcoKTsgfQor
ICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsU3Ryb2tlT3BhY2l0eSgpIHsgcmV0dXJuIDE7IH0KKyAg
ICBzdGF0aWMgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSBpbml0aWFsU3Ryb2tlUGFpbnRUeXBlKCkg
eyByZXR1cm4gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfTk9ORTsgfQorICAgIHN0YXRpYyBDb2xv
ciBpbml0aWFsU3Ryb2tlUGFpbnRDb2xvcigpIHsgcmV0dXJuIENvbG9yKCk7IH0KKyAgICBzdGF0
aWMgU3RyaW5nIGluaXRpYWxTdHJva2VQYWludFVyaSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CiAg
ICAgc3RhdGljIFZlY3RvcjxTVkdMZW5ndGg+IGluaXRpYWxTdHJva2VEYXNoQXJyYXkoKSB7IHJl
dHVybiBWZWN0b3I8U1ZHTGVuZ3RoPigpOyB9Ci0gICAgc3RhdGljIGZsb2F0IGluaXRpYWxTdHJv
a2VNaXRlckxpbWl0KCkgeyByZXR1cm4gNC4wZjsgfQotICAgIHN0YXRpYyBmbG9hdCBpbml0aWFs
U3RvcE9wYWNpdHkoKSB7IHJldHVybiAxLjBmOyB9CisgICAgc3RhdGljIGZsb2F0IGluaXRpYWxT
dHJva2VNaXRlckxpbWl0KCkgeyByZXR1cm4gNDsgfQorICAgIHN0YXRpYyBmbG9hdCBpbml0aWFs
U3RvcE9wYWNpdHkoKSB7IHJldHVybiAxOyB9CiAgICAgc3RhdGljIENvbG9yIGluaXRpYWxTdG9w
Q29sb3IoKSB7IHJldHVybiBDb2xvcigwLCAwLCAwKTsgfQotICAgIHN0YXRpYyBmbG9hdCBpbml0
aWFsRmxvb2RPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQorICAgIHN0YXRpYyBmbG9hdCBpbml0
aWFsRmxvb2RPcGFjaXR5KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBDb2xvciBpbml0aWFs
Rmxvb2RDb2xvcigpIHsgcmV0dXJuIENvbG9yKDAsIDAsIDApOyB9CiAgICAgc3RhdGljIENvbG9y
IGluaXRpYWxMaWdodGluZ0NvbG9yKCkgeyByZXR1cm4gQ29sb3IoMjU1LCAyNTUsIDI1NSk7IH0K
ICAgICBzdGF0aWMgU2hhZG93RGF0YSogaW5pdGlhbFNoYWRvdygpIHsgcmV0dXJuIDA7IH0KQEAg
LTE1MCwxMCArMTU0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZpbGwuYWNjZXNzKCktPm9w
YWNpdHkgPSBvYmo7CiAgICAgfQogCi0gICAgdm9pZCBzZXRGaWxsUGFpbnQoUGFzc1JlZlB0cjxT
VkdQYWludD4gb2JqKQorICAgIHZvaWQgc2V0RmlsbFBhaW50KFNWR1BhaW50OjpTVkdQYWludFR5
cGUgdHlwZSwgY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHVyaSkKICAgICB7Ci0g
ICAgICAgIGlmICghKGZpbGwtPnBhaW50ID09IG9iaikpCi0gICAgICAgICAgICBmaWxsLmFjY2Vz
cygpLT5wYWludCA9IG9iajsKKyAgICAgICAgaWYgKCEoZmlsbC0+cGFpbnRUeXBlID09IHR5cGUp
KQorICAgICAgICAgICAgZmlsbC5hY2Nlc3MoKS0+cGFpbnRUeXBlID0gdHlwZTsKKyAgICAgICAg
aWYgKCEoZmlsbC0+cGFpbnRDb2xvciA9PSBjb2xvcikpCisgICAgICAgICAgICBmaWxsLmFjY2Vz
cygpLT5wYWludENvbG9yID0gY29sb3I7CisgICAgICAgIGlmICghKGZpbGwtPnBhaW50VXJpID09
IHVyaSkpCisgICAgICAgICAgICBmaWxsLmFjY2VzcygpLT5wYWludFVyaSA9IHVyaTsKICAgICB9
CiAKICAgICB2b2lkIHNldFN0cm9rZU9wYWNpdHkoZmxvYXQgb2JqKQpAQCAtMTYyLDEwICsxNzAs
MTQgQEAgcHVibGljOgogICAgICAgICAgICAgc3Ryb2tlLmFjY2VzcygpLT5vcGFjaXR5ID0gb2Jq
OwogICAgIH0KIAotICAgIHZvaWQgc2V0U3Ryb2tlUGFpbnQoUGFzc1JlZlB0cjxTVkdQYWludD4g
b2JqKQorICAgIHZvaWQgc2V0U3Ryb2tlUGFpbnQoU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSB0eXBl
LCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IFN0cmluZyYgdXJpKQogICAgIHsKLSAgICAgICAg
aWYgKCEoc3Ryb2tlLT5wYWludCA9PSBvYmopKQotICAgICAgICAgICAgc3Ryb2tlLmFjY2Vzcygp
LT5wYWludCA9IG9iajsKKyAgICAgICAgaWYgKCEoc3Ryb2tlLT5wYWludFR5cGUgPT0gdHlwZSkp
CisgICAgICAgICAgICBzdHJva2UuYWNjZXNzKCktPnBhaW50VHlwZSA9IHR5cGU7CisgICAgICAg
IGlmICghKHN0cm9rZS0+cGFpbnRDb2xvciA9PSBjb2xvcikpCisgICAgICAgICAgICBzdHJva2Uu
YWNjZXNzKCktPnBhaW50Q29sb3IgPSBjb2xvcjsKKyAgICAgICAgaWYgKCEoc3Ryb2tlLT5wYWlu
dFVyaSA9PSB1cmkpKQorICAgICAgICAgICAgc3Ryb2tlLmFjY2VzcygpLT5wYWludFVyaSA9IHVy
aTsKICAgICB9CiAKICAgICB2b2lkIHNldFN0cm9rZURhc2hBcnJheShjb25zdCBWZWN0b3I8U1ZH
TGVuZ3RoPiYgb2JqKQpAQCAtMjkzLDkgKzMwNSwxMyBAQCBwdWJsaWM6CiAgICAgRUdseXBoT3Jp
ZW50YXRpb24gZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWwoKSBjb25zdCB7IHJldHVybiAoRUds
eXBoT3JpZW50YXRpb24pIHN2Z19pbmhlcml0ZWRfZmxhZ3MuX2dseXBoT3JpZW50YXRpb25Ib3Jp
em9udGFsOyB9CiAgICAgRUdseXBoT3JpZW50YXRpb24gZ2x5cGhPcmllbnRhdGlvblZlcnRpY2Fs
KCkgY29uc3QgeyByZXR1cm4gKEVHbHlwaE9yaWVudGF0aW9uKSBzdmdfaW5oZXJpdGVkX2ZsYWdz
Ll9nbHlwaE9yaWVudGF0aW9uVmVydGljYWw7IH0KICAgICBmbG9hdCBmaWxsT3BhY2l0eSgpIGNv
bnN0IHsgcmV0dXJuIGZpbGwtPm9wYWNpdHk7IH0KLSAgICBTVkdQYWludCogZmlsbFBhaW50KCkg
Y29uc3QgeyByZXR1cm4gZmlsbC0+cGFpbnQuZ2V0KCk7IH0KKyAgICBjb25zdCBTVkdQYWludDo6
U1ZHUGFpbnRUeXBlJiBmaWxsUGFpbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gZmlsbC0+cGFpbnRU
eXBlOyB9CisgICAgY29uc3QgQ29sb3ImIGZpbGxQYWludENvbG9yKCkgY29uc3QgeyByZXR1cm4g
ZmlsbC0+cGFpbnRDb2xvcjsgfQorICAgIGNvbnN0IFN0cmluZyYgZmlsbFBhaW50VXJpKCkgY29u
c3QgeyByZXR1cm4gZmlsbC0+cGFpbnRVcmk7IH0gICAgCiAgICAgZmxvYXQgc3Ryb2tlT3BhY2l0
eSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+b3BhY2l0eTsgfQotICAgIFNWR1BhaW50KiBzdHJv
a2VQYWludCgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+cGFpbnQuZ2V0KCk7IH0KKyAgICBjb25z
dCBTVkdQYWludDo6U1ZHUGFpbnRUeXBlJiBzdHJva2VQYWludFR5cGUoKSBjb25zdCB7IHJldHVy
biBzdHJva2UtPnBhaW50VHlwZTsgfQorICAgIGNvbnN0IENvbG9yJiBzdHJva2VQYWludENvbG9y
KCkgY29uc3QgeyByZXR1cm4gc3Ryb2tlLT5wYWludENvbG9yOyB9CisgICAgY29uc3QgU3RyaW5n
JiBzdHJva2VQYWludFVyaSgpIGNvbnN0IHsgcmV0dXJuIHN0cm9rZS0+cGFpbnRVcmk7IH0KICAg
ICBWZWN0b3I8U1ZHTGVuZ3RoPiBzdHJva2VEYXNoQXJyYXkoKSBjb25zdCB7IHJldHVybiBzdHJv
a2UtPmRhc2hBcnJheTsgfQogICAgIGZsb2F0IHN0cm9rZU1pdGVyTGltaXQoKSBjb25zdCB7IHJl
dHVybiBzdHJva2UtPm1pdGVyTGltaXQ7IH0KICAgICBTVkdMZW5ndGggc3Ryb2tlV2lkdGgoKSBj
b25zdCB7IHJldHVybiBzdHJva2UtPndpZHRoOyB9CkBAIC0zMjAsOCArMzM2LDggQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzTWFza2VyKCkgY29uc3QgeyByZXR1cm4gIW1hc2tlclJlc291cmNlKCku
aXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiAhZmlsdGVy
UmVzb3VyY2UoKS5pc0VtcHR5KCk7IH0KICAgICBib29sIGhhc01hcmtlcnMoKSBjb25zdCB7IHJl
dHVybiAhbWFya2VyU3RhcnRSZXNvdXJjZSgpLmlzRW1wdHkoKSB8fCAhbWFya2VyTWlkUmVzb3Vy
Y2UoKS5pc0VtcHR5KCkgfHwgIW1hcmtlckVuZFJlc291cmNlKCkuaXNFbXB0eSgpOyB9Ci0gICAg
Ym9vbCBoYXNTdHJva2UoKSBjb25zdCB7IHJldHVybiBzdHJva2VQYWludCgpLT5wYWludFR5cGUo
KSAhPSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9OT05FOyB9Ci0gICAgYm9vbCBoYXNGaWxsKCkg
Y29uc3QgeyByZXR1cm4gZmlsbFBhaW50KCktPnBhaW50VHlwZSgpICE9IFNWR1BhaW50OjpTVkdf
UEFJTlRUWVBFX05PTkU7IH0KKyAgICBib29sIGhhc1N0cm9rZSgpIGNvbnN0IHsgcmV0dXJuIHN0
cm9rZVBhaW50VHlwZSgpICE9IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX05PTkU7IH0KKyAgICBi
b29sIGhhc0ZpbGwoKSBjb25zdCB7IHJldHVybiBmaWxsUGFpbnRUeXBlKCkgIT0gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfTk9ORTsgfQogICAgIGJvb2wgaXNWZXJ0aWNhbFdyaXRpbmdNb2RlKCkg
Y29uc3QgeyByZXR1cm4gd3JpdGluZ01vZGUoKSA9PSBXTV9UQlJMIHx8IHdyaXRpbmdNb2RlKCkg
PT0gV01fVEI7IH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAJKHJldmlzaW9uIDc5Nzc3
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDM1ICszNywyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFN0eWxlRmlsbERhdGE6OlN0eWxlRmlsbERhdGEoKQogICAgIDogb3BhY2l0eShTVkdSZW5k
ZXJTdHlsZTo6aW5pdGlhbEZpbGxPcGFjaXR5KCkpCi0gICAgLCBwYWludChTVkdSZW5kZXJTdHls
ZTo6aW5pdGlhbEZpbGxQYWludCgpKQorICAgICwgcGFpbnRUeXBlKFNWR1JlbmRlclN0eWxlOjpp
bml0aWFsRmlsbFBhaW50VHlwZSgpKQorICAgICwgcGFpbnRDb2xvcihTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbEZpbGxQYWludENvbG9yKCkpCisgICAgLCBwYWludFVyaShTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbEZpbGxQYWludFVyaSgpKQogewogfQogCiBTdHlsZUZpbGxEYXRhOjpTdHlsZUZpbGxE
YXRhKGNvbnN0IFN0eWxlRmlsbERhdGEmIG90aGVyKQogICAgIDogUmVmQ291bnRlZDxTdHlsZUZp
bGxEYXRhPigpCiAgICAgLCBvcGFjaXR5KG90aGVyLm9wYWNpdHkpCi0gICAgLCBwYWludChvdGhl
ci5wYWludCkKKyAgICAsIHBhaW50VHlwZShvdGhlci5wYWludFR5cGUpCisgICAgLCBwYWludENv
bG9yKG90aGVyLnBhaW50Q29sb3IpCisgICAgLCBwYWludFVyaShvdGhlci5wYWludFVyaSkKIHsK
IH0KIAogYm9vbCBTdHlsZUZpbGxEYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlRmlsbERhdGEm
IG90aGVyKSBjb25zdAogewotICAgIGlmIChvcGFjaXR5ICE9IG90aGVyLm9wYWNpdHkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghcGFpbnQgfHwgIW90aGVyLnBhaW50KQotICAg
ICAgICByZXR1cm4gcGFpbnQgPT0gb3RoZXIucGFpbnQ7Ci0KLSAgICBpZiAocGFpbnQtPnBhaW50
VHlwZSgpICE9IG90aGVyLnBhaW50LT5wYWludFR5cGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKHBhaW50LT5wYWludFR5cGUoKSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9VUkkpCi0gICAgICAgIHJldHVybiBwYWludC0+dXJpKCkgPT0gb3RoZXIucGFpbnQtPnVyaSgp
OwotCi0gICAgaWYgKHBhaW50LT5wYWludFR5cGUoKSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9SR0JDT0xPUikKLSAgICAgICAgcmV0dXJuIHBhaW50LT5jb2xvcigpID09IG90aGVyLnBhaW50
LT5jb2xvcigpOwotCi0gICAgcmV0dXJuIHBhaW50ID09IG90aGVyLnBhaW50OworICAgIHJldHVy
biBvcGFjaXR5ID09IG90aGVyLm9wYWNpdHkgCisgICAgICAgICYmIHBhaW50VHlwZSA9PSBvdGhl
ci5wYWludFR5cGUKKyAgICAgICAgJiYgcGFpbnRDb2xvciA9PSBvdGhlci5wYWludENvbG9yCisg
ICAgICAgICYmIHBhaW50VXJpID09IG90aGVyLnBhaW50VXJpOwogfQogCiBTdHlsZVN0cm9rZURh
dGE6OlN0eWxlU3Ryb2tlRGF0YSgpCkBAIC03NCw3ICs2Niw5IEBAIFN0eWxlU3Ryb2tlRGF0YTo6
U3R5bGVTdHJva2VEYXRhKCkKICAgICAsIHdpZHRoKFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ry
b2tlV2lkdGgoKSkKICAgICAsIGRhc2hPZmZzZXQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJv
a2VEYXNoT2Zmc2V0KCkpCiAgICAgLCBkYXNoQXJyYXkoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxT
dHJva2VEYXNoQXJyYXkoKSkKLSAgICAsIHBhaW50KFNWR1JlbmRlclN0eWxlOjppbml0aWFsU3Ry
b2tlUGFpbnQoKSkKKyAgICAsIHBhaW50VHlwZShTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0cm9r
ZVBhaW50VHlwZSgpKQorICAgICwgcGFpbnRDb2xvcihTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0
cm9rZVBhaW50Q29sb3IoKSkKKyAgICAsIHBhaW50VXJpKFNWR1JlbmRlclN0eWxlOjppbml0aWFs
U3Ryb2tlUGFpbnRVcmkoKSkKIHsKIH0KIApAQCAtODUsMTggKzc5LDIyIEBAIFN0eWxlU3Ryb2tl
RGF0YTo6U3R5bGVTdHJva2VEYXRhKGNvbnN0IFMKICAgICAsIHdpZHRoKG90aGVyLndpZHRoKQog
ICAgICwgZGFzaE9mZnNldChvdGhlci5kYXNoT2Zmc2V0KQogICAgICwgZGFzaEFycmF5KG90aGVy
LmRhc2hBcnJheSkKLSAgICAsIHBhaW50KG90aGVyLnBhaW50KQorICAgICwgcGFpbnRUeXBlKG90
aGVyLnBhaW50VHlwZSkKKyAgICAsIHBhaW50Q29sb3Iob3RoZXIucGFpbnRDb2xvcikKKyAgICAs
IHBhaW50VXJpKG90aGVyLnBhaW50VXJpKQogewogfQogCiBib29sIFN0eWxlU3Ryb2tlRGF0YTo6
b3BlcmF0b3I9PShjb25zdCBTdHlsZVN0cm9rZURhdGEmIG90aGVyKSBjb25zdAogewotICAgIHJl
dHVybiBwYWludCA9PSBvdGhlci5wYWludAotICAgICAgICAmJiB3aWR0aCA9PSBvdGhlci53aWR0
aAorICAgIHJldHVybiB3aWR0aCA9PSBvdGhlci53aWR0aAogICAgICAgICAmJiBvcGFjaXR5ID09
IG90aGVyLm9wYWNpdHkKICAgICAgICAgJiYgbWl0ZXJMaW1pdCA9PSBvdGhlci5taXRlckxpbWl0
CiAgICAgICAgICYmIGRhc2hPZmZzZXQgPT0gb3RoZXIuZGFzaE9mZnNldAotICAgICAgICAmJiBk
YXNoQXJyYXkgPT0gb3RoZXIuZGFzaEFycmF5OworICAgICAgICAmJiBkYXNoQXJyYXkgPT0gb3Ro
ZXIuZGFzaEFycmF5CisgICAgICAgICYmIHBhaW50VHlwZSA9PSBvdGhlci5wYWludFR5cGUKKyAg
ICAgICAgJiYgcGFpbnRDb2xvciA9PSBvdGhlci5wYWludENvbG9yCisgICAgICAgICYmIHBhaW50
VXJpID09IG90aGVyLnBhaW50VXJpOwogfQogCiBTdHlsZVN0b3BEYXRhOjpTdHlsZVN0b3BEYXRh
KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURl
ZnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGVEZWZzLmgJKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsy
OSw4IEBACiAjZGVmaW5lIFNWR1JlbmRlclN0eWxlRGVmc19oCiAKICNpZiBFTkFCTEUoU1ZHKQot
I2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJTVkdMZW5ndGguaCIKKyNpbmNsdWRlICJTVkdQYWludC5oIgogI2luY2x1ZGUgIlNoYWRvd0Rh
dGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KQEAgLTk4LDcgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVGaWxsRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFN0eWxlRmlsbERhdGEpOyB9CiAgICAgICAgIFBhc3NSZWZQdHI8U3R5bGVG
aWxsRGF0YT4gY29weSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUZpbGxEYXRh
KCp0aGlzKSk7IH0KLSAgICAgICAgCisKICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0
eWxlRmlsbERhdGEmKSBjb25zdDsKICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxl
RmlsbERhdGEmIG90aGVyKSBjb25zdAogICAgICAgICB7CkBAIC0xMDYsNyArMTA1LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKLSAg
ICAgICAgUmVmUHRyPFNWR1BhaW50PiBwYWludDsKKyAgICAgICAgU1ZHUGFpbnQ6OlNWR1BhaW50
VHlwZSBwYWludFR5cGU7CisgICAgICAgIENvbG9yIHBhaW50Q29sb3I7CisgICAgICAgIFN0cmlu
ZyBwYWludFVyaTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFN0eWxlRmlsbERhdGEoKTsKQEAg
LTEzMSw3ICsxMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFNWR0xlbmd0aCBk
YXNoT2Zmc2V0OwogICAgICAgICBWZWN0b3I8U1ZHTGVuZ3RoPiBkYXNoQXJyYXk7CiAKLSAgICAg
ICAgUmVmUHRyPFNWR1BhaW50PiBwYWludDsKKyAgICAgICAgU1ZHUGFpbnQ6OlNWR1BhaW50VHlw
ZSBwYWludFR5cGU7CisgICAgICAgIENvbG9yIHBhaW50Q29sb3I7CisgICAgICAgIFN0cmluZyBw
YWludFVyaTsKIAogICAgIHByaXZhdGU6ICAgICAgICAKICAgICAgICAgU3R5bGVTdHJva2VEYXRh
KCk7CkBAIC0yNjIsNSArMjY1LDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKLQogI2VuZGlmIC8vIFNWR1JlbmRl
clN0eWxlRGVmc19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlLmNwcAkocmV2aXNpb24gNzk3NzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTEsMzMgKzUxLDM2IEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyU1ZHUmVzb3VyY2UqIHJlcXVlc3QK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFNWR1BhaW50KiBwYWludCA9IG1v
ZGUgPT0gQXBwbHlUb0ZpbGxNb2RlID8gc3ZnU3R5bGUtPmZpbGxQYWludCgpIDogc3ZnU3R5bGUt
PnN0cm9rZVBhaW50KCk7Ci0gICAgQVNTRVJUKHBhaW50KTsKLQotICAgIFNWR1BhaW50OjpTVkdQ
YWludFR5cGUgcGFpbnRUeXBlID0gcGFpbnQtPnBhaW50VHlwZSgpOworICAgIGJvb2wgYXBwbHlU
b0ZpbGwgPSBtb2RlID09IEFwcGx5VG9GaWxsTW9kZTsKKyAgICBTVkdQYWludDo6U1ZHUGFpbnRU
eXBlIHBhaW50VHlwZSA9IGFwcGx5VG9GaWxsID8gc3ZnU3R5bGUtPmZpbGxQYWludFR5cGUoKSA6
IHN2Z1N0eWxlLT5zdHJva2VQYWludFR5cGUoKTsKICAgICBpZiAocGFpbnRUeXBlID09IFNWR1Bh
aW50OjpTVkdfUEFJTlRUWVBFX05PTkUpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgQ29sb3Ig
Y29sb3I7Ci0gICAgaWYgKHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JD
T0xPUgotICAgICAgICB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdC
Q09MT1JfSUNDQ09MT1IKLSAgICAgICAgfHwgcGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJ
TlRUWVBFX1VSSV9SR0JDT0xPUgotICAgICAgICB8fCBwYWludFR5cGUgPT0gU1ZHUGFpbnQ6OlNW
R19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SKQotICAgICAgICBjb2xvciA9IHBhaW50
LT5jb2xvcigpOwotICAgIGVsc2UgaWYgKHBhaW50VHlwZSA9PSBTVkdQYWludDo6U1ZHX1BBSU5U
VFlQRV9DVVJSRU5UQ09MT1IgfHwgcGFpbnRUeXBlID09IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBF
X1VSSV9DVVJSRU5UQ09MT1IpCi0gICAgICAgIGNvbG9yID0gc3R5bGUtPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKKyAgICBzd2l0Y2ggKHBhaW50VHlwZSkgeworICAg
IGNhc2UgU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SOgorICAgIGNhc2UgU1ZH
UGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BB
SU5UVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUjoKKyAgICBjYXNlIFNWR1BhaW50OjpTVkdfUEFJTlRU
WVBFX1VSSV9DVVJSRU5UQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9V
UklfUkdCQ09MT1I6CisgICAgY2FzZSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09M
T1JfSUNDQ09MT1I6CisgICAgICAgIGNvbG9yID0gYXBwbHlUb0ZpbGwgPyBzdmdTdHlsZS0+Zmls
bFBhaW50Q29sb3IoKSA6IHN2Z1N0eWxlLT5zdHJva2VQYWludENvbG9yKCk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgaWYgKHN0eWxlLT5pbnNpZGVMaW5rKCkg
PT0gSW5zaWRlVmlzaXRlZExpbmspIHsKICAgICAgICAgUmVuZGVyU3R5bGUqIHZpc2l0ZWRTdHls
ZSA9IHN0eWxlLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShWSVNJVEVEX0xJTkspOwogICAgICAgICBB
U1NFUlQodmlzaXRlZFN0eWxlKTsKIAotICAgICAgICBpZiAoU1ZHUGFpbnQqIHZpc2l0ZWRQYWlu
dCA9IG1vZGUgPT0gQXBwbHlUb0ZpbGxNb2RlID8gdmlzaXRlZFN0eWxlLT5zdmdTdHlsZSgpLT5m
aWxsUGFpbnQoKSA6IHZpc2l0ZWRTdHlsZS0+c3ZnU3R5bGUoKS0+c3Ryb2tlUGFpbnQoKSkgewot
ICAgICAgICAgICAgLy8gRm9yIFNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SLCAnY29sb3InIGFs
cmVhZHkgY29udGFpbnMgdGhlICd2aXNpdGVkQ29sb3InLgotICAgICAgICAgICAgaWYgKHZpc2l0
ZWRQYWludC0+cGFpbnRUeXBlKCkgPCBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUklfTk9ORSAm
JiB2aXNpdGVkUGFpbnQtPnBhaW50VHlwZSgpICE9IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX0NV
UlJFTlRDT0xPUikgewotICAgICAgICAgICAgICAgIGNvbnN0IENvbG9yJiB2aXNpdGVkQ29sb3Ig
PSB2aXNpdGVkUGFpbnQtPmNvbG9yKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHZpc2l0ZWRDb2xv
ci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQ29sb3IodmlzaXRlZENv
bG9yLnJlZCgpLCB2aXNpdGVkQ29sb3IuZ3JlZW4oKSwgdmlzaXRlZENvbG9yLmJsdWUoKSwgY29s
b3IuYWxwaGEoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxl
KiBzdmdWaXNpdGVkU3R5bGUgPSB2aXNpdGVkU3R5bGUtPnN2Z1N0eWxlKCk7CisgICAgICAgIFNW
R1BhaW50OjpTVkdQYWludFR5cGUgdmlzaXRlZFBhaW50VHlwZSA9IGFwcGx5VG9GaWxsID8gc3Zn
VmlzaXRlZFN0eWxlLT5maWxsUGFpbnRUeXBlKCkgOiBzdmdWaXNpdGVkU3R5bGUtPnN0cm9rZVBh
aW50VHlwZSgpOworCisgICAgICAgIC8vIEZvciBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUiwg
J2NvbG9yJyBhbHJlYWR5IGNvbnRhaW5zIHRoZSAndmlzaXRlZENvbG9yJy4KKyAgICAgICAgaWYg
KHZpc2l0ZWRQYWludFR5cGUgPCBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUklfTk9ORSAmJiB2
aXNpdGVkUGFpbnRUeXBlICE9IFNWR1BhaW50OjpTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUikg
eworICAgICAgICAgICAgY29uc3QgQ29sb3ImIHZpc2l0ZWRDb2xvciA9IGFwcGx5VG9GaWxsID8g
c3ZnVmlzaXRlZFN0eWxlLT5maWxsUGFpbnRDb2xvcigpIDogc3ZnVmlzaXRlZFN0eWxlLT5zdHJv
a2VQYWludENvbG9yKCk7CisgICAgICAgICAgICBpZiAodmlzaXRlZENvbG9yLmlzVmFsaWQoKSkK
KyAgICAgICAgICAgICAgICBjb2xvciA9IENvbG9yKHZpc2l0ZWRDb2xvci5yZWQoKSwgdmlzaXRl
ZENvbG9yLmdyZWVuKCksIHZpc2l0ZWRDb2xvci5ibHVlKCksIGNvbG9yLmFscGhhKCkpOwogICAg
ICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCShyZXZpc2lvbiA3OTc3NykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDggKzI1NCw4IEBAIGJvb2wgUmVuZGVyU1ZHUmVz
b3VyY2VDbGlwcGVyOjpkcmF3Q29udGUKICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBvbGRS
ZW5kZXJTdHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwogICAgICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IG5ld1JlbmRlclN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKG9sZFJlbmRlclN0eWxlLmdl
dCgpKTsKICAgICAgICAgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gbmV3UmVuZGVyU3R5bGUu
Z2V0KCktPmFjY2Vzc1NWR1N0eWxlKCk7Ci0gICAgICAgIHN2Z1N0eWxlLT5zZXRGaWxsUGFpbnQo
U1ZHUGFpbnQ6OmRlZmF1bHRGaWxsKCkpOwotICAgICAgICBzdmdTdHlsZS0+c2V0U3Ryb2tlUGFp
bnQoU1ZHUGFpbnQ6OmRlZmF1bHRTdHJva2UoKSk7CisgICAgICAgIHN2Z1N0eWxlLT5zZXRGaWxs
UGFpbnQoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxsUGFpbnRUeXBlKCksIFNWR1JlbmRlclN0
eWxlOjppbml0aWFsRmlsbFBhaW50Q29sb3IoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxGaWxs
UGFpbnRVcmkoKSk7CisgICAgICAgIHN2Z1N0eWxlLT5zZXRTdHJva2VQYWludChTVkdSZW5kZXJT
dHlsZTo6aW5pdGlhbFN0cm9rZVBhaW50VHlwZSgpLCBTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbFN0
cm9rZVBhaW50Q29sb3IoKSwgU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VQYWludFVyaSgp
KTsKICAgICAgICAgc3ZnU3R5bGUtPnNldEZpbGxSdWxlKG5ld0NsaXBSdWxlKTsKICAgICAgICAg
bmV3UmVuZGVyU3R5bGUuZ2V0KCktPnNldE9wYWNpdHkoMS4wZik7CiAgICAgICAgIHN2Z1N0eWxl
LT5zZXRGaWxsT3BhY2l0eSgxLjBmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVzb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAJKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIs
MTUgKzE1MiwxMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB0YXJnZXRSZWZlcmVuY2VGcm9tCiAg
ICAgcmV0dXJuIFNWR1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KHRhcmdldCk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqIHBhaW50aW5nUmVzb3VyY2VGcm9t
U1ZHUGFpbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBTVkdQYWludCogcGFpbnQsIEF0b21pY1N0cmlu
ZyYgaWQsIGJvb2wmIGhhc1BlbmRpbmdSZXNvdXJjZSkKK3N0YXRpYyBpbmxpbmUgUmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXIqIHBhaW50aW5nUmVzb3VyY2VGcm9tU1ZHUGFpbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBTVkdQYWludDo6U1ZHUGFpbnRUeXBlJiBwYWludFR5cGUsIGNvbnN0
IFN0cmluZyYgcGFpbnRVcmksIEF0b21pY1N0cmluZyYgaWQsIGJvb2wmIGhhc1BlbmRpbmdSZXNv
dXJjZSkKIHsKLSAgICBBU1NFUlQocGFpbnQpOwotCi0gICAgU1ZHUGFpbnQ6OlNWR1BhaW50VHlw
ZSBwYWludFR5cGUgPSBwYWludC0+cGFpbnRUeXBlKCk7CiAgICAgaWYgKHBhaW50VHlwZSAhPSBT
VkdQYWludDo6U1ZHX1BBSU5UVFlQRV9VUkkgJiYgcGFpbnRUeXBlICE9IFNWR1BhaW50OjpTVkdf
UEFJTlRUWVBFX1VSSV9SR0JDT0xPUikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZCA9IFNW
R1VSSVJlZmVyZW5jZTo6Z2V0VGFyZ2V0KHBhaW50LT51cmkoKSk7CisgICAgaWQgPSBTVkdVUklS
ZWZlcmVuY2U6OmdldFRhcmdldChwYWludFVyaSk7CiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VDb250
YWluZXIqIGNvbnRhaW5lciA9IGdldFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyQnlJZChkb2N1
bWVudCwgaWQpOwogICAgIGlmICghY29udGFpbmVyKSB7CiAgICAgICAgIGhhc1BlbmRpbmdSZXNv
dXJjZSA9IHRydWU7CkBAIC0yNTksNyArMjU2LDcgQEAgYm9vbCBTVkdSZXNvdXJjZXM6OmJ1aWxk
Q2FjaGVkUmVzb3VyY2VzKAogICAgICAgICBpZiAoc3R5bGUtPmhhc0ZpbGwoKSkgewogICAgICAg
ICAgICAgYm9vbCBoYXNQZW5kaW5nUmVzb3VyY2UgPSBmYWxzZTsKICAgICAgICAgICAgIEF0b21p
Y1N0cmluZyBpZDsKLSAgICAgICAgICAgIGlmIChzZXRGaWxsKHBhaW50aW5nUmVzb3VyY2VGcm9t
U1ZHUGFpbnQoZG9jdW1lbnQsIHN0eWxlLT5maWxsUGFpbnQoKSwgaWQsIGhhc1BlbmRpbmdSZXNv
dXJjZSkpKQorICAgICAgICAgICAgaWYgKHNldEZpbGwocGFpbnRpbmdSZXNvdXJjZUZyb21TVkdQ
YWludChkb2N1bWVudCwgc3R5bGUtPmZpbGxQYWludFR5cGUoKSwgc3R5bGUtPmZpbGxQYWludFVy
aSgpLCBpZCwgaGFzUGVuZGluZ1Jlc291cmNlKSkpCiAgICAgICAgICAgICAgICAgZm91bmRSZXNv
dXJjZXMgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAoaGFzUGVuZGluZ1Jlc291cmNlKQog
ICAgICAgICAgICAgICAgIHJlZ2lzdGVyUGVuZGluZ1Jlc291cmNlKGV4dGVuc2lvbnMsIGlkLCBl
bGVtZW50KTsKQEAgLTI2OCw3ICsyNjUsNyBAQCBib29sIFNWR1Jlc291cmNlczo6YnVpbGRDYWNo
ZWRSZXNvdXJjZXMoCiAgICAgICAgIGlmIChzdHlsZS0+aGFzU3Ryb2tlKCkpIHsKICAgICAgICAg
ICAgIGJvb2wgaGFzUGVuZGluZ1Jlc291cmNlID0gZmFsc2U7CiAgICAgICAgICAgICBBdG9taWNT
dHJpbmcgaWQ7Ci0gICAgICAgICAgICBpZiAoc2V0U3Ryb2tlKHBhaW50aW5nUmVzb3VyY2VGcm9t
U1ZHUGFpbnQoZG9jdW1lbnQsIHN0eWxlLT5zdHJva2VQYWludCgpLCBpZCwgaGFzUGVuZGluZ1Jl
c291cmNlKSkpCisgICAgICAgICAgICBpZiAoc2V0U3Ryb2tlKHBhaW50aW5nUmVzb3VyY2VGcm9t
U1ZHUGFpbnQoZG9jdW1lbnQsIHN0eWxlLT5zdHJva2VQYWludFR5cGUoKSwgc3R5bGUtPnN0cm9r
ZVBhaW50VXJpKCksIGlkLCBoYXNQZW5kaW5nUmVzb3VyY2UpKSkKICAgICAgICAgICAgICAgICBm
b3VuZFJlc291cmNlcyA9IHRydWU7CiAgICAgICAgICAgICBlbHNlIGlmIChoYXNQZW5kaW5nUmVz
b3VyY2UpCiAgICAgICAgICAgICAgICAgcmVnaXN0ZXJQZW5kaW5nUmVzb3VyY2UoZXh0ZW5zaW9u
cywgaWQsIGVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuY3BwCShyZXZpc2lvbiA3
OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3IoY29uc3QgU3RyaW5n
JgogCiAgICAgbV9jb2xvciA9IGNvbG9yOwogICAgIG1fY29sb3JUeXBlID0gU1ZHX0NPTE9SVFlQ
RV9SR0JDT0xPUjsKLSAgICAvLyBGSVhNRTogQSBmb2xsb3cgdXAgcGF0Y2ggd2lsbCBjYWxsIHZh
bHVlQ2hhbmdlZCgpIGhlcmUuCisgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCiBDb2xv
ciBTVkdDb2xvcjo6Y29sb3JGcm9tUkdCQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0
cmluZykKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTVkdDb2xvcjo6c2V0UkdCQ29sb3JJQ0NDb2xv
cihjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbG9yVHlwZSA9IFNWR19DT0xPUlRZ
UEVfUkdCQ09MT1JfSUNDQ09MT1I7Ci0gICAgLy8gRklYTUU6IEEgZm9sbG93IHVwIHBhdGNoIHdp
bGwgY2FsbCB2YWx1ZUNoYW5nZWQoKSBoZXJlLgorICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
IH0KIAogdm9pZCBTVkdDb2xvcjo6c2V0Q29sb3IodW5zaWduZWQgc2hvcnQgY29sb3JUeXBlLCBj
b25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNWR0NvbG9yOjpzZXRDb2xvcih1bnNp
Z25lZCBzaG9ydCBjCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogQSBm
b2xsb3cgdXAgcGF0Y2ggd2lsbCBjYWxsIHZhbHVlQ2hhbmdlZCgpIGhlcmUuCisgICAgc2V0TmVl
ZHNTdHlsZVJlY2FsYygpOwogICAgIG1fY29sb3JUeXBlID0gdHlwZTsKICAgICBpZiAoIXJlcXVp
cmVzUkdCQ29sb3IpIHsKICAgICAgICAgQVNTRVJUKCFyZXF1aXJlc0lDQ0NvbG9yKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDb2xvci5oCShyZXZpc2lvbiA3OTc3NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDb2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAjZGVmaW5lIFNW
R0NvbG9yX2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NNdXRhYmxlVmFsdWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBSR0JDb2xvcjsKIAotY2xhc3MgU1ZHQ29sb3IgOiBwdWJsaWMgQ1NTVmFsdWUgewor
Y2xhc3MgU1ZHQ29sb3IgOiBwdWJsaWMgQ1NTTXV0YWJsZVZhbHVlIHsKIHB1YmxpYzoKICAgICBl
bnVtIFNWR0NvbG9yVHlwZSB7CiAgICAgICAgIFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDAsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFpbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5jcHAJKHJldmlzaW9uIDc5Nzc3KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsMTkgKzY3LDcgQEAg
dm9pZCBTVkdQYWludDo6c2V0VXJpKGNvbnN0IFN0cmluZyYgdXJpKQogICAgIG1fcGFpbnRUeXBl
ID0gU1ZHX1BBSU5UVFlQRV9VUklfTk9ORTsKICAgICBzZXRDb2xvcihDb2xvcigpKTsKICAgICBz
ZXRDb2xvclR5cGUoY29sb3JUeXBlRm9yUGFpbnRUeXBlKG1fcGFpbnRUeXBlKSk7Ci0gICAgLy8g
RklYTUU6IEEgZm9sbG93IHVwIHBhdGNoIHdpbGwgY2FsbCB2YWx1ZUNoYW5nZWQoKSBoZXJlLgot
fQotCi1TVkdQYWludCogU1ZHUGFpbnQ6OmRlZmF1bHRGaWxsKCkKLXsKLSAgICBzdGF0aWMgU1ZH
UGFpbnQqIHN0YXRpY0RlZmF1bHRGaWxsID0gY3JlYXRlQ29sb3IoQ29sb3I6OmJsYWNrKS5yZWxl
YXNlUmVmKCk7Ci0gICAgcmV0dXJuIHN0YXRpY0RlZmF1bHRGaWxsOwotfQotCi1TVkdQYWludCog
U1ZHUGFpbnQ6OmRlZmF1bHRTdHJva2UoKQotewotICAgIHN0YXRpYyBTVkdQYWludCogc3RhdGlj
RGVmYXVsdFN0cm9rZSA9IGNyZWF0ZU5vbmUoKS5yZWxlYXNlUmVmKCk7Ci0gICAgcmV0dXJuIHN0
YXRpY0RlZmF1bHRTdHJva2U7CisgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCiB2b2lk
IFNWR1BhaW50OjpzZXRQYWludCh1bnNpZ25lZCBzaG9ydCBwYWludFR5cGUsIGNvbnN0IFN0cmlu
ZyYgdXJpLCBjb25zdCBTdHJpbmcmIHJnYkNvbG9yLCBjb25zdCBTdHJpbmcmIGljY0NvbG9yLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTEzMiw3ICsxMjAsNyBAQCB2b2lkIFNWR1BhaW50OjpzZXRQ
YWludCh1bnNpZ25lZCBzaG9ydCBwCiAKICAgICBtX3BhaW50VHlwZSA9IHR5cGU7CiAgICAgbV91
cmkgPSByZXF1aXJlc1VSSSA/IHVyaSA6IFN0cmluZygpOwotICAgIC8vIEZJWE1FOiBBIGZvbGxv
dyB1cCBwYXRjaCB3aWxsIGNhbGwgdmFsdWVDaGFuZ2VkKCkgaGVyZS4KKyAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKIFN0cmluZyBTVkdQYWludDo6Y3NzVGV4dCgpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFpbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGFpbnQuaAkocmV2aXNpb24gNzk3NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFpbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODcsOSArODcsNiBAQCBwdWJsaWM6CiAK
ICAgICBib29sIG1hdGNoZXNUYXJnZXRVUkkoY29uc3QgU3RyaW5nJiByZWZlcmVuY2VJZCk7CiAK
LSAgICBzdGF0aWMgU1ZHUGFpbnQqIGRlZmF1bHRGaWxsKCk7Ci0gICAgc3RhdGljIFNWR1BhaW50
KiBkZWZhdWx0U3Ryb2tlKCk7Ci0KIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzk4NzcpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAxMS0w
Mi0yOCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcgMS4xIDJuZCBFZGl0
aW9uIGNvbG9yLXByb3AtMDUtdC5zdmcgZXhwb3NlcyBidWcgaW4gJ2N1cnJlbnRDb2xvcicgaGFu
ZGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
ODAwCisKKyAgICAgICAgQWRkIG5ldyBsYXlvdXQgdGVzdCBmcm9tIHRoZSBTVkcgMS4xIDJuZCBF
ZGl0aW9uIHRlc3Qgc3VpdGUsIGNvdmVyaW5nIGN1cnJlbnRDb2xvciBoYW5kbGluZy4KKyAgICAg
ICAgQWRkIHRlc3RzIGVuc3VyaW5nIHRoYXQgbXV0YXRpbmcgYSBwcmV2aW91c2x5IHNoYXJlZCBT
VkdQYWludCBvYmplY3QgbWFrZXMgaXQgdW5pcXVlLCBzbyB0aGF0CisgICAgICAgIG11dGF0aW9u
cyB0YWtlIGFmZmVjdCwgYnV0IGRvbid0IGFmZmVjdCBvdGhlciByZW5kZXJlcnMgd2hpY2ggc2hh
cmVkIHRoZSBTVkdQYWludCBvYmplY3QgYmVmb3JlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFj
L3N2Zy9XM0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3ItcHJv
cC0wNS10LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9X
M0MtU1ZHLTEuMS1TRS9jb2xvci1wcm9wLTA1LXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9TVkdQYWludC1tdXRhdGUtYXR0cmlidXRlLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3Rv
bS9TVkdQYWludC1tdXRhdGUtYXR0cmlidXRlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1Bh
aW50LW11dGF0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1pbmxpbmUtc3R5bGUt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9T
VkdQYWludC1tdXRhdGUtaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC5zdmc6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3ItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWNvbG9yLWZp
bGwtY3VycmVudENvbG9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1hdHRyaWJ1dGUuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1pbmxpbmUtc3R5bGUuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dDogU1ZHQ29sb3Ig
bXV0YXRpb25zIG5vdyByZWZsZWN0ZWQgaW4gc3R5bGUvY29tcHV0ZWQgc3R5bGUuCisgICAgICAg
ICogc3ZnL2RvbS9TVkdQYWludC1leHBlY3RlZC50eHQ6IFNhbWUgZm9yIFNWR1BhaW50LgorCiAy
MDExLTAyLTI4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzk3ODQuCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3Rl
ZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1cz
Qy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29sb3It
cHJvcC0wNS10LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitl
NWI4Y2NmMDYzZTg3NjZlZTJhZTEzNGUwNzc0ZWRiNgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29s
b3ItcHJvcC0wNS10LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL1czQy1TVkctMS4x
LVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNDgweDM2MAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgNDgweDM2MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSA0ODB4MzYwCisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDEyMCw2MCkgc2l6ZSAxNTB4MTUwCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0
ICgxMjAsNjApIHNpemUgMTUweDE1MAorICAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAo
MTIwLDYwKSBzaXplIDE1MHgxNTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwRkYwMF19
XSBbeD0xMjAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MTUwLjAwXSBbaGVpZ2h0PTE1MC4wMF0KKyAg
ICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMCwzMTApIHNpemUgMjMxeDM4CisgICAgICBS
ZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoMTAsMzEwKSBzaXplIDIzMXgzOCBjb250YWlucyAxIGNo
dW5rKHMpCisgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDIzMXgzOAorICAgICAgICAgIGNodW5rIDEgdGV4dCBydW4gMSBhdCAoMTAuMDAsMzQwLjAwKSBz
dGFydE9mZnNldCAwIGVuZE9mZnNldCAxNiB3aWR0aCAyMzEuMDA6ICIkUmV2aXNpb246IDEuOCAk
IgorICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgNDgweDM2MCBbc3Ryb2tl
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwMDBdfV0gW3g9MS4wMF0gW3k9MS4wMF0gW3dpZHRo
PTQ3OC4wMF0gW2hlaWdodD0zNTguMDBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL2N1c3RvbS9TVkdQYWludC1tdXRhdGUtYXR0cmlidXRlLWV4cGVjdGVkLmNoZWNrc3VtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50
LW11dGF0ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9TVkdQYWludC1tdXRhdGUtYXR0cmlidXRl
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitiZmM3M2FmMjcy
ZDg4MDY0N2MxYzEyMDQ1YzRlMTIyYgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vU1ZHUGFpbnQt
bXV0YXRlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7
c3ZnfSBhdCAoMCwwKSBzaXplIDQzMHgxMDAKKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAo
MCwwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBb
eD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KKyAgICBSZW5k
ZXJTVkdQYXRoIHtyZWN0fSBhdCAoMTEwLDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTExMC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0g
W2hlaWdodD0xMDAuMDBdCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDIyMCwwKSBzaXpl
IDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0yMjAuMDBd
IFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgzMzAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDgwMDBdfV0gW3g9MzMwLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0
PTEwMC4wMF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1Bh
aW50LW11dGF0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWlubGlu
ZS1zdHlsZS1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2JmYzczYWYyNzJkODgwNjQ3
YzFjMTIwNDVjNGUxMjJiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWlubGluZS1zdHls
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9TVkdQYWludC1t
dXRhdGUtaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290
IHtzdmd9IGF0ICgwLDApIHNpemUgNDMweDEwMAorICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0
ICgwLDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1d
IFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQorICAgIFJl
bmRlclNWR1BhdGgge3JlY3R9IGF0ICgxMTAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTEwLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAw
XSBbaGVpZ2h0PTEwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMjIwLDApIHNp
emUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTIyMC4w
MF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCisgICAgUmVuZGVyU1ZH
UGF0aCB7cmVjdH0gYXQgKDMzMCwwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwODAwMF19XSBbeD0zMzAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBdIFtoZWln
aHQ9MTAwLjAwXQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXBy
b3AtMDUtdC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL1czQy1TVkctMS4xLVNF
L2NvbG9yLXByb3AtMDUtdC5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvVzND
LVNWRy0xLjEtU0UvY29sb3ItcHJvcC0wNS10LnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
MCBAQAorPHN2ZyB2ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxlPSJ0aW55IiBpZD0ic3ZnLXJvb3Qi
CisgIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA0ODAgMzYwIgorICB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKyAgPCEtLT0gIFNW
RyAxLjEgMm5kIEVkaXRpb24gVGVzdCBDYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0tLT4KKyAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT4KKyAgPCEtLT0gIENvcHlyaWdodCAy
MDA5IFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0sIChNYXNzYWNodXNldHRzICAgICAgICAgID0t
LT4KKyAgPCEtLT0gIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBFdXJvcGVhbiBSZXNlYXJjaCBD
b25zb3J0aXVtIGZvciAgICAgICAgID0tLT4KKyAgPCEtLT0gIEluZm9ybWF0aWNzIGFuZCBNYXRo
ZW1hdGljcyAoRVJDSU0pLCBLZWlvIFVuaXZlcnNpdHkpLiAgICAgICAgICAgID0tLT4KKyAgPCEt
LT0gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0tLT4KKyAgPCEtLT0gIFNlZSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLy4gICAgICAgICAgICAgICAgICAgICAgICAgID0tLT4KKyAgPCEtLT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0tLT4KKyAgPGQ6U1ZHVGVzdENhc2UgeG1sbnM6ZD0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC8wMi9zdmcvdGVzdHN1aXRlL2Rlc2NyaXB0aW9uLyIKKyAgICB0ZW1wbGF0ZS12ZXJzaW9uPSIx
LjQiIHJldmlld2VyPSJDTCIgYXV0aG9yPSJDTiIgc3RhdHVzPSJhY2NlcHRlZCIKKyAgICB2ZXJz
aW9uPSIkUmV2aXNpb246IDEuOCAkIiB0ZXN0bmFtZT0iJFJDU2ZpbGU6IGNvbG9yLXByb3AtMDUt
dC5zdmcsdiAkIj4KKyAgICA8ZDp0ZXN0RGVzY3JpcHRpb24geG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2NvbG9yLmh0
bWwjQ29sb3JQcm9wZXJ0eSI+CisgICAgICA8cD4KKyAgICAgICAgVGVzdHMgdGhlIGNvbG9yIHRo
YXQgaXMgdXNlZCBmb3IgdGhlIGN1cnJlbnRDb2xvciB2YWx1ZSBpbiB0aGUgZmlsbAorICAgICAg
ICBhdHRyaWJ1dGUgd2hlbiBtb3JlIHRoYW4gb25lIGNvbG9yIGlzIHNwZWNpZmllZC4KKyAgICAg
IDwvcD4KKyAgICAgIDxwPgorICAgICAgICBUaGlzIGlzIGlsbHVzdHJhdGVkIHVzaW5nIGEgc2lu
Z2xlIHJlY3RhbmdsZSB0aGF0IGlzIGEgY2hpbGQgb2YgYSBncm91cAorICAgICAgICBlbGVtZW50
LiBBIGZpbGwgaXMgc3BlY2lmaWVkIGZvciB0aGUgZ3JvdXAgZWxlbWVudCBidXQgbm90IHRoZQor
ICAgICAgICByZWN0YW5nbGUuIENvbG91ciBpcyBzcGVjaWZlZCBmb3IgdGhlIHJlY3RhbmdsZSBh
bmQgdGhlIGdyb3VwIGVsZW1lbnQuCisgICAgICA8L3A+CisgICAgPC9kOnRlc3REZXNjcmlwdGlv
bj4KKyAgICA8ZDpvcGVyYXRvclNjcmlwdCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CisgICAgICA8cD5SdW4gdGhlIHRlc3QuIE5vIGludGVyYWN0aW9uIHJlcXVpcmVkLjwv
cD4KKyAgICA8L2Q6b3BlcmF0b3JTY3JpcHQ+CisgICAgPGQ6cGFzc0NyaXRlcmlhIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICAgIDxwPgorICAgICAgICBUaGUgdGVz
dCBpcyBwYXNzZWQgaWYgdGhlIHVzZXIgYWdlbnQgcmVuZGVycyB0aGUgcmVjdGFuZ2xlIHdpdGgg
YSBncmVlbgorICAgICAgICBmaWxsLgorICAgICAgPC9wPgorICAgIDwvZDpwYXNzQ3JpdGVyaWE+
CisgIDwvZDpTVkdUZXN0Q2FzZT4KKyAgPHRpdGxlIGlkPSJ0ZXN0LXRpdGxlIj4kUkNTZmlsZTog
Y29sb3ItcHJvcC0wNS10LnN2Zyx2ICQ8L3RpdGxlPgorICA8ZGVmcz4KKyAgICA8Zm9udC1mYWNl
IGZvbnQtZmFtaWx5PSJTVkdGcmVlU2Fuc0FTQ0lJIiB1bmljb2RlLXJhbmdlPSJVKzAtN0YiPgor
ICAgICAgPGZvbnQtZmFjZS1zcmM+CisgICAgICAgIDxmb250LWZhY2UtdXJpIHhsaW5rOmhyZWY9
Ii4uL3Jlc291cmNlcy9TVkdGcmVlU2Fucy5zdmcjYXNjaWkiLz4KKyAgICAgIDwvZm9udC1mYWNl
LXNyYz4KKyAgICA8L2ZvbnQtZmFjZT4KKyAgPC9kZWZzPgorICA8ZyBpZD0idGVzdC1ib2R5LWNv
bnRlbnQiIGZvbnQtZmFtaWx5PSJTVkdGcmVlU2Fuc0FTQ0lJLHNhbnMtc2VyaWYiIGZvbnQtc2l6
ZT0iMTgiPgorICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciIgY29sb3I9ImxpbWUiPgorICAgICAg
PHJlY3QgeD0iMTIwIiB5PSI2MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGNvbG9yPSJyZWQi
Lz4KKyAgICA8L2c+CisgIDwvZz4KKyAgPGcgZm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUks
c2Fucy1zZXJpZiIgZm9udC1zaXplPSIzMiI+CisgICAgPHRleHQgaWQ9InJldmlzaW9uIiB4PSIx
MCIgeT0iMzQwIiBzdHJva2U9Im5vbmUiIGZpbGw9ImJsYWNrIj4kUmV2aXNpb246IDEuOCAkPC90
ZXh0PgorICA8L2c+CisgIDxyZWN0IGlkPSJ0ZXN0LWZyYW1lIiB4PSIxIiB5PSIxIiB3aWR0aD0i
NDc4IiBoZWlnaHQ9IjM1OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIi8+CisgIDwhLS0g
Y29tbWVudCBvdXQgdGhpcyB3YXRlcm1hcmsgb25jZSB0aGUgdGVzdCBpcyBhcHByb3ZlZCAtLT4K
KyAgPCEtLTxnIGlkPSJkcmFmdC13YXRlcm1hcmsiPgorICAgIDxyZWN0IHg9IjEiIHk9IjEiIHdp
ZHRoPSI0NzgiIGhlaWdodD0iMjAiIGZpbGw9InJlZCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdp
ZHRoPSIxIi8+CisgICAgPHRleHQgZm9udC1mYW1pbHk9IlNWR0ZyZWVTYW5zQVNDSUksc2Fucy1z
ZXJpZiIgZm9udC13ZWlnaHQ9ImJvbGQiIGZvbnQtc2l6ZT0iMjAiIHg9IjI0MCIKKyAgICAgIHRl
eHQtYW5jaG9yPSJtaWRkbGUiIHk9IjE4IiBzdHJva2Utd2lkdGg9IjAuNSIgc3Ryb2tlPSJibGFj
ayIgZmlsbD0id2hpdGUiPkRSQUZUPC90ZXh0PgorICA8L2c+LS0+Cis8L3N2Zz4KSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3It
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xvci1maWxsLWN1cnJlbnRD
b2xvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKK1NWRyAxLjEg
ZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKworVGVzdHMgYW5pbWF0aW9uIG9uICdjdXJyZW50Q29s
b3InLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbml0aWFsIGNvbmRpdGlv
bjoKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0KS5nZXRQ
cm9wZXJ0eVZhbHVlKCdmaWxsJykgaXMgIiNmZjAwMDAiCitQQVNTIChmaWxsUGFpbnQgPSBkb2N1
bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHJlY3QpLmdldFByb3BlcnR5Q1NTVmFs
dWUoJ2ZpbGwnKSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQQVNTIGZpbGxQ
YWludC5wYWludFR5cGUgaXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IKK1BB
U1MgZmlsbFBhaW50LnVyaSBpcyAiIgorUEFTUyBmaWxsUGFpbnQuY29sb3JUeXBlIGlzIFNWR0Nv
bG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFp
bnQucmdiQ29sb3IpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxs
Q29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMg
MjU1CitQQVNTIGZpbGxDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19OVU1CRVIpIGlzIDAKK1BBU1MgZmlsbENvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCisKK0hhbGYtdGltZSBjb25kaXRpb246CitQ
QVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnZmlsbCcpIGlzICIjODA0MDAwIgorUEFTUyAoZmlsbFBhaW50ID0gZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdm
aWxsJykpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgU1ZHUGFpbnRdIgorUEFTUyBmaWxsUGFpbnQu
cGFpbnRUeXBlIGlzIFNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SCitQQVNTIGZp
bGxQYWludC51cmkgaXMgIiIKK1BBU1MgZmlsbFBhaW50LmNvbG9yVHlwZSBpcyBTVkdDb2xvci5T
VkdfQ09MT1JUWVBFX0NVUlJFTlRDT0xPUgorUEFTUyAoZmlsbENvbG9yID0gZmlsbFBhaW50LnJn
YkNvbG9yKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFJHQkNvbG9yXSIKK1BBU1MgZmlsbENvbG9y
LnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDEyOAor
UEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
TlVNQkVSKSBpcyA2NAorUEFTUyBmaWxsQ29sb3IuYmx1ZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlLkNTU19OVU1CRVIpIGlzIDAKKworRW5kIGNvbmRpdGlvbjoKK1BBU1MgZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0KS5nZXRQcm9wZXJ0eVZhbHVlKCdm
aWxsJykgaXMgIiMwMDgwMDAiCitQQVNTIChmaWxsUGFpbnQgPSBkb2N1bWVudC5kZWZhdWx0Vmll
dy5nZXRDb21wdXRlZFN0eWxlKHJlY3QpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2ZpbGwnKSkudG9T
dHJpbmcoKSBpcyAiW29iamVjdCBTVkdQYWludF0iCitQQVNTIGZpbGxQYWludC5wYWludFR5cGUg
aXMgU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IKK1BBU1MgZmlsbFBhaW50LnVy
aSBpcyAiIgorUEFTUyBmaWxsUGFpbnQuY29sb3JUeXBlIGlzIFNWR0NvbG9yLlNWR19DT0xPUlRZ
UEVfQ1VSUkVOVENPTE9SCitQQVNTIChmaWxsQ29sb3IgPSBmaWxsUGFpbnQucmdiQ29sb3IpLnRv
U3RyaW5nKCkgaXMgIltvYmplY3QgUkdCQ29sb3JdIgorUEFTUyBmaWxsQ29sb3IucmVkLmdldEZs
b2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAorUEFTUyBmaWxsQ29s
b3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAx
MjgKK1BBU1MgZmlsbENvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfTlVNQkVSKSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1jb2xv
ci1maWxsLWN1cnJlbnRDb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3IuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJy
ZW50Q29sb3IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZH
QW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZH
IDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9h
bmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmlt
YXRlLWNvbG9yLWZpbGwtY3VycmVudENvbG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL3NjcmlwdC10ZXN0cy9hbmltYXRlLWNvbG9yLWZpbGwtY3VycmVudENv
bG9yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0
LXRlc3RzL2FuaW1hdGUtY29sb3ItZmlsbC1jdXJyZW50Q29sb3IuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBhbmltYXRpb24gb24gJ2N1cnJlbnRD
b2xvcicuIik7CitjcmVhdGVTVkdUZXN0Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50
Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0VsZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRl
KCJpZCIsICJyZWN0Iik7CityZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwcHgiKTsKK3Jl
Y3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMTAwcHgiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJm
aWxsIiwgImN1cnJlbnRDb2xvciIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImNvbG9yIiwgInJlZCIp
OworCit2YXIgYW5pbWF0ZUNvbG9yID0gY3JlYXRlU1ZHRWxlbWVudCgiYW5pbWF0ZUNvbG9yIik7
CithbmltYXRlQ29sb3Iuc2V0QXR0cmlidXRlKCJpZCIsICJhbmltYXRlQ29sb3IiKTsKK2FuaW1h
dGVDb2xvci5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0ZU5hbWUiLCAiY29sb3IiKTsKK2FuaW1hdGVD
b2xvci5zZXRBdHRyaWJ1dGUoImZyb20iLCAicmVkIik7CithbmltYXRlQ29sb3Iuc2V0QXR0cmli
dXRlKCJ0byIsICJncmVlbiIpOworYW5pbWF0ZUNvbG9yLnNldEF0dHJpYnV0ZSgiZHVyIiwgIjNz
Iik7CithbmltYXRlQ29sb3Iuc2V0QXR0cmlidXRlKCJiZWdpbiIsICJjbGljayIpOworYW5pbWF0
ZUNvbG9yLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJmcmVlemUiKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZUNvbG9yKTsKK3Jvb3RTVkdFbGVtZW50LmFwcGVuZENoaWxkKHJlY3QpOworCitmdW5j
dGlvbiBjaGVja0ZpbGxDb2xvcihyZWQsIGdyZWVuLCBibHVlLCBoZXgpIHsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVj
dCkuZ2V0UHJvcGVydHlWYWx1ZSgnZmlsbCcpIiwgaGV4KTsKKworICAgIHRyeSB7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiKGZpbGxQYWludCA9IGRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZmlsbCcpKS50b1N0
cmluZygpIiwgIltvYmplY3QgU1ZHUGFpbnRdIik7CisgICAgICAgIHNob3VsZEJlKCJmaWxsUGFp
bnQucGFpbnRUeXBlIiwgIlNWR1BhaW50LlNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SIik7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsbFBhaW50LnVyaSIsICIiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImZpbGxQYWludC5jb2xvclR5cGUiLCAiU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQ
RV9DVVJSRU5UQ09MT1IiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCIoZmlsbENv
bG9yID0gZmlsbFBhaW50LnJnYkNvbG9yKS50b1N0cmluZygpIiwgIltvYmplY3QgUkdCQ29sb3Jd
Iik7CisgICAgICAgIHNob3VsZEJlKCJmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX05VTUJFUikiLCAiIiArIHJlZCk7CisgICAgICAgIHNob3VsZEJlKCJm
aWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVS
KSIsICIiICsgZ3JlZW4pOworICAgICAgICBzaG91bGRCZSgiZmlsbENvbG9yLmJsdWUuZ2V0Rmxv
YXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICIiICsgYmx1ZSk7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIC8vIE9wZXJhIGRvZXNuJ3Qgc3VwcG9ydCBnZXRQcm9wZXJ0
eUNTU1ZhbHVlIC0gbm8gd2F5IHRvIGNvbXBhcmUgdG8gdGhlaXIgU1ZHUGFpbnQvU1ZHQ29sb3Ig
b2JqZWN0cyA6KAorICAgIH0KK30KKworLy8gU2V0dXAgYW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9u
IHNhbXBsZTEoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJbml0aWFsIGNvbmRpdGlv
bjoiKTsKKyAgICBjaGVja0ZpbGxDb2xvcigyNTUsIDAsIDAsICIjZmYwMDAwIik7Cit9CisKK2Z1
bmN0aW9uIHNhbXBsZTIoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJIYWxmLXRpbWUg
Y29uZGl0aW9uOiIpOworICAgIGNoZWNrRmlsbENvbG9yKDEyOCwgNjQsIDAsICIjODA0MDAwIik7
Cit9CisKK2Z1bmN0aW9uIHNhbXBsZTMoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJF
bmQgY29uZGl0aW9uOiIpOworICAgIGNoZWNrRmlsbENvbG9yKDAsIDEyOCwgMCwgIiMwMDgwMDAi
KTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1
ZXMgPSBbCisgICAgICAgIC8vIFthbmltYXRpb25JZCwgdGltZSwgZWxlbWVudElkLCBzYW1wbGVD
YWxsYmFja10KKyAgICAgICAgWyJhbmltYXRlQ29sb3IiLCAwLjAsICAgICJyZWN0Iiwgc2FtcGxl
MV0sCisgICAgICAgIFsiYW5pbWF0ZUNvbG9yIiwgMS41LCAgICAicmVjdCIsIHNhbXBsZTJdLAor
ICAgICAgICBbImFuaW1hdGVDb2xvciIsIDMuMCwgICAgInJlY3QiLCBzYW1wbGUzXQorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKK30KKworLy8gQmVnaW4g
dGVzdCBhc3luYworcmVjdC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiZXhlY3V0ZVRlc3QoKSIp
Oword2luZG93LnNldFRpbWVvdXQoInRyaWdnZXJVcGRhdGUoNTAsIDUwKSIsIDApOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20v
U1ZHUGFpbnQtbXV0YXRlLWF0dHJpYnV0ZS5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9TVkdQYWludC1tdXRhdGUtYXR0cmlidXRlLnN2ZwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWF0dHJpYnV0ZS5zdmcJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IklTTy04ODU5LTEiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8v
VzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVD
LVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVu
VGVzdCgpCit7CisgICAgdmFyIHJlY3QxID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InJlY3QiKVswXTsKKyAgICByZWN0MS5nZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoImZpbGwiKS5z
ZXRSR0JDb2xvcigiYmx1ZSIpOworCisgICAgdmFyIHJlY3Q0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJyZWN0Iik7CisgICAgcmVjdDQu
c2V0QXR0cmlidXRlKCJ4IiwgIjMzMCIpOworICAgIHJlY3Q0LnNldEF0dHJpYnV0ZSgieSIsICIw
Iik7CisgICAgcmVjdDQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAiKTsKKyAgICByZWN0NC5z
ZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAiKTsKKyAgICByZWN0NC5zZXRBdHRyaWJ1dGUoImZp
bGwiLCAiZ3JlZW4iKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdmci
KVswXS5hcHBlbmRDaGlsZChyZWN0NCk7Cit9Cis8L3NjcmlwdD4KKworPCEtLSBBc3N1cmUgdGhh
dCB0aGUgZmlyc3QgcmVjdGFuZ2xlLCB0dXJucyBibHVlLCBhbmQgdGhlIG90aGVycyBzdGF5IGdy
ZWVuISAtLT4KKzxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxs
PSJncmVlbiIvPgorPHJlY3QgeD0iMTEwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIg
ZmlsbD0iZ3JlZW4iLz4KKzxyZWN0IHg9IjIyMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20v
U1ZHUGFpbnQtbXV0YXRlLWlubGluZS1zdHlsZS5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9TVkdQYWludC1tdXRhdGUtaW5saW5lLXN0eWxlLnN2ZwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHUGFpbnQtbXV0YXRlLWlubGluZS1zdHls
ZS5zdmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IklTTy04ODU5LTEiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBV
QkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RS
LzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlY3QxID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoInJlY3QiKVswXTsKKyAgICByZWN0MS5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KCJmaWxsIikuc2V0UkdCQ29sb3IoImJsdWUiKTsKKworCXZhciByZWN0NCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAicmVjdCIpOworCXJl
Y3Q0LnNldEF0dHJpYnV0ZSgieCIsICIzMzAiKTsKKwlyZWN0NC5zZXRBdHRyaWJ1dGUoInkiLCAi
MCIpOworCXJlY3Q0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTAwIik7CisJcmVjdDQuc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAiMTAwIik7CisJcmVjdDQuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJm
aWxsOmdyZWVuIik7CisKKwlkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3ZnIilbMF0u
YXBwZW5kQ2hpbGQocmVjdDQpOworfQorPC9zY3JpcHQ+CisKKzwhLS0gQXNzdXJlIHRoYXQgdGhl
IGZpcnN0IHJlY3RhbmdsZSwgdHVybnMgYmx1ZSwgYW5kIHRoZSBvdGhlcnMgc3RheSBncmVlbiEg
LS0+Cis8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgc3R5bGU9ImZp
bGw6Z3JlZW4iLz4KKzxyZWN0IHg9IjExMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IHN0eWxlPSJmaWxsOmdyZWVuIi8+Cis8cmVjdCB4PSIyMjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIiBzdHlsZT0iZmlsbDpncmVlbiIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzk3NzcpCisrKyBMYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR0NvbG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
NDMsNyArNDMsNyBAQCBQQVNTIHJnYkNvbG9yLnJlZC5nZXRGbG9hdFZhbHVlKENTU1ByaW1pCiBQ
QVNTIHJnYkNvbG9yLmdyZWVuLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05V
TUJFUikgaXMgMAogUEFTUyByZ2JDb2xvci5ibHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZl
VmFsdWUuQ1NTX05VTUJFUikgaXMgNzcKIFBBU1Mgc3RvcEVsZW1lbnQuc3R5bGUuc3RvcENvbG9y
IGlzICIjNGQwMDRkIgotRkFJTCBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxl
KHN0b3BFbGVtZW50KS5zdG9wQ29sb3Igc2hvdWxkIGJlIHJnYig3NywgMCwgNzcpLiBXYXMgcmdi
KDI1NSwgMCwgMCkuCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
c3RvcEVsZW1lbnQpLnN0b3BDb2xvciBpcyAicmdiKDc3LCAwLCA3NykiCiAKIFRlc3QgdXNpbmcg
c2V0Q29sb3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IKIFBBU1Mgc3RvcENvbG9y
LnNldENvbG9yKFNWR0NvbG9yLlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SLCAncmdiKDc3LDAs
NzcpJywgJ2ljYy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSBpcyB1bmRlZmluZWQuCkBAIC01NCw3
ICs1NCw3IEBAIFBBU1MgcmdiQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWkKIFBBU1Mg
cmdiQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVS
KSBpcyAwCiBQQVNTIHJnYkNvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZS5DU1NfTlVNQkVSKSBpcyAwCiBQQVNTIHN0b3BFbGVtZW50LnN0eWxlLnN0b3BDb2xvciBpcyAi
Y3VycmVudENvbG9yIgotRkFJTCBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxl
KHN0b3BFbGVtZW50KS5zdG9wQ29sb3Igc2hvdWxkIGJlIHJnYigwLCAxMjgsIDApLiBXYXMgcmdi
KDI1NSwgMCwgMCkuCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
c3RvcEVsZW1lbnQpLnN0b3BDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCiAKIFRlc3QgdXNpbmcg
c2V0Q29sb3IoKSBhbmQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUgogUEFTUyBzdG9wQ29sb3Iuc2V0
Q29sb3IoU1ZHQ29sb3IuU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUiwgJ3JnYigwLDc3LDApJywgJ2lj
Yy1jb2xvcihteVJHQiwgMCwgMSwgMiknKSBpcyB1bmRlZmluZWQuCkBAIC02NCw3ICs2NCw3IEBA
IFBBU1MgKHJnYkNvbG9yID0gc3RvcENvbG9yLnJnYkNvbG9yKS50b1MKIFBBU1MgcmdiQ29sb3Iu
cmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAogUEFT
UyByZ2JDb2xvci5ncmVlbi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1C
RVIpIGlzIDc3CiBQQVNTIHJnYkNvbG9yLmJsdWUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfTlVNQkVSKSBpcyAwCi1GQUlMIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1
dGVkU3R5bGUoc3RvcEVsZW1lbnQpLnN0b3BDb2xvciBzaG91bGQgYmUgcmdiKDAsIDc3LCAwKS4g
V2FzIHJnYigyNTUsIDAsIDApLgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl
ZFN0eWxlKHN0b3BFbGVtZW50KS5zdG9wQ29sb3IgaXMgInJnYigwLCA3NywgMCkiCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9kb20vU1ZHUGFpbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9kb20vU1ZHUGFpbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3OTc3NykKKysrIExh
eW91dFRlc3RzL3N2Zy9kb20vU1ZHUGFpbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNjUsNyArMTY1LDcgQEAgUEFTUyBmaWxsQ29sb3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bQogUEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfTlVNQkVSKSBpcyAwCiBQQVNTIGZpbGxDb2xvci5ibHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAogUEFTUyByZWN0RWxlbWVudC5zdHlsZS5maWxs
IGlzICJ1cmwoI2ZvbykgY3VycmVudENvbG9yIgotRkFJTCBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHJlY3RFbGVtZW50KS5maWxsIHNob3VsZCBiZSB1cmwoI2ZvbykgIzAw
ZmYwMC4gV2FzIHVybCgjZm9vKSBjdXJyZW50Q29sb3IuCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgaXMgInVybCgjZm9vKSAjMDBm
ZjAwIgogCiBUZXN0IHVzaW5nIHNldFBhaW50KCkgYW5kIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNP
TE9SCiBQQVNTIGZpbGxQYWludC5zZXRQYWludChTVkdQYWludC5TVkdfUEFJTlRUWVBFX1VSSV9S
R0JDT0xPUiwgJ3VybCgjdGVzdCknLCAncmdiKDc3LDAsNzcpJywgJ2ljYy1jb2xvcihteVJHQiwg
MCwgMSwgMiknKSBpcyB1bmRlZmluZWQuCkBAIC0yMTMsNyArMjEzLDcgQEAgUEFTUyBmaWxsQ29s
b3IucmVkLmdldEZsb2F0VmFsdWUoQ1NTUHJpbQogUEFTUyBmaWxsQ29sb3IuZ3JlZW4uZ2V0Rmxv
YXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSBpcyAwCiBQQVNTIGZpbGxDb2xv
ci5ibHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUikgaXMgMAog
UEFTUyByZWN0RWxlbWVudC5zdHlsZS5maWxsIGlzICJjdXJyZW50Q29sb3IiCi1GQUlMIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgc2hvdWxk
IGJlICMwMGZmMDAuIFdhcyBjdXJyZW50Q29sb3IuCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUocmVjdEVsZW1lbnQpLmZpbGwgaXMgIiMwMGZmMDAiCiAKIFRlc3Qg
dXNpbmcgc2V0UGFpbnQoKSBhbmQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgogUEFTUyBmaWxsUGFp
bnQuc2V0UGFpbnQoU1ZHUGFpbnQuU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiwgJ3VybCgjdGVzdCkn
LCAncmdiKDAsNzcsMCknLCAnaWNjLWNvbG9yKG15UkdCLCAwLCAxLCAyKScpIGlzIHVuZGVmaW5l
ZC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvVzNDLVNWRy0xLjEtU0UvY29s
b3ItcHJvcC0wNS10LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxl
IG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL1czQy1TVkctMS4xLVNFL2NvbG9yLXByb3AtMDUtdC1leHBlY3RlZC5wbmcKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlW
Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFlQUFBQUZvQ0FZQUFBQ1BOeWdnQUFBQzdtbERRMUJKUTBN
Z1VISnZabWxzWlFBQWVBR0YKVk05ckUwRVUvalp1cWRBaUNGcHJEcko0a0NKSldhdG9SZFEyL1JG
aWF3emJIN1pGa0dRelNkWnVOdXZ1SnJXbGlPVGkwU3JlUmUyaApCLytBSG5yd1pDOUtoVnBGS042
cktHS2hGeTN4elc1TXRxWHF3TTUrODk0MzczMXZkdDhBRFhMU05QV0FCT1FOeDFLaUVXbHNmRUpx
Ci9JZ0FqcUlKUVRRbFZkdnNUaVFHUVlOeitYdm4ySG9QZ1Z0V3czdjdkN0ozclpyU3Rwb0hoUDFB
NEVlYTJTcXc3eGR4Q2xrU0FvZzgKMzZFcHgzUUkzK1BZOHV5UE9VNTVlTUcxRHlzOXhGa2lmRUEx
TGM1L1RiaFR6U1hUUUlOSU9KVDFjVkkrbk5lTGxOY2RCMmx1WnNiSQpFTDFQa0thN3pPNnJZcUdj
VHZZT2tMMmQ5SDVPczk0K3dpSENDeG10UDBhNGpaNzFqTlUvNG1IaHBPYkVoajBjR0RYMCtHQVZ0
eHFwCitEWENGRjhRVFNlaVZISFpMZzN4bUs3OVZ2SktnbkNRT01wa1lZQnpXa2hQMTB4dStMcUhC
WDBtMXhPdjRuZFdVZUY1anhObjN0VGQKNzBYYUFxOHdEaDBNR2d5YURVaFFFRVVFWVppd1VFQ0dQ
Qm94TkxKeVB5T3JCaHVUZXpKMUpHcTdkR0pFc1VGN050dzl0MUdrM1R6KwpLQ0p4bEVPMUNKTDhR
ZjRxcjhsUDVYbjV5MXl3MkZiM2xLMmJtcnJ5NER2RjVabTVHaDdYMDhqamMwMWVmSlhVZHBOWFI1
YXNlWHE4Cm11d2FQK3hYbHpIbWdqV1B4SE93Ky9FdFg1WE1seW1NRk1YalZmUHFTNFIxV2pFMzM1
OXNmenM5NGk3UExyWFdjNjJKaXpkV201ZG4KL1dwSSsrNnF2SlBtVmZsUFh2WHgvR2ZOeEdQaUtU
RW1kb3JuSVltWHhTN3hrdGhMcXd2aVlHM0hDSjJWaGluU2JaSDZKTlZnWUpxOAo5UzlkUDF0NHZV
Wi9EUFZSbEJuTTBsU0o5My9DS21RMG5ia09iL3FQMjhmOEYrVDNpdWVmS0FJdmJPREltYnB0VTNI
dkVLRmxwVzV6CnJnSVh2OUY5OExadWE2TitPUHdFV0R5ckZxMVNOWjhndkFFY2RvZDZIdWdwbU5P
V2xzMDVVb2NzbjVPNjZjcGlVc3hRMjBOU1V0Y2wKMTJWTEZyT1pWV0xwZHRpWjB4MXVIS0U1UXZm
RXAwcGxrL3F2OFJHdy9iQlMrZm1zVXRsK1RocldnWmY2YjhDOC9VWEFlSXVKQUFBZwpBRWxFUVZS
NEFlM2RCWkRzV05rRzRGeFliSEZaWExad2R5L2MzZDNkWFlxaWdIdjNYdHhaM0xid3dxMkF4ZDNk
M1JhSGhjSmR0di96CkJVNytua3ozVE0vY25tUytuU2RWTTIzcG5OUFBTZmZiU1U1Tzc1cVVhYytl
UFkySkFBRUNCQWdRR0VaZzc5Njl6UUh4YjkrK2ZjMGgKaHh3eVRLbEtJVUNBQUFFQ08xZ2djamVt
QStMZjd0MjdHMXZCSVdFaVFJQUFBUUpiTDNEVVVVYzF4OWo2WXBSQWdBQUJBZ1FJOUFVRQpjRi9F
YlFJRUNCQWdNSUNBQUI0QVdSRUVDQkFnUUtBdklJRDdJbTRUSUVDQUFJRUJCQVR3QU1pS0lFQ0FB
QUVDZlFFQjNCZHhtd0FCCkFnUUlEQ0FnZ0FkQVZnUUJBZ1FJRU9nTENPQytpTnNFQ0JBZ1FHQUFB
UUU4QUxJaUNCQWdRSUJBWDBBQTkwWGNKa0NBQUFFQ0F3Z0kKNEFHUUZVR0FBQUVDQlBvQ0FyZ3Y0
allCQWdRSUVCaEFRQUFQZ0t3SUFnUUlFQ0RRRnhEQWZSRzNDUkFnUUlEQUFBSUNlQUJrUlJBZwpR
SUFBZ2I2QUFPNkx1RTJBQUFFQ0JBWVFFTUFESUN1Q0FBRUNCQWowQlFSd1g4UnRBZ1FJRUNBd2dJ
QUFIZ0JaRVFRSUVDQkFvQzhnCmdQc2liaE1nUUlBQWdRRUVCUEFBeUlvZ1FJQUFBUUo5QVFIY0Yz
R2JBQUVDQkFnTUlDQ0FCMEJXQkFFQ0JBZ1E2QXNJNEw2STJ3UUkKRUNCQVlBQUJBVHdBc2lJSUVD
QkFnRUJmUUFEM1Jkd21RSUFBQVFJRENBamdBWkFWUVlBQUFRSUUrZ0lDdUMvaU5nRUNCQWdRR0VC
QQpBQStBckFnQ0JBZ1FJTkFYRU1COUViY0pFQ0JBZ01BQUFnSjRBR1JGRUNCQWdBQ0J2b0FBN291
NFRZQUFBUUlFQmhBUXdBTWdLNElBCkFRSUVDUFFGQkhCZnhHMENCQWdRSURDQWdBQWVBRmtSQkFn
UUlFQ2dMeUNBK3lKdUV5QkFnQUNCQVFRRThBRElpaUJBZ0FBQkFuMEIKQWR3WGNac0FBUUlFQ0F3
Z0lJQUhRRllFQVFJRUNCRG9Dd2pndm9qYkJBZ1FJRUJnQUFFQlBBQ3lJZ2dRSUVDQVFGOUFBUGRG
M0NaQQpnQUFCQWdNSUNPQUJrQlZCZ0FBQkFnVDZBZ0s0TCtJMkFRSUVDQkFZUUVBQUQ0Q3NDQUlF
Q0JBZzBCY1F3SDBSdHdrUUlFQ0F3QUFDCkFuZ0FaRVVRSUVDQUFJRytnQUR1aTdoTmdBQUJBZ1FH
RUJEQUF5QXJnZ0FCQWdRSTlBVUVjRi9FYlFJRUNCQWdNSUNBQUI0QVdSRUUKQ0JBZ1FLQXZJSUQ3
SW00VElFQ0FBSUVCQkFUd0FNaUtJRUNBQUFFQ2ZRRUIzQmR4bXdBQkFnUUlEQ0FnZ0FkQVZnUUJB
Z1FJRU9nTApDT0MraU5zRUNCQWdRR0FBQVFFOEFMSWlDQkFnUUlCQVgrQ0EvaDF1SDcwRWRqVzdq
bDR2eUt2WkZnS1Rackl0NnFFU0JESUwyQUxPCjNIcnFUb0FBQVFKcEJRUncycVpUY1FJRUNCRElM
Q0NBTTdlZXVoTWdRSUJBV2dFQm5MYnBWSndBQVFJRU1nc0k0TXl0cCs0RUNCQWcKa0ZaQUFLZHRP
aFVuUUlBQWdjd0NBamh6NjZrN0FRSUVDS1FWRU1CcG0wN0ZDUkFnUUNDemdBRE8zSHJxVG9BQUFR
SnBCUVJ3MnFaVApjUUlFQ0JESUxDQ0FNN2VldWhNZ1FJQkFXZ0VCbkxicFZKd0FBUUlFTWdzSTRN
eXRwKzRFQ0JBZ2tGWkFBS2R0T2hVblFJQUFnY3dDCkFqaHo2Nms3QVFJRUNLUVZFTUJwbTA3RkNS
QWdRQ0N6Z0FETzNIcnFUb0FBQVFKcEJRUncycVpUY1FJRUNCRElMQ0NBTTdlZXVoTWcKUUlCQVdn
RUJuTGJwVkp3QUFRSUVNZ3NJNE15dHArNEVDQkFna0ZaQUFLZHRPaFVuUUlBQWdjd0NBamh6NjZr
N0FRSUVDS1FWRU1CcAptMDdGQ1JBZ1FDQ3pnQURPM0hycVRvQUFBUUpwQlFSdzJxWlRjUUlFQ0JE
SUxDQ0FNN2VldWhNZ1FJQkFXZ0VCbkxicFZKd0FBUUlFCk1nc0k0TXl0cCs0RUNCQWdrRlpBQUtk
dE9oVW5RSUFBZ2N3Q0FqaHo2Nms3QVFJRUNLUVZFTUJwbTA3RkNSQWdRQ0N6Z0FETzNIcnEKVG9B
QUFRSnBCUVJ3MnFaVGNRSUVDQkRJTENDQU03ZWV1aE1nUUlCQVdnRUJuTGJwVkp3QUFRSUVNZ3NJ
NE15dHArNEVDQkFna0ZaQQpBS2R0T2hVblFJQUFnY3dDQWpoejY2azdBUUlFQ0tRVkVNQnBtMDdG
Q1JBZ1FDQ3pnQURPM0hycVRvQUFBUUpwQlFSdzJxWlRjUUlFCkNCRElMQ0NBTTdlZXVoTWdRSUJB
V2dFQm5MYnBWSndBQVFJRU1nc0k0TXl0cCs0RUNCQWdrRlpBQUtkdE9oVW5RSUFBZ2N3Q0FqaHoK
NjZrN0FRSUVDS1FWRU1CcG0wN0ZDUkFnUUNDemdBRE8zSHJxVG9BQUFRSnBCUVJ3MnFaVGNRSUVD
QkRJTENDQU03ZWV1aE1nUUlCQQpXZ0VCbkxicFZKd0FBUUlFTWdzSTRNeXRwKzRFQ0JBZ2tGWkFB
S2R0T2hVblFJQUFnY3dDQWpoejY2azdBUUlFQ0tRVkVNQnBtMDdGCkNSQWdRQ0N6Z0FETzNIcnFU
b0FBQVFKcEJRUncycVpUY1FJRUNCRElMQ0NBTTdlZXVoTWdRSUJBV2dFQm5MYnBWSndBQVFJRU1n
c0kKNE15dHArNEVDQkFna0ZaQUFLZHRPaFVuUUlBQWdjd0NBamh6NjZrN0FRSUVDS1FWRU1CcG0w
N0ZDUkFnUUNDemdBRE8zSHJxVG9BQQpBUUpwQlFSdzJxWlRjUUlFQ0JESUxDQ0FNN2VldWhNZ1FJ
QkFXZ0VCbkxicFZKd0FBUUlFTWdzSTRNeXRwKzRFQ0JBZ2tGWkFBS2R0Ck9oVW5RSUFBZ2N3Q0Fq
aHo2Nms3QVFJRUNLUVZFTUJwbTA3RkNSQWdRQ0N6Z0FETzNIcnFUb0FBQVFKcEJRUncycVpUY1FJ
RUNCREkKTENDQU03ZWV1aE1nUUlCQVdnRUJuTGJwVkp3QUFRSUVNZ3NJNE15dHArNEVDQkFna0Za
QUFLZHRPaFVuUUlBQWdjd0NBamh6NjZrNwpBUUlFQ0tRVkVNQnBtMDdGQ1JBZ1FDQ3pnQURPM0hy
cVRvQUFBUUpwQlFSdzJxWlRjUUlFQ0JESUxDQ0FNN2VldWhNZ1FJQkFXZ0VCCm5MYnBWSndBQVFJ
RU1nc0k0TXl0cCs0RUNCQWdrRlpBQUtkdE9oVW5RSUFBZ2N3Q0FqaHo2Nms3QVFJRUNLUVZFTUJw
bTA3RkNSQWcKUUNDemdBRE8zSHJxVG9BQUFRSnBCUVJ3MnFaVGNRSUVDQkRJTENDQU03ZWV1aE1n
UUlCQVdnRUJuTGJwVkp3QUFRSUVNZ3NJNE15dApwKzRFQ0JBZ2tGWkFBS2R0T2hVblFJQUFnY3dD
QWpoejY2azdBUUlFQ0tRVkVNQnBtMDdGQ1JBZ1FDQ3pnQURPM0hycVRvQUFBUUpwCkJRUncycVpU
Y1FJRUNCRElMQ0NBTTdlZXVoTWdRSUJBV2dFQm5MYnBWSndBQVFJRU1nc0k0TXl0cCs0RUNCQWdr
RlpBQUtkdE9oVW4KUUlBQWdjd0NBamh6NjZrN0FRSUVDS1FWRU1CcG0wN0ZDUkFnUUNDemdBRE8z
SHJxVG9BQUFRSnBCUVJ3MnFaVGNRSUVDQkRJTENDQQpNN2VldWhNZ1FJQkFXZ0VCbkxicFZKd0FB
UUlFTWdzSTRNeXRwKzRFQ0JBZ2tGWkFBS2R0T2hVblFJQUFnY3dDQWpoejY2azdBUUlFCkNLUVZF
TUJwbTA3RkNSQWdRQ0N6Z0FETzNIcnFUb0FBQVFKcEJRUncycVpUY1FJRUNCRElMQ0NBTTdlZXVo
TWdRSUJBV2dFQm5MYnAKVkp3QUFRSUVNZ3NJNE15dHArNEVDQkFna0ZaQUFLZHRPaFVuUUlBQWdj
d0NBamh6NjZrN0FRSUVDS1FWRU1CcG0wN0ZDUkFnUUNDegpnQURPM0hycVRvQUFBUUpwQlFSdzJx
WlRjUUlFQ0JESUxDQ0FNN2VldWhNZ1FJQkFXZ0VCbkxicFZKd0FBUUlFTWdzSTRNeXRwKzRFCkNC
QWdrRlpBQUtkdE9oVW5RSUFBZ2N3Q0FqaHo2Nms3QVFJRUNLUVZFTUJwbTA3RkNSQWdRQ0N6Z0FE
TzNIcnFUb0FBQVFKcEJRUncKMnFaVGNRSUVDQkRJTENDQU03ZWV1aE1nUUlCQVdnRUJuTGJwVkp3
QUFRSUVNZ3NJNE15dHArNEVDQkFna0ZaQUFLZHRPaFVuUUlBQQpnY3dDQWpoejY2azdBUUlFQ0tR
VkVNQnBtMDdGQ1JBZ1FDQ3pnQURPM0hycVRvQUFBUUpwQlFSdzJxWlRjUUlFQ0JESUxDQ0FNN2Vl
CnVoTWdRSUJBV2dFQm5MYnBWSndBQVFJRU1nc0k0TXl0cCs0RUNCQWdrRlpBQUtkdE9oVW5RSUFB
Z2N3Q0FqaHo2Nms3QVFJRUNLUVYKRU1CcG0wN0ZDUkFnUUNDemdBRE8zSHJxVG9BQUFRSnBCUVJ3
MnFaVGNRSUVDQkRJTENDQU03ZWV1aE1nUUlCQVdnRUJuTGJwVkp3QQpBUUlFTWdzSTRNeXRwKzRF
Q0JBZ2tGYmdnTFExVi9HRkJDYk5aS0g1ekVTQUFBRUN3d3JZQWg3V1cya0VDQkFnUUtBVkVNQldC
QUlFCkNCQWdNSUtBQUI0QlhaRUVDQkFnUUVBQVd3Y0lFQ0JBZ01BSUFnSjRCSFJGRWlCQWdBQUJB
V3dkSUVDQUFBRUNJd2dJNEJIUUZVbUEKQUFFQ0JBU3dkWUFBQVFJRUNJd2dJSUJIUUZja0FRSUVD
QkFRd05ZQkFnUUlFQ0F3Z29BQUhnRmRrUVFJRUNCQVFBQmJCd2dRSUVDQQp3QWdDQW5nRWRFVVNJ
RUNBQUFFQmJCMGdRSUFBQVFJakNBamdFZEFWU1lBQUFRSUVCTEIxZ0FBQkFnUUlqQ0FnZ0VkQVZ5
UUJBZ1FJCkVCREExZ0VDQkFnUUlEQ0NnQUFlQVYyUkJBZ1FJRUJBQUZzSENCQWdRSURBQ0FJQ2VB
UjBSUklnUUlBQUFRRnNIU0JBZ0FBQkFpTUkKQ09BUjBCVkpnQUFCQWdRRXNIV0FBQUVDQkFpTUlD
Q0FSMEJYSkFFQ0JBZ1FFTURXQVFJRUNCQWdNSUtBQUI0QlhaRUVDQkFnUUVBQQpXd2NJRUNCQWdN
QUlBZ0o0QkhSRkVpQkFnQUFCQVd3ZElFQ0FBQUVDSXdnSTRCSFFGVW1BQUFFQ0JBU3dkWUFBQVFJ
RUNJd2dJSUJIClFGY2tBUUlFQ0JBUXdOWUJBZ1FJRUNBd2dvQUFIZ0Zka1FRSUVDQkFRQUJiQndn
UUlFQ0F3QWdDQW5nRWRFVVNJRUNBQUFFQmJCMGcKUUlBQUFRSWpDQWpnRWRBVlNZQUFBUUlFQkxC
MWdBQUJBZ1FJakNBZ2dFZEFWeVFCQWdRSUVCREExZ0VDQkFnUUlEQ0NnQUFlQVYyUgpCQWdRSUVC
QUFGc0hDQkFnUUlEQUNBSUNlQVIwUlJJZ1FJQUFBUUZzSFNCQWdBQUJBaU1JQ09BUjBCVkpnQUFC
QWdRRXNIV0FBQUVDCkJBaU1JQ0NBUjBCWEpBRUNCQWdRRU1EV0FRSUVDQkFnTUlLQUFCNEJYWkVF
Q0JBZ1FFQUFXd2NJRUNCQWdNQUlBZ0o0QkhSRkVpQkEKZ0FBQkFXd2RJRUNBQUFFQ0l3Z0k0QkhR
RlVtQUFBRUNCQVN3ZFlBQUFRSUVDSXdnSUlCSFFGY2tBUUlFQ0JBUXdOWUJBZ1FJRUNBdwpnb0FB
SGdGZGtRUUlFQ0JBUUFCYkJ3Z1FJRUNBd0FnQ0FuZ0VkRVVTSUVDQUFBRUJiQjBnUUlBQUFRSWpD
QWpnRWRBVlNZQUFBUUlFCkJMQjFnQUFCQWdRSWpDQWdnRWRBVnlRQkFnUUlFQkRBMWdFQ0JBZ1FJ
RENDZ0FBZUFWMlJCQWdRSUVCQUFGc0hDQkFnUUlEQUNBSUMKZUFSMFJSSWdRSUFBQVFGc0hTQkFn
QUFCQWlNSUNPQVIwQlZKZ0FBQkFnUUVzSFdBQUFFQ0JBaU1JQ0NBUjBCWEpBRUNCQWdRRU1EVwpB
UUlFQ0JBZ01JS0FBQjRCWFpFRUNCQWdRRUFBV3djSUVDQkFnTUFJQWdKNEJIUkZFaUJBZ0FBQkFX
d2RJRUNBQUFFQ0l3Z0k0QkhRCkZVbUFBQUVDQkFTd2RZQUFBUUlFQ0l3Z0lJQkhRRmNrQVFJRUNC
QVF3TllCQWdRSUVDQXdnb0FBSGdGZGtRUUlFQ0JBUUFCYkJ3Z1EKSUVDQXdBZ0NBbmdFZEVVU0lF
Q0FBQUVCYkIwZ1FJQUFBUUlqQ0FqZ0VkQVZTWUFBQVFJRUJMQjFnQUFCQWdRSWpDQWdnRWRBVnlR
QgpBZ1FJRUJEQTFnRUNCQWdRSURDQ2dBQWVBVjJSQkFnUUlFQkFBRnNIQ0JBZ1FJREFDQUlDZUFS
MFJSSWdRSUFBQVFGc0hTQkFnQUFCCkFpTUlDT0FSMEJWSmdBQUJBZ1FFc0hXQUFBRUNCQWlNSUND
QVIwQlhKQUVDQkFnUUVNRFdBUUlFQ0JBZ01JS0FBQjRCWFpFRUNCQWcKUUVBQVd3Y0lFQ0JBZ01B
SUFnSjRCSFJGRWlCQWdBQUJBV3dkSUVDQUFBRUNJd2dJNEJIUUZVbUFBQUVDQkFTd2RZQUFBUUlF
Q0l3ZwpzTFFBdnV4bEw5czgvZWxQSCtFbEtKTEEwVlBBZStybzJhNWVGWUVxc0xRQS90clh2dGI4
L09jL3I4dDFTWURBZmdwNFQrMG5vS2NUCjJPWUNCK3hQL1Q3NHdRODJuLy84NTV1dmZPVXJ6Wi8v
L09mbURXOTRRL1BQZi82enVkakZMdFpjK2NwWGJrNXptdFBNWGZ4WHYvclYKNWxLWHV0VGN4NmNm
T09DQUE1cVRuZXhrelVFSEhkUSs1L3JYdjM1enhTdGVjWHFXYlhuOTlLYy9mZlA3My8rK09jVXBU
dEVjY2NRUgpTNjNqVmk1N3FSVWRhR0h2Zi8vN20zLzk2MS9OaFM1MG9lWlVwenJWMGt2OTFhOSsx
WHo3Mjk5dXZ2dmQ3elluUHZHSm03T2YvZXpOCldjOTYxdWJBQXc5Y2Fsbjc4NTVhYWtVc2pBQ0Jy
UmM0NUpCREpydDM3NTVzWlByRkwzNHh1YzUxcmpNcHRadjdkNElUbkdEeXRLYzkKYmZMdmYvOTc1
cUsvOUtVdnpYM3VXc3V0ajEzdGFsZWJsQzN1bWN2ZUxuZWU1Q1FuYVY5akNlQ2xWMmtybDczMHlt
N3hBci8rOWE5Mwo2OUxyWC8vNnBaYjJoUzk4WVhLSlMxeWlXMzVkLytMeXVNYzk3dVJSajNyVTVD
OS8rY3QrbDdtTTk5UitWOElDQ0JBWVJLRG03b2EzCmdJODg4c2ptZ2hlOFlCTmJCREhGMWtaczhi
N3puZTlzRGo3NDRPWS8vL2xQdTdVWFc4UVBldENEbW05ODR4dk5pMTcwb25iZWVmK08KZGF4anRW
dk04eDZQcmVwdmZ2T2JUZm1RNm1aNXozdmUwMXo3MnRkdVB2YXhqeTE5SzZRcnhKVVVBcTk4NVN1
M3BKN1BmdmF6bXdjOAo0QUh0T2oycmdMLy8vZS9Ob3gvOTZDYksvK1FuUDducExlK3RlRS9OcXEv
N0NCRFlaZ0kxaVJlTi9admYvT2JkMWtBSjJFblo3ZGMrCk5iWUdIdktRaDdUWFAvclJqMDdxRmxw
NXVaUEREejk4MWVLbnQ0QVgzVUlzSDFTVHU5NzFybDM1c2V4RER6MTAxYkszeXgzbFEzbFMKdmlC
TVB2V3BUeTI5U2x1NTdLVlhkZ3NYV0hZOVQ0NTk3R04zNjhTeXRvQmovWnhlN3ExdWRhdkpXOS82
MWtrNTNESXBYLzdhdlViSApPOTd4dW5LdmNwV3JUTXFYejAyOTBtVzlwelpWdUNjUklEQzRRTTNk
cGw1WnBBYWxVMGozZ1ZONmFLNTR5blFBeHdObGk3aWI5N3JYCnZlNktlZVBHWmdJNG5uZlVVVWRO
Ym5qREczYkxqdDJEcHAwajhOdmYvbllTWHo0T08reXc5akJJMlh2U3JRdnhoV3haQVh5bEsxMnAK
Vys2ZVBYdG1Ba2NZeDNvZjVjYmZlOS83M3BuenJYWG5NdDlUYTVYak1RSUV0bzlBemQwTjlZTCsz
T2MrVno1bi9qdmQvdmEzcjFkbgpYbDcxcWxkdFRuN3lrN2VQUlVldFpVMjdkdTFxU3FCM2kvdis5
Ny9mWFYvdlN1eksvdE9mL3JUZWJLTThYcjVZTkQvNjBZK2FQLzd4CmoxdFNmaXovTzkvNVR2UExY
LzV5S2N1UDVaVmpuMHRaMWtZV2N1WXpuN250aUhmbk85KzVlZnZiMzk1MnZKcCtmcXdmK3p2RmEv
djAKcHovZEx1YjR4ejkrOC9DSFAzem1JczkzdnZNMWQ3dmIzYnJIeXA2Tzd2cWlWN2JEZTJyUnVw
cVBBSUhsQ216b0dIRDBBSzNUS1U5NQp5bnAxNXVVeGozbk01bzF2ZkdONzNEWStGT05EN1JqSDJG
RGV6MXh1M0JrZmZIVmFMd1RpR1BGTFgvclNwblNtYWVLMGp1Z3BHejJxCjQvanh2ZTUxcithU2w3
eGtYVlIzV2JaNG1vOS8vT1B0N1p2YzVDYk5QZTV4ais2eFdWZGU4SUlYTkdYTHEzM28xcmUrZFhQ
SE85NngKdlI0aEVmVTcwWWxPMUx6d2hTOWM5ZFRTUWEwOVBoN0hHci8zdmUrMVBjaGpwak9jNFF6
TmVjOTczdWJlOTc1M1c4OVZUeXgzckxmcwplRTRzLy9HUGYzenpybmU5cS9ueWw3L2NCV2EwWFJ6
SGo5ZDU2VXRmZXRiaTIvdHVjSU1idEwzYkwzemhDemRQZXRLVG1yTDEyVHpqCkdjOW9iVDc3MmMr
Mmo1M3puT2RzK3dCRVhTOSs4WXZQWFZaNFJqK0JtS0ozZk15L1hhZm9zVjdYcStqcGZKempIR2R1
VmFmWHhaLzkKN0dkejU1djN3SFo1VDgycm4vc0pFTmhDZ2JvcHZNakcrWXRmL09KdWQxdC90MXgv
Ri9SNnk5dnNMdWhZN3B2Zi9PYXVIdVVEY21aUgpKZkFuajNuTVl5YmxpMEEzYjJGY2NiMmMzalI1
N25PZnUrcjVKYkM3K1VyQXJIcThmOGM1em5HT2J2NHZmdkdMM2NQMU9QaXNZOXl4Cks3V0ViUGU4
ZnQzaWR2bmlNbm5Zd3g3V0hXZnZGbHl1ckxYc21LOXNUVS9LYVY1ckxyOThJWnJjOTc3M25aUU9j
OU9MN3E3WE11TDQKWnRraW5KUU9kM09YVjc1a3RQTjBUKzVkZWNwVG50STl0NFIvNzlIRmI1YXQr
TW0zdnZXdEZYL1JJNzc2bFZQaEZsL1luRG5MWHBMVwpQcFpaVGpscUQzdk1tWFh5NEFjL3VDdjdp
VTk4NHJ6WjV0Ni96UGZVM0VJOFFJREF0aEtvdWJ1aExlRHBiL3ZsQTdXNTVqV3YyWlJqCnNPVnph
dGdwenBXc1U0d1dOR3VLTGRjM3ZlbE43VU94Ry9FV3Q3aEZlNDVvbkpjYnV3by84SUVQTkgvOTYx
L2JyZURZTlZ0T21XcnEKN3NzYjMvakc3UlphYkFXVkQvdW1uT2JTbk9jODU1bFZURk8rU0xUbmg4
YURGN2pBQmRvdHk1a3pUdDFaMW9RbWR1SEhGbmxNY1Q1MApDYmwyYS94M3YvdGRlLzl6bnZPY2Ru
ZDUrVkJ2dDhEMjd0MDd0WVMxcjBadjhUZ2ZOclpZWTdySVJTN1Nia2xmOUtJWGJYNzYwNSsyClBj
ZmY4WTUzTkgvNHd4K2FaejNyV2UyNXlpOS8rY3ZuTHZRSFAvaEJjL1dyWDcyZEwzcTlsMDVEemVs
T2Q3cjJkY2R5b2tkODdEcVAKZWVLUVFPeGgyS3JwYkdjNzI2cEZ4eDZHWlU3bEZMcTJIY3VYcWRi
b21jOThablAvKzk5L1ZSR3hwVnozYk1UZW5XdGQ2MXFyNWxudgpqdTN5bmxxdm5oNG5RR0FMQkdv
U0wvcjFvSHpJZHQvNFMzVW0wVm5sYlc5NzI2VHNwdXQ2UVMreXJNMXNBY2RXN1N0ZThZcHU2eVI2
Cm9VWkhtUDRVdlZXamJ2RlhQdUFtWlFDRi9peVRUM3ppRTVQWWFxdnp2ZTk5NzFzeHoyMXZlOXZ1
c1RDYU44VVdhbDFHMlQyN1lyYTYKQmRuZkFpNkRrSFRQS1dHLzRqbjF4azkrOHBPdWZuRk9kZmt5
VUI5cUwrY3RPeDY4eTEzdTBpMi83RWFlL09NZi8xangzTGhSamoxTwpUbmpDRTNienplcEFWTXVv
cis5bU43dlo1RGUvK2MyS1paWEFYYkZsWElKOHhlUDF4dk9mLy94SkdUeWsvWXN0MW1WTzVjdFc5
enFXCnNRVWNkWXYxbys0OWljdTczLzN1azlpN0VYc0xTdkJPWHZLU2w2eDQzV1dYK3FaZjByTGVV
NXV1Z0NjU0lEQ29RTTNkcGw1WnRQUUkKaGpPZDZVemRCMTc5Y0k3THM1emxMSk55ckhBU0g4cnJU
ZE1CWExaUUoyVWM2Ymwvc1N1NUhJZWR4TzdnV2w2RVd2U0c3VStsbzlXawpiQ1cxODhXWGduTCtj
SCtXN25aOGNhakxLOGR1dS92alNnUlNmU3gyRmMrYnlyblA3WHpSRy9mWHYvNzFpdGxxZ1BVRGVI
b1hkOWtDClhmR2M2UnVsZzA5WGh4Z1FZbnFhdCt3WWxLSUdSK3llcjZlSlRUKzNYbi8zdTkvZExU
L00rbE10SXh4aU4vUzg2WkdQZkdTM25QdmQKNzM3elp0dXkrN2NpZ0tPeW4vbk1aeWJuUC8vNXU5
ZFcxNGZweXppTUVidlg5MmRhMW50cWYrcmd1UVFJRENkUWMzZkRBUnhWaksyQQpPQWU0ZndySTlB
ZFQyZDA1ZWQzclhqZjMzTWpwQUo1KzNpTFhJN0RuQmV0clgvdmE3Z016dGxyV21pS3NZK3N5eW95
dDZiSkx0cHM5Cnp1bU1MYlphbnpqdTJKL2kvTjc2ZUp3YTFaOXFnUFVET0xZRzYvUEtrSm96dDFC
aldXV2doemJVSTlpanJ0UFR2R1hmNXo3MzZaWWQKWDRiV20rcVhsYWhQNlNHOVl2WmFSankyMXJu
TWNlcFBmVDM5THpJckZyaEZON1lxZ09QTFRIL3J0TDdPZWhsOUgrTEw0MmJQQWE0awp5M2hQMVdX
NUpFQmdld3ZVQU41VXQrUTRwdnJVcHo2MUtjSFFsSkJ0ajJmVzQ2ZmxnNm1kNHZTS3NzdXlQYlla
cC84c2M0cGpzL2U4CjV6MmJzdVd3YXJIMXVHbzhNS3VIOC9RVFlnU3VLMXpoQ3UxZGYvdmIzOXFl
d3ZYeE9LWjNtOXZjcHQ1c3g3bnVidnp2eW10ZTg1cnUKcnRyenVidGpqU3UxekpnbGptZEhQZU5Z
WWh6L25aNmk5MjBKNy9ZdjZycklGTWV6NjNUTFc5NnlYcDE3R1dOMjF5bkdPcDQzUlUvbwplVlAw
aEs1VEhGYytPa3hsNzBCN0hEMHVZNHFlMjdFK2xEZE9VNzdrTkplNXpHWGErMk0wckFjKzhJSHQy
T1RScDJDejA5anZxYzNXCjIvTUlFTmk4d0tZQ3VCWVhnOUxmOUtZM2Jjb3UxYmFqVUh6Z1ArRUpU
MmltUDVBallOWUxwN0tsMVhaMmlnNVBzLzZpTTB3NVJ0dVUKY1hlN1UwSSs5S0VQdFIzQTRnTndl
cG9Pb0FpMU1tYjFtbjlSWHAzNnYrWjB1OXZkcmo2MEtvRGp0S3I0OGhGVGRFeUtEbW1MVHFYWApk
RHVFWVowL1hsL1pXbStETmpwUGxaNjE3ZXN0eDI3ckxBdGZ4dWxNTVVWNFIwZXA5YVpUbi9yVTNT
enpBamphWjYwdkFHczkxaTA4CjBaWDRZbmVqRzkyb095MHN2dXpGZWxYNkg3U25ia1hIdFRMYVc5
dVJyLzdneUVjKzhwRm0zNzU5Ky8wcWwvV2UydStLV0FBQkFsc3YKVURlRjkzZURmZm8wcE5nZE4z
MWNzTHlLU1JrVGVrVVIwN3VnKzd0b1Y4ell1eEhEQU1icE03SE0rT3QzdWlrQjFqMVc1MW4wTWpy
Vwo5S2N5em5XM3ZCSnUzY01mL3ZDSHUvdmpWSlJaVTkyRk8rLzFSWWV5NlYzQS9YcEdKNm15ZGJY
cTJIS1VOV3Zac1p1Nkh2OHRBMWJNCnF0S3ErNlpQRDNyYzR4NjM0dkZhUmh6elgydUszZk8xN3ZF
akhVTlB5OTRGSFlkWDZ1c3BleXZXM0wwY2ZRWGlkTEdZdjN3Um1aUzkKR0V0NytSdDlUeTJ0WUFz
aVFHQkxCV3J1YnVnMHBQSWhzOUFVdTI5amtQcjR5Y0hTSTdsOVR1blEwcHpyWE9kYTZQbHJ6UlFq
Yk1YcApQckhWR05QMEZtL2NMZ0VVRisxMHB6dmRxZjBKdzNwN3ZjdHpuL3ZjcTJhSnJlQVlkQ0tt
K0xuRjB1dTV2VDY5Ky9rT2Q3aERlOTlHCi84VXV6ZmdyWDBiYVVaM2kxS2pTc2F5cFcvVXhhbGM1
dnRpVXNHLy80dlNZUmFmeUpXaWhXZXVQYXNUTUpXaG5QcWQvZUdIbVRFZWoKTzZNZDZoU0R0Y1Q2
UEcrSzA4ZGl2WTRmSFlsQlh1SnlyY0ZONWkxbnZmdTM4ajIxWHRrZUowQmdhd1EyRk1CeHJETENJ
WGFobHM1Two2OVlvZHYvV0FKN2UxYnZ1RTllWklZNi8xUUNlRHBCNFd0U3REdThYdThldmNZMXJy
TE8wdFIrTzNlcnhxMDd4NFZvRE9NSXRyc2NVCjU5YkdxRlg3TThXb1ZQRlg5aG8wc2RzNWRtZkdL
R0l2ZTluTFd1OFl4U3VPdWNmSVZXdE5zU3U0OU1wdXo4V05VWm1pbnROZlNHWTkKTjg0THJsTU04
MmhxbWgvLytNY2R3N3p6djdzWnlwVm8vd2plbU9LYzZZMEU4SFo1VDdXVjk0OEFnVUVGNW4rMW4x
R05HRWM0aGpTTQo0N0dMVEFjZGRGQTNXOW5WMmwzZjN5dlR3MkJHNTZucEtYNG92VTd6am1uV3gr
TXlQampqZUhMODFTM1A2Y2RqUE9zWXRqS21DUFlZCnJ6bCsvRDA2b01XMG1hM2ZHQjR6eXF0Zkl0
b0YvZTlmSEx1TnJmelNVN29MK1hnbzlpQXNNc1hRaVRIRk1KVHhFNDVyVFhFY080N1IKMTBrQS8x
ZGkrdGg1SGN5a0dzMjZyTU5XeG1QejlpTE1lbDdjdDEzZVUvUHE1MzRDQkxaT1lFTUJIR01VeHhR
ZlNvdHMwZGJ4bE9NNQowYmxvV2RQMHJ0aCtBTWVXWkozV0d0MHA1b2xleDdFMVhVNEZhbUlNNS9M
emMvV3BLeTc3bmJIcTFuK0VaZm1adWhYekxuSWpldEZHCm1aZS8vT1hiTGQ1NXo0bXQ5N29GdTJq
djRtbm5Nc3ptdkVXMzkwZjQxaDluQ0lmcEx6WnJQdkZvL3VDMDRmVHU2Rmt2Tzc3RXhDR0UKT3BY
emh1dlZoUzYzeTN0cW9jcWFpUUNCcFFwc0tJQmpjUDQ2UlkvUCtQQ1pOMFZndk9VdGIya2ZqbDJq
aSt6S203ZXMvdjJsYzFKMwpWd3d0T1QzRkx5WFY0VEZqMTIwTnkrbDU2dlhZNVZ0UC9Za2duWGVz
TDdhQTZ5ODd2ZnJWcis2R3VMemU5YTdYblBTa0o2MkxXL2d5CmRsdkhGTWQ0NDRjUzVrM3hLMUwx
V0c0TUo3bklGS2ZFVkovWWhUMGREdFBQajZFakgvclFoM1ozN2Q2OXU3dStGVmRpejBsczFmZTMK
N0xlaXJQV1dHYnZuYTEzaXNqOU5uNzRXUTRIV251WDkrZUoyOUhXb1A4SVF3NkpHTCthTlROdmxQ
YldST3B1WEFJRWxDZFRlV0l0MAorWXFCR3NwcEYyMlB6MUw4cEd3WnRzUHl4WE9uZTJ5V1kyaVRH
SWdqNW9tLzh1RythdkdiN1FVZEM1b2ViR1BXd1A0eHpHSUowN2JzCjZCVmNUbzNxQnBrb2dkYjJ5
STdmS0s3MWl4N0RKY2hYMVhINmpoaHFzTTVmTHc4Ly9QRHBXVlpkcjcySSs3MmdZd1N2Mm5NMjVu
blYKcTE2MW9xZHRETHdSdmJ2clFDRHhXc3JlaEJYTG43ZnNtT214ajMxc1Y5Zm9TVjA2akhXdkw0
YWxqRUUxTHU3TjR3TUFBQVB4U1VSQgpWSGU1eTNYenhJODJ6SnBxR1RIYTExclRJcjJncDN0Ynoy
cXp0WmEvM21NYjdRVWR3NDdXTm96TC9oU2poOFh2WGRkNVlzalM4b3RWCmt4Lys4SWR0TzRWaHJM
OHg2RWh0eDdJM1pGVlAvLzV5WjkxZTVudHExdkxkUjREQTloT291ZHZVSzR0V3NmeDgydVNNWnp4
ajkrRVUKSDFMbHVHc2JlSEZLVFF4L1dEKzQ0ckwwOHAyNTZQMEo0RGdWcVpZUnAzNlVMY1ZWWlJ4
NjZLR3JSdW9xdTFnbkJ4NTRZUGZjV0ViOAoyazNwNWJ6cStmMDdZbGpDV21aY252YTBwNTJVNDZ6
OTJWYmNyZ0hXRCtDWXFmU3VYYkc4K0FBdmV3bmF2L3FoWHN0N3hDTWVzV0s1CmNXT3RaWmZkOHBN
WVk3bytQeTVqbVJHazhVVnArdjdTWVdoU3R1QldMWCs2akowV3dQSGF5dzlhVE1xeDRCVlc0UmJ0
RkYvcXBnMWoKT01yeTR4a3pEUmU1YzFudnFVWEtNZzhCQXVNTDFOemQwQzdvOHFIVFJDZWZHSVFn
ZHJlVkQ1NjRxejBWS0haSHgyK2IxdDExOFFzMQpNYURFWVljZDFzNnp6SC9SNjdRRVNydkk2SjA4
Ni9kNnk1akU3WStxVHc4S2N1U1JSN2EvZ0JSUGpPZVhId1ZvZDlIV1hjSnIxYkdjCkQ3eGlnSkh5
WXczZDhkbTFuamZ2c2ZpRm5mSWxvZjJ0NEpnbmVqL0hyeTdGWDFrOTJxZkZJQm5odDlFQkhrckl0
aDI0bnZlODV6VngKUGFaWTVoSGwxM3RxUjdONC9YR0tUWFFHSzE4bTJubjgrMytCc0k4T2VqSDR5
M1NmZzJpbmVsZ2c1bzdqeGRGQkxpdzNPMjJIOTlSbQo2KzU1QkFoc1htQlhKSEdFNTBaKzdxNFdW
OGF2YlgvYUxzNVRqZE5rb2dkeS9GUmRmQ2hGQjZONkxMTE9QOFpsOUFhT0Q5STRIaHpEClZNWVhn
N0pydHltLzR0UWNYRTdaR1h1SzN0VGxsM2ZhMDFmaUZKWUl4dktqRmszMFNJNk9XdE1mL3B1cGF4
enJqZVBBOFZkMm9UYlIKR3ozT280N09RdHVoZlRiem1vWitUdmtGcVBZbkxPT2M4L2lDR2NkNTQ5
emYrSElYUTNUV0w2TExxRmVHOTlReVhxZGxFTmpKQXBHMwprYnY3RmNEVGdORVpxZndNWHZQa0p6
OTUrbTdYQ1JEWXBJRDMxQ2JoUEkzQU5oZW9BYnpoWGREYi9IV3BIZ0VDQkFnUVNDR3d0QUF1ClA5
dTJsS0VtVTZpcEpJRUJCTHluQmtCV0JJRVJCVFkwRk9WYTlad2VHM210K1R4R2dNQmlBdDVUaXpt
WmkwQldnYVZ0QVdjRlVHOEMKQkFnUUlEQ0dnQUFlUTEyWkJBZ1FJTERqQlFUd2psOEZBQkFnUUlE
QUdBSUNlQXgxWlJJZ1FJREFqaGNRd0R0K0ZRQkFnQUFCQW1NSQpDT0F4MUpWSmdBQUJBanRlUUFE
ditGVUFBQUVDQkFpTUlTQ0F4MUJYSmdFQ0JBanNlQUVCdk9OWEFRQUVDQkFnTUlhQUFCNURYWmtF
CkNCQWdzT01GQlBDT1h3VUFFQ0JBZ01BWUFnSjRESFZsRWlCQWdNQ09GeERBTzM0VkFFQ0FBQUVD
WXdpMHY0YTBiOSsrTWNwV0pnRUMKQkFnUTJIRUNrYm03ZCs5dWRrM0t0SGZ2M2gwSDRBVVRJRUNB
QUlHeEJQYnMyZFA4SDl0SjAzdG1VQTBsQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1hdHRyaWJ1dGUtZXhw
ZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmlu
YXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1Bh
aW50LW11dGF0ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpt
aW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFl
QUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDdaRmtHUXpT
ZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkzeHpXNU10
cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJSlFUUWxW
ZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3N3hkeENs
a1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhUelNYVFFJ
TklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJkOUg1T3M5
NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhDRkY4UVRT
ZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0bmRXVWVG
NWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQeU9yQmh1
VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1WG41eTF5
dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOAptdXdhUCt4
WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRpN1BMclhX
YzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZbVh4Uzd4
a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxCbk0wbFNK
OTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1egpyZ0lY
djlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9jc241TzY2
Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9xdjhSR3cv
YkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNaUVc3Y1FCQUVR
WEkvTHVqbDNIM0NuQklFS253MlhHSk02NUR3ZlYzUGMvbnpHb0hUMTdqLzc5Zjh6SDZRMzIvUgoz
OW12a1hkNzE3VjR0M2U5eCtsUGMvcHVwLytldjBlQUFBRUNyY0NubmJOR2dBQUJBZ1FJRUNCQWdN
Q3lnQUJaZm4zZlRvQUFBUUlFCkNCQWdRQ0FXRUNBeHVEa0NCQWdRSUVDQUFBRUN5d0lDWlBuMWZU
c0JBZ1FJRUNCQWdBQ0JXRUNBeE9EbUNCQWdRSUFBQVFJRUNDd0wKQ0pEbDEvZnRCQWdRSUVDQUFB
RUNCR0lCQVJLRG15TkFnQUFCQWdRSUVDQ3dMQ0JBbGwvZnR4TWdRSUFBQVFJRUNCQ0lCUVJJREc2
TwpBQUVDQkFnUUlFQ0F3TEtBQUZsK2ZkOU9nQUFCQWdRSUVDQkFJQllRSURHNE9RSUVDQkFnUUlB
QUFRTExBZ0prK2ZWOU93RUNCQWdRCklFQ0FBSUZZUUlERTRPWUlFQ0JBZ0FBQkFnUUlMQXNJa09Y
WDkrMEVDQkFnUUlBQUFRSUVZZ0VCRW9PYkkwQ0FBQUVDQkFnUUlMQXMKSUVDV1g5KzNFeUJBZ0FB
QkFnUUlFSWdGQkVnTWJvNEFBUUlFQ0JBZ1FJREFzb0FBV1g1OTMwNkFBQUVDQkFnUUlFQWdGaEFn
TWJnNQpBZ1FJRUNCQWdBQUJBc3NDQW1UNTlYMDdBUUlFQ0JBZ1FJQUFnVmhBZ01UZzVnZ1FJRUNB
QUFFQ0JBZ3NDd2lRNWRmMzdRUUlFQ0JBCmdBQUJBZ1JpQVFFU2c1c2pRSUFBQVFJRUNCQWdzQ3dn
UUpaZjM3Y1RJRUNBQUFFQ0JBZ1FpQVVFU0F4dWpnQUJBZ1FJRUNCQWdNQ3kKZ0FCWmZuM2ZUb0FB
QVFJRUNCQWdRQ0FXRUNBeHVEa0NCQWdRSUVDQUFBRUN5d0lDWlBuMWZUc0JBZ1FJRUNCQWdBQ0JX
RUNBeE9EbQpDQkFnUUlBQUFRSUVDQ3dMQ0pEbDEvZnRCQWdRSUVDQUFBRUNCR0lCQVJLRG15TkFn
QUFCQWdRSUVDQ3dMQ0JBbGwvZnR4TWdRSUFBCkFRSUVDQkNJQlFSSURHNk9BQUVDQkFnUUlFQ0F3
TEtBQUZsK2ZkOU9nQUFCQWdRSUVDQkFJQllRSURHNE9RSUVDQkFnUUlBQUFRTEwKQWdKaytmVjlP
d0VDQkFnUUlFQ0FBSUZZUUlERTRPWUlFQ0JBZ0FBQkFnUUlMQXNJa09YWDkrMEVDQkFnUUlBQUFR
SUVZZ0VCRW9PYgpJMENBQUFFQ0JBZ1FJTEFzSUVDV1g5KzNFeUJBZ0FBQkFnUUlFSWdGQkVnTWJv
NEFBUUlFQ0JBZ1FJREFzb0FBV1g1OTMwNkFBQUVDCkJBZ1FJRUFnRmhBZ01iZzVBZ1FJRUNCQWdB
QUJBc3NDQW1UNTlYMDdBUUlFQ0JBZ1FJQUFnVmhBZ01UZzVnZ1FJRUNBQUFFQ0JBZ3MKQ3dpUTVk
ZjM3UVFJRUNCQWdBQUJBZ1JpQVFFU2c1c2pRSUFBQVFJRUNCQWdzQ3dnUUpaZjM3Y1RJRUNBQUFF
Q0JBZ1FpQVVFU0F4dQpqZ0FCQWdRSUVDQkFnTUN5Z0FCWmZuM2ZUb0FBQVFJRUNCQWdRQ0FXRUNB
eHVEa0NCQWdRSUVDQUFBRUN5d0lDWlBuMWZUc0JBZ1FJCkVDQkFnQUNCV0VDQXhPRG1DQkFnUUlB
QUFRSUVDQ3dMQ0pEbDEvZnRCQWdRSUVDQUFBRUNCR0lCQVJLRG15TkFnQUFCQWdRSUVDQ3cKTENC
QWxsL2Z0eE1nUUlBQUFRSUVDQkNJQlFSSURHNk9BQUVDQkFnUUlFQ0F3TEtBQUZsK2ZkOU9nQUFC
QWdRSUVDQkFJQllRSURHNApPUUlFQ0JBZ1FJQUFBUUxMQWdKaytmVjlPd0VDQkFnUUlFQ0FBSUZZ
UUlERTRPWUlFQ0JBZ0FBQkFnUUlMQXNJa09YWDkrMEVDQkFnClFJQUFBUUlFWWdFQkVvT2JJMENB
QUFFQ0JBZ1FJTEFzSUVDV1g5KzNFeUJBZ0FBQkFnUUlFSWdGQkVnTWJvNEFBUUlFQ0JBZ1FJREEK
c29BQVdYNTkzMDZBQUFFQ0JBZ1FJRUFnRmhBZ01iZzVBZ1FJRUNCQWdBQUJBc3NDQW1UNTlYMDdB
UUlFQ0JBZ1FJQUFnVmhBZ01UZwo1Z2dRSUVDQUFBRUNCQWdzQ3dpUTVkZjM3UVFJRUNCQWdBQUJB
Z1JpQVFFU2c1c2pRSUFBQVFJRUNCQWdzQ3dnUUpaZjM3Y1RJRUNBCkFBRUNCQWdRaUFVRVNBeHVq
Z0FCQWdRSUVDQkFnTUN5Z0FCWmZuM2ZUb0FBQVFJRUNCQWdRQ0FXRUNBeHVEa0NCQWdRSUVDQUFB
RUMKeXdJQ1pQbjFmVHNCQWdRSUVDQkFnQUNCV0VDQXhPRG1DQkFnUUlBQUFRSUVDQ3dMQ0pEbDEv
ZnRCQWdRSUVDQUFBRUNCR0lCQVJLRApteU5BZ0FBQkFnUUlFQ0N3TENCQWxsL2Z0eE1nUUlBQUFR
SUVDQkNJQlFSSURHNk9BQUVDQkFnUUlFQ0F3TEtBQUZsK2ZkOU9nQUFCCkFnUUlFQ0JBSUJZUUlE
RzRPUUlFQ0JBZ1FJQUFBUUxMQWdKaytmVjlPd0VDQkFnUUlFQ0FBSUZZUUlERTRPWUlFQ0JBZ0FB
QkFnUUkKTEFzSWtPWFg5KzBFQ0JBZ1FJQUFBUUlFWWdFQkVvT2JJMENBQUFFQ0JBZ1FJTEFzSUVD
V1g5KzNFeUJBZ0FBQkFnUUlFSWdGQkVnTQpibzRBQVFJRUNCQWdRSURBc29BQVdYNTkzMDZBQUFF
Q0JBZ1FJRUFnRmhBZ01iZzVBZ1FJRUNCQWdBQUJBc3NDQW1UNTlYMDdBUUlFCkNCQWdRSUFBZ1Zo
QWdNVGc1Z2dRSUVDQUFBRUNCQWdzQ3dpUTVkZjM3UVFJRUNCQWdBQUJBZ1JpQVFFU2c1c2pRSUFB
QVFJRUNCQWcKc0N3Z1FKWmYzN2NUSUVDQUFBRUNCQWdRaUFVRVNBeHVqZ0FCQWdRSUVDQkFnTUN5
Z0FCWmZuM2ZUb0FBQVFJRUNCQWdRQ0FXRUNBeAp1RGtDQkFnUUlFQ0FBQUVDeXdMMzgvdXpET0Ri
Q1JBZ1FJQUFBUUlFQ0JEb0JQd1BTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJBZ1FJRUNB
QUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAx
cFlJRUNCQWdBQUIKQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFn
QUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQ
d0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDCkJBZ1FJ
RUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25i
VWxBZ1FJRUNCQWdBQUIKQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVD
QkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVr
OEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDCkJB
Z1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dk
dGlRQUJBZ1FJRUNCQWdNQzgKZ0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdR
SUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6QXNJa1Br
VEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVD
CkJBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpa
V3lKQWdBQUJBZ1FJRUNBd0x5QkEKNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFC
QWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2TUNBbVQr
QkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FB
QUVDCkJEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAx
cFlJRUNCQWdBQUJBZ1FJekFzSWtQa1QKQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFn
QUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01DOGdBQ1pQ
d0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlF
Q0FBSUZPClFJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25i
VWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVD
QkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3THlCQTVr
OEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFn
UUlFQ2dFeEFnCm5iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dk
dGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdR
SUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6QXNJa1Br
VEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVD
QkFnUTZBUUVTR2R0CmlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpa
V3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1EKSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFC
QWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQwpBbVQr
QkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FB
QUVDQkRvQkFkSlpXeUpBCmdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAx
cFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1EKSUVDZ0V4QWduYlVsQWdRSUVDQkFn
QUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWgpQ
d0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlF
Q0FBSUZPUUlCMDFwWUlFQ0JBCmdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25i
VWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1EKNkFRRVNHZHRpUUFCQWdRSUVD
QkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4
QQpBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFn
UUlFQ2dFeEFnbmJVbEFnUUlFQ0JBCmdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dk
dGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0IKQWRKWld5SkFnQUFCQWdR
SUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtU
QUVDQQpBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVD
QkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBCmdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpa
V3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAKMXBZSUVDQkFnQUFC
QWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtC
QUFRSUVDQQpBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FB
QUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3Ckx5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAx
cFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWwKQWdRSUVDQkFn
QUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3
RUFCQWdRSUVDQQpBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlF
Q0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJCmtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25i
VWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUIKQWdRSUVD
QkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4
QUFBRUNCQWdRSUVDQQpBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFn
UUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrCkJBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dk
dGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUIKQWdR
SUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtU
QUVDQUFBRUNCQWdRSUVDZwpFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVD
QkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJBZ1FJRUNBQUFFQ0JEb0JBZEpa
V3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUIK
QWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtC
QUFRSUVDQUFBRUNCQWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FB
QUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDCkJBZ1FJRUNBQUlGT1FJQjAx
cFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdB
QUIKQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3
RUFCQWdRSUVDQUFBRUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlF
Q0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDCkJBZ1FJRUNnRXhBZ25i
VWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNC
QWdNQzgKZ0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4
QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFn
UUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDCkJBZ1E2QVFFU0dk
dGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJ
RUNBd0x5QkEKNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtU
QUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVD
QkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDCkJEb0JBZEpa
V3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJB
Z1FJekFzSWtQa1QKQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtC
QUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FB
QUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPClFJQjAx
cFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdB
QUJBdk1DQW1UK0JBQVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3
RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3THlCQTVrOEFBQUVDQkFnUUlF
Q0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnCm5i
VWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNC
QWdNQzhnQUNaUHdFQUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4
QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6QXNJa1BrVEFFQ0FBQUVDQkFn
UUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0
CmlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJ
RUNBd0x5QkE1azhBQUFFQ0JBZ1EKSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtU
QUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQwpBbVQrQkFBUUlFQ0FBQUVD
QkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpX
eUpBCmdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJB
Z1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1EKSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtC
QUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWgpQd0VBQkFnUUlFQ0FB
QUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFw
WUlFQ0JBCmdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdB
QUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1EKNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3
RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QQpBQUVDQkFnUUlF
Q0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJV
bEFnUUlFQ0JBCmdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNC
QWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0IKQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4
QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQQpBQUVDQkFn
UUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0
aVFBQkFnUUlFQ0JBCmdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJ
RUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAKMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtU
QUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQQpBQUVD
QkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpX
eUpBZ0FBQkFnUUlFQ0F3Ckx5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJB
Z1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWwKQWdRSUVDQkFnQUFCQXZNQ0FtVCtC
QUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQQpB
QUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFw
WUlFQ0JBZ0FBQkFnUUl6QXNJCmtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdB
QUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUIKQWdRSUVDQkFnTUM4Z0FDWlB3
RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVD
QQpBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJV
bEFnUUlFQ0JBZ0FBQkF2TUNBbVQrCkJBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNC
QWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUIKQWdRSUVDQXdMeUJBNWs4
QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdR
SUVDZwpFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0
aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJ
RUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUIKQWdRSXpBc0lrUGtU
QUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNC
QWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpX
eUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDCkJBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJB
Z1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUIKQXZNQ0FtVCtC
QUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFB
RUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFw
WUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDCkJBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdB
QUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzgKZ0FDWlB3
RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVD
QUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJV
bEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDCkJBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNC
QWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkEKNWs4
QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdR
SUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0
aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDCkJEb0JBZEpaV3lKQWdBQUJBZ1FJ
RUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1QK
QUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNC
QWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpX
eUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPClFJQjAxcFlJRUNCQWdBQUJB
Z1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JB
QVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFB
RUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFw
WUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnCm5iVWxBZ1FJRUNCQWdB
QUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdF
QUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVD
QUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJV
bEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0CmlRQUJBZ1FJRUNC
QWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x3aEcwMzRB
QUFmdlNVUkIKVkNCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJ
a1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbApBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNB
QUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBCkFBRUNCRG9C
QWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFn
QUFCQWdRSXpBc0kKa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNB
bVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQgpBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJ
RUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBCkFJRk9R
SUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVD
QkFnQUFCQXZNQ0FtVCsKQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdB
Q1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQgpBZ1FJRUNBd0x5QkE1azhBQUFFQ0JB
Z1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnCkV4
QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdR
SUVDQkFnTUM4Z0FDWlB3RUEKQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlC
QTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQgpBZ1FJekFzSWtQa1RBRUNBQUFF
Q0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFF
ClNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFC
QWdRSUVDQXdMeUJBNWs4QUFBRUMKQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJ
a1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQgpBdk1DQW1UK0JBQVFJRUNB
QUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JB
ZEpaCld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFn
QUFCQWdRSXpBc0lrUGtUQUVDQUFBRUMKQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNB
bVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOApnQUNaUHdFQUJBZ1FJ
RUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJ
QjAxcFlJCkVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVD
QkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUMKQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdB
Q1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQQo1azhBQUFFQ0JB
Z1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhB
Z25iVWxBZ1FJCkVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdR
SUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUMKQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlC
QTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVApBRUNBQUFF
Q0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFF
U0dkdGlRQUJBZ1FJCkVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFC
QWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk8KUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJ
a1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUQpJRUNB
QUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JB
ZEpaV3lKQWdBQUJBZ1FJCkVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFn
QUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWcKbmJVbEFnUUlFQ0JBZ0FBQkF2TUNB
bVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUQpJ
RUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJ
QjAxcFlJRUNCQWdBQUJBZ1FJCnpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVD
QkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHQKaVFBQkFnUUlFQ0JBZ01DOGdB
Q1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFn
UQpJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhB
Z25iVWxBZ1FJRUNCQWdBQUJBdk1DCkFtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdR
SUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkEKZ0FBQkFnUUlFQ0F3THlC
QTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVD
QkFnUQpJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFF
U0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaClB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFC
QWdRSUVDQXdML0FGQjk0VnA2QWgvQjhBQUFBQVNVVk9SSzVDWUlJPQoKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NWR1BhaW50LW11dGF0ZS1pbmxpbmUtc3R5bGUt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL1NW
R1BhaW50LW11dGF0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dn
b0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUM3bWxEUTFCSlEwTWdVSEp2Wm1s
c1pRQUFlQUdGClZNOXJFMEVVL2padXFkQWlDRnByRHJKNGtDSkpXYXRvUmRRMi9SRmlhd3piSDda
RmtHUXpTZFp1TnV2dUpyV2xpT1RpMFNyZVJlMmgKQi8rQUhucndaQzlLaFZwRktONnJLR0toRnkz
eHpXNU10cVhxd001Kzg5NDM3MzF2ZHQ4QURYTFNOUFdBQk9RTngxS2lFV2xzZkVKcQovSWdBanFJ
SlFUUWxWZHZzVGlRR1FZTnorWHZuMkhvUGdWdFd3M3Y3ZDdKM3JaclN0cG9IaFAxQTRFZWEyU3F3
N3hkeENsa1NBb2c4CjM2RXB4M1FJMytQWTh1eVBPVTU1ZU1HMUR5czl4RmtpZkVBMUxjNS9UYmhU
elNYVFFJTklPSlQxY1ZJK25OZUxsTmNkQjJsdVpzYkkKRUwxUGtLYTd6TzZyWXFHY1R2WU9rTDJk
OUg1T3M5NCt3aUhDQ3htdFAwYTRqWjcxak5VLzRtSGhwT2JFaGowY0dEWDArR0FWdHhxcAorRFhD
RkY4UVRTZWlWSEhaTGczeG1LNzlWdkpLZ25DUU9NcGtZWUJ6V2toUDEweHUrTHFIQlgwbTF4T3Y0
bmRXVWVGNWp4Tm4zdFRkCjcwWGFBcTh3RGgwTUdneWFEVWhRRUVVRVlaaXdVRUNHUEJveE5MSnlQ
eU9yQmh1VGV6SjFKR3E3ZEdKRXNVRjdOdHc5dDFHazNUeisKS0NKeGxFTzFDSkw4UWY0cXI4bFA1
WG41eTF5dzJGYjNsSzJibXJyeTREdkY1Wm01R2g3WDA4ampjMDFlZkpYVWRwTlhSNWFzZVhxOApt
dXdhUCt4WGx6SG1naldQeEhPdysvRXRYNVhNbHltTUZNWGpWZlBxUzRSMVdqRTMzNTlzZnpzOTRp
N1BMclhXYzYySml6ZFdtNWRuCi9XcEkrKzZxdkpQbVZmbFBYdlh4L0dmTnhHUGlLVEVtZG9ybklZ
bVh4Uzd4a3RoTHF3dmlZRzNIQ0oyVmhpblNiWkg2Sk5WZ1lKcTgKOVM5ZFAxdDR2VVovRFBWUmxC
bk0wbFNKOTMvQ0ttUTBuYmtPYi9xUDI4ZjhGK1QzaXVlZktBSXZiT0RJbWJwdFUzSHZFS0ZscFc1
egpyZ0lYdjlGOThMWnVhNk4rT1B3RVdEeXJGcTFTTlo4Z3ZBRWNkb2Q2SHVncG1OT1dsczA1VW9j
c241TzY2Y3BpVXN4UTIwTlNVdGNsCjEyVkxGck9aVldMcGR0aVoweDF1SEtFNVF2ZkVwMHBsay9x
djhSR3cvYkJTK2Ztc1V0bCtUaHJXZ1pmNmI4QzgvVVhBZUl1SkFBQWcKQUVsRVFWUjRBZTNaUVc3
Y1FCQUVRWEkvTHVqbDNIM0NuQklFS253MlhHSk02NUR3ZlYzUGMvbnpHb0hUMTdqLzc5Zjh6SDZR
MzIvUgozOW12a1hkNzE3VjR0M2U5eCtsUGMvcHVwLytldjBlQUFBRUNyY0NubmJOR2dBQUJBZ1FJ
RUNCQWdNQ3lnQUJaZm4zZlRvQUFBUUlFCkNCQWdRQ0FXRUNBeHVEa0NCQWdRSUVDQUFBRUN5d0lD
WlBuMWZUc0JBZ1FJRUNCQWdBQ0JXRUNBeE9EbUNCQWdRSUFBQVFJRUNDd0wKQ0pEbDEvZnRCQWdR
SUVDQUFBRUNCR0lCQVJLRG15TkFnQUFCQWdRSUVDQ3dMQ0JBbGwvZnR4TWdRSUFBQVFJRUNCQ0lC
UVJJREc2TwpBQUVDQkFnUUlFQ0F3TEtBQUZsK2ZkOU9nQUFCQWdRSUVDQkFJQllRSURHNE9RSUVD
QkFnUUlBQUFRTExBZ0prK2ZWOU93RUNCQWdRCklFQ0FBSUZZUUlERTRPWUlFQ0JBZ0FBQkFnUUlM
QXNJa09YWDkrMEVDQkFnUUlBQUFRSUVZZ0VCRW9PYkkwQ0FBQUVDQkFnUUlMQXMKSUVDV1g5KzNF
eUJBZ0FBQkFnUUlFSWdGQkVnTWJvNEFBUUlFQ0JBZ1FJREFzb0FBV1g1OTMwNkFBQUVDQkFnUUlF
QWdGaEFnTWJnNQpBZ1FJRUNCQWdBQUJBc3NDQW1UNTlYMDdBUUlFQ0JBZ1FJQUFnVmhBZ01UZzVn
Z1FJRUNBQUFFQ0JBZ3NDd2lRNWRmMzdRUUlFQ0JBCmdBQUJBZ1JpQVFFU2c1c2pRSUFBQVFJRUNC
QWdzQ3dnUUpaZjM3Y1RJRUNBQUFFQ0JBZ1FpQVVFU0F4dWpnQUJBZ1FJRUNCQWdNQ3kKZ0FCWmZu
M2ZUb0FBQVFJRUNCQWdRQ0FXRUNBeHVEa0NCQWdRSUVDQUFBRUN5d0lDWlBuMWZUc0JBZ1FJRUNC
QWdBQ0JXRUNBeE9EbQpDQkFnUUlBQUFRSUVDQ3dMQ0pEbDEvZnRCQWdRSUVDQUFBRUNCR0lCQVJL
RG15TkFnQUFCQWdRSUVDQ3dMQ0JBbGwvZnR4TWdRSUFBCkFRSUVDQkNJQlFSSURHNk9BQUVDQkFn
UUlFQ0F3TEtBQUZsK2ZkOU9nQUFCQWdRSUVDQkFJQllRSURHNE9RSUVDQkFnUUlBQUFRTEwKQWdK
aytmVjlPd0VDQkFnUUlFQ0FBSUZZUUlERTRPWUlFQ0JBZ0FBQkFnUUlMQXNJa09YWDkrMEVDQkFn
UUlBQUFRSUVZZ0VCRW9PYgpJMENBQUFFQ0JBZ1FJTEFzSUVDV1g5KzNFeUJBZ0FBQkFnUUlFSWdG
QkVnTWJvNEFBUUlFQ0JBZ1FJREFzb0FBV1g1OTMwNkFBQUVDCkJBZ1FJRUFnRmhBZ01iZzVBZ1FJ
RUNCQWdBQUJBc3NDQW1UNTlYMDdBUUlFQ0JBZ1FJQUFnVmhBZ01UZzVnZ1FJRUNBQUFFQ0JBZ3MK
Q3dpUTVkZjM3UVFJRUNCQWdBQUJBZ1JpQVFFU2c1c2pRSUFBQVFJRUNCQWdzQ3dnUUpaZjM3Y1RJ
RUNBQUFFQ0JBZ1FpQVVFU0F4dQpqZ0FCQWdRSUVDQkFnTUN5Z0FCWmZuM2ZUb0FBQVFJRUNCQWdR
Q0FXRUNBeHVEa0NCQWdRSUVDQUFBRUN5d0lDWlBuMWZUc0JBZ1FJCkVDQkFnQUNCV0VDQXhPRG1D
QkFnUUlBQUFRSUVDQ3dMQ0pEbDEvZnRCQWdRSUVDQUFBRUNCR0lCQVJLRG15TkFnQUFCQWdRSUVD
Q3cKTENCQWxsL2Z0eE1nUUlBQUFRSUVDQkNJQlFSSURHNk9BQUVDQkFnUUlFQ0F3TEtBQUZsK2Zk
OU9nQUFCQWdRSUVDQkFJQllRSURHNApPUUlFQ0JBZ1FJQUFBUUxMQWdKaytmVjlPd0VDQkFnUUlF
Q0FBSUZZUUlERTRPWUlFQ0JBZ0FBQkFnUUlMQXNJa09YWDkrMEVDQkFnClFJQUFBUUlFWWdFQkVv
T2JJMENBQUFFQ0JBZ1FJTEFzSUVDV1g5KzNFeUJBZ0FBQkFnUUlFSWdGQkVnTWJvNEFBUUlFQ0JB
Z1FJREEKc29BQVdYNTkzMDZBQUFFQ0JBZ1FJRUFnRmhBZ01iZzVBZ1FJRUNCQWdBQUJBc3NDQW1U
NTlYMDdBUUlFQ0JBZ1FJQUFnVmhBZ01UZwo1Z2dRSUVDQUFBRUNCQWdzQ3dpUTVkZjM3UVFJRUNC
QWdBQUJBZ1JpQVFFU2c1c2pRSUFBQVFJRUNCQWdzQ3dnUUpaZjM3Y1RJRUNBCkFBRUNCQWdRaUFV
RVNBeHVqZ0FCQWdRSUVDQkFnTUN5Z0FCWmZuM2ZUb0FBQVFJRUNCQWdRQ0FXRUNBeHVEa0NCQWdR
SUVDQUFBRUMKeXdJQ1pQbjFmVHNCQWdRSUVDQkFnQUNCV0VDQXhPRG1DQkFnUUlBQUFRSUVDQ3dM
Q0pEbDEvZnRCQWdRSUVDQUFBRUNCR0lCQVJLRApteU5BZ0FBQkFnUUlFQ0N3TENCQWxsL2Z0eE1n
UUlBQUFRSUVDQkNJQlFSSURHNk9BQUVDQkFnUUlFQ0F3TEtBQUZsK2ZkOU9nQUFCCkFnUUlFQ0JB
SUJZUUlERzRPUUlFQ0JBZ1FJQUFBUUxMQWdKaytmVjlPd0VDQkFnUUlFQ0FBSUZZUUlERTRPWUlF
Q0JBZ0FBQkFnUUkKTEFzSWtPWFg5KzBFQ0JBZ1FJQUFBUUlFWWdFQkVvT2JJMENBQUFFQ0JBZ1FJ
TEFzSUVDV1g5KzNFeUJBZ0FBQkFnUUlFSWdGQkVnTQpibzRBQVFJRUNCQWdRSURBc29BQVdYNTkz
MDZBQUFFQ0JBZ1FJRUFnRmhBZ01iZzVBZ1FJRUNCQWdBQUJBc3NDQW1UNTlYMDdBUUlFCkNCQWdR
SUFBZ1ZoQWdNVGc1Z2dRSUVDQUFBRUNCQWdzQ3dpUTVkZjM3UVFJRUNCQWdBQUJBZ1JpQVFFU2c1
c2pRSUFBQVFJRUNCQWcKc0N3Z1FKWmYzN2NUSUVDQUFBRUNCQWdRaUFVRVNBeHVqZ0FCQWdRSUVD
QkFnTUN5Z0FCWmZuM2ZUb0FBQVFJRUNCQWdRQ0FXRUNBeAp1RGtDQkFnUUlFQ0FBQUVDeXdMMzgv
dXpET0RiQ1JBZ1FJQUFBUUlFQ0JEb0JQd1BTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJB
Z1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlG
T1FJQjAxcFlJRUNCQWdBQUIKQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdR
SUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01D
OGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVD
CkJBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNn
RXhBZ25iVWxBZ1FJRUNCQWdBQUIKQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFC
QWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3
THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FB
QUVDCkJBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2
QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzgKZ0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFn
QUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6
QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlF
Q0FBQUVDCkJBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JE
b0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkEKNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVD
QkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2
TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFn
UUlFQ0FBQUVDCkJEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlG
T1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1QKQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdR
SUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01D
OGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVD
QkFnUUlFQ0FBSUZPClFJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNn
RXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFC
QWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3
THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FB
QUVDQkFnUUlFQ2dFeEFnCm5iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2
QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFn
QUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6
QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlF
Q0FBQUVDQkFnUTZBUUVTR2R0CmlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JE
b0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1EKSUVDQUFJRk9RSUIwMXBZSUVD
QkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZN
QwpBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFn
UUlFQ0FBQUVDQkRvQkFkSlpXeUpBCmdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlG
T1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1EKSUVDZ0V4QWduYlVsQWdR
SUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4
Z0FDWgpQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVD
QkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBCmdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNn
RXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1EKNkFRRVNHZHRpUUFC
QWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdM
eUJBNWs4QQpBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FB
QUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBCmdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2
QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0IKQWRKWld5SkFn
QUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpB
c0lrUGtUQUVDQQpBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlF
Q0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBCmdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JE
b0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAKMXBZSUVD
QkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZN
Q0FtVCtCQUFRSUVDQQpBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFn
UUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3Ckx5QkE1azhBQUFFQ0JBZ1FJRUNBQUlG
T1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWwKQWdR
SUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4
Z0FDWlB3RUFCQWdRSUVDQQpBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVD
QkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJCmtQa1RBRUNBQUFFQ0JBZ1FJRUNn
RXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUIK
QWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdM
eUJBNWs4QUFBRUNCQWdRSUVDQQpBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FB
QUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrCkJBQVFJRUNBQUFFQ0JBZ1E2
QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdB
QUIKQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpB
c0lrUGtUQUVDQUFBRUNCQWdRSUVDZwpFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlF
Q0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJBZ1FJRUNBQUFFQ0JE
b0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNC
QWdBQUIKQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZN
Q0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFn
UUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDCkJBZ1FJRUNBQUlG
T1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJ
RUNCQWdBQUIKQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4
Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVD
QkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDCkJBZ1FJRUNn
RXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJB
Z1FJRUNCQWdNQzgKZ0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdM
eUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FB
QUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDCkJBZ1E2
QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdB
QUJBZ1FJRUNBd0x5QkEKNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpB
c0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlF
Q0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDCkJE
b0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNC
QWdBQUJBZ1FJekFzSWtQa1QKQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZN
Q0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01DOGdBQ1pQd0VBQkFn
UUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZP
ClFJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJ
RUNCQWdBQUJBdk1DQW1UK0JBQVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4
Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3THlCQTVrOEFBQUVD
QkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dF
eEFnCm5iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJB
Z1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdM
eUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6QXNJa1BrVEFFQ0FB
QUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZB
UUVTR2R0CmlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdB
QUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1EKSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpB
c0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQwpBbVQrQkFBUUlF
Q0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRv
QkFkSlpXeUpBCmdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNC
QWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1EKSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZN
Q0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWgpQd0VBQkFn
UUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZP
UUlCMDFwWUlFQ0JBCmdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJ
RUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1EKNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4
Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QQpBQUVD
QkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dF
eEFnbmJVbEFnUUlFQ0JBCmdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJB
Z1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0IKQWRKWld5SkFnQUFCQWdRSUVDQXdM
eUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQQpB
QUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZB
UUVTR2R0aVFBQkFnUUlFQ0JBCmdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdB
QUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAKMXBZSUVDQkFnQUFCQWdRSXpB
c0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVD
QQpBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRv
QkFkSlpXeUpBZ0FBQkFnUUlFQ0F3Ckx5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNC
QWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWwKQWdRSUVDQkFnQUFCQXZN
Q0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdR
SUVDQQpBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZP
UUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJCmtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJ
RUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUIKQWdRSUVDQkFnTUM4
Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNC
QWdRSUVDQQpBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dF
eEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrCkJBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJB
Z1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUIKQWdRSUVDQXdM
eUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFB
RUNCQWdRSUVDZwpFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZB
UUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBCkJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdB
QUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUIKQWdRSXpB
c0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVD
QUFBRUNCQWdRNkFRRQpTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRv
QkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDCkJBZ1FJRUNBQUlGT1FJQjAxcFlJRUNC
QWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUIKQXZN
Q0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdR
SUVDQUFBRUNCRG9CQWRKWgpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZP
UUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDCkJBZ1FJRUNnRXhBZ25iVWxBZ1FJ
RUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzgK
Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNC
QWdRSUVDQUFJRk9RSUIwMXBZSQpFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dF
eEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDCkJBZ1E2QVFFU0dkdGlRQUJB
Z1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5
QkEKNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFB
RUNCQWdRSUVDZ0V4QWduYlVsQWdRSQpFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZB
UUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDCkJEb0JBZEpaV3lKQWdB
QUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFz
SWtQa1QKQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVD
QUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSQpFQ0JBZ01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRv
QkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPClFJQjAxcFlJRUNC
QWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1D
QW1UK0JBQVEKSUVDQUFBRUNCQWdRNkFRRVNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdR
SUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSQpFQ0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZP
UUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnCm5iVWxBZ1FJ
RUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhn
QUNaUHdFQUJBZ1EKSUVDQUFBRUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNC
QWdRSUVDQUFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSQp6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dF
eEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0CmlRQUJB
Z1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x3
aEcwMzRBQUFmdlNVUkIKVkNCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFn
UUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbApBZ1FJRUNCQWdBQUJBdk1DQW1UK0JB
QVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBCkFB
RUNCRG9CQWRKWld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZ
SUVDQkFnQUFCQWdRSXpBc0kKa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FB
QkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQgpBZ1FJRUNCQWdNQzhnQUNaUHdF
QUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNB
CkFJRk9RSUIwMXBZSUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVs
QWdRSUVDQkFnQUFCQXZNQ0FtVCsKQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JB
Z01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQgpBZ1FJRUNBd0x5QkE1azhB
QUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJ
RUNnCkV4QWduYlVsQWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRp
UUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUEKQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlF
Q0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQgpBZ1FJekFzSWtQa1RB
RUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JB
Z1E2QVFFClNHZHRpUUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5
SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUMKQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFn
UUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQgpBdk1DQW1UK0JB
QVFJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFF
Q0JEb0JBZEpaCld5SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZ
SUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUMKQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FB
QkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOApnQUNaUHdF
QUJBZ1FJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNB
QUlGT1FJQjAxcFlJCkVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVs
QWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUMKQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JB
Z01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQQo1azhB
QUFFQ0JBZ1FJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJ
RUNnRXhBZ25iVWxBZ1FJCkVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRp
UUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUMKQkRvQkFkSlpXeUpBZ0FBQkFnUUlF
Q0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVApB
RUNBQUFFQ0JBZ1FJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JB
Z1E2QVFFU0dkdGlRQUJBZ1FJCkVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5
SkFnQUFCQWdRSUVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk8KUUlCMDFwWUlFQ0JBZ0FBQkFn
UUl6QXNJa1BrVEFFQ0FBQUVDQkFnUUlFQ2dFeEFnbmJVbEFnUUlFQ0JBZ0FBQkF2TUNBbVQrQkFB
UQpJRUNBQUFFQ0JBZ1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaUHdFQUJBZ1FJRUNBQUFF
Q0JEb0JBZEpaV3lKQWdBQUJBZ1FJCkVDQXdMeUJBNWs4QUFBRUNCQWdRSUVDQUFJRk9RSUIwMXBZ
SUVDQkFnQUFCQWdRSXpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWcKbmJVbEFnUUlFQ0JBZ0FB
QkF2TUNBbVQrQkFBUUlFQ0FBQUVDQkFnUTZBUUVTR2R0aVFBQkFnUUlFQ0JBZ01DOGdBQ1pQd0VB
QkFnUQpJRUNBQUFFQ0JEb0JBZEpaV3lKQWdBQUJBZ1FJRUNBd0x5QkE1azhBQUFFQ0JBZ1FJRUNB
QUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJCnpBc0lrUGtUQUVDQUFBRUNCQWdRSUVDZ0V4QWduYlVs
QWdRSUVDQkFnQUFCQXZNQ0FtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHQKaVFBQkFnUUlFQ0JB
Z01DOGdBQ1pQd0VBQkFnUUlFQ0FBQUVDQkRvQkFkSlpXeUpBZ0FBQkFnUUlFQ0F3THlCQTVrOEFB
QUVDQkFnUQpJRUNBQUlGT1FJQjAxcFlJRUNCQWdBQUJBZ1FJekFzSWtQa1RBRUNBQUFFQ0JBZ1FJ
RUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DCkFtVCtCQUFRSUVDQUFBRUNCQWdRNkFRRVNHZHRp
UUFCQWdRSUVDQkFnTUM4Z0FDWlB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5SkEKZ0FBQkFnUUlF
Q0F3THlCQTVrOEFBQUVDQkFnUUlFQ0FBSUZPUUlCMDFwWUlFQ0JBZ0FBQkFnUUl6QXNJa1BrVEFF
Q0FBQUVDQkFnUQpJRUNnRXhBZ25iVWxBZ1FJRUNCQWdBQUJBdk1DQW1UK0JBQVFJRUNBQUFFQ0JB
Z1E2QVFFU0dkdGlRQUJBZ1FJRUNCQWdNQzhnQUNaClB3RUFCQWdRSUVDQUFBRUNCRG9CQWRKWld5
SkFnQUFCQWdRSUVDQXdML0FGQjk0VnA2QWgvQjhBQUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="76165"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>