<?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>157738</bug_id>
          
          <creation_ts>2016-05-15 22:48:44 -0700</creation_ts>
          <short_desc>Improvements to Animometer benchmark</short_desc>
          <delta_ts>2016-06-21 20:12:42 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1193336</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-05-15 22:48:44 -0700</bug_when>
    <thetext>Improvements to Animometer benchmark</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203037</commentid>
    <comment_count>1</comment_count>
      <attachid>281484</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:40:44 -0700</bug_when>
    <thetext>Created attachment 281484
1. CSS cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203041</commentid>
    <comment_count>2</comment_count>
      <attachid>281486</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:41:56 -0700</bug_when>
    <thetext>Created attachment 281486
2. Detect 3 canvas sizes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203042</commentid>
    <comment_count>3</comment_count>
      <attachid>281487</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:43:19 -0700</bug_when>
    <thetext>Created attachment 281487
3. Show test confidence intervals, fix selection issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203043</commentid>
    <comment_count>4</comment_count>
      <attachid>281488</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:44:00 -0700</bug_when>
    <thetext>Created attachment 281488
4. Update serialization format to reduce size and make it extensible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203045</commentid>
    <comment_count>5</comment_count>
      <attachid>281489</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:44:37 -0700</bug_when>
    <thetext>Created attachment 281489
5. Refine ramp lower bound evaluation, lengthen test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203047</commentid>
    <comment_count>6</comment_count>
      <attachid>281490</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:45:19 -0700</bug_when>
    <thetext>Created attachment 281490
6. Refine ramp upper bound evaluation, let ramp profiles dictate final calculation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203048</commentid>
    <comment_count>7</comment_count>
      <attachid>281491</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:45:34 -0700</bug_when>
    <thetext>Created attachment 281491
7. performance.now fallback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203049</commentid>
    <comment_count>8</comment_count>
      <attachid>281492</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:46:04 -0700</bug_when>
    <thetext>Created attachment 281492
8. Confidence interval in final score</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203054</commentid>
    <comment_count>9</comment_count>
      <attachid>281494</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:46:57 -0700</bug_when>
    <thetext>Created attachment 281494
9. Test updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203059</commentid>
    <comment_count>10</comment_count>
      <attachid>281495</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 15:49:55 -0700</bug_when>
    <thetext>Created attachment 281495
Complete patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203181</commentid>
    <comment_count>11</comment_count>
      <attachid>281484</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-16 19:48:00 -0700</bug_when>
    <thetext>Comment on attachment 281484
1. CSS cleanup

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/developer.html:7
&gt; +    &lt;title&gt;MotionMark 1.0 - developer&lt;/title&gt;

Do we have a plan to change the directory name also to: PerformanceTests/Animometer/ -&gt; PerformanceTests/MotionMark?

&gt; PerformanceTests/Animometer/developer.html:9
&gt; +    &lt;link rel=&quot;stylesheet&quot; href=&quot;resources/runner/animometer.css&quot;&gt;

Should we change all the sources anemometer.* -&gt; motionmark.*?

&gt; PerformanceTests/Animometer/developer.html:39
&gt;                          &lt;ul&gt;

Do we need an extra indentation for &lt;ul&gt; relative to &lt;form&gt;?

&gt; PerformanceTests/Animometer/developer.html:40
&gt; +                        &lt;li&gt;

Do we need an extra indentation for &lt;li&gt; relative to &lt;ul&gt;?

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:13
&gt; +    background-color: rgb(96, 96, 96);
&gt; +    background-image: initial;
&gt; +    background-repeat: initial;
&gt; +    background-size: initial;
&gt; +    animation: initial;
&gt; +    will-change: initial;

I could not understand why we have to set many properties to initial. Do we override the behavior of the parent element? But I do not see any need for that.

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:189
&gt; +#intro .orientation-check button {
&gt; +    margin: 0 auto;
&gt; +}

I think it is a little bit strange that we start the benchmark from inside a parent of class orientation-check. Can&apos;t we use a different name like &quot;start-benchmark&quot; or &quot;benchmark-controller&quot; or something else?

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:195
&gt; +        display: flex;

Why is this still using flex box layout?

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:392
&gt; +#results-tables {

I found it difficult to relate these css properties to the html elements hierarchy

&lt;section id=&quot;results&quot;&gt;
    &lt;div class=&quot;body&quot;&gt;
        &lt;div id=&quot;results-tables&quot;&gt;
            &lt;div&gt;
                &lt;table id=&quot;results-score&quot;&gt;&lt;/table&gt;
                &lt;table id=&quot;results-data&quot;&gt;&lt;/table&gt;
            &lt;/div&gt;
            &lt;table id=&quot;results-header&quot;&gt;&lt;/table&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/section&gt;

For example it looks like the tables are only inside results-tables but we always name them as &quot;#results table&quot;

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:393
&gt; +    direction: rtl;

Why we need the direction of this to be rtl?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203188</commentid>
    <comment_count>12</comment_count>
      <attachid>281486</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-16 20:04:32 -0700</bug_when>
    <thetext>Comment on attachment 281486
2. Detect 3 canvas sizes

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

Unofficial r=me

&gt; PerformanceTests/Animometer/index.html:45
&gt; +                    &lt;div class=&quot;score&quot; onclick=&quot;benchmarkController.showDebugInfo()&quot;&gt;&lt;/div&gt;

How does the user know that clicking the score will show the debugInfo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203244</commentid>
    <comment_count>13</comment_count>
      <attachid>281484</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 23:41:54 -0700</bug_when>
    <thetext>Comment on attachment 281484
1. CSS cleanup

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

&gt;&gt; PerformanceTests/Animometer/developer.html:39
&gt;&gt;                          &lt;ul&gt;
&gt; 
&gt; Do we need an extra indentation for &lt;ul&gt; relative to &lt;form&gt;?

Sure.

&gt;&gt; PerformanceTests/Animometer/developer.html:40
&gt;&gt; +                        &lt;li&gt;
&gt; 
&gt; Do we need an extra indentation for &lt;li&gt; relative to &lt;ul&gt;?

Sure.

&gt;&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:13
&gt;&gt; +    will-change: initial;
&gt; 
&gt; I could not understand why we have to set many properties to initial. Do we override the behavior of the parent element? But I do not see any need for that.

This resets the properties that are defined in the release version of the benchmark.

&gt;&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:189
&gt;&gt; +}
&gt; 
&gt; I think it is a little bit strange that we start the benchmark from inside a parent of class orientation-check. Can&apos;t we use a different name like &quot;start-benchmark&quot; or &quot;benchmark-controller&quot; or something else?

Sure.

&gt;&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:195
&gt;&gt; +        display: flex;
&gt; 
&gt; Why is this still using flex box layout?

This is all for the developer version of the page, so I don&apos;t think it&apos;s as necessary to be as restrictive.

&gt;&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:393
&gt;&gt; +    direction: rtl;
&gt; 
&gt; Why we need the direction of this to be rtl?

To make it possible to select the overall score and the individual test scores together. You&apos;ll notice that #results-score is nearest .score.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203245</commentid>
    <comment_count>14</comment_count>
      <attachid>281486</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-16 23:43:21 -0700</bug_when>
    <thetext>Comment on attachment 281486
2. Detect 3 canvas sizes

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

&gt;&gt; PerformanceTests/Animometer/index.html:45
&gt;&gt; +                    &lt;div class=&quot;score&quot; onclick=&quot;benchmarkController.showDebugInfo()&quot;&gt;&lt;/div&gt;
&gt; 
&gt; How does the user know that clicking the score will show the debugInfo?

It&apos;s a power user feature. I need to move it because it makes it impossible to select just the score. But I&apos;ll do that in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203345</commentid>
    <comment_count>15</comment_count>
      <attachid>281487</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 11:04:23 -0700</bug_when>
    <thetext>Comment on attachment 281487
3. Show test confidence intervals, fix selection issues

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/index.html:7
&gt; +    &lt;title&gt;MotionMark 1.0&lt;/title&gt;

Do we have a plan to change the directory name also: PerformanceTests/Animometer/ -&gt; PerformanceTests/MotionMark?

&gt; PerformanceTests/Animometer/index.html:16
&gt;      &lt;script src=&quot;resources/runner/animometer.js&quot; defer&gt;&lt;/script&gt;

Should we change all the sources anemometer.* -&gt; motionmark.*?

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:403
&gt; +#results .table-container &gt; div {

I found it difficult to relate these css rules to this hierarchy of elements:

&lt;section id=&quot;results&quot;&gt;
    &lt;div class=&quot;body&quot;&gt;
        &lt;div id=&quot;results-tables&quot;&gt;
            &lt;div&gt;
                &lt;table id=&quot;results-score&quot;&gt;&lt;/table&gt;
                &lt;table id=&quot;results-data&quot;&gt;&lt;/table&gt;
            &lt;/div&gt;
            &lt;table id=&quot;results-header&quot;&gt;&lt;/table&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/section&gt;

For example tables exist only inside #results-tables but they are always referenced as &quot;#results ...&quot;.

&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:407
&gt; +#results #results-score {

Do we need to include &quot;#results&quot; here? Can&apos;t it be just #results-score? In other places I see it referenced like this: document.querySelector(&quot;#results-score&quot;).

&gt; PerformanceTests/Animometer/resources/runner/animometer.js:273
&gt; +                td.innerHTML = header.text(testResult, testName);

The header.text() function takes a single parameter. right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203367</commentid>
    <comment_count>16</comment_count>
      <attachid>281487</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-17 11:52:14 -0700</bug_when>
    <thetext>Comment on attachment 281487
3. Show test confidence intervals, fix selection issues

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

&gt;&gt; PerformanceTests/Animometer/resources/debug-runner/animometer.css:407
&gt;&gt; +#results #results-score {
&gt; 
&gt; Do we need to include &quot;#results&quot; here? Can&apos;t it be just #results-score? In other places I see it referenced like this: document.querySelector(&quot;#results-score&quot;).

&quot;#results table&quot; will override any rules declared there.

&gt;&gt; PerformanceTests/Animometer/resources/runner/animometer.js:273
&gt;&gt; +                td.innerHTML = header.text(testResult, testName);
&gt; 
&gt; The header.text() function takes a single parameter. right?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203371</commentid>
    <comment_count>17</comment_count>
      <attachid>281488</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 12:04:45 -0700</bug_when>
    <thetext>Comment on attachment 281488
4. Update serialization format to reduce size and make it extensible

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/resources/extensions.js:163
&gt; +            return Number(number.toFixed(3));

Should not this be:
return Number(number.toFixed(precision));

&gt; PerformanceTests/Animometer/resources/extensions.js:632
&gt; +    createDatum: function()
&gt; +    {
&gt; +        return [];
&gt; +    },

What is the need of this function?
Should not we add a function to either append or insert a datum in this.data instead?

&gt; PerformanceTests/Animometer/resources/extensions.js:634
&gt; +    getFieldInDatum: function(datum, fieldName)

Do we need &quot;get&quot; in the name? The class has a function named &quot;at()&quot; not &quot;getAt()&quot;.
Also should not this function take an index for the datum and not the datum itself?

Instead of having this sequence of calls:
   var data = new SampleData(map, []);
   var datum = data.createDatum();
   data.setFieldInDatum(datum, &quot;field1&quot;);
   data.setFieldInDatum(datum, &quot;field2&quot;);
   data.push(datum);

We can do it this way:
   var data = new SampleData(map, []);
   data.appendDatum();
   data.setFieldInDatum(data.length() - 1 , &quot;field1&quot;);
   data.setFieldInDatum(data.length() - 1 , &quot;field2&quot;);
   data.push(datum);

&gt; PerformanceTests/Animometer/tests/resources/main.js:154
&gt; +        complexityAverageSamples.addField(Strings.json.complexity, 0);
&gt; +        complexityAverageSamples.addField(Strings.json.frameLength, 1);
&gt; +        complexityAverageSamples.addField(Strings.json.measurements.stdev, 2);

Should not this map be static somewhere instead of repeating the same set of calls?

&gt; PerformanceTests/Animometer/tests/resources/main.js:219
&gt; +            controllerSamples.setFieldInDatum(sample, Strings.json.time, timestamp - this._startTimestamp);
&gt; +            controllerSamples.setFieldInDatum(sample, Strings.json.complexity, samples[1][i]);

sample is added to two SampleData but it is modified by the first one even the effect will be in both. Should not we add a class to the SampleDatum itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203381</commentid>
    <comment_count>18</comment_count>
      <attachid>281489</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 12:34:10 -0700</bug_when>
    <thetext>Comment on attachment 281489
5. Refine ramp lower bound evaluation, lengthen test

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/tests/resources/main.js:498
&gt; +            progress = (timestamp - this._rampStartTimestamp) / (this._currentRampLength - this.intervalSamplingLength);

Can (this._currentRampLength - this.intervalSamplingLength) be zero?

&gt; PerformanceTests/Animometer/tests/resources/main.js:512
&gt;          if (interpolatedFrameLength &lt; this.frameLengthRampLowerThreshold)
&gt;              this._possibleMaximumComplexity = Math.floor(Utilities.lerp(Utilities.progressValue(this.frameLengthRampLowerThreshold, interpolatedFrameLength, this._lastTierFrameLength), this._maximumComplexity, this._lastTierComplexity));
&gt; +        // If the regression doesn&apos;t fit the first segment at all, keep the minimum bound at 1
&gt; +        if ((timestamp - this._sampler.samples[0][this._sampler.sampleCount - regression.n1]) / this._currentRampLength &lt; .25)
&gt; +            this._possibleMinimumComplexity = 1;

Should not write these two if-staments written as if (c2) ... else if (c1) ...
Also what is .25? Can we use constant to explain its meaning?

&gt; PerformanceTests/ChangeLog:9
&gt; +        the interval to 150 ms during sampling. Improve the estimation of the ramp parameters.

Did you mean 120ms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203441</commentid>
    <comment_count>19</comment_count>
      <attachid>281490</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 15:15:37 -0700</bug_when>
    <thetext>Comment on attachment 281490
6. Refine ramp upper bound evaluation, let ramp profiles dictate final calculation

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/resources/runner/animometer.js:84
&gt; +            var regressionOptions = { desiredFrameLength: desiredFrameLength };
&gt; +            if (profile)
&gt; +                regressionOptions.preferredProfile = profile;

Can&apos;t we write these statement like this:

var regressionOptions = { desiredFrameLength: desiredFrameLength,  preferredProfile: profile };

since preferredProfile will be undefined if profile is undefined anyway.

&gt; PerformanceTests/Animometer/resources/statistics.js:307
&gt; +            var error2 = (k2 + a2*s2*s2 + c2*t2*t2 - 2*d2*s2 - 2*h2*t2 + 2*b2*s2*t2) || Number.MAX_VALUE;

I think making the error equal to Number.MAX_VALUE is better than making it equal to zero. zero means we are suppressing the error as if it did not happen. At the end of this loop, we have the following if-statemnt:

    if (error1 + error2 &lt; error1_best + error2_best)
        setBest(s1, t1, error1, s2, t2, error2, i, x_prime, x);
 
If error1 and error2 are both set to Number.MAX_VALUE, their sum will be Number.Infinity which should work as expected in the above if statement. Number.Infinity can also be used for the rejected regression calculation since Number.Infinity + Number.Infinity is NaN and Nan can&apos;t be less than any number.

&gt; PerformanceTests/Animometer/tests/resources/main.js:524
&gt; +            this._maximumComplexity = Math.round(this._minimumComplexity +
&gt; +                Math.max(5,
&gt; +                    this._possibleMaximumComplexity - this._minimumComplexity,
&gt; +                    (this._changePointEstimator.mean() - this._minimumComplexity) * 2));

What is this statement doing? what is 5? I think we need a comment here.

&gt; PerformanceTests/Animometer/tests/resources/main.js:612
&gt; +    frameLengthTierThreshold: 1000/20,

Should not frameLengthTierThreshold = 1000/15? We have it 1000/30 for the RampController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203443</commentid>
    <comment_count>20</comment_count>
      <attachid>281491</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 15:16:50 -0700</bug_when>
    <thetext>Comment on attachment 281491
7. performance.now fallback

Unofficial r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203457</commentid>
    <comment_count>21</comment_count>
      <attachid>281492</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 15:51:27 -0700</bug_when>
    <thetext>Comment on attachment 281492
8. Confidence interval in final score

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

Unofficial r=me.

&gt; PerformanceTests/Animometer/resources/runner/animometer.js:168
&gt; +            var bootstrapResult = Regression.bootstrap(complexitySamples.data, 2500, function(resampleData) {

Why do we choose iterationCount = 2500? Can&apos;t we use a constant for this value to make the code more readable?

&gt; PerformanceTests/Animometer/resources/runner/animometer.js:172
&gt; +                resampleData.sort(function(a, b) {
&gt; +                    return a[complexityIndex] - b[complexityIndex];
&gt; +                });

Why do we need to make 2500 array sorting for the resampleData? resampleData is supposed to be a random set of complexitySamples.data. Can we sort the array only once and then choose the elements randomly such that are sorted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203463</commentid>
    <comment_count>22</comment_count>
      <attachid>281494</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-17 15:58:37 -0700</bug_when>
    <thetext>Comment on attachment 281494
9. Test updates

Unofficial r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203634</commentid>
    <comment_count>23</comment_count>
      <attachid>281488</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-19 15:30:05 -0700</bug_when>
    <thetext>Comment on attachment 281488
4. Update serialization format to reduce size and make it extensible

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

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:163
&gt;&gt; +            return Number(number.toFixed(3));
&gt; 
&gt; Should not this be:
&gt; return Number(number.toFixed(precision));

Whoops! Yes!

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:632
&gt;&gt; +    },
&gt; 
&gt; What is the need of this function?
&gt; Should not we add a function to either append or insert a datum in this.data instead?

I can refactor to make it less awkward.

&gt;&gt; PerformanceTests/Animometer/resources/extensions.js:634
&gt;&gt; +    getFieldInDatum: function(datum, fieldName)
&gt; 
&gt; Do we need &quot;get&quot; in the name? The class has a function named &quot;at()&quot; not &quot;getAt()&quot;.
&gt; Also should not this function take an index for the datum and not the datum itself?
&gt; 
&gt; Instead of having this sequence of calls:
&gt;    var data = new SampleData(map, []);
&gt;    var datum = data.createDatum();
&gt;    data.setFieldInDatum(datum, &quot;field1&quot;);
&gt;    data.setFieldInDatum(datum, &quot;field2&quot;);
&gt;    data.push(datum);
&gt; 
&gt; We can do it this way:
&gt;    var data = new SampleData(map, []);
&gt;    data.appendDatum();
&gt;    data.setFieldInDatum(data.length() - 1 , &quot;field1&quot;);
&gt;    data.setFieldInDatum(data.length() - 1 , &quot;field2&quot;);
&gt;    data.push(datum);

This function can handle both the index and the datum object. Creating the datum and then referencing it by index instead is indirect.

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:154
&gt;&gt; +        complexityAverageSamples.addField(Strings.json.measurements.stdev, 2);
&gt; 
&gt; Should not this map be static somewhere instead of repeating the same set of calls?

I&apos;d rather now, since that forces exposing how SampleData manages the field map.

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:219
&gt;&gt; +            controllerSamples.setFieldInDatum(sample, Strings.json.complexity, samples[1][i]);
&gt; 
&gt; sample is added to two SampleData but it is modified by the first one even the effect will be in both. Should not we add a class to the SampleDatum itself?

That was intentional, I can add a comment to that effect. My concern with having SampleDatum be a class is that it will make processing results slower, but I hadn&apos;t tried it out. That was also the intent of having the createDatum() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203635</commentid>
    <comment_count>24</comment_count>
      <attachid>281489</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-19 15:38:31 -0700</bug_when>
    <thetext>Comment on attachment 281489
5. Refine ramp lower bound evaluation, lengthen test

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

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:498
&gt;&gt; +            progress = (timestamp - this._rampStartTimestamp) / (this._currentRampLength - this.intervalSamplingLength);
&gt; 
&gt; Can (this._currentRampLength - this.intervalSamplingLength) be zero?

Generally no. this._currentRampLength represents the time left after a warmup period for the ramp (since we do a large jump from low to high # of particles). There is a minuscule possibility that the warmup time of one frame is so bad that it takes up 2.88 seconds to render, and that would cause the denominator to be 0.

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:512
&gt;&gt; +            this._possibleMinimumComplexity = 1;
&gt; 
&gt; Should not write these two if-staments written as if (c2) ... else if (c1) ...
&gt; Also what is .25? Can we use constant to explain its meaning?

No. It&apos;s possible for both to be adjusted in the same interval. Sure I&apos;ll make it a constant.

&gt;&gt; PerformanceTests/ChangeLog:9
&gt;&gt; +        the interval to 150 ms during sampling. Improve the estimation of the ramp parameters.
&gt; 
&gt; Did you mean 120ms?

Yes. I&apos;ll correct it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203702</commentid>
    <comment_count>25</comment_count>
      <attachid>281490</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-19 23:31:05 -0700</bug_when>
    <thetext>Comment on attachment 281490
6. Refine ramp upper bound evaluation, let ramp profiles dictate final calculation

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

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:524
&gt;&gt; +                    (this._changePointEstimator.mean() - this._minimumComplexity) * 2));
&gt; 
&gt; What is this statement doing? what is 5? I think we need a comment here.

I&apos;ll add a comment.

&gt;&gt; PerformanceTests/Animometer/tests/resources/main.js:612
&gt;&gt; +    frameLengthTierThreshold: 1000/20,
&gt; 
&gt; Should not frameLengthTierThreshold = 1000/15? We have it 1000/30 for the RampController.

It might be better to remove this controller, actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203704</commentid>
    <comment_count>26</comment_count>
      <attachid>281492</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-19 23:34:26 -0700</bug_when>
    <thetext>Comment on attachment 281492
8. Confidence interval in final score

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

&gt;&gt; PerformanceTests/Animometer/resources/runner/animometer.js:168
&gt;&gt; +            var bootstrapResult = Regression.bootstrap(complexitySamples.data, 2500, function(resampleData) {
&gt; 
&gt; Why do we choose iterationCount = 2500? Can&apos;t we use a constant for this value to make the code more readable?

I&apos;ll make it a constant.

&gt;&gt; PerformanceTests/Animometer/resources/runner/animometer.js:172
&gt;&gt; +                });
&gt; 
&gt; Why do we need to make 2500 array sorting for the resampleData? resampleData is supposed to be a random set of complexitySamples.data. Can we sort the array only once and then choose the elements randomly such that are sorted?

No. resampleData is a re-sample with replacement, so points can be duplicated. This is done many times, and each time the array can be different, so each needs to be sorted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204371</commentid>
    <comment_count>27</comment_count>
      <attachid>281799</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-21 17:52:28 -0700</bug_when>
    <thetext>Created attachment 281799
Patch with feedback

Patch with feedback incorporated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204373</commentid>
    <comment_count>28</comment_count>
      <attachid>281800</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-21 18:01:34 -0700</bug_when>
    <thetext>Created attachment 281800
Harness updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204374</commentid>
    <comment_count>29</comment_count>
      <attachid>281801</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-21 18:01:59 -0700</bug_when>
    <thetext>Created attachment 281801
Test updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204397</commentid>
    <comment_count>30</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-21 20:11:34 -0700</bug_when>
    <thetext>Committed r202314: &lt;http://trac.webkit.org/changeset/202314&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204399</commentid>
    <comment_count>31</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-06-21 20:12:42 -0700</bug_when>
    <thetext>Committed r202315: &lt;http://trac.webkit.org/changeset/202315&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281484</attachid>
            <date>2016-06-16 15:40:44 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>1. CSS cleanup</desc>
            <filename>0001-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>35409</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBkOWIxYmQ0NmIxNDZmMTIzZWMwZjIxZTg2MTgxMWYzNDU5YjZmMzNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDAzOjExOjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIEFuaW1v
bWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IFJlZmFjdG9yIHRvIGluY2x1ZGUgdGhlIG1haW4gQ1NTIGZp
bGUsIGFuZCByZWRvCnRoZSBsYXlvdXQgc28gdGhhdCBpdCBkb2Vzbid0IHJlbHkgb24gZmxleGJv
eC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3M6Ciog
QW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanM6Cih1cGRhdGVE
aXNwbGF5KTogU2luY2UgdmFyaW91cyBwYXJ0cyBvZiB0aGUgc2NyaXB0IGFsdGVyIHRoZSBib2R5
IGNsYXNzLCB3ZSBjYW4ndApyZXBsYWNlIHRoZSBjbGFzc05hbWUgZGlyZWN0bHkuIEluc3RlYWQs
IHJlbW92ZSBhbGwgZGlzcGxheS1iYXNlZCB2YWx1ZXMgYW5kIHRoZW4gYWRkCnRoZSBvbmUgdGhh
dCB3YXMgc2VsZWN0ZWQuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBo
LmpzOgoodXBkYXRlR3JhcGhEYXRhKTogVG8gc2V0IHRoZSBzaXplIG9mIHRoZSBncmFwaCwgdXNl
IHdpbmRvdy5pbm5lckhlaWdodC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9t
ZXRlci5qczoKKHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24pOiBTaW5jZSB2YXJp
b3VzIHBhcnRzIG9mIHRoZSBzY3JpcHQgYWx0ZXIgdGhlIGJvZHkKY2xhc3MsIHdlIGNhbid0IHJl
cGxhY2UgdGhlIGNsYXNzTmFtZSBkaXJlY3RseS4gUmVtb3ZlIGFsbCBvZiB0aGUgc2VjdGlvbiBj
bGFzc2VzCmluZGl2aWR1YWxseSBhbmQgdGhlbiBhZGQgdGhlIG9uZSBkZXNpcmVkLgoqIEFuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNzczogUmVtb3ZlIC1hcHBsZS1zeXN0ZW0gYXMg
YSBmb250IHRvIHVzZSBpbiB0aGUKc3RhZ2UuCi0tLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL2RldmVsb3Blci5odG1sICAgICAgICAgfCAyMzAgKysrKy0tLS0tCiAuLi4vcmVzb3VyY2Vz
L2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcyAgICAgICAgICB8IDUxOCArKysrKysrLS0tLS0t
LS0tLS0tLS0KIC4uLi9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMgICAgICAg
ICAgIHwgICA1ICstCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBo
LmpzICAgICB8ICAgNyArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzICAgICAgfCAgIDggKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFn
ZS5jc3MgICAgICAgICAgIHwgICAyICstCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAyMyArCiA3IGZpbGVzIGNoYW5nZWQsIDMxOSBpbnNlcnRp
b25zKCspLCA0NzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL2RldmVsb3Blci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2Rl
dmVsb3Blci5odG1sCmluZGV4IGNmMzdlZTAuLjhiYWM5YTEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKQEAgLTEsMTAgKzEsMTQgQEAKIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KLSAgICA8dGl0bGU+QW5pbW9tZXRlciAtIGRldmVsb3Blcjwv
dGl0bGU+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFibGU9bm8iPgorCisg
ICAgPHRpdGxlPk1vdGlvbk1hcmsgMS4wIC0gZGV2ZWxvcGVyPC90aXRsZT4KKworICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvZGVidWctcnVubmVy
L2FuaW1vbWV0ZXIuY3NzIj4KKwogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RyaW5ncy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9leHRlbnNpb25zLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2Ny
aXB0PgpAQCAtMTgsMTM0ICsyMiwxNDAgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci9kMy5taW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZGVidWctcnVubmVyL2dyYXBoLmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiA8L2hl
YWQ+Ci08Ym9keT4KKzxib2R5IGNsYXNzPSJzaG93aW5nLWludHJvIj4KICAgICA8bWFpbj4KLSAg
ICAgICAgPGhyPgogICAgICAgICA8c2VjdGlvbiBpZD0iaW50cm8iIGNsYXNzPSJzZWxlY3RlZCI+
Ci0gICAgICAgICAgICA8aDE+QW5pbW9tZXRlcjwvaDE+Ci0gICAgICAgICAgICA8ZGl2PgotICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+Ci0gICAgICAgICAgICAgICAgICAgIDxoMj5T
dWl0ZXM6PC9oMj4KLSAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0cmVlIj48L3VsPgot
ICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGlkPSJkcm9wLXRhcmdldCI+RHJvcCByZXN1
bHRzIGhlcmU8L3NwYW4+PC9kaXY+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAg
ICAgICAgPGRpdiBpZD0ib3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAgICAgIDxoMj5PcHRpb25z
OjwvaDI+Ci0gICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImJlbmNobWFyay1vcHRpb25z
Ij4KLSAgICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGVzdCBsZW5ndGg6IDxpbnB1dCB0eXBlPSJu
dW1iZXIiIGlkPSJ0ZXN0LWludGVydmFsIiB2YWx1ZT0iMjAiPiBzZWNvbmRzIGVhY2g8L2xhYmVs
PgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8aDM+RGlzcGxheTo8L2gzPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlu
cHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9InJhZGlvIiB2YWx1ZT0ibWluaW1hbCIgY2hlY2tlZD4g
TWluaW1hbDwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxh
YmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFsdWU9InByb2dyZXNzLWJh
ciIgY2hlY2tlZD4gUHJvZ3Jlc3MgYmFyPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAg
ICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkFkanVzdGluZyB0aGUgdGVzdCBj
b21wbGV4aXR5OjwvaDM+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlw
ZT0icmFkaW8iIHZhbHVlPSJmaXhlZCI+IEtlZXAgYXQgYSBmaXhlZCBjb21wbGV4aXR5PC9sYWJl
bD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5h
bWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0ic3RlcCI+IEtlZXAgYXQgYSBmaXhl
ZCBjb21wbGV4aXR5LCB0aGVuIG1ha2UgYSBiaWcgc3RlcDwvbGFiZWw+PC9saT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0
eXBlPSJyYWRpbyIgdmFsdWU9ImFkYXB0aXZlIj4gTWFpbnRhaW4gdGFyZ2V0IEZQUzwvbGFiZWw+
PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1l
PSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAiIGNoZWNrZWQ+IFJhbXA8L2xh
YmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQg
bmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJyYW1wMzAiPiBSYW1wIEAgMzBm
cHM8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAg
ICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWw+VGFyZ2V0IGZyYW1lIHJhdGU6IDxpbnB1dCB0eXBlPSJudW1iZXIi
IGlkPSJmcmFtZS1yYXRlIiB2YWx1ZT0iNTAiPiBGUFM8L2xhYmVsPgotICAgICAgICAgICAgICAg
ICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICA8aDM+S2FsbWFuIGZpbHRlciBlc3RpbWF0ZWQgZXJyb3I6PC9oMz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVs
PlByb2Nlc3MgZXJyb3IgKFEpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ia2FsbWFuLXByb2Nl
c3MtZXJyb3IiIHZhbHVlPSIxIj48L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGxpPjxsYWJlbD5NZWFzdXJlbWVudCBlcnJvciAoUik6IDxpbnB1dCB0eXBlPSJudW1i
ZXIiIGlkPSJrYWxtYW4tbWVhc3VyZW1lbnQtZXJyb3IiIHZhbHVlPSI0Ij48L2xhYmVsPjwvbGk+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICA8L2xp
PgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aDM+
VGltZSBtZWFzdXJlbWVudCBtZXRob2Q6PC9oMz4KKyAgICAgICAgICAgIDxoMT5Nb3Rpb25NYXJr
PC9oMT4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgorICAgICAgICAgICAgICAgIDxk
aXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8aDI+U3VpdGVzOjwvaDI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dWwg
Y2xhc3M9InRyZWUiPjwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGlk
PSJkcm9wLXRhcmdldCI+RHJvcCByZXN1bHRzIGhlcmU8L3NwYW4+PC9kaXY+CisgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJvcHRpb25zIj4K
KyAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PcHRpb25zOjwvaDI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8Zm9ybSBuYW1lPSJiZW5jaG1hcmstb3B0aW9ucyI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgbmFtZT0idGltZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJwZXJmb3Jt
YW5jZSIgY2hlY2tlZD4gPGNvZGU+cGVyZm9ybWFuY2Uubm93KCk8L2NvZGU+PC9sYWJlbD48L2xp
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9InRp
bWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0iZGF0ZSI+IDxjb2RlPkRhdGUubm93
KCk8L2NvZGU+PC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UZXN0IGxlbmd0aDogPGlucHV0IHR5cGU9
Im51bWJlciIgaWQ9InRlc3QtaW50ZXJ2YWwiIHZhbHVlPSIyMCI+IHNlY29uZHMgZWFjaDwvbGFi
ZWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5EaXNwbGF5OjwvaDM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFs
dWU9Im1pbmltYWwiIGNoZWNrZWQ+IE1pbmltYWw8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9
InJhZGlvIiB2YWx1ZT0icHJvZ3Jlc3MtYmFyIiBjaGVja2VkPiBQcm9ncmVzcyBiYXI8L2xhYmVs
PjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGgzPkFkanVzdGluZyB0aGUgdGVzdCBjb21wbGV4aXR5OjwvaDM+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0eXBlPSJyYWRp
byIgdmFsdWU9ImZpeGVkIj4gS2VlcCBhdCBhIGZpeGVkIGNvbXBsZXhpdHk8L2xhYmVsPjwvbGk+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9
ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0ic3RlcCI+IEtlZXAgYXQgYSBmaXhlZCBj
b21wbGV4aXR5LCB0aGVuIG1ha2UgYSBiaWcgc3RlcDwvbGFiZWw+PC9saT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIg
dHlwZT0icmFkaW8iIHZhbHVlPSJhZGFwdGl2ZSI+IE1haW50YWluIHRhcmdldCBGUFM8L2xhYmVs
PjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0icmFtcCIgY2hlY2tlZD4gUmFt
cDwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJl
bD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJyYW1wMzAiPiBS
YW1wIEAgMzBmcHM8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91
bD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlRhcmdldCBmcmFtZSBy
YXRlOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZnJhbWUtcmF0ZSIgdmFsdWU9IjUwIj4gRlBT
PC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkthbG1hbiBmaWx0
ZXIgZXN0aW1hdGVkIGVycm9yOjwvaDM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVs
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPlByb2Nlc3MgZXJy
b3IgKFEpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ia2FsbWFuLXByb2Nlc3MtZXJyb3IiIHZh
bHVlPSIxIj48L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48bGFiZWw+TWVhc3VyZW1lbnQgZXJyb3IgKFIpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0i
a2FsbWFuLW1lYXN1cmVtZW50LWVycm9yIiB2YWx1ZT0iNCI+PC9sYWJlbD48L2xpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xp
PgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxoMz5UaW1lIG1lYXN1cmVtZW50IG1ldGhvZDo8L2gzPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJl
bD48aW5wdXQgbmFtZT0idGltZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJwZXJm
b3JtYW5jZSIgY2hlY2tlZD4gPGNvZGU+cGVyZm9ybWFuY2Uubm93KCk8L2NvZGU+PC9sYWJlbD48
L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBu
YW1lPSJ0aW1lLW1lYXN1cmVtZW50IiB0eXBlPSJyYWRpbyIgdmFsdWU9ImRhdGUiPiA8Y29kZT5E
YXRlLm5vdygpPC9jb2RlPjwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAg
ICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRlIHJlc3VsdHMsIHBsZWFz
ZSB0YWtlIHRoZSBicm93c2VyIHdpbmRvdyBmdWxsIHNjcmVlbiwgb3Igcm90YXRlIHRoZSBkZXZp
Y2UgdG8gbGFuZHNjYXBlIG9yaWVudGF0aW9uLjwvcD4KKyAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJvcmllbnRhdGlvbi1jaGVjayI+CisgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJo
aWRkZW4iPlBsZWFzZSByb3RhdGUgdGhlIGRldmljZSB0byBvcmllbnRhdGlvbiBiZWZvcmUgc3Rh
cnRpbmcuPC9wPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJydW4tYmVuY2htYXJr
IiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0QmVuY2htYXJrKCkiPlJ1biBiZW5j
aG1hcms8L2J1dHRvbj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2
PgotICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRlIHJlc3VsdHMsIHBsZWFzZSB0YWtlIHRoZSBi
cm93c2VyIHdpbmRvdyBmdWxsIHNjcmVlbiwgb3Igcm90YXRlIHRoZSBkZXZpY2UgdG8gbGFuZHNj
YXBlIG9yaWVudGF0aW9uLjwvcD4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yaWVudGF0aW9u
LWNoZWNrIj4KLSAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGlkZGVuIj5QbGVhc2Ugcm90YXRl
IHRoZSBkZXZpY2UgdG8gb3JpZW50YXRpb24gYmVmb3JlIHN0YXJ0aW5nLjwvcD4KLSAgICAgICAg
ICAgICAgICA8YnV0dG9uIGlkPSJydW4tYmVuY2htYXJrIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250
cm9sbGVyLnN0YXJ0QmVuY2htYXJrKCkiPlJ1biBiZW5jaG1hcms8L2J1dHRvbj4KICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICA8L3NlY3Rpb24+CisKICAgICAgICAgPHNlY3Rpb24gaWQ9InRl
c3QtY29udGFpbmVyIj4KICAgICAgICAgICAgIDxkaXYgaWQ9InJ1bm5pbmctdGVzdCIgY2xhc3M9
ImZyYW1lLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGlkPSJwcm9ncmVzcyI+
CiAgICAgICAgICAgICAgICAgPGRpdiBpZD0icHJvZ3Jlc3MtY29tcGxldGVkIj48L2Rpdj4KICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L3NlY3Rpb24+CisKICAgICAgICAgPHNlY3Rpb24g
aWQ9InJlc3VsdHMiPgotICAgICAgICAgICAgPGgxPkFuaW1vbWV0ZXIgc2NvcmU8L2gxPgotICAg
ICAgICAgICAgPHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNo
b3dEZWJ1Z0luZm8oKSI+PC9wPgotICAgICAgICAgICAgPGRpdiBpZD0icmVzdWx0cy10YWJsZXMi
PgotICAgICAgICAgICAgICAgIDxkaXY+Ci0gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0i
cmVzdWx0cy1zY29yZSI+PC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJy
ZXN1bHRzLWRhdGEiPjwvdGFibGU+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KKyAg
ICAgICAgICAgICAgICA8aDE+TW90aW9uTWFyayBzY29yZTwvaDE+CisgICAgICAgICAgICAgICAg
PHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dEZWJ1Z0lu
Zm8oKSI+PC9wPgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9InJlc3VsdHMtdGFibGVzIj4KKyAg
ICAgICAgICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBp
ZD0icmVzdWx0cy1zY29yZSI+PC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJs
ZSBpZD0icmVzdWx0cy1kYXRhIj48L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWhlYWRlciI+PC90YWJsZT4K
ICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3Vs
dHMtaGVhZGVyIj48L3RhYmxlPgorICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYmVu
Y2htYXJrQ29udHJvbGxlci5yZXN0YXJ0QmVuY2htYXJrKCkiPlRlc3QgQWdhaW48L2J1dHRvbj4K
KyAgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgICAgJ2onOiBTaG93IEpTT04g
cmVzdWx0czxici8+CisgICAgICAgICAgICAgICAgICAgICdzJzogU2VsZWN0IHZhcmlvdXMgcmVz
dWx0cyBmb3IgY29weS9wYXN0ZSAodXNlIHJlcGVhdGVkbHkgdG8gY3ljbGUpCisgICAgICAgICAg
ICAgICAgPC9wPgogICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8YnV0dG9uIG9uY2xp
Y2s9ImJlbmNobWFya0NvbnRyb2xsZXIucmVzdGFydEJlbmNobWFyaygpIj5UZXN0IEFnYWluPC9i
dXR0b24+Ci0gICAgICAgICAgICA8cD4KLSAgICAgICAgICAgICAgICAnaic6IFNob3cgSlNPTiBy
ZXN1bHRzPGJyLz4KLSAgICAgICAgICAgICAgICAncyc6IFNlbGVjdCB2YXJpb3VzIHJlc3VsdHMg
Zm9yIGNvcHkvcGFzdGUgKHVzZSByZXBlYXRlZGx5IHRvIGN5Y2xlKQotICAgICAgICAgICAgPC9w
PgogICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgIDxzZWN0aW9uIGlkPSJ0ZXN0LWdyYXBoIj4K
LSAgICAgICAgICAgIDxoZWFkZXI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJi
ZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRzKCkiPiZsdDsgUmVzdWx0czwvYnV0dG9uPgot
ICAgICAgICAgICAgICAgIDxoMT5HcmFwaDo8L2gxPgotICAgICAgICAgICAgPC9oZWFkZXI+Ci0g
ICAgICAgICAgICA8bmF2PgotICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImdyYXBoLXR5cGUi
PgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZ3JhcGgtdHlwZSIgdmFsdWU9InRpbWUi
PiBUaW1lIGdyYXBoPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImdyYXBoLXR5cGUiIHZhbHVlPSJjb21wbGV4
aXR5IiBjaGVja2VkPiBDb21wbGV4aXR5IGdyYXBoPC9sYWJlbD48L2xpPgotICAgICAgICAgICAg
ICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgIDwvZm9ybT4KLSAgICAgICAgICAgICAgICA8
Zm9ybSBuYW1lPSJ0aW1lLWdyYXBoLW9wdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICA8dWw+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgbmFtZT0ibWFya2VycyIgY2hlY2tlZD4gTWFya2VyczwvbGFiZWw+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNwYW4+dGltZTogPHNwYW4gY2xhc3M9InRpbWUiPjwvc3Bhbj48L3Nw
YW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9
ImNoZWNrYm94IiBuYW1lPSJhdmVyYWdlcyIgY2hlY2tlZD4gQXZlcmFnZXM8L2xhYmVsPjwvbGk+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgbmFtZT0iY29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0eTwvbGFiZWw+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbXBsZXhpdHkiPjwvc3Bhbj48L2xp
PgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2ti
b3giIG5hbWU9InJhd0ZQUyIgY2hlY2tlZD4gUmF3IEZQUzwvbGFiZWw+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJhd0ZQUyI+PC9zcGFuPjwvbGk+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0i
ZmlsdGVyZWRGUFMiIGNoZWNrZWQ+IEZpbHRlcmVkIEZQUzwvbGFiZWw+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbHRlcmVkRlBTIj48L3NwYW4+PC9saT4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBu
YW1lPSJyZWdyZXNzaW9ucyIgY2hlY2tlZD4gUmVncmVzc2lvbnM8L2xhYmVsPgotICAgICAgICAg
ICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgIDwvZm9ybT4KLSAgICAgICAgICAgICAg
ICA8Zm9ybSBuYW1lPSJjb21wbGV4aXR5LWdyYXBoLW9wdGlvbnMiPgotICAgICAgICAgICAgICAg
ICAgICA8dWwgY2xhc3M9InNlcmllcyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxh
YmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ic2VyaWVzLXJhdyIgY2hlY2tlZD4gU2Vy
aWVzIHJhdzwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJzZXJpZXMtYXZlcmFnZSI+IFNlcmllcyBhdmVy
YWdlPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAg
ICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgbmFtZT0icmVncmVzc2lvbi10aW1lLXNjb3JlIj4gQ29udHJvbGxlciBz
Y29yZTwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlu
cHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJib290c3RyYXAtc2NvcmUiIGNoZWNrZWQ+IEJvb3Rz
dHJhcCBzY29yZSBhbmQgaGlzdG9ncmFtPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNvbXBsZXhpdHkt
cmVncmVzc2lvbi1hZ2dyZWdhdGUtcmF3IiBjaGVja2VkPiBSZWdyZXNzaW9uLCBzZXJpZXMgcmF3
PC9sYWJlbD48c3BhbiBpZD0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1yYXciPjwv
c3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlw
ZT0iY2hlY2tib3giIG5hbWU9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtYXZlcmFn
ZSI+IFJlZ3Jlc3Npb24sIHNlcmllcyBhdmVyYWdlPC9sYWJlbD48c3BhbiBpZD0iY29tcGxleGl0
eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIj48L3NwYW4+PC9saT4KLSAgICAgICAgICAg
ICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICA8L2Zvcm0+Ci0gICAgICAgICAgICA8L25h
dj4KLSAgICAgICAgICAgIDxwIGNsYXNzPSJzY29yZSI+PC9wPgotICAgICAgICAgICAgPHAgY2xh
c3M9Im1lYW4iPjwvcD4KLSAgICAgICAgICAgIDxkaXYgaWQ9InRlc3QtZ3JhcGgtZGF0YSI+PC9k
aXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KKyAgICAgICAgICAgICAgICA8aGVh
ZGVyPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRy
b2xsZXIuc2hvd1Jlc3VsdHMoKSI+Jmx0OyBSZXN1bHRzPC9idXR0b24+CisgICAgICAgICAgICAg
ICAgICAgIDxoMT5HcmFwaDo8L2gxPgorICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2Nv
cmUiPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1lYW4iPjwvcD4KKyAgICAg
ICAgICAgICAgICA8L2hlYWRlcj4KKyAgICAgICAgICAgICAgICA8bmF2PgorICAgICAgICAgICAg
ICAgICAgICA8Zm9ybSBuYW1lPSJncmFwaC10eXBlIj4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBl
PSJyYWRpbyIgbmFtZT0iZ3JhcGgtdHlwZSIgdmFsdWU9InRpbWUiPiBUaW1lIGdyYXBoPC9sYWJl
bD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5
cGU9InJhZGlvIiBuYW1lPSJncmFwaC10eXBlIiB2YWx1ZT0iY29tcGxleGl0eSIgY2hlY2tlZD4g
Q29tcGxleGl0eSBncmFwaDwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwv
dWw+CisgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPGZv
cm0gbmFtZT0idGltZS1ncmFwaC1vcHRpb25zIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1
bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgbmFtZT0ibWFya2VycyIgY2hlY2tlZD4gTWFya2VyczwvbGFiZWw+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnRpbWU6IDxzcGFuIGNsYXNzPSJ0aW1lIj48
L3NwYW4+PC9zcGFuPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJl
bD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImF2ZXJhZ2VzIiBjaGVja2VkPiBBdmVyYWdl
czwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxp
bnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0
eTwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJj
b21wbGV4aXR5Ij48L3NwYW4+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmF3RlBTIiBjaGVja2VkPiBSYXcg
RlBTPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
InJhd0ZQUyI+PC9zcGFuPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpbHRlcmVkRlBTIiBjaGVja2VkPiBG
aWx0ZXJlZCBGUFM8L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bh
biBjbGFzcz0iZmlsdGVyZWRGUFMiPjwvc3Bhbj48L2xpPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9u
cyIgY2hlY2tlZD4gUmVncmVzc2lvbnM8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAg
ICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgICAg
ICAgIDxmb3JtIG5hbWU9ImNvbXBsZXhpdHktZ3JhcGgtb3B0aW9ucyI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8dWwgY2xhc3M9InNlcmllcyI+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlcmllcy1yYXciIGNo
ZWNrZWQ+IFNlcmllcyByYXc8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlcmllcy1hdmVyYWdl
Ij4gU2VyaWVzIGF2ZXJhZ2U8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8
L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9u
LXRpbWUtc2NvcmUiPiBDb250cm9sbGVyIHNjb3JlPC9sYWJlbD48L2xpPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJi
b290c3RyYXAtc2NvcmUiIGNoZWNrZWQ+IEJvb3RzdHJhcCBzY29yZSBhbmQgaGlzdG9ncmFtPC9s
YWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVnYXRlLXJh
dyIgY2hlY2tlZD4gUmVncmVzc2lvbiwgc2VyaWVzIHJhdzwvbGFiZWw+PHNwYW4gaWQ9ImNvbXBs
ZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtcmF3Ij48L3NwYW4+PC9saT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0i
Y29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIj4gUmVncmVzc2lvbiwgc2Vy
aWVzIGF2ZXJhZ2U8L2xhYmVsPjxzcGFuIGlkPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVn
YXRlLWF2ZXJhZ2UiPjwvc3Bhbj48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4K
KyAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgorICAgICAgICAgICAgICAgIDwvbmF2PgorICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9InRlc3QtZ3JhcGgtZGF0YSI+PC9kaXY+CisgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgotICAgICAgICA8aHI+CiAgICAgPC9tYWluPgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3MgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcwppbmRleCAx
ZDNkZDMzLi5jMTJjYTA2IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcworKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcwpAQCAt
MSw5MyArMSw2MSBAQAotLyogT3V0ZXIgaGFybmVzcyAqLwotaHRtbCxib2R5IHsKLSAgICBoZWln
aHQ6IDEwMCU7Ci0gICAgbWFyZ2luOiAwcHg7Ci0gICAgcGFkZGluZzogMHB4OwotfQotCiBib2R5
IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQxLCAyNDEsIDI0MSk7Ci0gICAgY29sb3I6
IHJnYig5NiwgOTYsIDk2KTsKLSAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgIkhlbHZl
dGljYSBOZXVlIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBzYW5zLXNlcmlmOwotfQotCi1tYWluIHsK
LSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0KLSAgICBkaXNwbGF5OiBmbGV4
OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0
YXJ0OwotICAgIGZsZXgtZmxvdzogY29sdW1uOworICAgIGZvbnQtc2l6ZTogaW5pdGlhbDsKIH0K
IAotaHIgewotICAgIGZsZXg6IDEgMCAyMHB4OwotICAgIHdpZHRoOiAxcHg7Ci0gICAgYm9yZGVy
OiAwOwotICAgIG1hcmdpbjogMDsKLX0KK2JvZHkuc2hvd2luZy1pbnRybywKK2JvZHkuc2hvd2lu
Zy1yZXN1bHRzLAorYm9keS5zaG93aW5nLXRlc3QtZ3JhcGggeworICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYig5NiwgOTYsIDk2KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbml0aWFsOworICAg
IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsOworICAgIGJhY2tncm91bmQtc2l6ZTogaW5pdGlh
bDsKKyAgICBhbmltYXRpb246IGluaXRpYWw7CisgICAgd2lsbC1jaGFuZ2U6IGluaXRpYWw7CiAK
LXNlY3Rpb24gewotICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgd2lkdGg6IDEwMCU7
Ci0gICAgZGlzcGxheTogbm9uZTsKKyAgICBjb2xvcjogcmdiKDIzNSwgMjM1LCAyMzUpOwogfQog
Ci1zZWN0aW9uLnNlbGVjdGVkIHsKLSAgICBkaXNwbGF5OiBpbml0aWFsOworc2VjdGlvbiAuYm9k
eSB7CisgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgbWF4LXdpZHRoOiBpbml0aWFsOworICAgIHRy
YW5zZm9ybTogbm9uZTsKIH0KIAogaDEgewogICAgIGZvbnQtc2l6ZTogM2VtOworICAgIG1hcmdp
bjogMS41ZW0gMCAuNWVtOwogICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICBmb250LXdlaWdo
dDogNjAwOwotICAgIG1hcmdpbjogMTB2aCAwOwotICAgIGZsZXg6IDAgMSAxZW07Ci19Ci0KLS5o
aWRkZW4gewotICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKIGJ1dHRvbiB7Ci0gICAgZmxleDogMCAw
IGF1dG87CisgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7CisgICAgbWluLXdpZHRoOiBp
bml0aWFsOworICAgIHRyYW5zaXRpb246IG5vbmU7CisgICAgYW5pbWF0aW9uOiBub25lOworICAg
IHdpbGwtY2hhbmdlOiBpbml0aWFsOworCiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgZm9udC1z
aXplOiAxLjVlbTsKLSAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoOTYsIDk2LCA5Nik7Ci0gICAg
Y29sb3I6IHJnYig5NiwgOTYsIDk2KTsKKyAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMjM1LCAy
MzUsIDIzNSk7CisgICAgY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKICAgICBiYWNrZ3JvdW5k
OiB0cmFuc3BhcmVudDsKICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgIHBhZGRpbmc6IC41
ZW0gMmVtOwogfQogCiBidXR0b246aG92ZXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEo
MCwgMCwgMCwgLjEpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg
LjEpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAogYnV0dG9uOmFjdGl2ZSB7CiAgICAgY29s
b3I6IGluaGVyaXQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMik7CiB9CiAKIGJ1dHRv
bjpkaXNhYmxlZCB7Ci0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDk2LCA5NiwgOTYsIC41KTsKLSAg
ICBjb2xvcjogcmdiYSg5NiwgOTYsIDk2LCAuNSk7Ci19Ci0KLUBtZWRpYSBzY3JlZW4gYW5kICht
aW4tZGV2aWNlLWhlaWdodDogMTAyNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXdp
ZHRoOiAxMDI0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgIHNlY3Rpb24g
ewotICAgICAgICBwYWRkaW5nOiAwIDIwcHg7Ci0gICAgfQotCi0gICAgc2VjdGlvbi5zZWxlY3Rl
ZCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7
Ci0gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICAgICAgZmxleC1mbG93
OiBjb2x1bW47Ci0gICAgfQorICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzUsIDIzNSwgMjM1LCAu
NSk7CisgICAgY29sb3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgLjUpOwogfQogCiBAbWVkaWEgc2Ny
ZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLApAQCAtOTYsMjgwICs2NCwxNCBAQCBi
dXR0b246ZGlzYWJsZWQgewogICAgICAgICBmb250LXNpemU6IDIuNWVtOwogICAgIH0KIAotICAg
IGhyIHsKLSAgICAgICAgZmxleDogMCAwIDA7Ci0gICAgfQotCiAgICAgc2VjdGlvbiB7CiAgICAg
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAg
ICBoZWlnaHQ6IDEwMCU7Ci0gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgICAgICAgIHBh
ZGRpbmc6IDAgNXB4OwogICAgIH0KIH0KIAotLyogSW50cm8gc2VjdGlvbiAqLwotI2ludHJvLnNl
bGVjdGVkIHsKLSAgICBmbGV4OiAxIDAgYXV0bzsKLX0KLQotI2ludHJvID4gcCB7Ci0gICAgZmxl
eDogMCAxIGF1dG87Ci0gICAgcGFkZGluZzogLjVlbSAwOwotICAgIG1hcmdpbjogMDsKLSAgICBm
b250LXNpemU6IDJlbTsKLX0KLQotI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayB7Ci0gICAgcGFk
ZGluZzogMTB2aCAwOwotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLX0KLQotI2ludHJvIC5vcmll
bnRhdGlvbi1jaGVjayBwIHsKLSAgICBmb250LXNpemU6IDFlbTsKLSAgICBjb2xvcjogaHNsKDEx
LCA3MiUsIDUwJSk7Ci0gICAgbWFyZ2luLWJvdHRvbTogMWVtOwotICAgIC1hcHBsZS10cmFpbGlu
Zy13b3JkOiAtYXBwbGUtcGFydGlhbGx5LWJhbGFuY2VkOwotfQotCi0jaW50cm8gLm9yaWVudGF0
aW9uLWNoZWNrIGJ1dHRvbiB7Ci0gICAgbWFyZ2luOiAwIGF1dG87Ci19Ci0KLUBtZWRpYSBzY3Jl
ZW4gYW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTAyNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtaW4t
ZGV2aWNlLXdpZHRoOiAxMDI0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAg
ICNpbnRybyBwIHsKLSAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKLSAgICAgICAgbWFyZ2luOiAw
OwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4
KSwKLSAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50
YXRpb246IGxhbmRzY2FwZSkgewotICAgICNpbnRyby5zZWxlY3RlZCB7Ci0gICAgICAgIGRpc3Bs
YXk6IGZsZXg7Ci0gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgICAgIGp1c3RpZnkt
Y29udGVudDogZmxleC1zdGFydDsKLSAgICAgICAgZmxleC1mbG93OiBjb2x1bW47Ci0gICAgfQot
Ci0gICAgI2ludHJvIHAgewotICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7Ci0gICAgICAgIHBh
ZGRpbmctcmlnaHQ6IDIwcHg7Ci0gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07Ci0gICAgfQotfQot
Ci0vKiBSdW5uaW5nIHRlc3Qgc2VjdGlvbiAqLwotI3Rlc3QtY29udGFpbmVyLnNlbGVjdGVkIHsK
LSAgICBkaXNwbGF5OiBmbGV4OwotCi0gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICBqdXN0
aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKLX0KLQotLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0g
ICAgd2lkdGg6IDEyMDBweDsKLSAgICBoZWlnaHQ6IDYwMHB4OwotICAgIGJvcmRlcjogMDsKLSAg
ICBtYXJnaW46IDAgYXV0bzsKLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lk
dGg6IDQxNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFu
ZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICN0ZXN0LWNvbnRhaW5lciB7Ci0gICAg
ICAgIHBhZGRpbmc6IDA7Ci0gICAgfQotCi0gICAgLmZyYW1lLWNvbnRhaW5lciB7Ci0gICAgICAg
IHdpZHRoOiAxMDAlOwotICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDFweCk7Ci0gICAgfQot
Ci0gICAgLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0gICAgICAgIHdpZHRoOiAxMDAlOwot
ICAgICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgfQotfQotCi1AbWVkaWEgKG1pbi1kZXZpY2UtaGVp
Z2h0OiA3NjhweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogMTAyNHB4KSB7Ci0gICAgLmZyYW1l
LWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0gICAgICAgIHdpZHRoOiA5MDBweDsKLSAgICAgICAgaGVp
Z2h0OiA2MDBweDsKLSAgICB9Ci19Ci0KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdp
ZHRoOiAxMDI0cHgpIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDEzNjZweCkgewotICAgIC5mcmFt
ZS1jb250YWluZXIgPiBpZnJhbWUgewotICAgICAgICB3aWR0aDogMTIwMHB4OwotICAgICAgICBo
ZWlnaHQ6IDgwMHB4OwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDog
MTgwMHB4KSB7Ci0gICAgLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0gICAgICAgIHdpZHRo
OiAxNjAwcHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7Ci0gICAgfQotfQotCi0vKiBSZXN1bHRz
IHNlY3Rpb24gKi8KLSNyZXN1bHRzIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci0KLSNy
ZXN1bHRzLnNlbGVjdGVkIHsKLSAgICBmbGV4OiAxIDAgYXV0bzsKLX0KLQotLnNjb3JlIHsKLSAg
ICBmb250LXNpemU6IDVlbTsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICBtYXJnaW46IDA7
Ci19Ci0KLSNyZXN1bHRzLXRhYmxlcyB7Ci0gICAgZGlyZWN0aW9uOiBydGw7Ci0KLSAgICBkaXNw
bGF5OiBmbGV4OwotCi0gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICBqdXN0aWZ5LWNvbnRl
bnQ6IGNlbnRlcjsKLQotICAgIG1hcmdpbjogM2VtIDA7Ci19Ci0KLSNyZXN1bHRzIHRhYmxlIHsK
LSAgICBkaXJlY3Rpb246IGx0cjsKLSAgICBib3JkZXItc3BhY2luZzogMDsKLX0KLQotI3Jlc3Vs
dHMgdGggewotICAgIHBhZGRpbmc6IC41ZW0gMDsKLX0KLQotI3Jlc3VsdHMgdHIgdGQgewotICAg
IHBhZGRpbmc6IC4yNWVtIDA7Ci19Ci0KLSNyZXN1bHRzLWhlYWRlciB0ZCwgI3Jlc3VsdHMtaGVh
ZGVyIHRoIHsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotfQotI3Jlc3VsdHMtaGVhZGVyIHRyIHRk
IHsKLSAgICBwYWRkaW5nLXJpZ2h0OiAxZW07Ci19Ci0jcmVzdWx0cy1zY29yZSB0ZCwgI3Jlc3Vs
dHMtc2NvcmUgdGggewotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotfQotI3Jlc3VsdHMgZm9vdGVy
IHsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTB2aDsKLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1h
eC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdo
dDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICNyZXN1bHRzLnNl
bGVjdGVkIHsKLSAgICAgICAgcGFkZGluZzogMCAyMHB4OwotICAgICAgICBkaXNwbGF5OiBmbGV4
OwotICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6
IGZsZXgtc3RhcnQ7Ci0gICAgICAgIGZsZXgtZmxvdzogY29sdW1uOwotICAgIH0KLQotICAgIC5z
Y29yZSB7Ci0gICAgICAgIGZvbnQtc2l6ZTogM2VtOwotICAgIH0KLX0KLQotI292ZXJsYXkgewot
ICAgIHBvc2l0aW9uOiBmaXhlZDsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMCU7
Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1
KTsKLSAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDEwLCAuOCk7Ci19Ci0KLUBzdXBwb3J0cyAo
LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkpIHsKLSAgICAjb3ZlcmxheSB7Ci0g
ICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMTAsIC40KTsKLSAgICAgICAgLXdlYmtpdC1i
YWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7Ci0gICAgfQotfQotCi0jb3ZlcmxheSA+IGRpdiB7
Ci0gICAgd2lkdGg6IDUwMHB4OwotICAgIGhlaWdodDogNTAwcHg7Ci0gICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgIG1hcmdpbi10b3A6IC0yNTBweDsKLSAgICBtYXJnaW4tbGVmdDogLTI1MHB4
OwotICAgIHRvcDogNTAlOwotICAgIGxlZnQ6IDUwJTsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAg
IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICBmbGV4LWZsb3c6IGNvbHVtbjsKLX0K
LQotI292ZXJsYXkgPiBkaXYgZGl2IHsKLSAgICBmbGV4OiAxIDEgYXV0bzsKLSAgICBvdmVyZmxv
dzogc2Nyb2xsOwotICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyNDEsIDI0MSwgMjQxKTsKLSAg
ICBwYWRkaW5nOiAycHg7Ci0gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKLX0KLQotI292ZXJs
YXkgYnV0dG9uIHsKLSAgICBtYXJnaW46IDFlbSA1ZW07Ci0gICAgYm9yZGVyLWNvbG9yOiByZ2Io
MjQxLCAyNDEsIDI0MSk7Ci0gICAgY29sb3I6IHJnYigyNDEsIDI0MSwgMjQxKTsKLX0KLQotI292
ZXJsYXkgYnV0dG9uOmhvdmVyIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1
LCAyNTUsIC4xKTsKLX0KLQotI292ZXJsYXkgYnV0dG9uOmFjdGl2ZSB7Ci0gICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMik7Ci19Ci0KLS8qIERlYnVnIHNwZWNpZmlj
ICovCi1ib2R5IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTYsIDk2LCA5Nik7Ci0gICAg
Y29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKLX0KLQotaDEgewotICAgIG1hcmdpbjogNXZoIDA7
Ci19Ci0KLWJ1dHRvbiB7Ci0gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDIzNSwgMjM1LCAyMzUp
OwotICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7Ci19Ci0KLWJ1dHRvbjpkaXNhYmxlZCB7
Ci0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzNSwgMjM1LCAyMzUsIC41KTsKLSAgICBjb2xvcjog
cmdiYSgyMzUsIDIzNSwgMjM1LCAuNSk7Ci19Ci0KLWJ1dHRvbjpob3ZlciB7Ci0gICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMSk7Ci0gICAgY3Vyc29yOiBwb2ludGVy
OwotfQotCi1idXR0b246YWN0aXZlIHsKLSAgICBjb2xvcjogaW5oZXJpdDsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTsKLX0KLQotQG1lZGlhIHNjcmVlbiBh
bmQgKG1pbi13aWR0aDogMTgwMHB4KSB7Ci0gICAgc2VjdGlvbiB7Ci0gICAgICAgIHdpZHRoOiAx
NjAwcHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7Ci0gICAgfQotfQotCiAvKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJlZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICovCkBAIC00NjAsMjAgKzE2Miw1NCBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIC8qIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICovCiAKICNpbnRybyB7Ci0gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLSAg
ICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0gICAgYWxpZ24tY29udGVudDogY2VudGVy
OworICAgIHBhZGRpbmc6IDA7CisgICAgb3BhY2l0eTogaW5pdGlhbDsKKyAgICB0cmFuc2l0aW9u
OiBub25lOworfQorCisjaW50cm8gLmJvZHkgPiBwIHsKKyAgICBwYWRkaW5nOiAxZW0gMDsKKyAg
ICBtYXJnaW46IDAgYXV0bzsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKyNpbnRybyAu
b3JpZW50YXRpb24tY2hlY2sgeworICAgIHBhZGRpbmc6IDEwdmggMDsKKyAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7Cit9CisKKyNpbnRybyAub3JpZW50YXRpb24tY2hlY2sgcCB7CisgICAgY29sb3I6
IGhzbCgxMSwgNzIlLCA1MCUpOworICAgIG1hcmdpbi1ib3R0b206IDFlbTsKKyAgICAtYXBwbGUt
dHJhaWxpbmctd29yZDogLWFwcGxlLXBhcnRpYWxseS1iYWxhbmNlZDsKK30KKworI2ludHJvIC5v
cmllbnRhdGlvbi1jaGVjayBidXR0b24geworICAgIG1hcmdpbjogMCBhdXRvOworfQogCi0gICAg
bWluLWhlaWdodDogNjAwcHg7Ci0gICAgaGVpZ2h0OiBhdXRvOworCitAbWVkaWEgc2NyZWVuIGFu
ZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLAorICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Ut
aGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7CisgICAgI2ludHJv
LnNlbGVjdGVkIHsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgYWxpZ24taXRlbXM6
IGNlbnRlcjsKKyAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OworICAgICAgICBm
bGV4LWZsb3c6IGNvbHVtbjsKKyAgICB9CisKKyAgICAjaW50cm8gcCB7CisgICAgICAgIHBhZGRp
bmctbGVmdDogMjBweDsKKyAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKKyAgICAgICAgZm9u
dC1zaXplOiAxLjVlbTsKKyAgICB9CiB9CiAKICNpbnRybyBoMiB7Ci0gICAgbWFyZ2luLXRvcDog
MDsKICAgICBmb250LXNpemU6IDEuMmVtOwogfQogCi0jaW50cm8gPiBkaXY6Zmlyc3Qtb2YtdHlw
ZSB7CisjaW50cm8gLmJvZHkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7CiAgICAgd2lkdGg6IDEwMCU7
CiAgICAgbWFyZ2luOiAyZW0gMCAwOwogICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CkBAIC01Njcs
MTkgKzMwMyw5IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogICAgIGNvbG9yOiBoc2woMTEsIDEwMCUs
IDY2JSk7CiB9CiAKLUBtZWRpYSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAxODAwcHgp
IHsKLSAgICAjaW50cm8gewotICAgICAgICBtaW4taGVpZ2h0OiA4MDBweDsKLSAgICB9Ci19Ci0K
IEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCiAgICAgc2NyZWVu
IGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2Nh
cGUpIHsKLSAgICAjaW50cm8gewotICAgICAgICBtaW4taGVpZ2h0OiAxMDAlOwotICAgIH0KLQot
ICAgICNpbnRybyA+IGRpdjpmaXJzdC1vZi10eXBlIHsKKyAgICAjaW50cm8gLmJvZHkgPiBkaXY6
Zmlyc3Qtb2YtdHlwZSB7CiAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgfQog
CkBAIC01OTUsMTAgKzMyMSw2IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogLyogICAgICAgICAgICAg
ICAgICAgICAgICAgICBSdW5uaW5nIFNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLSN0ZXN0LWNvbnRhaW5lciB7Ci0g
ICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCiAjcnVubmluZy10ZXN0IHsKICAgICBkaXNwbGF5
OiBmbGV4OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC02MzIsNiArMzU0LDEwIEBAIGxh
YmVsLnRyZWUtbGFiZWwgewogLyogICAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHRzIFNl
Y3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCiAKKyNyZXN1bHRzIHsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKICNy
ZXN1bHRzIGgxLCAjdGVzdC1ncmFwaCBoMSB7CiAgICAgZm9udC1zaXplOiAyZW07CiB9CkBAIC02
NTIsNiArMzc4LDggQEAgbGFiZWwudHJlZS1sYWJlbCB7CiAKIC5zY29yZSB7CiAgICAgZm9udC1z
aXplOiAzZW07CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgbWFyZ2luOiAwOwogfQogCiAu
bWVhbiB7CkBAIC02NjEsNiArMzg5LDg5IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogICAgIGZvbnQt
d2VpZ2h0OiA0MDA7CiB9CiAKKyNyZXN1bHRzLXRhYmxlcyB7CisgICAgZGlyZWN0aW9uOiBydGw7
CisKKyAgICBkaXNwbGF5OiBmbGV4OworCisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBq
dXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKworICAgIG1hcmdpbjogM2VtIDA7Cit9CisKKyNyZXN1
bHRzIHRhYmxlIHsKKyAgICBkaXJlY3Rpb246IGx0cjsKKyAgICBtaW4td2lkdGg6IGluaXRpYWw7
Cit9CisKKyNyZXN1bHRzIHRhYmxlIHRkLnN1aXRlcy1zZXBhcmF0b3IgeworICAgIHBhZGRpbmc6
IC41ZW0gMDsKK30KKworI3Jlc3VsdHMgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KKworI3Jlc3VsdHMgdGggeworICAgIHBh
ZGRpbmc6IC41ZW0gMDsKK30KKworI3Jlc3VsdHMgdHIgdGQgeworICAgIHBhZGRpbmc6IC4yNWVt
IDA7Cit9CisKKyNyZXN1bHRzLWhlYWRlciB0ZCwgI3Jlc3VsdHMtaGVhZGVyIHRoIHsKKyAgICB0
ZXh0LWFsaWduOiBsZWZ0OworfQorI3Jlc3VsdHMtaGVhZGVyIHRyIHRkIHsKKyAgICBwYWRkaW5n
LXJpZ2h0OiAxZW07Cit9CisjcmVzdWx0cy1zY29yZSB0ZCwgI3Jlc3VsdHMtc2NvcmUgdGggewor
ICAgIHRleHQtYWxpZ246IHJpZ2h0OworfQorI3Jlc3VsdHMgLmJvZHkgPiBidXR0b24geworICAg
IG1hcmdpbjogMS41ZW0gYXV0byAuNWVtOworfQorI3Jlc3VsdHMgZm9vdGVyIHsKKyAgICBwYWRk
aW5nLWJvdHRvbTogMTB2aDsKK30KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lk
dGg6IDQxNHB4KSwKKyAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFu
ZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgeworICAgICNyZXN1bHRzLnNlbGVjdGVkIHsKKyAg
ICAgICAgcGFkZGluZzogMCAyMHB4OworICAgIH0KK30KKworI292ZXJsYXkgeworICAgIGJhY2tn
cm91bmQ6IHJnYmEoMCwgMCwgMTAsIC44KTsKK30KKworQHN1cHBvcnRzICgtd2Via2l0LWJhY2tk
cm9wLWZpbHRlcjogYmx1cigxMHB4KSkgeworICAgICNvdmVybGF5IHsKKyAgICAgICAgYmFja2dy
b3VuZDogcmdiYSgwLCAwLCAxMCwgLjQpOworICAgIH0KK30KKworI292ZXJsYXkgPiBkaXYgZGl2
IHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjQxLCAyNDEsIDI0MSk7Cit9CisKKyNvdmVy
bGF5IGJ1dHRvbiB7CisgICAgbWFyZ2luOiAyZW0gYXV0bzsKKyAgICBib3JkZXItY29sb3I6IHJn
YigyNDEsIDI0MSwgMjQxKTsKKyAgICBjb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOworfQorCisj
b3ZlcmxheSBidXR0b246aG92ZXIgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAy
NTUsIDI1NSwgLjEpOworfQorCisjb3ZlcmxheSBidXR0b246YWN0aXZlIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTsKK30KKwogI3Jlc3VsdHMtZGF0YSAu
YXZlcmFnZSB7CiAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgdGV4dC1hbGlnbjogcmlnaHQ7
CkBAIC03MTEsMjIgKzUyMiwyMCBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIAogI3Rlc3QtZ3JhcGgg
aGVhZGVyIHsKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgd2lkdGg6IDEwMCU7CisgICAg
dGV4dC1hbGlnbjpjZW50ZXI7CiB9CiAKICN0ZXN0LWdyYXBoIGhlYWRlciBidXR0b24gewogICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDEuNWVtOworICAgIHRvcDogMDsKICAgICBs
ZWZ0OiAwOwogICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgIGZvbnQtc2l6ZTogMWVtOwogICAg
IHBhZGRpbmc6IC41ZW0gMWVtOwogfQogCi0jdGVzdC1ncmFwaC1kYXRhIHsKLSAgICBmbGV4OiAx
IDEgYXV0bzsKLSAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgIHotaW5kZXg6IDE7CisjdGVz
dC1ncmFwaCAuc2NvcmUsICN0ZXN0LWdyYXBoIC5tZWFuIHsKKyAgICBtYXJnaW46IDA7CiB9CiAK
ICN0ZXN0LWdyYXBoIG5hdiB7CkBAIC03NjAsNiArNTY5LDcgQEAgbGFiZWwudHJlZS1sYWJlbCB7
CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjdGVzdC1ncmFwaC1kYXRhIHsKKyAgICB6LWlu
ZGV4OiAxOwogICAgIGZvbnQ6IDEwcHggc2Fucy1zZXJpZjsKICAgICBjb2xvcjogcmdiKDIzNSwg
MjM1LCAyMzUpOwogfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMKaW5kZXggNTVkMWE5
OS4uOWE1YmEwNSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCkBAIC0yMTMsNyAr
MjEzLDEwIEBAIHdpbmRvdy5vcHRpb25zTWFuYWdlciA9CiAKICAgICB1cGRhdGVEaXNwbGF5OiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9ICJkaXNw
bGF5LSIgKyBvcHRpb25zTWFuYWdlci52YWx1ZUZvck9wdGlvbigiZGlzcGxheSIpOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoImRpc3BsYXktbWluaW1hbCIpOworICAg
ICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoImRpc3BsYXktcHJvZ3Jlc3MtYmFy
Iik7CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJkaXNwbGF5LSIgKyBv
cHRpb25zTWFuYWdlci52YWx1ZUZvck9wdGlvbigiZGlzcGxheSIpKTsKICAgICB9CiB9OwogCmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1
bm5lci9ncmFwaC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVi
dWctcnVubmVyL2dyYXBoLmpzCmluZGV4IDc2YTBhOTguLmY4ZWMzODUgMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpz
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVy
L2dyYXBoLmpzCkBAIC0xLDYgKzEsNCBAQAogVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cu
YmVuY2htYXJrQ29udHJvbGxlciwgewotICAgIGxheW91dENvdW50ZXI6IDAsCi0KICAgICB1cGRh
dGVHcmFwaERhdGE6IGZ1bmN0aW9uKHRlc3RSZXN1bHQsIHRlc3REYXRhLCBvcHRpb25zKQogICAg
IHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1n
cmFwaC1kYXRhIik7CkBAIC04LDEwICs2LDExIEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3Qod2lu
ZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsKICAgICAgICAgZWxlbWVudC5fdGVzdFJlc3VsdCA9
IHRlc3RSZXN1bHQ7CiAgICAgICAgIGVsZW1lbnQuX3Rlc3REYXRhID0gdGVzdERhdGE7CiAgICAg
ICAgIGVsZW1lbnQuX29wdGlvbnMgPSBvcHRpb25zOwotICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJociIpLnN0eWxlLndpZHRoID0gdGhpcy5sYXlvdXRDb3VudGVyKysgKyAicHgiOwog
CiAgICAgICAgIHZhciBtYXJnaW5zID0gbmV3IEluc2V0cygzMCwgMzAsIDMwLCA0MCk7Ci0gICAg
ICAgIHZhciBzaXplID0gUG9pbnQuZWxlbWVudENsaWVudFNpemUoZWxlbWVudCkuc3VidHJhY3Qo
bWFyZ2lucy5zaXplKTsKKyAgICAgICAgdmFyIHNpemUgPSBQb2ludC5lbGVtZW50Q2xpZW50U2l6
ZShlbGVtZW50KTsKKyAgICAgICAgc2l6ZS55ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVu
dC5vZmZzZXRUb3A7CisgICAgICAgIHNpemUgPSBzaXplLnN1YnRyYWN0KG1hcmdpbnMuc2l6ZSk7
CiAKICAgICAgICAgdGhpcy5jcmVhdGVUaW1lR3JhcGgodGVzdFJlc3VsdCwgdGVzdERhdGFbU3Ry
aW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgdGVzdERhdGFbU3Ry
aW5ncy5qc29uLm1hcmtzXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCBvcHRp
b25zLCBtYXJnaW5zLCBzaXplKTsKICAgICAgICAgdGhpcy5vblRpbWVHcmFwaE9wdGlvbnNDaGFu
Z2VkKCk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3J1bm5lci9hbmltb21ldGVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcwppbmRleCA1NGY2NDhlLi43MGM1OTQ1IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVy
L2FuaW1vbWV0ZXIuanMKQEAgLTMyNywxMCArMzI3LDEwIEBAIHdpbmRvdy5zZWN0aW9uc01hbmFn
ZXIgPQogewogICAgIHNob3dTZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSWRlbnRpZmllciwgcHVz
aFN0YXRlKQogICAgIHsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJz
aG93aW5nLWludHJvIik7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgi
c2hvd2luZy1yZXN1bHRzIik7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92
ZSgic2hvd2luZy10ZXN0LWNvbnRhaW5lciIpOwotCisgICAgICAgIHZhciBzZWN0aW9ucyA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIm1haW4gPiBzZWN0aW9uIik7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgic2hvd2luZy0iICsgc2VjdGlvbnNbaV0uaWQpOwor
ICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgic2hvd2luZy0i
ICsgc2VjdGlvbklkZW50aWZpZXIpOwogCiAgICAgICAgIHZhciBjdXJyZW50U2VjdGlvbkVsZW1l
bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzZWN0aW9uLnNlbGVjdGVkIik7CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNz
cyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3Nz
CmluZGV4IGVkZjcxNDEuLjBiNmZmZGMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzCkBAIC03LDcgKzcsNyBAQCBib2R5
IHsKICAgICBtYXJnaW46IDA7CiAgICAgcGFkZGluZzogMDsKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjQxLCAyNDEsIDI0MSk7Ci0gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sICJI
ZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsKKyAgICBmb250
LWZhbWlseTogIkhlbHZldGljYSBOZXVlIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBzYW5zLXNlcmlm
OwogfQogCiAjc3RhZ2UgewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cg
Yi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA4YzIwZDUzLi5kOTY3NGEzIDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA2LTE2ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlbWVudHMgdG8gQW5pbW9tZXRlciBiZW5jaG1h
cmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzcz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQW5p
bW9tZXRlci9kZXZlbG9wZXIuaHRtbDogUmVmYWN0b3IgdG8gaW5jbHVkZSB0aGUgbWFpbiBDU1Mg
ZmlsZSwgYW5kIHJlZG8KKyAgICAgICAgdGhlIGxheW91dCBzbyB0aGF0IGl0IGRvZXNuJ3QgcmVs
eSBvbiBmbGV4Ym94LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9hbmltb21ldGVyLmNzczoKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1y
dW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKHVwZGF0ZURpc3BsYXkpOiBTaW5jZSB2YXJp
b3VzIHBhcnRzIG9mIHRoZSBzY3JpcHQgYWx0ZXIgdGhlIGJvZHkgY2xhc3MsIHdlIGNhbid0Cisg
ICAgICAgIHJlcGxhY2UgdGhlIGNsYXNzTmFtZSBkaXJlY3RseS4gSW5zdGVhZCwgcmVtb3ZlIGFs
bCBkaXNwbGF5LWJhc2VkIHZhbHVlcyBhbmQgdGhlbiBhZGQKKyAgICAgICAgdGhlIG9uZSB0aGF0
IHdhcyBzZWxlY3RlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5u
ZXIvZ3JhcGguanM6CisgICAgICAgICh1cGRhdGVHcmFwaERhdGEpOiBUbyBzZXQgdGhlIHNpemUg
b2YgdGhlIGdyYXBoLCB1c2Ugd2luZG93LmlubmVySGVpZ2h0LgorICAgICAgICAqIEFuaW1vbWV0
ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgorICAgICAgICAod2luZG93LnNlY3Rp
b25zTWFuYWdlci5zaG93U2VjdGlvbik6IFNpbmNlIHZhcmlvdXMgcGFydHMgb2YgdGhlIHNjcmlw
dCBhbHRlciB0aGUgYm9keQorICAgICAgICBjbGFzcywgd2UgY2FuJ3QgcmVwbGFjZSB0aGUgY2xh
c3NOYW1lIGRpcmVjdGx5LiBSZW1vdmUgYWxsIG9mIHRoZSBzZWN0aW9uIGNsYXNzZXMKKyAgICAg
ICAgaW5kaXZpZHVhbGx5IGFuZCB0aGVuIGFkZCB0aGUgb25lIGRlc2lyZWQuCisgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzOiBSZW1vdmUgLWFwcGxlLXN5c3Rl
bSBhcyBhIGZvbnQgdG8gdXNlIGluIHRoZQorICAgICAgICBzdGFnZS4KKwogMjAxNi0wNi0xMiAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCByb3VuZC1kb3du
IGdvb2YgaW4gQWlyLmpzJ3MgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJnCi0tIAoyLjguMSAoQXBw
bGUgR2l0LTY5KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281486</attachid>
            <date>2016-06-16 15:41:56 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>2. Detect 3 canvas sizes</desc>
            <filename>0002-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>9280</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBlNGJjZmEzMGI2YWEwNDU1OWRlNmM0MTEyODUyZGVjMTc0YzA2YjE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDAzOjE1OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpSZXBvcnQg
Y2FudmFzIHNpemUgaW4gcmVzdWx0cy4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogQWRk
IG1hcmt1cCB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgc21hbGwsIG1lZGl1bSwgb3IgbGFyZ2UKY2Fu
dmFzIHdhcyB1c2VkLgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDogRGl0dG8uCiogQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanM6IENhbGwgZGV0ZXJtaW5lQ2Fu
dmFzU2l6ZSgpLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzczog
VXBkYXRlIHN0eWxlcyB0byBzZXQgdGhlIGNhbnZhcyBiYXNlZCBvbiB0aGUKYm9keSBjbGFzcyBz
aXplLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgood2luZG93
LmJlbmNobWFya0NvbnRyb2xsZXIuaW5pdGlhbGl6ZSk6IFVwZGF0ZSBzdHlsZXMgdG8gc2V0IHRo
ZSBjYW52YXMgYmFzZWQgb24gdGhlCmJvZHkgY2xhc3Mgc2l6ZS4KKHdpbmRvdy5iZW5jaG1hcmtD
b250cm9sbGVyLmRldGVybWluZUNhbnZhc1NpemUpOiBSdW4gdmFyaW91cyBtZWRpYSBxdWVyaWVz
IGFuZCBzZXQgdGhlIGJvZHkKY2xhc3MgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGRldmljZS4K
LS0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwgICAgICAgICB8
ICA1ICsrCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbCAgICAgICAgICAg
ICB8ICA5ICsrLQogLi4uL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyAgICAg
ICAgICAgfCAgMSArCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIu
Y3NzICAgICB8IDc5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0KIC4uLi9Bbmltb21ldGVyL3Jlc291
cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyAgICAgIHwgMjMgKysrKysrKwogUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKysKIDYgZmls
ZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCmluZGV4IDhiYWM5YTEuLjk2YTc2ZjYg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKQEAgLTk2LDYg
Kzk2LDExIEBACiAgICAgICAgIDxzZWN0aW9uIGlkPSJyZXN1bHRzIj4KICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJvZHkiPgogICAgICAgICAgICAgICAgIDxoMT5Nb3Rpb25NYXJrIHNjb3JlPC9o
MT4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwiPgorICAgICAgICAgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0ic21hbGwiPm9uIGEgc21hbGwgc2NyZWVuIChwaG9uZSk8L3NwYW4+
CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZWRpdW0iPm9uIGEgbWVkaXVtIHNj
cmVlbiAobGFwdG9wLCB0YWJsZXQpPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0ibGFyZ2UiPm9uIGEgbGFyZ2Ugc2NyZWVuIChkZXNrdG9wKTwvc3Bhbj4KKyAgICAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NvcmUiIG9uY2xpY2s9
ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd0RlYnVnSW5mbygpIj48L3A+CiAgICAgICAgICAgICAg
ICAgPGRpdiBpZD0icmVzdWx0cy10YWJsZXMiPgogICAgICAgICAgICAgICAgICAgICA8ZGl2Pgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAppbmRleCBmNjZmNjNkLi4yNGU2YTc2
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAorKysg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbApAQCAtNDEsNyArNDEsMTQg
QEAKICAgICAgICAgPHNlY3Rpb24gaWQ9InJlc3VsdHMiPgogICAgICAgICAgICAgPHN2ZyBjbGFz
cz0ibG9nbyI+PHVzZSB4bGluazpocmVmPSJyZXNvdXJjZXMvcnVubmVyL2xvZ28uc3ZnI3Jvb3Qi
Pjwvc3ZnPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm9keSI+Ci0gICAgICAgICAgICAgICAg
PHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dEZWJ1Z0lu
Zm8oKSI+PC9wPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlLWNvbnRhaW5lciI+
CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1h
cmtDb250cm9sbGVyLnNob3dEZWJ1Z0luZm8oKSI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImRldGFpbCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0ic21hbGwiPm9uIGEgc21hbGwgc2NyZWVuIChwaG9uZSk8L3NwYW4+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVkaXVtIj5vbiBhIG1lZGl1bSBzY3JlZW4gKGxhcHRv
cCwgdGFibGV0KTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJs
YXJnZSI+b24gYSBsYXJnZSBzY3JlZW4gKGRlc2t0b3ApPC9zcGFuPgorICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8dGFi
bGUgaWQ9InJlc3VsdHMtaGVhZGVyIj48L3RhYmxlPjx0YWJsZSBpZD0icmVzdWx0cy1zY29yZSI+
PC90YWJsZT48YnI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJiZW5jaG1hcmtD
b250cm9sbGVyLnN0YXJ0QmVuY2htYXJrKCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KICAgICAgICAg
ICAgIDwvZGl2PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMKaW5kZXggOWE1YmEwNS4u
OTA2ZTJhOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCkBAIC01MDgsNiArNTA4
LDcgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciwg
ewogICAgICAgICBpZiAoYmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFya0ltbWVkaWF0
ZWx5SWZFbmNvZGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgYmVuY2htYXJr
Q29udHJvbGxlci5kZXRlcm1pbmVDYW52YXNTaXplKCk7CiAgICAgICAgIGJlbmNobWFya0NvbnRy
b2xsZXIuYWRkT3JpZW50YXRpb25MaXN0ZW5lcklmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHN1aXRl
c01hbmFnZXIuY3JlYXRlRWxlbWVudHMoKTsKICAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVV
SUZyb21Mb2NhbFN0b3JhZ2UoKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MKaW5kZXggYzY1YmI5Ny4u
YWQ2M2UyZSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5jc3MKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MKQEAgLTI5MiwyMCArMjkyLDE0IEBAIGJv
ZHkuaW1hZ2VzLWxvYWRlZCAjaW50cm8gewogCiAvKiBSdW5uaW5nIHRlc3Qgc2VjdGlvbiAqLwog
Ci0jdGVzdC1jb250YWluZXIgeworLmZyYW1lLWNvbnRhaW5lciB7CiAgICAgcG9zaXRpb246IGFi
c29sdXRlOwogCi0gICAgd2lkdGg6IDEyMDBweDsKLSAgICBoZWlnaHQ6IDYwMHB4OwotCiAgICAg
dG9wOiA1MCU7CiAgICAgbGVmdDogNTAlOwotCi0gICAgbWFyZ2luLWxlZnQ6IC02MDBweDsKLSAg
ICBtYXJnaW4tdG9wOiAtMzAwcHg7CiB9CiAKLSN0ZXN0LWNvbnRhaW5lciA+IGlmcmFtZSB7Cisu
ZnJhbWUtY29udGFpbmVyID4gaWZyYW1lIHsKICAgICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6
IDEwMCU7CiAKQEAgLTMxMyw0NyArMzA3LDI1IEBAIGJvZHkuaW1hZ2VzLWxvYWRlZCAjaW50cm8g
ewogICAgIG1hcmdpbjogMDsKIH0KIAotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lk
dGg6IDQxNHB4KSwgc2NyZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9y
aWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAjdGVzdC1jb250YWluZXIgewotICAgICAgICB3
aWR0aDogMTAwJTsKLSAgICAgICAgaGVpZ2h0OiAxMDAlOwotCi0gICAgICAgIHRvcDogMDsKLSAg
ICAgICAgbGVmdDogMDsKLQotICAgICAgICBtYXJnaW4tdG9wOiAwOwotICAgICAgICBtYXJnaW4t
bGVmdDogMDsKLSAgICB9Citib2R5LnNtYWxsIC5mcmFtZS1jb250YWluZXIgeworICAgIHdpZHRo
OiA1NjhweDsKKyAgICBoZWlnaHQ6IDMyMHB4OworICAgIG1hcmdpbi1sZWZ0OiAtMjg0cHg7Cisg
ICAgbWFyZ2luLXRvcDogLTE2MHB4OwogfQogCi1AbWVkaWEgc2NyZWVuIGFuZCAobWluLWRldmlj
ZS1oZWlnaHQ6IDc2OHB4KSBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiAxMDI0cHgpIHsKLSAgICAj
dGVzdC1jb250YWluZXIgewotICAgICAgICB3aWR0aDogOTAwcHg7Ci0gICAgICAgIGhlaWdodDog
NjAwcHg7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IC00NTBweDsKLSAgICAgICAgbWFyZ2luLXRv
cDogLTMwMHB4OwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lk
dGg6IDEwMjRweCkgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTM2NnB4KSB7Ci0gICAgI3Rlc3Qt
Y29udGFpbmVyIHsKLSAgICAgICAgd2lkdGg6IDEyMDBweDsKLSAgICAgICAgaGVpZ2h0OiA2MDBw
eDsKLQotICAgICAgICBtYXJnaW4tbGVmdDogLTYwMHB4OwotICAgICAgICBtYXJnaW4tdG9wOiAt
MzAwcHg7Ci0gICAgfQorYm9keS5tZWRpdW0gLmZyYW1lLWNvbnRhaW5lciB7CisgICAgd2lkdGg6
IDkwMHB4OworICAgIGhlaWdodDogNjAwcHg7CisgICAgbWFyZ2luLWxlZnQ6IC00NTBweDsKKyAg
ICBtYXJnaW4tdG9wOiAtMzAwcHg7CiB9CiAKLUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6
IDE4MDBweCkgewotICAgICN0ZXN0LWNvbnRhaW5lciB7Ci0gICAgICAgIHdpZHRoOiAxNjAwcHg7
Ci0gICAgICAgIGhlaWdodDogODAwcHg7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IC04MDBweDsK
LSAgICAgICAgbWFyZ2luLXRvcDogLTQwMHB4OwotICAgIH0KK2JvZHkubGFyZ2UgLmZyYW1lLWNv
bnRhaW5lciB7CisgICAgd2lkdGg6IDE2MDBweDsKKyAgICBoZWlnaHQ6IDgwMHB4OworICAgIG1h
cmdpbi1sZWZ0OiAtODAwcHg7CisgICAgbWFyZ2luLXRvcDogLTQwMHB4OwogfQogCiAvKiBSZXN1
bHRzIHNlY3Rpb24gKi8KQEAgLTM2MiwxMyArMzM0LDE2IEBAIGJvZHkuaW1hZ2VzLWxvYWRlZCAj
aW50cm8gewogICAgIHBhZGRpbmc6IDJlbTsKIH0KIAorI3Jlc3VsdHMgLnNjb3JlLWNvbnRhaW5l
ciB7CisgICAgcGFkZGluZy1sZWZ0OiAxLjJlbTsKKyAgICBwYWRkaW5nLWJvdHRvbTogMmVtOwor
fQorCiAjcmVzdWx0cyAuc2NvcmUgewogICAgIGZvbnQtc2l6ZTogNWVtOwogICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOwogICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKIAotICAgIHBhZGRpbmctbGVmdDog
MC4yNWVtOwotCiAgICAgbWFyZ2luOiAwOwogfQogCkBAIC00MjIsNiArMzk3LDE2IEBAIGJvZHku
aW1hZ2VzLWxvYWRlZCAjaW50cm8gewogICAgIH0KIH0KIAorLmRldGFpbCBzcGFuIHsKKyAgICBk
aXNwbGF5OiBub25lOworfQorCitib2R5LnNtYWxsIC5kZXRhaWwgLnNtYWxsLAorYm9keS5tZWRp
dW0gLmRldGFpbCAubWVkaXVtLAorYm9keS5sYXJnZSAuZGV0YWlsIC5sYXJnZSB7CisgICAgZGlz
cGxheTogaW5pdGlhbDsKK30KKwogI292ZXJsYXkgewogICAgIHBvc2l0aW9uOiBmaXhlZDsKIApk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIv
YW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuanMKaW5kZXggNzBjNTk0NS4uMjIzODg0NSAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzCkBAIC0zNjMsOSArMzYzLDMyIEBAIHdpbmRvdy5zZWN0aW9uc01hbmFnZXIgPQogd2lu
ZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7CiAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKQog
ICAgIHsKKyAgICAgICAgYmVuY2htYXJrQ29udHJvbGxlci5kZXRlcm1pbmVDYW52YXNTaXplKCk7
CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuYWRkT3JpZW50YXRpb25MaXN0ZW5lcklmTmVj
ZXNzYXJ5KCk7CiAgICAgfSwKIAorICAgIGRldGVybWluZUNhbnZhc1NpemU6IGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgbWF0Y2ggPSB3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC1kZXZpY2Utd2lk
dGg6IDc2MHB4KSIpOworICAgICAgICBpZiAobWF0Y2gubWF0Y2hlcykgeworICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJzbWFsbCIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbWF0Y2ggPSB3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC1k
ZXZpY2Utd2lkdGg6IDE2MDBweCkiKTsKKyAgICAgICAgaWYgKG1hdGNoLm1hdGNoZXMpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgibWVkaXVtIik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtYXRjaCA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIobWF4LXdpZHRoOiAxNjAwcHgpIik7CisgICAgICAgIGlmIChtYXRjaC5tYXRjaGVzKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoIm1lZGl1bSIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFz
c0xpc3QuYWRkKCJsYXJnZSIpOworICAgIH0sCisKICAgICBhZGRPcmllbnRhdGlvbkxpc3RlbmVy
SWZOZWNlc3Nhcnk6IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAoISgib3JpZW50YXRpb24iIGlu
IHdpbmRvdykpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5Njc0YTMu
LjNkZGFhZjMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMjcgQEAKIAogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBSZXBvcnQgY2FudmFzIHNpemUgaW4g
cmVzdWx0cy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IEFkZCBtYXJr
dXAgdG8gaW5kaWNhdGUgd2hldGhlciBhIHNtYWxsLCBtZWRpdW0sIG9yIGxhcmdlCisgICAgICAg
IGNhbnZhcyB3YXMgdXNlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6IERpdHRv
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVy
LmpzOiBDYWxsIGRldGVybWluZUNhbnZhc1NpemUoKS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6IFVwZGF0ZSBzdHlsZXMgdG8gc2V0IHRoZSBj
YW52YXMgYmFzZWQgb24gdGhlCisgICAgICAgIGJvZHkgY2xhc3Mgc2l6ZS4KKyAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKHdpbmRv
dy5iZW5jaG1hcmtDb250cm9sbGVyLmluaXRpYWxpemUpOiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0
aGUgY2FudmFzIGJhc2VkIG9uIHRoZQorICAgICAgICBib2R5IGNsYXNzIHNpemUuCisgICAgICAg
ICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5kZXRlcm1pbmVDYW52YXNTaXplKTogUnVuIHZh
cmlvdXMgbWVkaWEgcXVlcmllcyBhbmQgc2V0IHRoZSBib2R5CisgICAgICAgIGNsYXNzIGJhc2Vk
IG9uIHRoZSBzaXplIG9mIHRoZSBkZXZpY2UuCisKKzIwMTYtMDYtMTYgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmVtZW50cyB0byBBbmltb21ldGVyIGJlbmNo
bWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3
NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgKiBB
bmltb21ldGVyL2RldmVsb3Blci5odG1sOiBSZWZhY3RvciB0byBpbmNsdWRlIHRoZSBtYWluIENT
UyBmaWxlLCBhbmQgcmVkbwogICAgICAgICB0aGUgbGF5b3V0IHNvIHRoYXQgaXQgZG9lc24ndCBy
ZWx5IG9uIGZsZXhib3guCiAgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL2FuaW1vbWV0ZXIuY3NzOgotLSAKMi44LjEgKEFwcGxlIEdpdC02OSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281487</attachid>
            <date>2016-06-16 15:43:19 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>3. Show test confidence intervals, fix selection issues</desc>
            <filename>0003-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>17313</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAxZDQ3OTA4MjhkYmFjZTFhY2QwMThmMjhjYjgwZjk2OGViMTFjZTMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDAzOjE3OjQ0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzLzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIEFuaW1v
bWV0ZXIvZGV2ZWxvcGVyLmh0bWw6CiogQW5pbW9tZXRlci9pbmRleC5odG1sOiBSZXN0cnVjdHVy
ZSByZXN1bHRzIHRhYmxlIGZvciBib3RoIHBhZ2VzLiBBZGQgY2hhcnNldCBhdHRyaWJ1dGUgdG8K
dGVzdHMuanMgaW5jbHVkZS4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5p
bW9tZXRlci5jc3M6IENsZWFyIG91dCBzdHlsZXMgZnJvbSByZWxlYXNlIHJ1bm5lci4KKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6CihvbkdyYXBoVHlwZUNoYW5n
ZWQpOiBVcGRhdGUgc2NvcmUgYW5kIG1lYW4gaWYgYm9vdHN0cmFwIHJlc3VsdHMgYXJlIGF2YWls
YWJsZSBmcm9tIHRoZQpjb250cm9sbGVyLCBzaW5jZSBub3QgYWxsIGNvbnRyb2xsZXJzIGRvIGJv
b3RzdHJhcHBpbmcuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpz
OiBVcGRhdGUgaGVhZGVyIHRleHQuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1v
bWV0ZXIuY3NzOiBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgaW4gcmVzdWx0cy4KKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKFJlc3VsdHNUYWJsZS5fYWRk
SGVhZGVyKTogSGVhZGVyIGNvbnRlbnRzIGNhbiBiZSBIVE1MLCBzbyB1c2UgaW5uZXJIVE1MIGlu
c3RlYWQuCihSZXN1bHRzVGFibGUuX2FkZEJvZHkpOiBBZGQgdGJvZHkgZWxlbWVudC4KKFJlc3Vs
dHNUYWJsZS5fYWRkVGVzdCk6IEFsbG93IGEgZGF0YSBjZWxsIHRvIGludm9rZSBhIEpTIGZ1bmN0
aW9uIHRvIGdldCBpdHMgY29udGVudHMuCih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93
UmVzdWx0cyk6IEFkZCB0YWJsZSB0aGF0IGluY2x1ZGVzIHRlc3RzJyBjb25maWRlbmNlIGludGVy
dmFscy4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanM6CihIZWFkZXJzLmRl
dGFpbHMudGV4dCk6IEFkZCBuZXcgZGV0YWlscyB0YWJsZSB0aGF0IGluY2x1ZGVzIGJvb3RzdHJh
cCBjb25maWRlbmNlIGludGVydmFsLgpUaGUgaW50ZXJ2YWwgY2FuIGJlIGFzeW1tZXRyaWMsIGJ1
dCBmb3Igc2ltcGxpY2l0eSwgcmVwb3J0IHRoZSBtYXhpbXVtIGRldmlhdGlvbiBwZXJjZW50YWdl
Cm9uIGVpdGhlciBzaWRlIG9mIHRoZSBib290c3RyYXAgbWVkaWFuLgoqIEFuaW1vbWV0ZXIvcmVz
b3VyY2VzL3N0YXRpc3RpY3MuanM6Cihib290c3RyYXApOiBJbmNsdWRlIHRoZSBjb25maWRlbmNl
IHBlcmNlbnRhZ2UgaW4gdGhlIHJldHVybiBvYmplY3QuCi0tLQogUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL2RldmVsb3Blci5odG1sICAgICAgICAgfCAgNCArLS0KIFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9pbmRleC5odG1sICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLQogLi4u
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3MgICAgICAgICAgfCAxMyArKysr
KysrKysrCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzICAg
ICB8IDE3ICsrKysrKystLS0tLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci90ZXN0cy5qcyAgICAgfCAgMiArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9h
bmltb21ldGVyLmNzcyAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrLS0tCiAuLi4vQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgICAgICB8IDI4ICsrKysrKysrKysr
Ky0tLS0tLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzICAgICAg
ICAgICB8IDEyICsrKysrKysrLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3Mu
anMgICAgICAgICAgICAgfCAgMyArKy0KIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrKysKIDEwIGZpbGVzIGNo
YW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKaW5kZXggOTZhNzZmNi4uZWJiNTRhYiAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbApAQCAtMTMsNyArMTMs
NyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KIAot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcyIgY2hhcnNldD0idXRmLTgi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3Rz
LmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0
PgpAQCAtMTAyLDcgKzEwMiw3IEBACiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJs
YXJnZSI+b24gYSBsYXJnZSBzY3JlZW4gKGRlc2t0b3ApPC9zcGFuPgogICAgICAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzY29yZSIgb25jbGljaz0iYmVuY2ht
YXJrQ29udHJvbGxlci5zaG93RGVidWdJbmZvKCkiPjwvcD4KLSAgICAgICAgICAgICAgICA8ZGl2
IGlkPSJyZXN1bHRzLXRhYmxlcyI+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVzdWx0cy10
YWJsZXMiIGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICA8ZGl2
PgogICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLXNjb3JlIj48L3Rh
YmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWRhdGEiPjwv
dGFibGU+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sCmluZGV4IDI0ZTZhNzYu
LjczYjliODkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5o
dG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sCkBAIC00LDcg
KzQsNyBAQAogICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxhYmxlPW5vIj4KIAot
ICAgIDx0aXRsZT5Nb3Rpb24gTWFyayAxLjA8L3RpdGxlPgorICAgIDx0aXRsZT5Nb3Rpb25NYXJr
IDEuMDwvdGl0bGU+CiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5jc3MiPgogCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9leHRlbnNpb25zLmpzIiBkZWZlcj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiIGRlZmVyPjwvc2NyaXB0PgogCi0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvdGVzdHMuanMiIGRlZmVyPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIiBjaGFyc2V0PSJ1dGYt
OCIgZGVmZXI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvYW5p
bW9tZXRlci5qcyIgZGVmZXI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3J1bm5lci9iZW5jaG1hcmstcnVubmVyLmpzIiBkZWZlcj48L3NjcmlwdD4KQEAgLTI5LDcgKzI5
LDcgQEAKICAgICAgICAgPHNlY3Rpb24gaWQ9ImludHJvIiBjbGFzcz0ic2VsZWN0ZWQiPgogICAg
ICAgICAgICAgPHN2ZyBjbGFzcz0ibG9nbyI+PHVzZSB4bGluazpocmVmPSJyZXNvdXJjZXMvcnVu
bmVyL2xvZ28uc3ZnI3Jvb3QiPjwvc3ZnPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm9keSI+
Ci0gICAgICAgICAgICAgICAgPHA+TW90aW9uIE1hcmsgaXMgYSBncmFwaGljcyBiZW5jaG1hcmsg
dGhhdCBtZWFzdXJlcyBhIGJyb3dzZXLigJlzIGNhcGFiaWxpdHkgdG8gYW5pbWF0ZSBjb21wbGV4
IHNjZW5lcyBhdCBhIHRhcmdldCBmcmFtZSByYXRlLjwvcD4KKyAgICAgICAgICAgICAgICA8cD5N
b3Rpb25NYXJrIGlzIGEgZ3JhcGhpY3MgYmVuY2htYXJrIHRoYXQgbWVhc3VyZXMgYSBicm93c2Vy
4oCZcyBjYXBhYmlsaXR5IHRvIGFuaW1hdGUgY29tcGxleCBzY2VuZXMgYXQgYSB0YXJnZXQgZnJh
bWUgcmF0ZS48L3A+CiAgICAgICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRlIHJlc3VsdHMsIHBs
ZWFzZSB0YWtlIHlvdXIgYnJvd3NlciB3aW5kb3cgZnVsbCBzY3JlZW4sIG9yIHJvdGF0ZSB5b3Vy
IGRldmljZSB0byBsYW5kc2NhcGUgb3JpZW50YXRpb24uPC9wPgogICAgICAgICAgICAgICAgIDxw
IGNsYXNzPSJwb3J0cmFpdC1vcmllbnRhdGlvbi1jaGVjayI+PGI+UGxlYXNlIHJvdGF0ZSB5b3Vy
IGRldmljZS48L2I+PC9wPgogICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxhbmRzY2Fw
ZS1vcmllbnRhdGlvbi1jaGVjayIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJl
bmNobWFyaygpIj5SdW4gQmVuY2htYXJrPC9idXR0b24+CkBAIC00OSw3ICs0OSwxMyBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhcmdlIj5vbiBhIGxhcmdlIHNjcmVl
biAoZGVza3RvcCk8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAg
ICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0icmVzdWx0cy1oZWFkZXIi
PjwvdGFibGU+PHRhYmxlIGlkPSJyZXN1bHRzLXNjb3JlIj48L3RhYmxlPjxicj4KKyAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgorICAgICAgICAgICAgICAgICAg
ICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLXNjb3Jl
Ij48L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWRh
dGEiPjwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAg
ICAgICA8dGFibGUgaWQ9InJlc3VsdHMtaGVhZGVyIj48L3RhYmxlPgorICAgICAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYmVuY2htYXJrQ29udHJv
bGxlci5zdGFydEJlbmNobWFyaygpIj5UZXN0IEFnYWluPC9idXR0b24+CiAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3MgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNz
cwppbmRleCBjMTJjYTA2Li43N2JlMWRmIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVy
LmNzcwpAQCAtNDAwLDYgKzQwMCwxOSBAQCBsYWJlbC50cmVlLWxhYmVsIHsKICAgICBtYXJnaW46
IDNlbSAwOwogfQogCisjcmVzdWx0cyAudGFibGUtY29udGFpbmVyID4gZGl2IHsKKyAgICBtYXJn
aW4tbGVmdDogMDsKK30KKworI3Jlc3VsdHMgI3Jlc3VsdHMtc2NvcmUgeworICAgIGZsb2F0OiBp
bml0aWFsOworfQorCisjcmVzdWx0cyAjcmVzdWx0cy1oZWFkZXIgeworICAgIHdpZHRoOiBpbml0
aWFsOworICAgIHBvc2l0aW9uOiBpbml0aWFsOworfQorCiAjcmVzdWx0cyB0YWJsZSB7CiAgICAg
ZGlyZWN0aW9uOiBsdHI7CiAgICAgbWluLXdpZHRoOiBpbml0aWFsOwpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFw
aC5qcwppbmRleCBmOGVjMzg1Li5iYmZiYjZhIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qcworKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qcwpAQCAt
NTk1LDEzICs1OTUsMTYgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cuYmVuY2htYXJr
Q29udHJvbGxlciwgewogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBs
ZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtYXZlcmFnZSIpLnRleHRDb250ZW50ID0gY29tcGxl
eGl0eUF2ZXJhZ2VSZWdyZXNzaW9uLmNvbXBsZXhpdHkudG9GaXhlZCgyKSArICIsIMKxIiArIGNv
bXBsZXhpdHlBdmVyYWdlUmVncmVzc2lvbi5zdGRldi50b0ZpeGVkKDIpICsgIm1zIjsKIAogICAg
ICAgICAgICAgdmFyIGJvb3RzdHJhcCA9IGNvbXBsZXhpdHlSZWdyZXNzaW9uW1N0cmluZ3MuanNv
bi5ib290c3RyYXBdOwotICAgICAgICAgICAgc2NvcmUgPSBib290c3RyYXAubWVkaWFuLnRvRml4
ZWQoMik7Ci0gICAgICAgICAgICBtZWFuID0gWwotICAgICAgICAgICAgICAgICI5NSUgQ0k6ICIs
Ci0gICAgICAgICAgICAgICAgYm9vdHN0cmFwLmNvbmZpZGVuY2VMb3cudG9GaXhlZCgyKSwKLSAg
ICAgICAgICAgICAgICAi4oCTIiwKLSAgICAgICAgICAgICAgICBib290c3RyYXAuY29uZmlkZW5j
ZUhpZ2gudG9GaXhlZCgyKQotICAgICAgICAgICAgXS5qb2luKCIiKTsKKyAgICAgICAgICAgIGlm
IChib290c3RyYXApIHsKKyAgICAgICAgICAgICAgICBzY29yZSA9IGJvb3RzdHJhcC5tZWRpYW4u
dG9GaXhlZCgyKTsKKyAgICAgICAgICAgICAgICBtZWFuID0gWworICAgICAgICAgICAgICAgICAg
ICAoYm9vdHN0cmFwLmNvbmZpZGVuY2VQZXJjZW50YWdlICogMTAwKS50b0ZpeGVkKDApLAorICAg
ICAgICAgICAgICAgICAgICAiJSBDSTogIiwKKyAgICAgICAgICAgICAgICAgICAgYm9vdHN0cmFw
LmNvbmZpZGVuY2VMb3cudG9GaXhlZCgyKSwKKyAgICAgICAgICAgICAgICAgICAgIuKAkyIsCisg
ICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcC5jb25maWRlbmNlSGlnaC50b0ZpeGVkKDIpCisg
ICAgICAgICAgICAgICAgXS5qb2luKCIiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9uU2NvcmUoInRlc3QtZ3JhcGgiLCBzY29y
ZSwgbWVhbik7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
ZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCmluZGV4IGUzMjMzZjUuLjExYmIyNDIgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL3Rlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL3Rlc3RzLmpzCkBAIC0yLDcgKzIsNyBAQCBVdGlsaXRpZXMuZXh0ZW5kT2Jq
ZWN0KFN0cmluZ3MudGV4dCwgewogICAgIHNhbXBsZXM6ICJTYW1wbGVzIiwKICAgICBjb21wbGV4
aXR5OiAiVGltZSBDb21wbGV4aXR5IiwKICAgICBmcmFtZVJhdGU6ICJGUFMiLAotICAgIGNvbmZp
ZGVuY2VJbnRlcnZhbDogIjk1JSBDb25maWRlbmNlIEludGVydmFsIiwKKyAgICBjb25maWRlbmNl
SW50ZXJ2YWw6ICI4MCUgQ29uZmlkZW5jZSBJbnRlcnZhbCIsCiAgICAgbWVyZ2VkUmF3Q29tcGxl
eGl0eTogIlJhdyBDb21wbGV4aXR5IiwKICAgICBncmFwaDogIkdyYXBoIgogfSk7CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuY3NzCmluZGV4IGFkNjNlMmUuLjY3YjQ5MzAgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIu
Y3NzCkBAIC0zMzQsMTEgKzMzNCwyMyBAQCBib2R5LmxhcmdlIC5mcmFtZS1jb250YWluZXIgewog
ICAgIHBhZGRpbmc6IDJlbTsKIH0KIAorI3Jlc3VsdHMgLmJvZHkgeworICAgIC13ZWJraXQtdXNl
ci1zZWxlY3Q6IHRleHQ7Cit9CisKICNyZXN1bHRzIC5zY29yZS1jb250YWluZXIgewogICAgIHBh
ZGRpbmctbGVmdDogMS4yZW07CiAgICAgcGFkZGluZy1ib3R0b206IDJlbTsKIH0KIAorI3Jlc3Vs
dHMgLnRhYmxlLWNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisjcmVz
dWx0cyAudGFibGUtY29udGFpbmVyID4gZGl2IHsKKyAgICBtYXJnaW4tbGVmdDogNDAlOworfQor
CiAjcmVzdWx0cyAuc2NvcmUgewogICAgIGZvbnQtc2l6ZTogNWVtOwogICAgIGZvbnQtd2VpZ2h0
OiBib2xkOwpAQCAtMzUxLDcgKzM2Myw3IEBAIGJvZHkubGFyZ2UgLmZyYW1lLWNvbnRhaW5lciB7
CiAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDA7
Ci0gICAgbWluLXdpZHRoOiA0MCU7CisgICAgbWluLXdpZHRoOiAyNSU7CiB9CiAKICNyZXN1bHRz
IHRhYmxlIHRkLApAQCAtMzY3LDkgKzM3OSwyMCBAQCBib2R5LmxhcmdlIC5mcmFtZS1jb250YWlu
ZXIgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAwLjA1KTsKIH0KIAot
I3Jlc3VsdHMgI3Jlc3VsdHMtaGVhZGVyLAorI3Jlc3VsdHMgI3Jlc3VsdHMtaGVhZGVyIHsKKyAg
ICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogNDAlOworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKK30KKwogI3Jlc3VsdHMgI3Jlc3VsdHMtc2NvcmUgewotICAgIGRpc3BsYXk6IGlu
bGluZS10YWJsZTsKKyAgICBmbG9hdDogbGVmdDsKK30KKworI3Jlc3VsdHMgI3Jlc3VsdHMtZGF0
YSBzcGFuIHsKKyAgICBmb250LXNpemU6IC43NWVtOworICAgIGNvbG9yOiBoc2woMCwgMCUsIDQw
JSk7CiB9CiAKICNyZXN1bHRzICNyZXN1bHRzLWhlYWRlciB0ZCwKQEAgLTM4Niw3ICs0MDksNiBA
QCBib2R5LmxhcmdlIC5mcmFtZS1jb250YWluZXIgewogfQogCiAjcmVzdWx0cyAjcmVzdWx0cy1z
Y29yZSB0ZCB7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgICBjdXJzb3I6IHRl
eHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCmluZGV4IDIyMzg4NDUuLmQwMTQ5NWIgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1v
bWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5u
ZXIvYW5pbW9tZXRlci5qcwpAQCAtMTMxLDcgKzEzMSw3IEBAIFJlc3VsdHNEYXNoYm9hcmQgPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAKICAgICAgICAgICAgICAgICAgICAgdmFyIHJlZ3Jlc3Np
b25SZXN1bHQgPSBmaW5kUmVncmVzc2lvbihyZXNhbXBsZSk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiByZWdyZXNzaW9uUmVzdWx0LnJlZ3Jlc3Npb24uY29tcGxleGl0eTsKLSAgICAgICAg
ICAgICAgICB9LCAuOTUpOworICAgICAgICAgICAgICAgIH0sIC44KTsKICAgICAgICAgICAgIHJl
c3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdID0gcmVzdWx0W1N0cmluZ3MuanNvbi5jb21wbGV4aXR5
XVtTdHJpbmdzLmpzb24uYm9vdHN0cmFwXS5tZWRpYW47CiAKICAgICAgICAgfSBlbHNlIHsKQEAg
LTIzNywzNCArMjM3LDQwIEBAIFJlc3VsdHNUYWJsZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygK
IAogICAgICAgICAgICAgdmFyIHRoID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRoIiwge30s
IHJvdyk7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnRpdGxlICE9IFN0cmluZ3MudGV4dC5ncmFw
aCkKLSAgICAgICAgICAgICAgICB0aC50ZXh0Q29udGVudCA9IGhlYWRlci50aXRsZTsKKyAgICAg
ICAgICAgICAgICB0aC5pbm5lckhUTUwgPSBoZWFkZXIudGl0bGU7CiAgICAgICAgICAgICBpZiAo
aGVhZGVyLmNoaWxkcmVuKQogICAgICAgICAgICAgICAgIHRoLmNvbFNwYW4gPSBoZWFkZXIuY2hp
bGRyZW4ubGVuZ3RoOwogICAgICAgICB9KTsKICAgICB9LAogCisgICAgX2FkZEJvZHk6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMudGJvZHkgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVu
dCgidGJvZHkiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAgICB9LAorCiAgICAgX2FkZEVtcHR5Um93
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgcm93ID0gVXRpbGl0aWVzLmNyZWF0ZUVs
ZW1lbnQoInRyIiwge30sIHRoaXMuZWxlbWVudCk7CisgICAgICAgIHZhciByb3cgPSBVdGlsaXRp
ZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy50Ym9keSk7CiAgICAgICAgIHRoaXMuX2Zs
YXR0ZW5lZEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGVhZGVyKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwgeyBjbGFzczogInN1aXRlcy1zZXBh
cmF0b3IiIH0sIHJvdyk7CiAgICAgICAgIH0pOwogICAgIH0sCiAKLSAgICBfYWRkVGVzdDogZnVu
Y3Rpb24odGVzdE5hbWUsIHRlc3RSZXN1bHRzLCBvcHRpb25zKQorICAgIF9hZGRUZXN0OiBmdW5j
dGlvbih0ZXN0TmFtZSwgdGVzdFJlc3VsdCwgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIHZhciBy
b3cgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAg
ICAgICAgdmFyIHJvdyA9IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGlzLnRi
b2R5KTsKIAogICAgICAgICB0aGlzLl9mbGF0dGVuZWRIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24g
KGhlYWRlcikgewogICAgICAgICAgICAgdmFyIHRkID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQo
InRkIiwge30sIHJvdyk7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnRpdGxlID09IFN0cmluZ3Mu
dGV4dC50ZXN0TmFtZSkgewogICAgICAgICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gdGVzdE5h
bWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlci50ZXh0KSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGRhdGEgPSB0ZXN0UmVzdWx0c1toZWFkZXIudGV4dF07CisgICAgICAgICAgICB9IGVs
c2UgaWYgKHR5cGVvZiBoZWFkZXIudGV4dCA9PSAic3RyaW5nIikgeworICAgICAgICAgICAgICAg
IHZhciBkYXRhID0gdGVzdFJlc3VsdFtoZWFkZXIudGV4dF07CiAgICAgICAgICAgICAgICAgaWYg
KHR5cGVvZiBkYXRhID09ICJudW1iZXIiKQogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0
YS50b0ZpeGVkKDIpOwotICAgICAgICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gZGF0YTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSBkYXRhOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gaGVhZGVyLnRleHQo
dGVzdFJlc3VsdCwgdGVzdE5hbWUpOwogICAgICAgICB9LCB0aGlzKTsKICAgICB9LAogCkBAIC0y
ODQsNiArMjkwLDcgQEAgUmVzdWx0c1RhYmxlID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAg
IHsKICAgICAgICAgdGhpcy5jbGVhcigpOwogICAgICAgICB0aGlzLl9hZGRIZWFkZXIoKTsKKyAg
ICAgICAgdGhpcy5fYWRkQm9keSgpOwogCiAgICAgICAgIHZhciBpdGVyYXRpb25zUmVzdWx0cyA9
IGRhc2hib2FyZC5yZXN1bHRzOwogICAgICAgICBpdGVyYXRpb25zUmVzdWx0cy5mb3JFYWNoKGZ1
bmN0aW9uKGl0ZXJhdGlvblJlc3VsdCwgaW5kZXgpIHsKQEAgLTQ0OCw2ICs0NTUsNyBAQCB3aW5k
b3cuYmVuY2htYXJrQ29udHJvbGxlciA9IHsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNldFNl
Y3Rpb25TY29yZSgicmVzdWx0cyIsIGRhc2hib2FyZC5zY29yZS50b0ZpeGVkKDIpKTsKICAgICAg
ICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtaGVhZGVyIiwgSGVhZGVy
cy50ZXN0TmFtZSwgZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRl
VGFibGUoInJlc3VsdHMtc2NvcmUiLCBIZWFkZXJzLnNjb3JlLCBkYXNoYm9hcmQpOworICAgICAg
ICBzZWN0aW9uc01hbmFnZXIucG9wdWxhdGVUYWJsZSgicmVzdWx0cy1kYXRhIiwgSGVhZGVycy5k
ZXRhaWxzLCBkYXNoYm9hcmQpOwogICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24o
InJlc3VsdHMiLCB0cnVlKTsKICAgICB9LAogCkBAIC01MjYsNyArNTM0LDcgQEAgd2luZG93LmJl
bmNobWFya0NvbnRyb2xsZXIgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIDE6
IHsKICAgICAgICAgICAgICAgICByYW5nZS5zZXRTdGFydChkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCIjcmVzdWx0cyAuc2NvcmUiKSwgMCk7Ci0gICAgICAgICAgICAgICAgcmFuZ2Uuc2V0RW5kQWZ0
ZXIoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3Jlc3VsdHMtc2NvcmUgPiB0cjpsYXN0LW9mLXR5
cGUiKSwgMCk7CisgICAgICAgICAgICAgICAgcmFuZ2Uuc2V0RW5kQWZ0ZXIoZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3Jlc3VsdHMtc2NvcmUiKSwgMCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIDI6IHsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKaW5kZXggZTM0
OWM2My4uNWFiYzZlMiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvdGVzdHMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKQEAgLTEsNiArMSwxNiBAQAogdmFyIEhlYWRlcnMg
PSB7CiAgICAgdGVzdE5hbWU6IFt7IHRpdGxlOiBTdHJpbmdzLnRleHQudGVzdE5hbWUgfV0sCi0g
ICAgc2NvcmU6IFt7IHRpdGxlOiBTdHJpbmdzLnRleHQuc2NvcmUsIHRleHQ6IFN0cmluZ3MuanNv
bi5zY29yZSB9XQorICAgIHNjb3JlOiBbeyB0aXRsZTogU3RyaW5ncy50ZXh0LnNjb3JlLCB0ZXh0
OiBTdHJpbmdzLmpzb24uc2NvcmUgfV0sCisgICAgZGV0YWlsczogWworICAgICAgICB7CisgICAg
ICAgICAgICB0aXRsZTogIiZuYnNwOyIsCisgICAgICAgICAgICB0ZXh0OiBmdW5jdGlvbihkYXRh
KSB7CisgICAgICAgICAgICAgICAgdmFyIGJvb3RzdHJhcCA9IGRhdGFbU3RyaW5ncy5qc29uLmNv
bXBsZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdOworICAgICAgICAgICAgICAgIHJldHVy
biAiPHNwYW4+wrEiICsgKE1hdGgubWF4KE1hdGguYWJzKGJvb3RzdHJhcC5jb25maWRlbmNlTG93
IC8gYm9vdHN0cmFwLm1lZGlhbiAtIDEpLAorICAgICAgICAgICAgICAgICAgICAoYm9vdHN0cmFw
LmNvbmZpZGVuY2VIaWdoIC8gYm9vdHN0cmFwLm1lZGlhbiAtIDEpKSAqIDEwMCkudG9GaXhlZCgy
KSArICIlPC9zcGFuPiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBdCiB9OwogCiB2
YXIgU3VpdGUgPSBmdW5jdGlvbihuYW1lLCB0ZXN0cykgewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzCmluZGV4IDY1ODZlODYuLjZm
NjQ4NWEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
c3RhdGlzdGljcy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3N0YXRpc3RpY3MuanMKQEAgLTM3Miw3ICszNzIsOCBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0
KFJlZ3Jlc3Npb24sIHsKICAgICAgICAgICAgIGNvbmZpZGVuY2VIaWdoOiBib290c3RyYXBEYXRh
W01hdGgucm91bmQoKGl0ZXJhdGlvbkNvdW50IC0gMSkgKiAoMSArIGNvbmZpZGVuY2VQZXJjZW50
YWdlKSAvIDIpXSwKICAgICAgICAgICAgIG1lZGlhbjogYm9vdHN0cmFwRGF0YVtNYXRoLnJvdW5k
KGl0ZXJhdGlvbkNvdW50IC8gMildLAogICAgICAgICAgICAgbWVhbjogYm9vdHN0cmFwRXN0aW1h
dG9yLm1lYW4oKSwKLSAgICAgICAgICAgIGRhdGE6IGJvb3RzdHJhcERhdGEKKyAgICAgICAgICAg
IGRhdGE6IGJvb3RzdHJhcERhdGEsCisgICAgICAgICAgICBjb25maWRlbmNlUGVyY2VudGFnZTog
Y29uZmlkZW5jZVBlcmNlbnRhZ2UKICAgICAgICAgfTsKICAgICB9CiB9KTsKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggM2RkYWFmMy4uZWM3NTk4OSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTUsNiArNSwzNCBAQAog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgICogQW5pbW9t
ZXRlci9kZXZlbG9wZXIuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6IFJl
c3RydWN0dXJlIHJlc3VsdHMgdGFibGUgZm9yIGJvdGggcGFnZXMuIEFkZCBjaGFyc2V0IGF0dHJp
YnV0ZSB0bworICAgICAgICB0ZXN0cy5qcyBpbmNsdWRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIv
cmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzczogQ2xlYXIgb3V0IHN0eWxlcyBm
cm9tIHJlbGVhc2UgcnVubmVyLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9ncmFwaC5qczoKKyAgICAgICAgKG9uR3JhcGhUeXBlQ2hhbmdlZCk6IFVwZGF0ZSBz
Y29yZSBhbmQgbWVhbiBpZiBib290c3RyYXAgcmVzdWx0cyBhcmUgYXZhaWxhYmxlIGZyb20gdGhl
CisgICAgICAgIGNvbnRyb2xsZXIsIHNpbmNlIG5vdCBhbGwgY29udHJvbGxlcnMgZG8gYm9vdHN0
cmFwcGluZy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVz
dHMuanM6IFVwZGF0ZSBoZWFkZXIgdGV4dC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6IEluY2x1ZGUgY29uZmlkZW5jZSBpbnRlcnZhbCBpbiBy
ZXN1bHRzLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVy
LmpzOgorICAgICAgICAoUmVzdWx0c1RhYmxlLl9hZGRIZWFkZXIpOiBIZWFkZXIgY29udGVudHMg
Y2FuIGJlIEhUTUwsIHNvIHVzZSBpbm5lckhUTUwgaW5zdGVhZC4KKyAgICAgICAgKFJlc3VsdHNU
YWJsZS5fYWRkQm9keSk6IEFkZCB0Ym9keSBlbGVtZW50LgorICAgICAgICAoUmVzdWx0c1RhYmxl
Ll9hZGRUZXN0KTogQWxsb3cgYSBkYXRhIGNlbGwgdG8gaW52b2tlIGEgSlMgZnVuY3Rpb24gdG8g
Z2V0IGl0cyBjb250ZW50cy4KKyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNo
b3dSZXN1bHRzKTogQWRkIHRhYmxlIHRoYXQgaW5jbHVkZXMgdGVzdHMnIGNvbmZpZGVuY2UgaW50
ZXJ2YWxzLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczoK
KyAgICAgICAgKEhlYWRlcnMuZGV0YWlscy50ZXh0KTogQWRkIG5ldyBkZXRhaWxzIHRhYmxlIHRo
YXQgaW5jbHVkZXMgYm9vdHN0cmFwIGNvbmZpZGVuY2UgaW50ZXJ2YWwuCisgICAgICAgIFRoZSBp
bnRlcnZhbCBjYW4gYmUgYXN5bW1ldHJpYywgYnV0IGZvciBzaW1wbGljaXR5LCByZXBvcnQgdGhl
IG1heGltdW0gZGV2aWF0aW9uIHBlcmNlbnRhZ2UKKyAgICAgICAgb24gZWl0aGVyIHNpZGUgb2Yg
dGhlIGJvb3RzdHJhcCBtZWRpYW4uCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3Rh
dGlzdGljcy5qczoKKyAgICAgICAgKGJvb3RzdHJhcCk6IEluY2x1ZGUgdGhlIGNvbmZpZGVuY2Ug
cGVyY2VudGFnZSBpbiB0aGUgcmV0dXJuIG9iamVjdC4KKworMjAxNi0wNi0xNiAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZW1lbnRzIHRvIEFuaW1vbWV0ZXIg
YmVuY2htYXJrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTc3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAg
ICBSZXBvcnQgY2FudmFzIHNpemUgaW4gcmVzdWx0cy4KIAogICAgICAgICAqIEFuaW1vbWV0ZXIv
ZGV2ZWxvcGVyLmh0bWw6IEFkZCBtYXJrdXAgdG8gaW5kaWNhdGUgd2hldGhlciBhIHNtYWxsLCBt
ZWRpdW0sIG9yIGxhcmdlCi0tIAoyLjguMSAoQXBwbGUgR2l0LTY5KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281488</attachid>
            <date>2016-06-16 15:44:00 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>4. Update serialization format to reduce size and make it extensible</desc>
            <filename>0004-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>27859</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBlMzEyNTkzYzhlYTQzZGU1ZjQ0YmIzZjQxYTkxODMzZjhmNmJhYjVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDAzOjIyOjI2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpVcGRhdGUg
dGhlIGZvcm1hdCB1c2VkIHRvIHNlcmlhbGl6ZSB0aGUgcmVzdWx0cyBmb3IgYW5hbHlzaXMuCgpF
YWNoIGRhdGEgcG9pbnQgdXNlZCB0byBoYXZlIG5hbWVkIHByb3BlcnRpZXMgZm9yIGZpZWxkcyBs
aWtlIGNvbXBsZXhpdHkgYW5kIGZyYW1lIHJhdGUuCkluIGFkZGl0aW9uIHRoZSBzZXJpYWxpemVk
IG51bWJlcnMgaGFkIHJvdW5kaW5nIGVycm9ycyB0aGF0IHRvb2sgdXAgbWFueSBjaGFyYWN0ZXJz
LgpVcGRhdGUgdGhlIGZvcm1hdCBieSBpbnRyb2R1Y2luZyBhIG5ldyBkYXRhIGNvbnRhaW5lciBj
YWxsZWQgU2FtcGxlRGF0YSwgd2hpY2ggY29udGFpbnMgYQpmaWVsZCBtYXAuIFRoZSBtYXAgbWFw
cyBhIHN0cmluZyB0byBhbiBhcnJheSBpbmRleC4gRWFjaCBkYXRhIHBvaW50IGlzIGFuIGFycmF5
LCBzbywgdG8KZ2V0IGEgc3RhdCwgdXNlIHRoZSBmaWVsZCBtYXAgdG8gZ2V0IHRoZSBhcnJheSBp
bmRleCBpbnRvIHRoZSBkYXRhIHBvaW50LiBUaGlzIGFsbG93cyBmdXR1cmUKdmVyc2lvbnMgdG8g
dHJhY2sgb3RoZXIgZGF0YSwgYW5kIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBzdHJp
bmcgYnkgdHdvLXRoaXJkcy4KCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczoK
KFV0aWxpdGllcy50b0ZpeGVkTnVtYmVyKTogQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQg
dHJ1bmNhdGVzIHRoZSBudW1iZXIgdG8gYSBmaXhlZApwcmVjaXNpb24sIGFuZCBjb252ZXJ0cyBp
dCBiYWNrIHRvIGEgbnVtYmVyLgooU2FtcGxlRGF0YSk6IE5ldyBjbGFzcyB0aGF0IGNvbnRhaW5z
IHNhbXBsZSBkYXRhIGFuZCBhIGZpZWxkIG1hcCB0aGF0IG1hcHMgcHJvcGVydGllcyB0bwphbiBh
cnJheSBpbmRleC4KKGdldCBsZW5ndGgpOiBOdW1iZXIgb2YgZGF0YSBwb2ludHMuCihhZGRGaWVs
ZCk6IEFkZCBhIGZpZWxkIHRvIHRoZSBmaWVsZCBtYXAuCihwdXNoKTogQWRkIGEgZGF0YSBwb2lu
dC4KKHNvcnQpOiBTb3J0IHRoZSBkYXRhLgooc2xpY2UpOiBSZXR1cm4gbmV3IFNhbXBsZURhdGEg
b2JqZWN0IHdpdGggc2xpY2VkIGRhdGEuCihmb3JFYWNoKTogSXRlcmF0ZSBvdmVyIHRoZSBkYXRh
IHdpdGggcHJvdmlkZWQgZnVuY3Rpb24uCihjcmVhdGVEYXR1bSk6CihnZXRGaWVsZEluRGF0dW0p
OiBSZXR1cm5zIHRoZSBkYXRhIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbmFtZSBi
eSBsb29raW5nIGl0IHVwCmluIHRoZSBmaWVsZCBtYXAgaW4gdGhlIGRhdHVtIHByb3ZpZGVkLCB3
aGljaCBjYW4gYmUgdGhlIGRhdHVtIG9iamVjdCBpdHNlbGYgKGFuIGFycmF5KSBvcgphbiBpbmRl
eCBpbnRvIHRoZSBkYXRhIG1lbWJlciB2YXJpYWJsZS4KKHNldEZpZWxkSW5EYXR1bSk6IFNldHMg
dGhlIGRhdGEgcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBuYW1lLgooYXQpOiBSZXR1
cm5zIHRoZSBkYXRhIHBvaW50IGF0IHRoZSBwcm92aWRlZCBpbmRleC4KKHRvQXJyYXkpOiBTZXJp
YWxpemVzIHRoZSBkYXRhIHdoZXJlIHRoZSBmaWVsZCBtYXAgc2VydmVzIGFzIHByb3BlcnR5IG5h
bWVzIGZvciBlYWNoIHBvaW50LgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIv
Z3JhcGguanM6Cih1cGRhdGVHcmFwaERhdGEpOiBSZW1vdmUgdW51c2VkIF90ZXN0RGF0YS4gQ29u
dmVydCB0aGUgZGF0YSB0byB0aGUgb2xkIGFycmF5IGZvcm1hdCBmb3IgdGhlCmdyYXBoIHRvIHVz
ZSwgc2luY2UgdGhlIG9sZCBmb3JtYXQgd2FzIG11Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCB3aGVu
IGRpc3BsYXlpbmcgdGhlIGdyYXBocy4KKG9uR3JhcGhUeXBlQ2hhbmdlZCk6IEZvciBzb21lIGNv
bnRyb2xsZXJzLCBubyBhbHRlcm5hdGl2ZSBzY29yZSBvciBtZWFuIGlzIHByb3ZpZGVkLgoqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzczoKKiBBbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczogUmVmYWN0b3IgdG8gdXNlIFNhbXBsZURhdGEu
IFVwZGF0ZSBKU09OIG91dHB1dAp0byBvbmx5IGdvIHRvIDMgZGlnaXRzIG9mIHByZWNpc2lvbiBm
b3IgcHVycG9zZXMgb2YgcmVkdWNpbmcgdGhlIGRhdGEgc2l6ZS4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9zdHJpbmdzLmpzOiBBZGQgbmV3IHN0cmluZ3MgdG8gcHV0IGludG8gdGhlIGZpZWxkIG1h
cHMuCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogUmVmYWN0b3IgdG8gdXNl
IFNhbXBsZURhdGEuCi0tLQogLi4uL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5j
c3MgICAgICAgICAgfCAgMiArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9ncmFwaC5qcyAgICAgfCAyMyArKystLS0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRl
bnNpb25zLmpzICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrKysrKwogLi4uL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcyAgICAgfCAgMSArCiAuLi4v
QW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgICAgICB8IDQ2ICsrKysr
KysrLS0tLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMgICAgICAgICAg
ICAgfCAgMyArCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3Mu
anMgICB8ICAzICsKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzICAgICAg
ICAgICAgIHwgODAgKysrKysrKysrKysrLS0tLS0tLS0KIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysKIDkgZmlsZXMgY2hh
bmdlZCwgMjM0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0
ZXIuY3NzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5u
ZXIvYW5pbW9tZXRlci5jc3MKaW5kZXggNzdiZTFkZi4uMzUwYzBjMCAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5jc3MKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1y
dW5uZXIvYW5pbW9tZXRlci5jc3MKQEAgLTcyMSw3ICs3MjEsNyBAQCBsYWJlbC50cmVlLWxhYmVs
IHsKIH0KIAogI2NvbXBsZXhpdHktZ3JhcGggLnJhdy5zZXJpZXMgbGluZSB7Ci0gICAgc3Ryb2tl
OiBoc2woMzAsIDk2JSwgNTYlKTsKKyAgICBzdHJva2U6IGhzbGEoMzAsIDk2JSwgNTYlLCAuMyk7
CiAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CiB9CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMKaW5kZXgg
YmJmYmI2YS4uNDgwMzkzNiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMKQEAgLTQsNyArNCw2IEBA
IFV0aWxpdGllcy5leHRlbmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsKICAg
ICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1ncmFwaC1k
YXRhIik7CiAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgIGVsZW1lbnQu
X3Rlc3RSZXN1bHQgPSB0ZXN0UmVzdWx0OwotICAgICAgICBlbGVtZW50Ll90ZXN0RGF0YSA9IHRl
c3REYXRhOwogICAgICAgICBlbGVtZW50Ll9vcHRpb25zID0gb3B0aW9uczsKIAogICAgICAgICB2
YXIgbWFyZ2lucyA9IG5ldyBJbnNldHMoMzAsIDMwLCAzMCwgNDApOwpAQCAtMTIsMTYgKzExLDIw
IEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsK
ICAgICAgICAgc2l6ZS55ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRUb3A7
CiAgICAgICAgIHNpemUgPSBzaXplLnN1YnRyYWN0KG1hcmdpbnMuc2l6ZSk7CiAKLSAgICAgICAg
dGhpcy5jcmVhdGVUaW1lR3JhcGgodGVzdFJlc3VsdCwgdGVzdERhdGFbU3RyaW5ncy5qc29uLnNh
bXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLm1h
cmtzXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCBvcHRpb25zLCBtYXJnaW5z
LCBzaXplKTsKKyAgICAgICAgLy8gQ29udmVydCBmcm9tIGNvbXBhY3QgSlNPTiBvdXRwdXQgdG8g
cHJvcGVydGllZCBkYXRhCisgICAgICAgIHZhciBzYW1wbGVzV2l0aFByb3BlcnRpZXMgPSB7fTsK
KyAgICAgICAgW1N0cmluZ3MuanNvbi5jb250cm9sbGVyLCBTdHJpbmdzLmpzb24uY29tcGxleGl0
eSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlXS5mb3JFYWNoKGZ1bmN0aW9uKHNlcmll
c05hbWUpIHsKKyAgICAgICAgICAgIHZhciBzZXJpZXMgPSB0ZXN0RGF0YVtTdHJpbmdzLmpzb24u
c2FtcGxlc11bc2VyaWVzTmFtZV07CisgICAgICAgICAgICBzYW1wbGVzV2l0aFByb3BlcnRpZXNb
c2VyaWVzTmFtZV0gPSBzZXJpZXMudG9BcnJheSgpOworICAgICAgICB9KQorCisgICAgICAgIHRo
aXMuY3JlYXRlVGltZUdyYXBoKHRlc3RSZXN1bHQsIHNhbXBsZXNXaXRoUHJvcGVydGllc1tTdHJp
bmdzLmpzb24uY29udHJvbGxlcl0sIHRlc3REYXRhW1N0cmluZ3MuanNvbi5tYXJrc10sIHRlc3RE
YXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgb3B0aW9ucywgbWFyZ2lucywgc2l6ZSk7CiAg
ICAgICAgIHRoaXMub25UaW1lR3JhcGhPcHRpb25zQ2hhbmdlZCgpOwogCi0gICAgICAgIHZhciBo
YXNDb21wbGV4aXR5U2FtcGxlcyA9ICEhdGVzdERhdGFbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0
cmluZ3MuanNvbi5jb21wbGV4aXR5XTsKLSAgICAgICAgdGhpcy5fc2hvd09ySGlkZU5vZGVzKGhh
c0NvbXBsZXhpdHlTYW1wbGVzLCAiZm9ybVtuYW1lPWdyYXBoLXR5cGVdIik7Ci0gICAgICAgIGlm
IChoYXNDb21wbGV4aXR5U2FtcGxlcykgewotICAgICAgICAgICAgZG9jdW1lbnQuZm9ybXNbImdy
YXBoLXR5cGUiXS5lbGVtZW50c1sidHlwZSJdID0gImNvbXBsZXhpdHkiOwotICAgICAgICAgICAg
dGhpcy5jcmVhdGVDb21wbGV4aXR5R3JhcGgodGVzdFJlc3VsdCwgdGVzdERhdGFbU3RyaW5ncy5q
c29uLmNvbnRyb2xsZXJdLCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uc2FtcGxlc10sIG9wdGlvbnMs
IG1hcmdpbnMsIHNpemUpOwotICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXhpdHlHcmFwaE9wdGlv
bnNDaGFuZ2VkKCk7Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5fc2hvd09ySGlkZU5vZGVzKHRy
dWUsICJmb3JtW25hbWU9Z3JhcGgtdHlwZV0iKTsKKyAgICAgICAgZG9jdW1lbnQuZm9ybXNbImdy
YXBoLXR5cGUiXS5lbGVtZW50c1sidHlwZSJdID0gImNvbXBsZXhpdHkiOworICAgICAgICB0aGlz
LmNyZWF0ZUNvbXBsZXhpdHlHcmFwaCh0ZXN0UmVzdWx0LCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24u
Y29udHJvbGxlcl0sIHNhbXBsZXNXaXRoUHJvcGVydGllcywgb3B0aW9ucywgbWFyZ2lucywgc2l6
ZSk7CisgICAgICAgIHRoaXMub25Db21wbGV4aXR5R3JhcGhPcHRpb25zQ2hhbmdlZCgpOwogCiAg
ICAgICAgIHRoaXMub25HcmFwaFR5cGVDaGFuZ2VkKCk7CiAgICAgfSwKQEAgLTU2OCw3ICs1NzEs
NyBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLCB7
CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuX3Nob3dPckhpZGVOb2RlcyghaXNUaW1lU2Vs
ZWN0ZWQsICIjY29tcGxleGl0eS1ncmFwaCIpOwogICAgICAgICBiZW5jaG1hcmtDb250cm9sbGVy
Ll9zaG93T3JIaWRlTm9kZXMoIWlzVGltZVNlbGVjdGVkLCAiZm9ybVtuYW1lPWNvbXBsZXhpdHkt
Z3JhcGgtb3B0aW9uc10iKTsKIAotICAgICAgICB2YXIgc2NvcmUsIG1lYW47CisgICAgICAgIHZh
ciBzY29yZSA9ICIiLCBtZWFuID0gIiI7CiAgICAgICAgIGlmIChpc1RpbWVTZWxlY3RlZCkgewog
ICAgICAgICAgICAgc2NvcmUgPSB0ZXN0UmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0udG9GaXhl
ZCgyKTsKIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9l
eHRlbnNpb25zLmpzCmluZGV4IGQ4MWRkNzkuLjllZjAyNTcgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcworKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKQEAgLTE1NSw2ICsx
NTUsMTMgQEAgVXRpbGl0aWVzID0KICAgICBsZXJwOiBmdW5jdGlvbih2YWx1ZSwgbWluLCBtYXgp
CiAgICAgewogICAgICAgICByZXR1cm4gbWluICsgKG1heCAtIG1pbikgKiB2YWx1ZTsKKyAgICB9
LAorCisgICAgdG9GaXhlZE51bWJlcjogZnVuY3Rpb24obnVtYmVyLCBwcmVjaXNpb24pCisgICAg
eworICAgICAgICBpZiAobnVtYmVyLnRvRml4ZWQpCisgICAgICAgICAgICByZXR1cm4gTnVtYmVy
KG51bWJlci50b0ZpeGVkKDMpKTsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKICAgICB9CiB9Owog
CkBAIC01ODEsMyArNTg4LDgzIEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3QoSGVhcCwgewogICAg
ICAgICByZXR1cm4gbmV3IEhlYXAobWF4U2l6ZSwgZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSAt
IGI7IH0pOwogICAgIH0KIH0pOworCit2YXIgU2FtcGxlRGF0YSA9IFV0aWxpdGllcy5jcmVhdGVD
bGFzcygKKyAgICBmdW5jdGlvbihmaWVsZE1hcCwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMu
ZmllbGRNYXAgPSBmaWVsZE1hcCB8fCB7fTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YSB8fCBb
XTsKKyAgICB9LCB7CisKKyAgICBnZXQgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmRhdGEubGVuZ3RoOworICAgIH0sCisKKyAgICBhZGRGaWVsZDogZnVuY3Rpb24obmFtZSwg
aW5kZXgpCisgICAgeworICAgICAgICB0aGlzLmZpZWxkTWFwW25hbWVdID0gaW5kZXg7CisgICAg
fSwKKworICAgIHB1c2g6IGZ1bmN0aW9uKGRhdHVtKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRh
LnB1c2goZGF0dW0pOworICAgIH0sCisKKyAgICBzb3J0OiBmdW5jdGlvbihzb3J0RnVuY3Rpb24p
CisgICAgeworICAgICAgICB0aGlzLmRhdGEuc29ydChzb3J0RnVuY3Rpb24pOworICAgIH0sCisK
KyAgICBzbGljZTogZnVuY3Rpb24oYmVnaW4sIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgU2FtcGxlRGF0YSh0aGlzLmZpZWxkTWFwLCB0aGlzLmRhdGEuc2xpY2UoYmVnaW4sIGVuZCkp
OworICAgIH0sCisKKyAgICBmb3JFYWNoOiBmdW5jdGlvbihpdGVyYXRpb25GdW5jdGlvbikKKyAg
ICB7CisgICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKGl0ZXJhdGlvbkZ1bmN0aW9uKTsKKyAgICB9
LAorCisgICAgY3JlYXRlRGF0dW06IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBb
XTsKKyAgICB9LAorCisgICAgZ2V0RmllbGRJbkRhdHVtOiBmdW5jdGlvbihkYXR1bSwgZmllbGRO
YW1lKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGVvZiBkYXR1bSA9PT0gJ251bWJlcicpCisgICAg
ICAgICAgICBkYXR1bSA9IHRoaXMuZGF0YVtkYXR1bV07CisgICAgICAgIHJldHVybiBkYXR1bVt0
aGlzLmZpZWxkTWFwW2ZpZWxkTmFtZV1dOworICAgIH0sCisKKyAgICBzZXRGaWVsZEluRGF0dW06
IGZ1bmN0aW9uKGRhdHVtLCBmaWVsZE5hbWUsIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHR5
cGVvZiBkYXR1bSA9PT0gJ251bWJlcicpCisgICAgICAgICAgICBkYXR1bSA9IHRoaXMuZGF0YVtk
YXR1bV07CisgICAgICAgIHJldHVybiBkYXR1bVt0aGlzLmZpZWxkTWFwW2ZpZWxkTmFtZV1dID0g
dmFsdWU7CisgICAgfSwKKworICAgIGF0OiBmdW5jdGlvbihpbmRleCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmRhdGFbaW5kZXhdOworICAgIH0sCisKKyAgICB0b0FycmF5OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB2YXIgYXJyYXkgPSBbXTsKKworICAgICAgICB0aGlzLmRhdGEu
Zm9yRWFjaChmdW5jdGlvbihkYXR1bSkgeworICAgICAgICAgICAgdmFyIG5ld0RhdHVtID0ge307
CisgICAgICAgICAgICBhcnJheS5wdXNoKG5ld0RhdHVtKTsKKworICAgICAgICAgICAgZm9yICh2
YXIgZmllbGROYW1lIGluIHRoaXMuZmllbGRNYXApIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFs
dWUgPSB0aGlzLmdldEZpZWxkSW5EYXR1bShkYXR1bSwgZmllbGROYW1lKTsKKyAgICAgICAgICAg
ICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICAgICAgbmV3RGF0dW1bZmllbGROYW1lXSA9IHZhbHVlOworICAgICAgICAgICAgfQor
ICAgICAgICB9LCB0aGlzKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9h
bmltb21ldGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuY3NzCmluZGV4IDY3YjQ5MzAuLjYwMzQwY2MgMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3Nz
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1v
bWV0ZXIuY3NzCkBAIC00NjMsNiArNDYzLDcgQEAgYm9keS5sYXJnZSAuZGV0YWlsIC5sYXJnZSB7
CiAjb3ZlcmxheSA+IGRpdiBkaXYgewogICAgIG92ZXJmbG93OiBzY3JvbGw7CiAKKyAgICBmb250
LXNpemU6IDEycHg7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgICBjdXJzb3I6
IHRleHQ7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCmluZGV4IGQwMTQ5NWIuLjczOTc2ODggMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1v
bWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5u
ZXIvYW5pbW9tZXRlci5qcwpAQCAtNjcsMjggKzY3LDM4IEBAIFJlc3VsdHNEYXNoYm9hcmQgPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIGZ1bmN0aW9uIGZpbmRSZWdyZXNzaW9uKHNl
cmllcykgewogICAgICAgICAgICAgdmFyIG1pbkluZGV4ID0gTWF0aC5yb3VuZCguMDI1ICogc2Vy
aWVzLmxlbmd0aCk7CiAgICAgICAgICAgICB2YXIgbWF4SW5kZXggPSBNYXRoLnJvdW5kKC45NzUg
KiAoc2VyaWVzLmxlbmd0aCAtIDEpKTsKLSAgICAgICAgICAgIHZhciBtaW5Db21wbGV4aXR5ID0g
c2VyaWVzW21pbkluZGV4XS5jb21wbGV4aXR5OwotICAgICAgICAgICAgdmFyIG1heENvbXBsZXhp
dHkgPSBzZXJpZXNbbWF4SW5kZXhdLmNvbXBsZXhpdHk7CisgICAgICAgICAgICB2YXIgbWluQ29t
cGxleGl0eSA9IHNlcmllcy5nZXRGaWVsZEluRGF0dW0obWluSW5kZXgsIFN0cmluZ3MuanNvbi5j
b21wbGV4aXR5KTsKKyAgICAgICAgICAgIHZhciBtYXhDb21wbGV4aXR5ID0gc2VyaWVzLmdldEZp
ZWxkSW5EYXR1bShtYXhJbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOworCiAgICAgICAg
ICAgICBpZiAoTWF0aC5hYnMobWF4Q29tcGxleGl0eSAtIG1pbkNvbXBsZXhpdHkpIDwgMjAgJiYg
bWF4SW5kZXggLSBtaW5JbmRleCA8IDIwKSB7CiAgICAgICAgICAgICAgICAgbWluSW5kZXggPSAw
OwogICAgICAgICAgICAgICAgIG1heEluZGV4ID0gc2VyaWVzLmxlbmd0aCAtIDE7Ci0gICAgICAg
ICAgICAgICAgbWluQ29tcGxleGl0eSA9IHNlcmllc1ttaW5JbmRleF0uY29tcGxleGl0eTsKLSAg
ICAgICAgICAgICAgICBtYXhDb21wbGV4aXR5ID0gc2VyaWVzW21heEluZGV4XS5jb21wbGV4aXR5
OworICAgICAgICAgICAgICAgIG1pbkNvbXBsZXhpdHkgPSBzZXJpZXMuZ2V0RmllbGRJbkRhdHVt
KG1pbkluZGV4LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7CisgICAgICAgICAgICAgICAgbWF4
Q29tcGxleGl0eSA9IHNlcmllcy5nZXRGaWVsZEluRGF0dW0obWF4SW5kZXgsIFN0cmluZ3MuanNv
bi5jb21wbGV4aXR5KTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgdmFyIGNvbXBsZXhp
dHlJbmRleCA9IHNlcmllcy5maWVsZE1hcFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV07CisgICAg
ICAgICAgICB2YXIgZnJhbWVMZW5ndGhJbmRleCA9IHNlcmllcy5maWVsZE1hcFtTdHJpbmdzLmpz
b24uZnJhbWVMZW5ndGhdOwogICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICBt
aW5Db21wbGV4aXR5OiBtaW5Db21wbGV4aXR5LAogICAgICAgICAgICAgICAgIG1heENvbXBsZXhp
dHk6IG1heENvbXBsZXhpdHksCiAgICAgICAgICAgICAgICAgc2FtcGxlczogc2VyaWVzLnNsaWNl
KG1pbkluZGV4LCBtYXhJbmRleCArIDEpLAogICAgICAgICAgICAgICAgIHJlZ3Jlc3Npb246IG5l
dyBSZWdyZXNzaW9uKAogICAgICAgICAgICAgICAgICAgICBzZXJpZXMsCi0gICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIChkYXR1bSwgaSkgeyByZXR1cm4gZGF0dW1baV0uY29tcGxleGl0eTsg
fSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGRhdHVtLCBpKSB7IHJldHVybiBkYXR1
bVtpXS5mcmFtZUxlbmd0aDsgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGRhdHVt
LCBpKSB7IHJldHVybiBzZXJpZXMuZGF0YVtpXVtjb21wbGV4aXR5SW5kZXhdOyB9LAorICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoZGF0dW0sIGkpIHsgcmV0dXJuIHNlcmllcy5kYXRhW2ld
W2ZyYW1lTGVuZ3RoSW5kZXhdOyB9LAogICAgICAgICAgICAgICAgICAgICBtaW5JbmRleCwgbWF4
SW5kZXgsIGRlc2lyZWRGcmFtZUxlbmd0aCkKICAgICAgICAgICAgIH07CiAgICAgICAgIH0KIAog
ICAgICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXM7CisgICAgICAgIC8vIENvbnZlcnQgdGhlc2Ug
c2FtcGxlcyBpbnRvIFNhbXBsZURhdGEgb2JqZWN0cyBpZiBuZWVkZWQKKyAgICAgICAgW1N0cmlu
Z3MuanNvbi5jb21wbGV4aXR5LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2UsIFN0cmlu
Z3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllc05hbWUpIHsKKyAgICAg
ICAgICAgIHZhciBzZXJpZXMgPSBzYW1wbGVzW3Nlcmllc05hbWVdOworICAgICAgICAgICAgaWYg
KHNlcmllcyAmJiAhKHNlcmllcyBpbnN0YW5jZW9mIFNhbXBsZURhdGEpKQorICAgICAgICAgICAg
ICAgIHNhbXBsZXNbc2VyaWVzTmFtZV0gPSBuZXcgU2FtcGxlRGF0YShzZXJpZXMuZmllbGRNYXAs
IHNlcmllcy5kYXRhKTsKKyAgICAgICAgfSk7CisKICAgICAgICAgW1N0cmluZ3MuanNvbi5jb21w
bGV4aXR5LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2VdLmZvckVhY2goZnVuY3Rpb24o
c2VyaWVzTmFtZSkgewogICAgICAgICAgICAgaWYgKCEoc2VyaWVzTmFtZSBpbiBzYW1wbGVzKSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xMjQsMTEgKzEzNCwxMyBAQCBSZXN1bHRzRGFz
aGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgZXhwZXJpbWVudFJl
c3VsdFtTdHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnN0ZGV2XSA9IHRpbWVDb21wbGV4aXR5LnN0
YW5kYXJkRGV2aWF0aW9uKCk7CiAgICAgICAgICAgICBleHBlcmltZW50UmVzdWx0W1N0cmluZ3Mu
anNvbi5tZWFzdXJlbWVudHMucGVyY2VudF0gPSB0aW1lQ29tcGxleGl0eS5wZXJjZW50YWdlKCk7
CiAKLSAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV1bU3RyaW5ncy5q
c29uLmJvb3RzdHJhcF0gPSBSZWdyZXNzaW9uLmJvb3RzdHJhcChjb21wbGV4aXR5U2FtcGxlcywg
MjUwMCwgZnVuY3Rpb24ocmVzYW1wbGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzYW1wbGUu
c29ydChmdW5jdGlvbihhLCBiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5j
b21wbGV4aXR5IC0gYi5jb21wbGV4aXR5OworICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNv
bi5jb21wbGV4aXR5XVtTdHJpbmdzLmpzb24uYm9vdHN0cmFwXSA9IFJlZ3Jlc3Npb24uYm9vdHN0
cmFwKGNvbXBsZXhpdHlTYW1wbGVzLmRhdGEsIDI1MDAsIGZ1bmN0aW9uKHJlc2FtcGxlRGF0YSkg
eworICAgICAgICAgICAgICAgICAgICB2YXIgY29tcGxleGl0eUluZGV4ID0gY29tcGxleGl0eVNh
bXBsZXMuZmllbGRNYXBbU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldOworICAgICAgICAgICAgICAg
ICAgICByZXNhbXBsZURhdGEuc29ydChmdW5jdGlvbihhLCBiKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYVtjb21wbGV4aXR5SW5kZXhdIC0gYltjb21wbGV4aXR5SW5kZXhdOwog
ICAgICAgICAgICAgICAgICAgICB9KTsKIAorICAgICAgICAgICAgICAgICAgICB2YXIgcmVzYW1w
bGUgPSBuZXcgU2FtcGxlRGF0YShjb21wbGV4aXR5U2FtcGxlcy5maWVsZE1hcCwgcmVzYW1wbGVE
YXRhKTsKICAgICAgICAgICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25SZXN1bHQgPSBmaW5kUmVn
cmVzc2lvbihyZXNhbXBsZSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdyZXNzaW9u
UmVzdWx0LnJlZ3Jlc3Npb24uY29tcGxleGl0eTsKICAgICAgICAgICAgICAgICB9LCAuOCk7CkBA
IC0xNDQsMTEgKzE1NiwxMyBAQCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNs
YXNzKAogCiAgICAgICAgICAgICB2YXIgYXZlcmFnZUNvbXBsZXhpdHkgPSBuZXcgRXhwZXJpbWVu
dDsKICAgICAgICAgICAgIHZhciBhdmVyYWdlRnJhbWVMZW5ndGggPSBuZXcgRXhwZXJpbWVudDsK
LSAgICAgICAgICAgIHNhbXBsZXNbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLmZvckVhY2goZnVu
Y3Rpb24gKHNhbXBsZSwgaSkgeworICAgICAgICAgICAgdmFyIGNvbnRyb2xsZXJTYW1wbGVzID0g
c2FtcGxlc1tTdHJpbmdzLmpzb24uY29udHJvbGxlcl07CisgICAgICAgICAgICBjb250cm9sbGVy
U2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uIChzYW1wbGUsIGkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoaSA+PSBzYW1wbGluZ1N0YXJ0SW5kZXggJiYgKHNhbXBsaW5nRW5kSW5kZXggPT0gLTEgfHwg
aSA8IHNhbXBsaW5nRW5kSW5kZXgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VDb21w
bGV4aXR5LnNhbXBsZShzYW1wbGUuY29tcGxleGl0eSk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0aCAmJiBzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0
aCAhPSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VGcmFtZUxlbmd0aC5zYW1w
bGUoc2FtcGxlLnNtb290aGVkRnJhbWVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBhdmVy
YWdlQ29tcGxleGl0eS5zYW1wbGUoY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHNh
bXBsZSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHNtb290aGVkRnJhbWVMZW5ndGggPSBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0o
c2FtcGxlLCBTdHJpbmdzLmpzb24uc21vb3RoZWRGcmFtZUxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChzbW9vdGhlZEZyYW1lTGVuZ3RoICYmIHNtb290aGVkRnJhbWVMZW5ndGggIT0g
LTEpCisgICAgICAgICAgICAgICAgICAgICAgICBhdmVyYWdlRnJhbWVMZW5ndGguc2FtcGxlKHNt
b290aGVkRnJhbWVMZW5ndGgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwog
CkBAIC01MDMsNyArNTE3LDExIEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAg
ICAgICAgICAgICAgIG9wdGlvbnM6IGJlbmNobWFya1J1bm5lckNsaWVudC5yZXN1bHRzLm9wdGlv
bnMsCiAgICAgICAgICAgICAgICAgZGF0YTogYmVuY2htYXJrUnVubmVyQ2xpZW50LnJlc3VsdHMu
ZGF0YQogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGRhdGEudGV4dENvbnRlbnQgPSBKU09O
LnN0cmluZ2lmeShvdXRwdXQsIG51bGwsIDEpOworICAgICAgICAgICAgZGF0YS50ZXh0Q29udGVu
dCA9IEpTT04uc3RyaW5naWZ5KG91dHB1dCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeworICAgICAg
ICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gVXRpbGl0aWVzLnRvRml4ZWROdW1iZXIodmFsdWUsIDMpOworICAgICAgICAg
ICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgIH0sIDEpOwogICAgICAgICB9LCAwKTsK
ICAgICAgICAgZGF0YS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzCmluZGV4IDZmNjQ4NWEuLjY2Mjlk
ZjIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3Rh
dGlzdGljcy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0
YXRpc3RpY3MuanMKQEAgLTIxNyw2ICsyMTcsNyBAQCBSZWdyZXNzaW9uID0gVXRpbGl0aWVzLmNy
ZWF0ZUNsYXNzKAogICAgICAgICAgICAgfTsKICAgICAgICAgfQogCisgICAgICAgIC8vIHggaXMg
ZXhwZWN0ZWQgdG8gaW5jcmVhc2UgaW4gY29tcGxleGl0eQogICAgICAgICB2YXIgaXRlcmF0aW9u
RGlyZWN0aW9uID0gZW5kSW5kZXggPiBzdGFydEluZGV4ID8gMSA6IC0xOwogICAgICAgICB2YXIg
bG93Q29tcGxleGl0eSA9IGdldENvbXBsZXhpdHkoc2FtcGxlcywgc3RhcnRJbmRleCk7CiAgICAg
ICAgIHZhciBoaWdoQ29tcGxleGl0eSA9IGdldENvbXBsZXhpdHkoc2FtcGxlcywgZW5kSW5kZXgp
OwpAQCAtMjQ1LDcgKzI0Niw5IEBAIFJlZ3Jlc3Npb24gPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CiAgICAgICAgICAgICBzMl9iZXN0ID0gczI7CiAgICAgICAgICAgICB0Ml9iZXN0ID0gdDI7CiAg
ICAgICAgICAgICBlcnJvcjJfYmVzdCA9IGVycm9yMjsKKyAgICAgICAgICAgIC8vIE51bWJlciBv
ZiBzYW1wbGVzIGluY2x1ZGVkIGluIHRoZSBmaXJzdCBzZWdtZW50LCBpbmNsdXNpdmUgb2Ygc3Bs
aXRJbmRleAogICAgICAgICAgICAgbjFfYmVzdCA9IGl0ZXJhdGlvbkRpcmVjdGlvbiAqIChzcGxp
dEluZGV4IC0gc3RhcnRJbmRleCkgKyAxOworICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHNhbXBs
ZXMgaW5jbHVkZWQgaW4gdGhlIHNlY29uZCBzZWdtZW50CiAgICAgICAgICAgICBuMl9iZXN0ID0g
aXRlcmF0aW9uRGlyZWN0aW9uICogKGVuZEluZGV4IC0gc3BsaXRJbmRleCk7CiAgICAgICAgICAg
ICBpZiAoIW9wdGlvbnMuc2hvdWxkQ2xpcCB8fCAoeF9wcmltZSA+PSBsb3dDb21wbGV4aXR5ICYm
IHhfcHJpbWUgPD0gaGlnaENvbXBsZXhpdHkpKQogICAgICAgICAgICAgICAgIHhfYmVzdCA9IHhf
cHJpbWU7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3N0cmluZ3MuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmlu
Z3MuanMKaW5kZXggMTkyMjlhYS4uMzRkODdiOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcwpAQCAtOSwxMCArOSwxMyBAQCB2YXIgU3Ry
aW5ncyA9IHsKICAgICAgICAgc2FtcGxpbmdFbmRUaW1lT2Zmc2V0OiAiRW5kIHNhbXBsaW5nIiwK
IAogICAgICAgICBzYW1wbGVzOiAic2FtcGxlcyIsCisgICAgICAgIGRhdGFGaWVsZE1hcDogImRh
dGFGaWVsZE1hcCIsCiAgICAgICAgIGNvbnRyb2xsZXI6ICJjb250cm9sbGVyIiwKKyAgICAgICAg
dGltZTogInRpbWUiLAogICAgICAgICBjb21wbGV4aXR5OiAiY29tcGxleGl0eSIsCiAgICAgICAg
IGNvbXBsZXhpdHlBdmVyYWdlOiAiY29tcGxleGl0eUF2ZXJhZ2UiLAogICAgICAgICBmcmFtZUxl
bmd0aDogImZyYW1lTGVuZ3RoIiwKKyAgICAgICAgc21vb3RoZWRGcmFtZUxlbmd0aDogInNtb290
aGVkRnJhbWVMZW5ndGgiLAogCiAgICAgICAgIHJlc3VsdDogInJlc3VsdCIsCiAgICAgICAgIHNj
b3JlOiAic2NvcmUiLApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL3Jlc291cmNlcy9tYWluLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L3Jlc291cmNlcy9tYWluLmpzCmluZGV4IGUxNGVkNTkuLmY4NTE3NjMgMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKQEAgLTE0
OSw4ICsxNDksMTIgQEAgQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKIAogICAg
IF9wcm9jZXNzQ29tcGxleGl0eVNhbXBsZXM6IGZ1bmN0aW9uKGNvbXBsZXhpdHlTYW1wbGVzLCBj
b21wbGV4aXR5QXZlcmFnZVNhbXBsZXMpCiAgICAgeworICAgICAgICBjb21wbGV4aXR5QXZlcmFn
ZVNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIDApOworICAgICAgICBj
b21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3Ro
LCAxKTsKKyAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3Mu
anNvbi5tZWFzdXJlbWVudHMuc3RkZXYsIDIpOworCiAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVz
LnNvcnQoZnVuY3Rpb24oYSwgYikgewotICAgICAgICAgICAgcmV0dXJuIGEuY29tcGxleGl0eSAt
IGIuY29tcGxleGl0eTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV4aXR5U2FtcGxlcy5nZXRG
aWVsZEluRGF0dW0oYSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpIC0gY29tcGxleGl0eVNhbXBs
ZXMuZ2V0RmllbGRJbkRhdHVtKGIsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgLy8gU2FtcGxlcyBhdmVyYWdlZCBiYXNlZCBvbiBjb21wbGV4aXR5CkBA
IC0xNTksMjEgKzE2MywyMyBAQCBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAog
ICAgICAgICBmdW5jdGlvbiBhZGRTYW1wbGUoKSB7CiAgICAgICAgICAgICB2YXIgbWVhbiA9IGV4
cGVyaW1lbnRBdENvbXBsZXhpdHkubWVhbigpOwogICAgICAgICAgICAgdmFyIHN0ZGV2ID0gZXhw
ZXJpbWVudEF0Q29tcGxleGl0eS5zdGFuZGFyZERldmlhdGlvbigpOwotICAgICAgICAgICAgY29t
cGxleGl0eUF2ZXJhZ2VTYW1wbGVzLnB1c2goewotICAgICAgICAgICAgICAgIGNvbXBsZXhpdHk6
IGN1cnJlbnRDb21wbGV4aXR5LAotICAgICAgICAgICAgICAgIGZyYW1lTGVuZ3RoOiBtZWFuLAot
ICAgICAgICAgICAgICAgIHN0ZGV2OiBzdGRldgotICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIHZhciBhdmVyYWdlU2FtcGxlID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLmNyZWF0ZURh
dHVtKCk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMucHVzaChhdmVyYWdl
U2FtcGxlKTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5zZXRGaWVsZElu
RGF0dW0oYXZlcmFnZVNhbXBsZSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIGN1cnJlbnRDb21w
bGV4aXR5KTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5zZXRGaWVsZElu
RGF0dW0oYXZlcmFnZVNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoLCBtZWFuKTsKKyAg
ICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5zZXRGaWVsZEluRGF0dW0oYXZlcmFn
ZVNhbXBsZSwgU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5zdGRldiwgc3RkZXYpOwogICAgICAg
ICB9CiAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oc2FtcGxlKSB7
Ci0gICAgICAgICAgICBpZiAoc2FtcGxlLmNvbXBsZXhpdHkgIT0gY3VycmVudENvbXBsZXhpdHkp
IHsKKyAgICAgICAgICAgIHZhciBzYW1wbGVDb21wbGV4aXR5ID0gY29tcGxleGl0eVNhbXBsZXMu
Z2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOworICAgICAg
ICAgICAgaWYgKHNhbXBsZUNvbXBsZXhpdHkgIT0gY3VycmVudENvbXBsZXhpdHkpIHsKICAgICAg
ICAgICAgICAgICBpZiAoY3VycmVudENvbXBsZXhpdHkgPiAtMSkKICAgICAgICAgICAgICAgICAg
ICAgYWRkU2FtcGxlKCk7CiAKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29tcGxleGl0eSA9IHNh
bXBsZS5jb21wbGV4aXR5OworICAgICAgICAgICAgICAgIGN1cnJlbnRDb21wbGV4aXR5ID0gc2Ft
cGxlQ29tcGxleGl0eTsKICAgICAgICAgICAgICAgICBleHBlcmltZW50QXRDb21wbGV4aXR5ID0g
bmV3IEV4cGVyaW1lbnQ7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBleHBlcmltZW50QXRD
b21wbGV4aXR5LnNhbXBsZShzYW1wbGUuZnJhbWVMZW5ndGgpOworICAgICAgICAgICAgZXhwZXJp
bWVudEF0Q29tcGxleGl0eS5zYW1wbGUoY29tcGxleGl0eVNhbXBsZXMuZ2V0RmllbGRJbkRhdHVt
KHNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoKSk7CiAgICAgICAgIH0pOwogICAgICAg
ICAvLyBGaW5pc2ggb2ZmIHRoZSBsYXN0IG9uZQogICAgICAgICBhZGRTYW1wbGUoKTsKQEAgLTE5
MiwyOSArMTk4LDM3IEBAIENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAKICAg
ICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc10gPSB7fTsKIAotICAgICAgICB2YXIg
Y29tcGxleGl0eVNhbXBsZXMgPSBbXSwgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzID0gW107Cisg
ICAgICAgIHZhciBjb250cm9sbGVyU2FtcGxlcyA9IG5ldyBTYW1wbGVEYXRhOworICAgICAgICBy
ZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0gPSBj
b250cm9sbGVyU2FtcGxlczsKKworICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5hZGRGaWVsZChT
dHJpbmdzLmpzb24udGltZSwgMCk7CisgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVzLmFkZEZpZWxk
KFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCAxKTsKKyAgICAgICAgY29udHJvbGxlclNhbXBsZXMu
YWRkRmllbGQoU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoLCAyKTsKKyAgICAgICAgY29udHJvbGxl
clNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLnNtb290aGVkRnJhbWVMZW5ndGgsIDMpOwor
CisgICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxlcyA9IG5ldyBTYW1wbGVEYXRhKGNvbnRyb2xs
ZXJTYW1wbGVzLmZpZWxkTWFwKTsKICAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxl
c11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldID0gY29tcGxleGl0eVNhbXBsZXM7Ci0gICAgICAg
IHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5QXZl
cmFnZV0gPSBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXM7CiAKLSAgICAgICAgcmVzdWx0c1tTdHJp
bmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdID0gc2FtcGxlc1swXS5t
YXAoZnVuY3Rpb24odGltZXN0YW1wLCBpKSB7Ci0gICAgICAgICAgICB2YXIgc2FtcGxlID0gewot
ICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudCB0aW1lIGluIG1pbGxpc2Vjb25kcwotICAgICAg
ICAgICAgICAgIHRpbWU6IHRpbWVzdGFtcCAtIHRoaXMuX3N0YXJ0VGltZXN0YW1wLAotICAgICAg
ICAgICAgICAgIGNvbXBsZXhpdHk6IHNhbXBsZXNbMV1baV0KLSAgICAgICAgICAgIH07CisgICAg
ICAgIHNhbXBsZXNbMF0uZm9yRWFjaChmdW5jdGlvbih0aW1lc3RhbXAsIGkpIHsKKyAgICAgICAg
ICAgIHZhciBzYW1wbGUgPSBjb250cm9sbGVyU2FtcGxlcy5jcmVhdGVEYXR1bSgpOworICAgICAg
ICAgICAgY29udHJvbGxlclNhbXBsZXMucHVzaChzYW1wbGUpOworICAgICAgICAgICAgY29tcGxl
eGl0eVNhbXBsZXMucHVzaChzYW1wbGUpOworCisgICAgICAgICAgICAvLyBSZXByZXNlbnQgdGlt
ZSBpbiBtaWxsaXNlY29uZHMKKyAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVzLnNldEZpZWxk
SW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi50aW1lLCB0aW1lc3RhbXAgLSB0aGlzLl9zdGFy
dFRpbWVzdGFtcCk7CisgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5zZXRGaWVsZEluRGF0
dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgc2FtcGxlc1sxXVtpXSk7CiAKICAg
ICAgICAgICAgIGlmIChpID09IDApCi0gICAgICAgICAgICAgICAgc2FtcGxlLmZyYW1lTGVuZ3Ro
ID0gMTAwMC82MDsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5zZXRGaWVsZElu
RGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uZnJhbWVMZW5ndGgsIDEwMDAvNjApOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNhbXBsZS5mcmFtZUxlbmd0aCA9IHRpbWVzdGFt
cCAtIHNhbXBsZXNbMF1baSAtIDFdOworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVz
LnNldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgdGltZXN0
YW1wIC0gc2FtcGxlc1swXVtpIC0gMV0pOwogCiAgICAgICAgICAgICBpZiAoc2FtcGxlc1syXVtp
XSAhPSAtMSkKLSAgICAgICAgICAgICAgICBzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0aCA9IHNh
bXBsZXNbMl1baV07Ci0KLSAgICAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVzLnB1c2goc2FtcGxl
KTsKLSAgICAgICAgICAgIHJldHVybiBzYW1wbGU7CisgICAgICAgICAgICAgICAgY29udHJvbGxl
clNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLnNtb290aGVkRnJh
bWVMZW5ndGgsIHNhbXBsZXNbMl1baV0pOwogICAgICAgICB9LCB0aGlzKTsKIAorICAgICAgICB2
YXIgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzID0gbmV3IFNhbXBsZURhdGE7CisgICAgICAgIHJl
c3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5QXZlcmFn
ZV0gPSBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXM7CiAgICAgICAgIHRoaXMuX3Byb2Nlc3NDb21w
bGV4aXR5U2FtcGxlcyhjb21wbGV4aXR5U2FtcGxlcywgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVz
KTsKICAgICB9CiB9KTsKQEAgLTUyOSwyMSArNTQzLDIyIEBAIFJhbXBDb250cm9sbGVyID0gVXRp
bGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAgICAgICByZXN1bHRzW1N0
cmluZ3MuanNvbi5tYXJrc11bbWFya05hbWVdLnRpbWUgLT0gc3RhcnRUaW1lc3RhbXA7CiAgICAg
ICAgIH0KIAotICAgICAgICB2YXIgdGltZVNhbXBsZXMgPSByZXN1bHRzW1N0cmluZ3MuanNvbi5z
YW1wbGVzXVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl07Ci0gICAgICAgIHRpbWVTYW1wbGVzLmZv
ckVhY2goZnVuY3Rpb24odGltZVNhbXBsZSkgewotICAgICAgICAgICAgdGltZVNhbXBsZS50aW1l
IC09IHN0YXJ0VGltZXN0YW1wOworICAgICAgICB2YXIgY29udHJvbGxlclNhbXBsZXMgPSByZXN1
bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl07CisgICAg
ICAgIGNvbnRyb2xsZXJTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24odGltZVNhbXBsZSkgeworICAg
ICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKHRpbWVTYW1wbGUsIFN0
cmluZ3MuanNvbi50aW1lLCBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0odGltZVNh
bXBsZSwgU3RyaW5ncy5qc29uLnRpbWUpIC0gc3RhcnRUaW1lc3RhbXApOwogICAgICAgICB9KTsK
IAogICAgICAgICAvLyBBZ2dyZWdhdGUgYWxsIG9mIHRoZSByYW1wcyBpbnRvIG9uZSBiaWcgY29t
cGxleGl0eS1mcmFtZUxlbmd0aCBkYXRhc2V0Ci0gICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxl
cyA9IFtdLCBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMgPSBbXTsKKyAgICAgICAgdmFyIGNvbXBs
ZXhpdHlTYW1wbGVzID0gbmV3IFNhbXBsZURhdGEoY29udHJvbGxlclNhbXBsZXMuZmllbGRNYXAp
OwogICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29t
cGxleGl0eV0gPSBjb21wbGV4aXR5U2FtcGxlczsKLSAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpz
b24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlXSA9IGNvbXBsZXhpdHlB
dmVyYWdlU2FtcGxlczsKIAogICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5jb250cm9sbGVy
XSA9IFtdOwogICAgICAgICB0aGlzLl9yYW1wUmVncmVzc2lvbnMuZm9yRWFjaChmdW5jdGlvbihy
YW1wKSB7CiAgICAgICAgICAgICB2YXIgc3RhcnRJbmRleCA9IHJhbXAuc3RhcnRJbmRleCwgZW5k
SW5kZXggPSByYW1wLmVuZEluZGV4OwotICAgICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IHRpbWVT
YW1wbGVzW3N0YXJ0SW5kZXhdLnRpbWUsIGVuZFRpbWUgPSB0aW1lU2FtcGxlc1tlbmRJbmRleF0u
dGltZTsKLSAgICAgICAgICAgIHZhciBzdGFydENvbXBsZXhpdHkgPSB0aW1lU2FtcGxlc1tzdGFy
dEluZGV4XS5jb21wbGV4aXR5LCBlbmRDb21wbGV4aXR5ID0gdGltZVNhbXBsZXNbZW5kSW5kZXhd
LmNvbXBsZXhpdHk7CisgICAgICAgICAgICB2YXIgc3RhcnRUaW1lID0gY29udHJvbGxlclNhbXBs
ZXMuZ2V0RmllbGRJbkRhdHVtKHN0YXJ0SW5kZXgsIFN0cmluZ3MuanNvbi50aW1lKTsKKyAgICAg
ICAgICAgIHZhciBlbmRUaW1lID0gY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKGVu
ZEluZGV4LCBTdHJpbmdzLmpzb24udGltZSk7CisgICAgICAgICAgICB2YXIgc3RhcnRDb21wbGV4
aXR5ID0gY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHN0YXJ0SW5kZXgsIFN0cmlu
Z3MuanNvbi5jb21wbGV4aXR5KTsKKyAgICAgICAgICAgIHZhciBlbmRDb21wbGV4aXR5ID0gY29u
dHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKGVuZEluZGV4LCBTdHJpbmdzLmpzb24uY29t
cGxleGl0eSk7CiAKICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uID0ge307CiAgICAgICAgICAg
ICByZXN1bHRzW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5wdXNoKHJlZ3Jlc3Npb24pOwpAQCAt
NTY0LDggKzU3OSwxMSBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFz
cyhDb250cm9sbGVyLAogICAgICAgICAgICAgcmVncmVzc2lvbltTdHJpbmdzLmpzb24ucmVncmVz
c2lvbnMuZW5kSW5kZXhdID0gZW5kSW5kZXg7CiAKICAgICAgICAgICAgIGZvciAodmFyIGogPSBz
dGFydEluZGV4OyBqIDw9IGVuZEluZGV4OyArK2opCi0gICAgICAgICAgICAgICAgY29tcGxleGl0
eVNhbXBsZXMucHVzaCh0aW1lU2FtcGxlc1tqXSk7CisgICAgICAgICAgICAgICAgY29tcGxleGl0
eVNhbXBsZXMucHVzaChjb250cm9sbGVyU2FtcGxlcy5hdChqKSk7CiAgICAgICAgIH0pOworCisg
ICAgICAgIHZhciBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMgPSBuZXcgU2FtcGxlRGF0YTsKKyAg
ICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhp
dHlBdmVyYWdlXSA9IGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlczsKICAgICAgICAgdGhpcy5fcHJv
Y2Vzc0NvbXBsZXhpdHlTYW1wbGVzKGNvbXBsZXhpdHlTYW1wbGVzLCBjb21wbGV4aXR5QXZlcmFn
ZVNhbXBsZXMpOwogICAgIH0KIH0pOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBlYzc1OTg5Li4xZmE1Yzdk
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDUxIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgVXBkYXRlIHRoZSBmb3JtYXQgdXNlZCB0byBzZXJp
YWxpemUgdGhlIHJlc3VsdHMgZm9yIGFuYWx5c2lzLgorCisgICAgICAgIEVhY2ggZGF0YSBwb2lu
dCB1c2VkIHRvIGhhdmUgbmFtZWQgcHJvcGVydGllcyBmb3IgZmllbGRzIGxpa2UgY29tcGxleGl0
eSBhbmQgZnJhbWUgcmF0ZS4KKyAgICAgICAgSW4gYWRkaXRpb24gdGhlIHNlcmlhbGl6ZWQgbnVt
YmVycyBoYWQgcm91bmRpbmcgZXJyb3JzIHRoYXQgdG9vayB1cCBtYW55IGNoYXJhY3RlcnMuCisg
ICAgICAgIFVwZGF0ZSB0aGUgZm9ybWF0IGJ5IGludHJvZHVjaW5nIGEgbmV3IGRhdGEgY29udGFp
bmVyIGNhbGxlZCBTYW1wbGVEYXRhLCB3aGljaCBjb250YWlucyBhCisgICAgICAgIGZpZWxkIG1h
cC4gVGhlIG1hcCBtYXBzIGEgc3RyaW5nIHRvIGFuIGFycmF5IGluZGV4LiBFYWNoIGRhdGEgcG9p
bnQgaXMgYW4gYXJyYXksIHNvLCB0bworICAgICAgICBnZXQgYSBzdGF0LCB1c2UgdGhlIGZpZWxk
IG1hcCB0byBnZXQgdGhlIGFycmF5IGluZGV4IGludG8gdGhlIGRhdGEgcG9pbnQuIFRoaXMgYWxs
b3dzIGZ1dHVyZQorICAgICAgICB2ZXJzaW9ucyB0byB0cmFjayBvdGhlciBkYXRhLCBhbmQgcmVk
dWNlcyB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0IHN0cmluZyBieSB0d28tdGhpcmRzLgorCisgICAg
ICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczoKKyAgICAgICAgKFV0aWxp
dGllcy50b0ZpeGVkTnVtYmVyKTogQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgdHJ1bmNh
dGVzIHRoZSBudW1iZXIgdG8gYSBmaXhlZAorICAgICAgICBwcmVjaXNpb24sIGFuZCBjb252ZXJ0
cyBpdCBiYWNrIHRvIGEgbnVtYmVyLgorICAgICAgICAoU2FtcGxlRGF0YSk6IE5ldyBjbGFzcyB0
aGF0IGNvbnRhaW5zIHNhbXBsZSBkYXRhIGFuZCBhIGZpZWxkIG1hcCB0aGF0IG1hcHMgcHJvcGVy
dGllcyB0bworICAgICAgICBhbiBhcnJheSBpbmRleC4KKyAgICAgICAgKGdldCBsZW5ndGgpOiBO
dW1iZXIgb2YgZGF0YSBwb2ludHMuCisgICAgICAgIChhZGRGaWVsZCk6IEFkZCBhIGZpZWxkIHRv
IHRoZSBmaWVsZCBtYXAuCisgICAgICAgIChwdXNoKTogQWRkIGEgZGF0YSBwb2ludC4KKyAgICAg
ICAgKHNvcnQpOiBTb3J0IHRoZSBkYXRhLgorICAgICAgICAoc2xpY2UpOiBSZXR1cm4gbmV3IFNh
bXBsZURhdGEgb2JqZWN0IHdpdGggc2xpY2VkIGRhdGEuCisgICAgICAgIChmb3JFYWNoKTogSXRl
cmF0ZSBvdmVyIHRoZSBkYXRhIHdpdGggcHJvdmlkZWQgZnVuY3Rpb24uCisgICAgICAgIChjcmVh
dGVEYXR1bSk6CisgICAgICAgIChnZXRGaWVsZEluRGF0dW0pOiBSZXR1cm5zIHRoZSBkYXRhIHBv
aW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbmFtZSBieSBsb29raW5nIGl0IHVwCisgICAg
ICAgIGluIHRoZSBmaWVsZCBtYXAgaW4gdGhlIGRhdHVtIHByb3ZpZGVkLCB3aGljaCBjYW4gYmUg
dGhlIGRhdHVtIG9iamVjdCBpdHNlbGYgKGFuIGFycmF5KSBvcgorICAgICAgICBhbiBpbmRleCBp
bnRvIHRoZSBkYXRhIG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgKHNldEZpZWxkSW5EYXR1bSk6
IFNldHMgdGhlIGRhdGEgcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBuYW1lLgorICAg
ICAgICAoYXQpOiBSZXR1cm5zIHRoZSBkYXRhIHBvaW50IGF0IHRoZSBwcm92aWRlZCBpbmRleC4K
KyAgICAgICAgKHRvQXJyYXkpOiBTZXJpYWxpemVzIHRoZSBkYXRhIHdoZXJlIHRoZSBmaWVsZCBt
YXAgc2VydmVzIGFzIHByb3BlcnR5IG5hbWVzIGZvciBlYWNoIHBvaW50LgorCisgICAgICAgICog
QW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzOgorICAgICAgICAodXBk
YXRlR3JhcGhEYXRhKTogUmVtb3ZlIHVudXNlZCBfdGVzdERhdGEuIENvbnZlcnQgdGhlIGRhdGEg
dG8gdGhlIG9sZCBhcnJheSBmb3JtYXQgZm9yIHRoZQorICAgICAgICBncmFwaCB0byB1c2UsIHNp
bmNlIHRoZSBvbGQgZm9ybWF0IHdhcyBtdWNoIGVhc2llciB0byB3b3JrIHdpdGggd2hlbiBkaXNw
bGF5aW5nIHRoZSBncmFwaHMuCisgICAgICAgIChvbkdyYXBoVHlwZUNoYW5nZWQpOiBGb3Igc29t
ZSBjb250cm9sbGVycywgbm8gYWx0ZXJuYXRpdmUgc2NvcmUgb3IgbWVhbiBpcyBwcm92aWRlZC4K
KyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6Cisg
ICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6IFJlZmFj
dG9yIHRvIHVzZSBTYW1wbGVEYXRhLiBVcGRhdGUgSlNPTiBvdXRwdXQKKyAgICAgICAgdG8gb25s
eSBnbyB0byAzIGRpZ2l0cyBvZiBwcmVjaXNpb24gZm9yIHB1cnBvc2VzIG9mIHJlZHVjaW5nIHRo
ZSBkYXRhIHNpemUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczog
QWRkIG5ldyBzdHJpbmdzIHRvIHB1dCBpbnRvIHRoZSBmaWVsZCBtYXBzLgorICAgICAgICAqIEFu
aW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6IFJlZmFjdG9yIHRvIHVzZSBTYW1wbGVE
YXRhLgorCisyMDE2LTA2LTE2ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXByb3ZlbWVudHMgdG8gQW5pbW9tZXRlciBiZW5jaG1hcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzczOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgICogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRt
bDoKICAgICAgICAgKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6IFJlc3RydWN0dXJlIHJlc3VsdHMg
dGFibGUgZm9yIGJvdGggcGFnZXMuIEFkZCBjaGFyc2V0IGF0dHJpYnV0ZSB0bwogICAgICAgICB0
ZXN0cy5qcyBpbmNsdWRlLgotLSAKMi44LjEgKEFwcGxlIEdpdC02OSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281489</attachid>
            <date>2016-06-16 15:44:37 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>5. Refine ramp lower bound evaluation, lengthen test</desc>
            <filename>0005-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>9745</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBmMTU5YjRhY2MyNTE5ZGI3M2Q4OTRhYmUzM2Y2ODA1MmJlZDczOTIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE0OjA2OjA5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA1LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpVcGRhdGUg
cmFtcCBjb250cm9sbGVyIHRlc3QuIEluY3JlYXNlIHRoZSBsZW5ndGggb2YgdGhlIHRlc3QgdG8g
MzAgc2Vjb25kcywgYW5kIGV4dGVuZAp0aGUgaW50ZXJ2YWwgdG8gMTUwIG1zIGR1cmluZyBzYW1w
bGluZy4gSW1wcm92ZSB0aGUgZXN0aW1hdGlvbiBvZiB0aGUgcmFtcCBwYXJhbWV0ZXJzLgoKKiBB
bmltb21ldGVyL2RldmVsb3Blci5odG1sOiBDaGFuZ2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLCBh
bmQgZG9uJ3Qgc2hvdyB0aGUgcHJvZ3Jlc3MgYmFyCmJ5IGRlZmF1bHQuCiogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6IENoYW5nZSBkZWZhdWx0IHRvIDMwIHNlY29u
ZHMuCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogQSBudW1iZXIgb2YgaW1w
cm92ZW1lbnRzIHRvIHRoZSByYW1wIGNvbnRyb2xsZXIsIGluCnRoZSBvcmRlciBpbiB3aGljaCB0
aGV5IGFwcGVhciBpbiB0aGUgcGF0Y2g6CgotIFdpdGggYSBsb25nZXIgdGVzdCBsZW5ndGggdXNl
IGxvbmdlciByYW1wcyB3aXRoIGxvbmdlciBpbnRlcnZhbHMgdG8gZ2V0IG1vcmUgZGF0YSBhdCBl
YWNoCmNvbXBsZXhpdHkuIEtlZXAgdGhlIDEwMCBtcyBpbnRlcnZhbCBsZW5ndGggZHVyaW5nIHRo
ZSByYW1wIHVwIHBoYXNlIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8Kc3BlbmQgbW9yZSB0aW1lIHRo
ZXJlIHRvIGZpbmQgdGhlIHJpZ2h0IG9yZGVyIG9mIG1hZ25pdHVkZSwgYnV0IGluY3JlYXNlIGl0
IGR1cmluZyB0aGUKcmFtcHMgdG8gMTIwIG1zLgotIFRoZSByYW1wIGxpbmVhcmx5IGludGVycG9s
YXRlcyB0aGUgY29tcGxleGl0eSB0byByZW5kZXIgYmFzZWQgb24gaXRzIHRpbWVzdGFtcCwgYnV0
IGl0IHdvdWxkCm5ldmVyIHNhbXBsZSB0aGUgbWluaW11bSBjb21wbGV4aXR5LiBJbnN0ZWFkIG9m
IGxlcnBpbmcgbWF4IHRvIG1pbiBjb21wbGV4aXR5IGZyb20gdGltZQowIHRvIHQgd2hlcmUgdCBp
cyB0aGUgcmFtcCBsZW5ndGgsIGluc3RlYWQgbGVycCBmcm9tIDAgdG8gKHQgLSBpbnRlcnZhbFNh
bXBsZUxlbmd0aCkgc28gdGhhdAp3ZSBjYW4gaGF2ZSBhdCBsZWFzdCBvbmUgaW50ZXJ2YWwgc2Ft
cGxlIGF0IHRoZSBtaW4gY29tcGxleGl0eSBmb3IgdGhhdCByYW1wLgotIFNvbWUgcmVncmVzc2lv
biBjYWxjdWxhdGlvbnMgb25seSBjb21lIG91dCB3aXRoIG9uZSBsaW5lIHNlZ21lbnQgcmF0aGVy
IHRoYW4gdGhlIHR3bwp3ZSBleHBlY3QuIFRoaXMgY291bGQgYmUgZHVlIHRvIGEgbm9pc3kgcmFt
cCBvciB0aGUgcmFtcCdzIHJhbmdlIGlzIHRvbyBuYXJyb3cuIElmIHRoYXQncyB0aGUKY2FzZSwg
aW5mbHVlbmNlIHRoZSBtaW5pbXVtIGNvbXBsZXhpdHkgb2YgdGhlIG5leHQgcmFtcCB0b3dhcmRz
IHRoZSBsb3dlc3QgYm91bmQgb2YgMSwgc28gdGhhdAp3ZSBlbnN1cmUgdGhhdCBhdCBsZWFzdCBw
YXJ0IG9mIHRoZSByYW1wIGlzIGNvdmVyaW5nIGEgY29tcGxleGl0eSByYW5nZSB0aGF0IHRoZSBz
eXN0ZW0gY2FuCmhhbmRsZSBhdCBmdWxsIDYwLgotIFJlbW92ZSBhbiBhc3NpZ25tZW50IHRvIGlu
dGVycG9sYXRlZEZyYW1lTGVuZ3RoIHNpbmNlIHRoYXQgaXMgbmV2ZXIgc3Vic2VxdWVudGx5IHVz
ZWQuCi0tLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sICAgICAg
ICAgfCAgNCArLS0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5q
cyAgICAgIHwgIDIgKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzICAg
ICAgICAgICAgIHwgMTIgKysrKysrLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMg
Y2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKaW5kZXggZWJiNTRhYi4uOWY1ZjkxOSAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbApAQCAtMzgsMTMgKzM4
LDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJiZW5jaG1hcmstb3B0
aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlRlc3QgbGVuZ3Ro
OiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idGVzdC1pbnRlcnZhbCIgdmFsdWU9IjIwIj4gc2Vj
b25kcyBlYWNoPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGVz
dCBsZW5ndGg6IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ0ZXN0LWludGVydmFsIiB2YWx1ZT0i
MzAiPiBzZWNvbmRzIGVhY2g8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4K
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8aDM+RGlzcGxheTo8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iZGlz
cGxheSIgdHlwZT0icmFkaW8iIHZhbHVlPSJtaW5pbWFsIiBjaGVja2VkPiBNaW5pbWFsPC9sYWJl
bD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1
dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFsdWU9InByb2dyZXNzLWJhciIgY2hlY2tl
ZD4gUHJvZ3Jlc3MgYmFyPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFsdWU9
InByb2dyZXNzLWJhciI+IFByb2dyZXNzIGJhcjwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCmluZGV4IDczOTc2ODgu
LmVlZmNkNGEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHdpbmRv
dy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAgIHN0YXJ0QmVuY2htYXJrOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB2YXIgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgICJ0ZXN0LWludGVy
dmFsIjogMjAsCisgICAgICAgICAgICAidGVzdC1pbnRlcnZhbCI6IDMwLAogICAgICAgICAgICAg
ImRpc3BsYXkiOiAibWluaW1hbCIsCiAgICAgICAgICAgICAiY29udHJvbGxlciI6ICJyYW1wIiwK
ICAgICAgICAgICAgICJrYWxtYW4tcHJvY2Vzcy1lcnJvciI6IDEsCmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKaW5kZXggZjg1MTc2
My4uMmFmMjY4MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L3Jlc291cmNlcy9tYWluLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0
cy9yZXNvdXJjZXMvbWFpbi5qcwpAQCAtMzQ1LDcgKzM0NSw3IEBAIFJhbXBDb250cm9sbGVyID0g
VXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAgIHRoaXMuX21heGlt
dW1Db21wbGV4aXR5ID0gMTsKIAogICAgICAgICAvLyBBZnRlciB0aGUgdGllciByYW5nZSBpcyBk
ZXRlcm1pbmVkLCBmaWd1cmUgb3V0IHRoZSBudW1iZXIgb2YgcmFtcCBpdGVyYXRpb25zCi0gICAg
ICAgIHZhciBtaW5pbXVtUmFtcExlbmd0aCA9IDI1MDA7CisgICAgICAgIHZhciBtaW5pbXVtUmFt
cExlbmd0aCA9IDMwMDA7CiAgICAgICAgIHZhciB0b3RhbFJhbXBJdGVyYXRpb25zID0gTWF0aC5t
YXgoMSwgTWF0aC5mbG9vcih0aGlzLl9lbmRUaW1lc3RhbXAgLyBtaW5pbXVtUmFtcExlbmd0aCkp
OwogICAgICAgICAvLyBHaXZlIGEgbGl0dGxlIGV4dHJhIHJvb20gdG8gcnVuIHNpbmNlIHRoZSBy
YW1wcyB3b24ndCBiZSBleGFjdGx5IHRoaXMgbGVuZ3RoCiAgICAgICAgIHRoaXMuX3JhbXBMZW5n
dGggPSBNYXRoLmZsb29yKCh0aGlzLl9lbmRUaW1lc3RhbXAgLSB0b3RhbFJhbXBJdGVyYXRpb25z
ICogdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoKSAvIHRvdGFsUmFtcEl0ZXJhdGlvbnMpOwpA
QCAtMzgwLDYgKzM4MCw3IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNs
YXNzKENvbnRyb2xsZXIsCiAgICAgewogICAgICAgICBDb250cm9sbGVyLnByb3RvdHlwZS5zdGFy
dC5jYWxsKHRoaXMsIHN0YXJ0VGltZXN0YW1wLCBzdGFnZSk7CiAgICAgICAgIHRoaXMuX3JhbXBT
dGFydFRpbWVzdGFtcCA9IDA7CisgICAgICAgIHRoaXMuaW50ZXJ2YWxTYW1wbGluZ0xlbmd0aCA9
IDEwMDsKICAgICB9LAogCiAgICAgZGlkRmluaXNoSW50ZXJ2YWw6IGZ1bmN0aW9uKHRpbWVzdGFt
cCwgc3RhZ2UsIGludGVydmFsQXZlcmFnZUZyYW1lTGVuZ3RoKQpAQCAtNDE4LDYgKzQxOSw3IEBA
IFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAK
ICAgICAgICAgICAgIHRoaXMuX2ZpbmlzaGVkVGllclNhbXBsaW5nID0gdHJ1ZTsKICAgICAgICAg
ICAgIHRoaXMuaXNGcmFtZUxlbmd0aEVzdGltYXRvckVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHRoaXMuaW50ZXJ2YWxTYW1wbGluZ0xlbmd0aCA9IDEyMDsKIAogICAgICAgICAgICAgLy8g
RXh0ZW5kIHRoZSB0ZXN0IGxlbmd0aCBzbyB0aGF0IHRoZSBmdWxsIHRlc3QgbGVuZ3RoIGlzIG1h
ZGUgb2YgdGhlIHJhbXBzCiAgICAgICAgICAgICB0aGlzLl9lbmRUaW1lc3RhbXAgKz0gdGltZXN0
YW1wOwpAQCAtNDkyLDcgKzQ5NCw5IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0
ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAgIHZhciBwcm9ncmVzcyA9ICh0aW1lc3RhbXAg
LSB0aGlzLl9yYW1wU3RhcnRUaW1lc3RhbXApIC8gdGhpcy5fY3VycmVudFJhbXBMZW5ndGg7CiAK
ICAgICAgICAgaWYgKHByb2dyZXNzIDwgMSkgewotICAgICAgICAgICAgc3RhZ2UudHVuZShNYXRo
LmZsb29yKFV0aWxpdGllcy5sZXJwKHByb2dyZXNzLCB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSwg
dGhpcy5fbWluaW11bUNvbXBsZXhpdHkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKKyAgICAgICAg
ICAgIC8vIFJlZnJhbWUgcHJvZ3Jlc3MgcGVyY2VudGFnZSBzbyB0aGF0IHRoZSBsYXN0IGludGVy
dmFsIG9mIHRoZSByYW1wIGNhbiBzYW1wbGUgYXQgbWluaW11bSBjb21wbGV4aXR5CisgICAgICAg
ICAgICBwcm9ncmVzcyA9ICh0aW1lc3RhbXAgLSB0aGlzLl9yYW1wU3RhcnRUaW1lc3RhbXApIC8g
KHRoaXMuX2N1cnJlbnRSYW1wTGVuZ3RoIC0gdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoKTsK
KyAgICAgICAgICAgIHN0YWdlLnR1bmUoTWF0aC5tYXgodGhpcy5fbWluaW11bUNvbXBsZXhpdHks
IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAocHJvZ3Jlc3MsIHRoaXMuX21heGltdW1Db21wbGV4
aXR5LCB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC01MDMsOCArNTA3LDEwIEBAIFJhbXBD
b250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAg
IHZhciBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0aGlzLl9t
YXhpbXVtQ29tcGxleGl0eSk7CiAgICAgICAgIGlmIChpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCA8
IHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQpCiAgICAgICAgICAgICB0aGlzLl9w
b3NzaWJsZU1heGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChVdGls
aXRpZXMucHJvZ3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkLCBp
bnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCwgdGhpcy5fbGFzdFRpZXJGcmFtZUxlbmd0aCksIHRoaXMu
X21heGltdW1Db21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkpKTsKKyAgICAgICAg
Ly8gSWYgdGhlIHJlZ3Jlc3Npb24gZG9lc24ndCBmaXQgdGhlIGZpcnN0IHNlZ21lbnQgYXQgYWxs
LCBrZWVwIHRoZSBtaW5pbXVtIGJvdW5kIGF0IDEKKyAgICAgICAgaWYgKCh0aW1lc3RhbXAgLSB0
aGlzLl9zYW1wbGVyLnNhbXBsZXNbMF1bdGhpcy5fc2FtcGxlci5zYW1wbGVDb3VudCAtIHJlZ3Jl
c3Npb24ubjFdKSAvIHRoaXMuX2N1cnJlbnRSYW1wTGVuZ3RoIDwgLjI1KQorICAgICAgICAgICAg
dGhpcy5fcG9zc2libGVNaW5pbXVtQ29tcGxleGl0eSA9IDE7CiAKLSAgICAgICAgaW50ZXJwb2xh
dGVkRnJhbWVMZW5ndGggPSByZWdyZXNzaW9uLnZhbHVlQXQodGhpcy5fbWluaW11bUNvbXBsZXhp
dHkpOwogICAgICAgICB0aGlzLl9taW5pbXVtQ29tcGxleGl0eUVzdGltYXRvci5zYW1wbGUodGhp
cy5fcG9zc2libGVNaW5pbXVtQ29tcGxleGl0eSk7CiAKICAgICAgICAgdGhpcy5fY2hhbmdlUG9p
bnRFc3RpbWF0b3Iuc2FtcGxlKHJlZ3Jlc3Npb24uY29tcGxleGl0eSk7CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDFmYTVjN2QuLjgxYjJlM2MgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMzcgQEAKIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBVcGRhdGUgcmFt
cCBjb250cm9sbGVyIHRlc3QuIEluY3JlYXNlIHRoZSBsZW5ndGggb2YgdGhlIHRlc3QgdG8gMzAg
c2Vjb25kcywgYW5kIGV4dGVuZAorICAgICAgICB0aGUgaW50ZXJ2YWwgdG8gMTUwIG1zIGR1cmlu
ZyBzYW1wbGluZy4gSW1wcm92ZSB0aGUgZXN0aW1hdGlvbiBvZiB0aGUgcmFtcCBwYXJhbWV0ZXJz
LgorCisgICAgICAgICogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogQ2hhbmdlIGRlZmF1bHQg
dG8gMzAgc2Vjb25kcywgYW5kIGRvbid0IHNob3cgdGhlIHByb2dyZXNzIGJhcgorICAgICAgICBi
eSBkZWZhdWx0LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzOiBDaGFuZ2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLgorICAgICAgICAqIEFuaW1vbWV0
ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6IEEgbnVtYmVyIG9mIGltcHJvdmVtZW50cyB0byB0
aGUgcmFtcCBjb250cm9sbGVyLCBpbgorICAgICAgICB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBh
cHBlYXIgaW4gdGhlIHBhdGNoOgorCisgICAgICAgIC0gV2l0aCBhIGxvbmdlciB0ZXN0IGxlbmd0
aCB1c2UgbG9uZ2VyIHJhbXBzIHdpdGggbG9uZ2VyIGludGVydmFscyB0byBnZXQgbW9yZSBkYXRh
IGF0IGVhY2gKKyAgICAgICAgY29tcGxleGl0eS4gS2VlcCB0aGUgMTAwIG1zIGludGVydmFsIGxl
bmd0aCBkdXJpbmcgdGhlIHJhbXAgdXAgcGhhc2Ugc2luY2Ugd2UgZG9uJ3QgbmVlZCB0bworICAg
ICAgICBzcGVuZCBtb3JlIHRpbWUgdGhlcmUgdG8gZmluZCB0aGUgcmlnaHQgb3JkZXIgb2YgbWFn
bml0dWRlLCBidXQgaW5jcmVhc2UgaXQgZHVyaW5nIHRoZQorICAgICAgICByYW1wcyB0byAxMjAg
bXMuCisgICAgICAgIC0gVGhlIHJhbXAgbGluZWFybHkgaW50ZXJwb2xhdGVzIHRoZSBjb21wbGV4
aXR5IHRvIHJlbmRlciBiYXNlZCBvbiBpdHMgdGltZXN0YW1wLCBidXQgaXQgd291bGQKKyAgICAg
ICAgbmV2ZXIgc2FtcGxlIHRoZSBtaW5pbXVtIGNvbXBsZXhpdHkuIEluc3RlYWQgb2YgbGVycGlu
ZyBtYXggdG8gbWluIGNvbXBsZXhpdHkgZnJvbSB0aW1lCisgICAgICAgIDAgdG8gdCB3aGVyZSB0
IGlzIHRoZSByYW1wIGxlbmd0aCwgaW5zdGVhZCBsZXJwIGZyb20gMCB0byAodCAtIGludGVydmFs
U2FtcGxlTGVuZ3RoKSBzbyB0aGF0CisgICAgICAgIHdlIGNhbiBoYXZlIGF0IGxlYXN0IG9uZSBp
bnRlcnZhbCBzYW1wbGUgYXQgdGhlIG1pbiBjb21wbGV4aXR5IGZvciB0aGF0IHJhbXAuCisgICAg
ICAgIC0gU29tZSByZWdyZXNzaW9uIGNhbGN1bGF0aW9ucyBvbmx5IGNvbWUgb3V0IHdpdGggb25l
IGxpbmUgc2VnbWVudCByYXRoZXIgdGhhbiB0aGUgdHdvCisgICAgICAgIHdlIGV4cGVjdC4gVGhp
cyBjb3VsZCBiZSBkdWUgdG8gYSBub2lzeSByYW1wIG9yIHRoZSByYW1wJ3MgcmFuZ2UgaXMgdG9v
IG5hcnJvdy4gSWYgdGhhdCdzIHRoZQorICAgICAgICBjYXNlLCBpbmZsdWVuY2UgdGhlIG1pbmlt
dW0gY29tcGxleGl0eSBvZiB0aGUgbmV4dCByYW1wIHRvd2FyZHMgdGhlIGxvd2VzdCBib3VuZCBv
ZiAxLCBzbyB0aGF0CisgICAgICAgIHdlIGVuc3VyZSB0aGF0IGF0IGxlYXN0IHBhcnQgb2YgdGhl
IHJhbXAgaXMgY292ZXJpbmcgYSBjb21wbGV4aXR5IHJhbmdlIHRoYXQgdGhlIHN5c3RlbSBjYW4K
KyAgICAgICAgaGFuZGxlIGF0IGZ1bGwgNjAuCisgICAgICAgIC0gUmVtb3ZlIGFuIGFzc2lnbm1l
bnQgdG8gaW50ZXJwb2xhdGVkRnJhbWVMZW5ndGggc2luY2UgdGhhdCBpcyBuZXZlciBzdWJzZXF1
ZW50bHkgdXNlZC4KKworMjAxNi0wNi0xNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wcm92ZW1lbnRzIHRvIEFuaW1vbWV0ZXIgYmVuY2htYXJrCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc3MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBVcGRhdGUgdGhlIGZvcm1hdCB1
c2VkIHRvIHNlcmlhbGl6ZSB0aGUgcmVzdWx0cyBmb3IgYW5hbHlzaXMuCiAKICAgICAgICAgRWFj
aCBkYXRhIHBvaW50IHVzZWQgdG8gaGF2ZSBuYW1lZCBwcm9wZXJ0aWVzIGZvciBmaWVsZHMgbGlr
ZSBjb21wbGV4aXR5IGFuZCBmcmFtZSByYXRlLgotLSAKMi44LjEgKEFwcGxlIEdpdC02OSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281490</attachid>
            <date>2016-06-16 15:45:19 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>6. Refine ramp upper bound evaluation, let ramp profiles dictate final calculation</desc>
            <filename>0006-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>23532</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBjNTRiN2U2ZGMwYjI3MGU4OTI0MzU1Yzk3YTA5MDNmOWExYzhmNjk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE0OjI1OjMwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA2LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBbGxvdyBz
cGVjaWZ5aW5nIGEgcmVncmVzc2lvbiBwcm9maWxlIHRvIHVzZSBpbnN0ZWFkIG9mIHRha2luZyB0
aGUgb25lCndpdGggdGhlIGxvd2VzdCBlcnJvci4KCkFkZHJlc3MgYW4gaXNzdWUgaW4gdGhlIGZv
Y3VzIHRlc3Qgd2hlbiB0aGUgcmVncmVzc2lvbiBjYWxjdWxhdGVkIGVuZHMKdXAgb3ZlcmVzdGlt
YXRpbmcgdGhlIGNoYW5nZSBwb2ludCwgY2F1c2luZyBhIGNhc2NhZGUgb2YgdG91Z2hlcgpyYW1w
cy4gVGhlIHJlYXNvbiBiZWhpbmQgdGhpcyBpcyB0aGF0IGF0IG1heCBjb21wbGV4aXR5IG9mIGFu
IGluaXRpYWwKcmFtcCwgdGhlIGZyYW1lIGxlbmd0aCBpcyB2ZXJ5IGhpZ2gsIGFuZCBpdCBpbmZs
dWVuY2VzIHRoZSBzZWNvbmQKc2VnbWVudCBvZiB0aGUgcGllY2V3aXNlIHJlZ3Jlc3Npb24gc3Ry
b25nbHksIGNhdXNpbmcgaXQgdG8gYmUgdmVyeQpzdGVlcC4gQXMgYSByZXN1bHQsIHRoZSBmaXJz
dCBzZWdtZW50LCBleHBlY3RlZCB0byBiZSBmbGF0LCBlbmRzIHVwCmNvdmVyaW5nIGEgaGlnaGVy
IHJhbmdlIG9mIGNvbXBsZXhpdHkuIFRoYXQgbWFrZXMgdGhlIGNoYW5nZSBwb2ludAptdWNoIGhp
Z2hlciB0aGFuIGl0IHNob3VsZCBiZS4gVG8gYXZvaWQgdGhpcywgd2Ugd2lsbCBhZGQgYSBzYW5p
dHkKY2hlY2sgb24gdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJhbXAuIElmIHRoZSByZWdyZXNz
aW9uJ3MgcHJvamVjdGVkCnZhbHVlIGF0IHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2YgdGhlIGN1
cnJlbnQgcmFtcCBpcyB2ZXJ5IHNsb3cgKGxlc3MKdGhhbiAyMCBmcHMpLCAxKSByZWR1Y2UgdGhl
IG1heGltdW0gY29tcGxleGl0eSBieSAyMCUsIGFuZCAyKSBkbyBub3QKaW5jbHVkZSB0aGUgcmVn
cmVzc2lvbidzIGNoYW5nZSBwb2ludCBpbiB0aGUgY2hhbmdlIHBvaW50IGVzdGltYXRvci4KVGhh
dCBlc3RpbWF0b3IgaXMgdXNlZCBhcyB0aGUgbWlkcG9pbnQgb2YgdGhlIG5leHQgcmFtcCwgYW5k
IGluY2x1ZGluZwp0aGUgY2hhbmdlIHBvaW50IGZyb20gYSBwb29yIHJlZ3Jlc3Npb24gY2FuIGJh
a2UgaW4gdGhlIGVycm9yLiBUaGUKY29udHJvbGxlciBhbHJlYWR5IGtub3dzIGhvdyB0byBhZGp1
c3QgZm9yIHJhbXBzIHRoYXQgYXJlIHRvbyBlYXN5IGZvcgp0aGUgc3lzdGVtLgoKKiBBbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKHRoaXMuX3Byb2Nlc3NEYXRhLmZp
bmRSZWdyZXNzaW9uKTogVGFrZXMgYSBwcmVmZXJyZWQgcHJvZmlsZSBhbmQgZ2l2ZXMgdGhhdCB0
bwpSZWdyZXNzaW9uLgoodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2NvcmUpOiBXaXRoIHRo
ZSByYW1wIGNvbnRyb2xsZXIsIHRha2UgdGhlIHByb2ZpbGUKb2YgdGhlIHJhbXAgdGhhdCB3YXMg
dXNlZCB0aGUgbW9zdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSByYW1wJ3MgcmVncmVzc2lvbi4gVGhh
dApwcm9maWxlIGlzIHdoYXQgaXMgdXNlZCBmb3IgdGhlIHRlc3QncyBzY29yZS4KKiBBbmltb21l
dGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzOgooUmVncmVzc2lvbi5VdGlsaXRpZXMuY3JlYXRl
Q2xhc3MpOiBVcGRhdGUgdG8gdGFrZSBhbiBvcHRpb25zIG9iamVjdCB3aGljaCBjYW4Kc3BlY2lm
eSBhIHByb2ZpbGUgdG8gY2FsY3VsYXRlIHdpdGguIE90aGVyd2lzZSBpdCB3aWxsIGNvbnRpbnVl
IHRvIHVzZSBib3RoIGFuZApzZWxlY3QgdGhlIG9uZSB3aXRoIHRoZSBsb3dlciBlcnJvci4KKF9j
YWxjdWxhdGVSZWdyZXNzaW9uKTogRml4IGFuIGlzc3VlIHdoZXJlIHdlIGNsYWltIDAgZXJyb3Ig
aWYgdGhlIHJlZ3Jlc3Npb24KY2FsY3VsYXRpb24gZmFpbHMgZHVlIHRvIGRpdmlkZS1ieS16ZXJv
LiBJbnN0ZWFkIHJlamVjdCB0aGF0IHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24KYnkgZ2l2aW5nIGl0
IE51bWJlci5NQVhfVkFMVUUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczogTmV3
IHN0cmluZ3MgZm9yIG1hcmtpbmcgYSByZWdyZXNzaW9uIGFzIGZsYXQKb3Igc2xvcGUuCiogQW5p
bW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKFJhbXBDb250cm9sbGVyKTogUmVuYW1l
IHRoZSB0aHJlc2hvbGRzIGZvciBjbGFyaXR5LiBBZGQgYSB0aHJlc2hvbGQgdGhhdCwgaWYKZXhj
ZWVkZWQsIHdpbGwgbG93ZXIgdGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUgbmV4dCByYW1w
LgoodHVuZSk6IFJlbGF4IHRoZSBjZGYgY2hlY2sgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgaW50
ZXJ2YWwgZGVmaW5pdGVseSBmYWxscyBpbgp0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGggdGhyZXNo
b2xkLgoocHJvY2Vzc1NhbXBsZXMpOiBJbmNsdWRlIHRoZSBwcm9maWxlIGluIHRoZSByYW1wLgot
LS0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyAgICAgIHwg
MzQgKysrKysrKystLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMgICAg
ICAgICAgICAgfCA3NCArKysrKysrKysrKystLS0tLS0tLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMgICB8ICA4ICsrLQogLi4uL0FuaW1vbWV0ZXIv
dGVzdHMvcmVzb3VyY2VzL21haW4uanMgICAgICAgICAgICAgfCA0NCArKysrKysrLS0tLS0tCiBQ
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ5ICsr
KysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA1NyBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL3J1bm5lci9hbmltb21ldGVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcwppbmRleCBlZWZjZDRhLi5jMTYyOGRhIDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmlt
b21ldGVyLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuanMKQEAgLTY0LDcgKzY0LDcgQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0
aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgaWYgKHRoaXMuX29wdGlvbnNbImNvbnRyb2xs
ZXIiXSA9PSAicmFtcDMwIikKICAgICAgICAgICAgIGRlc2lyZWRGcmFtZUxlbmd0aCA9IDEwMDAv
MzA7CiAKLSAgICAgICAgZnVuY3Rpb24gZmluZFJlZ3Jlc3Npb24oc2VyaWVzKSB7CisgICAgICAg
IGZ1bmN0aW9uIGZpbmRSZWdyZXNzaW9uKHNlcmllcywgcHJvZmlsZSkgewogICAgICAgICAgICAg
dmFyIG1pbkluZGV4ID0gTWF0aC5yb3VuZCguMDI1ICogc2VyaWVzLmxlbmd0aCk7CiAgICAgICAg
ICAgICB2YXIgbWF4SW5kZXggPSBNYXRoLnJvdW5kKC45NzUgKiAoc2VyaWVzLmxlbmd0aCAtIDEp
KTsKICAgICAgICAgICAgIHZhciBtaW5Db21wbGV4aXR5ID0gc2VyaWVzLmdldEZpZWxkSW5EYXR1
bShtaW5JbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOwpAQCAtNzksNiArNzksOSBAQCBS
ZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogCiAgICAgICAgICAgICB2
YXIgY29tcGxleGl0eUluZGV4ID0gc2VyaWVzLmZpZWxkTWFwW1N0cmluZ3MuanNvbi5jb21wbGV4
aXR5XTsKICAgICAgICAgICAgIHZhciBmcmFtZUxlbmd0aEluZGV4ID0gc2VyaWVzLmZpZWxkTWFw
W1N0cmluZ3MuanNvbi5mcmFtZUxlbmd0aF07CisgICAgICAgICAgICB2YXIgcmVncmVzc2lvbk9w
dGlvbnMgPSB7IGRlc2lyZWRGcmFtZUxlbmd0aDogZGVzaXJlZEZyYW1lTGVuZ3RoIH07CisgICAg
ICAgICAgICBpZiAocHJvZmlsZSkKKyAgICAgICAgICAgICAgICByZWdyZXNzaW9uT3B0aW9ucy5w
cmVmZXJyZWRQcm9maWxlID0gcHJvZmlsZTsKICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAg
ICAgICAgICAgbWluQ29tcGxleGl0eTogbWluQ29tcGxleGl0eSwKICAgICAgICAgICAgICAgICBt
YXhDb21wbGV4aXR5OiBtYXhDb21wbGV4aXR5LApAQCAtODcsNyArOTAsNyBAQCBSZXN1bHRzRGFz
aGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgICAgICAgICBzZXJp
ZXMsCiAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXR1bSwgaSkgeyByZXR1cm4gc2Vy
aWVzLmRhdGFbaV1bY29tcGxleGl0eUluZGV4XTsgfSwKICAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gKGRhdHVtLCBpKSB7IHJldHVybiBzZXJpZXMuZGF0YVtpXVtmcmFtZUxlbmd0aEluZGV4
XTsgfSwKLSAgICAgICAgICAgICAgICAgICAgbWluSW5kZXgsIG1heEluZGV4LCBkZXNpcmVkRnJh
bWVMZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIG1pbkluZGV4LCBtYXhJbmRleCwgcmVncmVz
c2lvbk9wdGlvbnMpCiAgICAgICAgICAgICB9OwogICAgICAgICB9CiAKQEAgLTk5LDEzICsxMDIs
MzMgQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAg
ICAgICAgICBzYW1wbGVzW3Nlcmllc05hbWVdID0gbmV3IFNhbXBsZURhdGEoc2VyaWVzLmZpZWxk
TWFwLCBzZXJpZXMuZGF0YSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIHZhciBpc1JhbXBDb250
cm9sbGVyID0gWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhpcy5fb3B0aW9uc1siY29udHJv
bGxlciJdKSAhPSAtMTsKKyAgICAgICAgdmFyIHByZWRvbWluYW50UHJvZmlsZSA9ICIiOworICAg
ICAgICBpZiAoaXNSYW1wQ29udHJvbGxlcikgeworICAgICAgICAgICAgdmFyIHByb2ZpbGVzID0g
e307CisgICAgICAgICAgICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1
bmN0aW9uKHJlZ3Jlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocmVncmVzc2lvbltTdHJp
bmdzLmpzb24ucmVncmVzc2lvbnMucHJvZmlsZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHByb2ZpbGUgPSByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNzaW9ucy5wcm9maWxlXTsK
KyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZXNbcHJvZmlsZV0gPSAocHJvZmlsZXNbcHJvZmls
ZV0gfHwgMCkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB2YXIgbWF4UHJvZmlsZUNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHBy
b2ZpbGUgaW4gcHJvZmlsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvZmlsZXNbcHJvZmls
ZV0gPiBtYXhQcm9maWxlQ291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZG9taW5hbnRQ
cm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgICAgICAgICAgICAgbWF4UHJvZmlsZUNvdW50ID0g
cHJvZmlsZXNbcHJvZmlsZV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisKICAgICAgICAgW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5LCBTdHJpbmdzLmpzb24u
Y29tcGxleGl0eUF2ZXJhZ2VdLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzTmFtZSkgewogICAgICAg
ICAgICAgaWYgKCEoc2VyaWVzTmFtZSBpbiBzYW1wbGVzKSkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uID0ge307CiAgICAgICAgICAgICByZXN1
bHRbc2VyaWVzTmFtZV0gPSByZWdyZXNzaW9uOwotICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25S
ZXN1bHQgPSBmaW5kUmVncmVzc2lvbihzYW1wbGVzW3Nlcmllc05hbWVdKTsKKyAgICAgICAgICAg
IHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24oc2FtcGxlc1tzZXJpZXNOYW1l
XSwgcHJlZG9taW5hbnRQcm9maWxlKTsKICAgICAgICAgICAgIGlmIChzZXJpZXNOYW1lID09IFN0
cmluZ3MuanNvbi5jb21wbGV4aXR5KQogICAgICAgICAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVz
ID0gcmVncmVzc2lvblJlc3VsdC5zYW1wbGVzOwogICAgICAgICAgICAgdmFyIGNhbGN1bGF0aW9u
ID0gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9uOwpAQCAtMTIxLDcgKzE0NCw3IEBAIFJlc3Vs
dHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICByZWdyZXNz
aW9uW1N0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXZdID0gTWF0aC5zcXJ0KGNhbGN1bGF0
aW9uLmVycm9yIC8gc2FtcGxlc1tzZXJpZXNOYW1lXS5sZW5ndGgpOwogICAgICAgICB9KTsKIAot
ICAgICAgICBpZiAoWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhpcy5fb3B0aW9uc1siY29u
dHJvbGxlciJdKSAhPSAtMSkgeworICAgICAgICBpZiAoaXNSYW1wQ29udHJvbGxlcikgewogICAg
ICAgICAgICAgdmFyIHRpbWVDb21wbGV4aXR5ID0gbmV3IEV4cGVyaW1lbnQ7CiAgICAgICAgICAg
ICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1bmN0aW9uKHJlZ3Jlc3Np
b24pIHsKICAgICAgICAgICAgICAgICB0aW1lQ29tcGxleGl0eS5zYW1wbGUocmVncmVzc2lvbltT
dHJpbmdzLmpzb24uY29tcGxleGl0eV0pOwpAQCAtMTQxLDExICsxNjQsMTAgQEAgUmVzdWx0c0Rh
c2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc2FtcGxlID0gbmV3IFNhbXBsZURhdGEoY29t
cGxleGl0eVNhbXBsZXMuZmllbGRNYXAsIHJlc2FtcGxlRGF0YSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24ocmVzYW1wbGUpOworICAg
ICAgICAgICAgICAgICAgICB2YXIgcmVncmVzc2lvblJlc3VsdCA9IGZpbmRSZWdyZXNzaW9uKHJl
c2FtcGxlLCBwcmVkb21pbmFudFByb2ZpbGUpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9uLmNvbXBsZXhpdHk7CiAgICAgICAgICAgICAgICAg
fSwgLjgpOwogICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0gPSByZXN1bHRb
U3RyaW5ncy5qc29uLmNvbXBsZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdLm1lZGlhbjsK
LQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIG1hcmtzID0gZGF0YVtTdHJpbmdz
Lmpzb24ubWFya3NdOwogICAgICAgICAgICAgdmFyIHNhbXBsaW5nU3RhcnRJbmRleCA9IDAsIHNh
bXBsaW5nRW5kSW5kZXggPSAtMTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcwppbmRleCA2NjI5ZGYyLi5mNDcxZGI2IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpz
CkBAIC0xNDgsMzkgKzE0OCw0OSBAQCBFeHBlcmltZW50LmRlZmF1bHRzID0KIH07CiAKIFJlZ3Jl
c3Npb24gPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCi0gICAgZnVuY3Rpb24oc2FtcGxlcywgZ2V0
Q29tcGxleGl0eSwgZ2V0RnJhbWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBkZXNpcmVk
RnJhbWVMZW5ndGgpCisgICAgZnVuY3Rpb24oc2FtcGxlcywgZ2V0Q29tcGxleGl0eSwgZ2V0RnJh
bWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBvcHRpb25zKQogICAgIHsKLSAgICAgICAg
ZGVzaXJlZEZyYW1lTGVuZ3RoID0gZGVzaXJlZEZyYW1lTGVuZ3RoIHx8IDEwMDAvNjA7Ci0gICAg
ICAgIHZhciBzbG9wZSA9IHRoaXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29t
cGxleGl0eSwgZ2V0RnJhbWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7Ci0gICAgICAg
ICAgICBzaG91bGRDbGlwOiB0cnVlLAotICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0
aCwKLSAgICAgICAgICAgIHQxOiAwCi0gICAgICAgIH0pOwotICAgICAgICB2YXIgZmxhdCA9IHRo
aXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29tcGxleGl0eSwgZ2V0RnJhbWVM
ZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7Ci0gICAgICAgICAgICBzaG91bGRDbGlwOiB0
cnVlLAotICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0aCwKLSAgICAgICAgICAgIHQx
OiAwLAotICAgICAgICAgICAgdDI6IDAKLSAgICAgICAgfSk7Ci0gICAgICAgIHZhciBkZXNpcmVk
OwotICAgICAgICBpZiAoc2xvcGUuZXJyb3IgPCBmbGF0LmVycm9yKQotICAgICAgICAgICAgZGVz
aXJlZCA9IHNsb3BlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZXNpcmVkID0gZmxhdDsK
KyAgICAgICAgdmFyIGRlc2lyZWRGcmFtZUxlbmd0aCA9IG9wdGlvbnMuZGVzaXJlZEZyYW1lTGVu
Z3RoIHx8IDEwMDAvNjA7CisgICAgICAgIHZhciBiZXN0UHJvZmlsZTsKKworICAgICAgICBpZiAo
IW9wdGlvbnMucHJlZmVycmVkUHJvZmlsZSB8fCBvcHRpb25zLnByZWZlcnJlZFByb2ZpbGUgPT0g
U3RyaW5ncy5qc29uLnByb2ZpbGVzLnNsb3BlKSB7CisgICAgICAgICAgICB2YXIgc2xvcGUgPSB0
aGlzLl9jYWxjdWxhdGVSZWdyZXNzaW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdldEZyYW1l
TGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgeworICAgICAgICAgICAgICAgIHNob3VsZENs
aXA6IHRydWUsCisgICAgICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0aCwKKyAgICAg
ICAgICAgICAgICB0MTogMAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoIWJlc3RQ
cm9maWxlIHx8IHNsb3BlLmVycm9yIDwgYmVzdFByb2ZpbGUuZXJyb3IpIHsKKyAgICAgICAgICAg
ICAgICBiZXN0UHJvZmlsZSA9IHNsb3BlOworICAgICAgICAgICAgICAgIHRoaXMucHJvZmlsZSA9
IFN0cmluZ3MuanNvbi5wcm9maWxlcy5zbG9wZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBpZiAoIW9wdGlvbnMucHJlZmVycmVkUHJvZmlsZSB8fCBvcHRpb25zLnByZWZlcnJl
ZFByb2ZpbGUgPT0gU3RyaW5ncy5qc29uLnByb2ZpbGVzLmZsYXQpIHsKKyAgICAgICAgICAgIHZh
ciBmbGF0ID0gdGhpcy5fY2FsY3VsYXRlUmVncmVzc2lvbihzYW1wbGVzLCBnZXRDb21wbGV4aXR5
LCBnZXRGcmFtZUxlbmd0aCwgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHsKKyAgICAgICAgICAgICAg
ICBzaG91bGRDbGlwOiB0cnVlLAorICAgICAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5n
dGgsCisgICAgICAgICAgICAgICAgdDE6IDAsCisgICAgICAgICAgICAgICAgdDI6IDAKKyAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAoIWJlc3RQcm9maWxlIHx8IGZsYXQuZXJyb3Ig
PCBiZXN0UHJvZmlsZS5lcnJvcikgeworICAgICAgICAgICAgICAgIGJlc3RQcm9maWxlID0gZmxh
dDsKKyAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUgPSBTdHJpbmdzLmpzb24ucHJvZmlsZXMu
ZmxhdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuc3RhcnRJbmRl
eCA9IE1hdGgubWluKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTsKICAgICAgICAgdGhpcy5lbmRJbmRl
eCA9IE1hdGgubWF4KHN0YXJ0SW5kZXgsIGVuZEluZGV4KTsKIAotICAgICAgICB0aGlzLmNvbXBs
ZXhpdHkgPSBkZXNpcmVkLmNvbXBsZXhpdHk7Ci0gICAgICAgIHRoaXMuczEgPSBkZXNpcmVkLnMx
OwotICAgICAgICB0aGlzLnQxID0gZGVzaXJlZC50MTsKLSAgICAgICAgdGhpcy5zMiA9IGRlc2ly
ZWQuczI7Ci0gICAgICAgIHRoaXMudDIgPSBkZXNpcmVkLnQyOwotICAgICAgICB0aGlzLnN0ZGV2
MSA9IGRlc2lyZWQuc3RkZXYxOwotICAgICAgICB0aGlzLnN0ZGV2MiA9IGRlc2lyZWQuc3RkZXYy
OwotICAgICAgICB0aGlzLm4xID0gZGVzaXJlZC5uMTsKLSAgICAgICAgdGhpcy5uMiA9IGRlc2ly
ZWQubjI7Ci0gICAgICAgIHRoaXMuZXJyb3IgPSBkZXNpcmVkLmVycm9yOworICAgICAgICB0aGlz
LmNvbXBsZXhpdHkgPSBiZXN0UHJvZmlsZS5jb21wbGV4aXR5OworICAgICAgICB0aGlzLnMxID0g
YmVzdFByb2ZpbGUuczE7CisgICAgICAgIHRoaXMudDEgPSBiZXN0UHJvZmlsZS50MTsKKyAgICAg
ICAgdGhpcy5zMiA9IGJlc3RQcm9maWxlLnMyOworICAgICAgICB0aGlzLnQyID0gYmVzdFByb2Zp
bGUudDI7CisgICAgICAgIHRoaXMuc3RkZXYxID0gYmVzdFByb2ZpbGUuc3RkZXYxOworICAgICAg
ICB0aGlzLnN0ZGV2MiA9IGJlc3RQcm9maWxlLnN0ZGV2MjsKKyAgICAgICAgdGhpcy5uMSA9IGJl
c3RQcm9maWxlLm4xOworICAgICAgICB0aGlzLm4yID0gYmVzdFByb2ZpbGUubjI7CisgICAgICAg
IHRoaXMuZXJyb3IgPSBiZXN0UHJvZmlsZS5lcnJvcjsKICAgICB9LCB7CiAKICAgICB2YWx1ZUF0
OiBmdW5jdGlvbihjb21wbGV4aXR5KQpAQCAtMjkzLDggKzMwMyw4IEBAIFJlZ3Jlc3Npb24gPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICAvLyBBc3N1bWVzIHRoYXQgdGhlIHR3
byBzZWdtZW50cyBtZWV0CiAgICAgICAgICAgICB2YXIgeF9wcmltZSA9IChzMSAtIHMyKSAvICh0
MiAtIHQxKTsKIAotICAgICAgICAgICAgdmFyIGVycm9yMSA9IChrMSArIGExKnMxKnMxICsgYzEq
dDEqdDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIHx8IDA7Ci0gICAgICAgICAg
ICB2YXIgZXJyb3IyID0gKGsyICsgYTIqczIqczIgKyBjMip0Mip0MiAtIDIqZDIqczIgLSAyKmgy
KnQyICsgMipiMipzMip0MikgfHwgMDsKKyAgICAgICAgICAgIHZhciBlcnJvcjEgPSAoazEgKyBh
MSpzMSpzMSArIGMxKnQxKnQxIC0gMipkMSpzMSAtIDIqaDEqdDEgKyAyKmIxKnMxKnQxKSB8fCBO
dW1iZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgdmFyIGVycm9yMiA9IChrMiArIGEyKnMyKnMy
ICsgYzIqdDIqdDIgLSAyKmQyKnMyIC0gMipoMip0MiArIDIqYjIqczIqdDIpIHx8IE51bWJlci5N
QVhfVkFMVUU7CiAKICAgICAgICAgICAgIGlmIChpID09IHN0YXJ0SW5kZXgpIHsKICAgICAgICAg
ICAgICAgICBzZXRCZXN0KHMxLCB0MSwgZXJyb3IxLCBzMiwgdDIsIGVycm9yMiwgaSwgeF9wcmlt
ZSwgeCk7CkBAIC0zMjUsOCArMzM1LDggQEAgUmVncmVzc2lvbiA9IFV0aWxpdGllcy5jcmVhdGVD
bGFzcygKICAgICAgICAgICAgICAgICAgICAgdDIgPSBvcHRpb25zLnQyICE9PSB1bmRlZmluZWQg
PyBvcHRpb25zLnQyIDogKChFICsgbGFtYmRhMSooaDIgLSBkMip4IC0gYjIqeSArIGEyKnl4KSkg
LyAoRiArIGxhbWJkYTEqSykpOwogICAgICAgICAgICAgICAgICAgICB4X3ByaW1lID0gKHMxIC0g
czIpIC8gKHQyIC0gdDEpOwogCi0gICAgICAgICAgICAgICAgICAgIGVycm9yMSA9ICgoazEgKyBh
MSpzMSpzMSArIGMxKnQxKnQxIC0gMipkMSpzMSAtIDIqaDEqdDEgKyAyKmIxKnMxKnQxKSAtIGxh
bWJkYTEgKiBNYXRoLnBvdyh5IC0gKHMxICsgdDEqeCksIDIpKSB8fCAwOwotICAgICAgICAgICAg
ICAgICAgICBlcnJvcjIgPSAoKGsyICsgYTIqczIqczIgKyBjMip0Mip0MiAtIDIqZDIqczIgLSAy
KmgyKnQyICsgMipiMipzMip0MikgKyBsYW1iZGExICogTWF0aC5wb3coeSAtIChzMiArIHQyKngp
LCAyKSkgfHwgMDsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IxID0gKChrMSArIGExKnMxKnMx
ICsgYzEqdDEqdDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIC0gbGFtYmRhMSAq
IE1hdGgucG93KHkgLSAoczEgKyB0MSp4KSwgMikpIHx8IE51bWJlci5NQVhfVkFMVUU7CisgICAg
ICAgICAgICAgICAgICAgIGVycm9yMiA9ICgoazIgKyBhMipzMipzMiArIGMyKnQyKnQyIC0gMipk
MipzMiAtIDIqaDIqdDIgKyAyKmIyKnMyKnQyKSArIGxhbWJkYTEgKiBNYXRoLnBvdyh5IC0gKHMy
ICsgdDIqeCksIDIpKSB8fCBOdW1iZXIuTUFYX1ZBTFVFOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAodDEgIT0gdDIpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9z
dHJpbmdzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdz
LmpzCmluZGV4IDM0ZDg3YjguLmZjZDg5ZWEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMKQEAgLTMxLDcgKzMxLDEzIEBAIHZhciBTdHJp
bmdzID0gewogICAgICAgICAgICAgc3RhcnRJbmRleDogInN0YXJ0SW5kZXgiLAogICAgICAgICAg
ICAgZW5kSW5kZXg6ICJlbmRJbmRleCIsCiAgICAgICAgICAgICBzZWdtZW50MTogInNlZ21lbnQx
IiwKLSAgICAgICAgICAgIHNlZ21lbnQyOiAic2VnbWVudDIiCisgICAgICAgICAgICBzZWdtZW50
MjogInNlZ21lbnQyIiwKKyAgICAgICAgICAgIHByb2ZpbGU6ICJwcm9maWxlIgorICAgICAgICB9
LAorCisgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICBzbG9wZTogInNsb3BlIiwKKyAg
ICAgICAgICAgIGZsYXQ6ICJmbGF0IgogICAgICAgICB9LAogCiAgICAgICAgIHJlc3VsdHM6IHsK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMv
bWFpbi5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFp
bi5qcwppbmRleCAyYWYyNjgwLi4xY2M1NWUxIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCkBAIC0zNzEsMTAgKzM3MSwxMiBA
QCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAog
ICAgIGZyYW1lTGVuZ3RoRGVzaXJlZDogMTAwMC82MCwKICAgICAvLyBBZGQgc29tZSB0b2xlcmFu
Y2U7IGZyYW1lIGxlbmd0aHMgc2hvcnRlciB0aGFuIHRoaXMgYXJlIGNvbnNpZGVyZWQgdG8gYmUg
QCB0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGgKICAgICBmcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hv
bGQ6IDEwMDAvNTgsCi0gICAgLy8gUmVwcmVzZW50cyB0aGUgbG93ZXIgYm91bmQgdGhyZXNob2xk
IGluIG9yZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNvbXBsZXhpdHkgcmFuZ2UgdG8gc2FtcGxlCi0g
ICAgZnJhbWVMZW5ndGhTbG93ZXN0VGhyZXNob2xkOiAxMDAwLzMwLAorICAgIC8vIER1cmluZyB0
aWVyIHNhbXBsaW5nIGdldCBhdCBsZWFzdCB0aGlzIHNsb3cgdG8gZmluZCB0aGUgcmlnaHQgY29t
cGxleGl0eSByYW5nZQorICAgIGZyYW1lTGVuZ3RoVGllclRocmVzaG9sZDogMTAwMC8zMCwKICAg
ICAvLyBUcnkgdG8gbWFrZSBlYWNoIHJhbXAgZ2V0IHRoaXMgc2xvdyBzbyB0aGF0IHdlIGNhbiBj
cm9zcyB0aGUgYnJlYWsgcG9pbnQKICAgICBmcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZDog
MTAwMC80NSwKKyAgICAvLyBEbyBub3QgbGV0IHRoZSByZWdyZXNzaW9uIGNhbGN1bGF0aW9uIGF0
IHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2YgYSByYW1wIGdldCBzbG93ZXIgdGhhbiB0aGlzIHRo
cmVzaG9sZAorICAgIGZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhyZXNob2xkOiAxMDAwLzIwLAogCiAg
ICAgc3RhcnQ6IGZ1bmN0aW9uKHN0YXJ0VGltZXN0YW1wLCBzdGFnZSkKICAgICB7CkBAIC0zOTEs
NyArMzkzLDcgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29u
dHJvbGxlciwKIAogICAgICAgICAgICAgdmFyIGN1cnJlbnRDb21wbGV4aXR5ID0gc3RhZ2UuY29t
cGxleGl0eSgpOwogICAgICAgICAgICAgdmFyIGN1cnJlbnRGcmFtZUxlbmd0aCA9IHRoaXMuX2Zy
YW1lTGVuZ3RoRXN0aW1hdG9yLmVzdGltYXRlOwotICAgICAgICAgICAgaWYgKGN1cnJlbnRGcmFt
ZUxlbmd0aCA8IHRoaXMuZnJhbWVMZW5ndGhTbG93ZXN0VGhyZXNob2xkKSB7CisgICAgICAgICAg
ICBpZiAoY3VycmVudEZyYW1lTGVuZ3RoIDwgdGhpcy5mcmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQp
IHsKICAgICAgICAgICAgICAgICB2YXIgaXNBbmltYXRpbmdBdDYwRlBTID0gY3VycmVudEZyYW1l
TGVuZ3RoIDwgdGhpcy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQ7CiAgICAgICAgICAgICAg
ICAgdmFyIGhhc0ZpbmlzaGVkU2xvd1RpZXJUZXN0ID0gdGltZXN0YW1wID4gdGhpcy5fdGllclN0
YXJ0VGltZXN0YW1wICsgdGhpcy50aWVyU2xvd1Rlc3RMZW5ndGg7CiAKQEAgLTQzNCw3ICs0MzYs
NyBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVy
LAogICAgICAgICAgICAgLy8gSW50ZXJwb2xhdGUgYSBtYXhpbXVtIGNvbXBsZXhpdHkgdGhhdCBn
ZXRzIHVzIGFyb3VuZCB0aGUgbG93ZXN0IHRocmVzaG9sZC4KICAgICAgICAgICAgIC8vIEF2b2lk
IGRvaW5nIHRoaXMgY2FsY3VsYXRpb24gaWYgd2UgbmV2ZXIgZ2V0IG91dCBvZiB0aGUgZmlyc3Qg
dGllciAod2hlcmUgdGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5IGlzIHVuZGVmaW5lZCkuCiAgICAg
ICAgICAgICBpZiAodGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5ICYmIHRoaXMuX2xhc3RUaWVyQ29t
cGxleGl0eSAhPSBjdXJyZW50Q29tcGxleGl0eSkKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXhp
bXVtQ29tcGxleGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dy
ZXNzVmFsdWUodGhpcy5mcmFtZUxlbmd0aFNsb3dlc3RUaHJlc2hvbGQsIHRoaXMuX2xhc3RUaWVy
RnJhbWVMZW5ndGgsIGN1cnJlbnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0
eSwgY3VycmVudENvbXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXhpbXVtQ29t
cGxleGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dyZXNzVmFs
dWUodGhpcy5mcmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQsIHRoaXMuX2xhc3RUaWVyRnJhbWVMZW5n
dGgsIGN1cnJlbnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSwgY3VycmVu
dENvbXBsZXhpdHkpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIElm
IHRoZSBicm93c2VyIGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgdGhlIG1vc3QgY29tcGxleCB2ZXJz
aW9uIG9mIHRoZSB0ZXN0LCB1c2UgdGhhdAogICAgICAgICAgICAgICAgIHRoaXMuX21heGltdW1D
b21wbGV4aXR5ID0gY3VycmVudENvbXBsZXhpdHk7CkBAIC00ODAsNyArNDgyLDcgQEAgUmFtcENv
bnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAg
dmFyIGludGVydmFsRnJhbWVMZW5ndGhNZWFuID0gdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0aEVz
dGltYXRvci5tZWFuKCk7CiAgICAgICAgIHZhciBpbnRlcnZhbEZyYW1lTGVuZ3RoU3RhbmRhcmRE
ZXZpYXRpb24gPSB0aGlzLl9pbnRlcnZhbEZyYW1lTGVuZ3RoRXN0aW1hdG9yLnN0YW5kYXJkRGV2
aWF0aW9uKCk7CiAKLSAgICAgICAgaWYgKGludGVydmFsRnJhbWVMZW5ndGhNZWFuIDwgdGhpcy5m
cmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQgJiYgdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0aEVz
dGltYXRvci5jZGYodGhpcy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQpID4gLjk1KSB7Cisg
ICAgICAgIGlmIChpbnRlcnZhbEZyYW1lTGVuZ3RoTWVhbiA8IHRoaXMuZnJhbWVMZW5ndGhEZXNp
cmVkVGhyZXNob2xkICYmIHRoaXMuX2ludGVydmFsRnJhbWVMZW5ndGhFc3RpbWF0b3IuY2RmKHRo
aXMuZnJhbWVMZW5ndGhEZXNpcmVkVGhyZXNob2xkKSA+IC45KSB7CiAgICAgICAgICAgICB0aGlz
Ll9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5ID0gTWF0aC5tYXgodGhpcy5fcG9zc2libGVNaW5p
bXVtQ29tcGxleGl0eSwgY3VycmVudENvbXBsZXhpdHkpOwogICAgICAgICB9IGVsc2UgaWYgKGlu
dGVydmFsRnJhbWVMZW5ndGhTdGFuZGFyZERldmlhdGlvbiA+IDIpIHsKICAgICAgICAgICAgIC8v
IEluIHRoZSBjYXNlIHdoZXJlIHdlIG1pZ2h0IGhhdmUgZm91bmQgYSBwcmV2aW91cyBpbnRlcnZh
bCB3aGVyZSA2MGZwcyB3YXMgcmVhY2hlZC4gV2UgaGl0IGEgc2lnbmlmaWNhbnQgYmxpcCwKQEAg
LTUwMSwyNSArNTAzLDI5IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNs
YXNzKENvbnRyb2xsZXIsCiAgICAgICAgIH0KIAogICAgICAgICB2YXIgcmVncmVzc2lvbiA9IG5l
dyBSZWdyZXNzaW9uKHRoaXMuX3NhbXBsZXIuc2FtcGxlcywgdGhpcy5fZ2V0Q29tcGxleGl0eSwg
dGhpcy5fZ2V0RnJhbWVMZW5ndGgsCi0gICAgICAgICAgICB0aGlzLl9zYW1wbGVyLnNhbXBsZUNv
dW50IC0gMSwgdGhpcy5fcmFtcFN0YXJ0SW5kZXgsIHRoaXMuZnJhbWVMZW5ndGhEZXNpcmVkKTsK
KyAgICAgICAgICAgIHRoaXMuX3NhbXBsZXIuc2FtcGxlQ291bnQgLSAxLCB0aGlzLl9yYW1wU3Rh
cnRJbmRleCwgeyBkZXNpcmVkRnJhbWVMZW5ndGg6IHRoaXMuZnJhbWVMZW5ndGhEZXNpcmVkIH0p
OwogICAgICAgICB0aGlzLl9yYW1wUmVncmVzc2lvbnMucHVzaChyZWdyZXNzaW9uKTsKIAotICAg
ICAgICB2YXIgaW50ZXJwb2xhdGVkRnJhbWVMZW5ndGggPSByZWdyZXNzaW9uLnZhbHVlQXQodGhp
cy5fbWF4aW11bUNvbXBsZXhpdHkpOwotICAgICAgICBpZiAoaW50ZXJwb2xhdGVkRnJhbWVMZW5n
dGggPCB0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkKQotICAgICAgICAgICAgdGhp
cy5fcG9zc2libGVNYXhpbXVtQ29tcGxleGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAo
VXRpbGl0aWVzLnByb2dyZXNzVmFsdWUodGhpcy5mcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9s
ZCwgaW50ZXJwb2xhdGVkRnJhbWVMZW5ndGgsIHRoaXMuX2xhc3RUaWVyRnJhbWVMZW5ndGgpLCB0
aGlzLl9tYXhpbXVtQ29tcGxleGl0eSwgdGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5KSk7CisgICAg
ICAgIHZhciBmcmFtZUxlbmd0aEF0TWF4Q29tcGxleGl0eSA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0
aGlzLl9tYXhpbXVtQ29tcGxleGl0eSk7CisgICAgICAgIGlmIChmcmFtZUxlbmd0aEF0TWF4Q29t
cGxleGl0eSA8IHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQpCisgICAgICAgICAg
ICB0aGlzLl9wb3NzaWJsZU1heGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMu
bGVycChVdGlsaXRpZXMucHJvZ3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhy
ZXNob2xkLCBmcmFtZUxlbmd0aEF0TWF4Q29tcGxleGl0eSwgdGhpcy5fbGFzdFRpZXJGcmFtZUxl
bmd0aCksIHRoaXMuX21heGltdW1Db21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkp
KTsKICAgICAgICAgLy8gSWYgdGhlIHJlZ3Jlc3Npb24gZG9lc24ndCBmaXQgdGhlIGZpcnN0IHNl
Z21lbnQgYXQgYWxsLCBrZWVwIHRoZSBtaW5pbXVtIGJvdW5kIGF0IDEKICAgICAgICAgaWYgKCh0
aW1lc3RhbXAgLSB0aGlzLl9zYW1wbGVyLnNhbXBsZXNbMF1bdGhpcy5fc2FtcGxlci5zYW1wbGVD
b3VudCAtIHJlZ3Jlc3Npb24ubjFdKSAvIHRoaXMuX2N1cnJlbnRSYW1wTGVuZ3RoIDwgLjI1KQog
ICAgICAgICAgICAgdGhpcy5fcG9zc2libGVNaW5pbXVtQ29tcGxleGl0eSA9IDE7CiAKICAgICAg
ICAgdGhpcy5fbWluaW11bUNvbXBsZXhpdHlFc3RpbWF0b3Iuc2FtcGxlKHRoaXMuX3Bvc3NpYmxl
TWluaW11bUNvbXBsZXhpdHkpOwotCi0gICAgICAgIHRoaXMuX2NoYW5nZVBvaW50RXN0aW1hdG9y
LnNhbXBsZShyZWdyZXNzaW9uLmNvbXBsZXhpdHkpOwotCiAgICAgICAgIHRoaXMuX21pbmltdW1D
b21wbGV4aXR5ID0gTWF0aC5yb3VuZCh0aGlzLl9taW5pbXVtQ29tcGxleGl0eUVzdGltYXRvci5t
ZWFuKCkpOwotICAgICAgICB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9IE1hdGgucm91bmQodGhp
cy5fbWluaW11bUNvbXBsZXhpdHkgKwotICAgICAgICAgICAgTWF0aC5tYXgoNSwKLSAgICAgICAg
ICAgICAgICB0aGlzLl9wb3NzaWJsZU1heGltdW1Db21wbGV4aXR5IC0gdGhpcy5fbWluaW11bUNv
bXBsZXhpdHksCi0gICAgICAgICAgICAgICAgKHRoaXMuX2NoYW5nZVBvaW50RXN0aW1hdG9yLm1l
YW4oKSAtIHRoaXMuX21pbmltdW1Db21wbGV4aXR5KSAqIDIpKTsKKworICAgICAgICBpZiAoZnJh
bWVMZW5ndGhBdE1heENvbXBsZXhpdHkgPCB0aGlzLmZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhyZXNo
b2xkKSB7CisgICAgICAgICAgICB0aGlzLl9jaGFuZ2VQb2ludEVzdGltYXRvci5zYW1wbGUocmVn
cmVzc2lvbi5jb21wbGV4aXR5KTsKKyAgICAgICAgICAgIHRoaXMuX21heGltdW1Db21wbGV4aXR5
ID0gTWF0aC5yb3VuZCh0aGlzLl9taW5pbXVtQ29tcGxleGl0eSArCisgICAgICAgICAgICAgICAg
TWF0aC5tYXgoNSwKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVNYXhpbXVtQ29t
cGxleGl0eSAtIHRoaXMuX21pbmltdW1Db21wbGV4aXR5LAorICAgICAgICAgICAgICAgICAgICAo
dGhpcy5fY2hhbmdlUG9pbnRFc3RpbWF0b3IubWVhbigpIC0gdGhpcy5fbWluaW11bUNvbXBsZXhp
dHkpICogMikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIHNsb3dlc3Qg
c2FtcGxlcyB3ZWlnaGVkIHRoZSByZWdyZXNzaW9uIHRvbyBoZWF2aWx5CisgICAgICAgICAgICB0
aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9IE1hdGgubWF4KE1hdGgucm91bmQoLjggKiB0aGlzLl9t
YXhpbXVtQ29tcGxleGl0eSksIHRoaXMuX21pbmltdW1Db21wbGV4aXR5ICsgNSk7CisgICAgICAg
IH0KIAogICAgICAgICAvLyBOZXh0IHJhbXAKICAgICAgICAgc3RhZ2UudHVuZSh0aGlzLl9tYXhp
bXVtQ29tcGxleGl0eSAtIHN0YWdlLmNvbXBsZXhpdHkoKSk7CkBAIC01ODMsNiArNTg5LDcgQEAg
UmFtcENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAg
ICAgICAgICAgIHJlZ3Jlc3Npb25bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldID0gcmFtcC5jb21w
bGV4aXR5OwogICAgICAgICAgICAgcmVncmVzc2lvbltTdHJpbmdzLmpzb24ucmVncmVzc2lvbnMu
c3RhcnRJbmRleF0gPSBzdGFydEluZGV4OwogICAgICAgICAgICAgcmVncmVzc2lvbltTdHJpbmdz
Lmpzb24ucmVncmVzc2lvbnMuZW5kSW5kZXhdID0gZW5kSW5kZXg7CisgICAgICAgICAgICByZWdy
ZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNzaW9ucy5wcm9maWxlXSA9IHJhbXAucHJvZmlsZTsK
IAogICAgICAgICAgICAgZm9yICh2YXIgaiA9IHN0YXJ0SW5kZXg7IGogPD0gZW5kSW5kZXg7ICsr
aikKICAgICAgICAgICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5wdXNoKGNvbnRyb2xsZXJTYW1w
bGVzLmF0KGopKTsKQEAgLTYwMiw4ICs2MDksOSBAQCBSYW1wMzBDb250cm9sbGVyID0gVXRpbGl0
aWVzLmNyZWF0ZVN1YmNsYXNzKFJhbXBDb250cm9sbGVyLAogCiAgICAgZnJhbWVMZW5ndGhEZXNp
cmVkOiAxMDAwLzMwLAogICAgIGZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9sZDogMTAwMC8yOSwK
LSAgICBmcmFtZUxlbmd0aFNsb3dlc3RUaHJlc2hvbGQ6IDEwMDAvMjAsCi0gICAgZnJhbWVMZW5n
dGhSYW1wTG93ZXJUaHJlc2hvbGQ6IDEwMDAvMjAKKyAgICBmcmFtZUxlbmd0aFRpZXJUaHJlc2hv
bGQ6IDEwMDAvMjAsCisgICAgZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQ6IDEwMDAvMjAs
CisgICAgZnJhbWVMZW5ndGhSYW1wVXBwZXJUaHJlc2hvbGQ6IDEwMDAvMTIKIH0pOwogCiBTdGFn
ZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODFiMmUzYy4uZjVi
ZTYwOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTUsNiArNSw1NSBAQAogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIEFsbG93IHNwZWNpZnlpbmcgYSByZWdyZXNz
aW9uIHByb2ZpbGUgdG8gdXNlIGluc3RlYWQgb2YgdGFraW5nIHRoZSBvbmUKKyAgICAgICAgd2l0
aCB0aGUgbG93ZXN0IGVycm9yLgorCisgICAgICAgIEFkZHJlc3MgYW4gaXNzdWUgaW4gdGhlIGZv
Y3VzIHRlc3Qgd2hlbiB0aGUgcmVncmVzc2lvbiBjYWxjdWxhdGVkIGVuZHMKKyAgICAgICAgdXAg
b3ZlcmVzdGltYXRpbmcgdGhlIGNoYW5nZSBwb2ludCwgY2F1c2luZyBhIGNhc2NhZGUgb2YgdG91
Z2hlcgorICAgICAgICByYW1wcy4gVGhlIHJlYXNvbiBiZWhpbmQgdGhpcyBpcyB0aGF0IGF0IG1h
eCBjb21wbGV4aXR5IG9mIGFuIGluaXRpYWwKKyAgICAgICAgcmFtcCwgdGhlIGZyYW1lIGxlbmd0
aCBpcyB2ZXJ5IGhpZ2gsIGFuZCBpdCBpbmZsdWVuY2VzIHRoZSBzZWNvbmQKKyAgICAgICAgc2Vn
bWVudCBvZiB0aGUgcGllY2V3aXNlIHJlZ3Jlc3Npb24gc3Ryb25nbHksIGNhdXNpbmcgaXQgdG8g
YmUgdmVyeQorICAgICAgICBzdGVlcC4gQXMgYSByZXN1bHQsIHRoZSBmaXJzdCBzZWdtZW50LCBl
eHBlY3RlZCB0byBiZSBmbGF0LCBlbmRzIHVwCisgICAgICAgIGNvdmVyaW5nIGEgaGlnaGVyIHJh
bmdlIG9mIGNvbXBsZXhpdHkuIFRoYXQgbWFrZXMgdGhlIGNoYW5nZSBwb2ludAorICAgICAgICBt
dWNoIGhpZ2hlciB0aGFuIGl0IHNob3VsZCBiZS4gVG8gYXZvaWQgdGhpcywgd2Ugd2lsbCBhZGQg
YSBzYW5pdHkKKyAgICAgICAgY2hlY2sgb24gdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJhbXAu
IElmIHRoZSByZWdyZXNzaW9uJ3MgcHJvamVjdGVkCisgICAgICAgIHZhbHVlIGF0IHRoZSBtYXhp
bXVtIGNvbXBsZXhpdHkgb2YgdGhlIGN1cnJlbnQgcmFtcCBpcyB2ZXJ5IHNsb3cgKGxlc3MKKyAg
ICAgICAgdGhhbiAyMCBmcHMpLCAxKSByZWR1Y2UgdGhlIG1heGltdW0gY29tcGxleGl0eSBieSAy
MCUsIGFuZCAyKSBkbyBub3QKKyAgICAgICAgaW5jbHVkZSB0aGUgcmVncmVzc2lvbidzIGNoYW5n
ZSBwb2ludCBpbiB0aGUgY2hhbmdlIHBvaW50IGVzdGltYXRvci4KKyAgICAgICAgVGhhdCBlc3Rp
bWF0b3IgaXMgdXNlZCBhcyB0aGUgbWlkcG9pbnQgb2YgdGhlIG5leHQgcmFtcCwgYW5kIGluY2x1
ZGluZworICAgICAgICB0aGUgY2hhbmdlIHBvaW50IGZyb20gYSBwb29yIHJlZ3Jlc3Npb24gY2Fu
IGJha2UgaW4gdGhlIGVycm9yLiBUaGUKKyAgICAgICAgY29udHJvbGxlciBhbHJlYWR5IGtub3dz
IGhvdyB0byBhZGp1c3QgZm9yIHJhbXBzIHRoYXQgYXJlIHRvbyBlYXN5IGZvcgorICAgICAgICB0
aGUgc3lzdGVtLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1v
bWV0ZXIuanM6CisgICAgICAgICh0aGlzLl9wcm9jZXNzRGF0YS5maW5kUmVncmVzc2lvbik6IFRh
a2VzIGEgcHJlZmVycmVkIHByb2ZpbGUgYW5kIGdpdmVzIHRoYXQgdG8KKyAgICAgICAgUmVncmVz
c2lvbi4KKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NEYXRhLmNhbGN1bGF0ZVNjb3JlKTogV2l0aCB0
aGUgcmFtcCBjb250cm9sbGVyLCB0YWtlIHRoZSBwcm9maWxlCisgICAgICAgIG9mIHRoZSByYW1w
IHRoYXQgd2FzIHVzZWQgdGhlIG1vc3Qgd2hlbiBjYWxjdWxhdGluZyB0aGUgcmFtcCdzIHJlZ3Jl
c3Npb24uIFRoYXQKKyAgICAgICAgcHJvZmlsZSBpcyB3aGF0IGlzIHVzZWQgZm9yIHRoZSB0ZXN0
J3Mgc2NvcmUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qczoK
KyAgICAgICAgKFJlZ3Jlc3Npb24uVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKTogVXBkYXRlIHRvIHRh
a2UgYW4gb3B0aW9ucyBvYmplY3Qgd2hpY2ggY2FuCisgICAgICAgIHNwZWNpZnkgYSBwcm9maWxl
IHRvIGNhbGN1bGF0ZSB3aXRoLiBPdGhlcndpc2UgaXQgd2lsbCBjb250aW51ZSB0byB1c2UgYm90
aCBhbmQKKyAgICAgICAgc2VsZWN0IHRoZSBvbmUgd2l0aCB0aGUgbG93ZXIgZXJyb3IuCisgICAg
ICAgIChfY2FsY3VsYXRlUmVncmVzc2lvbik6IEZpeCBhbiBpc3N1ZSB3aGVyZSB3ZSBjbGFpbSAw
IGVycm9yIGlmIHRoZSByZWdyZXNzaW9uCisgICAgICAgIGNhbGN1bGF0aW9uIGZhaWxzIGR1ZSB0
byBkaXZpZGUtYnktemVyby4gSW5zdGVhZCByZWplY3QgdGhhdCByZWdyZXNzaW9uIGNhbGN1bGF0
aW9uCisgICAgICAgIGJ5IGdpdmluZyBpdCBOdW1iZXIuTUFYX1ZBTFVFLgorICAgICAgICAqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6IE5ldyBzdHJpbmdzIGZvciBtYXJraW5nIGEg
cmVncmVzc2lvbiBhcyBmbGF0CisgICAgICAgIG9yIHNsb3BlLgorICAgICAgICAqIEFuaW1vbWV0
ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6CisgICAgICAgIChSYW1wQ29udHJvbGxlcik6IFJl
bmFtZSB0aGUgdGhyZXNob2xkcyBmb3IgY2xhcml0eS4gQWRkIGEgdGhyZXNob2xkIHRoYXQsIGlm
CisgICAgICAgIGV4Y2VlZGVkLCB3aWxsIGxvd2VyIHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2Yg
dGhlIG5leHQgcmFtcC4KKyAgICAgICAgKHR1bmUpOiBSZWxheCB0aGUgY2RmIGNoZWNrIHRvIGNv
bnNpZGVyIHdoZXRoZXIgdGhlIGludGVydmFsIGRlZmluaXRlbHkgZmFsbHMgaW4KKyAgICAgICAg
dGhlIGRlc2lyZWQgZnJhbWUgbGVuZ3RoIHRocmVzaG9sZC4KKyAgICAgICAgKHByb2Nlc3NTYW1w
bGVzKTogSW5jbHVkZSB0aGUgcHJvZmlsZSBpbiB0aGUgcmFtcC4KKworMjAxNi0wNi0xNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZW1lbnRzIHRvIEFuaW1v
bWV0ZXIgYmVuY2htYXJrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTc3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwog
ICAgICAgICBVcGRhdGUgcmFtcCBjb250cm9sbGVyIHRlc3QuIEluY3JlYXNlIHRoZSBsZW5ndGgg
b2YgdGhlIHRlc3QgdG8gMzAgc2Vjb25kcywgYW5kIGV4dGVuZAogICAgICAgICB0aGUgaW50ZXJ2
YWwgdG8gMTUwIG1zIGR1cmluZyBzYW1wbGluZy4gSW1wcm92ZSB0aGUgZXN0aW1hdGlvbiBvZiB0
aGUgcmFtcCBwYXJhbWV0ZXJzLgogCi0tIAoyLjguMSAoQXBwbGUgR2l0LTY5KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281491</attachid>
            <date>2016-06-16 15:45:34 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>7. performance.now fallback</desc>
            <filename>0007-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>2951</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA2YzhjZTQ5M2Y2ZTBlYjM2MzM2MTE2ZjY1NTU5Y2I4NDVlMzM1MWJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE0OjI2OjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA3LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIEFuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6CihCZW5jaG1hcmsuVXRpbGl0aWVzLmNyZWF0
ZUNsYXNzKTogRmFsbGJhY2sgdG8gRGF0ZS5ub3cgZm9yIHBsYXRmb3Jtcwp0aGF0IG1pZ2h0IG5v
dCBzdXBwb3J0IHBlcmZvcm1hbmNlLm5vdy4KLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMgICAgICAgIHwgIDMgKy0tCiBQZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMgICAgICAgIHwgIDUgKysrKy0K
IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAxNCArKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp
LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCmluZGV4IDkw
NmUyYTguLjRlYTA1YWEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
ZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcwpAQCAtOTIs
OSArOTIsOCBAQCBEZXZlbG9wZXJSZXN1bHRzVGFibGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xh
c3MoUmVzdWx0c1RhYmxlLAogICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PSAibnVt
YmVyIikKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEudG9GaXhlZCgyKTsKICAgICAg
ICAgICAgICAgICB0ZC50ZXh0Q29udGVudCA9IGRhdGE7Ci0gICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQgPSBoZWFk
ZXIudGV4dCh0ZXN0UmVzdWx0LCB0ZXN0TmFtZSk7Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0s
IHRoaXMpOwogICAgIH0KIH0pOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCmluZGV4IDFjYzU1ZTEuLjZjNjcxYzIgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMK
QEAgLTgyOSw3ICs4MjksMTAgQEAgQmVuY2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAog
ICAgICAgICBzd2l0Y2ggKG9wdGlvbnNbInRpbWUtbWVhc3VyZW1lbnQiXSkKICAgICAgICAgewog
ICAgICAgICBjYXNlICJwZXJmb3JtYW5jZSI6Ci0gICAgICAgICAgICB0aGlzLl9nZXRUaW1lc3Rh
bXAgPSBwZXJmb3JtYW5jZS5ub3cuYmluZChwZXJmb3JtYW5jZSk7CisgICAgICAgICAgICBpZiAo
d2luZG93LnBlcmZvcm1hbmNlICYmIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3cpCisgICAgICAgICAg
ICAgICAgdGhpcy5fZ2V0VGltZXN0YW1wID0gcGVyZm9ybWFuY2Uubm93LmJpbmQocGVyZm9ybWFu
Y2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX2dldFRpbWVzdGFt
cCA9IERhdGUubm93OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgImRhdGUiOgog
ICAgICAgICAgICAgdGhpcy5fZ2V0VGltZXN0YW1wID0gRGF0ZS5ub3c7CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY1YmU2MDguLmFkNTlhY2MgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTYtMDYtMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBzdXBwb3J0IGZvciBicm93c2VycyB3aXRob3V0
IHBlcmZvcm1hbmNlLm5vdy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L21haW4uanM6CisgICAgICAgIChCZW5jaG1hcmsuVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKTogRmFs
bGJhY2sgdG8gRGF0ZS5ub3cgZm9yIHBsYXRmb3JtcworICAgICAgICB0aGF0IG1pZ2h0IG5vdCBz
dXBwb3J0IHBlcmZvcm1hbmNlLm5vdy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9k
ZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogU3R5bGUgdXBkYXRlLgorCiAyMDE2LTA2LTE2ICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlbWVudHMgdG8gQW5p
bW9tZXRlciBiZW5jaG1hcmsKLS0gCjIuOC4xIChBcHBsZSBHaXQtNjkpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281492</attachid>
            <date>2016-06-16 15:46:04 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>8. Confidence interval in final score</desc>
            <filename>0008-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>24746</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA4MDk1ZTVlMDFkZjgzZDJkYWIzZTFlOTk5YmZhODdlZjI5ZjM1MTg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE0OjI4OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA4LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbmNsdWRl
IGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBmaW5hbCBzY29yZSwgYW5kIHN0b3JlIHRoZSBj
YW52YXMKc2l6ZSBpbiB0aGUgc2VyaWFsaXphdGlvbiBzbyB0aGF0IGl0IGlzIGFjY3VyYXRlbHkg
c2hvd24gaW4gcmVzdWx0cy4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogQWRkIGEgImNv
bmZpZGVuY2UiIGRpdi4KKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6IERpdHRvLiBDb252ZXJ0ICJt
ZWFuIiB0byAiY29uZmlkZW5jZSIuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVy
L2FuaW1vbWV0ZXIuanM6IExvb2sgYXQgb3B0aW9ucywgYW5kCmlmIHRoZSBjb25maWd1cmF0aW9u
IGlzIGluY2x1ZGVkLCB1cGRhdGUgdGhlIGJvZHkgY2xhc3MgYmFzZWQgb24gaXQKKHNpbWlsYXIg
dG8gd2hhdCB3ZSBkbyB3aGVuIHdlIGZpcnN0IGxvYWQgdGhlIHBhZ2UpLiBUaGF0IHdheSwgaWYg
eW91CmRyYWctYW5kLWRyb3AgcHJldmlvdXMgcmVzdWx0cyBpbiwgdGhhdCBjb25maWd1cmF0aW9u
IGlzIHJlZmxlY3RlZCBpbgp0aGUgZGFzaGJvYXJkLiBTaG93IHRoZSBmdWxsIGNvbmZpZGVuY2Ug
aW50ZXJ2YWwuCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVy
LmNzczoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6CgoqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgooX3Byb2Nlc3NEYXRhKTog
UHJvcGFnYXRlIHRoZSBjb25maWRlbmNlIGludGVydmFsIHZhbHVlcyBvdXQgYW5kIGNhbGN1bGF0
ZQp0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcy4gRm9yIG5vdywgc2hvcnRjdXQgdGhlIGFnZ3Jl
Z2F0ZSBjYWxjdWxhdGlvbiwKc2luY2Ugd2Ugb25seSBnbyB0aHJvdWdoIG9uZSBpdGVyYXRpb24u
Cih0aGlzLl9wcm9jZXNzRGF0YS5jYWxjdWxhdGVTY29yZSk6IFByb3BhZ2F0ZSB0aGUgY29uZmlk
ZW5jZSBpbnRlcnZhbCBvdXQKdG8gYmUgbmV4dCB0byB0aGUgc2NvcmUuIERlcGVuZGluZyBvbiB0
aGUgY29udHJvbGxlciB0aGVzZSB2YWx1ZXMgYXJlCmNhbGN1bGF0ZWQgZGlmZmVyZW50bHkuCih0
aGlzLl9wcm9jZXNzRGF0YS5fZ2V0UmVzdWx0c1Byb3BlcnR5KTogQ29udmVuaWVuY2UgZnVuY3Rp
b24uCih0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmUpOiBSZWZhY3Rvci4KKHRoaXMuX3Byb2Nl
c3NEYXRhLmdldCBzY29yZUxvd2VyQm91bmQpOiBHZXQgdGhlIGFnZ3JlZ2F0ZSBsb3dlciBib3Vu
ZC4KKHRoaXMuX3Byb2Nlc3NEYXRhLmdldCBzY29yZVVwcGVyQm91bmQpOiBHZXQgdGhlIGFnZ3Jl
Z2F0ZSB1cHBlciBib3VuZC4KKHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3Jl
KToKKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLl9zdGFydEJlbmNobWFyayk6IFdoZW4gdGhl
IGJlbmNobWFyayBzdGFydHMsIG5vdGUKdGhlIGNhbnZhcyBzaXplIGFuZCBhZGQgaXQgdG8gb3B0
aW9ucy4gVGhhdCB3YXkgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGJlCnNlcmlhbGl6ZWQuCih3
aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cyk6IEluY2x1ZGUgdGhlIG1heGlt
dW0gZGV2aWF0aW9uCnBlcmNlbnRhZ2UuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xp
bmVzLnN2ZzogTWFrZSB0aGUgYmFja2dyb3VuZCBsaW5lIHVwIHdpdGggdGhlCnNrZXcuCiogQW5p
bW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzOgooSGVhZGVycy5kZXRhaWxzLnRleHQp
OiBSZWZhY3Rvci4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzOgooU3RhdGlz
dGljcy5sYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZSk6IENvbnZlbmllbmNlIGZ1bmN0aW9uIHRv
IGNhbGN1bGF0ZQp0aGUgZGV2aWF0aW9uIHBlcmNlbnRhZ2Ugb24gZWl0aGVyIGVuZCBhbmQgcmV0
dXJuIHRoZSBsYXJnZXN0IGRldmlhdGlvbi4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdz
LmpzOgotLS0KIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbCAgICAg
ICAgIHwgIDMgKy0KIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sICAgICAg
ICAgICAgIHwgIDEgKwogLi4uL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3Mg
ICAgICAgICAgfCAxMCArKy0KIC4uLi9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIu
anMgICAgICAgICAgIHwgMTAgKystCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuY3NzICAgICB8IDE1ICsrKystCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuanMgICAgICB8IDcyICsrKysrKysrKysrKysrKystLS0tLS0KIC4uLi9B
bmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvbGluZXMuc3ZnICAgICAgICAgIHwgNDAgKysrKysr
LS0tLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzICAgICAgICAg
ICB8ICAzICstCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyAgICAgICAg
ICAgICB8ICA1ICsrCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmlu
Z3MuanMgICB8ICAzICsKIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNl
cnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
ZGV2ZWxvcGVyLmh0bWwKaW5kZXggOWY1ZjkxOS4uM2VmNmJiMyAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbApAQCAtMTAyLDYgKzEwMiw3IEBACiAgICAgICAg
ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYXJnZSI+b24gYSBsYXJnZSBzY3JlZW4gKGRlc2t0
b3ApPC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxwIGNs
YXNzPSJzY29yZSIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zaG93RGVidWdJbmZvKCki
PjwvcD4KKyAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY29uZmlkZW5jZSI+PC9wPgogICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9InJlc3VsdHMtdGFibGVzIiBjbGFzcz0idGFibGUtY29udGFpbmVy
Ij4KICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDx0
YWJsZSBpZD0icmVzdWx0cy1zY29yZSI+PC90YWJsZT4KQEAgLTEyMiw3ICsxMjMsNyBAQAogICAg
ICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc2hv
d1Jlc3VsdHMoKSI+Jmx0OyBSZXN1bHRzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgIDxo
MT5HcmFwaDo8L2gxPgogICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NvcmUiPjwvcD4K
LSAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1lYW4iPjwvcD4KKyAgICAgICAgICAgICAg
ICAgICAgPHAgY2xhc3M9ImNvbmZpZGVuY2UiPjwvcD4KICAgICAgICAgICAgICAgICA8L2hlYWRl
cj4KICAgICAgICAgICAgICAgICA8bmF2PgogICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1l
PSJncmFwaC10eXBlIj4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9p
bmRleC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwKaW5kZXgg
NzNiOWI4OS4uNDY2MWUwZSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L2luZGV4Lmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwK
QEAgLTQzLDYgKzQzLDcgQEAKICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgogICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dE
ZWJ1Z0luZm8oKSI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZp
ZGVuY2UiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwiPgog
ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtYWxsIj5vbiBhIHNtYWxsIHNj
cmVlbiAocGhvbmUpPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
Im1lZGl1bSI+b24gYSBtZWRpdW0gc2NyZWVuIChsYXB0b3AsIHRhYmxldCk8L3NwYW4+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9hbmltb21ldGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzCmluZGV4IDM1MGMwYzAuLjNlYTI3ODYgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVy
L2FuaW1vbWV0ZXIuY3NzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzCkBAIC0zNzYsMTcgKzM3NiwyMSBAQCBsYWJl
bC50cmVlLWxhYmVsIHsKICAgICBjb2xvcjogaW5oZXJpdDsKIH0KIAotLnNjb3JlIHsKKyNyZXN1
bHRzIC5zY29yZSwKKyN0ZXN0LWdyYXBoIC5zY29yZSB7CiAgICAgZm9udC1zaXplOiAzZW07CiAg
ICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgbWFyZ2luOiAwOwogfQogCi0ubWVhbiB7CisjcmVz
dWx0cyAuY29uZmlkZW5jZSwKKyN0ZXN0LWdyYXBoIC5jb25maWRlbmNlIHsKICAgICBtYXJnaW4t
dG9wOiAwOwogICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICAgICBmb250LXNpemU6IDEuNWVtOwog
ICAgIGZvbnQtd2VpZ2h0OiA0MDA7CisgICAgdGV4dC1pbmRlbnQ6IGluaGVyaXQ7CisgICAgY29s
b3I6IGluaGVyaXQ7CiB9CiAKICNyZXN1bHRzLXRhYmxlcyB7CkBAIC01NDcsNyArNTUxLDcgQEAg
bGFiZWwudHJlZS1sYWJlbCB7CiAgICAgcGFkZGluZzogLjVlbSAxZW07CiB9CiAKLSN0ZXN0LWdy
YXBoIC5zY29yZSwgI3Rlc3QtZ3JhcGggLm1lYW4geworI3Rlc3QtZ3JhcGggLnNjb3JlLCAjdGVz
dC1ncmFwaCAuY29uZmlkZW5jZSB7CiAgICAgbWFyZ2luOiAwOwogfQogCmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21l
dGVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5u
ZXIvYW5pbW9tZXRlci5qcwppbmRleCA0ZWEwNWFhLi4wZmIzYjkxIDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVy
LmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL2FuaW1vbWV0ZXIuanMKQEAgLTYwOSw3ICs2MDksMTUgQEAgVXRpbGl0aWVzLmV4dGVuZE9i
amVjdCh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciwgewogICAgICAgICAgICAgSGVhZGVycy5k
ZXRhaWxzWzRdLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHNlY3Rpb25z
TWFuYWdlci5zZXRTZWN0aW9uU2NvcmUoInJlc3VsdHMiLCBkYXNoYm9hcmQuc2NvcmUudG9GaXhl
ZCgyKSk7CisgICAgICAgIGlmIChkYXNoYm9hcmQub3B0aW9uc1tTdHJpbmdzLmpzb24uY29uZmln
dXJhdGlvbl0pIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgi
c21hbGwiLCAibWVkaXVtIiwgImxhcmdlIik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNs
YXNzTGlzdC5hZGQoZGFzaGJvYXJkLm9wdGlvbnNbU3RyaW5ncy5qc29uLmNvbmZpZ3VyYXRpb25d
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzY29yZSA9IGRhc2hib2FyZC5zY29yZTsKKyAg
ICAgICAgdmFyIGNvbmZpZGVuY2UgPSAoKGRhc2hib2FyZC5zY29yZUxvd2VyQm91bmQgLyBzY29y
ZSAtIDEpICogMTAwKS50b0ZpeGVkKDIpICsKKyAgICAgICAgICAgICIlIC8gKyIgKyAoKGRhc2hi
b2FyZC5zY29yZVVwcGVyQm91bmQgLyBzY29yZSAtIDEpICogMTAwKS50b0ZpeGVkKDIpICsgIiUi
OworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3JlKCJyZXN1bHRzIiwgc2Nv
cmUudG9GaXhlZCgyKSwgY29uZmlkZW5jZSk7CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5wb3B1
bGF0ZVRhYmxlKCJyZXN1bHRzLWhlYWRlciIsIEhlYWRlcnMudGVzdE5hbWUsIGRhc2hib2FyZCk7
CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJyZXN1bHRzLXNjb3JlIiwg
SGVhZGVycy5zY29yZSwgZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVs
YXRlVGFibGUoInJlc3VsdHMtZGF0YSIsIEhlYWRlcnMuZGV0YWlscywgZGFzaGJvYXJkKTsKZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuY3NzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5u
ZXIvYW5pbW9tZXRlci5jc3MKaW5kZXggNjAzNDBjYy4uMDViNDVmOCAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9t
ZXRlci5jc3MKQEAgLTMzOSw3ICszMzksNiBAQCBib2R5LmxhcmdlIC5mcmFtZS1jb250YWluZXIg
ewogfQogCiAjcmVzdWx0cyAuc2NvcmUtY29udGFpbmVyIHsKLSAgICBwYWRkaW5nLWxlZnQ6IDEu
MmVtOwogICAgIHBhZGRpbmctYm90dG9tOiAyZW07CiB9CiAKQEAgLTM1NSw4ICszNTQsMTggQEAg
Ym9keS5sYXJnZSAuZnJhbWUtY29udGFpbmVyIHsKICAgICBmb250LXNpemU6IDVlbTsKICAgICBm
b250LXdlaWdodDogYm9sZDsKICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgbGluZS1oZWln
aHQ6IDE7CisgICAgbWFyZ2luOiAwOworfQogCisjcmVzdWx0cyAuY29uZmlkZW5jZSB7CisgICAg
Zm9udC1zaXplOiAyZW07CisgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgIGxpbmUtaGVpZ2h0
OiAxOwogICAgIG1hcmdpbjogMDsKKyAgICB0ZXh0LWluZGVudDogMS43NWVtOworICAgIGNvbG9y
OiBoc2woMCwgMCUsIDQwJSk7CisgICAgcGFkZGluZy1ib3R0b206IC4zZW07CiB9CiAKICNyZXN1
bHRzIHRhYmxlIHsKQEAgLTQxMyw5ICs0MjIsOSBAQCBib2R5LmxhcmdlIC5mcmFtZS1jb250YWlu
ZXIgewogfQogCiBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NjdweCkgewotICAgICNy
ZXN1bHRzIC5ib2R5IC5zY29yZSB7CisgICAgI3Jlc3VsdHMgLnNjb3JlLAorICAgICNyZXN1bHRz
IC5jb25maWRlbmNlIHsKICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwotICAgICAgICBwYWRk
aW5nLWxlZnQ6IDAuMWVtOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMKaW5kZXggYzE2
MjhkYS4uZWY4ODNmMyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCkBAIC0yMyw2ICsyMyw4IEBAIFJl
c3VsdHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHZhciBpdGVy
YXRpb25zU2NvcmVzID0gW107CiAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbnNTYW1wbGVycy5mb3JF
YWNoKGZ1bmN0aW9uKGl0ZXJhdGlvbiwgaW5kZXgpIHsKICAgICAgICAgICAgIHZhciB0ZXN0c1Nj
b3JlcyA9IFtdOworICAgICAgICAgICAgdmFyIHRlc3RzTG93ZXJCb3VuZFNjb3JlcyA9IFtdOwor
ICAgICAgICAgICAgdmFyIHRlc3RzVXBwZXJCb3VuZFNjb3JlcyA9IFtdOwogCiAgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNv
bi5yZXN1bHRzLml0ZXJhdGlvbnNdW2luZGV4XSA9IHJlc3VsdDsKQEAgLTQ0LDE0ICs0NiwyMCBA
QCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAg
ICAgICAgICBkZWxldGUgc3VpdGVEYXRhW3Rlc3ROYW1lXVtTdHJpbmdzLmpzb24ucmVzdWx0XTsK
IAogICAgICAgICAgICAgICAgICAgICB0ZXN0c1Njb3Jlcy5wdXNoKHN1aXRlUmVzdWx0W3Rlc3RO
YW1lXVtTdHJpbmdzLmpzb24uc2NvcmVdKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdHNMb3dl
ckJvdW5kU2NvcmVzLnB1c2goc3VpdGVSZXN1bHRbdGVzdE5hbWVdW1N0cmluZ3MuanNvbi5zY29y
ZUxvd2VyQm91bmRdKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdHNVcHBlckJvdW5kU2NvcmVz
LnB1c2goc3VpdGVSZXN1bHRbdGVzdE5hbWVdW1N0cmluZ3MuanNvbi5zY29yZVVwcGVyQm91bmRd
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJlc3Vs
dFtTdHJpbmdzLmpzb24uc2NvcmVdID0gU3RhdGlzdGljcy5nZW9tZXRyaWNNZWFuKHRlc3RzU2Nv
cmVzKTsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJvdW5kXSA9
IFN0YXRpc3RpY3MuZ2VvbWV0cmljTWVhbih0ZXN0c0xvd2VyQm91bmRTY29yZXMpOworICAgICAg
ICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZVVwcGVyQm91bmRdID0gU3RhdGlzdGljcy5n
ZW9tZXRyaWNNZWFuKHRlc3RzVXBwZXJCb3VuZFNjb3Jlcyk7CiAgICAgICAgICAgICBpdGVyYXRp
b25zU2NvcmVzLnB1c2gocmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0pOwogICAgICAgICB9LCB0
aGlzKTsKIAogICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29yZV0gPSBTdGF0
aXN0aWNzLnNhbXBsZU1lYW4oaXRlcmF0aW9uc1Njb3Jlcy5sZW5ndGgsIGl0ZXJhdGlvbnNTY29y
ZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSk7CisgICAgICAgIHRo
aXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZF0gPSB0aGlzLl9yZXN1bHRz
W1N0cmluZ3MuanNvbi5yZXN1bHRzLml0ZXJhdGlvbnNdWzBdW1N0cmluZ3MuanNvbi5zY29yZUxv
d2VyQm91bmRdOworICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29yZVVwcGVy
Qm91bmRdID0gdGhpcy5fcmVzdWx0c1tTdHJpbmdzLmpzb24ucmVzdWx0cy5pdGVyYXRpb25zXVsw
XVtTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJvdW5kXTsKICAgICB9LAogCiAgICAgY2FsY3VsYXRl
U2NvcmU6IGZ1bmN0aW9uKGRhdGEpCkBAIC0xNTcsMTcgKzE2NSwyMSBAQCBSZXN1bHRzRGFzaGJv
YXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgZXhwZXJpbWVudFJlc3Vs
dFtTdHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnN0ZGV2XSA9IHRpbWVDb21wbGV4aXR5LnN0YW5k
YXJkRGV2aWF0aW9uKCk7CiAgICAgICAgICAgICBleHBlcmltZW50UmVzdWx0W1N0cmluZ3MuanNv
bi5tZWFzdXJlbWVudHMucGVyY2VudF0gPSB0aW1lQ29tcGxleGl0eS5wZXJjZW50YWdlKCk7CiAK
LSAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV1bU3RyaW5ncy5qc29u
LmJvb3RzdHJhcF0gPSBSZWdyZXNzaW9uLmJvb3RzdHJhcChjb21wbGV4aXR5U2FtcGxlcy5kYXRh
LCAyNTAwLCBmdW5jdGlvbihyZXNhbXBsZURhdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IGNvbXBsZXhpdHlJbmRleCA9IGNvbXBsZXhpdHlTYW1wbGVzLmZpZWxkTWFwW1N0cmluZ3MuanNv
bi5jb21wbGV4aXR5XTsKLSAgICAgICAgICAgICAgICAgICAgcmVzYW1wbGVEYXRhLnNvcnQoZnVu
Y3Rpb24oYSwgYikgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFbY29tcGxleGl0
eUluZGV4XSAtIGJbY29tcGxleGl0eUluZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0K
LSAgICAgICAgICAgICAgICAgICAgdmFyIHJlc2FtcGxlID0gbmV3IFNhbXBsZURhdGEoY29tcGxl
eGl0eVNhbXBsZXMuZmllbGRNYXAsIHJlc2FtcGxlRGF0YSk7Ci0gICAgICAgICAgICAgICAgICAg
IHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24ocmVzYW1wbGUsIHByZWRvbWlu
YW50UHJvZmlsZSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdyZXNzaW9uUmVzdWx0
LnJlZ3Jlc3Npb24uY29tcGxleGl0eTsKLSAgICAgICAgICAgICAgICB9LCAuOCk7Ci0gICAgICAg
ICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSA9IHJlc3VsdFtTdHJpbmdzLmpzb24uY29t
cGxleGl0eV1bU3RyaW5ncy5qc29uLmJvb3RzdHJhcF0ubWVkaWFuOworICAgICAgICAgICAgdmFy
IGJvb3RzdHJhcFJlc3VsdCA9IFJlZ3Jlc3Npb24uYm9vdHN0cmFwKGNvbXBsZXhpdHlTYW1wbGVz
LmRhdGEsIDI1MDAsIGZ1bmN0aW9uKHJlc2FtcGxlRGF0YSkgeworICAgICAgICAgICAgICAgIHZh
ciBjb21wbGV4aXR5SW5kZXggPSBjb21wbGV4aXR5U2FtcGxlcy5maWVsZE1hcFtTdHJpbmdzLmpz
b24uY29tcGxleGl0eV07CisgICAgICAgICAgICAgICAgcmVzYW1wbGVEYXRhLnNvcnQoZnVuY3Rp
b24oYSwgYikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYVtjb21wbGV4aXR5SW5kZXhd
IC0gYltjb21wbGV4aXR5SW5kZXhdOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgICAgdmFyIHJlc2FtcGxlID0gbmV3IFNhbXBsZURhdGEoY29tcGxleGl0eVNhbXBsZXMuZmll
bGRNYXAsIHJlc2FtcGxlRGF0YSk7CisgICAgICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25SZXN1
bHQgPSBmaW5kUmVncmVzc2lvbihyZXNhbXBsZSwgcHJlZG9taW5hbnRQcm9maWxlKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9uLmNvbXBsZXhpdHk7
CisgICAgICAgICAgICB9LCAuOCk7CisKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24u
Y29tcGxleGl0eV1bU3RyaW5ncy5qc29uLmJvb3RzdHJhcF0gPSBib290c3RyYXBSZXN1bHQ7Cisg
ICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSA9IGJvb3RzdHJhcFJlc3VsdC5t
ZWRpYW47CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZF0g
PSBib290c3RyYXBSZXN1bHQuY29uZmlkZW5jZUxvdzsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJp
bmdzLmpzb24uc2NvcmVVcHBlckJvdW5kXSA9IGJvb3RzdHJhcFJlc3VsdC5jb25maWRlbmNlSGln
aDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhciBtYXJrcyA9IGRhdGFbU3RyaW5n
cy5qc29uLm1hcmtzXTsKICAgICAgICAgICAgIHZhciBzYW1wbGluZ1N0YXJ0SW5kZXggPSAwLCBz
YW1wbGluZ0VuZEluZGV4ID0gLTE7CkBAIC0yMDMsNiArMjE1LDggQEAgUmVzdWx0c0Rhc2hib2Fy
ZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAgIGV4cGVyaW1lbnRSZXN1bHRb
U3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5wZXJjZW50XSA9IGF2ZXJhZ2VGcmFtZUxlbmd0aC5w
ZXJjZW50YWdlKCk7CiAKICAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdID0g
YXZlcmFnZUNvbXBsZXhpdHkuc2NvcmUoRXhwZXJpbWVudC5kZWZhdWx0cy5DT05DRVJOKTsKKyAg
ICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJvdW5kXSA9IHJlc3VsdFtT
dHJpbmdzLmpzb24uc2NvcmVdIC0gYXZlcmFnZUZyYW1lTGVuZ3RoLnN0YW5kYXJkRGV2aWF0aW9u
KCk7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZF0gPSBy
ZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSArIGF2ZXJhZ2VGcmFtZUxlbmd0aC5zdGFuZGFyZERl
dmlhdGlvbigpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMjI0LDEyICsyMzgsMjcgQEAgUmVz
dWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgcmV0dXJuIHRo
aXMuX29wdGlvbnM7CiAgICAgfSwKIAotICAgIGdldCBzY29yZSgpCisgICAgX2dldFJlc3VsdHNQ
cm9wZXJ0eTogZnVuY3Rpb24ocHJvcGVydHkpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcmVz
dWx0cykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29y
ZV07CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0c1twcm9wZXJ0eV07CiAgICAgICAg
IHRoaXMuX3Byb2Nlc3NEYXRhKCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzW1N0cmlu
Z3MuanNvbi5zY29yZV07CisgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzW3Byb3BlcnR5XTsK
KyAgICB9LAorCisgICAgZ2V0IHNjb3JlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9n
ZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlKTsKKyAgICB9LAorCisgICAgZ2V0
IHNjb3JlTG93ZXJCb3VuZCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UmVzdWx0
c1Byb3BlcnR5KFN0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmQpOworICAgIH0sCisKKyAgICBn
ZXQgc2NvcmVVcHBlckJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9nZXRSZXN1
bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZCk7CiAgICAgfQogfSk7CiAK
QEAgLTM4OSwxMSArNDE4LDExIEBAIHdpbmRvdy5zZWN0aW9uc01hbmFnZXIgPQogICAgICAgICAg
ICAgaGlzdG9yeS5wdXNoU3RhdGUoe3NlY3Rpb246IHNlY3Rpb25JZGVudGlmaWVyfSwgZG9jdW1l
bnQudGl0bGUpOwogICAgIH0sCiAKLSAgICBzZXRTZWN0aW9uU2NvcmU6IGZ1bmN0aW9uKHNlY3Rp
b25JZGVudGlmaWVyLCBzY29yZSwgbWVhbikKKyAgICBzZXRTZWN0aW9uU2NvcmU6IGZ1bmN0aW9u
KHNlY3Rpb25JZGVudGlmaWVyLCBzY29yZSwgY29uZmlkZW5jZSkKICAgICB7CiAgICAgICAgIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiICsgc2VjdGlvbklkZW50aWZpZXIgKyAiIC5zY29yZSIp
LnRleHRDb250ZW50ID0gc2NvcmU7Ci0gICAgICAgIGlmIChtZWFuKQotICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBzZWN0aW9uSWRlbnRpZmllciArICIgLm1lYW4iKS50
ZXh0Q29udGVudCA9IG1lYW47CisgICAgICAgIGlmIChjb25maWRlbmNlKQorICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBzZWN0aW9uSWRlbnRpZmllciArICIgLmNvbmZp
ZGVuY2UiKS50ZXh0Q29udGVudCA9IGNvbmZpZGVuY2U7CiAgICAgfSwKIAogICAgIHBvcHVsYXRl
VGFibGU6IGZ1bmN0aW9uKHRhYmxlSWRlbnRpZmllciwgaGVhZGVycywgZGFzaGJvYXJkKQpAQCAt
NDU4LDYgKzQ4NywxMCBAQCB3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciA9IHsKIAogICAgIF9z
dGFydEJlbmNobWFyazogZnVuY3Rpb24oc3VpdGVzLCBvcHRpb25zLCBmcmFtZUNvbnRhaW5lcklE
KQogICAgIHsKKyAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBkb2N1bWVudC5ib2R5LmNsYXNz
TmFtZS5tYXRjaCgvc21hbGx8bWVkaXVtfGxhcmdlLyk7CisgICAgICAgIGlmIChjb25maWd1cmF0
aW9uKQorICAgICAgICAgICAgb3B0aW9uc1tTdHJpbmdzLmpzb24uY29uZmlndXJhdGlvbl0gPSBj
b25maWd1cmF0aW9uWzBdOworCiAgICAgICAgIGJlbmNobWFya1J1bm5lckNsaWVudC5pbml0aWFs
aXplKHN1aXRlcywgb3B0aW9ucyk7CiAgICAgICAgIHZhciBmcmFtZUNvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGZyYW1lQ29udGFpbmVySUQpOwogICAgICAgICB2YXIgcnVubmVy
ID0gbmV3IEJlbmNobWFya1J1bm5lcihzdWl0ZXMsIGZyYW1lQ29udGFpbmVyLCBiZW5jaG1hcmtS
dW5uZXJDbGllbnQpOwpAQCAtNDg3LDggKzUyMCw5IEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9s
bGVyID0gewogICAgICAgICB9CiAKICAgICAgICAgdmFyIGRhc2hib2FyZCA9IGJlbmNobWFya1J1
bm5lckNsaWVudC5yZXN1bHRzOwotCi0gICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9u
U2NvcmUoInJlc3VsdHMiLCBkYXNoYm9hcmQuc2NvcmUudG9GaXhlZCgyKSk7CisgICAgICAgIHZh
ciBzY29yZSA9IGRhc2hib2FyZC5zY29yZTsKKyAgICAgICAgdmFyIGNvbmZpZGVuY2UgPSAiwrEi
ICsgKFN0YXRpc3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UoZGFzaGJvYXJkLnNjb3Jl
TG93ZXJCb3VuZCwgc2NvcmUsIGRhc2hib2FyZC5zY29yZVVwcGVyQm91bmQpICogMTAwKS50b0Zp
eGVkKDIpICsgIiUiOworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3JlKCJy
ZXN1bHRzIiwgc2NvcmUudG9GaXhlZCgyKSwgY29uZmlkZW5jZSk7CiAgICAgICAgIHNlY3Rpb25z
TWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJyZXN1bHRzLWhlYWRlciIsIEhlYWRlcnMudGVzdE5hbWUs
IGRhc2hib2FyZCk7CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJyZXN1
bHRzLXNjb3JlIiwgSGVhZGVycy5zY29yZSwgZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNN
YW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtZGF0YSIsIEhlYWRlcnMuZGV0YWlscywgZGFz
aGJvYXJkKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL2xpbmVzLnN2ZyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL2xpbmVzLnN2ZwppbmRleCAxNmM3ZGM3Li44MzQ1OGI4IDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9saW5lcy5zdmcKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvbGluZXMuc3Zn
CkBAIC0yLDI1ICsyLDI1IEBACiA8IS0tIENvcHlyaWdodCDCqSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gLS0+CiA8c3ZnIHZpZXdCb3g9IjAgMCAxMDUyIDEyNTEiIHZlcnNp
b249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICA8ZyBmaWxs
LW9wYWNpdHk9IjAuNSIgZmlsbD0id2hpdGUiPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI1
MS43NjE3MTkgMCAyNTMuNzYxNzE5IDAgMi4xMjgzMzM0NSAxMjUwLjM2MzI4IDAuMTI4MzMzNDU0
IDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyOTEuNzYxNzE5IDAgMjk1
Ljc2MTcxOSAwIDQ0LjEyODMzMzUgMTI1MC4zNjMyOCA0MC4xMjgzMzM1IDEyNTAuMzYzMjgiLz4K
LSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMzEuNzYxNzE5IDAgMzM3Ljc2MTcxOSAwIDg2LjEy
ODMzMzUgMTI1MC4zNjMyOCA4MC4xMjgzMzM1IDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHln
b24gcG9pbnRzPSIzNzEuNzYxNzE5IDAgMzc5Ljc2MTcxOSAwIDEyOC4xMjgzMzMgMTI1MC4zNjMy
OCAxMjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI0MTEu
NzYxNzE5IDAgNDIxLjc2MTcxOSAwIDE3MC4xMjgzMzMgMTI1MC4zNjMyOCAxNjAuMTI4MzMzIDEy
NTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI0NTEuNzYxNzE5IDAgNDYzLjc2
MTcxOSAwIDIxMi4xMjgzMzMgMTI1MC4zNjMyOCAyMDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAg
ICAgICAgPHBvbHlnb24gcG9pbnRzPSI0OTEuNzYxNzE5IDAgNTA1Ljc2MTcxOSAwIDI1NC4xMjgz
MzMgMTI1MC4zNjMyOCAyNDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24g
cG9pbnRzPSI1MzEuNzYxNzE5IDAgNTQ3Ljc2MTcxOSAwIDI5Ni4xMjgzMzMgMTI1MC4zNjMyOCAy
ODAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1NzEuNzYx
NzE5IDAgNTg5Ljc2MTcxOSAwIDMzOC4xMjgzMzMgMTI1MC4zNjMyOCAzMjAuMTI4MzMzIDEyNTAu
MzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2MTEuNzYxNzE5IDAgNjMxLjc2MTcx
OSAwIDM4MC4xMjgzMzMgMTI1MC4zNjMyOCAzNjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAg
ICAgPHBvbHlnb24gcG9pbnRzPSI2NTEuNzYxNzE5IDAgNjczLjc2MTcxOSAwIDQyMi4xMjgzMzMg
MTI1MC4zNjMyOCA0MDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9p
bnRzPSI2OTEuNzYxNzE5IDAgNzE1Ljc2MTcxOSAwIDQ2NC4xMjgzMzMgMTI1MC4zNjMyOCA0NDAu
MTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3MzEuNzYxNzE5
IDAgNzU3Ljc2MTcxOSAwIDUwNi4xMjgzMzMgMTI1MC4zNjMyOCA0ODAuMTI4MzMzIDEyNTAuMzYz
MjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3NzEuNzYxNzE5IDAgNzk5Ljc2MTcxOSAw
IDU0OC4xMjgzMzMgMTI1MC4zNjMyOCA1MjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAg
PHBvbHlnb24gcG9pbnRzPSI4MTEuNzYxNzE5IDAgODQxLjc2MTcxOSAwIDU5MC4xMjgzMzMgMTI1
MC4zNjMyOCA1NjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRz
PSI4NTEuNzYxNzE5IDAgODgzLjc2MTcxOSAwIDYzMi4xMjgzMzMgMTI1MC4zNjMyOCA2MDAuMTI4
MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4OTEuNzYxNzE5IDAg
OTI1Ljc2MTcxOSAwIDY3NC4xMjgzMzMgMTI1MC4zNjMyOCA2NDAuMTI4MzMzIDEyNTAuMzYzMjgi
Lz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5MzEuNzYxNzE5IDAgOTY3Ljc2MTcxOSAwIDcx
Ni4xMjgzMzMgMTI1MC4zNjMyOCA2ODAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBv
bHlnb24gcG9pbnRzPSI5NzEuNzYxNzE5IDAgMTAwOS43NjE3MiAwIDc1OC4xMjgzMzMgMTI1MC4z
NjMyOCA3MjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIx
MDExLjc2MTcyIDAgMTA1MS43NjE3MiAwIDgwMC4xMjgzMzMgMTI1MC4zNjMyOCA3NjAuMTI4MzMz
IDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMjEuNzYxNzE5IDAgMjIz
Ljc2MTcxOSAwIDIuMTI4MzMzNDUgMTI1MC4zNjMyOCAwLjEyODMzMzQ1NCAxMjUwLjM2MzI4Ii8+
CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjYxLjc2MTcxOSAwIDI2NS43NjE3MTkgMCA0NC4x
MjgzMzM1IDEyNTAuMzYzMjggNDAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5
Z29uIHBvaW50cz0iMzAxLjc2MTcxOSAwIDMwNy43NjE3MTkgMCA4Ni4xMjgzMzM1IDEyNTAuMzYz
MjggODAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzQx
Ljc2MTcxOSAwIDM0OS43NjE3MTkgMCAxMjguMTI4MzMzIDEyNTAuMzYzMjggMTIwLjEyODMzMyAx
MjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzgxLjc2MTcxOSAwIDM5MS43
NjE3MTkgMCAxNzAuMTI4MzMzIDEyNTAuMzYzMjggMTYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Cisg
ICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDIxLjc2MTcxOSAwIDQzMy43NjE3MTkgMCAyMTIuMTI4
MzMzIDEyNTAuMzYzMjggMjAwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29u
IHBvaW50cz0iNDYxLjc2MTcxOSAwIDQ3NS43NjE3MTkgMCAyNTQuMTI4MzMzIDEyNTAuMzYzMjgg
MjQwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNTAxLjc2
MTcxOSAwIDUxNy43NjE3MTkgMCAyOTYuMTI4MzMzIDEyNTAuMzYzMjggMjgwLjEyODMzMyAxMjUw
LjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNTQxLjc2MTcxOSAwIDU1OS43NjE3
MTkgMCAzMzguMTI4MzMzIDEyNTAuMzYzMjggMzIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAg
ICAgIDxwb2x5Z29uIHBvaW50cz0iNTgxLjc2MTcxOSAwIDYwMS43NjE3MTkgMCAzODAuMTI4MzMz
IDEyNTAuMzYzMjggMzYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBv
aW50cz0iNjIxLjc2MTcxOSAwIDY0My43NjE3MTkgMCA0MjIuMTI4MzMzIDEyNTAuMzYzMjggNDAw
LjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNjYxLjc2MTcx
OSAwIDY4NS43NjE3MTkgMCA0NjQuMTI4MzMzIDEyNTAuMzYzMjggNDQwLjEyODMzMyAxMjUwLjM2
MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNzAxLjc2MTcxOSAwIDcyNy43NjE3MTkg
MCA1MDYuMTI4MzMzIDEyNTAuMzYzMjggNDgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAg
IDxwb2x5Z29uIHBvaW50cz0iNzQxLjc2MTcxOSAwIDc2OS43NjE3MTkgMCA1NDguMTI4MzMzIDEy
NTAuMzYzMjggNTIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50
cz0iNzgxLjc2MTcxOSAwIDgxMS43NjE3MTkgMCA1OTAuMTI4MzMzIDEyNTAuMzYzMjggNTYwLjEy
ODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iODIxLjc2MTcxOSAw
IDg1My43NjE3MTkgMCA2MzIuMTI4MzMzIDEyNTAuMzYzMjggNjAwLjEyODMzMyAxMjUwLjM2MzI4
Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iODYxLjc2MTcxOSAwIDg5NS43NjE3MTkgMCA2
NzQuMTI4MzMzIDEyNTAuMzYzMjggNjQwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxw
b2x5Z29uIHBvaW50cz0iOTAxLjc2MTcxOSAwIDkzNy43NjE3MTkgMCA3MTYuMTI4MzMzIDEyNTAu
MzYzMjggNjgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0i
OTQxLjc2MTcxOSAwIDk3OS43NjE3MiAwIDc1OC4xMjgzMzMgMTI1MC4zNjMyOCA3MjAuMTI4MzMz
IDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5ODEuNzYxNzIgMCAxMDIx
Ljc2MTcyIDAgODAwLjEyODMzMyAxMjUwLjM2MzI4IDc2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgog
ICAgIDwvZz4KIDwvc3ZnPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcwppbmRleCA1YWJjNmUyLi5mNWUzOTQxIDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5q
cworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0
cy5qcwpAQCAtNiw4ICs2LDcgQEAgdmFyIEhlYWRlcnMgPSB7CiAgICAgICAgICAgICB0aXRsZTog
IiZuYnNwOyIsCiAgICAgICAgICAgICB0ZXh0OiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAg
ICAgICAgdmFyIGJvb3RzdHJhcCA9IGRhdGFbU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldW1N0cmlu
Z3MuanNvbi5ib290c3RyYXBdOwotICAgICAgICAgICAgICAgIHJldHVybiAiPHNwYW4+wrEiICsg
KE1hdGgubWF4KE1hdGguYWJzKGJvb3RzdHJhcC5jb25maWRlbmNlTG93IC8gYm9vdHN0cmFwLm1l
ZGlhbiAtIDEpLAotICAgICAgICAgICAgICAgICAgICAoYm9vdHN0cmFwLmNvbmZpZGVuY2VIaWdo
IC8gYm9vdHN0cmFwLm1lZGlhbiAtIDEpKSAqIDEwMCkudG9GaXhlZCgyKSArICIlPC9zcGFuPiI7
CisgICAgICAgICAgICAgICAgcmV0dXJuICI8c3Bhbj7CsSIgKyAoU3RhdGlzdGljcy5sYXJnZXN0
RGV2aWF0aW9uUGVyY2VudGFnZShib290c3RyYXAuY29uZmlkZW5jZUxvdywgYm9vdHN0cmFwLm1l
ZGlhbiwgYm9vdHN0cmFwLmNvbmZpZGVuY2VIaWdoKSAqIDEwMCkudG9GaXhlZCgyKSArICIlPC9z
cGFuPiI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBdCmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMKaW5kZXggZjQ3MWRi
Ni4uOTMyMmE3OSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9zdGF0aXN0aWNzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvc3RhdGlzdGljcy5qcwpAQCAtNzAsNiArNzAsMTEgQEAgU3RhdGlzdGljcyA9CiAgICAg
ICAgICAgdmFyIHQgPSAxLjAgLyAoMS4wICsgcCAqIHZhbHVlKTsKICAgICAgICAgICB2YXIgeSA9
IDEuMCAtICgoKCgoYTUgKiB0ICsgYTQpICogdCkgKyBhMykgKiB0ICsgYTIpICogdCArIGExKSAq
IHQgKiBNYXRoLmV4cCgtdmFsdWUgKiB2YWx1ZSk7CiAgICAgICAgICAgcmV0dXJuIHNpZ24gKiB5
OworICAgIH0sCisKKyAgICBsYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZTogZnVuY3Rpb24obG93
LCBtZWFuLCBoaWdoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKGxv
dyAvIG1lYW4gLSAxKSwgKGhpZ2ggLyBtZWFuIC0gMSkpOwogICAgIH0KIH07CiAKZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcwppbmRleCBmY2Q4
OWVhLi5iNThmNjdlOSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9zdHJpbmdzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvc3RyaW5ncy5qcwpAQCAtMTgsNyArMTgsMTAgQEAgdmFyIFN0cmluZ3MgPSB7CiAgICAg
ICAgIHNtb290aGVkRnJhbWVMZW5ndGg6ICJzbW9vdGhlZEZyYW1lTGVuZ3RoIiwKIAogICAgICAg
ICByZXN1bHQ6ICJyZXN1bHQiLAorICAgICAgICBjb25maWd1cmF0aW9uOiAiY29uZmlndXJhdGlv
biIsCiAgICAgICAgIHNjb3JlOiAic2NvcmUiLAorICAgICAgICBzY29yZUxvd2VyQm91bmQ6ICJz
Y29yZUxvd2VyQm91bmQiLAorICAgICAgICBzY29yZVVwcGVyQm91bmQ6ICJzY29yZVVwcGVyQm91
bmQiLAogICAgICAgICBib290c3RyYXA6ICJib290c3RyYXAiLAogICAgICAgICBtZWFzdXJlbWVu
dHM6IHsKICAgICAgICAgICAgIGF2ZXJhZ2U6ICJhdmVyYWdlIiwKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWQ1OWFjYy4uMjBlOThlNyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxNi0w
Ni0xNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZW1lbnRz
IHRvIEFuaW1vbWV0ZXIgYmVuY2htYXJrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTc3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBmaW5h
bCBzY29yZSwgYW5kIHN0b3JlIHRoZSBjYW52YXMKKyAgICAgICAgc2l6ZSBpbiB0aGUgc2VyaWFs
aXphdGlvbiBzbyB0aGF0IGl0IGlzIGFjY3VyYXRlbHkgc2hvd24gaW4gcmVzdWx0cy4KKworICAg
ICAgICAqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IEFkZCBhICJjb25maWRlbmNlIiBkaXYu
CisgICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0by4gQ29udmVydCAibWVhbiIg
dG8gImNvbmZpZGVuY2UiLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1
bm5lci9hbmltb21ldGVyLmpzOiBMb29rIGF0IG9wdGlvbnMsIGFuZAorICAgICAgICBpZiB0aGUg
Y29uZmlndXJhdGlvbiBpcyBpbmNsdWRlZCwgdXBkYXRlIHRoZSBib2R5IGNsYXNzIGJhc2VkIG9u
IGl0CisgICAgICAgIChzaW1pbGFyIHRvIHdoYXQgd2UgZG8gd2hlbiB3ZSBmaXJzdCBsb2FkIHRo
ZSBwYWdlKS4gVGhhdCB3YXksIGlmIHlvdQorICAgICAgICBkcmFnLWFuZC1kcm9wIHByZXZpb3Vz
IHJlc3VsdHMgaW4sIHRoYXQgY29uZmlndXJhdGlvbiBpcyByZWZsZWN0ZWQgaW4KKyAgICAgICAg
dGhlIGRhc2hib2FyZC4gU2hvdyB0aGUgZnVsbCBjb25maWRlbmNlIGludGVydmFsLgorCisgICAg
ICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzOgor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzczoKKwor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgorICAg
ICAgICAoX3Byb2Nlc3NEYXRhKTogUHJvcGFnYXRlIHRoZSBjb25maWRlbmNlIGludGVydmFsIHZh
bHVlcyBvdXQgYW5kIGNhbGN1bGF0ZQorICAgICAgICB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5k
cy4gRm9yIG5vdywgc2hvcnRjdXQgdGhlIGFnZ3JlZ2F0ZSBjYWxjdWxhdGlvbiwKKyAgICAgICAg
c2luY2Ugd2Ugb25seSBnbyB0aHJvdWdoIG9uZSBpdGVyYXRpb24uCisgICAgICAgICh0aGlzLl9w
cm9jZXNzRGF0YS5jYWxjdWxhdGVTY29yZSk6IFByb3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBpbnRl
cnZhbCBvdXQKKyAgICAgICAgdG8gYmUgbmV4dCB0byB0aGUgc2NvcmUuIERlcGVuZGluZyBvbiB0
aGUgY29udHJvbGxlciB0aGVzZSB2YWx1ZXMgYXJlCisgICAgICAgIGNhbGN1bGF0ZWQgZGlmZmVy
ZW50bHkuCisgICAgICAgICh0aGlzLl9wcm9jZXNzRGF0YS5fZ2V0UmVzdWx0c1Byb3BlcnR5KTog
Q29udmVuaWVuY2UgZnVuY3Rpb24uCisgICAgICAgICh0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2Nv
cmUpOiBSZWZhY3Rvci4KKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NEYXRhLmdldCBzY29yZUxvd2Vy
Qm91bmQpOiBHZXQgdGhlIGFnZ3JlZ2F0ZSBsb3dlciBib3VuZC4KKyAgICAgICAgKHRoaXMuX3By
b2Nlc3NEYXRhLmdldCBzY29yZVVwcGVyQm91bmQpOiBHZXQgdGhlIGFnZ3JlZ2F0ZSB1cHBlciBi
b3VuZC4KKyAgICAgICAgKHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3JlKToK
KyAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLl9zdGFydEJlbmNobWFyayk6IFdo
ZW4gdGhlIGJlbmNobWFyayBzdGFydHMsIG5vdGUKKyAgICAgICAgdGhlIGNhbnZhcyBzaXplIGFu
ZCBhZGQgaXQgdG8gb3B0aW9ucy4gVGhhdCB3YXkgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGJl
CisgICAgICAgIHNlcmlhbGl6ZWQuCisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxl
ci5zaG93UmVzdWx0cyk6IEluY2x1ZGUgdGhlIG1heGltdW0gZGV2aWF0aW9uCisgICAgICAgIHBl
cmNlbnRhZ2UuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xpbmVzLnN2
ZzogTWFrZSB0aGUgYmFja2dyb3VuZCBsaW5lIHVwIHdpdGggdGhlCisgICAgICAgIHNrZXcuCisg
ICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzOgorICAgICAgICAo
SGVhZGVycy5kZXRhaWxzLnRleHQpOiBSZWZhY3Rvci4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jl
c291cmNlcy9zdGF0aXN0aWNzLmpzOgorICAgICAgICAoU3RhdGlzdGljcy5sYXJnZXN0RGV2aWF0
aW9uUGVyY2VudGFnZSk6IENvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZQorICAgICAg
ICB0aGUgZGV2aWF0aW9uIHBlcmNlbnRhZ2Ugb24gZWl0aGVyIGVuZCBhbmQgcmV0dXJuIHRoZSBs
YXJnZXN0IGRldmlhdGlvbi4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdz
LmpzOgorCiAyMDE2LTA2LTE0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbXByb3ZlbWVudHMgdG8gQW5pbW9tZXRlciBiZW5jaG1hcmsKLS0gCjIuOC4xIChBcHBsZSBH
aXQtNjkpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281494</attachid>
            <date>2016-06-16 15:46:57 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>9. Test updates</desc>
            <filename>0009-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>8477</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA5MGJlM2FhOWZhYThmOWE1YzAzMzdmYWIxYmJmZmZkNTUyMjI1YjM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE0OjI4OjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA5LzldIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpVcGRhdGUg
dGVzdHMuCgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbDogRW5zdXJlIG9ubHkg
dGhyZWUgdGV4dCBzaXplcyBmb3IKdGhlIHRocmVlIGNhbnZhc2VzLgoqIEFuaW1vbWV0ZXIvdGVz
dHMvbWFzdGVyL2ZvY3VzLmh0bWw6IFJlZHVjZSB0aGUgdGV4dCBzaXplIHRvIGZpdCB3aXRoIHNt
YWxsZXIKcGFydGljbGUgc2l6ZXMuCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2Vz
L2ZvY3VzLmpzOiBSZW1vdmUgdGhlIHF1YWRyYXRpYyBkaXN0cmlidXRpb24gZm9yCnBhcnRpY2xl
IHNpemVzLCBhbmQgbWFrZSBpdCBsaW5lYXIuIFJlZHVjZSB0aGUgc2l6ZSB2YXJpYW5jZS4gU2h1
ZmZsZSB0aGUgbWF0aCB0bwpyZWR1Y2Ugc29tZSBjYWxjdWxhdGlvbnMgcGVyIGZyYW1lLiBGaXgg
dGhlIHBsYWNlbWVudCBvZiB0aGUgcGFydGljbGVzIHdoaWNoIG1pZ2h0Cm90aGVyd2lzZSBiZSBj
dWxsZWQuCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEuanM6
IFJlZHVjZSB0aGUgcGFydGljbGUgc2l6ZQp0byBlbmNvdXJhZ2UgbGFyZ2VyIHNjb3Jlcy4KLS0t
CiAuLi4vQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbCAgICAgICAgICAgICB8ICAx
ICsKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9jdXMuanMgICAgIHwg
NDMgKysrKysrKysrKy0tLS0tLS0tLS0tLQogLi4uL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1h
Z2UtZGF0YS5qcyAgICAgICAgICAgfCAgNiArLS0KIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sIHwgMjEgKystLS0tLS0tLS0KIFBlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKysrKysrKwogNSBm
aWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ZvY3VzLmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ZvY3VzLmh0bWwKaW5k
ZXggNzMxMjU2ZC4uMDIyNjRkNyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbApAQCAtMjEsNiArMjEsNyBAQAogICAgIH0KIAog
ICAgICNjZW50ZXItdGV4dCB7CisgICAgICAgIGZvbnQtc2l6ZTogOTAlOwogICAgICAgICB0cmFu
c2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9jdXMu
anMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9m
b2N1cy5qcwppbmRleCA1NjcyODk3Li4yNmMyNDY1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9mb2N1cy5qcworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9mb2N1cy5qcwpA
QCAtMSwyNyArMSwyNSBAQAogKGZ1bmN0aW9uKCkgewogCiB2YXIgbWF4VmVydGljYWxPZmZzZXQg
PSA1MDsKLXZhciByYWRpdXMgPSAxMDsKLXZhciBjZW50ZXJEaWFtZXRlciA9IDEwMDsKLXZhciBz
aXplVmFyaWFuY2UgPSA4MDsKLXZhciB0cmF2ZWxEaXN0YW5jZSA9IDcwOwotCi12YXIgbWluT2Jq
ZWN0RGVwdGggPSAwLjI7Ci12YXIgbWF4T2JqZWN0RGVwdGggPSAxLjA7Cit2YXIgbWluaW11bURp
YW1ldGVyID0gMzA7Cit2YXIgY2VudGVyRGlhbWV0ZXIgPSA5MDsKK3ZhciBzaXplVmFyaWFuY2Ug
PSA2MDsKK3ZhciB0cmF2ZWxEaXN0YW5jZSA9IDUwOwogCiB2YXIgb3BhY2l0eU11bHRpcGxpZXIg
PSAzMDsKIAogdmFyIEZvY3VzRWxlbWVudCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICBm
dW5jdGlvbihzdGFnZSkKICAgICB7Ci0gICAgICAgIHZhciB0b3BPZmZzZXQgPSBtYXhWZXJ0aWNh
bE9mZnNldCAqIFN0YWdlLnJhbmRvbVNpZ24oKTsKLSAgICAgICAgdmFyIHRvcCA9IFN0YWdlLnJh
bmRvbSgwLCBzdGFnZS5zaXplLmhlaWdodCAtIDIgKiByYWRpdXMgLSBzaXplVmFyaWFuY2UpOwot
ICAgICAgICB2YXIgbGVmdCA9IFN0YWdlLnJhbmRvbSgwLCBzdGFnZS5zaXplLndpZHRoIC0gMiAq
IHJhZGl1cyAtIHNpemVWYXJpYW5jZSk7CisgICAgICAgIHZhciBzaXplID0gbWluaW11bURpYW1l
dGVyICsgc2l6ZVZhcmlhbmNlOwogCiAgICAgICAgIC8vIHNpemUgYW5kIGJsdXJyaW5nIGFyZSBh
IGZ1bmN0aW9uIG9mIGRlcHRoCi0gICAgICAgIHRoaXMuX2RlcHRoID0gVXRpbGl0aWVzLmxlcnAo
MSAtIE1hdGgucG93KFBzZXVkby5yYW5kb20oKSwgMiksIG1pbk9iamVjdERlcHRoLCBtYXhPYmpl
Y3REZXB0aCk7Ci0gICAgICAgIHZhciBkaXN0YW5jZSA9IFV0aWxpdGllcy5sZXJwKHRoaXMuX2Rl
cHRoLCAxLCBzaXplVmFyaWFuY2UpOwotICAgICAgICB2YXIgc2l6ZSA9IDIgKiByYWRpdXMgKyBz
aXplVmFyaWFuY2UgLSBkaXN0YW5jZTsKKyAgICAgICAgdGhpcy5fZGVwdGggPSBQc2V1ZG8ucmFu
ZG9tKCk7CisgICAgICAgIHZhciBkaXN0YW5jZSA9IFV0aWxpdGllcy5sZXJwKHRoaXMuX2RlcHRo
LCAwLCBzaXplVmFyaWFuY2UpOworICAgICAgICBzaXplIC09IGRpc3RhbmNlOworCisgICAgICAg
IHZhciB0b3AgPSBTdGFnZS5yYW5kb20oMCwgc3RhZ2Uuc2l6ZS5oZWlnaHQgLSBzaXplKSAtIHN0
YWdlLm1heEJsdXJWYWx1ZSAqIDM7CisgICAgICAgIHZhciBsZWZ0ID0gU3RhZ2UucmFuZG9tKDAs
IHN0YWdlLnNpemUud2lkdGggLSBzaXplKSAtIHN0YWdlLm1heEJsdXJWYWx1ZSAqIDM7CiAKICAg
ICAgICAgdGhpcy5jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUud2lkdGggPSAoc2l6ZSArIHN0YWdlLm1heEJsdXJW
YWx1ZSAqIDYpICsgInB4IjsKQEAgLTMwLDE2ICsyOCwxNSBAQCB2YXIgRm9jdXNFbGVtZW50ID0g
VXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0
ID0gbGVmdCArICJweCI7CiAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnpJbmRleCA9IE1h
dGgucm91bmQoKDEgLSB0aGlzLl9kZXB0aCkgKiAxMCk7CiAKLSAgICAgICAgdmFyIHBhcnRpY2xl
ID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoImRpdiIsIHt9LCB0aGlzLmNvbnRhaW5lcik7Ci0g
ICAgICAgIHBhcnRpY2xlLnN0eWxlLndpZHRoID0gc2l6ZSArICJweCI7Ci0gICAgICAgIHBhcnRp
Y2xlLnN0eWxlLmhlaWdodCA9IHNpemUgKyAicHgiOwotICAgICAgICBwYXJ0aWNsZS5zdHlsZS50
b3AgPSAoc3RhZ2UubWF4Qmx1clZhbHVlICogMykgKyAicHgiOwotICAgICAgICBwYXJ0aWNsZS5z
dHlsZS5sZWZ0ID0gKHN0YWdlLm1heEJsdXJWYWx1ZSAqIDMpICsgInB4IjsKLSAgICAgICAgdGhp
cy5wYXJ0aWNsZSA9IHBhcnRpY2xlOworICAgICAgICB0aGlzLnBhcnRpY2xlID0gVXRpbGl0aWVz
LmNyZWF0ZUVsZW1lbnQoImRpdiIsIHt9LCB0aGlzLmNvbnRhaW5lcik7CisgICAgICAgIHRoaXMu
cGFydGljbGUuc3R5bGUud2lkdGggPSBzaXplICsgInB4IjsKKyAgICAgICAgdGhpcy5wYXJ0aWNs
ZS5zdHlsZS5oZWlnaHQgPSBzaXplICsgInB4IjsKKyAgICAgICAgdGhpcy5wYXJ0aWNsZS5zdHls
ZS50b3AgPSAoc3RhZ2UubWF4Qmx1clZhbHVlICogMykgKyAicHgiOworICAgICAgICB0aGlzLnBh
cnRpY2xlLnN0eWxlLmxlZnQgPSAoc3RhZ2UubWF4Qmx1clZhbHVlICogMykgKyAicHgiOwogCiAg
ICAgICAgIHZhciBkZXB0aE11bHRpcGxpZXIgPSBVdGlsaXRpZXMubGVycCgxIC0gdGhpcy5fZGVw
dGgsIDAuOCwgMSk7Ci0gICAgICAgIHRoaXMuX3Npbk11bHRpcGxpZXIgPSBQc2V1ZG8ucmFuZG9t
KCkgKiBTdGFnZS5yYW5kb21TaWduKCkgKiBkZXB0aE11bHRpcGxpZXI7Ci0gICAgICAgIHRoaXMu
X2Nvc011bHRpcGxpZXIgPSBQc2V1ZG8ucmFuZG9tKCkgKiBTdGFnZS5yYW5kb21TaWduKCkgKiBk
ZXB0aE11bHRpcGxpZXI7CisgICAgICAgIHRoaXMuX3Npbk11bHRpcGxpZXIgPSBQc2V1ZG8ucmFu
ZG9tKCkgKiBTdGFnZS5yYW5kb21TaWduKCkgKiBkZXB0aE11bHRpcGxpZXIgKiB0cmF2ZWxEaXN0
YW5jZTsKKyAgICAgICAgdGhpcy5fY29zTXVsdGlwbGllciA9IFBzZXVkby5yYW5kb20oKSAqIFN0
YWdlLnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlwbGllciAqIHRyYXZlbERpc3RhbmNlOwogICAg
IH0sIHsKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKQEAgLTEzMSw4ICsxMjgsOCBAQCB2YXIgRm9j
dXNTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAgICBhbmltYXRlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgdGltZSA9IHRoaXMuX2JlbmNobWFyay50aW1l
c3RhbXA7Ci0gICAgICAgIHZhciBzaW5GYWN0b3IgPSBNYXRoLnNpbih0aW1lIC8gdGhpcy5tb3Zl
bWVudER1cmF0aW9uKSAqIHRyYXZlbERpc3RhbmNlOwotICAgICAgICB2YXIgY29zRmFjdG9yID0g
TWF0aC5jb3ModGltZSAvIHRoaXMubW92ZW1lbnREdXJhdGlvbikgKiB0cmF2ZWxEaXN0YW5jZTsK
KyAgICAgICAgdmFyIHNpbkZhY3RvciA9IE1hdGguc2luKHRpbWUgLyB0aGlzLm1vdmVtZW50RHVy
YXRpb24pOworICAgICAgICB2YXIgY29zRmFjdG9yID0gTWF0aC5jb3ModGltZSAvIHRoaXMubW92
ZW1lbnREdXJhdGlvbik7CiAKICAgICAgICAgdmFyIGZvY3VzUHJvZ3Jlc3MgPSAwLjUgKyAwLjUg
KiBNYXRoLnNpbih0aW1lIC8gdGhpcy5mb2N1c0R1cmF0aW9uKTsKICAgICAgICAgdGhpcy5fZm9j
YWxQb2ludCA9IGZvY3VzUHJvZ3Jlc3M7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcwpp
bmRleCA3YTAyOGYyLi42ZGU1ZDA2IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEuanMK
QEAgLTgsMTAgKzgsMTAgQEAgdmFyIEltYWdlRGF0YVN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1
YmNsYXNzKFN0YWdlLAogICAgICAgICB0aGlzLl9vZmZzZXRJbmRleCA9IDA7CiAgICAgfSwgewog
Ci0gICAgaW1hZ2VXaWR0aDogMTAwLAotICAgIGltYWdlSGVpZ2h0OiAxMDAsCisgICAgaW1hZ2VX
aWR0aDogNTAsCisgICAgaW1hZ2VIZWlnaHQ6IDUwLAogICAgIHBpeGVsU3RyaWRlOiA0LAotICAg
IHJvd1N0cmlkZTogNDAwLAorICAgIHJvd1N0cmlkZTogMjAwLAogICAgIHdlaWdodE5lZ2F0aXZl
VGhyZXNob2xkOiAwLjA0LAogICAgIHdlaWdodFBvc2l0aXZlVGhyZXNob2xkOiAwLjk2LAogICAg
IGltYWdlU3JjczogWwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL21hc3Rlci90ZXh0Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
bWFzdGVyL3RleHQuaHRtbAppbmRleCA0YzlkZGUxLi41ZTk0YjhjIDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbApAQCAtNywyOCAr
NywxNSBAQAogCiAgICAgICAgICNzdGFnZSB7CiAgICAgICAgICAgICBmb250LWZhbWlseTogSGVs
dmV0aWNhOwotICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4OwotICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogIzMxMzUzNDsvKiAjZDE5NDhjOyovCisgICAgICAgICAgICBmb250LXNpemU6
IDUycHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzEzNTM0OwogICAgICAgICB9
Ci0gICAgICAgIEBtZWRpYSAobWluLWRldmljZS1oZWlnaHQ6IDc2OHB4KSBhbmQgKG1heC1kZXZp
Y2UtaGVpZ2h0OiAxMDI0cHgpIHsKKyAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7
CiAgICAgICAgICAgICAjc3RhZ2UgewogICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4
LWRldmljZS13aWR0aDogNDE0cHgpLAotICAgICAgICAgICAgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAgICAg
ICAgICNzdGFnZSB7Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzNnB4OwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdp
ZHRoOiAzNzVweCksCi0gICAgICAgICAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDog
Mzc1cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICAgICAgICAgI3N0YWdl
IHsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDMyMHB4
KSwKLSAgICAgICAgICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiAzMjBweCkgYW5k
IChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7CisgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1
NjhweCkgewogICAgICAgICAgICAgI3N0YWdlIHsKICAgICAgICAgICAgICAgICBmb250LXNpemU6
IDI4cHg7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5n
ZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIwZTk4ZTcuLjUwNTE4Mjkg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDYtMTUgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmVtZW50cyB0byBBbmltb21ldGVyIGJl
bmNobWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRlc3RzLgorCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5o
dG1sOiBFbnN1cmUgb25seSB0aHJlZSB0ZXh0IHNpemVzIGZvcgorICAgICAgICB0aGUgdGhyZWUg
Y2FudmFzZXMuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbDog
UmVkdWNlIHRoZSB0ZXh0IHNpemUgdG8gZml0IHdpdGggc21hbGxlcgorICAgICAgICBwYXJ0aWNs
ZSBzaXplcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9j
dXMuanM6IFJlbW92ZSB0aGUgcXVhZHJhdGljIGRpc3RyaWJ1dGlvbiBmb3IKKyAgICAgICAgcGFy
dGljbGUgc2l6ZXMsIGFuZCBtYWtlIGl0IGxpbmVhci4gUmVkdWNlIHRoZSBzaXplIHZhcmlhbmNl
LiBTaHVmZmxlIHRoZSBtYXRoIHRvCisgICAgICAgIHJlZHVjZSBzb21lIGNhbGN1bGF0aW9ucyBw
ZXIgZnJhbWUuIEZpeCB0aGUgcGxhY2VtZW50IG9mIHRoZSBwYXJ0aWNsZXMgd2hpY2ggbWlnaHQK
KyAgICAgICAgb3RoZXJ3aXNlIGJlIGN1bGxlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3Rz
L21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qczogUmVkdWNlIHRoZSBwYXJ0aWNsZSBzaXpl
CisgICAgICAgIHRvIGVuY291cmFnZSBsYXJnZXIgc2NvcmVzLgorCiAyMDE2LTA2LTE2ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlbWVudHMgdG8gQW5pbW9t
ZXRlciBiZW5jaG1hcmsKLS0gCjIuOC4xIChBcHBsZSBHaXQtNjkpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281495</attachid>
            <date>2016-06-16 15:49:55 -0700</date>
            <delta_ts>2016-06-21 17:52:28 -0700</delta_ts>
            <desc>Complete patch</desc>
            <filename>0001-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>128961</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA1NGUyMTc3ZmZlN2RkNDkxYWRhM2MwYWFkZTUxYWY3MDNiYjY0NGJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE1OjQ5OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gSW1wcm92ZW1lbnRz
IHRvIEFuaW1vbWV0ZXIgYmVuY2htYXJrCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3NzM4CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClVwZGF0ZSB0ZXN0
cy4KCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sOiBFbnN1cmUgb25seSB0aHJl
ZSB0ZXh0IHNpemVzIGZvcgp0aGUgdGhyZWUgY2FudmFzZXMuCiogQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvZm9jdXMuaHRtbDogUmVkdWNlIHRoZSB0ZXh0IHNpemUgdG8gZml0IHdpdGggc21hbGxl
cgpwYXJ0aWNsZSBzaXplcy4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9j
dXMuanM6IFJlbW92ZSB0aGUgcXVhZHJhdGljIGRpc3RyaWJ1dGlvbiBmb3IKcGFydGljbGUgc2l6
ZXMsIGFuZCBtYWtlIGl0IGxpbmVhci4gUmVkdWNlIHRoZSBzaXplIHZhcmlhbmNlLiBTaHVmZmxl
IHRoZSBtYXRoIHRvCnJlZHVjZSBzb21lIGNhbGN1bGF0aW9ucyBwZXIgZnJhbWUuIEZpeCB0aGUg
cGxhY2VtZW50IG9mIHRoZSBwYXJ0aWNsZXMgd2hpY2ggbWlnaHQKb3RoZXJ3aXNlIGJlIGN1bGxl
ZC4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qczogUmVk
dWNlIHRoZSBwYXJ0aWNsZSBzaXplCnRvIGVuY291cmFnZSBsYXJnZXIgc2NvcmVzLgoKSW5jbHVk
ZSBjb25maWRlbmNlIGludGVydmFsIGZvciB0aGUgZmluYWwgc2NvcmUsIGFuZCBzdG9yZSB0aGUg
Y2FudmFzCnNpemUgaW4gdGhlIHNlcmlhbGl6YXRpb24gc28gdGhhdCBpdCBpcyBhY2N1cmF0ZWx5
IHNob3duIGluIHJlc3VsdHMuCgoqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IEFkZCBhICJj
b25maWRlbmNlIiBkaXYuCiogQW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0by4gQ29udmVydCAi
bWVhbiIgdG8gImNvbmZpZGVuY2UiLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9hbmltb21ldGVyLmpzOiBMb29rIGF0IG9wdGlvbnMsIGFuZAppZiB0aGUgY29uZmlndXJhdGlv
biBpcyBpbmNsdWRlZCwgdXBkYXRlIHRoZSBib2R5IGNsYXNzIGJhc2VkIG9uIGl0CihzaW1pbGFy
IHRvIHdoYXQgd2UgZG8gd2hlbiB3ZSBmaXJzdCBsb2FkIHRoZSBwYWdlKS4gVGhhdCB3YXksIGlm
IHlvdQpkcmFnLWFuZC1kcm9wIHByZXZpb3VzIHJlc3VsdHMgaW4sIHRoYXQgY29uZmlndXJhdGlv
biBpcyByZWZsZWN0ZWQgaW4KdGhlIGRhc2hib2FyZC4gU2hvdyB0aGUgZnVsbCBjb25maWRlbmNl
IGludGVydmFsLgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5jc3M6CiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzOgoKKiBB
bmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKF9wcm9jZXNzRGF0YSk6
IFByb3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBpbnRlcnZhbCB2YWx1ZXMgb3V0IGFuZCBjYWxjdWxh
dGUKdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMuIEZvciBub3csIHNob3J0Y3V0IHRoZSBhZ2dy
ZWdhdGUgY2FsY3VsYXRpb24sCnNpbmNlIHdlIG9ubHkgZ28gdGhyb3VnaCBvbmUgaXRlcmF0aW9u
LgoodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2NvcmUpOiBQcm9wYWdhdGUgdGhlIGNvbmZp
ZGVuY2UgaW50ZXJ2YWwgb3V0CnRvIGJlIG5leHQgdG8gdGhlIHNjb3JlLiBEZXBlbmRpbmcgb24g
dGhlIGNvbnRyb2xsZXIgdGhlc2UgdmFsdWVzIGFyZQpjYWxjdWxhdGVkIGRpZmZlcmVudGx5Lgoo
dGhpcy5fcHJvY2Vzc0RhdGEuX2dldFJlc3VsdHNQcm9wZXJ0eSk6IENvbnZlbmllbmNlIGZ1bmN0
aW9uLgoodGhpcy5fcHJvY2Vzc0RhdGEuZ2V0IHNjb3JlKTogUmVmYWN0b3IuCih0aGlzLl9wcm9j
ZXNzRGF0YS5nZXQgc2NvcmVMb3dlckJvdW5kKTogR2V0IHRoZSBhZ2dyZWdhdGUgbG93ZXIgYm91
bmQuCih0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVVcHBlckJvdW5kKTogR2V0IHRoZSBhZ2dy
ZWdhdGUgdXBwZXIgYm91bmQuCih3aW5kb3cuc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29y
ZSk6Cih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5fc3RhcnRCZW5jaG1hcmspOiBXaGVuIHRo
ZSBiZW5jaG1hcmsgc3RhcnRzLCBub3RlCnRoZSBjYW52YXMgc2l6ZSBhbmQgYWRkIGl0IHRvIG9w
dGlvbnMuIFRoYXQgd2F5IGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBiZQpzZXJpYWxpemVkLgoo
d2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMpOiBJbmNsdWRlIHRoZSBtYXhp
bXVtIGRldmlhdGlvbgpwZXJjZW50YWdlLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9s
aW5lcy5zdmc6IE1ha2UgdGhlIGJhY2tncm91bmQgbGluZSB1cCB3aXRoIHRoZQpza2V3LgoqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczoKKEhlYWRlcnMuZGV0YWlscy50ZXh0
KTogUmVmYWN0b3IuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qczoKKFN0YXRp
c3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UpOiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0
byBjYWxjdWxhdGUKdGhlIGRldmlhdGlvbiBwZXJjZW50YWdlIG9uIGVpdGhlciBlbmQgYW5kIHJl
dHVybiB0aGUgbGFyZ2VzdCBkZXZpYXRpb24uCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5n
cy5qczoKClByb3ZpZGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgd2l0aG91dCBwZXJmb3JtYW5jZS5u
b3cuCgoqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6CihCZW5jaG1hcmsuVXRp
bGl0aWVzLmNyZWF0ZUNsYXNzKTogRmFsbGJhY2sgdG8gRGF0ZS5ub3cgZm9yIHBsYXRmb3Jtcwp0
aGF0IG1pZ2h0IG5vdCBzdXBwb3J0IHBlcmZvcm1hbmNlLm5vdy4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogU3R5bGUgdXBkYXRlLgoKQWxsb3cgc3Bl
Y2lmeWluZyBhIHJlZ3Jlc3Npb24gcHJvZmlsZSB0byB1c2UgaW5zdGVhZCBvZiB0YWtpbmcgdGhl
IG9uZQp3aXRoIHRoZSBsb3dlc3QgZXJyb3IuCgpBZGRyZXNzIGFuIGlzc3VlIGluIHRoZSBmb2N1
cyB0ZXN0IHdoZW4gdGhlIHJlZ3Jlc3Npb24gY2FsY3VsYXRlZCBlbmRzCnVwIG92ZXJlc3RpbWF0
aW5nIHRoZSBjaGFuZ2UgcG9pbnQsIGNhdXNpbmcgYSBjYXNjYWRlIG9mIHRvdWdoZXIKcmFtcHMu
IFRoZSByZWFzb24gYmVoaW5kIHRoaXMgaXMgdGhhdCBhdCBtYXggY29tcGxleGl0eSBvZiBhbiBp
bml0aWFsCnJhbXAsIHRoZSBmcmFtZSBsZW5ndGggaXMgdmVyeSBoaWdoLCBhbmQgaXQgaW5mbHVl
bmNlcyB0aGUgc2Vjb25kCnNlZ21lbnQgb2YgdGhlIHBpZWNld2lzZSByZWdyZXNzaW9uIHN0cm9u
Z2x5LCBjYXVzaW5nIGl0IHRvIGJlIHZlcnkKc3RlZXAuIEFzIGEgcmVzdWx0LCB0aGUgZmlyc3Qg
c2VnbWVudCwgZXhwZWN0ZWQgdG8gYmUgZmxhdCwgZW5kcyB1cApjb3ZlcmluZyBhIGhpZ2hlciBy
YW5nZSBvZiBjb21wbGV4aXR5LiBUaGF0IG1ha2VzIHRoZSBjaGFuZ2UgcG9pbnQKbXVjaCBoaWdo
ZXIgdGhhbiBpdCBzaG91bGQgYmUuIFRvIGF2b2lkIHRoaXMsIHdlIHdpbGwgYWRkIGEgc2FuaXR5
CmNoZWNrIG9uIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByYW1wLiBJZiB0aGUgcmVncmVzc2lv
bidzIHByb2plY3RlZAp2YWx1ZSBhdCB0aGUgbWF4aW11bSBjb21wbGV4aXR5IG9mIHRoZSBjdXJy
ZW50IHJhbXAgaXMgdmVyeSBzbG93IChsZXNzCnRoYW4gMjAgZnBzKSwgMSkgcmVkdWNlIHRoZSBt
YXhpbXVtIGNvbXBsZXhpdHkgYnkgMjAlLCBhbmQgMikgZG8gbm90CmluY2x1ZGUgdGhlIHJlZ3Jl
c3Npb24ncyBjaGFuZ2UgcG9pbnQgaW4gdGhlIGNoYW5nZSBwb2ludCBlc3RpbWF0b3IuClRoYXQg
ZXN0aW1hdG9yIGlzIHVzZWQgYXMgdGhlIG1pZHBvaW50IG9mIHRoZSBuZXh0IHJhbXAsIGFuZCBp
bmNsdWRpbmcKdGhlIGNoYW5nZSBwb2ludCBmcm9tIGEgcG9vciByZWdyZXNzaW9uIGNhbiBiYWtl
IGluIHRoZSBlcnJvci4gVGhlCmNvbnRyb2xsZXIgYWxyZWFkeSBrbm93cyBob3cgdG8gYWRqdXN0
IGZvciByYW1wcyB0aGF0IGFyZSB0b28gZWFzeSBmb3IKdGhlIHN5c3RlbS4KCiogQW5pbW9tZXRl
ci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6Cih0aGlzLl9wcm9jZXNzRGF0YS5maW5k
UmVncmVzc2lvbik6IFRha2VzIGEgcHJlZmVycmVkIHByb2ZpbGUgYW5kIGdpdmVzIHRoYXQgdG8K
UmVncmVzc2lvbi4KKHRoaXMuX3Byb2Nlc3NEYXRhLmNhbGN1bGF0ZVNjb3JlKTogV2l0aCB0aGUg
cmFtcCBjb250cm9sbGVyLCB0YWtlIHRoZSBwcm9maWxlCm9mIHRoZSByYW1wIHRoYXQgd2FzIHVz
ZWQgdGhlIG1vc3Qgd2hlbiBjYWxjdWxhdGluZyB0aGUgcmFtcCdzIHJlZ3Jlc3Npb24uIFRoYXQK
cHJvZmlsZSBpcyB3aGF0IGlzIHVzZWQgZm9yIHRoZSB0ZXN0J3Mgc2NvcmUuCiogQW5pbW9tZXRl
ci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qczoKKFJlZ3Jlc3Npb24uVXRpbGl0aWVzLmNyZWF0ZUNs
YXNzKTogVXBkYXRlIHRvIHRha2UgYW4gb3B0aW9ucyBvYmplY3Qgd2hpY2ggY2FuCnNwZWNpZnkg
YSBwcm9maWxlIHRvIGNhbGN1bGF0ZSB3aXRoLiBPdGhlcndpc2UgaXQgd2lsbCBjb250aW51ZSB0
byB1c2UgYm90aCBhbmQKc2VsZWN0IHRoZSBvbmUgd2l0aCB0aGUgbG93ZXIgZXJyb3IuCihfY2Fs
Y3VsYXRlUmVncmVzc2lvbik6IEZpeCBhbiBpc3N1ZSB3aGVyZSB3ZSBjbGFpbSAwIGVycm9yIGlm
IHRoZSByZWdyZXNzaW9uCmNhbGN1bGF0aW9uIGZhaWxzIGR1ZSB0byBkaXZpZGUtYnktemVyby4g
SW5zdGVhZCByZWplY3QgdGhhdCByZWdyZXNzaW9uIGNhbGN1bGF0aW9uCmJ5IGdpdmluZyBpdCBO
dW1iZXIuTUFYX1ZBTFVFLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6IE5ldyBz
dHJpbmdzIGZvciBtYXJraW5nIGEgcmVncmVzc2lvbiBhcyBmbGF0Cm9yIHNsb3BlLgoqIEFuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6CihSYW1wQ29udHJvbGxlcik6IFJlbmFtZSB0
aGUgdGhyZXNob2xkcyBmb3IgY2xhcml0eS4gQWRkIGEgdGhyZXNob2xkIHRoYXQsIGlmCmV4Y2Vl
ZGVkLCB3aWxsIGxvd2VyIHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2YgdGhlIG5leHQgcmFtcC4K
KHR1bmUpOiBSZWxheCB0aGUgY2RmIGNoZWNrIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhlIGludGVy
dmFsIGRlZmluaXRlbHkgZmFsbHMgaW4KdGhlIGRlc2lyZWQgZnJhbWUgbGVuZ3RoIHRocmVzaG9s
ZC4KKHByb2Nlc3NTYW1wbGVzKTogSW5jbHVkZSB0aGUgcHJvZmlsZSBpbiB0aGUgcmFtcC4KClVw
ZGF0ZSByYW1wIGNvbnRyb2xsZXIgdGVzdC4gSW5jcmVhc2UgdGhlIGxlbmd0aCBvZiB0aGUgdGVz
dCB0byAzMCBzZWNvbmRzLCBhbmQgZXh0ZW5kCnRoZSBpbnRlcnZhbCB0byAxNTAgbXMgZHVyaW5n
IHNhbXBsaW5nLiBJbXByb3ZlIHRoZSBlc3RpbWF0aW9uIG9mIHRoZSByYW1wIHBhcmFtZXRlcnMu
CgoqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IENoYW5nZSBkZWZhdWx0IHRvIDMwIHNlY29u
ZHMsIGFuZCBkb24ndCBzaG93IHRoZSBwcm9ncmVzcyBiYXIKYnkgZGVmYXVsdC4KKiBBbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczogQ2hhbmdlIGRlZmF1bHQgdG8gMzAg
c2Vjb25kcy4KKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzOiBBIG51bWJlciBv
ZiBpbXByb3ZlbWVudHMgdG8gdGhlIHJhbXAgY29udHJvbGxlciwgaW4KdGhlIG9yZGVyIGluIHdo
aWNoIHRoZXkgYXBwZWFyIGluIHRoZSBwYXRjaDoKCi0gV2l0aCBhIGxvbmdlciB0ZXN0IGxlbmd0
aCB1c2UgbG9uZ2VyIHJhbXBzIHdpdGggbG9uZ2VyIGludGVydmFscyB0byBnZXQgbW9yZSBkYXRh
IGF0IGVhY2gKY29tcGxleGl0eS4gS2VlcCB0aGUgMTAwIG1zIGludGVydmFsIGxlbmd0aCBkdXJp
bmcgdGhlIHJhbXAgdXAgcGhhc2Ugc2luY2Ugd2UgZG9uJ3QgbmVlZCB0bwpzcGVuZCBtb3JlIHRp
bWUgdGhlcmUgdG8gZmluZCB0aGUgcmlnaHQgb3JkZXIgb2YgbWFnbml0dWRlLCBidXQgaW5jcmVh
c2UgaXQgZHVyaW5nIHRoZQpyYW1wcyB0byAxMjAgbXMuCi0gVGhlIHJhbXAgbGluZWFybHkgaW50
ZXJwb2xhdGVzIHRoZSBjb21wbGV4aXR5IHRvIHJlbmRlciBiYXNlZCBvbiBpdHMgdGltZXN0YW1w
LCBidXQgaXQgd291bGQKbmV2ZXIgc2FtcGxlIHRoZSBtaW5pbXVtIGNvbXBsZXhpdHkuIEluc3Rl
YWQgb2YgbGVycGluZyBtYXggdG8gbWluIGNvbXBsZXhpdHkgZnJvbSB0aW1lCjAgdG8gdCB3aGVy
ZSB0IGlzIHRoZSByYW1wIGxlbmd0aCwgaW5zdGVhZCBsZXJwIGZyb20gMCB0byAodCAtIGludGVy
dmFsU2FtcGxlTGVuZ3RoKSBzbyB0aGF0CndlIGNhbiBoYXZlIGF0IGxlYXN0IG9uZSBpbnRlcnZh
bCBzYW1wbGUgYXQgdGhlIG1pbiBjb21wbGV4aXR5IGZvciB0aGF0IHJhbXAuCi0gU29tZSByZWdy
ZXNzaW9uIGNhbGN1bGF0aW9ucyBvbmx5IGNvbWUgb3V0IHdpdGggb25lIGxpbmUgc2VnbWVudCBy
YXRoZXIgdGhhbiB0aGUgdHdvCndlIGV4cGVjdC4gVGhpcyBjb3VsZCBiZSBkdWUgdG8gYSBub2lz
eSByYW1wIG9yIHRoZSByYW1wJ3MgcmFuZ2UgaXMgdG9vIG5hcnJvdy4gSWYgdGhhdCdzIHRoZQpj
YXNlLCBpbmZsdWVuY2UgdGhlIG1pbmltdW0gY29tcGxleGl0eSBvZiB0aGUgbmV4dCByYW1wIHRv
d2FyZHMgdGhlIGxvd2VzdCBib3VuZCBvZiAxLCBzbyB0aGF0CndlIGVuc3VyZSB0aGF0IGF0IGxl
YXN0IHBhcnQgb2YgdGhlIHJhbXAgaXMgY292ZXJpbmcgYSBjb21wbGV4aXR5IHJhbmdlIHRoYXQg
dGhlIHN5c3RlbSBjYW4KaGFuZGxlIGF0IGZ1bGwgNjAuCi0gUmVtb3ZlIGFuIGFzc2lnbm1lbnQg
dG8gaW50ZXJwb2xhdGVkRnJhbWVMZW5ndGggc2luY2UgdGhhdCBpcyBuZXZlciBzdWJzZXF1ZW50
bHkgdXNlZC4KClVwZGF0ZSB0aGUgZm9ybWF0IHVzZWQgdG8gc2VyaWFsaXplIHRoZSByZXN1bHRz
IGZvciBhbmFseXNpcy4KCkVhY2ggZGF0YSBwb2ludCB1c2VkIHRvIGhhdmUgbmFtZWQgcHJvcGVy
dGllcyBmb3IgZmllbGRzIGxpa2UgY29tcGxleGl0eSBhbmQgZnJhbWUgcmF0ZS4KSW4gYWRkaXRp
b24gdGhlIHNlcmlhbGl6ZWQgbnVtYmVycyBoYWQgcm91bmRpbmcgZXJyb3JzIHRoYXQgdG9vayB1
cCBtYW55IGNoYXJhY3RlcnMuClVwZGF0ZSB0aGUgZm9ybWF0IGJ5IGludHJvZHVjaW5nIGEgbmV3
IGRhdGEgY29udGFpbmVyIGNhbGxlZCBTYW1wbGVEYXRhLCB3aGljaCBjb250YWlucyBhCmZpZWxk
IG1hcC4gVGhlIG1hcCBtYXBzIGEgc3RyaW5nIHRvIGFuIGFycmF5IGluZGV4LiBFYWNoIGRhdGEg
cG9pbnQgaXMgYW4gYXJyYXksIHNvLCB0bwpnZXQgYSBzdGF0LCB1c2UgdGhlIGZpZWxkIG1hcCB0
byBnZXQgdGhlIGFycmF5IGluZGV4IGludG8gdGhlIGRhdGEgcG9pbnQuIFRoaXMgYWxsb3dzIGZ1
dHVyZQp2ZXJzaW9ucyB0byB0cmFjayBvdGhlciBkYXRhLCBhbmQgcmVkdWNlcyB0aGUgc2l6ZSBv
ZiB0aGUgb3V0cHV0IHN0cmluZyBieSB0d28tdGhpcmRzLgoKKiBBbmltb21ldGVyL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzOgooVXRpbGl0aWVzLnRvRml4ZWROdW1iZXIpOiBBZGQgY29udmVuaWVu
Y2UgZnVuY3Rpb24gdGhhdCB0cnVuY2F0ZXMgdGhlIG51bWJlciB0byBhIGZpeGVkCnByZWNpc2lv
biwgYW5kIGNvbnZlcnRzIGl0IGJhY2sgdG8gYSBudW1iZXIuCihTYW1wbGVEYXRhKTogTmV3IGNs
YXNzIHRoYXQgY29udGFpbnMgc2FtcGxlIGRhdGEgYW5kIGEgZmllbGQgbWFwIHRoYXQgbWFwcyBw
cm9wZXJ0aWVzIHRvCmFuIGFycmF5IGluZGV4LgooZ2V0IGxlbmd0aCk6IE51bWJlciBvZiBkYXRh
IHBvaW50cy4KKGFkZEZpZWxkKTogQWRkIGEgZmllbGQgdG8gdGhlIGZpZWxkIG1hcC4KKHB1c2gp
OiBBZGQgYSBkYXRhIHBvaW50Lgooc29ydCk6IFNvcnQgdGhlIGRhdGEuCihzbGljZSk6IFJldHVy
biBuZXcgU2FtcGxlRGF0YSBvYmplY3Qgd2l0aCBzbGljZWQgZGF0YS4KKGZvckVhY2gpOiBJdGVy
YXRlIG92ZXIgdGhlIGRhdGEgd2l0aCBwcm92aWRlZCBmdW5jdGlvbi4KKGNyZWF0ZURhdHVtKToK
KGdldEZpZWxkSW5EYXR1bSk6IFJldHVybnMgdGhlIGRhdGEgcG9pbnQgYXNzb2NpYXRlZCB3aXRo
IHRoZSBmaWVsZCBuYW1lIGJ5IGxvb2tpbmcgaXQgdXAKaW4gdGhlIGZpZWxkIG1hcCBpbiB0aGUg
ZGF0dW0gcHJvdmlkZWQsIHdoaWNoIGNhbiBiZSB0aGUgZGF0dW0gb2JqZWN0IGl0c2VsZiAoYW4g
YXJyYXkpIG9yCmFuIGluZGV4IGludG8gdGhlIGRhdGEgbWVtYmVyIHZhcmlhYmxlLgooc2V0Rmll
bGRJbkRhdHVtKTogU2V0cyB0aGUgZGF0YSBwb2ludCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxk
IG5hbWUuCihhdCk6IFJldHVybnMgdGhlIGRhdGEgcG9pbnQgYXQgdGhlIHByb3ZpZGVkIGluZGV4
LgoodG9BcnJheSk6IFNlcmlhbGl6ZXMgdGhlIGRhdGEgd2hlcmUgdGhlIGZpZWxkIG1hcCBzZXJ2
ZXMgYXMgcHJvcGVydHkgbmFtZXMgZm9yIGVhY2ggcG9pbnQuCgoqIEFuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qczoKKHVwZGF0ZUdyYXBoRGF0YSk6IFJlbW92ZSB1bnVz
ZWQgX3Rlc3REYXRhLiBDb252ZXJ0IHRoZSBkYXRhIHRvIHRoZSBvbGQgYXJyYXkgZm9ybWF0IGZv
ciB0aGUKZ3JhcGggdG8gdXNlLCBzaW5jZSB0aGUgb2xkIGZvcm1hdCB3YXMgbXVjaCBlYXNpZXIg
dG8gd29yayB3aXRoIHdoZW4gZGlzcGxheWluZyB0aGUgZ3JhcGhzLgoob25HcmFwaFR5cGVDaGFu
Z2VkKTogRm9yIHNvbWUgY29udHJvbGxlcnMsIG5vIGFsdGVybmF0aXZlIHNjb3JlIG9yIG1lYW4g
aXMgcHJvdmlkZWQuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3Nz
OgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOiBSZWZhY3RvciB0
byB1c2UgU2FtcGxlRGF0YS4gVXBkYXRlIEpTT04gb3V0cHV0CnRvIG9ubHkgZ28gdG8gMyBkaWdp
dHMgb2YgcHJlY2lzaW9uIGZvciBwdXJwb3NlcyBvZiByZWR1Y2luZyB0aGUgZGF0YSBzaXplLgoq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6IEFkZCBuZXcgc3RyaW5ncyB0byBwdXQg
aW50byB0aGUgZmllbGQgbWFwcy4KKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpz
OiBSZWZhY3RvciB0byB1c2UgU2FtcGxlRGF0YS4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRt
bDoKKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6IFJlc3RydWN0dXJlIHJlc3VsdHMgdGFibGUgZm9y
IGJvdGggcGFnZXMuIEFkZCBjaGFyc2V0IGF0dHJpYnV0ZSB0bwp0ZXN0cy5qcyBpbmNsdWRlLgoq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzczogQ2xlYXIg
b3V0IHN0eWxlcyBmcm9tIHJlbGVhc2UgcnVubmVyLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci9ncmFwaC5qczoKKG9uR3JhcGhUeXBlQ2hhbmdlZCk6IFVwZGF0ZSBzY29yZSBh
bmQgbWVhbiBpZiBib290c3RyYXAgcmVzdWx0cyBhcmUgYXZhaWxhYmxlIGZyb20gdGhlCmNvbnRy
b2xsZXIsIHNpbmNlIG5vdCBhbGwgY29udHJvbGxlcnMgZG8gYm9vdHN0cmFwcGluZy4KKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanM6IFVwZGF0ZSBoZWFkZXIgdGV4
dC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6IEluY2x1ZGUg
Y29uZmlkZW5jZSBpbnRlcnZhbCBpbiByZXN1bHRzLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9hbmltb21ldGVyLmpzOgooUmVzdWx0c1RhYmxlLl9hZGRIZWFkZXIpOiBIZWFkZXIgY29u
dGVudHMgY2FuIGJlIEhUTUwsIHNvIHVzZSBpbm5lckhUTUwgaW5zdGVhZC4KKFJlc3VsdHNUYWJs
ZS5fYWRkQm9keSk6IEFkZCB0Ym9keSBlbGVtZW50LgooUmVzdWx0c1RhYmxlLl9hZGRUZXN0KTog
QWxsb3cgYSBkYXRhIGNlbGwgdG8gaW52b2tlIGEgSlMgZnVuY3Rpb24gdG8gZ2V0IGl0cyBjb250
ZW50cy4KKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRzKTogQWRkIHRhYmxl
IHRoYXQgaW5jbHVkZXMgdGVzdHMnIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLgoqIEFuaW1vbWV0ZXIv
cmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczoKKEhlYWRlcnMuZGV0YWlscy50ZXh0KTogQWRkIG5l
dyBkZXRhaWxzIHRhYmxlIHRoYXQgaW5jbHVkZXMgYm9vdHN0cmFwIGNvbmZpZGVuY2UgaW50ZXJ2
YWwuClRoZSBpbnRlcnZhbCBjYW4gYmUgYXN5bW1ldHJpYywgYnV0IGZvciBzaW1wbGljaXR5LCBy
ZXBvcnQgdGhlIG1heGltdW0gZGV2aWF0aW9uIHBlcmNlbnRhZ2UKb24gZWl0aGVyIHNpZGUgb2Yg
dGhlIGJvb3RzdHJhcCBtZWRpYW4uCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5q
czoKKGJvb3RzdHJhcCk6IEluY2x1ZGUgdGhlIGNvbmZpZGVuY2UgcGVyY2VudGFnZSBpbiB0aGUg
cmV0dXJuIG9iamVjdC4KClJlcG9ydCBjYW52YXMgc2l6ZSBpbiByZXN1bHRzLgoKKiBBbmltb21l
dGVyL2RldmVsb3Blci5odG1sOiBBZGQgbWFya3VwIHRvIGluZGljYXRlIHdoZXRoZXIgYSBzbWFs
bCwgbWVkaXVtLCBvciBsYXJnZQpjYW52YXMgd2FzIHVzZWQuCiogQW5pbW9tZXRlci9pbmRleC5o
dG1sOiBEaXR0by4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5qczogQ2FsbCBkZXRlcm1pbmVDYW52YXNTaXplKCkuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL2FuaW1vbWV0ZXIuY3NzOiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0aGUgY2FudmFzIGJh
c2VkIG9uIHRoZQpib2R5IGNsYXNzIHNpemUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVy
L2FuaW1vbWV0ZXIuanM6Cih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5pbml0aWFsaXplKTog
VXBkYXRlIHN0eWxlcyB0byBzZXQgdGhlIGNhbnZhcyBiYXNlZCBvbiB0aGUKYm9keSBjbGFzcyBz
aXplLgood2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuZGV0ZXJtaW5lQ2FudmFzU2l6ZSk6IFJ1
biB2YXJpb3VzIG1lZGlhIHF1ZXJpZXMgYW5kIHNldCB0aGUgYm9keQpjbGFzcyBiYXNlZCBvbiB0
aGUgc2l6ZSBvZiB0aGUgZGV2aWNlLgoKKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBSZWZh
Y3RvciB0byBpbmNsdWRlIHRoZSBtYWluIENTUyBmaWxlLCBhbmQgcmVkbwp0aGUgbGF5b3V0IHNv
IHRoYXQgaXQgZG9lc24ndCByZWx5IG9uIGZsZXhib3guCiogQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzOgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9hbmltb21ldGVyLmpzOgoodXBkYXRlRGlzcGxheSk6IFNpbmNlIHZhcmlvdXMgcGFy
dHMgb2YgdGhlIHNjcmlwdCBhbHRlciB0aGUgYm9keSBjbGFzcywgd2UgY2FuJ3QKcmVwbGFjZSB0
aGUgY2xhc3NOYW1lIGRpcmVjdGx5LiBJbnN0ZWFkLCByZW1vdmUgYWxsIGRpc3BsYXktYmFzZWQg
dmFsdWVzIGFuZCB0aGVuIGFkZAp0aGUgb25lIHRoYXQgd2FzIHNlbGVjdGVkLgoqIEFuaW1vbWV0
ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qczoKKHVwZGF0ZUdyYXBoRGF0YSk6IFRv
IHNldCB0aGUgc2l6ZSBvZiB0aGUgZ3JhcGgsIHVzZSB3aW5kb3cuaW5uZXJIZWlnaHQuCiogQW5p
bW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6Cih3aW5kb3cuc2VjdGlvbnNN
YW5hZ2VyLnNob3dTZWN0aW9uKTogU2luY2UgdmFyaW91cyBwYXJ0cyBvZiB0aGUgc2NyaXB0IGFs
dGVyIHRoZSBib2R5CmNsYXNzLCB3ZSBjYW4ndCByZXBsYWNlIHRoZSBjbGFzc05hbWUgZGlyZWN0
bHkuIFJlbW92ZSBhbGwgb2YgdGhlIHNlY3Rpb24gY2xhc3NlcwppbmRpdmlkdWFsbHkgYW5kIHRo
ZW4gYWRkIHRoZSBvbmUgZGVzaXJlZC4KKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFn
ZS5jc3M6IFJlbW92ZSAtYXBwbGUtc3lzdGVtIGFzIGEgZm9udCB0byB1c2UgaW4gdGhlCnN0YWdl
LgotLS0KIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbCAgICAgICAg
IHwgMjM4ICsrKystLS0tLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwg
ICAgICAgICAgICAgfCAgMjQgKy0KIC4uLi9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0
ZXIuY3NzICAgICAgICAgIHwgNTQxICsrKysrKystLS0tLS0tLS0tLS0tLQogLi4uL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyAgICAgICAgICAgfCAgMTkgKy0KIC4uLi9Bbmlt
b21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMgICAgIHwgIDQ5ICstCiAuLi4v
QW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzICAgICB8ICAgMiArLQog
Li4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMgICAgICAgICAgICAgfCAgODcg
KysrKwogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcyAgICAg
fCAxMTkgKysrLS0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5q
cyAgICAgIHwgMTk5ICsrKysrKy0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xp
bmVzLnN2ZyAgICAgICAgICB8ICA0MCArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5l
ci90ZXN0cy5qcyAgICAgICAgICAgfCAgMTEgKy0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9z
dGF0aXN0aWNzLmpzICAgICAgICAgICAgIHwgIDg1ICsrLS0KIFBlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcyAgIHwgIDE0ICstCiAuLi4vQW5pbW9tZXRlci90
ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbCAgICAgICAgICAgICB8ICAgMSArCiAuLi4vQW5pbW9tZXRl
ci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ZvY3VzLmpzICAgICB8ICA0MyArLQogLi4uL3Rlc3Rz
L21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcyAgICAgICAgICAgfCAgIDYgKy0KIFBlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sIHwgIDIxICstCiAu
Li4vQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcyAgICAgICAgICAgICB8IDE0MSAr
KysrLS0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5jc3MgICAgICAgICAg
IHwgICAyICstCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDIyMiArKysrKysrKysKIDIwIGZpbGVzIGNoYW5nZWQsIDExMTQgaW5zZXJ0aW9ucygr
KSwgNzUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9kZXZlbG9wZXIuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9w
ZXIuaHRtbAppbmRleCBjZjM3ZWUwLi4zZWY2YmIzIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL2RldmVsb3Blci5odG1sCkBAIC0xLDE1ICsxLDE5IEBACiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGhlYWQ+Ci0gICAgPHRpdGxlPkFuaW1vbWV0ZXIgLSBkZXZlbG9wZXI8L3RpdGxl
PgogICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxhYmxlPW5vIj4KKworICAgIDx0
aXRsZT5Nb3Rpb25NYXJrIDEuMCAtIGRldmVsb3BlcjwvdGl0bGU+CisKKyAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmlt
b21ldGVyLmNzcyI+CisKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0cmluZ3MuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4K
IAotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcyIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWctcnVubmVyL3Rl
c3RzLmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2Ny
aXB0PgpAQCAtMTgsMTM0ICsyMiwxNDYgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci9kMy5taW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZGVidWctcnVubmVyL2dyYXBoLmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiA8L2hl
YWQ+Ci08Ym9keT4KKzxib2R5IGNsYXNzPSJzaG93aW5nLWludHJvIj4KICAgICA8bWFpbj4KLSAg
ICAgICAgPGhyPgogICAgICAgICA8c2VjdGlvbiBpZD0iaW50cm8iIGNsYXNzPSJzZWxlY3RlZCI+
Ci0gICAgICAgICAgICA8aDE+QW5pbW9tZXRlcjwvaDE+Ci0gICAgICAgICAgICA8ZGl2PgotICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+Ci0gICAgICAgICAgICAgICAgICAgIDxoMj5T
dWl0ZXM6PC9oMj4KLSAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0cmVlIj48L3VsPgot
ICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGlkPSJkcm9wLXRhcmdldCI+RHJvcCByZXN1
bHRzIGhlcmU8L3NwYW4+PC9kaXY+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAg
ICAgICAgPGRpdiBpZD0ib3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAgICAgIDxoMj5PcHRpb25z
OjwvaDI+Ci0gICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImJlbmNobWFyay1vcHRpb25z
Ij4KLSAgICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGVzdCBsZW5ndGg6IDxpbnB1dCB0eXBlPSJu
dW1iZXIiIGlkPSJ0ZXN0LWludGVydmFsIiB2YWx1ZT0iMjAiPiBzZWNvbmRzIGVhY2g8L2xhYmVs
PgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8aDM+RGlzcGxheTo8L2gzPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlu
cHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9InJhZGlvIiB2YWx1ZT0ibWluaW1hbCIgY2hlY2tlZD4g
TWluaW1hbDwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxh
YmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFsdWU9InByb2dyZXNzLWJh
ciIgY2hlY2tlZD4gUHJvZ3Jlc3MgYmFyPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAg
ICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkFkanVzdGluZyB0aGUgdGVzdCBj
b21wbGV4aXR5OjwvaDM+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlw
ZT0icmFkaW8iIHZhbHVlPSJmaXhlZCI+IEtlZXAgYXQgYSBmaXhlZCBjb21wbGV4aXR5PC9sYWJl
bD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5h
bWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0ic3RlcCI+IEtlZXAgYXQgYSBmaXhl
ZCBjb21wbGV4aXR5LCB0aGVuIG1ha2UgYSBiaWcgc3RlcDwvbGFiZWw+PC9saT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0
eXBlPSJyYWRpbyIgdmFsdWU9ImFkYXB0aXZlIj4gTWFpbnRhaW4gdGFyZ2V0IEZQUzwvbGFiZWw+
PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1l
PSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAiIGNoZWNrZWQ+IFJhbXA8L2xh
YmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQg
bmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJyYW1wMzAiPiBSYW1wIEAgMzBm
cHM8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAg
ICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8bGFiZWw+VGFyZ2V0IGZyYW1lIHJhdGU6IDxpbnB1dCB0eXBlPSJudW1iZXIi
IGlkPSJmcmFtZS1yYXRlIiB2YWx1ZT0iNTAiPiBGUFM8L2xhYmVsPgotICAgICAgICAgICAgICAg
ICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICA8aDM+S2FsbWFuIGZpbHRlciBlc3RpbWF0ZWQgZXJyb3I6PC9oMz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVs
PlByb2Nlc3MgZXJyb3IgKFEpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ia2FsbWFuLXByb2Nl
c3MtZXJyb3IiIHZhbHVlPSIxIj48L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGxpPjxsYWJlbD5NZWFzdXJlbWVudCBlcnJvciAoUik6IDxpbnB1dCB0eXBlPSJudW1i
ZXIiIGlkPSJrYWxtYW4tbWVhc3VyZW1lbnQtZXJyb3IiIHZhbHVlPSI0Ij48L2xhYmVsPjwvbGk+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICA8L2xp
PgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aDM+
VGltZSBtZWFzdXJlbWVudCBtZXRob2Q6PC9oMz4KKyAgICAgICAgICAgIDxoMT5Nb3Rpb25NYXJr
PC9oMT4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgorICAgICAgICAgICAgICAgIDxk
aXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8aDI+U3VpdGVzOjwvaDI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dWwg
Y2xhc3M9InRyZWUiPjwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGlk
PSJkcm9wLXRhcmdldCI+RHJvcCByZXN1bHRzIGhlcmU8L3NwYW4+PC9kaXY+CisgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJvcHRpb25zIj4K
KyAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PcHRpb25zOjwvaDI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8Zm9ybSBuYW1lPSJiZW5jaG1hcmstb3B0aW9ucyI+CiAgICAgICAgICAgICAg
ICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgbmFtZT0idGltZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJwZXJmb3Jt
YW5jZSIgY2hlY2tlZD4gPGNvZGU+cGVyZm9ybWFuY2Uubm93KCk8L2NvZGU+PC9sYWJlbD48L2xp
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9InRp
bWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0iZGF0ZSI+IDxjb2RlPkRhdGUubm93
KCk8L2NvZGU+PC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UZXN0IGxlbmd0aDogPGlucHV0IHR5cGU9
Im51bWJlciIgaWQ9InRlc3QtaW50ZXJ2YWwiIHZhbHVlPSIzMCI+IHNlY29uZHMgZWFjaDwvbGFi
ZWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5EaXNwbGF5OjwvaDM+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFs
dWU9Im1pbmltYWwiIGNoZWNrZWQ+IE1pbmltYWw8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9
InJhZGlvIiB2YWx1ZT0icHJvZ3Jlc3MtYmFyIj4gUHJvZ3Jlc3MgYmFyPC9sYWJlbD48L2xpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxoMz5BZGp1c3RpbmcgdGhlIHRlc3QgY29tcGxleGl0eTo8L2gzPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVl
PSJmaXhlZCI+IEtlZXAgYXQgYSBmaXhlZCBjb21wbGV4aXR5PC9sYWJlbD48L2xpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9s
bGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InN0ZXAiPiBLZWVwIGF0IGEgZml4ZWQgY29tcGxleGl0
eSwgdGhlbiBtYWtlIGEgYmlnIHN0ZXA8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJh
ZGlvIiB2YWx1ZT0iYWRhcHRpdmUiPiBNYWludGFpbiB0YXJnZXQgRlBTPC9sYWJlbD48L2xpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJj
b250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAiIGNoZWNrZWQ+IFJhbXA8L2xhYmVs
PjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0icmFtcDMwIj4gUmFtcCBAIDMw
ZnBzPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UYXJnZXQgZnJhbWUgcmF0ZTogPGlu
cHV0IHR5cGU9Im51bWJlciIgaWQ9ImZyYW1lLXJhdGUiIHZhbHVlPSI1MCI+IEZQUzwvbGFiZWw+
CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5LYWxtYW4gZmlsdGVyIGVzdGlt
YXRlZCBlcnJvcjo8L2gzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD5Qcm9jZXNzIGVycm9yIChRKTog
PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImthbG1hbi1wcm9jZXNzLWVycm9yIiB2YWx1ZT0iMSI+
PC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVs
Pk1lYXN1cmVtZW50IGVycm9yIChSKTogPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImthbG1hbi1t
ZWFzdXJlbWVudC1lcnJvciIgdmFsdWU9IjQiPjwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+
VGltZSBtZWFzdXJlbWVudCBtZXRob2Q6PC9oMz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9InRpbWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0icGVyZm9ybWFuY2Ui
IGNoZWNrZWQ+IDxjb2RlPnBlcmZvcm1hbmNlLm5vdygpPC9jb2RlPjwvbGFiZWw+PC9saT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0idGlt
ZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJkYXRlIj4gPGNvZGU+RGF0ZS5ub3co
KTwvY29kZT48L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4K
KyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICA8
L3VsPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3Vs
PgotICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgICAgICAgICAgICA8
L2Zvcm0+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICAgICAgICAgIDxwPkZvciBhY2N1cmF0ZSByZXN1bHRzLCBwbGVhc2UgdGFrZSB0
aGUgYnJvd3NlciB3aW5kb3cgZnVsbCBzY3JlZW4sIG9yIHJvdGF0ZSB0aGUgZGV2aWNlIHRvIGxh
bmRzY2FwZSBvcmllbnRhdGlvbi48L3A+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3Jp
ZW50YXRpb24tY2hlY2siPgorICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGlkZGVuIj5Q
bGVhc2Ugcm90YXRlIHRoZSBkZXZpY2UgdG8gb3JpZW50YXRpb24gYmVmb3JlIHN0YXJ0aW5nLjwv
cD4KKyAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0icnVuLWJlbmNobWFyayIgb25jbGlj
az0iYmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFyaygpIj5SdW4gYmVuY2htYXJrPC9i
dXR0b24+CiAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgICAgIDxwPkZvciBhY2N1cmF0ZSByZXN1bHRzLCBwbGVhc2UgdGFrZSB0aGUgYnJvd3NlciB3
aW5kb3cgZnVsbCBzY3JlZW4sIG9yIHJvdGF0ZSB0aGUgZGV2aWNlIHRvIGxhbmRzY2FwZSBvcmll
bnRhdGlvbi48L3A+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcmllbnRhdGlvbi1jaGVjayI+
Ci0gICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpZGRlbiI+UGxlYXNlIHJvdGF0ZSB0aGUgZGV2
aWNlIHRvIG9yaWVudGF0aW9uIGJlZm9yZSBzdGFydGluZy48L3A+Ci0gICAgICAgICAgICAgICAg
PGJ1dHRvbiBpZD0icnVuLWJlbmNobWFyayIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5z
dGFydEJlbmNobWFyaygpIj5SdW4gYmVuY2htYXJrPC9idXR0b24+CiAgICAgICAgICAgICA8L2Rp
dj4KICAgICAgICAgPC9zZWN0aW9uPgorCiAgICAgICAgIDxzZWN0aW9uIGlkPSJ0ZXN0LWNvbnRh
aW5lciI+CiAgICAgICAgICAgICA8ZGl2IGlkPSJydW5uaW5nLXRlc3QiIGNsYXNzPSJmcmFtZS1j
b250YWluZXIiPjwvZGl2PgogICAgICAgICAgICAgPGRpdiBpZD0icHJvZ3Jlc3MiPgogICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLWNvbXBsZXRlZCI+PC9kaXY+CiAgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgorCiAgICAgICAgIDxzZWN0aW9uIGlkPSJyZXN1
bHRzIj4KLSAgICAgICAgICAgIDxoMT5Bbmltb21ldGVyIHNjb3JlPC9oMT4KLSAgICAgICAgICAg
IDxwIGNsYXNzPSJzY29yZSIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zaG93RGVidWdJ
bmZvKCkiPjwvcD4KLSAgICAgICAgICAgIDxkaXYgaWQ9InJlc3VsdHMtdGFibGVzIj4KLSAgICAg
ICAgICAgICAgICA8ZGl2PgotICAgICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMt
c2NvcmUiPjwvdGFibGU+Ci0gICAgICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0icmVzdWx0cy1k
YXRhIj48L3RhYmxlPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm9keSI+CisgICAgICAgICAg
ICAgICAgPGgxPk1vdGlvbk1hcmsgc2NvcmU8L2gxPgorICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImRldGFpbCI+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzbWFsbCI+b24g
YSBzbWFsbCBzY3JlZW4gKHBob25lKTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4g
Y2xhc3M9Im1lZGl1bSI+b24gYSBtZWRpdW0gc2NyZWVuIChsYXB0b3AsIHRhYmxldCk8L3NwYW4+
CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYXJnZSI+b24gYSBsYXJnZSBzY3Jl
ZW4gKGRlc2t0b3ApPC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAg
ICAgIDx0YWJsZSBpZD0icmVzdWx0cy1oZWFkZXIiPjwvdGFibGU+CisgICAgICAgICAgICAgICAg
PHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dEZWJ1Z0lu
Zm8oKSI+PC9wPgorICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb25maWRlbmNlIj48L3A+Cisg
ICAgICAgICAgICAgICAgPGRpdiBpZD0icmVzdWx0cy10YWJsZXMiIGNsYXNzPSJ0YWJsZS1jb250
YWluZXIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICAg
ICAgPHRhYmxlIGlkPSJyZXN1bHRzLXNjb3JlIj48L3RhYmxlPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWRhdGEiPjwvdGFibGU+CisgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtaGVhZGVy
Ij48L3RhYmxlPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDxidXR0
b24gb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5yZXN0YXJ0QmVuY2htYXJrKCkiPlRlc3Qg
QWdhaW48L2J1dHRvbj4KKyAgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgICAg
J2onOiBTaG93IEpTT04gcmVzdWx0czxici8+CisgICAgICAgICAgICAgICAgICAgICdzJzogU2Vs
ZWN0IHZhcmlvdXMgcmVzdWx0cyBmb3IgY29weS9wYXN0ZSAodXNlIHJlcGVhdGVkbHkgdG8gY3lj
bGUpCisgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAg
ICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIucmVzdGFydEJlbmNobWFyaygp
Ij5UZXN0IEFnYWluPC9idXR0b24+Ci0gICAgICAgICAgICA8cD4KLSAgICAgICAgICAgICAgICAn
aic6IFNob3cgSlNPTiByZXN1bHRzPGJyLz4KLSAgICAgICAgICAgICAgICAncyc6IFNlbGVjdCB2
YXJpb3VzIHJlc3VsdHMgZm9yIGNvcHkvcGFzdGUgKHVzZSByZXBlYXRlZGx5IHRvIGN5Y2xlKQot
ICAgICAgICAgICAgPC9wPgogICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgIDxzZWN0aW9uIGlk
PSJ0ZXN0LWdyYXBoIj4KLSAgICAgICAgICAgIDxoZWFkZXI+Ci0gICAgICAgICAgICAgICAgPGJ1
dHRvbiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRzKCkiPiZsdDsgUmVz
dWx0czwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxoMT5HcmFwaDo8L2gxPgotICAgICAgICAg
ICAgPC9oZWFkZXI+Ci0gICAgICAgICAgICA8bmF2PgotICAgICAgICAgICAgICAgIDxmb3JtIG5h
bWU9ImdyYXBoLXR5cGUiPgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZ3JhcGgtdHlw
ZSIgdmFsdWU9InRpbWUiPiBUaW1lIGdyYXBoPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAg
ICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImdyYXBoLXR5cGUi
IHZhbHVlPSJjb21wbGV4aXR5IiBjaGVja2VkPiBDb21wbGV4aXR5IGdyYXBoPC9sYWJlbD48L2xp
PgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgIDwvZm9ybT4KLSAg
ICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJ0aW1lLWdyYXBoLW9wdGlvbnMiPgotICAgICAgICAg
ICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1
dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibWFya2VycyIgY2hlY2tlZD4gTWFya2VyczwvbGFiZWw+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+dGltZTogPHNwYW4gY2xhc3M9InRp
bWUiPjwvc3Bhbj48L3NwYW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFi
ZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJhdmVyYWdlcyIgY2hlY2tlZD4gQXZlcmFn
ZXM8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1
dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0eTwv
bGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbXBsZXhp
dHkiPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5w
dXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJhd0ZQUyIgY2hlY2tlZD4gUmF3IEZQUzwvbGFiZWw+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJhd0ZQUyI+PC9zcGFu
PjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJj
aGVja2JveCIgbmFtZT0iZmlsdGVyZWRGUFMiIGNoZWNrZWQ+IEZpbHRlcmVkIEZQUzwvbGFiZWw+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbHRlcmVkRlBTIj48
L3NwYW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5
cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9ucyIgY2hlY2tlZD4gUmVncmVzc2lvbnM8L2xh
YmVsPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgIDwvZm9ybT4K
LSAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJjb21wbGV4aXR5LWdyYXBoLW9wdGlvbnMiPgot
ICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNlcmllcyI+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ic2VyaWVzLXJh
dyIgY2hlY2tlZD4gU2VyaWVzIHJhdzwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJzZXJpZXMtYXZlcmFn
ZSI+IFNlcmllcyBhdmVyYWdlPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3Vs
PgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVncmVzc2lvbi10aW1lLXNjb3Jl
Ij4gQ29udHJvbGxlciBzY29yZTwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJib290c3RyYXAtc2NvcmUi
IGNoZWNrZWQ+IEJvb3RzdHJhcCBzY29yZSBhbmQgaGlzdG9ncmFtPC9sYWJlbD48L2xpPgotICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5h
bWU9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtcmF3IiBjaGVja2VkPiBSZWdyZXNz
aW9uLCBzZXJpZXMgcmF3PC9sYWJlbD48c3BhbiBpZD0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFn
Z3JlZ2F0ZS1yYXciPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1h
Z2dyZWdhdGUtYXZlcmFnZSI+IFJlZ3Jlc3Npb24sIHNlcmllcyBhdmVyYWdlPC9sYWJlbD48c3Bh
biBpZD0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIj48L3NwYW4+PC9s
aT4KLSAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICA8L2Zvcm0+Ci0g
ICAgICAgICAgICA8L25hdj4KLSAgICAgICAgICAgIDxwIGNsYXNzPSJzY29yZSI+PC9wPgotICAg
ICAgICAgICAgPHAgY2xhc3M9Im1lYW4iPjwvcD4KLSAgICAgICAgICAgIDxkaXYgaWQ9InRlc3Qt
Z3JhcGgtZGF0YSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KKyAgICAg
ICAgICAgICAgICA8aGVhZGVyPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9
ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMoKSI+Jmx0OyBSZXN1bHRzPC9idXR0b24+
CisgICAgICAgICAgICAgICAgICAgIDxoMT5HcmFwaDo8L2gxPgorICAgICAgICAgICAgICAgICAg
ICA8cCBjbGFzcz0ic2NvcmUiPjwvcD4KKyAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNv
bmZpZGVuY2UiPjwvcD4KKyAgICAgICAgICAgICAgICA8L2hlYWRlcj4KKyAgICAgICAgICAgICAg
ICA8bmF2PgorICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJncmFwaC10eXBlIj4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZ3JhcGgtdHlwZSIgdmFsdWU9InRp
bWUiPiBUaW1lIGdyYXBoPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJncmFwaC10eXBlIiB2YWx1ZT0i
Y29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0eSBncmFwaDwvbGFiZWw+PC9saT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAg
ICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT0idGltZS1ncmFwaC1vcHRpb25zIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibWFya2VycyIgY2hlY2tlZD4gTWFy
a2VyczwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnRpbWU6
IDxzcGFuIGNsYXNzPSJ0aW1lIj48L3NwYW4+PC9zcGFuPjwvbGk+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImF2ZXJh
Z2VzIiBjaGVja2VkPiBBdmVyYWdlczwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0
eSIgY2hlY2tlZD4gQ29tcGxleGl0eTwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJjb21wbGV4aXR5Ij48L3NwYW4+PC9saT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0i
cmF3RlBTIiBjaGVja2VkPiBSYXcgRlBTPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPHNwYW4gY2xhc3M9InJhd0ZQUyI+PC9zcGFuPjwvbGk+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZp
bHRlcmVkRlBTIiBjaGVja2VkPiBGaWx0ZXJlZCBGUFM8L2xhYmVsPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsdGVyZWRGUFMiPjwvc3Bhbj48L2xpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBuYW1lPSJyZWdyZXNzaW9ucyIgY2hlY2tlZD4gUmVncmVzc2lvbnM8L2xhYmVsPjwvbGk+
CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICA8L2Zv
cm0+CisgICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImNvbXBsZXhpdHktZ3JhcGgtb3B0
aW9ucyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNlcmllcyI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3gi
IG5hbWU9InNlcmllcy1yYXciIGNoZWNrZWQ+IFNlcmllcyByYXc8L2xhYmVsPjwvbGk+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3gi
IG5hbWU9InNlcmllcy1hdmVyYWdlIj4gU2VyaWVzIGF2ZXJhZ2U8L2xhYmVsPjwvbGk+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBuYW1lPSJyZWdyZXNzaW9uLXRpbWUtc2NvcmUiPiBDb250cm9sbGVyIHNjb3JlPC9sYWJl
bD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5
cGU9ImNoZWNrYm94IiBuYW1lPSJib290c3RyYXAtc2NvcmUiIGNoZWNrZWQ+IEJvb3RzdHJhcCBz
Y29yZSBhbmQgaGlzdG9ncmFtPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjb21wbGV4aXR5LXJl
Z3Jlc3Npb24tYWdncmVnYXRlLXJhdyIgY2hlY2tlZD4gUmVncmVzc2lvbiwgc2VyaWVzIHJhdzwv
bGFiZWw+PHNwYW4gaWQ9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtcmF3Ij48L3Nw
YW4+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVy
YWdlIj4gUmVncmVzc2lvbiwgc2VyaWVzIGF2ZXJhZ2U8L2xhYmVsPjxzcGFuIGlkPSJjb21wbGV4
aXR5LXJlZ3Jlc3Npb24tYWdncmVnYXRlLWF2ZXJhZ2UiPjwvc3Bhbj48L2xpPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgorICAgICAg
ICAgICAgICAgIDwvbmF2PgorICAgICAgICAgICAgICAgIDxkaXYgaWQ9InRlc3QtZ3JhcGgtZGF0
YSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgotICAgICAg
ICA8aHI+CiAgICAgPC9tYWluPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvaW5kZXguaHRtbAppbmRleCBmNjZmNjNkLi40NjYxZTBlIDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvaW5kZXguaHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CiAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgdXNlci1zY2FsYWJsZT1ubyI+CiAKLSAgICA8dGl0bGU+TW90aW9uIE1hcmsgMS4w
PC90aXRsZT4KKyAgICA8dGl0bGU+TW90aW9uTWFyayAxLjA8L3RpdGxlPgogCiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzIj4K
IApAQCAtMTIsNyArMTIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXh0ZW5zaW9u
cy5qcyIgZGVmZXI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdGF0aXN0
aWNzLmpzIiBkZWZlcj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVu
bmVyL3Rlc3RzLmpzIiBkZWZlcj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3J1bm5lci90ZXN0cy5qcyIgY2hhcnNldD0idXRmLTgiIGRlZmVyPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMiIGRlZmVyPjwvc2NyaXB0
PgogCiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5q
cyIgZGVmZXI+PC9zY3JpcHQ+CkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgIDxzZWN0aW9uIGlk
PSJpbnRybyIgY2xhc3M9InNlbGVjdGVkIj4KICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImxvZ28i
Pjx1c2UgeGxpbms6aHJlZj0icmVzb3VyY2VzL3J1bm5lci9sb2dvLnN2ZyNyb290Ij48L3N2Zz4K
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgotICAgICAgICAgICAgICAgIDxwPk1vdGlv
biBNYXJrIGlzIGEgZ3JhcGhpY3MgYmVuY2htYXJrIHRoYXQgbWVhc3VyZXMgYSBicm93c2Vy4oCZ
cyBjYXBhYmlsaXR5IHRvIGFuaW1hdGUgY29tcGxleCBzY2VuZXMgYXQgYSB0YXJnZXQgZnJhbWUg
cmF0ZS48L3A+CisgICAgICAgICAgICAgICAgPHA+TW90aW9uTWFyayBpcyBhIGdyYXBoaWNzIGJl
bmNobWFyayB0aGF0IG1lYXN1cmVzIGEgYnJvd3NlcuKAmXMgY2FwYWJpbGl0eSB0byBhbmltYXRl
IGNvbXBsZXggc2NlbmVzIGF0IGEgdGFyZ2V0IGZyYW1lIHJhdGUuPC9wPgogICAgICAgICAgICAg
ICAgIDxwPkZvciBhY2N1cmF0ZSByZXN1bHRzLCBwbGVhc2UgdGFrZSB5b3VyIGJyb3dzZXIgd2lu
ZG93IGZ1bGwgc2NyZWVuLCBvciByb3RhdGUgeW91ciBkZXZpY2UgdG8gbGFuZHNjYXBlIG9yaWVu
dGF0aW9uLjwvcD4KICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icG9ydHJhaXQtb3JpZW50YXRp
b24tY2hlY2siPjxiPlBsZWFzZSByb3RhdGUgeW91ciBkZXZpY2UuPC9iPjwvcD4KICAgICAgICAg
ICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5kc2NhcGUtb3JpZW50YXRpb24tY2hlY2siIG9uY2xp
Y2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc3RhcnRCZW5jaG1hcmsoKSI+UnVuIEJlbmNobWFyazwv
YnV0dG9uPgpAQCAtNDEsOCArNDEsMjIgQEAKICAgICAgICAgPHNlY3Rpb24gaWQ9InJlc3VsdHMi
PgogICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibG9nbyI+PHVzZSB4bGluazpocmVmPSJyZXNvdXJj
ZXMvcnVubmVyL2xvZ28uc3ZnI3Jvb3QiPjwvc3ZnPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Ym9keSI+Ci0gICAgICAgICAgICAgICAgPHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1h
cmtDb250cm9sbGVyLnNob3dEZWJ1Z0luZm8oKSI+PC9wPgotICAgICAgICAgICAgICAgIDx0YWJs
ZSBpZD0icmVzdWx0cy1oZWFkZXIiPjwvdGFibGU+PHRhYmxlIGlkPSJyZXN1bHRzLXNjb3JlIj48
L3RhYmxlPjxicj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZS1jb250YWluZXIi
PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzY29yZSIgb25jbGljaz0iYmVuY2ht
YXJrQ29udHJvbGxlci5zaG93RGVidWdJbmZvKCkiPjwvZGl2PgorICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJjb25maWRlbmNlIj48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iZGV0YWlsIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJz
bWFsbCI+b24gYSBzbWFsbCBzY3JlZW4gKHBob25lKTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJtZWRpdW0iPm9uIGEgbWVkaXVtIHNjcmVlbiAobGFwdG9wLCB0
YWJsZXQpPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imxhcmdl
Ij5vbiBhIGxhcmdlIHNjcmVlbiAoZGVza3RvcCk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InRhYmxlLWNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtc2NvcmUiPjwvdGFibGU+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtZGF0YSI+PC90YWJsZT4KKyAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0i
cmVzdWx0cy1oZWFkZXIiPjwvdGFibGU+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0QmVuY2ht
YXJrKCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8
L3NlY3Rpb24+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzCmluZGV4IDFkM2RkMzMu
LjNlYTI3ODYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzCkBAIC0xLDkzICsx
LDYxIEBACi0vKiBPdXRlciBoYXJuZXNzICovCi1odG1sLGJvZHkgewotICAgIGhlaWdodDogMTAw
JTsKLSAgICBtYXJnaW46IDBweDsKLSAgICBwYWRkaW5nOiAwcHg7Ci19Ci0KIGJvZHkgewotICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEsIDI0MSwgMjQxKTsKLSAgICBjb2xvcjogcmdiKDk2
LCA5NiwgOTYpOwotICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCAiSGVsdmV0aWNhIE5l
dWUiLCBIZWx2ZXRpY2EsIFZlcmRhbmEsIHNhbnMtc2VyaWY7Ci19Ci0KLW1haW4gewotICAgIHdp
ZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKLQotICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAg
YWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0g
ICAgZmxleC1mbG93OiBjb2x1bW47CisgICAgZm9udC1zaXplOiBpbml0aWFsOwogfQogCi1ociB7
Ci0gICAgZmxleDogMSAwIDIwcHg7Ci0gICAgd2lkdGg6IDFweDsKLSAgICBib3JkZXI6IDA7Ci0g
ICAgbWFyZ2luOiAwOwotfQorYm9keS5zaG93aW5nLWludHJvLAorYm9keS5zaG93aW5nLXJlc3Vs
dHMsCitib2R5LnNob3dpbmctdGVzdC1ncmFwaCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
KDk2LCA5NiwgOTYpOworICAgIGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7CisgICAgYmFja2dy
b3VuZC1yZXBlYXQ6IGluaXRpYWw7CisgICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsOworICAg
IGFuaW1hdGlvbjogaW5pdGlhbDsKKyAgICB3aWxsLWNoYW5nZTogaW5pdGlhbDsKIAotc2VjdGlv
biB7Ci0gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBk
aXNwbGF5OiBub25lOworICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7CiB9CiAKLXNlY3Rp
b24uc2VsZWN0ZWQgewotICAgIGRpc3BsYXk6IGluaXRpYWw7CitzZWN0aW9uIC5ib2R5IHsKKyAg
ICBtYXJnaW4tbGVmdDogMDsKKyAgICBtYXgtd2lkdGg6IGluaXRpYWw7CisgICAgdHJhbnNmb3Jt
OiBub25lOwogfQogCiBoMSB7CiAgICAgZm9udC1zaXplOiAzZW07CisgICAgbWFyZ2luOiAxLjVl
bSAwIC41ZW07CiAgICAgdGV4dC1hbGlnbjogY2VudGVyOwotICAgIGZvbnQtd2VpZ2h0OiA2MDA7
Ci0gICAgbWFyZ2luOiAxMHZoIDA7Ci0gICAgZmxleDogMCAxIDFlbTsKLX0KLQotLmhpZGRlbiB7
Ci0gICAgZGlzcGxheTogbm9uZTsKIH0KIAogYnV0dG9uIHsKLSAgICBmbGV4OiAwIDAgYXV0bzsK
KyAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKKyAgICBtaW4td2lkdGg6IGluaXRpYWw7
CisgICAgdHJhbnNpdGlvbjogbm9uZTsKKyAgICBhbmltYXRpb246IG5vbmU7CisgICAgd2lsbC1j
aGFuZ2U6IGluaXRpYWw7CisKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBmb250LXNpemU6IDEu
NWVtOwotICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig5NiwgOTYsIDk2KTsKLSAgICBjb2xvcjog
cmdiKDk2LCA5NiwgOTYpOworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYigyMzUsIDIzNSwgMjM1
KTsKKyAgICBjb2xvcjogcmdiKDIzNSwgMjM1LCAyMzUpOwogICAgIGJhY2tncm91bmQ6IHRyYW5z
cGFyZW50OwogICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgcGFkZGluZzogLjVlbSAyZW07
CiB9CiAKIGJ1dHRvbjpob3ZlciB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAw
LCAuMSk7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMSk7CiAg
ICAgY3Vyc29yOiBwb2ludGVyOwogfQogCiBidXR0b246YWN0aXZlIHsKICAgICBjb2xvcjogaW5o
ZXJpdDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yKTsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTsKIH0KIAogYnV0dG9uOmRpc2Fi
bGVkIHsKLSAgICBib3JkZXItY29sb3I6IHJnYmEoOTYsIDk2LCA5NiwgLjUpOwotICAgIGNvbG9y
OiByZ2JhKDk2LCA5NiwgOTYsIC41KTsKLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1kZXZp
Y2UtaGVpZ2h0OiAxMDI0cHgpLAotICAgIHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDEw
MjRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgc2VjdGlvbiB7Ci0gICAg
ICAgIHBhZGRpbmc6IDAgMjBweDsKLSAgICB9Ci0KLSAgICBzZWN0aW9uLnNlbGVjdGVkIHsKLSAg
ICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICAg
ICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwotICAgICAgICBmbGV4LWZsb3c6IGNvbHVt
bjsKLSAgICB9CisgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzNSwgMjM1LCAyMzUsIC41KTsKKyAg
ICBjb2xvcjogcmdiYSgyMzUsIDIzNSwgMjM1LCAuNSk7CiB9CiAKIEBtZWRpYSBzY3JlZW4gYW5k
IChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCkBAIC05NiwyODAgKzY0LDE0IEBAIGJ1dHRvbjpk
aXNhYmxlZCB7CiAgICAgICAgIGZvbnQtc2l6ZTogMi41ZW07CiAgICAgfQogCi0gICAgaHIgewot
ICAgICAgICBmbGV4OiAwIDAgMDsKLSAgICB9Ci0KICAgICBzZWN0aW9uIHsKICAgICAgICAgYm94
LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgIGhlaWdo
dDogMTAwJTsKLSAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgICAgICAgcGFkZGluZzog
MCA1cHg7CiAgICAgfQogfQogCi0vKiBJbnRybyBzZWN0aW9uICovCi0jaW50cm8uc2VsZWN0ZWQg
ewotICAgIGZsZXg6IDEgMCBhdXRvOwotfQotCi0jaW50cm8gPiBwIHsKLSAgICBmbGV4OiAwIDEg
YXV0bzsKLSAgICBwYWRkaW5nOiAuNWVtIDA7Ci0gICAgbWFyZ2luOiAwOwotICAgIGZvbnQtc2l6
ZTogMmVtOwotfQotCi0jaW50cm8gLm9yaWVudGF0aW9uLWNoZWNrIHsKLSAgICBwYWRkaW5nOiAx
MHZoIDA7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCi0jaW50cm8gLm9yaWVudGF0aW9u
LWNoZWNrIHAgewotICAgIGZvbnQtc2l6ZTogMWVtOwotICAgIGNvbG9yOiBoc2woMTEsIDcyJSwg
NTAlKTsKLSAgICBtYXJnaW4tYm90dG9tOiAxZW07Ci0gICAgLWFwcGxlLXRyYWlsaW5nLXdvcmQ6
IC1hcHBsZS1wYXJ0aWFsbHktYmFsYW5jZWQ7Ci19Ci0KLSNpbnRybyAub3JpZW50YXRpb24tY2hl
Y2sgYnV0dG9uIHsKLSAgICBtYXJnaW46IDAgYXV0bzsKLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQg
KG1pbi1kZXZpY2UtaGVpZ2h0OiAxMDI0cHgpLAotICAgIHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Ut
d2lkdGg6IDEwMjRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI2ludHJv
IHAgewotICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwotICAgICAgICBtYXJnaW46IDA7Ci0gICAg
fQotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLAotICAg
IHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjog
bGFuZHNjYXBlKSB7Ci0gICAgI2ludHJvLnNlbGVjdGVkIHsKLSAgICAgICAgZGlzcGxheTogZmxl
eDsKLSAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKLSAgICAgICAganVzdGlmeS1jb250ZW50
OiBmbGV4LXN0YXJ0OwotICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjsKLSAgICB9Ci0KLSAgICAj
aW50cm8gcCB7Ci0gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKLSAgICAgICAgcGFkZGluZy1y
aWdodDogMjBweDsKLSAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKLSAgICB9Ci19Ci0KLS8qIFJ1
bm5pbmcgdGVzdCBzZWN0aW9uICovCi0jdGVzdC1jb250YWluZXIuc2VsZWN0ZWQgewotICAgIGRp
c3BsYXk6IGZsZXg7Ci0KLSAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgIGp1c3RpZnktY29u
dGVudDogY2VudGVyOwotfQotCi0uZnJhbWUtY29udGFpbmVyID4gaWZyYW1lIHsKLSAgICB3aWR0
aDogMTIwMHB4OwotICAgIGhlaWdodDogNjAwcHg7Ci0gICAgYm9yZGVyOiAwOwotICAgIG1hcmdp
bjogMCBhdXRvOwotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0
cHgpLAotICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmll
bnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI3Rlc3QtY29udGFpbmVyIHsKLSAgICAgICAgcGFk
ZGluZzogMDsKLSAgICB9Ci0KLSAgICAuZnJhbWUtY29udGFpbmVyIHsKLSAgICAgICAgd2lkdGg6
IDEwMCU7Ci0gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMXB4KTsKLSAgICB9Ci0KLSAgICAu
ZnJhbWUtY29udGFpbmVyID4gaWZyYW1lIHsKLSAgICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgICAg
IGhlaWdodDogMTAwJTsKLSAgICB9Ci19Ci0KLUBtZWRpYSAobWluLWRldmljZS1oZWlnaHQ6IDc2
OHB4KSBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiAxMDI0cHgpIHsKLSAgICAuZnJhbWUtY29udGFp
bmVyID4gaWZyYW1lIHsKLSAgICAgICAgd2lkdGg6IDkwMHB4OwotICAgICAgICBoZWlnaHQ6IDYw
MHB4OwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDEw
MjRweCkgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTM2NnB4KSB7Ci0gICAgLmZyYW1lLWNvbnRh
aW5lciA+IGlmcmFtZSB7Ci0gICAgICAgIHdpZHRoOiAxMjAwcHg7Ci0gICAgICAgIGhlaWdodDog
ODAwcHg7Ci0gICAgfQotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxODAwcHgp
IHsKLSAgICAuZnJhbWUtY29udGFpbmVyID4gaWZyYW1lIHsKLSAgICAgICAgd2lkdGg6IDE2MDBw
eDsKLSAgICAgICAgaGVpZ2h0OiA4MDBweDsKLSAgICB9Ci19Ci0KLS8qIFJlc3VsdHMgc2VjdGlv
biAqLwotI3Jlc3VsdHMgewotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLX0KLQotI3Jlc3VsdHMu
c2VsZWN0ZWQgewotICAgIGZsZXg6IDEgMCBhdXRvOwotfQotCi0uc2NvcmUgewotICAgIGZvbnQt
c2l6ZTogNWVtOwotICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgIG1hcmdpbjogMDsKLX0KLQot
I3Jlc3VsdHMtdGFibGVzIHsKLSAgICBkaXJlY3Rpb246IHJ0bDsKLQotICAgIGRpc3BsYXk6IGZs
ZXg7Ci0KLSAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgIGp1c3RpZnktY29udGVudDogY2Vu
dGVyOwotCi0gICAgbWFyZ2luOiAzZW0gMDsKLX0KLQotI3Jlc3VsdHMgdGFibGUgewotICAgIGRp
cmVjdGlvbjogbHRyOwotICAgIGJvcmRlci1zcGFjaW5nOiAwOwotfQotCi0jcmVzdWx0cyB0aCB7
Ci0gICAgcGFkZGluZzogLjVlbSAwOwotfQotCi0jcmVzdWx0cyB0ciB0ZCB7Ci0gICAgcGFkZGlu
ZzogLjI1ZW0gMDsKLX0KLQotI3Jlc3VsdHMtaGVhZGVyIHRkLCAjcmVzdWx0cy1oZWFkZXIgdGgg
ewotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci19Ci0jcmVzdWx0cy1oZWFkZXIgdHIgdGQgewotICAg
IHBhZGRpbmctcmlnaHQ6IDFlbTsKLX0KLSNyZXN1bHRzLXNjb3JlIHRkLCAjcmVzdWx0cy1zY29y
ZSB0aCB7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci19Ci0jcmVzdWx0cyBmb290ZXIgewotICAg
IHBhZGRpbmctYm90dG9tOiAxMHZoOwotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS13aWR0aDogNDE0cHgpLAotICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRw
eCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI3Jlc3VsdHMuc2VsZWN0ZWQg
ewotICAgICAgICBwYWRkaW5nOiAwIDIwcHg7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAg
ICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1z
dGFydDsKLSAgICAgICAgZmxleC1mbG93OiBjb2x1bW47Ci0gICAgfQotCi0gICAgLnNjb3JlIHsK
LSAgICAgICAgZm9udC1zaXplOiAzZW07Ci0gICAgfQotfQotCi0jb3ZlcmxheSB7Ci0gICAgcG9z
aXRpb246IGZpeGVkOwotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKLSAgICB0
b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOwotICAg
IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMTAsIC44KTsKLX0KLQotQHN1cHBvcnRzICgtd2Via2l0
LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSkgewotICAgICNvdmVybGF5IHsKLSAgICAgICAg
YmFja2dyb3VuZDogcmdiYSgwLCAwLCAxMCwgLjQpOwotICAgICAgICAtd2Via2l0LWJhY2tkcm9w
LWZpbHRlcjogYmx1cigxMHB4KTsKLSAgICB9Ci19Ci0KLSNvdmVybGF5ID4gZGl2IHsKLSAgICB3
aWR0aDogNTAwcHg7Ci0gICAgaGVpZ2h0OiA1MDBweDsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgbWFyZ2luLXRvcDogLTI1MHB4OwotICAgIG1hcmdpbi1sZWZ0OiAtMjUwcHg7Ci0gICAg
dG9wOiA1MCU7Ci0gICAgbGVmdDogNTAlOwotICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAganVzdGlm
eS1jb250ZW50OiBmbGV4LXN0YXJ0OwotICAgIGZsZXgtZmxvdzogY29sdW1uOwotfQotCi0jb3Zl
cmxheSA+IGRpdiBkaXYgewotICAgIGZsZXg6IDEgMSBhdXRvOwotICAgIG92ZXJmbG93OiBzY3Jv
bGw7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI0MSwgMjQxLCAyNDEpOwotICAgIHBhZGRp
bmc6IDJweDsKLSAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotfQotCi0jb3ZlcmxheSBidXR0
b24gewotICAgIG1hcmdpbjogMWVtIDVlbTsKLSAgICBib3JkZXItY29sb3I6IHJnYigyNDEsIDI0
MSwgMjQxKTsKLSAgICBjb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOwotfQotCi0jb3ZlcmxheSBi
dXR0b246aG92ZXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg
LjEpOwotfQotCi0jb3ZlcmxheSBidXR0b246YWN0aXZlIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTsKLX0KLQotLyogRGVidWcgc3BlY2lmaWMgKi8KLWJv
ZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5NiwgOTYsIDk2KTsKLSAgICBjb2xvcjog
cmdiKDIzNSwgMjM1LCAyMzUpOwotfQotCi1oMSB7Ci0gICAgbWFyZ2luOiA1dmggMDsKLX0KLQot
YnV0dG9uIHsKLSAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMjM1LCAyMzUsIDIzNSk7Ci0gICAg
Y29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKLX0KLQotYnV0dG9uOmRpc2FibGVkIHsKLSAgICBi
b3JkZXItY29sb3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgLjUpOwotICAgIGNvbG9yOiByZ2JhKDIz
NSwgMjM1LCAyMzUsIC41KTsKLX0KLQotYnV0dG9uOmhvdmVyIHsKLSAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xKTsKLSAgICBjdXJzb3I6IHBvaW50ZXI7Ci19Ci0K
LWJ1dHRvbjphY3RpdmUgewotICAgIGNvbG9yOiBpbmhlcml0OwotICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpOwotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWlu
LXdpZHRoOiAxODAwcHgpIHsKLSAgICBzZWN0aW9uIHsKLSAgICAgICAgd2lkdGg6IDE2MDBweDsK
LSAgICAgICAgaGVpZ2h0OiA4MDBweDsKLSAgICB9Ci19Ci0KIC8qIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmVlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAg
LTQ2MCwyMCArMTYyLDU0IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogLyogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKi8KIAogI2ludHJvIHsKLSAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIGp1c3Rp
ZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CisgICAg
cGFkZGluZzogMDsKKyAgICBvcGFjaXR5OiBpbml0aWFsOworICAgIHRyYW5zaXRpb246IG5vbmU7
Cit9CisKKyNpbnRybyAuYm9keSA+IHAgeworICAgIHBhZGRpbmc6IDFlbSAwOworICAgIG1hcmdp
bjogMCBhdXRvOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworI2ludHJvIC5vcmllbnRh
dGlvbi1jaGVjayB7CisgICAgcGFkZGluZzogMTB2aCAwOworICAgIHRleHQtYWxpZ246IGNlbnRl
cjsKK30KKworI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayBwIHsKKyAgICBjb2xvcjogaHNsKDEx
LCA3MiUsIDUwJSk7CisgICAgbWFyZ2luLWJvdHRvbTogMWVtOworICAgIC1hcHBsZS10cmFpbGlu
Zy13b3JkOiAtYXBwbGUtcGFydGlhbGx5LWJhbGFuY2VkOworfQogCi0gICAgbWluLWhlaWdodDog
NjAwcHg7Ci0gICAgaGVpZ2h0OiBhdXRvOworI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayBidXR0
b24geworICAgIG1hcmdpbjogMCBhdXRvOworfQorCisKK0BtZWRpYSBzY3JlZW4gYW5kIChtYXgt
ZGV2aWNlLXdpZHRoOiA0MTRweCksCisgICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6
IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKKyAgICAjaW50cm8uc2VsZWN0
ZWQgeworICAgICAgICBkaXNwbGF5OiBmbGV4OworICAgICAgICBhbGlnbi1pdGVtczogY2VudGVy
OworICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CisgICAgICAgIGZsZXgtZmxv
dzogY29sdW1uOworICAgIH0KKworICAgICNpbnRybyBwIHsKKyAgICAgICAgcGFkZGluZy1sZWZ0
OiAyMHB4OworICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OworICAgICAgICBmb250LXNpemU6
IDEuNWVtOworICAgIH0KIH0KIAogI2ludHJvIGgyIHsKLSAgICBtYXJnaW4tdG9wOiAwOwogICAg
IGZvbnQtc2l6ZTogMS4yZW07CiB9CiAKLSNpbnRybyA+IGRpdjpmaXJzdC1vZi10eXBlIHsKKyNp
bnRybyAuYm9keSA+IGRpdjpmaXJzdC1vZi10eXBlIHsKICAgICB3aWR0aDogMTAwJTsKICAgICBt
YXJnaW46IDJlbSAwIDA7CiAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKQEAgLTU2NywxOSArMzAz
LDkgQEAgbGFiZWwudHJlZS1sYWJlbCB7CiAgICAgY29sb3I6IGhzbCgxMSwgMTAwJSwgNjYlKTsK
IH0KIAotQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDE4MDBweCkgewotICAg
ICNpbnRybyB7Ci0gICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4OwotICAgIH0KLX0KLQogQG1lZGlh
IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKICAgICBzY3JlZW4gYW5kICht
YXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewot
ICAgICNpbnRybyB7Ci0gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7Ci0gICAgfQotCi0gICAgI2lu
dHJvID4gZGl2OmZpcnN0LW9mLXR5cGUgeworICAgICNpbnRybyAuYm9keSA+IGRpdjpmaXJzdC1v
Zi10eXBlIHsKICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICB9CiAKQEAgLTU5
NSwxMCArMzIxLDYgQEAgbGFiZWwudHJlZS1sYWJlbCB7CiAvKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJ1bm5pbmcgU2VjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI3Rlc3QtY29udGFpbmVyIHsKLSAgICBwb3Np
dGlvbjogcmVsYXRpdmU7Ci19Ci0KICNydW5uaW5nLXRlc3QgewogICAgIGRpc3BsYXk6IGZsZXg7
CiAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKQEAgLTYzMiw2ICszNTQsMTAgQEAgbGFiZWwudHJl
ZS1sYWJlbCB7CiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdHMgU2VjdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Ki8KIAorI3Jlc3VsdHMgeworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKwogI3Jlc3VsdHMg
aDEsICN0ZXN0LWdyYXBoIGgxIHsKICAgICBmb250LXNpemU6IDJlbTsKIH0KQEAgLTY1MCwxNSAr
Mzc2LDExNyBAQCBsYWJlbC50cmVlLWxhYmVsIHsKICAgICBjb2xvcjogaW5oZXJpdDsKIH0KIAot
LnNjb3JlIHsKKyNyZXN1bHRzIC5zY29yZSwKKyN0ZXN0LWdyYXBoIC5zY29yZSB7CiAgICAgZm9u
dC1zaXplOiAzZW07CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgbWFyZ2luOiAwOwogfQog
Ci0ubWVhbiB7CisjcmVzdWx0cyAuY29uZmlkZW5jZSwKKyN0ZXN0LWdyYXBoIC5jb25maWRlbmNl
IHsKICAgICBtYXJnaW4tdG9wOiAwOwogICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICAgICBmb250
LXNpemU6IDEuNWVtOwogICAgIGZvbnQtd2VpZ2h0OiA0MDA7CisgICAgdGV4dC1pbmRlbnQ6IGlu
aGVyaXQ7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9CisKKyNyZXN1bHRzLXRhYmxlcyB7CisgICAg
ZGlyZWN0aW9uOiBydGw7CisKKyAgICBkaXNwbGF5OiBmbGV4OworCisgICAgYWxpZ24taXRlbXM6
IGNlbnRlcjsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKKworICAgIG1hcmdpbjogM2Vt
IDA7Cit9CisKKyNyZXN1bHRzIC50YWJsZS1jb250YWluZXIgPiBkaXYgeworICAgIG1hcmdpbi1s
ZWZ0OiAwOworfQorCisjcmVzdWx0cyAjcmVzdWx0cy1zY29yZSB7CisgICAgZmxvYXQ6IGluaXRp
YWw7Cit9CisKKyNyZXN1bHRzICNyZXN1bHRzLWhlYWRlciB7CisgICAgd2lkdGg6IGluaXRpYWw7
CisgICAgcG9zaXRpb246IGluaXRpYWw7Cit9CisKKyNyZXN1bHRzIHRhYmxlIHsKKyAgICBkaXJl
Y3Rpb246IGx0cjsKKyAgICBtaW4td2lkdGg6IGluaXRpYWw7Cit9CisKKyNyZXN1bHRzIHRhYmxl
IHRkLnN1aXRlcy1zZXBhcmF0b3IgeworICAgIHBhZGRpbmc6IC41ZW0gMDsKK30KKworI3Jlc3Vs
dHMgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFu
c3BhcmVudDsKK30KKworI3Jlc3VsdHMgdGggeworICAgIHBhZGRpbmc6IC41ZW0gMDsKK30KKwor
I3Jlc3VsdHMgdHIgdGQgeworICAgIHBhZGRpbmc6IC4yNWVtIDA7Cit9CisKKyNyZXN1bHRzLWhl
YWRlciB0ZCwgI3Jlc3VsdHMtaGVhZGVyIHRoIHsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworfQor
I3Jlc3VsdHMtaGVhZGVyIHRyIHRkIHsKKyAgICBwYWRkaW5nLXJpZ2h0OiAxZW07Cit9CisjcmVz
dWx0cy1zY29yZSB0ZCwgI3Jlc3VsdHMtc2NvcmUgdGggeworICAgIHRleHQtYWxpZ246IHJpZ2h0
OworfQorI3Jlc3VsdHMgLmJvZHkgPiBidXR0b24geworICAgIG1hcmdpbjogMS41ZW0gYXV0byAu
NWVtOworfQorI3Jlc3VsdHMgZm9vdGVyIHsKKyAgICBwYWRkaW5nLWJvdHRvbTogMTB2aDsKK30K
KworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKKyAgICBzY3Jl
ZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRz
Y2FwZSkgeworICAgICNyZXN1bHRzLnNlbGVjdGVkIHsKKyAgICAgICAgcGFkZGluZzogMCAyMHB4
OworICAgIH0KK30KKworI292ZXJsYXkgeworICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMTAs
IC44KTsKK30KKworQHN1cHBvcnRzICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4
KSkgeworICAgICNvdmVybGF5IHsKKyAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAxMCwg
LjQpOworICAgIH0KK30KKworI292ZXJsYXkgPiBkaXYgZGl2IHsKKyAgICBib3JkZXI6IDFweCBz
b2xpZCByZ2IoMjQxLCAyNDEsIDI0MSk7Cit9CisKKyNvdmVybGF5IGJ1dHRvbiB7CisgICAgbWFy
Z2luOiAyZW0gYXV0bzsKKyAgICBib3JkZXItY29sb3I6IHJnYigyNDEsIDI0MSwgMjQxKTsKKyAg
ICBjb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOworfQorCisjb3ZlcmxheSBidXR0b246aG92ZXIg
eworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjEpOworfQorCisj
b3ZlcmxheSBidXR0b246YWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwg
MjU1LCAyNTUsIC4yKTsKIH0KIAogI3Jlc3VsdHMtZGF0YSAuYXZlcmFnZSB7CkBAIC03MTEsMjIg
KzUzOSwyMCBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIAogI3Rlc3QtZ3JhcGggaGVhZGVyIHsKICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgd2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjpj
ZW50ZXI7CiB9CiAKICN0ZXN0LWdyYXBoIGhlYWRlciBidXR0b24gewogICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IDEuNWVtOworICAgIHRvcDogMDsKICAgICBsZWZ0OiAwOwogICAg
IGJvcmRlci13aWR0aDogMXB4OwogICAgIGZvbnQtc2l6ZTogMWVtOwogICAgIHBhZGRpbmc6IC41
ZW0gMWVtOwogfQogCi0jdGVzdC1ncmFwaC1kYXRhIHsKLSAgICBmbGV4OiAxIDEgYXV0bzsKLSAg
ICBhbGlnbi1zZWxmOiBzdHJldGNoOwotICAgIHotaW5kZXg6IDE7CisjdGVzdC1ncmFwaCAuc2Nv
cmUsICN0ZXN0LWdyYXBoIC5jb25maWRlbmNlIHsKKyAgICBtYXJnaW46IDA7CiB9CiAKICN0ZXN0
LWdyYXBoIG5hdiB7CkBAIC03NjAsNiArNTg2LDcgQEAgbGFiZWwudHJlZS1sYWJlbCB7CiAvKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjdGVzdC1ncmFwaC1kYXRhIHsKKyAgICB6LWluZGV4OiAx
OwogICAgIGZvbnQ6IDEwcHggc2Fucy1zZXJpZjsKICAgICBjb2xvcjogcmdiKDIzNSwgMjM1LCAy
MzUpOwogfQpAQCAtODk4LDcgKzcyNSw3IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogfQogCiAjY29t
cGxleGl0eS1ncmFwaCAucmF3LnNlcmllcyBsaW5lIHsKLSAgICBzdHJva2U6IGhzbCgzMCwgOTYl
LCA1NiUpOworICAgIHN0cm9rZTogaHNsYSgzMCwgOTYlLCA1NiUsIC4zKTsKICAgICBzdHJva2Ut
d2lkdGg6IDFweDsKIH0KIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMKaW5kZXggNTVk
MWE5OS4uMGZiM2I5MSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCkBAIC05Miw5
ICs5Miw4IEBAIERldmVsb3BlclJlc3VsdHNUYWJsZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFz
cyhSZXN1bHRzVGFibGUsCiAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICJudW1i
ZXIiKQogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS50b0ZpeGVkKDIpOwogICAgICAg
ICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gZGF0YTsKLSAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB0ZC50ZXh0Q29udGVudCA9IGhlYWRl
ci50ZXh0KHRlc3RSZXN1bHQsIHRlc3ROYW1lKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfSwg
dGhpcyk7CiAgICAgfQogfSk7CkBAIC0yMTMsNyArMjEyLDEwIEBAIHdpbmRvdy5vcHRpb25zTWFu
YWdlciA9CiAKICAgICB1cGRhdGVEaXNwbGF5OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBk
b2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9ICJkaXNwbGF5LSIgKyBvcHRpb25zTWFuYWdlci52YWx1
ZUZvck9wdGlvbigiZGlzcGxheSIpOworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5y
ZW1vdmUoImRpc3BsYXktbWluaW1hbCIpOworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlz
dC5yZW1vdmUoImRpc3BsYXktcHJvZ3Jlc3MtYmFyIik7CisKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5jbGFzc0xpc3QuYWRkKCJkaXNwbGF5LSIgKyBvcHRpb25zTWFuYWdlci52YWx1ZUZvck9wdGlv
bigiZGlzcGxheSIpKTsKICAgICB9CiB9OwogCkBAIC01MDUsNiArNTA3LDcgQEAgVXRpbGl0aWVz
LmV4dGVuZE9iamVjdCh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciwgewogICAgICAgICBpZiAo
YmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFya0ltbWVkaWF0ZWx5SWZFbmNvZGVkKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgYmVuY2htYXJrQ29udHJvbGxlci5kZXRl
cm1pbmVDYW52YXNTaXplKCk7CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuYWRkT3JpZW50
YXRpb25MaXN0ZW5lcklmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHN1aXRlc01hbmFnZXIuY3JlYXRl
RWxlbWVudHMoKTsKICAgICAgICAgc3VpdGVzTWFuYWdlci51cGRhdGVVSUZyb21Mb2NhbFN0b3Jh
Z2UoKTsKQEAgLTYwNiw3ICs2MDksMTUgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cu
YmVuY2htYXJrQ29udHJvbGxlciwgewogICAgICAgICAgICAgSGVhZGVycy5kZXRhaWxzWzRdLmRp
c2FibGVkID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRT
ZWN0aW9uU2NvcmUoInJlc3VsdHMiLCBkYXNoYm9hcmQuc2NvcmUudG9GaXhlZCgyKSk7CisgICAg
ICAgIGlmIChkYXNoYm9hcmQub3B0aW9uc1tTdHJpbmdzLmpzb24uY29uZmlndXJhdGlvbl0pIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgic21hbGwiLCAibWVk
aXVtIiwgImxhcmdlIik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQo
ZGFzaGJvYXJkLm9wdGlvbnNbU3RyaW5ncy5qc29uLmNvbmZpZ3VyYXRpb25dKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBzY29yZSA9IGRhc2hib2FyZC5zY29yZTsKKyAgICAgICAgdmFyIGNv
bmZpZGVuY2UgPSAoKGRhc2hib2FyZC5zY29yZUxvd2VyQm91bmQgLyBzY29yZSAtIDEpICogMTAw
KS50b0ZpeGVkKDIpICsKKyAgICAgICAgICAgICIlIC8gKyIgKyAoKGRhc2hib2FyZC5zY29yZVVw
cGVyQm91bmQgLyBzY29yZSAtIDEpICogMTAwKS50b0ZpeGVkKDIpICsgIiUiOworICAgICAgICBz
ZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3JlKCJyZXN1bHRzIiwgc2NvcmUudG9GaXhlZCgy
KSwgY29uZmlkZW5jZSk7CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJy
ZXN1bHRzLWhlYWRlciIsIEhlYWRlcnMudGVzdE5hbWUsIGRhc2hib2FyZCk7CiAgICAgICAgIHNl
Y3Rpb25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJyZXN1bHRzLXNjb3JlIiwgSGVhZGVycy5zY29y
ZSwgZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJl
c3VsdHMtZGF0YSIsIEhlYWRlcnMuZGV0YWlscywgZGFzaGJvYXJkKTsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpz
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3Jh
cGguanMKaW5kZXggNzZhMGE5OC4uNDgwMzkzNiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMKQEAg
LTEsMjggKzEsMzAgQEAKIFV0aWxpdGllcy5leHRlbmRPYmplY3Qod2luZG93LmJlbmNobWFya0Nv
bnRyb2xsZXIsIHsKLSAgICBsYXlvdXRDb3VudGVyOiAwLAotCiAgICAgdXBkYXRlR3JhcGhEYXRh
OiBmdW5jdGlvbih0ZXN0UmVzdWx0LCB0ZXN0RGF0YSwgb3B0aW9ucykKICAgICB7CiAgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtZ3JhcGgtZGF0YSIp
OwogICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9ICIiOwogICAgICAgICBlbGVtZW50Ll90ZXN0
UmVzdWx0ID0gdGVzdFJlc3VsdDsKLSAgICAgICAgZWxlbWVudC5fdGVzdERhdGEgPSB0ZXN0RGF0
YTsKICAgICAgICAgZWxlbWVudC5fb3B0aW9ucyA9IG9wdGlvbnM7Ci0gICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImhyIikuc3R5bGUud2lkdGggPSB0aGlzLmxheW91dENvdW50ZXIrKyAr
ICJweCI7CiAKICAgICAgICAgdmFyIG1hcmdpbnMgPSBuZXcgSW5zZXRzKDMwLCAzMCwgMzAsIDQw
KTsKLSAgICAgICAgdmFyIHNpemUgPSBQb2ludC5lbGVtZW50Q2xpZW50U2l6ZShlbGVtZW50KS5z
dWJ0cmFjdChtYXJnaW5zLnNpemUpOwotCi0gICAgICAgIHRoaXMuY3JlYXRlVGltZUdyYXBoKHRl
c3RSZXN1bHQsIHRlc3REYXRhW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29u
dHJvbGxlcl0sIHRlc3REYXRhW1N0cmluZ3MuanNvbi5tYXJrc10sIHRlc3REYXRhW1N0cmluZ3Mu
anNvbi5jb250cm9sbGVyXSwgb3B0aW9ucywgbWFyZ2lucywgc2l6ZSk7CisgICAgICAgIHZhciBz
aXplID0gUG9pbnQuZWxlbWVudENsaWVudFNpemUoZWxlbWVudCk7CisgICAgICAgIHNpemUueSA9
IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnQub2Zmc2V0VG9wOworICAgICAgICBzaXplID0g
c2l6ZS5zdWJ0cmFjdChtYXJnaW5zLnNpemUpOworCisgICAgICAgIC8vIENvbnZlcnQgZnJvbSBj
b21wYWN0IEpTT04gb3V0cHV0IHRvIHByb3BlcnRpZWQgZGF0YQorICAgICAgICB2YXIgc2FtcGxl
c1dpdGhQcm9wZXJ0aWVzID0ge307CisgICAgICAgIFtTdHJpbmdzLmpzb24uY29udHJvbGxlciwg
U3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5QXZlcmFnZV0u
Zm9yRWFjaChmdW5jdGlvbihzZXJpZXNOYW1lKSB7CisgICAgICAgICAgICB2YXIgc2VyaWVzID0g
dGVzdERhdGFbU3RyaW5ncy5qc29uLnNhbXBsZXNdW3Nlcmllc05hbWVdOworICAgICAgICAgICAg
c2FtcGxlc1dpdGhQcm9wZXJ0aWVzW3Nlcmllc05hbWVdID0gc2VyaWVzLnRvQXJyYXkoKTsKKyAg
ICAgICAgfSkKKworICAgICAgICB0aGlzLmNyZWF0ZVRpbWVHcmFwaCh0ZXN0UmVzdWx0LCBzYW1w
bGVzV2l0aFByb3BlcnRpZXNbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCB0ZXN0RGF0YVtTdHJp
bmdzLmpzb24ubWFya3NdLCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0sIG9wdGlv
bnMsIG1hcmdpbnMsIHNpemUpOwogICAgICAgICB0aGlzLm9uVGltZUdyYXBoT3B0aW9uc0NoYW5n
ZWQoKTsKIAotICAgICAgICB2YXIgaGFzQ29tcGxleGl0eVNhbXBsZXMgPSAhIXRlc3REYXRhW1N0
cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxleGl0eV07Ci0gICAgICAgIHRo
aXMuX3Nob3dPckhpZGVOb2RlcyhoYXNDb21wbGV4aXR5U2FtcGxlcywgImZvcm1bbmFtZT1ncmFw
aC10eXBlXSIpOwotICAgICAgICBpZiAoaGFzQ29tcGxleGl0eVNhbXBsZXMpIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmZvcm1zWyJncmFwaC10eXBlIl0uZWxlbWVudHNbInR5cGUiXSA9ICJjb21w
bGV4aXR5IjsKLSAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29tcGxleGl0eUdyYXBoKHRlc3RSZXN1
bHQsIHRlc3REYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgdGVzdERhdGFbU3RyaW5ncy5q
c29uLnNhbXBsZXNdLCBvcHRpb25zLCBtYXJnaW5zLCBzaXplKTsKLSAgICAgICAgICAgIHRoaXMu
b25Db21wbGV4aXR5R3JhcGhPcHRpb25zQ2hhbmdlZCgpOwotICAgICAgICB9CisgICAgICAgIHRo
aXMuX3Nob3dPckhpZGVOb2Rlcyh0cnVlLCAiZm9ybVtuYW1lPWdyYXBoLXR5cGVdIik7CisgICAg
ICAgIGRvY3VtZW50LmZvcm1zWyJncmFwaC10eXBlIl0uZWxlbWVudHNbInR5cGUiXSA9ICJjb21w
bGV4aXR5IjsKKyAgICAgICAgdGhpcy5jcmVhdGVDb21wbGV4aXR5R3JhcGgodGVzdFJlc3VsdCwg
dGVzdERhdGFbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCBzYW1wbGVzV2l0aFByb3BlcnRpZXMs
IG9wdGlvbnMsIG1hcmdpbnMsIHNpemUpOworICAgICAgICB0aGlzLm9uQ29tcGxleGl0eUdyYXBo
T3B0aW9uc0NoYW5nZWQoKTsKIAogICAgICAgICB0aGlzLm9uR3JhcGhUeXBlQ2hhbmdlZCgpOwog
ICAgIH0sCkBAIC01NjksNyArNTcxLDcgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cu
YmVuY2htYXJrQ29udHJvbGxlciwgewogICAgICAgICBiZW5jaG1hcmtDb250cm9sbGVyLl9zaG93
T3JIaWRlTm9kZXMoIWlzVGltZVNlbGVjdGVkLCAiI2NvbXBsZXhpdHktZ3JhcGgiKTsKICAgICAg
ICAgYmVuY2htYXJrQ29udHJvbGxlci5fc2hvd09ySGlkZU5vZGVzKCFpc1RpbWVTZWxlY3RlZCwg
ImZvcm1bbmFtZT1jb21wbGV4aXR5LWdyYXBoLW9wdGlvbnNdIik7CiAKLSAgICAgICAgdmFyIHNj
b3JlLCBtZWFuOworICAgICAgICB2YXIgc2NvcmUgPSAiIiwgbWVhbiA9ICIiOwogICAgICAgICBp
ZiAoaXNUaW1lU2VsZWN0ZWQpIHsKICAgICAgICAgICAgIHNjb3JlID0gdGVzdFJlc3VsdFtTdHJp
bmdzLmpzb24uc2NvcmVdLnRvRml4ZWQoMik7CiAKQEAgLTU5NiwxMyArNTk4LDE2IEBAIFV0aWxp
dGllcy5leHRlbmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsKICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVn
YXRlLWF2ZXJhZ2UiKS50ZXh0Q29udGVudCA9IGNvbXBsZXhpdHlBdmVyYWdlUmVncmVzc2lvbi5j
b21wbGV4aXR5LnRvRml4ZWQoMikgKyAiLCDCsSIgKyBjb21wbGV4aXR5QXZlcmFnZVJlZ3Jlc3Np
b24uc3RkZXYudG9GaXhlZCgyKSArICJtcyI7CiAKICAgICAgICAgICAgIHZhciBib290c3RyYXAg
PSBjb21wbGV4aXR5UmVncmVzc2lvbltTdHJpbmdzLmpzb24uYm9vdHN0cmFwXTsKLSAgICAgICAg
ICAgIHNjb3JlID0gYm9vdHN0cmFwLm1lZGlhbi50b0ZpeGVkKDIpOwotICAgICAgICAgICAgbWVh
biA9IFsKLSAgICAgICAgICAgICAgICAiOTUlIENJOiAiLAotICAgICAgICAgICAgICAgIGJvb3Rz
dHJhcC5jb25maWRlbmNlTG93LnRvRml4ZWQoMiksCi0gICAgICAgICAgICAgICAgIuKAkyIsCi0g
ICAgICAgICAgICAgICAgYm9vdHN0cmFwLmNvbmZpZGVuY2VIaWdoLnRvRml4ZWQoMikKLSAgICAg
ICAgICAgIF0uam9pbigiIik7CisgICAgICAgICAgICBpZiAoYm9vdHN0cmFwKSB7CisgICAgICAg
ICAgICAgICAgc2NvcmUgPSBib290c3RyYXAubWVkaWFuLnRvRml4ZWQoMik7CisgICAgICAgICAg
ICAgICAgbWVhbiA9IFsKKyAgICAgICAgICAgICAgICAgICAgKGJvb3RzdHJhcC5jb25maWRlbmNl
UGVyY2VudGFnZSAqIDEwMCkudG9GaXhlZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgIiUgQ0k6
ICIsCisgICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcC5jb25maWRlbmNlTG93LnRvRml4ZWQo
MiksCisgICAgICAgICAgICAgICAgICAgICLigJMiLAorICAgICAgICAgICAgICAgICAgICBib290
c3RyYXAuY29uZmlkZW5jZUhpZ2gudG9GaXhlZCgyKQorICAgICAgICAgICAgICAgIF0uam9pbigi
Iik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBzZWN0aW9uc01hbmFnZXIu
c2V0U2VjdGlvblNjb3JlKCJ0ZXN0LWdyYXBoIiwgc2NvcmUsIG1lYW4pOwpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMu
anMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90
ZXN0cy5qcwppbmRleCBlMzIzM2Y1Li4xMWJiMjQyIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcwpA
QCAtMiw3ICsyLDcgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChTdHJpbmdzLnRleHQsIHsKICAg
ICBzYW1wbGVzOiAiU2FtcGxlcyIsCiAgICAgY29tcGxleGl0eTogIlRpbWUgQ29tcGxleGl0eSIs
CiAgICAgZnJhbWVSYXRlOiAiRlBTIiwKLSAgICBjb25maWRlbmNlSW50ZXJ2YWw6ICI5NSUgQ29u
ZmlkZW5jZSBJbnRlcnZhbCIsCisgICAgY29uZmlkZW5jZUludGVydmFsOiAiODAlIENvbmZpZGVu
Y2UgSW50ZXJ2YWwiLAogICAgIG1lcmdlZFJhd0NvbXBsZXhpdHk6ICJSYXcgQ29tcGxleGl0eSIs
CiAgICAgZ3JhcGg6ICJHcmFwaCIKIH0pOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCmluZGV4IGQ4MWRkNzkuLjllZjAyNTcgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9u
cy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lv
bnMuanMKQEAgLTE1NSw2ICsxNTUsMTMgQEAgVXRpbGl0aWVzID0KICAgICBsZXJwOiBmdW5jdGlv
bih2YWx1ZSwgbWluLCBtYXgpCiAgICAgewogICAgICAgICByZXR1cm4gbWluICsgKG1heCAtIG1p
bikgKiB2YWx1ZTsKKyAgICB9LAorCisgICAgdG9GaXhlZE51bWJlcjogZnVuY3Rpb24obnVtYmVy
LCBwcmVjaXNpb24pCisgICAgeworICAgICAgICBpZiAobnVtYmVyLnRvRml4ZWQpCisgICAgICAg
ICAgICByZXR1cm4gTnVtYmVyKG51bWJlci50b0ZpeGVkKDMpKTsKKyAgICAgICAgcmV0dXJuIG51
bWJlcjsKICAgICB9CiB9OwogCkBAIC01ODEsMyArNTg4LDgzIEBAIFV0aWxpdGllcy5leHRlbmRP
YmplY3QoSGVhcCwgewogICAgICAgICByZXR1cm4gbmV3IEhlYXAobWF4U2l6ZSwgZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gYSAtIGI7IH0pOwogICAgIH0KIH0pOworCit2YXIgU2FtcGxlRGF0YSA9
IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5jdGlvbihmaWVsZE1hcCwgZGF0YSkKKyAg
ICB7CisgICAgICAgIHRoaXMuZmllbGRNYXAgPSBmaWVsZE1hcCB8fCB7fTsKKyAgICAgICAgdGhp
cy5kYXRhID0gZGF0YSB8fCBbXTsKKyAgICB9LCB7CisKKyAgICBnZXQgbGVuZ3RoKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoOworICAgIH0sCisKKyAgICBhZGRGaWVs
ZDogZnVuY3Rpb24obmFtZSwgaW5kZXgpCisgICAgeworICAgICAgICB0aGlzLmZpZWxkTWFwW25h
bWVdID0gaW5kZXg7CisgICAgfSwKKworICAgIHB1c2g6IGZ1bmN0aW9uKGRhdHVtKQorICAgIHsK
KyAgICAgICAgdGhpcy5kYXRhLnB1c2goZGF0dW0pOworICAgIH0sCisKKyAgICBzb3J0OiBmdW5j
dGlvbihzb3J0RnVuY3Rpb24pCisgICAgeworICAgICAgICB0aGlzLmRhdGEuc29ydChzb3J0RnVu
Y3Rpb24pOworICAgIH0sCisKKyAgICBzbGljZTogZnVuY3Rpb24oYmVnaW4sIGVuZCkKKyAgICB7
CisgICAgICAgIHJldHVybiBuZXcgU2FtcGxlRGF0YSh0aGlzLmZpZWxkTWFwLCB0aGlzLmRhdGEu
c2xpY2UoYmVnaW4sIGVuZCkpOworICAgIH0sCisKKyAgICBmb3JFYWNoOiBmdW5jdGlvbihpdGVy
YXRpb25GdW5jdGlvbikKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKGl0ZXJhdGlv
bkZ1bmN0aW9uKTsKKyAgICB9LAorCisgICAgY3JlYXRlRGF0dW06IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBbXTsKKyAgICB9LAorCisgICAgZ2V0RmllbGRJbkRhdHVtOiBmdW5j
dGlvbihkYXR1bSwgZmllbGROYW1lKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGVvZiBkYXR1bSA9
PT0gJ251bWJlcicpCisgICAgICAgICAgICBkYXR1bSA9IHRoaXMuZGF0YVtkYXR1bV07CisgICAg
ICAgIHJldHVybiBkYXR1bVt0aGlzLmZpZWxkTWFwW2ZpZWxkTmFtZV1dOworICAgIH0sCisKKyAg
ICBzZXRGaWVsZEluRGF0dW06IGZ1bmN0aW9uKGRhdHVtLCBmaWVsZE5hbWUsIHZhbHVlKQorICAg
IHsKKyAgICAgICAgaWYgKHR5cGVvZiBkYXR1bSA9PT0gJ251bWJlcicpCisgICAgICAgICAgICBk
YXR1bSA9IHRoaXMuZGF0YVtkYXR1bV07CisgICAgICAgIHJldHVybiBkYXR1bVt0aGlzLmZpZWxk
TWFwW2ZpZWxkTmFtZV1dID0gdmFsdWU7CisgICAgfSwKKworICAgIGF0OiBmdW5jdGlvbihpbmRl
eCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGFbaW5kZXhdOworICAgIH0sCisKKyAg
ICB0b0FycmF5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgYXJyYXkgPSBbXTsKKwor
ICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaChmdW5jdGlvbihkYXR1bSkgeworICAgICAgICAgICAg
dmFyIG5ld0RhdHVtID0ge307CisgICAgICAgICAgICBhcnJheS5wdXNoKG5ld0RhdHVtKTsKKwor
ICAgICAgICAgICAgZm9yICh2YXIgZmllbGROYW1lIGluIHRoaXMuZmllbGRNYXApIHsKKyAgICAg
ICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldEZpZWxkSW5EYXR1bShkYXR1bSwgZmllbGRO
YW1lKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAgICAgbmV3RGF0dW1bZmllbGROYW1lXSA9IHZhbHVl
OworICAgICAgICAgICAgfQorICAgICAgICB9LCB0aGlzKTsKKworICAgICAgICByZXR1cm4gYXJy
YXk7CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzCmluZGV4IGM2NWJiOTcuLjA1YjQ1
ZjggMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuY3NzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzCkBAIC0yOTIsMjAgKzI5MiwxNCBAQCBib2R5Lmlt
YWdlcy1sb2FkZWQgI2ludHJvIHsKIAogLyogUnVubmluZyB0ZXN0IHNlY3Rpb24gKi8KIAotI3Rl
c3QtY29udGFpbmVyIHsKKy5mcmFtZS1jb250YWluZXIgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKIAotICAgIHdpZHRoOiAxMjAwcHg7Ci0gICAgaGVpZ2h0OiA2MDBweDsKLQogICAgIHRvcDog
NTAlOwogICAgIGxlZnQ6IDUwJTsKLQotICAgIG1hcmdpbi1sZWZ0OiAtNjAwcHg7Ci0gICAgbWFy
Z2luLXRvcDogLTMwMHB4OwogfQogCi0jdGVzdC1jb250YWluZXIgPiBpZnJhbWUgeworLmZyYW1l
LWNvbnRhaW5lciA+IGlmcmFtZSB7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDAl
OwogCkBAIC0zMTMsNzAgKzMwNyw3MiBAQCBib2R5LmltYWdlcy1sb2FkZWQgI2ludHJvIHsKICAg
ICBtYXJnaW46IDA7CiB9CiAKLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0
MTRweCksIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRh
dGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI3Rlc3QtY29udGFpbmVyIHsKLSAgICAgICAgd2lkdGg6
IDEwMCU7Ci0gICAgICAgIGhlaWdodDogMTAwJTsKLQotICAgICAgICB0b3A6IDA7Ci0gICAgICAg
IGxlZnQ6IDA7Ci0KLSAgICAgICAgbWFyZ2luLXRvcDogMDsKLSAgICAgICAgbWFyZ2luLWxlZnQ6
IDA7Ci0gICAgfQorYm9keS5zbWFsbCAuZnJhbWUtY29udGFpbmVyIHsKKyAgICB3aWR0aDogNTY4
cHg7CisgICAgaGVpZ2h0OiAzMjBweDsKKyAgICBtYXJnaW4tbGVmdDogLTI4NHB4OworICAgIG1h
cmdpbi10b3A6IC0xNjBweDsKIH0KIAotQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtaGVp
Z2h0OiA3NjhweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogMTAyNHB4KSB7Ci0gICAgI3Rlc3Qt
Y29udGFpbmVyIHsKLSAgICAgICAgd2lkdGg6IDkwMHB4OwotICAgICAgICBoZWlnaHQ6IDYwMHB4
OworYm9keS5tZWRpdW0gLmZyYW1lLWNvbnRhaW5lciB7CisgICAgd2lkdGg6IDkwMHB4OworICAg
IGhlaWdodDogNjAwcHg7CisgICAgbWFyZ2luLWxlZnQ6IC00NTBweDsKKyAgICBtYXJnaW4tdG9w
OiAtMzAwcHg7Cit9CiAKLSAgICAgICAgbWFyZ2luLWxlZnQ6IC00NTBweDsKLSAgICAgICAgbWFy
Z2luLXRvcDogLTMwMHB4OwotICAgIH0KK2JvZHkubGFyZ2UgLmZyYW1lLWNvbnRhaW5lciB7Cisg
ICAgd2lkdGg6IDE2MDBweDsKKyAgICBoZWlnaHQ6IDgwMHB4OworICAgIG1hcmdpbi1sZWZ0OiAt
ODAwcHg7CisgICAgbWFyZ2luLXRvcDogLTQwMHB4OwogfQogCi1AbWVkaWEgc2NyZWVuIGFuZCAo
bWF4LWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiAxMzY2cHgp
IHsKLSAgICAjdGVzdC1jb250YWluZXIgewotICAgICAgICB3aWR0aDogMTIwMHB4OwotICAgICAg
ICBoZWlnaHQ6IDYwMHB4OworLyogUmVzdWx0cyBzZWN0aW9uICovCiAKLSAgICAgICAgbWFyZ2lu
LWxlZnQ6IC02MDBweDsKLSAgICAgICAgbWFyZ2luLXRvcDogLTMwMHB4OwotICAgIH0KKyNyZXN1
bHRzIHsKKyAgICBwYWRkaW5nOiAyZW07CiB9CiAKLUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lk
dGg6IDE4MDBweCkgewotICAgICN0ZXN0LWNvbnRhaW5lciB7Ci0gICAgICAgIHdpZHRoOiAxNjAw
cHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7CisjcmVzdWx0cyAuYm9keSB7CisgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogdGV4dDsKK30KIAotICAgICAgICBtYXJnaW4tbGVmdDogLTgwMHB4Owot
ICAgICAgICBtYXJnaW4tdG9wOiAtNDAwcHg7Ci0gICAgfQorI3Jlc3VsdHMgLnNjb3JlLWNvbnRh
aW5lciB7CisgICAgcGFkZGluZy1ib3R0b206IDJlbTsKIH0KIAotLyogUmVzdWx0cyBzZWN0aW9u
ICovCisjcmVzdWx0cyAudGFibGUtY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7
Cit9CiAKLSNyZXN1bHRzIHsKLSAgICBwYWRkaW5nOiAyZW07CisjcmVzdWx0cyAudGFibGUtY29u
dGFpbmVyID4gZGl2IHsKKyAgICBtYXJnaW4tbGVmdDogNDAlOwogfQogCiAjcmVzdWx0cyAuc2Nv
cmUgewogICAgIGZvbnQtc2l6ZTogNWVtOwogICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgIGZv
bnQtc3R5bGU6IGl0YWxpYzsKKyAgICBsaW5lLWhlaWdodDogMTsKKyAgICBtYXJnaW46IDA7Cit9
CiAKLSAgICBwYWRkaW5nLWxlZnQ6IDAuMjVlbTsKLQorI3Jlc3VsdHMgLmNvbmZpZGVuY2Ugewor
ICAgIGZvbnQtc2l6ZTogMmVtOworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBsaW5lLWhl
aWdodDogMTsKICAgICBtYXJnaW46IDA7CisgICAgdGV4dC1pbmRlbnQ6IDEuNzVlbTsKKyAgICBj
b2xvcjogaHNsKDAsIDAlLCA0MCUpOworICAgIHBhZGRpbmctYm90dG9tOiAuM2VtOwogfQogCiAj
cmVzdWx0cyB0YWJsZSB7CiAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgbWFyZ2luOiAwOwog
ICAgIHBhZGRpbmc6IDA7Ci0gICAgbWluLXdpZHRoOiA0MCU7CisgICAgbWluLXdpZHRoOiAyNSU7
CiB9CiAKICNyZXN1bHRzIHRhYmxlIHRkLApAQCAtMzkyLDkgKzM4OCwyMCBAQCBib2R5LmltYWdl
cy1sb2FkZWQgI2ludHJvIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCAwJSwg
MC4wNSk7CiB9CiAKLSNyZXN1bHRzICNyZXN1bHRzLWhlYWRlciwKKyNyZXN1bHRzICNyZXN1bHRz
LWhlYWRlciB7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwJTsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Cit9CisKICNyZXN1bHRzICNyZXN1bHRzLXNjb3JlIHsKLSAg
ICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CisgICAgZmxvYXQ6IGxlZnQ7Cit9CisKKyNyZXN1bHRz
ICNyZXN1bHRzLWRhdGEgc3BhbiB7CisgICAgZm9udC1zaXplOiAuNzVlbTsKKyAgICBjb2xvcjog
aHNsKDAsIDAlLCA0MCUpOwogfQogCiAjcmVzdWx0cyAjcmVzdWx0cy1oZWFkZXIgdGQsCkBAIC00
MTEsMTcgKzQxOCwyNiBAQCBib2R5LmltYWdlcy1sb2FkZWQgI2ludHJvIHsKIH0KIAogI3Jlc3Vs
dHMgI3Jlc3VsdHMtc2NvcmUgdGQgewotICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAg
ICAgY3Vyc29yOiB0ZXh0OwogfQogCiBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2Njdw
eCkgewotICAgICNyZXN1bHRzIC5ib2R5IC5zY29yZSB7CisgICAgI3Jlc3VsdHMgLnNjb3JlLAor
ICAgICNyZXN1bHRzIC5jb25maWRlbmNlIHsKICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwot
ICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMWVtOwogICAgIH0KIH0KIAorLmRldGFpbCBzcGFuIHsK
KyAgICBkaXNwbGF5OiBub25lOworfQorCitib2R5LnNtYWxsIC5kZXRhaWwgLnNtYWxsLAorYm9k
eS5tZWRpdW0gLmRldGFpbCAubWVkaXVtLAorYm9keS5sYXJnZSAuZGV0YWlsIC5sYXJnZSB7Cisg
ICAgZGlzcGxheTogaW5pdGlhbDsKK30KKwogI292ZXJsYXkgewogICAgIHBvc2l0aW9uOiBmaXhl
ZDsKIApAQCAtNDU2LDYgKzQ3Miw3IEBAIGJvZHkuaW1hZ2VzLWxvYWRlZCAjaW50cm8gewogI292
ZXJsYXkgPiBkaXYgZGl2IHsKICAgICBvdmVyZmxvdzogc2Nyb2xsOwogCisgICAgZm9udC1zaXpl
OiAxMnB4OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgY3Vyc29yOiB0ZXh0
OwogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9hbmltb21ldGVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5qcwppbmRleCA1NGY2NDhlLi5lZjg4M2YzIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVy
LmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuanMKQEAgLTIzLDYgKzIzLDggQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGll
cy5jcmVhdGVDbGFzcygKICAgICAgICAgdmFyIGl0ZXJhdGlvbnNTY29yZXMgPSBbXTsKICAgICAg
ICAgdGhpcy5faXRlcmF0aW9uc1NhbXBsZXJzLmZvckVhY2goZnVuY3Rpb24oaXRlcmF0aW9uLCBp
bmRleCkgewogICAgICAgICAgICAgdmFyIHRlc3RzU2NvcmVzID0gW107CisgICAgICAgICAgICB2
YXIgdGVzdHNMb3dlckJvdW5kU2NvcmVzID0gW107CisgICAgICAgICAgICB2YXIgdGVzdHNVcHBl
ckJvdW5kU2NvcmVzID0gW107CiAKICAgICAgICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAg
ICAgICAgIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnJlc3VsdHMuaXRlcmF0aW9uc11baW5k
ZXhdID0gcmVzdWx0OwpAQCAtNDQsMTQgKzQ2LDIwIEBAIFJlc3VsdHNEYXNoYm9hcmQgPSBVdGls
aXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzdWl0ZURhdGFb
dGVzdE5hbWVdW1N0cmluZ3MuanNvbi5yZXN1bHRdOwogCiAgICAgICAgICAgICAgICAgICAgIHRl
c3RzU2NvcmVzLnB1c2goc3VpdGVSZXN1bHRbdGVzdE5hbWVdW1N0cmluZ3MuanNvbi5zY29yZV0p
OworICAgICAgICAgICAgICAgICAgICB0ZXN0c0xvd2VyQm91bmRTY29yZXMucHVzaChzdWl0ZVJl
c3VsdFt0ZXN0TmFtZV1bU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZF0pOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0c1VwcGVyQm91bmRTY29yZXMucHVzaChzdWl0ZVJlc3VsdFt0ZXN0TmFt
ZV1bU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZF0pOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0gPSBT
dGF0aXN0aWNzLmdlb21ldHJpY01lYW4odGVzdHNTY29yZXMpOworICAgICAgICAgICAgcmVzdWx0
W1N0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmRdID0gU3RhdGlzdGljcy5nZW9tZXRyaWNNZWFu
KHRlc3RzTG93ZXJCb3VuZFNjb3Jlcyk7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29u
LnNjb3JlVXBwZXJCb3VuZF0gPSBTdGF0aXN0aWNzLmdlb21ldHJpY01lYW4odGVzdHNVcHBlckJv
dW5kU2NvcmVzKTsKICAgICAgICAgICAgIGl0ZXJhdGlvbnNTY29yZXMucHVzaChyZXN1bHRbU3Ry
aW5ncy5qc29uLnNjb3JlXSk7CiAgICAgICAgIH0sIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3Jl
c3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlXSA9IFN0YXRpc3RpY3Muc2FtcGxlTWVhbihpdGVyYXRp
b25zU2NvcmVzLmxlbmd0aCwgaXRlcmF0aW9uc1Njb3Jlcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikg
eyByZXR1cm4gYSArIGI7IH0pKTsKKyAgICAgICAgdGhpcy5fcmVzdWx0c1tTdHJpbmdzLmpzb24u
c2NvcmVMb3dlckJvdW5kXSA9IHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnJlc3VsdHMuaXRl
cmF0aW9uc11bMF1bU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZF07CisgICAgICAgIHRoaXMu
X3Jlc3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZF0gPSB0aGlzLl9yZXN1bHRzW1N0
cmluZ3MuanNvbi5yZXN1bHRzLml0ZXJhdGlvbnNdWzBdW1N0cmluZ3MuanNvbi5zY29yZVVwcGVy
Qm91bmRdOwogICAgIH0sCiAKICAgICBjYWxjdWxhdGVTY29yZTogZnVuY3Rpb24oZGF0YSkKQEAg
LTY0LDM4ICs3Miw3MSBAQCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNz
KAogICAgICAgICBpZiAodGhpcy5fb3B0aW9uc1siY29udHJvbGxlciJdID09ICJyYW1wMzAiKQog
ICAgICAgICAgICAgZGVzaXJlZEZyYW1lTGVuZ3RoID0gMTAwMC8zMDsKIAotICAgICAgICBmdW5j
dGlvbiBmaW5kUmVncmVzc2lvbihzZXJpZXMpIHsKKyAgICAgICAgZnVuY3Rpb24gZmluZFJlZ3Jl
c3Npb24oc2VyaWVzLCBwcm9maWxlKSB7CiAgICAgICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRo
LnJvdW5kKC4wMjUgKiBzZXJpZXMubGVuZ3RoKTsKICAgICAgICAgICAgIHZhciBtYXhJbmRleCA9
IE1hdGgucm91bmQoLjk3NSAqIChzZXJpZXMubGVuZ3RoIC0gMSkpOwotICAgICAgICAgICAgdmFy
IG1pbkNvbXBsZXhpdHkgPSBzZXJpZXNbbWluSW5kZXhdLmNvbXBsZXhpdHk7Ci0gICAgICAgICAg
ICB2YXIgbWF4Q29tcGxleGl0eSA9IHNlcmllc1ttYXhJbmRleF0uY29tcGxleGl0eTsKKyAgICAg
ICAgICAgIHZhciBtaW5Db21wbGV4aXR5ID0gc2VyaWVzLmdldEZpZWxkSW5EYXR1bShtaW5JbmRl
eCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOworICAgICAgICAgICAgdmFyIG1heENvbXBsZXhp
dHkgPSBzZXJpZXMuZ2V0RmllbGRJbkRhdHVtKG1heEluZGV4LCBTdHJpbmdzLmpzb24uY29tcGxl
eGl0eSk7CisKICAgICAgICAgICAgIGlmIChNYXRoLmFicyhtYXhDb21wbGV4aXR5IC0gbWluQ29t
cGxleGl0eSkgPCAyMCAmJiBtYXhJbmRleCAtIG1pbkluZGV4IDwgMjApIHsKICAgICAgICAgICAg
ICAgICBtaW5JbmRleCA9IDA7CiAgICAgICAgICAgICAgICAgbWF4SW5kZXggPSBzZXJpZXMubGVu
Z3RoIC0gMTsKLSAgICAgICAgICAgICAgICBtaW5Db21wbGV4aXR5ID0gc2VyaWVzW21pbkluZGV4
XS5jb21wbGV4aXR5OwotICAgICAgICAgICAgICAgIG1heENvbXBsZXhpdHkgPSBzZXJpZXNbbWF4
SW5kZXhdLmNvbXBsZXhpdHk7CisgICAgICAgICAgICAgICAgbWluQ29tcGxleGl0eSA9IHNlcmll
cy5nZXRGaWVsZEluRGF0dW0obWluSW5kZXgsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KTsKKyAg
ICAgICAgICAgICAgICBtYXhDb21wbGV4aXR5ID0gc2VyaWVzLmdldEZpZWxkSW5EYXR1bShtYXhJ
bmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOwogICAgICAgICAgICAgfQogCisgICAgICAg
ICAgICB2YXIgY29tcGxleGl0eUluZGV4ID0gc2VyaWVzLmZpZWxkTWFwW1N0cmluZ3MuanNvbi5j
b21wbGV4aXR5XTsKKyAgICAgICAgICAgIHZhciBmcmFtZUxlbmd0aEluZGV4ID0gc2VyaWVzLmZp
ZWxkTWFwW1N0cmluZ3MuanNvbi5mcmFtZUxlbmd0aF07CisgICAgICAgICAgICB2YXIgcmVncmVz
c2lvbk9wdGlvbnMgPSB7IGRlc2lyZWRGcmFtZUxlbmd0aDogZGVzaXJlZEZyYW1lTGVuZ3RoIH07
CisgICAgICAgICAgICBpZiAocHJvZmlsZSkKKyAgICAgICAgICAgICAgICByZWdyZXNzaW9uT3B0
aW9ucy5wcmVmZXJyZWRQcm9maWxlID0gcHJvZmlsZTsKICAgICAgICAgICAgIHJldHVybiB7CiAg
ICAgICAgICAgICAgICAgbWluQ29tcGxleGl0eTogbWluQ29tcGxleGl0eSwKICAgICAgICAgICAg
ICAgICBtYXhDb21wbGV4aXR5OiBtYXhDb21wbGV4aXR5LAogICAgICAgICAgICAgICAgIHNhbXBs
ZXM6IHNlcmllcy5zbGljZShtaW5JbmRleCwgbWF4SW5kZXggKyAxKSwKICAgICAgICAgICAgICAg
ICByZWdyZXNzaW9uOiBuZXcgUmVncmVzc2lvbigKICAgICAgICAgICAgICAgICAgICAgc2VyaWVz
LAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZGF0dW0sIGkpIHsgcmV0dXJuIGRhdHVt
W2ldLmNvbXBsZXhpdHk7IH0sCi0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXR1bSwg
aSkgeyByZXR1cm4gZGF0dW1baV0uZnJhbWVMZW5ndGg7IH0sCi0gICAgICAgICAgICAgICAgICAg
IG1pbkluZGV4LCBtYXhJbmRleCwgZGVzaXJlZEZyYW1lTGVuZ3RoKQorICAgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbiAoZGF0dW0sIGkpIHsgcmV0dXJuIHNlcmllcy5kYXRhW2ldW2NvbXBsZXhp
dHlJbmRleF07IH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXR1bSwgaSkgeyBy
ZXR1cm4gc2VyaWVzLmRhdGFbaV1bZnJhbWVMZW5ndGhJbmRleF07IH0sCisgICAgICAgICAgICAg
ICAgICAgIG1pbkluZGV4LCBtYXhJbmRleCwgcmVncmVzc2lvbk9wdGlvbnMpCiAgICAgICAgICAg
ICB9OwogICAgICAgICB9CiAKICAgICAgICAgdmFyIGNvbXBsZXhpdHlTYW1wbGVzOworICAgICAg
ICAvLyBDb252ZXJ0IHRoZXNlIHNhbXBsZXMgaW50byBTYW1wbGVEYXRhIG9iamVjdHMgaWYgbmVl
ZGVkCisgICAgICAgIFtTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHlBdmVyYWdlLCBTdHJpbmdzLmpzb24uY29udHJvbGxlcl0uZm9yRWFjaChmdW5jdGlvbihz
ZXJpZXNOYW1lKSB7CisgICAgICAgICAgICB2YXIgc2VyaWVzID0gc2FtcGxlc1tzZXJpZXNOYW1l
XTsKKyAgICAgICAgICAgIGlmIChzZXJpZXMgJiYgIShzZXJpZXMgaW5zdGFuY2VvZiBTYW1wbGVE
YXRhKSkKKyAgICAgICAgICAgICAgICBzYW1wbGVzW3Nlcmllc05hbWVdID0gbmV3IFNhbXBsZURh
dGEoc2VyaWVzLmZpZWxkTWFwLCBzZXJpZXMuZGF0YSk7CisgICAgICAgIH0pOworCisgICAgICAg
IHZhciBpc1JhbXBDb250cm9sbGVyID0gWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhpcy5f
b3B0aW9uc1siY29udHJvbGxlciJdKSAhPSAtMTsKKyAgICAgICAgdmFyIHByZWRvbWluYW50UHJv
ZmlsZSA9ICIiOworICAgICAgICBpZiAoaXNSYW1wQ29udHJvbGxlcikgeworICAgICAgICAgICAg
dmFyIHByb2ZpbGVzID0ge307CisgICAgICAgICAgICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9s
bGVyXS5mb3JFYWNoKGZ1bmN0aW9uKHJlZ3Jlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBpZiAo
cmVncmVzc2lvbltTdHJpbmdzLmpzb24ucmVncmVzc2lvbnMucHJvZmlsZV0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgdmFyIHByb2ZpbGUgPSByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNz
aW9ucy5wcm9maWxlXTsKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZXNbcHJvZmlsZV0gPSAo
cHJvZmlsZXNbcHJvZmlsZV0gfHwgMCkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICB2YXIgbWF4UHJvZmlsZUNvdW50ID0gMDsKKyAgICAgICAg
ICAgIGZvciAodmFyIHByb2ZpbGUgaW4gcHJvZmlsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAo
cHJvZmlsZXNbcHJvZmlsZV0gPiBtYXhQcm9maWxlQ291bnQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHJlZG9taW5hbnRQcm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgICAgICAgICAgICAgbWF4
UHJvZmlsZUNvdW50ID0gcHJvZmlsZXNbcHJvZmlsZV07CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5
LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2VdLmZvckVhY2goZnVuY3Rpb24oc2VyaWVz
TmFtZSkgewogICAgICAgICAgICAgaWYgKCEoc2VyaWVzTmFtZSBpbiBzYW1wbGVzKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uID0ge307CiAg
ICAgICAgICAgICByZXN1bHRbc2VyaWVzTmFtZV0gPSByZWdyZXNzaW9uOwotICAgICAgICAgICAg
dmFyIHJlZ3Jlc3Npb25SZXN1bHQgPSBmaW5kUmVncmVzc2lvbihzYW1wbGVzW3Nlcmllc05hbWVd
KTsKKyAgICAgICAgICAgIHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24oc2Ft
cGxlc1tzZXJpZXNOYW1lXSwgcHJlZG9taW5hbnRQcm9maWxlKTsKICAgICAgICAgICAgIGlmIChz
ZXJpZXNOYW1lID09IFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KQogICAgICAgICAgICAgICAgIGNv
bXBsZXhpdHlTYW1wbGVzID0gcmVncmVzc2lvblJlc3VsdC5zYW1wbGVzOwogICAgICAgICAgICAg
dmFyIGNhbGN1bGF0aW9uID0gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9uOwpAQCAtMTExLDcg
KzE1Miw3IEBAIFJlc3VsdHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAg
ICAgICAgICByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXZdID0gTWF0
aC5zcXJ0KGNhbGN1bGF0aW9uLmVycm9yIC8gc2FtcGxlc1tzZXJpZXNOYW1lXS5sZW5ndGgpOwog
ICAgICAgICB9KTsKIAotICAgICAgICBpZiAoWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhp
cy5fb3B0aW9uc1siY29udHJvbGxlciJdKSAhPSAtMSkgeworICAgICAgICBpZiAoaXNSYW1wQ29u
dHJvbGxlcikgewogICAgICAgICAgICAgdmFyIHRpbWVDb21wbGV4aXR5ID0gbmV3IEV4cGVyaW1l
bnQ7CiAgICAgICAgICAgICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1
bmN0aW9uKHJlZ3Jlc3Npb24pIHsKICAgICAgICAgICAgICAgICB0aW1lQ29tcGxleGl0eS5zYW1w
bGUocmVncmVzc2lvbltTdHJpbmdzLmpzb24uY29tcGxleGl0eV0pOwpAQCAtMTI0LDE2ICsxNjUs
MjEgQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAg
ICAgIGV4cGVyaW1lbnRSZXN1bHRbU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5zdGRldl0gPSB0
aW1lQ29tcGxleGl0eS5zdGFuZGFyZERldmlhdGlvbigpOwogICAgICAgICAgICAgZXhwZXJpbWVu
dFJlc3VsdFtTdHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnBlcmNlbnRdID0gdGltZUNvbXBsZXhp
dHkucGVyY2VudGFnZSgpOwogCi0gICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdID0gUmVncmVzc2lvbi5ib290c3RyYXAoY29t
cGxleGl0eVNhbXBsZXMsIDI1MDAsIGZ1bmN0aW9uKHJlc2FtcGxlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJlc2FtcGxlLnNvcnQoZnVuY3Rpb24oYSwgYikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGEuY29tcGxleGl0eSAtIGIuY29tcGxleGl0eTsKLSAgICAgICAgICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25SZXN1bHQgPSBm
aW5kUmVncmVzc2lvbihyZXNhbXBsZSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdy
ZXNzaW9uUmVzdWx0LnJlZ3Jlc3Npb24uY29tcGxleGl0eTsKLSAgICAgICAgICAgICAgICB9LCAu
OTUpOwotICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0gPSByZXN1bHRbU3Ry
aW5ncy5qc29uLmNvbXBsZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdLm1lZGlhbjsKLQor
ICAgICAgICAgICAgdmFyIGJvb3RzdHJhcFJlc3VsdCA9IFJlZ3Jlc3Npb24uYm9vdHN0cmFwKGNv
bXBsZXhpdHlTYW1wbGVzLmRhdGEsIDI1MDAsIGZ1bmN0aW9uKHJlc2FtcGxlRGF0YSkgeworICAg
ICAgICAgICAgICAgIHZhciBjb21wbGV4aXR5SW5kZXggPSBjb21wbGV4aXR5U2FtcGxlcy5maWVs
ZE1hcFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV07CisgICAgICAgICAgICAgICAgcmVzYW1wbGVE
YXRhLnNvcnQoZnVuY3Rpb24oYSwgYikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYVtj
b21wbGV4aXR5SW5kZXhdIC0gYltjb21wbGV4aXR5SW5kZXhdOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgICAgdmFyIHJlc2FtcGxlID0gbmV3IFNhbXBsZURhdGEoY29tcGxl
eGl0eVNhbXBsZXMuZmllbGRNYXAsIHJlc2FtcGxlRGF0YSk7CisgICAgICAgICAgICAgICAgdmFy
IHJlZ3Jlc3Npb25SZXN1bHQgPSBmaW5kUmVncmVzc2lvbihyZXNhbXBsZSwgcHJlZG9taW5hbnRQ
cm9maWxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNz
aW9uLmNvbXBsZXhpdHk7CisgICAgICAgICAgICB9LCAuOCk7CisKKyAgICAgICAgICAgIHJlc3Vs
dFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV1bU3RyaW5ncy5qc29uLmJvb3RzdHJhcF0gPSBib290
c3RyYXBSZXN1bHQ7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSA9IGJv
b3RzdHJhcFJlc3VsdC5tZWRpYW47CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNj
b3JlTG93ZXJCb3VuZF0gPSBib290c3RyYXBSZXN1bHQuY29uZmlkZW5jZUxvdzsKKyAgICAgICAg
ICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJvdW5kXSA9IGJvb3RzdHJhcFJlc3Vs
dC5jb25maWRlbmNlSGlnaDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhciBtYXJr
cyA9IGRhdGFbU3RyaW5ncy5qc29uLm1hcmtzXTsKICAgICAgICAgICAgIHZhciBzYW1wbGluZ1N0
YXJ0SW5kZXggPSAwLCBzYW1wbGluZ0VuZEluZGV4ID0gLTE7CkBAIC0xNDQsMTEgKzE5MCwxMyBA
QCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogCiAgICAgICAgICAg
ICB2YXIgYXZlcmFnZUNvbXBsZXhpdHkgPSBuZXcgRXhwZXJpbWVudDsKICAgICAgICAgICAgIHZh
ciBhdmVyYWdlRnJhbWVMZW5ndGggPSBuZXcgRXhwZXJpbWVudDsKLSAgICAgICAgICAgIHNhbXBs
ZXNbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLmZvckVhY2goZnVuY3Rpb24gKHNhbXBsZSwgaSkg
eworICAgICAgICAgICAgdmFyIGNvbnRyb2xsZXJTYW1wbGVzID0gc2FtcGxlc1tTdHJpbmdzLmpz
b24uY29udHJvbGxlcl07CisgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5mb3JFYWNoKGZ1
bmN0aW9uIChzYW1wbGUsIGkpIHsKICAgICAgICAgICAgICAgICBpZiAoaSA+PSBzYW1wbGluZ1N0
YXJ0SW5kZXggJiYgKHNhbXBsaW5nRW5kSW5kZXggPT0gLTEgfHwgaSA8IHNhbXBsaW5nRW5kSW5k
ZXgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VDb21wbGV4aXR5LnNhbXBsZShzYW1w
bGUuY29tcGxleGl0eSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzYW1wbGUuc21vb3RoZWRG
cmFtZUxlbmd0aCAmJiBzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0aCAhPSAtMSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGF2ZXJhZ2VGcmFtZUxlbmd0aC5zYW1wbGUoc2FtcGxlLnNtb290aGVk
RnJhbWVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBhdmVyYWdlQ29tcGxleGl0eS5zYW1w
bGUoY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29u
LmNvbXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNtb290aGVkRnJhbWVMZW5n
dGggPSBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpz
b24uc21vb3RoZWRGcmFtZUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzbW9vdGhl
ZEZyYW1lTGVuZ3RoICYmIHNtb290aGVkRnJhbWVMZW5ndGggIT0gLTEpCisgICAgICAgICAgICAg
ICAgICAgICAgICBhdmVyYWdlRnJhbWVMZW5ndGguc2FtcGxlKHNtb290aGVkRnJhbWVMZW5ndGgp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogCkBAIC0xNjcsNiArMjE1LDgg
QEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAg
IGV4cGVyaW1lbnRSZXN1bHRbU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5wZXJjZW50XSA9IGF2
ZXJhZ2VGcmFtZUxlbmd0aC5wZXJjZW50YWdlKCk7CiAKICAgICAgICAgICAgIHJlc3VsdFtTdHJp
bmdzLmpzb24uc2NvcmVdID0gYXZlcmFnZUNvbXBsZXhpdHkuc2NvcmUoRXhwZXJpbWVudC5kZWZh
dWx0cy5DT05DRVJOKTsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dl
ckJvdW5kXSA9IHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdIC0gYXZlcmFnZUZyYW1lTGVuZ3Ro
LnN0YW5kYXJkRGV2aWF0aW9uKCk7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNj
b3JlVXBwZXJCb3VuZF0gPSByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSArIGF2ZXJhZ2VGcmFt
ZUxlbmd0aC5zdGFuZGFyZERldmlhdGlvbigpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTg4
LDEyICsyMzgsMjcgQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygK
ICAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7CiAgICAgfSwKIAotICAgIGdldCBzY29yZSgp
CisgICAgX2dldFJlc3VsdHNQcm9wZXJ0eTogZnVuY3Rpb24ocHJvcGVydHkpCiAgICAgewogICAg
ICAgICBpZiAodGhpcy5fcmVzdWx0cykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRz
W1N0cmluZ3MuanNvbi5zY29yZV07CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0c1tw
cm9wZXJ0eV07CiAgICAgICAgIHRoaXMuX3Byb2Nlc3NEYXRhKCk7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29yZV07CisgICAgICAgIHJldHVybiB0aGlzLl9y
ZXN1bHRzW3Byb3BlcnR5XTsKKyAgICB9LAorCisgICAgZ2V0IHNjb3JlKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9nZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlKTsK
KyAgICB9LAorCisgICAgZ2V0IHNjb3JlTG93ZXJCb3VuZCgpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fZ2V0UmVzdWx0c1Byb3BlcnR5KFN0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmQp
OworICAgIH0sCisKKyAgICBnZXQgc2NvcmVVcHBlckJvdW5kKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9nZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3Vu
ZCk7CiAgICAgfQogfSk7CiAKQEAgLTIzNywzNCArMzAyLDQwIEBAIFJlc3VsdHNUYWJsZSA9IFV0
aWxpdGllcy5jcmVhdGVDbGFzcygKIAogICAgICAgICAgICAgdmFyIHRoID0gVXRpbGl0aWVzLmNy
ZWF0ZUVsZW1lbnQoInRoIiwge30sIHJvdyk7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnRpdGxl
ICE9IFN0cmluZ3MudGV4dC5ncmFwaCkKLSAgICAgICAgICAgICAgICB0aC50ZXh0Q29udGVudCA9
IGhlYWRlci50aXRsZTsKKyAgICAgICAgICAgICAgICB0aC5pbm5lckhUTUwgPSBoZWFkZXIudGl0
bGU7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLmNoaWxkcmVuKQogICAgICAgICAgICAgICAgIHRo
LmNvbFNwYW4gPSBoZWFkZXIuY2hpbGRyZW4ubGVuZ3RoOwogICAgICAgICB9KTsKICAgICB9LAog
CisgICAgX2FkZEJvZHk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMudGJvZHkgPSBV
dGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidGJvZHkiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAgICB9
LAorCiAgICAgX2FkZEVtcHR5Um93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgcm93
ID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRyIiwge30sIHRoaXMuZWxlbWVudCk7CisgICAg
ICAgIHZhciByb3cgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy50Ym9k
eSk7CiAgICAgICAgIHRoaXMuX2ZsYXR0ZW5lZEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGVh
ZGVyKSB7CiAgICAgICAgICAgICByZXR1cm4gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwg
eyBjbGFzczogInN1aXRlcy1zZXBhcmF0b3IiIH0sIHJvdyk7CiAgICAgICAgIH0pOwogICAgIH0s
CiAKLSAgICBfYWRkVGVzdDogZnVuY3Rpb24odGVzdE5hbWUsIHRlc3RSZXN1bHRzLCBvcHRpb25z
KQorICAgIF9hZGRUZXN0OiBmdW5jdGlvbih0ZXN0TmFtZSwgdGVzdFJlc3VsdCwgb3B0aW9ucykK
ICAgICB7Ci0gICAgICAgIHZhciByb3cgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7
fSwgdGhpcy5lbGVtZW50KTsKKyAgICAgICAgdmFyIHJvdyA9IFV0aWxpdGllcy5jcmVhdGVFbGVt
ZW50KCJ0ciIsIHt9LCB0aGlzLnRib2R5KTsKIAogICAgICAgICB0aGlzLl9mbGF0dGVuZWRIZWFk
ZXJzLmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikgewogICAgICAgICAgICAgdmFyIHRkID0gVXRp
bGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwge30sIHJvdyk7CiAgICAgICAgICAgICBpZiAoaGVh
ZGVyLnRpdGxlID09IFN0cmluZ3MudGV4dC50ZXN0TmFtZSkgewogICAgICAgICAgICAgICAgIHRk
LnRleHRDb250ZW50ID0gdGVzdE5hbWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlci50
ZXh0KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0ZXN0UmVzdWx0c1toZWFkZXIudGV4
dF07CisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBoZWFkZXIudGV4dCA9PSAic3RyaW5n
IikgeworICAgICAgICAgICAgICAgIHZhciBkYXRhID0gdGVzdFJlc3VsdFtoZWFkZXIudGV4dF07
CiAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICJudW1iZXIiKQogICAgICAgICAg
ICAgICAgICAgICBkYXRhID0gZGF0YS50b0ZpeGVkKDIpOwotICAgICAgICAgICAgICAgIHRkLnRl
eHRDb250ZW50ID0gZGF0YTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZC5pbm5l
ckhUTUwgPSBkYXRhOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGQuaW5u
ZXJIVE1MID0gaGVhZGVyLnRleHQodGVzdFJlc3VsdCwgdGVzdE5hbWUpOwogICAgICAgICB9LCB0
aGlzKTsKICAgICB9LAogCkBAIC0yODQsNiArMzU1LDcgQEAgUmVzdWx0c1RhYmxlID0gVXRpbGl0
aWVzLmNyZWF0ZUNsYXNzKAogICAgIHsKICAgICAgICAgdGhpcy5jbGVhcigpOwogICAgICAgICB0
aGlzLl9hZGRIZWFkZXIoKTsKKyAgICAgICAgdGhpcy5fYWRkQm9keSgpOwogCiAgICAgICAgIHZh
ciBpdGVyYXRpb25zUmVzdWx0cyA9IGRhc2hib2FyZC5yZXN1bHRzOwogICAgICAgICBpdGVyYXRp
b25zUmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZXJhdGlvblJlc3VsdCwgaW5kZXgpIHsKQEAg
LTMyNywxMCArMzk5LDEwIEBAIHdpbmRvdy5zZWN0aW9uc01hbmFnZXIgPQogewogICAgIHNob3dT
ZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSWRlbnRpZmllciwgcHVzaFN0YXRlKQogICAgIHsKLSAg
ICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93aW5nLWludHJvIik7Ci0g
ICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgic2hvd2luZy1yZXN1bHRzIik7
Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgic2hvd2luZy10ZXN0LWNv
bnRhaW5lciIpOwotCisgICAgICAgIHZhciBzZWN0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIm1haW4gPiBzZWN0aW9uIik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Vj
dGlvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0
LnJlbW92ZSgic2hvd2luZy0iICsgc2VjdGlvbnNbaV0uaWQpOworICAgICAgICB9CiAgICAgICAg
IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgic2hvd2luZy0iICsgc2VjdGlvbklkZW50aWZp
ZXIpOwogCiAgICAgICAgIHZhciBjdXJyZW50U2VjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJzZWN0aW9uLnNlbGVjdGVkIik7CkBAIC0zNDYsMTEgKzQxOCwxMSBAQCB3aW5k
b3cuc2VjdGlvbnNNYW5hZ2VyID0KICAgICAgICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKHtzZWN0
aW9uOiBzZWN0aW9uSWRlbnRpZmllcn0sIGRvY3VtZW50LnRpdGxlKTsKICAgICB9LAogCi0gICAg
c2V0U2VjdGlvblNjb3JlOiBmdW5jdGlvbihzZWN0aW9uSWRlbnRpZmllciwgc2NvcmUsIG1lYW4p
CisgICAgc2V0U2VjdGlvblNjb3JlOiBmdW5jdGlvbihzZWN0aW9uSWRlbnRpZmllciwgc2NvcmUs
IGNvbmZpZGVuY2UpCiAgICAgewogICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIiAr
IHNlY3Rpb25JZGVudGlmaWVyICsgIiAuc2NvcmUiKS50ZXh0Q29udGVudCA9IHNjb3JlOwotICAg
ICAgICBpZiAobWVhbikKLSAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiICsg
c2VjdGlvbklkZW50aWZpZXIgKyAiIC5tZWFuIikudGV4dENvbnRlbnQgPSBtZWFuOworICAgICAg
ICBpZiAoY29uZmlkZW5jZSkKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMi
ICsgc2VjdGlvbklkZW50aWZpZXIgKyAiIC5jb25maWRlbmNlIikudGV4dENvbnRlbnQgPSBjb25m
aWRlbmNlOwogICAgIH0sCiAKICAgICBwb3B1bGF0ZVRhYmxlOiBmdW5jdGlvbih0YWJsZUlkZW50
aWZpZXIsIGhlYWRlcnMsIGRhc2hib2FyZCkKQEAgLTM2Myw5ICs0MzUsMzIgQEAgd2luZG93LnNl
Y3Rpb25zTWFuYWdlciA9CiB3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciA9IHsKICAgICBpbml0
aWFsaXplOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBiZW5jaG1hcmtDb250cm9sbGVyLmRl
dGVybWluZUNhbnZhc1NpemUoKTsKICAgICAgICAgYmVuY2htYXJrQ29udHJvbGxlci5hZGRPcmll
bnRhdGlvbkxpc3RlbmVySWZOZWNlc3NhcnkoKTsKICAgICB9LAogCisgICAgZGV0ZXJtaW5lQ2Fu
dmFzU2l6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBtYXRjaCA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIobWF4LWRldmljZS13aWR0aDogNzYwcHgpIik7CisgICAgICAgIGlmIChtYXRjaC5tYXRj
aGVzKSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoInNtYWxsIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtYXRjaCA9IHdpbmRv
dy5tYXRjaE1lZGlhKCIobWF4LWRldmljZS13aWR0aDogMTYwMHB4KSIpOworICAgICAgICBpZiAo
bWF0Y2gubWF0Y2hlcykgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRk
KCJtZWRpdW0iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1h
dGNoID0gd2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDE2MDBweCkiKTsKKyAgICAgICAg
aWYgKG1hdGNoLm1hdGNoZXMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0
LmFkZCgibWVkaXVtIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoImxhcmdlIik7CisgICAgfSwKKwogICAgIGFk
ZE9yaWVudGF0aW9uTGlzdGVuZXJJZk5lY2Vzc2FyeTogZnVuY3Rpb24oKSB7CiAgICAgICAgIGlm
ICghKCJvcmllbnRhdGlvbiIgaW4gd2luZG93KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTM5
Miw2ICs0ODcsMTAgQEAgd2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7CiAKICAgICBfc3Rh
cnRCZW5jaG1hcms6IGZ1bmN0aW9uKHN1aXRlcywgb3B0aW9ucywgZnJhbWVDb250YWluZXJJRCkK
ICAgICB7CisgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gZG9jdW1lbnQuYm9keS5jbGFzc05h
bWUubWF0Y2goL3NtYWxsfG1lZGl1bXxsYXJnZS8pOworICAgICAgICBpZiAoY29uZmlndXJhdGlv
bikKKyAgICAgICAgICAgIG9wdGlvbnNbU3RyaW5ncy5qc29uLmNvbmZpZ3VyYXRpb25dID0gY29u
ZmlndXJhdGlvblswXTsKKwogICAgICAgICBiZW5jaG1hcmtSdW5uZXJDbGllbnQuaW5pdGlhbGl6
ZShzdWl0ZXMsIG9wdGlvbnMpOwogICAgICAgICB2YXIgZnJhbWVDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChmcmFtZUNvbnRhaW5lcklEKTsKICAgICAgICAgdmFyIHJ1bm5lciA9
IG5ldyBCZW5jaG1hcmtSdW5uZXIoc3VpdGVzLCBmcmFtZUNvbnRhaW5lciwgYmVuY2htYXJrUnVu
bmVyQ2xpZW50KTsKQEAgLTQwMyw3ICs1MDIsNyBAQCB3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxl
ciA9IHsKICAgICBzdGFydEJlbmNobWFyazogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFy
IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICAidGVzdC1pbnRlcnZhbCI6IDIwLAorICAgICAgICAg
ICAgInRlc3QtaW50ZXJ2YWwiOiAzMCwKICAgICAgICAgICAgICJkaXNwbGF5IjogIm1pbmltYWwi
LAogICAgICAgICAgICAgImNvbnRyb2xsZXIiOiAicmFtcCIsCiAgICAgICAgICAgICAia2FsbWFu
LXByb2Nlc3MtZXJyb3IiOiAxLApAQCAtNDIxLDEwICs1MjAsMTIgQEAgd2luZG93LmJlbmNobWFy
a0NvbnRyb2xsZXIgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgZGFzaGJvYXJkID0gYmVu
Y2htYXJrUnVubmVyQ2xpZW50LnJlc3VsdHM7Ci0KLSAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNl
dFNlY3Rpb25TY29yZSgicmVzdWx0cyIsIGRhc2hib2FyZC5zY29yZS50b0ZpeGVkKDIpKTsKKyAg
ICAgICAgdmFyIHNjb3JlID0gZGFzaGJvYXJkLnNjb3JlOworICAgICAgICB2YXIgY29uZmlkZW5j
ZSA9ICLCsSIgKyAoU3RhdGlzdGljcy5sYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZShkYXNoYm9h
cmQuc2NvcmVMb3dlckJvdW5kLCBzY29yZSwgZGFzaGJvYXJkLnNjb3JlVXBwZXJCb3VuZCkgKiAx
MDApLnRvRml4ZWQoMikgKyAiJSI7CisgICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9u
U2NvcmUoInJlc3VsdHMiLCBzY29yZS50b0ZpeGVkKDIpLCBjb25maWRlbmNlKTsKICAgICAgICAg
c2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtaGVhZGVyIiwgSGVhZGVycy50
ZXN0TmFtZSwgZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFi
bGUoInJlc3VsdHMtc2NvcmUiLCBIZWFkZXJzLnNjb3JlLCBkYXNoYm9hcmQpOworICAgICAgICBz
ZWN0aW9uc01hbmFnZXIucG9wdWxhdGVUYWJsZSgicmVzdWx0cy1kYXRhIiwgSGVhZGVycy5kZXRh
aWxzLCBkYXNoYm9hcmQpOwogICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24oInJl
c3VsdHMiLCB0cnVlKTsKICAgICB9LAogCkBAIC00NzIsNyArNTczLDExIEBAIHdpbmRvdy5iZW5j
aG1hcmtDb250cm9sbGVyID0gewogICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJlbmNobWFya1J1
bm5lckNsaWVudC5yZXN1bHRzLm9wdGlvbnMsCiAgICAgICAgICAgICAgICAgZGF0YTogYmVuY2ht
YXJrUnVubmVyQ2xpZW50LnJlc3VsdHMuZGF0YQogICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
IGRhdGEudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShvdXRwdXQsIG51bGwsIDEpOworICAg
ICAgICAgICAgZGF0YS50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KG91dHB1dCwgZnVuY3Rp
b24oa2V5LCB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdu
dW1iZXInKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVXRpbGl0aWVzLnRvRml4ZWROdW1i
ZXIodmFsdWUsIDMpOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAg
IH0sIDEpOwogICAgICAgICB9LCAwKTsKICAgICAgICAgZGF0YS5vbmNsaWNrID0gZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwpA
QCAtNTAzLDcgKzYwOCw3IEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgY2FzZSAxOiB7CiAgICAgICAgICAgICAgICAgcmFuZ2Uuc2V0
U3RhcnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3Jlc3VsdHMgLnNjb3JlIiksIDApOwotICAg
ICAgICAgICAgICAgIHJhbmdlLnNldEVuZEFmdGVyKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNy
ZXN1bHRzLXNjb3JlID4gdHI6bGFzdC1vZi10eXBlIiksIDApOworICAgICAgICAgICAgICAgIHJh
bmdlLnNldEVuZEFmdGVyKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXN1bHRzLXNjb3JlIiks
IDApOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Y2FzZSAyOiB7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL3J1bm5lci9saW5lcy5zdmcgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL3J1bm5lci9saW5lcy5zdmcKaW5kZXggMTZjN2RjNy4uODM0NThiOCAxMDA2NDQKLS0tIGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvbGluZXMuc3ZnCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xpbmVzLnN2
ZwpAQCAtMiwyNSArMiwyNSBAQAogPCEtLSBDb3B5cmlnaHQgwqkgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuIC0tPgogPHN2ZyB2aWV3Qm94PSIwIDAgMTA1MiAxMjUxIiB2ZXJz
aW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgPGcgZmls
bC1vcGFjaXR5PSIwLjUiIGZpbGw9IndoaXRlIj4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIy
NTEuNzYxNzE5IDAgMjUzLjc2MTcxOSAwIDIuMTI4MzMzNDUgMTI1MC4zNjMyOCAwLjEyODMzMzQ1
NCAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjkxLjc2MTcxOSAwIDI5
NS43NjE3MTkgMCA0NC4xMjgzMzM1IDEyNTAuMzYzMjggNDAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+
Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzMxLjc2MTcxOSAwIDMzNy43NjE3MTkgMCA4Ni4x
MjgzMzM1IDEyNTAuMzYzMjggODAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5
Z29uIHBvaW50cz0iMzcxLjc2MTcxOSAwIDM3OS43NjE3MTkgMCAxMjguMTI4MzMzIDEyNTAuMzYz
MjggMTIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDEx
Ljc2MTcxOSAwIDQyMS43NjE3MTkgMCAxNzAuMTI4MzMzIDEyNTAuMzYzMjggMTYwLjEyODMzMyAx
MjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDUxLjc2MTcxOSAwIDQ2My43
NjE3MTkgMCAyMTIuMTI4MzMzIDEyNTAuMzYzMjggMjAwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0g
ICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDkxLjc2MTcxOSAwIDUwNS43NjE3MTkgMCAyNTQuMTI4
MzMzIDEyNTAuMzYzMjggMjQwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29u
IHBvaW50cz0iNTMxLjc2MTcxOSAwIDU0Ny43NjE3MTkgMCAyOTYuMTI4MzMzIDEyNTAuMzYzMjgg
MjgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNTcxLjc2
MTcxOSAwIDU4OS43NjE3MTkgMCAzMzguMTI4MzMzIDEyNTAuMzYzMjggMzIwLjEyODMzMyAxMjUw
LjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNjExLjc2MTcxOSAwIDYzMS43NjE3
MTkgMCAzODAuMTI4MzMzIDEyNTAuMzYzMjggMzYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAg
ICAgIDxwb2x5Z29uIHBvaW50cz0iNjUxLjc2MTcxOSAwIDY3My43NjE3MTkgMCA0MjIuMTI4MzMz
IDEyNTAuMzYzMjggNDAwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBv
aW50cz0iNjkxLjc2MTcxOSAwIDcxNS43NjE3MTkgMCA0NjQuMTI4MzMzIDEyNTAuMzYzMjggNDQw
LjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNzMxLjc2MTcx
OSAwIDc1Ny43NjE3MTkgMCA1MDYuMTI4MzMzIDEyNTAuMzYzMjggNDgwLjEyODMzMyAxMjUwLjM2
MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNzcxLjc2MTcxOSAwIDc5OS43NjE3MTkg
MCA1NDguMTI4MzMzIDEyNTAuMzYzMjggNTIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAg
IDxwb2x5Z29uIHBvaW50cz0iODExLjc2MTcxOSAwIDg0MS43NjE3MTkgMCA1OTAuMTI4MzMzIDEy
NTAuMzYzMjggNTYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50
cz0iODUxLjc2MTcxOSAwIDg4My43NjE3MTkgMCA2MzIuMTI4MzMzIDEyNTAuMzYzMjggNjAwLjEy
ODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iODkxLjc2MTcxOSAw
IDkyNS43NjE3MTkgMCA2NzQuMTI4MzMzIDEyNTAuMzYzMjggNjQwLjEyODMzMyAxMjUwLjM2MzI4
Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOTMxLjc2MTcxOSAwIDk2Ny43NjE3MTkgMCA3
MTYuMTI4MzMzIDEyNTAuMzYzMjggNjgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxw
b2x5Z29uIHBvaW50cz0iOTcxLjc2MTcxOSAwIDEwMDkuNzYxNzIgMCA3NTguMTI4MzMzIDEyNTAu
MzYzMjggNzIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0i
MTAxMS43NjE3MiAwIDEwNTEuNzYxNzIgMCA4MDAuMTI4MzMzIDEyNTAuMzYzMjggNzYwLjEyODMz
MyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIxLjc2MTcxOSAwIDIy
My43NjE3MTkgMCAyLjEyODMzMzQ1IDEyNTAuMzYzMjggMC4xMjgzMzM0NTQgMTI1MC4zNjMyOCIv
PgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI2MS43NjE3MTkgMCAyNjUuNzYxNzE5IDAgNDQu
MTI4MzMzNSAxMjUwLjM2MzI4IDQwLjEyODMzMzUgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9s
eWdvbiBwb2ludHM9IjMwMS43NjE3MTkgMCAzMDcuNzYxNzE5IDAgODYuMTI4MzMzNSAxMjUwLjM2
MzI4IDgwLjEyODMzMzUgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjM0
MS43NjE3MTkgMCAzNDkuNzYxNzE5IDAgMTI4LjEyODMzMyAxMjUwLjM2MzI4IDEyMC4xMjgzMzMg
MTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjM4MS43NjE3MTkgMCAzOTEu
NzYxNzE5IDAgMTcwLjEyODMzMyAxMjUwLjM2MzI4IDE2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgor
ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQyMS43NjE3MTkgMCA0MzMuNzYxNzE5IDAgMjEyLjEy
ODMzMyAxMjUwLjM2MzI4IDIwMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdv
biBwb2ludHM9IjQ2MS43NjE3MTkgMCA0NzUuNzYxNzE5IDAgMjU0LjEyODMzMyAxMjUwLjM2MzI4
IDI0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjUwMS43
NjE3MTkgMCA1MTcuNzYxNzE5IDAgMjk2LjEyODMzMyAxMjUwLjM2MzI4IDI4MC4xMjgzMzMgMTI1
MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU0MS43NjE3MTkgMCA1NTkuNzYx
NzE5IDAgMzM4LjEyODMzMyAxMjUwLjM2MzI4IDMyMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAg
ICAgICA8cG9seWdvbiBwb2ludHM9IjU4MS43NjE3MTkgMCA2MDEuNzYxNzE5IDAgMzgwLjEyODMz
MyAxMjUwLjM2MzI4IDM2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBw
b2ludHM9IjYyMS43NjE3MTkgMCA2NDMuNzYxNzE5IDAgNDIyLjEyODMzMyAxMjUwLjM2MzI4IDQw
MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjY2MS43NjE3
MTkgMCA2ODUuNzYxNzE5IDAgNDY0LjEyODMzMyAxMjUwLjM2MzI4IDQ0MC4xMjgzMzMgMTI1MC4z
NjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcwMS43NjE3MTkgMCA3MjcuNzYxNzE5
IDAgNTA2LjEyODMzMyAxMjUwLjM2MzI4IDQ4MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAg
ICA8cG9seWdvbiBwb2ludHM9Ijc0MS43NjE3MTkgMCA3NjkuNzYxNzE5IDAgNTQ4LjEyODMzMyAx
MjUwLjM2MzI4IDUyMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2lu
dHM9Ijc4MS43NjE3MTkgMCA4MTEuNzYxNzE5IDAgNTkwLjEyODMzMyAxMjUwLjM2MzI4IDU2MC4x
MjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjgyMS43NjE3MTkg
MCA4NTMuNzYxNzE5IDAgNjMyLjEyODMzMyAxMjUwLjM2MzI4IDYwMC4xMjgzMzMgMTI1MC4zNjMy
OCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg2MS43NjE3MTkgMCA4OTUuNzYxNzE5IDAg
Njc0LjEyODMzMyAxMjUwLjM2MzI4IDY0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8
cG9seWdvbiBwb2ludHM9IjkwMS43NjE3MTkgMCA5MzcuNzYxNzE5IDAgNzE2LjEyODMzMyAxMjUw
LjM2MzI4IDY4MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9
Ijk0MS43NjE3MTkgMCA5NzkuNzYxNzIgMCA3NTguMTI4MzMzIDEyNTAuMzYzMjggNzIwLjEyODMz
MyAxMjUwLjM2MzI4Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOTgxLjc2MTcyIDAgMTAy
MS43NjE3MiAwIDgwMC4xMjgzMzMgMTI1MC4zNjMyOCA3NjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4K
ICAgICA8L2c+CiA8L3N2Zz4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKaW5kZXggZTM0OWM2My4uZjVlMzk0MSAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVz
dHMuanMKQEAgLTEsNiArMSwxNSBAQAogdmFyIEhlYWRlcnMgPSB7CiAgICAgdGVzdE5hbWU6IFt7
IHRpdGxlOiBTdHJpbmdzLnRleHQudGVzdE5hbWUgfV0sCi0gICAgc2NvcmU6IFt7IHRpdGxlOiBT
dHJpbmdzLnRleHQuc2NvcmUsIHRleHQ6IFN0cmluZ3MuanNvbi5zY29yZSB9XQorICAgIHNjb3Jl
OiBbeyB0aXRsZTogU3RyaW5ncy50ZXh0LnNjb3JlLCB0ZXh0OiBTdHJpbmdzLmpzb24uc2NvcmUg
fV0sCisgICAgZGV0YWlsczogWworICAgICAgICB7CisgICAgICAgICAgICB0aXRsZTogIiZuYnNw
OyIsCisgICAgICAgICAgICB0ZXh0OiBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAg
dmFyIGJvb3RzdHJhcCA9IGRhdGFbU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldW1N0cmluZ3MuanNv
bi5ib290c3RyYXBdOworICAgICAgICAgICAgICAgIHJldHVybiAiPHNwYW4+wrEiICsgKFN0YXRp
c3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UoYm9vdHN0cmFwLmNvbmZpZGVuY2VMb3cs
IGJvb3RzdHJhcC5tZWRpYW4sIGJvb3RzdHJhcC5jb25maWRlbmNlSGlnaCkgKiAxMDApLnRvRml4
ZWQoMikgKyAiJTwvc3Bhbj4iOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgXQogfTsK
IAogdmFyIFN1aXRlID0gZnVuY3Rpb24obmFtZSwgdGVzdHMpIHsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcwppbmRleCA2NTg2ZTg2
Li45MzIyYTc5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL3N0YXRpc3RpY3MuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9zdGF0aXN0aWNzLmpzCkBAIC03MCw2ICs3MCwxMSBAQCBTdGF0aXN0aWNzID0KICAgICAg
ICAgICB2YXIgdCA9IDEuMCAvICgxLjAgKyBwICogdmFsdWUpOwogICAgICAgICAgIHZhciB5ID0g
MS4wIC0gKCgoKChhNSAqIHQgKyBhNCkgKiB0KSArIGEzKSAqIHQgKyBhMikgKiB0ICsgYTEpICog
dCAqIE1hdGguZXhwKC12YWx1ZSAqIHZhbHVlKTsKICAgICAgICAgICByZXR1cm4gc2lnbiAqIHk7
CisgICAgfSwKKworICAgIGxhcmdlc3REZXZpYXRpb25QZXJjZW50YWdlOiBmdW5jdGlvbihsb3cs
IG1lYW4sIGhpZ2gpCisgICAgeworICAgICAgICByZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMobG93
IC8gbWVhbiAtIDEpLCAoaGlnaCAvIG1lYW4gLSAxKSk7CiAgICAgfQogfTsKIApAQCAtMTQ4LDM5
ICsxNTMsNDkgQEAgRXhwZXJpbWVudC5kZWZhdWx0cyA9CiB9OwogCiBSZWdyZXNzaW9uID0gVXRp
bGl0aWVzLmNyZWF0ZUNsYXNzKAotICAgIGZ1bmN0aW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHks
IGdldEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgZGVzaXJlZEZyYW1lTGVuZ3Ro
KQorICAgIGZ1bmN0aW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdldEZyYW1lTGVuZ3RoLCBz
dGFydEluZGV4LCBlbmRJbmRleCwgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIGRlc2lyZWRGcmFt
ZUxlbmd0aCA9IGRlc2lyZWRGcmFtZUxlbmd0aCB8fCAxMDAwLzYwOwotICAgICAgICB2YXIgc2xv
cGUgPSB0aGlzLl9jYWxjdWxhdGVSZWdyZXNzaW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdl
dEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgewotICAgICAgICAgICAgc2hvdWxk
Q2xpcDogdHJ1ZSwKLSAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5ndGgsCi0gICAgICAg
ICAgICB0MTogMAotICAgICAgICB9KTsKLSAgICAgICAgdmFyIGZsYXQgPSB0aGlzLl9jYWxjdWxh
dGVSZWdyZXNzaW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdldEZyYW1lTGVuZ3RoLCBzdGFy
dEluZGV4LCBlbmRJbmRleCwgewotICAgICAgICAgICAgc2hvdWxkQ2xpcDogdHJ1ZSwKLSAgICAg
ICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5ndGgsCi0gICAgICAgICAgICB0MTogMCwKLSAgICAg
ICAgICAgIHQyOiAwCi0gICAgICAgIH0pOwotICAgICAgICB2YXIgZGVzaXJlZDsKLSAgICAgICAg
aWYgKHNsb3BlLmVycm9yIDwgZmxhdC5lcnJvcikKLSAgICAgICAgICAgIGRlc2lyZWQgPSBzbG9w
ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZGVzaXJlZCA9IGZsYXQ7CisgICAgICAgIHZh
ciBkZXNpcmVkRnJhbWVMZW5ndGggPSBvcHRpb25zLmRlc2lyZWRGcmFtZUxlbmd0aCB8fCAxMDAw
LzYwOworICAgICAgICB2YXIgYmVzdFByb2ZpbGU7CisKKyAgICAgICAgaWYgKCFvcHRpb25zLnBy
ZWZlcnJlZFByb2ZpbGUgfHwgb3B0aW9ucy5wcmVmZXJyZWRQcm9maWxlID09IFN0cmluZ3MuanNv
bi5wcm9maWxlcy5zbG9wZSkgeworICAgICAgICAgICAgdmFyIHNsb3BlID0gdGhpcy5fY2FsY3Vs
YXRlUmVncmVzc2lvbihzYW1wbGVzLCBnZXRDb21wbGV4aXR5LCBnZXRGcmFtZUxlbmd0aCwgc3Rh
cnRJbmRleCwgZW5kSW5kZXgsIHsKKyAgICAgICAgICAgICAgICBzaG91bGRDbGlwOiB0cnVlLAor
ICAgICAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5ndGgsCisgICAgICAgICAgICAgICAg
dDE6IDAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKCFiZXN0UHJvZmlsZSB8fCBz
bG9wZS5lcnJvciA8IGJlc3RQcm9maWxlLmVycm9yKSB7CisgICAgICAgICAgICAgICAgYmVzdFBy
b2ZpbGUgPSBzbG9wZTsKKyAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUgPSBTdHJpbmdzLmpz
b24ucHJvZmlsZXMuc2xvcGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYg
KCFvcHRpb25zLnByZWZlcnJlZFByb2ZpbGUgfHwgb3B0aW9ucy5wcmVmZXJyZWRQcm9maWxlID09
IFN0cmluZ3MuanNvbi5wcm9maWxlcy5mbGF0KSB7CisgICAgICAgICAgICB2YXIgZmxhdCA9IHRo
aXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29tcGxleGl0eSwgZ2V0RnJhbWVM
ZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7CisgICAgICAgICAgICAgICAgc2hvdWxkQ2xp
cDogdHJ1ZSwKKyAgICAgICAgICAgICAgICBzMTogZGVzaXJlZEZyYW1lTGVuZ3RoLAorICAgICAg
ICAgICAgICAgIHQxOiAwLAorICAgICAgICAgICAgICAgIHQyOiAwCisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgaWYgKCFiZXN0UHJvZmlsZSB8fCBmbGF0LmVycm9yIDwgYmVzdFByb2Zp
bGUuZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBiZXN0UHJvZmlsZSA9IGZsYXQ7CisgICAgICAg
ICAgICAgICAgdGhpcy5wcm9maWxlID0gU3RyaW5ncy5qc29uLnByb2ZpbGVzLmZsYXQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSBNYXRoLm1p
bihzdGFydEluZGV4LCBlbmRJbmRleCk7CiAgICAgICAgIHRoaXMuZW5kSW5kZXggPSBNYXRoLm1h
eChzdGFydEluZGV4LCBlbmRJbmRleCk7CiAKLSAgICAgICAgdGhpcy5jb21wbGV4aXR5ID0gZGVz
aXJlZC5jb21wbGV4aXR5OwotICAgICAgICB0aGlzLnMxID0gZGVzaXJlZC5zMTsKLSAgICAgICAg
dGhpcy50MSA9IGRlc2lyZWQudDE7Ci0gICAgICAgIHRoaXMuczIgPSBkZXNpcmVkLnMyOwotICAg
ICAgICB0aGlzLnQyID0gZGVzaXJlZC50MjsKLSAgICAgICAgdGhpcy5zdGRldjEgPSBkZXNpcmVk
LnN0ZGV2MTsKLSAgICAgICAgdGhpcy5zdGRldjIgPSBkZXNpcmVkLnN0ZGV2MjsKLSAgICAgICAg
dGhpcy5uMSA9IGRlc2lyZWQubjE7Ci0gICAgICAgIHRoaXMubjIgPSBkZXNpcmVkLm4yOwotICAg
ICAgICB0aGlzLmVycm9yID0gZGVzaXJlZC5lcnJvcjsKKyAgICAgICAgdGhpcy5jb21wbGV4aXR5
ID0gYmVzdFByb2ZpbGUuY29tcGxleGl0eTsKKyAgICAgICAgdGhpcy5zMSA9IGJlc3RQcm9maWxl
LnMxOworICAgICAgICB0aGlzLnQxID0gYmVzdFByb2ZpbGUudDE7CisgICAgICAgIHRoaXMuczIg
PSBiZXN0UHJvZmlsZS5zMjsKKyAgICAgICAgdGhpcy50MiA9IGJlc3RQcm9maWxlLnQyOworICAg
ICAgICB0aGlzLnN0ZGV2MSA9IGJlc3RQcm9maWxlLnN0ZGV2MTsKKyAgICAgICAgdGhpcy5zdGRl
djIgPSBiZXN0UHJvZmlsZS5zdGRldjI7CisgICAgICAgIHRoaXMubjEgPSBiZXN0UHJvZmlsZS5u
MTsKKyAgICAgICAgdGhpcy5uMiA9IGJlc3RQcm9maWxlLm4yOworICAgICAgICB0aGlzLmVycm9y
ID0gYmVzdFByb2ZpbGUuZXJyb3I7CiAgICAgfSwgewogCiAgICAgdmFsdWVBdDogZnVuY3Rpb24o
Y29tcGxleGl0eSkKQEAgLTIxNyw2ICsyMzIsNyBAQCBSZWdyZXNzaW9uID0gVXRpbGl0aWVzLmNy
ZWF0ZUNsYXNzKAogICAgICAgICAgICAgfTsKICAgICAgICAgfQogCisgICAgICAgIC8vIHggaXMg
ZXhwZWN0ZWQgdG8gaW5jcmVhc2UgaW4gY29tcGxleGl0eQogICAgICAgICB2YXIgaXRlcmF0aW9u
RGlyZWN0aW9uID0gZW5kSW5kZXggPiBzdGFydEluZGV4ID8gMSA6IC0xOwogICAgICAgICB2YXIg
bG93Q29tcGxleGl0eSA9IGdldENvbXBsZXhpdHkoc2FtcGxlcywgc3RhcnRJbmRleCk7CiAgICAg
ICAgIHZhciBoaWdoQ29tcGxleGl0eSA9IGdldENvbXBsZXhpdHkoc2FtcGxlcywgZW5kSW5kZXgp
OwpAQCAtMjQ1LDcgKzI2MSw5IEBAIFJlZ3Jlc3Npb24gPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CiAgICAgICAgICAgICBzMl9iZXN0ID0gczI7CiAgICAgICAgICAgICB0Ml9iZXN0ID0gdDI7CiAg
ICAgICAgICAgICBlcnJvcjJfYmVzdCA9IGVycm9yMjsKKyAgICAgICAgICAgIC8vIE51bWJlciBv
ZiBzYW1wbGVzIGluY2x1ZGVkIGluIHRoZSBmaXJzdCBzZWdtZW50LCBpbmNsdXNpdmUgb2Ygc3Bs
aXRJbmRleAogICAgICAgICAgICAgbjFfYmVzdCA9IGl0ZXJhdGlvbkRpcmVjdGlvbiAqIChzcGxp
dEluZGV4IC0gc3RhcnRJbmRleCkgKyAxOworICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHNhbXBs
ZXMgaW5jbHVkZWQgaW4gdGhlIHNlY29uZCBzZWdtZW50CiAgICAgICAgICAgICBuMl9iZXN0ID0g
aXRlcmF0aW9uRGlyZWN0aW9uICogKGVuZEluZGV4IC0gc3BsaXRJbmRleCk7CiAgICAgICAgICAg
ICBpZiAoIW9wdGlvbnMuc2hvdWxkQ2xpcCB8fCAoeF9wcmltZSA+PSBsb3dDb21wbGV4aXR5ICYm
IHhfcHJpbWUgPD0gaGlnaENvbXBsZXhpdHkpKQogICAgICAgICAgICAgICAgIHhfYmVzdCA9IHhf
cHJpbWU7CkBAIC0yOTAsOCArMzA4LDggQEAgUmVncmVzc2lvbiA9IFV0aWxpdGllcy5jcmVhdGVD
bGFzcygKICAgICAgICAgICAgIC8vIEFzc3VtZXMgdGhhdCB0aGUgdHdvIHNlZ21lbnRzIG1lZXQK
ICAgICAgICAgICAgIHZhciB4X3ByaW1lID0gKHMxIC0gczIpIC8gKHQyIC0gdDEpOwogCi0gICAg
ICAgICAgICB2YXIgZXJyb3IxID0gKGsxICsgYTEqczEqczEgKyBjMSp0MSp0MSAtIDIqZDEqczEg
LSAyKmgxKnQxICsgMipiMSpzMSp0MSkgfHwgMDsKLSAgICAgICAgICAgIHZhciBlcnJvcjIgPSAo
azIgKyBhMipzMipzMiArIGMyKnQyKnQyIC0gMipkMipzMiAtIDIqaDIqdDIgKyAyKmIyKnMyKnQy
KSB8fCAwOworICAgICAgICAgICAgdmFyIGVycm9yMSA9IChrMSArIGExKnMxKnMxICsgYzEqdDEq
dDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIHx8IE51bWJlci5NQVhfVkFMVUU7
CisgICAgICAgICAgICB2YXIgZXJyb3IyID0gKGsyICsgYTIqczIqczIgKyBjMip0Mip0MiAtIDIq
ZDIqczIgLSAyKmgyKnQyICsgMipiMipzMip0MikgfHwgTnVtYmVyLk1BWF9WQUxVRTsKIAogICAg
ICAgICAgICAgaWYgKGkgPT0gc3RhcnRJbmRleCkgewogICAgICAgICAgICAgICAgIHNldEJlc3Qo
czEsIHQxLCBlcnJvcjEsIHMyLCB0MiwgZXJyb3IyLCBpLCB4X3ByaW1lLCB4KTsKQEAgLTMyMiw4
ICszNDAsOCBAQCBSZWdyZXNzaW9uID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAg
ICAgICAgICAgICB0MiA9IG9wdGlvbnMudDIgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMudDIgOiAo
KEUgKyBsYW1iZGExKihoMiAtIGQyKnggLSBiMip5ICsgYTIqeXgpKSAvIChGICsgbGFtYmRhMSpL
KSk7CiAgICAgICAgICAgICAgICAgICAgIHhfcHJpbWUgPSAoczEgLSBzMikgLyAodDIgLSB0MSk7
CiAKLSAgICAgICAgICAgICAgICAgICAgZXJyb3IxID0gKChrMSArIGExKnMxKnMxICsgYzEqdDEq
dDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIC0gbGFtYmRhMSAqIE1hdGgucG93
KHkgLSAoczEgKyB0MSp4KSwgMikpIHx8IDA7Ci0gICAgICAgICAgICAgICAgICAgIGVycm9yMiA9
ICgoazIgKyBhMipzMipzMiArIGMyKnQyKnQyIC0gMipkMipzMiAtIDIqaDIqdDIgKyAyKmIyKnMy
KnQyKSArIGxhbWJkYTEgKiBNYXRoLnBvdyh5IC0gKHMyICsgdDIqeCksIDIpKSB8fCAwOworICAg
ICAgICAgICAgICAgICAgICBlcnJvcjEgPSAoKGsxICsgYTEqczEqczEgKyBjMSp0MSp0MSAtIDIq
ZDEqczEgLSAyKmgxKnQxICsgMipiMSpzMSp0MSkgLSBsYW1iZGExICogTWF0aC5wb3coeSAtIChz
MSArIHQxKngpLCAyKSkgfHwgTnVtYmVyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgICAgICAgICAg
ZXJyb3IyID0gKChrMiArIGEyKnMyKnMyICsgYzIqdDIqdDIgLSAyKmQyKnMyIC0gMipoMip0MiAr
IDIqYjIqczIqdDIpICsgbGFtYmRhMSAqIE1hdGgucG93KHkgLSAoczIgKyB0Mip4KSwgMikpIHx8
IE51bWJlci5NQVhfVkFMVUU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0MSAhPSB0MikK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC0zNzIsNyAr
MzkwLDggQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChSZWdyZXNzaW9uLCB7CiAgICAgICAgICAg
ICBjb25maWRlbmNlSGlnaDogYm9vdHN0cmFwRGF0YVtNYXRoLnJvdW5kKChpdGVyYXRpb25Db3Vu
dCAtIDEpICogKDEgKyBjb25maWRlbmNlUGVyY2VudGFnZSkgLyAyKV0sCiAgICAgICAgICAgICBt
ZWRpYW46IGJvb3RzdHJhcERhdGFbTWF0aC5yb3VuZChpdGVyYXRpb25Db3VudCAvIDIpXSwKICAg
ICAgICAgICAgIG1lYW46IGJvb3RzdHJhcEVzdGltYXRvci5tZWFuKCksCi0gICAgICAgICAgICBk
YXRhOiBib290c3RyYXBEYXRhCisgICAgICAgICAgICBkYXRhOiBib290c3RyYXBEYXRhLAorICAg
ICAgICAgICAgY29uZmlkZW5jZVBlcmNlbnRhZ2U6IGNvbmZpZGVuY2VQZXJjZW50YWdlCiAgICAg
ICAgIH07CiAgICAgfQogfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3N0cmluZ3MuanMKaW5kZXggMTkyMjlhYS4uYjU4ZjY3ZTkgMTAwNjQ0Ci0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMKQEAgLTksMTMgKzks
MTkgQEAgdmFyIFN0cmluZ3MgPSB7CiAgICAgICAgIHNhbXBsaW5nRW5kVGltZU9mZnNldDogIkVu
ZCBzYW1wbGluZyIsCiAKICAgICAgICAgc2FtcGxlczogInNhbXBsZXMiLAorICAgICAgICBkYXRh
RmllbGRNYXA6ICJkYXRhRmllbGRNYXAiLAogICAgICAgICBjb250cm9sbGVyOiAiY29udHJvbGxl
ciIsCisgICAgICAgIHRpbWU6ICJ0aW1lIiwKICAgICAgICAgY29tcGxleGl0eTogImNvbXBsZXhp
dHkiLAogICAgICAgICBjb21wbGV4aXR5QXZlcmFnZTogImNvbXBsZXhpdHlBdmVyYWdlIiwKICAg
ICAgICAgZnJhbWVMZW5ndGg6ICJmcmFtZUxlbmd0aCIsCisgICAgICAgIHNtb290aGVkRnJhbWVM
ZW5ndGg6ICJzbW9vdGhlZEZyYW1lTGVuZ3RoIiwKIAogICAgICAgICByZXN1bHQ6ICJyZXN1bHQi
LAorICAgICAgICBjb25maWd1cmF0aW9uOiAiY29uZmlndXJhdGlvbiIsCiAgICAgICAgIHNjb3Jl
OiAic2NvcmUiLAorICAgICAgICBzY29yZUxvd2VyQm91bmQ6ICJzY29yZUxvd2VyQm91bmQiLAor
ICAgICAgICBzY29yZVVwcGVyQm91bmQ6ICJzY29yZVVwcGVyQm91bmQiLAogICAgICAgICBib290
c3RyYXA6ICJib290c3RyYXAiLAogICAgICAgICBtZWFzdXJlbWVudHM6IHsKICAgICAgICAgICAg
IGF2ZXJhZ2U6ICJhdmVyYWdlIiwKQEAgLTI4LDcgKzM0LDEzIEBAIHZhciBTdHJpbmdzID0gewog
ICAgICAgICAgICAgc3RhcnRJbmRleDogInN0YXJ0SW5kZXgiLAogICAgICAgICAgICAgZW5kSW5k
ZXg6ICJlbmRJbmRleCIsCiAgICAgICAgICAgICBzZWdtZW50MTogInNlZ21lbnQxIiwKLSAgICAg
ICAgICAgIHNlZ21lbnQyOiAic2VnbWVudDIiCisgICAgICAgICAgICBzZWdtZW50MjogInNlZ21l
bnQyIiwKKyAgICAgICAgICAgIHByb2ZpbGU6ICJwcm9maWxlIgorICAgICAgICB9LAorCisgICAg
ICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICBzbG9wZTogInNsb3BlIiwKKyAgICAgICAgICAg
IGZsYXQ6ICJmbGF0IgogICAgICAgICB9LAogCiAgICAgICAgIHJlc3VsdHM6IHsKZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbAppbmRl
eCA3MzEyNTZkLi4wMjI2NGQ3IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvdGVzdHMvbWFzdGVyL2ZvY3VzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sCkBAIC0yMSw2ICsyMSw3IEBACiAgICAgfQogCiAg
ICAgI2NlbnRlci10ZXh0IHsKKyAgICAgICAgZm9udC1zaXplOiA5MCU7CiAgICAgICAgIHRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9mb2N1cy5q
cyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2Zv
Y3VzLmpzCmluZGV4IDU2NzI4OTcuLjI2YzI0NjUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ZvY3VzLmpzCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ZvY3VzLmpzCkBA
IC0xLDI3ICsxLDI1IEBACiAoZnVuY3Rpb24oKSB7CiAKIHZhciBtYXhWZXJ0aWNhbE9mZnNldCA9
IDUwOwotdmFyIHJhZGl1cyA9IDEwOwotdmFyIGNlbnRlckRpYW1ldGVyID0gMTAwOwotdmFyIHNp
emVWYXJpYW5jZSA9IDgwOwotdmFyIHRyYXZlbERpc3RhbmNlID0gNzA7Ci0KLXZhciBtaW5PYmpl
Y3REZXB0aCA9IDAuMjsKLXZhciBtYXhPYmplY3REZXB0aCA9IDEuMDsKK3ZhciBtaW5pbXVtRGlh
bWV0ZXIgPSAzMDsKK3ZhciBjZW50ZXJEaWFtZXRlciA9IDkwOwordmFyIHNpemVWYXJpYW5jZSA9
IDYwOwordmFyIHRyYXZlbERpc3RhbmNlID0gNTA7CiAKIHZhciBvcGFjaXR5TXVsdGlwbGllciA9
IDMwOwogCiB2YXIgRm9jdXNFbGVtZW50ID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgIGZ1
bmN0aW9uKHN0YWdlKQogICAgIHsKLSAgICAgICAgdmFyIHRvcE9mZnNldCA9IG1heFZlcnRpY2Fs
T2Zmc2V0ICogU3RhZ2UucmFuZG9tU2lnbigpOwotICAgICAgICB2YXIgdG9wID0gU3RhZ2UucmFu
ZG9tKDAsIHN0YWdlLnNpemUuaGVpZ2h0IC0gMiAqIHJhZGl1cyAtIHNpemVWYXJpYW5jZSk7Ci0g
ICAgICAgIHZhciBsZWZ0ID0gU3RhZ2UucmFuZG9tKDAsIHN0YWdlLnNpemUud2lkdGggLSAyICog
cmFkaXVzIC0gc2l6ZVZhcmlhbmNlKTsKKyAgICAgICAgdmFyIHNpemUgPSBtaW5pbXVtRGlhbWV0
ZXIgKyBzaXplVmFyaWFuY2U7CiAKICAgICAgICAgLy8gc2l6ZSBhbmQgYmx1cnJpbmcgYXJlIGEg
ZnVuY3Rpb24gb2YgZGVwdGgKLSAgICAgICAgdGhpcy5fZGVwdGggPSBVdGlsaXRpZXMubGVycCgx
IC0gTWF0aC5wb3coUHNldWRvLnJhbmRvbSgpLCAyKSwgbWluT2JqZWN0RGVwdGgsIG1heE9iamVj
dERlcHRoKTsKLSAgICAgICAgdmFyIGRpc3RhbmNlID0gVXRpbGl0aWVzLmxlcnAodGhpcy5fZGVw
dGgsIDEsIHNpemVWYXJpYW5jZSk7Ci0gICAgICAgIHZhciBzaXplID0gMiAqIHJhZGl1cyArIHNp
emVWYXJpYW5jZSAtIGRpc3RhbmNlOworICAgICAgICB0aGlzLl9kZXB0aCA9IFBzZXVkby5yYW5k
b20oKTsKKyAgICAgICAgdmFyIGRpc3RhbmNlID0gVXRpbGl0aWVzLmxlcnAodGhpcy5fZGVwdGgs
IDAsIHNpemVWYXJpYW5jZSk7CisgICAgICAgIHNpemUgLT0gZGlzdGFuY2U7CisKKyAgICAgICAg
dmFyIHRvcCA9IFN0YWdlLnJhbmRvbSgwLCBzdGFnZS5zaXplLmhlaWdodCAtIHNpemUpIC0gc3Rh
Z2UubWF4Qmx1clZhbHVlICogMzsKKyAgICAgICAgdmFyIGxlZnQgPSBTdGFnZS5yYW5kb20oMCwg
c3RhZ2Uuc2l6ZS53aWR0aCAtIHNpemUpIC0gc3RhZ2UubWF4Qmx1clZhbHVlICogMzsKIAogICAg
ICAgICB0aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
ICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS53aWR0aCA9IChzaXplICsgc3RhZ2UubWF4Qmx1clZh
bHVlICogNikgKyAicHgiOwpAQCAtMzAsMTYgKzI4LDE1IEBAIHZhciBGb2N1c0VsZW1lbnQgPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQg
PSBsZWZ0ICsgInB4IjsKICAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUuekluZGV4ID0gTWF0
aC5yb3VuZCgoMSAtIHRoaXMuX2RlcHRoKSAqIDEwKTsKIAotICAgICAgICB2YXIgcGFydGljbGUg
PSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgiZGl2Iiwge30sIHRoaXMuY29udGFpbmVyKTsKLSAg
ICAgICAgcGFydGljbGUuc3R5bGUud2lkdGggPSBzaXplICsgInB4IjsKLSAgICAgICAgcGFydGlj
bGUuc3R5bGUuaGVpZ2h0ID0gc2l6ZSArICJweCI7Ci0gICAgICAgIHBhcnRpY2xlLnN0eWxlLnRv
cCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7Ci0gICAgICAgIHBhcnRpY2xlLnN0
eWxlLmxlZnQgPSAoc3RhZ2UubWF4Qmx1clZhbHVlICogMykgKyAicHgiOwotICAgICAgICB0aGlz
LnBhcnRpY2xlID0gcGFydGljbGU7CisgICAgICAgIHRoaXMucGFydGljbGUgPSBVdGlsaXRpZXMu
Y3JlYXRlRWxlbWVudCgiZGl2Iiwge30sIHRoaXMuY29udGFpbmVyKTsKKyAgICAgICAgdGhpcy5w
YXJ0aWNsZS5zdHlsZS53aWR0aCA9IHNpemUgKyAicHgiOworICAgICAgICB0aGlzLnBhcnRpY2xl
LnN0eWxlLmhlaWdodCA9IHNpemUgKyAicHgiOworICAgICAgICB0aGlzLnBhcnRpY2xlLnN0eWxl
LnRvcCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7CisgICAgICAgIHRoaXMucGFy
dGljbGUuc3R5bGUubGVmdCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7CiAKICAg
ICAgICAgdmFyIGRlcHRoTXVsdGlwbGllciA9IFV0aWxpdGllcy5sZXJwKDEgLSB0aGlzLl9kZXB0
aCwgMC44LCAxKTsKLSAgICAgICAgdGhpcy5fc2luTXVsdGlwbGllciA9IFBzZXVkby5yYW5kb20o
KSAqIFN0YWdlLnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlwbGllcjsKLSAgICAgICAgdGhpcy5f
Y29zTXVsdGlwbGllciA9IFBzZXVkby5yYW5kb20oKSAqIFN0YWdlLnJhbmRvbVNpZ24oKSAqIGRl
cHRoTXVsdGlwbGllcjsKKyAgICAgICAgdGhpcy5fc2luTXVsdGlwbGllciA9IFBzZXVkby5yYW5k
b20oKSAqIFN0YWdlLnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlwbGllciAqIHRyYXZlbERpc3Rh
bmNlOworICAgICAgICB0aGlzLl9jb3NNdWx0aXBsaWVyID0gUHNldWRvLnJhbmRvbSgpICogU3Rh
Z2UucmFuZG9tU2lnbigpICogZGVwdGhNdWx0aXBsaWVyICogdHJhdmVsRGlzdGFuY2U7CiAgICAg
fSwgewogCiAgICAgaGlkZTogZnVuY3Rpb24oKQpAQCAtMTMxLDggKzEyOCw4IEBAIHZhciBGb2N1
c1N0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAogICAgIGFuaW1hdGU6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciB0aW1lID0gdGhpcy5fYmVuY2htYXJrLnRpbWVz
dGFtcDsKLSAgICAgICAgdmFyIHNpbkZhY3RvciA9IE1hdGguc2luKHRpbWUgLyB0aGlzLm1vdmVt
ZW50RHVyYXRpb24pICogdHJhdmVsRGlzdGFuY2U7Ci0gICAgICAgIHZhciBjb3NGYWN0b3IgPSBN
YXRoLmNvcyh0aW1lIC8gdGhpcy5tb3ZlbWVudER1cmF0aW9uKSAqIHRyYXZlbERpc3RhbmNlOwor
ICAgICAgICB2YXIgc2luRmFjdG9yID0gTWF0aC5zaW4odGltZSAvIHRoaXMubW92ZW1lbnREdXJh
dGlvbik7CisgICAgICAgIHZhciBjb3NGYWN0b3IgPSBNYXRoLmNvcyh0aW1lIC8gdGhpcy5tb3Zl
bWVudER1cmF0aW9uKTsKIAogICAgICAgICB2YXIgZm9jdXNQcm9ncmVzcyA9IDAuNSArIDAuNSAq
IE1hdGguc2luKHRpbWUgLyB0aGlzLmZvY3VzRHVyYXRpb24pOwogICAgICAgICB0aGlzLl9mb2Nh
bFBvaW50ID0gZm9jdXNQcm9ncmVzczsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEuanMgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzCmlu
ZGV4IDdhMDI4ZjIuLjZkZTVkMDYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEuanMKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcwpA
QCAtOCwxMCArOCwxMCBAQCB2YXIgSW1hZ2VEYXRhU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3Vi
Y2xhc3MoU3RhZ2UsCiAgICAgICAgIHRoaXMuX29mZnNldEluZGV4ID0gMDsKICAgICB9LCB7CiAK
LSAgICBpbWFnZVdpZHRoOiAxMDAsCi0gICAgaW1hZ2VIZWlnaHQ6IDEwMCwKKyAgICBpbWFnZVdp
ZHRoOiA1MCwKKyAgICBpbWFnZUhlaWdodDogNTAsCiAgICAgcGl4ZWxTdHJpZGU6IDQsCi0gICAg
cm93U3RyaWRlOiA0MDAsCisgICAgcm93U3RyaWRlOiAyMDAsCiAgICAgd2VpZ2h0TmVnYXRpdmVU
aHJlc2hvbGQ6IDAuMDQsCiAgICAgd2VpZ2h0UG9zaXRpdmVUaHJlc2hvbGQ6IDAuOTYsCiAgICAg
aW1hZ2VTcmNzOiBbCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvbWFzdGVyL3RleHQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvdGV4dC5odG1sCmluZGV4IDRjOWRkZTEuLjVlOTRiOGMgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sCkBAIC03LDI4ICs3
LDE1IEBACiAKICAgICAgICAgI3N0YWdlIHsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBIZWx2
ZXRpY2E7Ci0gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7Ci0gICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjMzEzNTM0Oy8qICNkMTk0OGM7Ki8KKyAgICAgICAgICAgIGZvbnQtc2l6ZTog
NTJweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMTM1MzQ7CiAgICAgICAgIH0K
LSAgICAgICAgQG1lZGlhIChtaW4tZGV2aWNlLWhlaWdodDogNzY4cHgpIGFuZCAobWF4LWRldmlj
ZS1oZWlnaHQ6IDEwMjRweCkgeworICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsK
ICAgICAgICAgICAgICNzdGFnZSB7CiAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4Owog
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgt
ZGV2aWNlLXdpZHRoOiA0MTRweCksCi0gICAgICAgICAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNl
LWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICAgICAg
ICAgI3N0YWdlIHsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6IDM2cHg7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lk
dGg6IDM3NXB4KSwKLSAgICAgICAgICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiAz
NzVweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgICAgICAgICAjc3RhZ2Ug
ewotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogMzIwcHgp
LAotICAgICAgICAgICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDMyMHB4KSBhbmQg
KG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKKyAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDU2
OHB4KSB7CiAgICAgICAgICAgICAjc3RhZ2UgewogICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTog
MjhweDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcwppbmRleCBlMTRlZDU5Li42YzY3MWMyIDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpz
CkBAIC0xNDksOCArMTQ5LDEyIEBAIENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CiAKICAgICBfcHJvY2Vzc0NvbXBsZXhpdHlTYW1wbGVzOiBmdW5jdGlvbihjb21wbGV4aXR5U2Ft
cGxlcywgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzKQogICAgIHsKKyAgICAgICAgY29tcGxleGl0
eUF2ZXJhZ2VTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCAwKTsKKyAg
ICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5mcmFt
ZUxlbmd0aCwgMSk7CisgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5hZGRGaWVsZChT
dHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnN0ZGV2LCAyKTsKKwogICAgICAgICBjb21wbGV4aXR5
U2FtcGxlcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICAgIHJldHVybiBhLmNvbXBs
ZXhpdHkgLSBiLmNvbXBsZXhpdHk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxleGl0eVNhbXBs
ZXMuZ2V0RmllbGRJbkRhdHVtKGEsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KSAtIGNvbXBsZXhp
dHlTYW1wbGVzLmdldEZpZWxkSW5EYXR1bShiLCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIC8vIFNhbXBsZXMgYXZlcmFnZWQgYmFzZWQgb24gY29tcGxl
eGl0eQpAQCAtMTU5LDIxICsxNjMsMjMgQEAgQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVD
bGFzcygKICAgICAgICAgZnVuY3Rpb24gYWRkU2FtcGxlKCkgewogICAgICAgICAgICAgdmFyIG1l
YW4gPSBleHBlcmltZW50QXRDb21wbGV4aXR5Lm1lYW4oKTsKICAgICAgICAgICAgIHZhciBzdGRl
diA9IGV4cGVyaW1lbnRBdENvbXBsZXhpdHkuc3RhbmRhcmREZXZpYXRpb24oKTsKLSAgICAgICAg
ICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBjb21w
bGV4aXR5OiBjdXJyZW50Q29tcGxleGl0eSwKLSAgICAgICAgICAgICAgICBmcmFtZUxlbmd0aDog
bWVhbiwKLSAgICAgICAgICAgICAgICBzdGRldjogc3RkZXYKLSAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB2YXIgYXZlcmFnZVNhbXBsZSA9IGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5j
cmVhdGVEYXR1bSgpOworICAgICAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLnB1c2go
YXZlcmFnZVNhbXBsZSk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0
RmllbGRJbkRhdHVtKGF2ZXJhZ2VTYW1wbGUsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCBjdXJy
ZW50Q29tcGxleGl0eSk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0
RmllbGRJbkRhdHVtKGF2ZXJhZ2VTYW1wbGUsIFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgbWVh
bik7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0RmllbGRJbkRhdHVt
KGF2ZXJhZ2VTYW1wbGUsIFN0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXYsIHN0ZGV2KTsK
ICAgICAgICAgfQogICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNh
bXBsZSkgewotICAgICAgICAgICAgaWYgKHNhbXBsZS5jb21wbGV4aXR5ICE9IGN1cnJlbnRDb21w
bGV4aXR5KSB7CisgICAgICAgICAgICB2YXIgc2FtcGxlQ29tcGxleGl0eSA9IGNvbXBsZXhpdHlT
YW1wbGVzLmdldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KTsK
KyAgICAgICAgICAgIGlmIChzYW1wbGVDb21wbGV4aXR5ICE9IGN1cnJlbnRDb21wbGV4aXR5KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRDb21wbGV4aXR5ID4gLTEpCiAgICAgICAgICAg
ICAgICAgICAgIGFkZFNhbXBsZSgpOwogCi0gICAgICAgICAgICAgICAgY3VycmVudENvbXBsZXhp
dHkgPSBzYW1wbGUuY29tcGxleGl0eTsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tcGxleGl0
eSA9IHNhbXBsZUNvbXBsZXhpdHk7CiAgICAgICAgICAgICAgICAgZXhwZXJpbWVudEF0Q29tcGxl
eGl0eSA9IG5ldyBFeHBlcmltZW50OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZXhwZXJp
bWVudEF0Q29tcGxleGl0eS5zYW1wbGUoc2FtcGxlLmZyYW1lTGVuZ3RoKTsKKyAgICAgICAgICAg
IGV4cGVyaW1lbnRBdENvbXBsZXhpdHkuc2FtcGxlKGNvbXBsZXhpdHlTYW1wbGVzLmdldEZpZWxk
SW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCkpOwogICAgICAgICB9KTsK
ICAgICAgICAgLy8gRmluaXNoIG9mZiB0aGUgbGFzdCBvbmUKICAgICAgICAgYWRkU2FtcGxlKCk7
CkBAIC0xOTIsMjkgKzE5OCwzNyBAQCBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNz
KAogCiAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdID0ge307CiAKLSAgICAg
ICAgdmFyIGNvbXBsZXhpdHlTYW1wbGVzID0gW10sIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyA9
IFtdOworICAgICAgICB2YXIgY29udHJvbGxlclNhbXBsZXMgPSBuZXcgU2FtcGxlRGF0YTsKKyAg
ICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbnRyb2xs
ZXJdID0gY29udHJvbGxlclNhbXBsZXM7CisKKyAgICAgICAgY29udHJvbGxlclNhbXBsZXMuYWRk
RmllbGQoU3RyaW5ncy5qc29uLnRpbWUsIDApOworICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5h
ZGRGaWVsZChTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgMSk7CisgICAgICAgIGNvbnRyb2xsZXJT
YW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgMik7CisgICAgICAgIGNv
bnRyb2xsZXJTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5zbW9vdGhlZEZyYW1lTGVuZ3Ro
LCAzKTsKKworICAgICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXMgPSBuZXcgU2FtcGxlRGF0YShj
b250cm9sbGVyU2FtcGxlcy5maWVsZE1hcCk7CiAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29u
LnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5XSA9IGNvbXBsZXhpdHlTYW1wbGVzOwot
ICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxl
eGl0eUF2ZXJhZ2VdID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzOwogCi0gICAgICAgIHJlc3Vs
dHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSA9IHNhbXBs
ZXNbMF0ubWFwKGZ1bmN0aW9uKHRpbWVzdGFtcCwgaSkgewotICAgICAgICAgICAgdmFyIHNhbXBs
ZSA9IHsKLSAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMK
LSAgICAgICAgICAgICAgICB0aW1lOiB0aW1lc3RhbXAgLSB0aGlzLl9zdGFydFRpbWVzdGFtcCwK
LSAgICAgICAgICAgICAgICBjb21wbGV4aXR5OiBzYW1wbGVzWzFdW2ldCi0gICAgICAgICAgICB9
OworICAgICAgICBzYW1wbGVzWzBdLmZvckVhY2goZnVuY3Rpb24odGltZXN0YW1wLCBpKSB7Cisg
ICAgICAgICAgICB2YXIgc2FtcGxlID0gY29udHJvbGxlclNhbXBsZXMuY3JlYXRlRGF0dW0oKTsK
KyAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVzLnB1c2goc2FtcGxlKTsKKyAgICAgICAgICAg
IGNvbXBsZXhpdHlTYW1wbGVzLnB1c2goc2FtcGxlKTsKKworICAgICAgICAgICAgLy8gUmVwcmVz
ZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzCisgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5z
ZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24udGltZSwgdGltZXN0YW1wIC0gdGhp
cy5fc3RhcnRUaW1lc3RhbXApOworICAgICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0Rmll
bGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIHNhbXBsZXNbMV1baV0p
OwogCiAgICAgICAgICAgICBpZiAoaSA9PSAwKQotICAgICAgICAgICAgICAgIHNhbXBsZS5mcmFt
ZUxlbmd0aCA9IDEwMDAvNjA7CisgICAgICAgICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0
RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoLCAxMDAwLzYwKTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzYW1wbGUuZnJhbWVMZW5ndGggPSB0
aW1lc3RhbXAgLSBzYW1wbGVzWzBdW2kgLSAxXTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVy
U2FtcGxlcy5zZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uZnJhbWVMZW5ndGgs
IHRpbWVzdGFtcCAtIHNhbXBsZXNbMF1baSAtIDFdKTsKIAogICAgICAgICAgICAgaWYgKHNhbXBs
ZXNbMl1baV0gIT0gLTEpCi0gICAgICAgICAgICAgICAgc2FtcGxlLnNtb290aGVkRnJhbWVMZW5n
dGggPSBzYW1wbGVzWzJdW2ldOwotCi0gICAgICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5wdXNo
KHNhbXBsZSk7Ci0gICAgICAgICAgICByZXR1cm4gc2FtcGxlOworICAgICAgICAgICAgICAgIGNv
bnRyb2xsZXJTYW1wbGVzLnNldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5zbW9v
dGhlZEZyYW1lTGVuZ3RoLCBzYW1wbGVzWzJdW2ldKTsKICAgICAgICAgfSwgdGhpcyk7CiAKKyAg
ICAgICAgdmFyIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyA9IG5ldyBTYW1wbGVEYXRhOworICAg
ICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxleGl0
eUF2ZXJhZ2VdID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzOwogICAgICAgICB0aGlzLl9wcm9j
ZXNzQ29tcGxleGl0eVNhbXBsZXMoY29tcGxleGl0eVNhbXBsZXMsIGNvbXBsZXhpdHlBdmVyYWdl
U2FtcGxlcyk7CiAgICAgfQogfSk7CkBAIC0zMzEsNyArMzQ1LDcgQEAgUmFtcENvbnRyb2xsZXIg
PSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAgdGhpcy5fbWF4
aW11bUNvbXBsZXhpdHkgPSAxOwogCiAgICAgICAgIC8vIEFmdGVyIHRoZSB0aWVyIHJhbmdlIGlz
IGRldGVybWluZWQsIGZpZ3VyZSBvdXQgdGhlIG51bWJlciBvZiByYW1wIGl0ZXJhdGlvbnMKLSAg
ICAgICAgdmFyIG1pbmltdW1SYW1wTGVuZ3RoID0gMjUwMDsKKyAgICAgICAgdmFyIG1pbmltdW1S
YW1wTGVuZ3RoID0gMzAwMDsKICAgICAgICAgdmFyIHRvdGFsUmFtcEl0ZXJhdGlvbnMgPSBNYXRo
Lm1heCgxLCBNYXRoLmZsb29yKHRoaXMuX2VuZFRpbWVzdGFtcCAvIG1pbmltdW1SYW1wTGVuZ3Ro
KSk7CiAgICAgICAgIC8vIEdpdmUgYSBsaXR0bGUgZXh0cmEgcm9vbSB0byBydW4gc2luY2UgdGhl
IHJhbXBzIHdvbid0IGJlIGV4YWN0bHkgdGhpcyBsZW5ndGgKICAgICAgICAgdGhpcy5fcmFtcExl
bmd0aCA9IE1hdGguZmxvb3IoKHRoaXMuX2VuZFRpbWVzdGFtcCAtIHRvdGFsUmFtcEl0ZXJhdGlv
bnMgKiB0aGlzLmludGVydmFsU2FtcGxpbmdMZW5ndGgpIC8gdG90YWxSYW1wSXRlcmF0aW9ucyk7
CkBAIC0zNTcsMTUgKzM3MSwxOCBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVT
dWJjbGFzcyhDb250cm9sbGVyLAogICAgIGZyYW1lTGVuZ3RoRGVzaXJlZDogMTAwMC82MCwKICAg
ICAvLyBBZGQgc29tZSB0b2xlcmFuY2U7IGZyYW1lIGxlbmd0aHMgc2hvcnRlciB0aGFuIHRoaXMg
YXJlIGNvbnNpZGVyZWQgdG8gYmUgQCB0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGgKICAgICBmcmFt
ZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQ6IDEwMDAvNTgsCi0gICAgLy8gUmVwcmVzZW50cyB0aGUg
bG93ZXIgYm91bmQgdGhyZXNob2xkIGluIG9yZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNvbXBsZXhp
dHkgcmFuZ2UgdG8gc2FtcGxlCi0gICAgZnJhbWVMZW5ndGhTbG93ZXN0VGhyZXNob2xkOiAxMDAw
LzMwLAorICAgIC8vIER1cmluZyB0aWVyIHNhbXBsaW5nIGdldCBhdCBsZWFzdCB0aGlzIHNsb3cg
dG8gZmluZCB0aGUgcmlnaHQgY29tcGxleGl0eSByYW5nZQorICAgIGZyYW1lTGVuZ3RoVGllclRo
cmVzaG9sZDogMTAwMC8zMCwKICAgICAvLyBUcnkgdG8gbWFrZSBlYWNoIHJhbXAgZ2V0IHRoaXMg
c2xvdyBzbyB0aGF0IHdlIGNhbiBjcm9zcyB0aGUgYnJlYWsgcG9pbnQKICAgICBmcmFtZUxlbmd0
aFJhbXBMb3dlclRocmVzaG9sZDogMTAwMC80NSwKKyAgICAvLyBEbyBub3QgbGV0IHRoZSByZWdy
ZXNzaW9uIGNhbGN1bGF0aW9uIGF0IHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2YgYSByYW1wIGdl
dCBzbG93ZXIgdGhhbiB0aGlzIHRocmVzaG9sZAorICAgIGZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhy
ZXNob2xkOiAxMDAwLzIwLAogCiAgICAgc3RhcnQ6IGZ1bmN0aW9uKHN0YXJ0VGltZXN0YW1wLCBz
dGFnZSkKICAgICB7CiAgICAgICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnN0YXJ0LmNhbGwodGhp
cywgc3RhcnRUaW1lc3RhbXAsIHN0YWdlKTsKICAgICAgICAgdGhpcy5fcmFtcFN0YXJ0VGltZXN0
YW1wID0gMDsKKyAgICAgICAgdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoID0gMTAwOwogICAg
IH0sCiAKICAgICBkaWRGaW5pc2hJbnRlcnZhbDogZnVuY3Rpb24odGltZXN0YW1wLCBzdGFnZSwg
aW50ZXJ2YWxBdmVyYWdlRnJhbWVMZW5ndGgpCkBAIC0zNzYsNyArMzkzLDcgQEAgUmFtcENvbnRy
b2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKIAogICAgICAgICAg
ICAgdmFyIGN1cnJlbnRDb21wbGV4aXR5ID0gc3RhZ2UuY29tcGxleGl0eSgpOwogICAgICAgICAg
ICAgdmFyIGN1cnJlbnRGcmFtZUxlbmd0aCA9IHRoaXMuX2ZyYW1lTGVuZ3RoRXN0aW1hdG9yLmVz
dGltYXRlOwotICAgICAgICAgICAgaWYgKGN1cnJlbnRGcmFtZUxlbmd0aCA8IHRoaXMuZnJhbWVM
ZW5ndGhTbG93ZXN0VGhyZXNob2xkKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudEZyYW1lTGVu
Z3RoIDwgdGhpcy5mcmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQpIHsKICAgICAgICAgICAgICAgICB2
YXIgaXNBbmltYXRpbmdBdDYwRlBTID0gY3VycmVudEZyYW1lTGVuZ3RoIDwgdGhpcy5mcmFtZUxl
bmd0aERlc2lyZWRUaHJlc2hvbGQ7CiAgICAgICAgICAgICAgICAgdmFyIGhhc0ZpbmlzaGVkU2xv
d1RpZXJUZXN0ID0gdGltZXN0YW1wID4gdGhpcy5fdGllclN0YXJ0VGltZXN0YW1wICsgdGhpcy50
aWVyU2xvd1Rlc3RMZW5ndGg7CiAKQEAgLTQwNCw2ICs0MjEsNyBAQCBSYW1wQ29udHJvbGxlciA9
IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAogCiAgICAgICAgICAgICB0aGlz
Ll9maW5pc2hlZFRpZXJTYW1wbGluZyA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLmlzRnJhbWVM
ZW5ndGhFc3RpbWF0b3JFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmludGVydmFs
U2FtcGxpbmdMZW5ndGggPSAxMjA7CiAKICAgICAgICAgICAgIC8vIEV4dGVuZCB0aGUgdGVzdCBs
ZW5ndGggc28gdGhhdCB0aGUgZnVsbCB0ZXN0IGxlbmd0aCBpcyBtYWRlIG9mIHRoZSByYW1wcwog
ICAgICAgICAgICAgdGhpcy5fZW5kVGltZXN0YW1wICs9IHRpbWVzdGFtcDsKQEAgLTQxOCw3ICs0
MzYsNyBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9s
bGVyLAogICAgICAgICAgICAgLy8gSW50ZXJwb2xhdGUgYSBtYXhpbXVtIGNvbXBsZXhpdHkgdGhh
dCBnZXRzIHVzIGFyb3VuZCB0aGUgbG93ZXN0IHRocmVzaG9sZC4KICAgICAgICAgICAgIC8vIEF2
b2lkIGRvaW5nIHRoaXMgY2FsY3VsYXRpb24gaWYgd2UgbmV2ZXIgZ2V0IG91dCBvZiB0aGUgZmly
c3QgdGllciAod2hlcmUgdGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5IGlzIHVuZGVmaW5lZCkuCiAg
ICAgICAgICAgICBpZiAodGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5ICYmIHRoaXMuX2xhc3RUaWVy
Q29tcGxleGl0eSAhPSBjdXJyZW50Q29tcGxleGl0eSkKLSAgICAgICAgICAgICAgICB0aGlzLl9t
YXhpbXVtQ29tcGxleGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnBy
b2dyZXNzVmFsdWUodGhpcy5mcmFtZUxlbmd0aFNsb3dlc3RUaHJlc2hvbGQsIHRoaXMuX2xhc3RU
aWVyRnJhbWVMZW5ndGgsIGN1cnJlbnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxl
eGl0eSwgY3VycmVudENvbXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXhpbXVt
Q29tcGxleGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dyZXNz
VmFsdWUodGhpcy5mcmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQsIHRoaXMuX2xhc3RUaWVyRnJhbWVM
ZW5ndGgsIGN1cnJlbnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSwgY3Vy
cmVudENvbXBsZXhpdHkpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8v
IElmIHRoZSBicm93c2VyIGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgdGhlIG1vc3QgY29tcGxleCB2
ZXJzaW9uIG9mIHRoZSB0ZXN0LCB1c2UgdGhhdAogICAgICAgICAgICAgICAgIHRoaXMuX21heGlt
dW1Db21wbGV4aXR5ID0gY3VycmVudENvbXBsZXhpdHk7CkBAIC00NjQsNyArNDgyLDcgQEAgUmFt
cENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAg
ICAgdmFyIGludGVydmFsRnJhbWVMZW5ndGhNZWFuID0gdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0
aEVzdGltYXRvci5tZWFuKCk7CiAgICAgICAgIHZhciBpbnRlcnZhbEZyYW1lTGVuZ3RoU3RhbmRh
cmREZXZpYXRpb24gPSB0aGlzLl9pbnRlcnZhbEZyYW1lTGVuZ3RoRXN0aW1hdG9yLnN0YW5kYXJk
RGV2aWF0aW9uKCk7CiAKLSAgICAgICAgaWYgKGludGVydmFsRnJhbWVMZW5ndGhNZWFuIDwgdGhp
cy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQgJiYgdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0
aEVzdGltYXRvci5jZGYodGhpcy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQpID4gLjk1KSB7
CisgICAgICAgIGlmIChpbnRlcnZhbEZyYW1lTGVuZ3RoTWVhbiA8IHRoaXMuZnJhbWVMZW5ndGhE
ZXNpcmVkVGhyZXNob2xkICYmIHRoaXMuX2ludGVydmFsRnJhbWVMZW5ndGhFc3RpbWF0b3IuY2Rm
KHRoaXMuZnJhbWVMZW5ndGhEZXNpcmVkVGhyZXNob2xkKSA+IC45KSB7CiAgICAgICAgICAgICB0
aGlzLl9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5ID0gTWF0aC5tYXgodGhpcy5fcG9zc2libGVN
aW5pbXVtQ29tcGxleGl0eSwgY3VycmVudENvbXBsZXhpdHkpOwogICAgICAgICB9IGVsc2UgaWYg
KGludGVydmFsRnJhbWVMZW5ndGhTdGFuZGFyZERldmlhdGlvbiA+IDIpIHsKICAgICAgICAgICAg
IC8vIEluIHRoZSBjYXNlIHdoZXJlIHdlIG1pZ2h0IGhhdmUgZm91bmQgYSBwcmV2aW91cyBpbnRl
cnZhbCB3aGVyZSA2MGZwcyB3YXMgcmVhY2hlZC4gV2UgaGl0IGEgc2lnbmlmaWNhbnQgYmxpcCwK
QEAgLTQ3OCwyOCArNDk2LDM2IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1
YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAgIHZhciBwcm9ncmVzcyA9ICh0aW1lc3RhbXAgLSB0
aGlzLl9yYW1wU3RhcnRUaW1lc3RhbXApIC8gdGhpcy5fY3VycmVudFJhbXBMZW5ndGg7CiAKICAg
ICAgICAgaWYgKHByb2dyZXNzIDwgMSkgewotICAgICAgICAgICAgc3RhZ2UudHVuZShNYXRoLmZs
b29yKFV0aWxpdGllcy5sZXJwKHByb2dyZXNzLCB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSwgdGhp
cy5fbWluaW11bUNvbXBsZXhpdHkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKKyAgICAgICAgICAg
IC8vIFJlZnJhbWUgcHJvZ3Jlc3MgcGVyY2VudGFnZSBzbyB0aGF0IHRoZSBsYXN0IGludGVydmFs
IG9mIHRoZSByYW1wIGNhbiBzYW1wbGUgYXQgbWluaW11bSBjb21wbGV4aXR5CisgICAgICAgICAg
ICBwcm9ncmVzcyA9ICh0aW1lc3RhbXAgLSB0aGlzLl9yYW1wU3RhcnRUaW1lc3RhbXApIC8gKHRo
aXMuX2N1cnJlbnRSYW1wTGVuZ3RoIC0gdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoKTsKKyAg
ICAgICAgICAgIHN0YWdlLnR1bmUoTWF0aC5tYXgodGhpcy5fbWluaW11bUNvbXBsZXhpdHksIE1h
dGguZmxvb3IoVXRpbGl0aWVzLmxlcnAocHJvZ3Jlc3MsIHRoaXMuX21heGltdW1Db21wbGV4aXR5
LCB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciByZWdyZXNzaW9uID0gbmV3
IFJlZ3Jlc3Npb24odGhpcy5fc2FtcGxlci5zYW1wbGVzLCB0aGlzLl9nZXRDb21wbGV4aXR5LCB0
aGlzLl9nZXRGcmFtZUxlbmd0aCwKLSAgICAgICAgICAgIHRoaXMuX3NhbXBsZXIuc2FtcGxlQ291
bnQgLSAxLCB0aGlzLl9yYW1wU3RhcnRJbmRleCwgdGhpcy5mcmFtZUxlbmd0aERlc2lyZWQpOwor
ICAgICAgICAgICAgdGhpcy5fc2FtcGxlci5zYW1wbGVDb3VudCAtIDEsIHRoaXMuX3JhbXBTdGFy
dEluZGV4LCB7IGRlc2lyZWRGcmFtZUxlbmd0aDogdGhpcy5mcmFtZUxlbmd0aERlc2lyZWQgfSk7
CiAgICAgICAgIHRoaXMuX3JhbXBSZWdyZXNzaW9ucy5wdXNoKHJlZ3Jlc3Npb24pOwogCi0gICAg
ICAgIHZhciBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0aGlz
Ll9tYXhpbXVtQ29tcGxleGl0eSk7Ci0gICAgICAgIGlmIChpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0
aCA8IHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQpCi0gICAgICAgICAgICB0aGlz
Ll9wb3NzaWJsZU1heGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChV
dGlsaXRpZXMucHJvZ3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xk
LCBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCwgdGhpcy5fbGFzdFRpZXJGcmFtZUxlbmd0aCksIHRo
aXMuX21heGltdW1Db21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkpKTsKKyAgICAg
ICAgdmFyIGZyYW1lTGVuZ3RoQXRNYXhDb21wbGV4aXR5ID0gcmVncmVzc2lvbi52YWx1ZUF0KHRo
aXMuX21heGltdW1Db21wbGV4aXR5KTsKKyAgICAgICAgaWYgKGZyYW1lTGVuZ3RoQXRNYXhDb21w
bGV4aXR5IDwgdGhpcy5mcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZCkKKyAgICAgICAgICAg
IHRoaXMuX3Bvc3NpYmxlTWF4aW11bUNvbXBsZXhpdHkgPSBNYXRoLmZsb29yKFV0aWxpdGllcy5s
ZXJwKFV0aWxpdGllcy5wcm9ncmVzc1ZhbHVlKHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJl
c2hvbGQsIGZyYW1lTGVuZ3RoQXRNYXhDb21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckZyYW1lTGVu
Z3RoKSwgdGhpcy5fbWF4aW11bUNvbXBsZXhpdHksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSkp
OworICAgICAgICAvLyBJZiB0aGUgcmVncmVzc2lvbiBkb2Vzbid0IGZpdCB0aGUgZmlyc3Qgc2Vn
bWVudCBhdCBhbGwsIGtlZXAgdGhlIG1pbmltdW0gYm91bmQgYXQgMQorICAgICAgICBpZiAoKHRp
bWVzdGFtcCAtIHRoaXMuX3NhbXBsZXIuc2FtcGxlc1swXVt0aGlzLl9zYW1wbGVyLnNhbXBsZUNv
dW50IC0gcmVncmVzc2lvbi5uMV0pIC8gdGhpcy5fY3VycmVudFJhbXBMZW5ndGggPCAuMjUpCisg
ICAgICAgICAgICB0aGlzLl9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5ID0gMTsKIAotICAgICAg
ICBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0aGlzLl9taW5p
bXVtQ29tcGxleGl0eSk7CiAgICAgICAgIHRoaXMuX21pbmltdW1Db21wbGV4aXR5RXN0aW1hdG9y
LnNhbXBsZSh0aGlzLl9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5KTsKLQotICAgICAgICB0aGlz
Ll9jaGFuZ2VQb2ludEVzdGltYXRvci5zYW1wbGUocmVncmVzc2lvbi5jb21wbGV4aXR5KTsKLQog
ICAgICAgICB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSA9IE1hdGgucm91bmQodGhpcy5fbWluaW11
bUNvbXBsZXhpdHlFc3RpbWF0b3IubWVhbigpKTsKLSAgICAgICAgdGhpcy5fbWF4aW11bUNvbXBs
ZXhpdHkgPSBNYXRoLnJvdW5kKHRoaXMuX21pbmltdW1Db21wbGV4aXR5ICsKLSAgICAgICAgICAg
IE1hdGgubWF4KDUsCi0gICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVNYXhpbXVtQ29tcGxl
eGl0eSAtIHRoaXMuX21pbmltdW1Db21wbGV4aXR5LAotICAgICAgICAgICAgICAgICh0aGlzLl9j
aGFuZ2VQb2ludEVzdGltYXRvci5tZWFuKCkgLSB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkgKiAy
KSk7CisKKyAgICAgICAgaWYgKGZyYW1lTGVuZ3RoQXRNYXhDb21wbGV4aXR5IDwgdGhpcy5mcmFt
ZUxlbmd0aFJhbXBVcHBlclRocmVzaG9sZCkgeworICAgICAgICAgICAgdGhpcy5fY2hhbmdlUG9p
bnRFc3RpbWF0b3Iuc2FtcGxlKHJlZ3Jlc3Npb24uY29tcGxleGl0eSk7CisgICAgICAgICAgICB0
aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9IE1hdGgucm91bmQodGhpcy5fbWluaW11bUNvbXBsZXhp
dHkgKworICAgICAgICAgICAgICAgIE1hdGgubWF4KDUsCisgICAgICAgICAgICAgICAgICAgIHRo
aXMuX3Bvc3NpYmxlTWF4aW11bUNvbXBsZXhpdHkgLSB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSwK
KyAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NoYW5nZVBvaW50RXN0aW1hdG9yLm1lYW4oKSAt
IHRoaXMuX21pbmltdW1Db21wbGV4aXR5KSAqIDIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIC8vIFRoZSBzbG93ZXN0IHNhbXBsZXMgd2VpZ2hlZCB0aGUgcmVncmVzc2lvbiB0b28g
aGVhdmlseQorICAgICAgICAgICAgdGhpcy5fbWF4aW11bUNvbXBsZXhpdHkgPSBNYXRoLm1heChN
YXRoLnJvdW5kKC44ICogdGhpcy5fbWF4aW11bUNvbXBsZXhpdHkpLCB0aGlzLl9taW5pbXVtQ29t
cGxleGl0eSArIDUpOworICAgICAgICB9CiAKICAgICAgICAgLy8gTmV4dCByYW1wCiAgICAgICAg
IHN0YWdlLnR1bmUodGhpcy5fbWF4aW11bUNvbXBsZXhpdHkgLSBzdGFnZS5jb21wbGV4aXR5KCkp
OwpAQCAtNTI5LDIxICs1NTUsMjIgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRl
U3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLm1h
cmtzXVttYXJrTmFtZV0udGltZSAtPSBzdGFydFRpbWVzdGFtcDsKICAgICAgICAgfQogCi0gICAg
ICAgIHZhciB0aW1lU2FtcGxlcyA9IHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmlu
Z3MuanNvbi5jb250cm9sbGVyXTsKLSAgICAgICAgdGltZVNhbXBsZXMuZm9yRWFjaChmdW5jdGlv
bih0aW1lU2FtcGxlKSB7Ci0gICAgICAgICAgICB0aW1lU2FtcGxlLnRpbWUgLT0gc3RhcnRUaW1l
c3RhbXA7CisgICAgICAgIHZhciBjb250cm9sbGVyU2FtcGxlcyA9IHJlc3VsdHNbU3RyaW5ncy5q
c29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXTsKKyAgICAgICAgY29udHJvbGxl
clNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbih0aW1lU2FtcGxlKSB7CisgICAgICAgICAgICBjb250
cm9sbGVyU2FtcGxlcy5zZXRGaWVsZEluRGF0dW0odGltZVNhbXBsZSwgU3RyaW5ncy5qc29uLnRp
bWUsIGNvbnRyb2xsZXJTYW1wbGVzLmdldEZpZWxkSW5EYXR1bSh0aW1lU2FtcGxlLCBTdHJpbmdz
Lmpzb24udGltZSkgLSBzdGFydFRpbWVzdGFtcCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIC8v
IEFnZ3JlZ2F0ZSBhbGwgb2YgdGhlIHJhbXBzIGludG8gb25lIGJpZyBjb21wbGV4aXR5LWZyYW1l
TGVuZ3RoIGRhdGFzZXQKLSAgICAgICAgdmFyIGNvbXBsZXhpdHlTYW1wbGVzID0gW10sIGNvbXBs
ZXhpdHlBdmVyYWdlU2FtcGxlcyA9IFtdOworICAgICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXMg
PSBuZXcgU2FtcGxlRGF0YShjb250cm9sbGVyU2FtcGxlcy5maWVsZE1hcCk7CiAgICAgICAgIHJl
c3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5XSA9IGNv
bXBsZXhpdHlTYW1wbGVzOwotICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtT
dHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2VdID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVz
OwogCiAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdID0gW107CiAgICAg
ICAgIHRoaXMuX3JhbXBSZWdyZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHJhbXApIHsKICAgICAg
ICAgICAgIHZhciBzdGFydEluZGV4ID0gcmFtcC5zdGFydEluZGV4LCBlbmRJbmRleCA9IHJhbXAu
ZW5kSW5kZXg7Ci0gICAgICAgICAgICB2YXIgc3RhcnRUaW1lID0gdGltZVNhbXBsZXNbc3RhcnRJ
bmRleF0udGltZSwgZW5kVGltZSA9IHRpbWVTYW1wbGVzW2VuZEluZGV4XS50aW1lOwotICAgICAg
ICAgICAgdmFyIHN0YXJ0Q29tcGxleGl0eSA9IHRpbWVTYW1wbGVzW3N0YXJ0SW5kZXhdLmNvbXBs
ZXhpdHksIGVuZENvbXBsZXhpdHkgPSB0aW1lU2FtcGxlc1tlbmRJbmRleF0uY29tcGxleGl0eTsK
KyAgICAgICAgICAgIHZhciBzdGFydFRpbWUgPSBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZElu
RGF0dW0oc3RhcnRJbmRleCwgU3RyaW5ncy5qc29uLnRpbWUpOworICAgICAgICAgICAgdmFyIGVu
ZFRpbWUgPSBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oZW5kSW5kZXgsIFN0cmlu
Z3MuanNvbi50aW1lKTsKKyAgICAgICAgICAgIHZhciBzdGFydENvbXBsZXhpdHkgPSBjb250cm9s
bGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oc3RhcnRJbmRleCwgU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHkpOworICAgICAgICAgICAgdmFyIGVuZENvbXBsZXhpdHkgPSBjb250cm9sbGVyU2FtcGxl
cy5nZXRGaWVsZEluRGF0dW0oZW5kSW5kZXgsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KTsKIAog
ICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb24gPSB7fTsKICAgICAgICAgICAgIHJlc3VsdHNbU3Ry
aW5ncy5qc29uLmNvbnRyb2xsZXJdLnB1c2gocmVncmVzc2lvbik7CkBAIC01NjIsMTAgKzU4OSwx
NCBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVy
LAogICAgICAgICAgICAgcmVncmVzc2lvbltTdHJpbmdzLmpzb24uY29tcGxleGl0eV0gPSByYW1w
LmNvbXBsZXhpdHk7CiAgICAgICAgICAgICByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNz
aW9ucy5zdGFydEluZGV4XSA9IHN0YXJ0SW5kZXg7CiAgICAgICAgICAgICByZWdyZXNzaW9uW1N0
cmluZ3MuanNvbi5yZWdyZXNzaW9ucy5lbmRJbmRleF0gPSBlbmRJbmRleDsKKyAgICAgICAgICAg
IHJlZ3Jlc3Npb25bU3RyaW5ncy5qc29uLnJlZ3Jlc3Npb25zLnByb2ZpbGVdID0gcmFtcC5wcm9m
aWxlOwogCiAgICAgICAgICAgICBmb3IgKHZhciBqID0gc3RhcnRJbmRleDsgaiA8PSBlbmRJbmRl
eDsgKytqKQotICAgICAgICAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVzLnB1c2godGltZVNhbXBs
ZXNbal0pOworICAgICAgICAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVzLnB1c2goY29udHJvbGxl
clNhbXBsZXMuYXQoaikpOwogICAgICAgICB9KTsKKworICAgICAgICB2YXIgY29tcGxleGl0eUF2
ZXJhZ2VTYW1wbGVzID0gbmV3IFNhbXBsZURhdGE7CisgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5q
c29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5QXZlcmFnZV0gPSBjb21wbGV4aXR5
QXZlcmFnZVNhbXBsZXM7CiAgICAgICAgIHRoaXMuX3Byb2Nlc3NDb21wbGV4aXR5U2FtcGxlcyhj
b21wbGV4aXR5U2FtcGxlcywgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzKTsKICAgICB9CiB9KTsK
QEAgLTU3OCw4ICs2MDksOSBAQCBSYW1wMzBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1
YmNsYXNzKFJhbXBDb250cm9sbGVyLAogCiAgICAgZnJhbWVMZW5ndGhEZXNpcmVkOiAxMDAwLzMw
LAogICAgIGZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9sZDogMTAwMC8yOSwKLSAgICBmcmFtZUxl
bmd0aFNsb3dlc3RUaHJlc2hvbGQ6IDEwMDAvMjAsCi0gICAgZnJhbWVMZW5ndGhSYW1wTG93ZXJU
aHJlc2hvbGQ6IDEwMDAvMjAKKyAgICBmcmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQ6IDEwMDAvMjAs
CisgICAgZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQ6IDEwMDAvMjAsCisgICAgZnJhbWVM
ZW5ndGhSYW1wVXBwZXJUaHJlc2hvbGQ6IDEwMDAvMTIKIH0pOwogCiBTdGFnZSA9IFV0aWxpdGll
cy5jcmVhdGVDbGFzcygKQEAgLTc5Nyw3ICs4MjksMTAgQEAgQmVuY2htYXJrID0gVXRpbGl0aWVz
LmNyZWF0ZUNsYXNzKAogICAgICAgICBzd2l0Y2ggKG9wdGlvbnNbInRpbWUtbWVhc3VyZW1lbnQi
XSkKICAgICAgICAgewogICAgICAgICBjYXNlICJwZXJmb3JtYW5jZSI6Ci0gICAgICAgICAgICB0
aGlzLl9nZXRUaW1lc3RhbXAgPSBwZXJmb3JtYW5jZS5ub3cuYmluZChwZXJmb3JtYW5jZSk7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnBlcmZvcm1hbmNlICYmIHdpbmRvdy5wZXJmb3JtYW5jZS5u
b3cpCisgICAgICAgICAgICAgICAgdGhpcy5fZ2V0VGltZXN0YW1wID0gcGVyZm9ybWFuY2Uubm93
LmJpbmQocGVyZm9ybWFuY2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRo
aXMuX2dldFRpbWVzdGFtcCA9IERhdGUubm93OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgImRhdGUiOgogICAgICAgICAgICAgdGhpcy5fZ2V0VGltZXN0YW1wID0gRGF0ZS5ub3c7
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L3N0YWdlLmNzcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMv
c3RhZ2UuY3NzCmluZGV4IGVkZjcxNDEuLjBiNmZmZGMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzCkBAIC03LDcgKzcs
NyBAQCBib2R5IHsKICAgICBtYXJnaW46IDA7CiAgICAgcGFkZGluZzogMDsKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2IoMjQxLCAyNDEsIDI0MSk7Ci0gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1z
eXN0ZW0sICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsK
KyAgICBmb250LWZhbWlseTogIkhlbHZldGljYSBOZXVlIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBz
YW5zLXNlcmlmOwogfQogCiAjc3RhZ2UgewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9D
aGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA4YzIwZDUzLi44M2Fj
OWZjIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyNSBAQAorMjAxNi0wNi0xNiAgSm9uIExl
ZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZW1lbnRzIHRvIEFuaW1vbWV0
ZXIgYmVuY2htYXJrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTc3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdGVzdHMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci90
ZXh0Lmh0bWw6IEVuc3VyZSBvbmx5IHRocmVlIHRleHQgc2l6ZXMgZm9yCisgICAgICAgIHRoZSB0
aHJlZSBjYW52YXNlcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5o
dG1sOiBSZWR1Y2UgdGhlIHRleHQgc2l6ZSB0byBmaXQgd2l0aCBzbWFsbGVyCisgICAgICAgIHBh
cnRpY2xlIHNpemVzLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9mb2N1cy5qczogUmVtb3ZlIHRoZSBxdWFkcmF0aWMgZGlzdHJpYnV0aW9uIGZvcgorICAgICAg
ICBwYXJ0aWNsZSBzaXplcywgYW5kIG1ha2UgaXQgbGluZWFyLiBSZWR1Y2UgdGhlIHNpemUgdmFy
aWFuY2UuIFNodWZmbGUgdGhlIG1hdGggdG8KKyAgICAgICAgcmVkdWNlIHNvbWUgY2FsY3VsYXRp
b25zIHBlciBmcmFtZS4gRml4IHRoZSBwbGFjZW1lbnQgb2YgdGhlIHBhcnRpY2xlcyB3aGljaCBt
aWdodAorICAgICAgICBvdGhlcndpc2UgYmUgY3VsbGVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIv
dGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzOiBSZWR1Y2UgdGhlIHBhcnRpY2xl
IHNpemUKKyAgICAgICAgdG8gZW5jb3VyYWdlIGxhcmdlciBzY29yZXMuCisKKyAgICAgICAgSW5j
bHVkZSBjb25maWRlbmNlIGludGVydmFsIGZvciB0aGUgZmluYWwgc2NvcmUsIGFuZCBzdG9yZSB0
aGUgY2FudmFzCisgICAgICAgIHNpemUgaW4gdGhlIHNlcmlhbGl6YXRpb24gc28gdGhhdCBpdCBp
cyBhY2N1cmF0ZWx5IHNob3duIGluIHJlc3VsdHMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL2Rl
dmVsb3Blci5odG1sOiBBZGQgYSAiY29uZmlkZW5jZSIgZGl2LgorICAgICAgICAqIEFuaW1vbWV0
ZXIvaW5kZXguaHRtbDogRGl0dG8uIENvbnZlcnQgIm1lYW4iIHRvICJjb25maWRlbmNlIi4KKyAg
ICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczog
TG9vayBhdCBvcHRpb25zLCBhbmQKKyAgICAgICAgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaXMgaW5j
bHVkZWQsIHVwZGF0ZSB0aGUgYm9keSBjbGFzcyBiYXNlZCBvbiBpdAorICAgICAgICAoc2ltaWxh
ciB0byB3aGF0IHdlIGRvIHdoZW4gd2UgZmlyc3QgbG9hZCB0aGUgcGFnZSkuIFRoYXQgd2F5LCBp
ZiB5b3UKKyAgICAgICAgZHJhZy1hbmQtZHJvcCBwcmV2aW91cyByZXN1bHRzIGluLCB0aGF0IGNv
bmZpZ3VyYXRpb24gaXMgcmVmbGVjdGVkIGluCisgICAgICAgIHRoZSBkYXNoYm9hcmQuIFNob3cg
dGhlIGZ1bGwgY29uZmlkZW5jZSBpbnRlcnZhbC4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVz
b3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzczoKKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6CisKKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKF9wcm9jZXNzRGF0YSk6
IFByb3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBpbnRlcnZhbCB2YWx1ZXMgb3V0IGFuZCBjYWxjdWxh
dGUKKyAgICAgICAgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMuIEZvciBub3csIHNob3J0Y3V0
IHRoZSBhZ2dyZWdhdGUgY2FsY3VsYXRpb24sCisgICAgICAgIHNpbmNlIHdlIG9ubHkgZ28gdGhy
b3VnaCBvbmUgaXRlcmF0aW9uLgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRl
U2NvcmUpOiBQcm9wYWdhdGUgdGhlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgb3V0CisgICAgICAgIHRv
IGJlIG5leHQgdG8gdGhlIHNjb3JlLiBEZXBlbmRpbmcgb24gdGhlIGNvbnRyb2xsZXIgdGhlc2Ug
dmFsdWVzIGFyZQorICAgICAgICBjYWxjdWxhdGVkIGRpZmZlcmVudGx5LgorICAgICAgICAodGhp
cy5fcHJvY2Vzc0RhdGEuX2dldFJlc3VsdHNQcm9wZXJ0eSk6IENvbnZlbmllbmNlIGZ1bmN0aW9u
LgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuZ2V0IHNjb3JlKTogUmVmYWN0b3IuCisgICAg
ICAgICh0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVMb3dlckJvdW5kKTogR2V0IHRoZSBhZ2dy
ZWdhdGUgbG93ZXIgYm91bmQuCisgICAgICAgICh0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVV
cHBlckJvdW5kKTogR2V0IHRoZSBhZ2dyZWdhdGUgdXBwZXIgYm91bmQuCisgICAgICAgICh3aW5k
b3cuc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29yZSk6CisgICAgICAgICh3aW5kb3cuYmVu
Y2htYXJrQ29udHJvbGxlci5fc3RhcnRCZW5jaG1hcmspOiBXaGVuIHRoZSBiZW5jaG1hcmsgc3Rh
cnRzLCBub3RlCisgICAgICAgIHRoZSBjYW52YXMgc2l6ZSBhbmQgYWRkIGl0IHRvIG9wdGlvbnMu
IFRoYXQgd2F5IGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBiZQorICAgICAgICBzZXJpYWxpemVk
LgorICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMpOiBJbmNs
dWRlIHRoZSBtYXhpbXVtIGRldmlhdGlvbgorICAgICAgICBwZXJjZW50YWdlLgorICAgICAgICAq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9saW5lcy5zdmc6IE1ha2UgdGhlIGJhY2tncm91
bmQgbGluZSB1cCB3aXRoIHRoZQorICAgICAgICBza2V3LgorICAgICAgICAqIEFuaW1vbWV0ZXIv
cmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczoKKyAgICAgICAgKEhlYWRlcnMuZGV0YWlscy50ZXh0
KTogUmVmYWN0b3IuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5q
czoKKyAgICAgICAgKFN0YXRpc3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UpOiBDb252
ZW5pZW5jZSBmdW5jdGlvbiB0byBjYWxjdWxhdGUKKyAgICAgICAgdGhlIGRldmlhdGlvbiBwZXJj
ZW50YWdlIG9uIGVpdGhlciBlbmQgYW5kIHJldHVybiB0aGUgbGFyZ2VzdCBkZXZpYXRpb24uCisg
ICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczoKKworICAgICAgICBQcm92
aWRlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHdpdGhvdXQgcGVyZm9ybWFuY2Uubm93LgorCisgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAgICAgICAgKEJlbmNo
bWFyay5VdGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBGYWxsYmFjayB0byBEYXRlLm5vdyBmb3IgcGxh
dGZvcm1zCisgICAgICAgIHRoYXQgbWlnaHQgbm90IHN1cHBvcnQgcGVyZm9ybWFuY2Uubm93Lgor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpz
OiBTdHlsZSB1cGRhdGUuCisKKyAgICAgICAgQWxsb3cgc3BlY2lmeWluZyBhIHJlZ3Jlc3Npb24g
cHJvZmlsZSB0byB1c2UgaW5zdGVhZCBvZiB0YWtpbmcgdGhlIG9uZQorICAgICAgICB3aXRoIHRo
ZSBsb3dlc3QgZXJyb3IuCisKKyAgICAgICAgQWRkcmVzcyBhbiBpc3N1ZSBpbiB0aGUgZm9jdXMg
dGVzdCB3aGVuIHRoZSByZWdyZXNzaW9uIGNhbGN1bGF0ZWQgZW5kcworICAgICAgICB1cCBvdmVy
ZXN0aW1hdGluZyB0aGUgY2hhbmdlIHBvaW50LCBjYXVzaW5nIGEgY2FzY2FkZSBvZiB0b3VnaGVy
CisgICAgICAgIHJhbXBzLiBUaGUgcmVhc29uIGJlaGluZCB0aGlzIGlzIHRoYXQgYXQgbWF4IGNv
bXBsZXhpdHkgb2YgYW4gaW5pdGlhbAorICAgICAgICByYW1wLCB0aGUgZnJhbWUgbGVuZ3RoIGlz
IHZlcnkgaGlnaCwgYW5kIGl0IGluZmx1ZW5jZXMgdGhlIHNlY29uZAorICAgICAgICBzZWdtZW50
IG9mIHRoZSBwaWVjZXdpc2UgcmVncmVzc2lvbiBzdHJvbmdseSwgY2F1c2luZyBpdCB0byBiZSB2
ZXJ5CisgICAgICAgIHN0ZWVwLiBBcyBhIHJlc3VsdCwgdGhlIGZpcnN0IHNlZ21lbnQsIGV4cGVj
dGVkIHRvIGJlIGZsYXQsIGVuZHMgdXAKKyAgICAgICAgY292ZXJpbmcgYSBoaWdoZXIgcmFuZ2Ug
b2YgY29tcGxleGl0eS4gVGhhdCBtYWtlcyB0aGUgY2hhbmdlIHBvaW50CisgICAgICAgIG11Y2gg
aGlnaGVyIHRoYW4gaXQgc2hvdWxkIGJlLiBUbyBhdm9pZCB0aGlzLCB3ZSB3aWxsIGFkZCBhIHNh
bml0eQorICAgICAgICBjaGVjayBvbiB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgcmFtcC4gSWYg
dGhlIHJlZ3Jlc3Npb24ncyBwcm9qZWN0ZWQKKyAgICAgICAgdmFsdWUgYXQgdGhlIG1heGltdW0g
Y29tcGxleGl0eSBvZiB0aGUgY3VycmVudCByYW1wIGlzIHZlcnkgc2xvdyAobGVzcworICAgICAg
ICB0aGFuIDIwIGZwcyksIDEpIHJlZHVjZSB0aGUgbWF4aW11bSBjb21wbGV4aXR5IGJ5IDIwJSwg
YW5kIDIpIGRvIG5vdAorICAgICAgICBpbmNsdWRlIHRoZSByZWdyZXNzaW9uJ3MgY2hhbmdlIHBv
aW50IGluIHRoZSBjaGFuZ2UgcG9pbnQgZXN0aW1hdG9yLgorICAgICAgICBUaGF0IGVzdGltYXRv
ciBpcyB1c2VkIGFzIHRoZSBtaWRwb2ludCBvZiB0aGUgbmV4dCByYW1wLCBhbmQgaW5jbHVkaW5n
CisgICAgICAgIHRoZSBjaGFuZ2UgcG9pbnQgZnJvbSBhIHBvb3IgcmVncmVzc2lvbiBjYW4gYmFr
ZSBpbiB0aGUgZXJyb3IuIFRoZQorICAgICAgICBjb250cm9sbGVyIGFscmVhZHkga25vd3MgaG93
IHRvIGFkanVzdCBmb3IgcmFtcHMgdGhhdCBhcmUgdG9vIGVhc3kgZm9yCisgICAgICAgIHRoZSBz
eXN0ZW0uCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRl
ci5qczoKKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NEYXRhLmZpbmRSZWdyZXNzaW9uKTogVGFrZXMg
YSBwcmVmZXJyZWQgcHJvZmlsZSBhbmQgZ2l2ZXMgdGhhdCB0bworICAgICAgICBSZWdyZXNzaW9u
LgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2NvcmUpOiBXaXRoIHRoZSBy
YW1wIGNvbnRyb2xsZXIsIHRha2UgdGhlIHByb2ZpbGUKKyAgICAgICAgb2YgdGhlIHJhbXAgdGhh
dCB3YXMgdXNlZCB0aGUgbW9zdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSByYW1wJ3MgcmVncmVzc2lv
bi4gVGhhdAorICAgICAgICBwcm9maWxlIGlzIHdoYXQgaXMgdXNlZCBmb3IgdGhlIHRlc3QncyBz
Y29yZS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzOgorICAg
ICAgICAoUmVncmVzc2lvbi5VdGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBVcGRhdGUgdG8gdGFrZSBh
biBvcHRpb25zIG9iamVjdCB3aGljaCBjYW4KKyAgICAgICAgc3BlY2lmeSBhIHByb2ZpbGUgdG8g
Y2FsY3VsYXRlIHdpdGguIE90aGVyd2lzZSBpdCB3aWxsIGNvbnRpbnVlIHRvIHVzZSBib3RoIGFu
ZAorICAgICAgICBzZWxlY3QgdGhlIG9uZSB3aXRoIHRoZSBsb3dlciBlcnJvci4KKyAgICAgICAg
KF9jYWxjdWxhdGVSZWdyZXNzaW9uKTogRml4IGFuIGlzc3VlIHdoZXJlIHdlIGNsYWltIDAgZXJy
b3IgaWYgdGhlIHJlZ3Jlc3Npb24KKyAgICAgICAgY2FsY3VsYXRpb24gZmFpbHMgZHVlIHRvIGRp
dmlkZS1ieS16ZXJvLiBJbnN0ZWFkIHJlamVjdCB0aGF0IHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24K
KyAgICAgICAgYnkgZ2l2aW5nIGl0IE51bWJlci5NQVhfVkFMVUUuCisgICAgICAgICogQW5pbW9t
ZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczogTmV3IHN0cmluZ3MgZm9yIG1hcmtpbmcgYSByZWdy
ZXNzaW9uIGFzIGZsYXQKKyAgICAgICAgb3Igc2xvcGUuCisgICAgICAgICogQW5pbW9tZXRlci90
ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAgICAgICAgKFJhbXBDb250cm9sbGVyKTogUmVuYW1l
IHRoZSB0aHJlc2hvbGRzIGZvciBjbGFyaXR5LiBBZGQgYSB0aHJlc2hvbGQgdGhhdCwgaWYKKyAg
ICAgICAgZXhjZWVkZWQsIHdpbGwgbG93ZXIgdGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUg
bmV4dCByYW1wLgorICAgICAgICAodHVuZSk6IFJlbGF4IHRoZSBjZGYgY2hlY2sgdG8gY29uc2lk
ZXIgd2hldGhlciB0aGUgaW50ZXJ2YWwgZGVmaW5pdGVseSBmYWxscyBpbgorICAgICAgICB0aGUg
ZGVzaXJlZCBmcmFtZSBsZW5ndGggdGhyZXNob2xkLgorICAgICAgICAocHJvY2Vzc1NhbXBsZXMp
OiBJbmNsdWRlIHRoZSBwcm9maWxlIGluIHRoZSByYW1wLgorCisgICAgICAgIFVwZGF0ZSByYW1w
IGNvbnRyb2xsZXIgdGVzdC4gSW5jcmVhc2UgdGhlIGxlbmd0aCBvZiB0aGUgdGVzdCB0byAzMCBz
ZWNvbmRzLCBhbmQgZXh0ZW5kCisgICAgICAgIHRoZSBpbnRlcnZhbCB0byAxNTAgbXMgZHVyaW5n
IHNhbXBsaW5nLiBJbXByb3ZlIHRoZSBlc3RpbWF0aW9uIG9mIHRoZSByYW1wIHBhcmFtZXRlcnMu
CisKKyAgICAgICAgKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBDaGFuZ2UgZGVmYXVsdCB0
byAzMCBzZWNvbmRzLCBhbmQgZG9uJ3Qgc2hvdyB0aGUgcHJvZ3Jlc3MgYmFyCisgICAgICAgIGJ5
IGRlZmF1bHQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0
ZXIuanM6IENoYW5nZSBkZWZhdWx0IHRvIDMwIHNlY29uZHMuCisgICAgICAgICogQW5pbW9tZXRl
ci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogQSBudW1iZXIgb2YgaW1wcm92ZW1lbnRzIHRvIHRo
ZSByYW1wIGNvbnRyb2xsZXIsIGluCisgICAgICAgIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFw
cGVhciBpbiB0aGUgcGF0Y2g6CisKKyAgICAgICAgLSBXaXRoIGEgbG9uZ2VyIHRlc3QgbGVuZ3Ro
IHVzZSBsb25nZXIgcmFtcHMgd2l0aCBsb25nZXIgaW50ZXJ2YWxzIHRvIGdldCBtb3JlIGRhdGEg
YXQgZWFjaAorICAgICAgICBjb21wbGV4aXR5LiBLZWVwIHRoZSAxMDAgbXMgaW50ZXJ2YWwgbGVu
Z3RoIGR1cmluZyB0aGUgcmFtcCB1cCBwaGFzZSBzaW5jZSB3ZSBkb24ndCBuZWVkIHRvCisgICAg
ICAgIHNwZW5kIG1vcmUgdGltZSB0aGVyZSB0byBmaW5kIHRoZSByaWdodCBvcmRlciBvZiBtYWdu
aXR1ZGUsIGJ1dCBpbmNyZWFzZSBpdCBkdXJpbmcgdGhlCisgICAgICAgIHJhbXBzIHRvIDEyMCBt
cy4KKyAgICAgICAgLSBUaGUgcmFtcCBsaW5lYXJseSBpbnRlcnBvbGF0ZXMgdGhlIGNvbXBsZXhp
dHkgdG8gcmVuZGVyIGJhc2VkIG9uIGl0cyB0aW1lc3RhbXAsIGJ1dCBpdCB3b3VsZAorICAgICAg
ICBuZXZlciBzYW1wbGUgdGhlIG1pbmltdW0gY29tcGxleGl0eS4gSW5zdGVhZCBvZiBsZXJwaW5n
IG1heCB0byBtaW4gY29tcGxleGl0eSBmcm9tIHRpbWUKKyAgICAgICAgMCB0byB0IHdoZXJlIHQg
aXMgdGhlIHJhbXAgbGVuZ3RoLCBpbnN0ZWFkIGxlcnAgZnJvbSAwIHRvICh0IC0gaW50ZXJ2YWxT
YW1wbGVMZW5ndGgpIHNvIHRoYXQKKyAgICAgICAgd2UgY2FuIGhhdmUgYXQgbGVhc3Qgb25lIGlu
dGVydmFsIHNhbXBsZSBhdCB0aGUgbWluIGNvbXBsZXhpdHkgZm9yIHRoYXQgcmFtcC4KKyAgICAg
ICAgLSBTb21lIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb25zIG9ubHkgY29tZSBvdXQgd2l0aCBvbmUg
bGluZSBzZWdtZW50IHJhdGhlciB0aGFuIHRoZSB0d28KKyAgICAgICAgd2UgZXhwZWN0LiBUaGlz
IGNvdWxkIGJlIGR1ZSB0byBhIG5vaXN5IHJhbXAgb3IgdGhlIHJhbXAncyByYW5nZSBpcyB0b28g
bmFycm93LiBJZiB0aGF0J3MgdGhlCisgICAgICAgIGNhc2UsIGluZmx1ZW5jZSB0aGUgbWluaW11
bSBjb21wbGV4aXR5IG9mIHRoZSBuZXh0IHJhbXAgdG93YXJkcyB0aGUgbG93ZXN0IGJvdW5kIG9m
IDEsIHNvIHRoYXQKKyAgICAgICAgd2UgZW5zdXJlIHRoYXQgYXQgbGVhc3QgcGFydCBvZiB0aGUg
cmFtcCBpcyBjb3ZlcmluZyBhIGNvbXBsZXhpdHkgcmFuZ2UgdGhhdCB0aGUgc3lzdGVtIGNhbgor
ICAgICAgICBoYW5kbGUgYXQgZnVsbCA2MC4KKyAgICAgICAgLSBSZW1vdmUgYW4gYXNzaWdubWVu
dCB0byBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCBzaW5jZSB0aGF0IGlzIG5ldmVyIHN1YnNlcXVl
bnRseSB1c2VkLgorCisgICAgICAgIFVwZGF0ZSB0aGUgZm9ybWF0IHVzZWQgdG8gc2VyaWFsaXpl
IHRoZSByZXN1bHRzIGZvciBhbmFseXNpcy4KKworICAgICAgICBFYWNoIGRhdGEgcG9pbnQgdXNl
ZCB0byBoYXZlIG5hbWVkIHByb3BlcnRpZXMgZm9yIGZpZWxkcyBsaWtlIGNvbXBsZXhpdHkgYW5k
IGZyYW1lIHJhdGUuCisgICAgICAgIEluIGFkZGl0aW9uIHRoZSBzZXJpYWxpemVkIG51bWJlcnMg
aGFkIHJvdW5kaW5nIGVycm9ycyB0aGF0IHRvb2sgdXAgbWFueSBjaGFyYWN0ZXJzLgorICAgICAg
ICBVcGRhdGUgdGhlIGZvcm1hdCBieSBpbnRyb2R1Y2luZyBhIG5ldyBkYXRhIGNvbnRhaW5lciBj
YWxsZWQgU2FtcGxlRGF0YSwgd2hpY2ggY29udGFpbnMgYQorICAgICAgICBmaWVsZCBtYXAuIFRo
ZSBtYXAgbWFwcyBhIHN0cmluZyB0byBhbiBhcnJheSBpbmRleC4gRWFjaCBkYXRhIHBvaW50IGlz
IGFuIGFycmF5LCBzbywgdG8KKyAgICAgICAgZ2V0IGEgc3RhdCwgdXNlIHRoZSBmaWVsZCBtYXAg
dG8gZ2V0IHRoZSBhcnJheSBpbmRleCBpbnRvIHRoZSBkYXRhIHBvaW50LiBUaGlzIGFsbG93cyBm
dXR1cmUKKyAgICAgICAgdmVyc2lvbnMgdG8gdHJhY2sgb3RoZXIgZGF0YSwgYW5kIHJlZHVjZXMg
dGhlIHNpemUgb2YgdGhlIG91dHB1dCBzdHJpbmcgYnkgdHdvLXRoaXJkcy4KKworICAgICAgICAq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CisgICAgICAgIChVdGlsaXRpZXMu
dG9GaXhlZE51bWJlcik6IEFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHRydW5jYXRlcyB0
aGUgbnVtYmVyIHRvIGEgZml4ZWQKKyAgICAgICAgcHJlY2lzaW9uLCBhbmQgY29udmVydHMgaXQg
YmFjayB0byBhIG51bWJlci4KKyAgICAgICAgKFNhbXBsZURhdGEpOiBOZXcgY2xhc3MgdGhhdCBj
b250YWlucyBzYW1wbGUgZGF0YSBhbmQgYSBmaWVsZCBtYXAgdGhhdCBtYXBzIHByb3BlcnRpZXMg
dG8KKyAgICAgICAgYW4gYXJyYXkgaW5kZXguCisgICAgICAgIChnZXQgbGVuZ3RoKTogTnVtYmVy
IG9mIGRhdGEgcG9pbnRzLgorICAgICAgICAoYWRkRmllbGQpOiBBZGQgYSBmaWVsZCB0byB0aGUg
ZmllbGQgbWFwLgorICAgICAgICAocHVzaCk6IEFkZCBhIGRhdGEgcG9pbnQuCisgICAgICAgIChz
b3J0KTogU29ydCB0aGUgZGF0YS4KKyAgICAgICAgKHNsaWNlKTogUmV0dXJuIG5ldyBTYW1wbGVE
YXRhIG9iamVjdCB3aXRoIHNsaWNlZCBkYXRhLgorICAgICAgICAoZm9yRWFjaCk6IEl0ZXJhdGUg
b3ZlciB0aGUgZGF0YSB3aXRoIHByb3ZpZGVkIGZ1bmN0aW9uLgorICAgICAgICAoY3JlYXRlRGF0
dW0pOgorICAgICAgICAoZ2V0RmllbGRJbkRhdHVtKTogUmV0dXJucyB0aGUgZGF0YSBwb2ludCBh
c3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIG5hbWUgYnkgbG9va2luZyBpdCB1cAorICAgICAgICBp
biB0aGUgZmllbGQgbWFwIGluIHRoZSBkYXR1bSBwcm92aWRlZCwgd2hpY2ggY2FuIGJlIHRoZSBk
YXR1bSBvYmplY3QgaXRzZWxmIChhbiBhcnJheSkgb3IKKyAgICAgICAgYW4gaW5kZXggaW50byB0
aGUgZGF0YSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChzZXRGaWVsZEluRGF0dW0pOiBTZXRz
IHRoZSBkYXRhIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbmFtZS4KKyAgICAgICAg
KGF0KTogUmV0dXJucyB0aGUgZGF0YSBwb2ludCBhdCB0aGUgcHJvdmlkZWQgaW5kZXguCisgICAg
ICAgICh0b0FycmF5KTogU2VyaWFsaXplcyB0aGUgZGF0YSB3aGVyZSB0aGUgZmllbGQgbWFwIHNl
cnZlcyBhcyBwcm9wZXJ0eSBuYW1lcyBmb3IgZWFjaCBwb2ludC4KKworICAgICAgICAqIEFuaW1v
bWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qczoKKyAgICAgICAgKHVwZGF0ZUdy
YXBoRGF0YSk6IFJlbW92ZSB1bnVzZWQgX3Rlc3REYXRhLiBDb252ZXJ0IHRoZSBkYXRhIHRvIHRo
ZSBvbGQgYXJyYXkgZm9ybWF0IGZvciB0aGUKKyAgICAgICAgZ3JhcGggdG8gdXNlLCBzaW5jZSB0
aGUgb2xkIGZvcm1hdCB3YXMgbXVjaCBlYXNpZXIgdG8gd29yayB3aXRoIHdoZW4gZGlzcGxheWlu
ZyB0aGUgZ3JhcGhzLgorICAgICAgICAob25HcmFwaFR5cGVDaGFuZ2VkKTogRm9yIHNvbWUgY29u
dHJvbGxlcnMsIG5vIGFsdGVybmF0aXZlIHNjb3JlIG9yIG1lYW4gaXMgcHJvdmlkZWQuCisgICAg
ICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzOgorICAgICAg
ICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOiBSZWZhY3RvciB0
byB1c2UgU2FtcGxlRGF0YS4gVXBkYXRlIEpTT04gb3V0cHV0CisgICAgICAgIHRvIG9ubHkgZ28g
dG8gMyBkaWdpdHMgb2YgcHJlY2lzaW9uIGZvciBwdXJwb3NlcyBvZiByZWR1Y2luZyB0aGUgZGF0
YSBzaXplLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6IEFkZCBu
ZXcgc3RyaW5ncyB0byBwdXQgaW50byB0aGUgZmllbGQgbWFwcy4KKyAgICAgICAgKiBBbmltb21l
dGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzOiBSZWZhY3RvciB0byB1c2UgU2FtcGxlRGF0YS4K
KworICAgICAgICAqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6CisgICAgICAgICogQW5pbW9t
ZXRlci9pbmRleC5odG1sOiBSZXN0cnVjdHVyZSByZXN1bHRzIHRhYmxlIGZvciBib3RoIHBhZ2Vz
LiBBZGQgY2hhcnNldCBhdHRyaWJ1dGUgdG8KKyAgICAgICAgdGVzdHMuanMgaW5jbHVkZS4KKyAg
ICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3M6
IENsZWFyIG91dCBzdHlsZXMgZnJvbSByZWxlYXNlIHJ1bm5lci4KKyAgICAgICAgKiBBbmltb21l
dGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6CisgICAgICAgIChvbkdyYXBoVHlw
ZUNoYW5nZWQpOiBVcGRhdGUgc2NvcmUgYW5kIG1lYW4gaWYgYm9vdHN0cmFwIHJlc3VsdHMgYXJl
IGF2YWlsYWJsZSBmcm9tIHRoZQorICAgICAgICBjb250cm9sbGVyLCBzaW5jZSBub3QgYWxsIGNv
bnRyb2xsZXJzIGRvIGJvb3RzdHJhcHBpbmcuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzOiBVcGRhdGUgaGVhZGVyIHRleHQuCisgICAgICAgICog
QW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzOiBJbmNsdWRlIGNvbmZp
ZGVuY2UgaW50ZXJ2YWwgaW4gcmVzdWx0cy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKFJlc3VsdHNUYWJsZS5fYWRkSGVhZGVy
KTogSGVhZGVyIGNvbnRlbnRzIGNhbiBiZSBIVE1MLCBzbyB1c2UgaW5uZXJIVE1MIGluc3RlYWQu
CisgICAgICAgIChSZXN1bHRzVGFibGUuX2FkZEJvZHkpOiBBZGQgdGJvZHkgZWxlbWVudC4KKyAg
ICAgICAgKFJlc3VsdHNUYWJsZS5fYWRkVGVzdCk6IEFsbG93IGEgZGF0YSBjZWxsIHRvIGludm9r
ZSBhIEpTIGZ1bmN0aW9uIHRvIGdldCBpdHMgY29udGVudHMuCisgICAgICAgICh3aW5kb3cuYmVu
Y2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cyk6IEFkZCB0YWJsZSB0aGF0IGluY2x1ZGVzIHRl
c3RzJyBjb25maWRlbmNlIGludGVydmFscy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvdGVzdHMuanM6CisgICAgICAgIChIZWFkZXJzLmRldGFpbHMudGV4dCk6IEFkZCBu
ZXcgZGV0YWlscyB0YWJsZSB0aGF0IGluY2x1ZGVzIGJvb3RzdHJhcCBjb25maWRlbmNlIGludGVy
dmFsLgorICAgICAgICBUaGUgaW50ZXJ2YWwgY2FuIGJlIGFzeW1tZXRyaWMsIGJ1dCBmb3Igc2lt
cGxpY2l0eSwgcmVwb3J0IHRoZSBtYXhpbXVtIGRldmlhdGlvbiBwZXJjZW50YWdlCisgICAgICAg
IG9uIGVpdGhlciBzaWRlIG9mIHRoZSBib290c3RyYXAgbWVkaWFuLgorICAgICAgICAqIEFuaW1v
bWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanM6CisgICAgICAgIChib290c3RyYXApOiBJbmNs
dWRlIHRoZSBjb25maWRlbmNlIHBlcmNlbnRhZ2UgaW4gdGhlIHJldHVybiBvYmplY3QuCisKKyAg
ICAgICAgUmVwb3J0IGNhbnZhcyBzaXplIGluIHJlc3VsdHMuCisKKyAgICAgICAgKiBBbmltb21l
dGVyL2RldmVsb3Blci5odG1sOiBBZGQgbWFya3VwIHRvIGluZGljYXRlIHdoZXRoZXIgYSBzbWFs
bCwgbWVkaXVtLCBvciBsYXJnZQorICAgICAgICBjYW52YXMgd2FzIHVzZWQuCisgICAgICAgICog
QW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogQ2FsbCBkZXRlcm1pbmVDYW52YXNTaXpl
KCkuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3Nz
OiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0aGUgY2FudmFzIGJhc2VkIG9uIHRoZQorICAgICAgICBi
b2R5IGNsYXNzIHNpemUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuanM6CisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5pbml0aWFs
aXplKTogVXBkYXRlIHN0eWxlcyB0byBzZXQgdGhlIGNhbnZhcyBiYXNlZCBvbiB0aGUKKyAgICAg
ICAgYm9keSBjbGFzcyBzaXplLgorICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIu
ZGV0ZXJtaW5lQ2FudmFzU2l6ZSk6IFJ1biB2YXJpb3VzIG1lZGlhIHF1ZXJpZXMgYW5kIHNldCB0
aGUgYm9keQorICAgICAgICBjbGFzcyBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgZGV2aWNlLgor
CisgICAgICAgICogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogUmVmYWN0b3IgdG8gaW5jbHVk
ZSB0aGUgbWFpbiBDU1MgZmlsZSwgYW5kIHJlZG8KKyAgICAgICAgdGhlIGxheW91dCBzbyB0aGF0
IGl0IGRvZXNuJ3QgcmVseSBvbiBmbGV4Ym94LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzczoKKyAgICAgICAgKiBBbmltb21ldGVyL3Jl
c291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKHVwZGF0ZURpc3Bs
YXkpOiBTaW5jZSB2YXJpb3VzIHBhcnRzIG9mIHRoZSBzY3JpcHQgYWx0ZXIgdGhlIGJvZHkgY2xh
c3MsIHdlIGNhbid0CisgICAgICAgIHJlcGxhY2UgdGhlIGNsYXNzTmFtZSBkaXJlY3RseS4gSW5z
dGVhZCwgcmVtb3ZlIGFsbCBkaXNwbGF5LWJhc2VkIHZhbHVlcyBhbmQgdGhlbiBhZGQKKyAgICAg
ICAgdGhlIG9uZSB0aGF0IHdhcyBzZWxlY3RlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6CisgICAgICAgICh1cGRhdGVHcmFwaERhdGEpOiBU
byBzZXQgdGhlIHNpemUgb2YgdGhlIGdyYXBoLCB1c2Ugd2luZG93LmlubmVySGVpZ2h0LgorICAg
ICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgorICAgICAg
ICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbik6IFNpbmNlIHZhcmlvdXMgcGFy
dHMgb2YgdGhlIHNjcmlwdCBhbHRlciB0aGUgYm9keQorICAgICAgICBjbGFzcywgd2UgY2FuJ3Qg
cmVwbGFjZSB0aGUgY2xhc3NOYW1lIGRpcmVjdGx5LiBSZW1vdmUgYWxsIG9mIHRoZSBzZWN0aW9u
IGNsYXNzZXMKKyAgICAgICAgaW5kaXZpZHVhbGx5IGFuZCB0aGVuIGFkZCB0aGUgb25lIGRlc2ly
ZWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzOiBSZW1v
dmUgLWFwcGxlLXN5c3RlbSBhcyBhIGZvbnQgdG8gdXNlIGluIHRoZQorICAgICAgICBzdGFnZS4K
KwogMjAxNi0wNi0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCByb3VuZC1kb3duIGdvb2YgaW4gQWlyLmpzJ3MgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJn
Ci0tIAoyLjguMSAoQXBwbGUgR2l0LTY5KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281799</attachid>
            <date>2016-06-21 17:52:28 -0700</date>
            <delta_ts>2016-06-21 18:01:34 -0700</delta_ts>
            <desc>Patch with feedback</desc>
            <filename>0001-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>131328</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBkZmU2YWNjZjcyOTRjYTQ3NjRlOTJiYTc0NzY4MTU2N2JjZDMwY2M1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDE2IEp1biAyMDE2IDE1OjQ5OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gSW1wcm92ZW1lbnRz
IHRvIEFuaW1vbWV0ZXIgYmVuY2htYXJrCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3NzM4CgpQcm92aXNpb25hbGx5IHJldmlld2VkIGJ5IFNhaWQgQWJvdS1IYWxs
YXdhLgoKVXBkYXRlIHRlc3RzLgoKKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWw6
IEVuc3VyZSBvbmx5IHRocmVlIHRleHQgc2l6ZXMgZm9yCnRoZSB0aHJlZSBjYW52YXNlcy4KKiBB
bmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sOiBSZWR1Y2UgdGhlIHRleHQgc2l6ZSB0
byBmaXQgd2l0aCBzbWFsbGVyCnBhcnRpY2xlIHNpemVzLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3Jlc291cmNlcy9mb2N1cy5qczogUmVtb3ZlIHRoZSBxdWFkcmF0aWMgZGlzdHJpYnV0aW9u
IGZvcgpwYXJ0aWNsZSBzaXplcywgYW5kIG1ha2UgaXQgbGluZWFyLiBSZWR1Y2UgdGhlIHNpemUg
dmFyaWFuY2UuIFNodWZmbGUgdGhlIG1hdGggdG8KcmVkdWNlIHNvbWUgY2FsY3VsYXRpb25zIHBl
ciBmcmFtZS4gRml4IHRoZSBwbGFjZW1lbnQgb2YgdGhlIHBhcnRpY2xlcyB3aGljaCBtaWdodApv
dGhlcndpc2UgYmUgY3VsbGVkLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9p
bWFnZS1kYXRhLmpzOiBSZWR1Y2UgdGhlIHBhcnRpY2xlIHNpemUKdG8gZW5jb3VyYWdlIGxhcmdl
ciBzY29yZXMuCgpJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHRoZSBmaW5hbCBzY29y
ZSwgYW5kIHN0b3JlIHRoZSBjYW52YXMKc2l6ZSBpbiB0aGUgc2VyaWFsaXphdGlvbiBzbyB0aGF0
IGl0IGlzIGFjY3VyYXRlbHkgc2hvd24gaW4gcmVzdWx0cy4KCiogQW5pbW9tZXRlci9kZXZlbG9w
ZXIuaHRtbDogQWRkIGEgImNvbmZpZGVuY2UiIGRpdi4KKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6
IERpdHRvLiBDb252ZXJ0ICJtZWFuIiB0byAiY29uZmlkZW5jZSIuCiogQW5pbW9tZXRlci9yZXNv
dXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanM6IExvb2sgYXQgb3B0aW9ucywgYW5kCmlm
IHRoZSBjb25maWd1cmF0aW9uIGlzIGluY2x1ZGVkLCB1cGRhdGUgdGhlIGJvZHkgY2xhc3MgYmFz
ZWQgb24gaXQKKHNpbWlsYXIgdG8gd2hhdCB3ZSBkbyB3aGVuIHdlIGZpcnN0IGxvYWQgdGhlIHBh
Z2UpLiBUaGF0IHdheSwgaWYgeW91CmRyYWctYW5kLWRyb3AgcHJldmlvdXMgcmVzdWx0cyBpbiwg
dGhhdCBjb25maWd1cmF0aW9uIGlzIHJlZmxlY3RlZCBpbgp0aGUgZGFzaGJvYXJkLiBTaG93IHRo
ZSBmdWxsIGNvbmZpZGVuY2UgaW50ZXJ2YWwuCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9hbmltb21ldGVyLmNzczoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5p
bW9tZXRlci5jc3M6CgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpz
OgooX3Byb2Nlc3NEYXRhKTogUHJvcGFnYXRlIHRoZSBjb25maWRlbmNlIGludGVydmFsIHZhbHVl
cyBvdXQgYW5kIGNhbGN1bGF0ZQp0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcy4gRm9yIG5vdywg
c2hvcnRjdXQgdGhlIGFnZ3JlZ2F0ZSBjYWxjdWxhdGlvbiwKc2luY2Ugd2Ugb25seSBnbyB0aHJv
dWdoIG9uZSBpdGVyYXRpb24uCih0aGlzLl9wcm9jZXNzRGF0YS5jYWxjdWxhdGVTY29yZSk6IFBy
b3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBpbnRlcnZhbCBvdXQKdG8gYmUgbmV4dCB0byB0aGUgc2Nv
cmUuIERlcGVuZGluZyBvbiB0aGUgY29udHJvbGxlciB0aGVzZSB2YWx1ZXMgYXJlCmNhbGN1bGF0
ZWQgZGlmZmVyZW50bHkuCih0aGlzLl9wcm9jZXNzRGF0YS5fZ2V0UmVzdWx0c1Byb3BlcnR5KTog
Q29udmVuaWVuY2UgZnVuY3Rpb24uCih0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmUpOiBSZWZh
Y3Rvci4KKHRoaXMuX3Byb2Nlc3NEYXRhLmdldCBzY29yZUxvd2VyQm91bmQpOiBHZXQgdGhlIGFn
Z3JlZ2F0ZSBsb3dlciBib3VuZC4KKHRoaXMuX3Byb2Nlc3NEYXRhLmdldCBzY29yZVVwcGVyQm91
bmQpOiBHZXQgdGhlIGFnZ3JlZ2F0ZSB1cHBlciBib3VuZC4KKHdpbmRvdy5zZWN0aW9uc01hbmFn
ZXIuc2V0U2VjdGlvblNjb3JlKToKKHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLl9zdGFydEJl
bmNobWFyayk6IFdoZW4gdGhlIGJlbmNobWFyayBzdGFydHMsIG5vdGUKdGhlIGNhbnZhcyBzaXpl
IGFuZCBhZGQgaXQgdG8gb3B0aW9ucy4gVGhhdCB3YXkgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5
IGJlCnNlcmlhbGl6ZWQuCih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cyk6
IEluY2x1ZGUgdGhlIG1heGltdW0gZGV2aWF0aW9uCnBlcmNlbnRhZ2UuCiogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvcnVubmVyL2xpbmVzLnN2ZzogTWFrZSB0aGUgYmFja2dyb3VuZCBsaW5lIHVwIHdp
dGggdGhlCnNrZXcuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzOgooSGVh
ZGVycy5kZXRhaWxzLnRleHQpOiBSZWZhY3Rvci4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdGF0
aXN0aWNzLmpzOgooU3RhdGlzdGljcy5sYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZSk6IENvbnZl
bmllbmNlIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZQp0aGUgZGV2aWF0aW9uIHBlcmNlbnRhZ2Ugb24g
ZWl0aGVyIGVuZCBhbmQgcmV0dXJuIHRoZSBsYXJnZXN0IGRldmlhdGlvbi4KKiBBbmltb21ldGVy
L3Jlc291cmNlcy9zdHJpbmdzLmpzOgoKUHJvdmlkZSBzdXBwb3J0IGZvciBicm93c2VycyB3aXRo
b3V0IHBlcmZvcm1hbmNlLm5vdy4KCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5q
czoKKEJlbmNobWFyay5VdGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBGYWxsYmFjayB0byBEYXRlLm5v
dyBmb3IgcGxhdGZvcm1zCnRoYXQgbWlnaHQgbm90IHN1cHBvcnQgcGVyZm9ybWFuY2Uubm93Lgoq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzOiBTdHlsZSB1
cGRhdGUuCgpBbGxvdyBzcGVjaWZ5aW5nIGEgcmVncmVzc2lvbiBwcm9maWxlIHRvIHVzZSBpbnN0
ZWFkIG9mIHRha2luZyB0aGUgb25lCndpdGggdGhlIGxvd2VzdCBlcnJvci4KCkFkZHJlc3MgYW4g
aXNzdWUgaW4gdGhlIGZvY3VzIHRlc3Qgd2hlbiB0aGUgcmVncmVzc2lvbiBjYWxjdWxhdGVkIGVu
ZHMKdXAgb3ZlcmVzdGltYXRpbmcgdGhlIGNoYW5nZSBwb2ludCwgY2F1c2luZyBhIGNhc2NhZGUg
b2YgdG91Z2hlcgpyYW1wcy4gVGhlIHJlYXNvbiBiZWhpbmQgdGhpcyBpcyB0aGF0IGF0IG1heCBj
b21wbGV4aXR5IG9mIGFuIGluaXRpYWwKcmFtcCwgdGhlIGZyYW1lIGxlbmd0aCBpcyB2ZXJ5IGhp
Z2gsIGFuZCBpdCBpbmZsdWVuY2VzIHRoZSBzZWNvbmQKc2VnbWVudCBvZiB0aGUgcGllY2V3aXNl
IHJlZ3Jlc3Npb24gc3Ryb25nbHksIGNhdXNpbmcgaXQgdG8gYmUgdmVyeQpzdGVlcC4gQXMgYSBy
ZXN1bHQsIHRoZSBmaXJzdCBzZWdtZW50LCBleHBlY3RlZCB0byBiZSBmbGF0LCBlbmRzIHVwCmNv
dmVyaW5nIGEgaGlnaGVyIHJhbmdlIG9mIGNvbXBsZXhpdHkuIFRoYXQgbWFrZXMgdGhlIGNoYW5n
ZSBwb2ludAptdWNoIGhpZ2hlciB0aGFuIGl0IHNob3VsZCBiZS4gVG8gYXZvaWQgdGhpcywgd2Ug
d2lsbCBhZGQgYSBzYW5pdHkKY2hlY2sgb24gdGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIHJhbXAu
IElmIHRoZSByZWdyZXNzaW9uJ3MgcHJvamVjdGVkCnZhbHVlIGF0IHRoZSBtYXhpbXVtIGNvbXBs
ZXhpdHkgb2YgdGhlIGN1cnJlbnQgcmFtcCBpcyB2ZXJ5IHNsb3cgKGxlc3MKdGhhbiAyMCBmcHMp
LCAxKSByZWR1Y2UgdGhlIG1heGltdW0gY29tcGxleGl0eSBieSAyMCUsIGFuZCAyKSBkbyBub3QK
aW5jbHVkZSB0aGUgcmVncmVzc2lvbidzIGNoYW5nZSBwb2ludCBpbiB0aGUgY2hhbmdlIHBvaW50
IGVzdGltYXRvci4KVGhhdCBlc3RpbWF0b3IgaXMgdXNlZCBhcyB0aGUgbWlkcG9pbnQgb2YgdGhl
IG5leHQgcmFtcCwgYW5kIGluY2x1ZGluZwp0aGUgY2hhbmdlIHBvaW50IGZyb20gYSBwb29yIHJl
Z3Jlc3Npb24gY2FuIGJha2UgaW4gdGhlIGVycm9yLiBUaGUKY29udHJvbGxlciBhbHJlYWR5IGtu
b3dzIGhvdyB0byBhZGp1c3QgZm9yIHJhbXBzIHRoYXQgYXJlIHRvbyBlYXN5IGZvcgp0aGUgc3lz
dGVtLgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKHRoaXMu
X3Byb2Nlc3NEYXRhLmZpbmRSZWdyZXNzaW9uKTogVGFrZXMgYSBwcmVmZXJyZWQgcHJvZmlsZSBh
bmQgZ2l2ZXMgdGhhdCB0bwpSZWdyZXNzaW9uLgoodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRl
U2NvcmUpOiBXaXRoIHRoZSByYW1wIGNvbnRyb2xsZXIsIHRha2UgdGhlIHByb2ZpbGUKb2YgdGhl
IHJhbXAgdGhhdCB3YXMgdXNlZCB0aGUgbW9zdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSByYW1wJ3Mg
cmVncmVzc2lvbi4gVGhhdApwcm9maWxlIGlzIHdoYXQgaXMgdXNlZCBmb3IgdGhlIHRlc3QncyBz
Y29yZS4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzOgooUmVncmVzc2lvbi5V
dGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBVcGRhdGUgdG8gdGFrZSBhbiBvcHRpb25zIG9iamVjdCB3
aGljaCBjYW4Kc3BlY2lmeSBhIHByb2ZpbGUgdG8gY2FsY3VsYXRlIHdpdGguIE90aGVyd2lzZSBp
dCB3aWxsIGNvbnRpbnVlIHRvIHVzZSBib3RoIGFuZApzZWxlY3QgdGhlIG9uZSB3aXRoIHRoZSBs
b3dlciBlcnJvci4KKF9jYWxjdWxhdGVSZWdyZXNzaW9uKTogRml4IGFuIGlzc3VlIHdoZXJlIHdl
IGNsYWltIDAgZXJyb3IgaWYgdGhlIHJlZ3Jlc3Npb24KY2FsY3VsYXRpb24gZmFpbHMgZHVlIHRv
IGRpdmlkZS1ieS16ZXJvLiBJbnN0ZWFkIHJlamVjdCB0aGF0IHJlZ3Jlc3Npb24gY2FsY3VsYXRp
b24KYnkgZ2l2aW5nIGl0IE51bWJlci5NQVhfVkFMVUUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMv
c3RyaW5ncy5qczogTmV3IHN0cmluZ3MgZm9yIG1hcmtpbmcgYSByZWdyZXNzaW9uIGFzIGZsYXQK
b3Igc2xvcGUuCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKFJhbXBDb250
cm9sbGVyKTogUmVuYW1lIHRoZSB0aHJlc2hvbGRzIGZvciBjbGFyaXR5LiBBZGQgYSB0aHJlc2hv
bGQgdGhhdCwgaWYKZXhjZWVkZWQsIHdpbGwgbG93ZXIgdGhlIG1heGltdW0gY29tcGxleGl0eSBv
ZiB0aGUgbmV4dCByYW1wLgoodHVuZSk6IFJlbGF4IHRoZSBjZGYgY2hlY2sgdG8gY29uc2lkZXIg
d2hldGhlciB0aGUgaW50ZXJ2YWwgZGVmaW5pdGVseSBmYWxscyBpbgp0aGUgZGVzaXJlZCBmcmFt
ZSBsZW5ndGggdGhyZXNob2xkLgoocHJvY2Vzc1NhbXBsZXMpOiBJbmNsdWRlIHRoZSBwcm9maWxl
IGluIHRoZSByYW1wLgoKVXBkYXRlIHJhbXAgY29udHJvbGxlciB0ZXN0LiBJbmNyZWFzZSB0aGUg
bGVuZ3RoIG9mIHRoZSB0ZXN0IHRvIDMwIHNlY29uZHMsIGFuZCBleHRlbmQKdGhlIGludGVydmFs
IHRvIDEyMCBtcyBkdXJpbmcgc2FtcGxpbmcuIEltcHJvdmUgdGhlIGVzdGltYXRpb24gb2YgdGhl
IHJhbXAgcGFyYW1ldGVycy4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogQ2hhbmdlIGRl
ZmF1bHQgdG8gMzAgc2Vjb25kcywgYW5kIGRvbid0IHNob3cgdGhlIHByb2dyZXNzIGJhcgpieSBk
ZWZhdWx0LgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOiBDaGFu
Z2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLgoqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21h
aW4uanM6IEEgbnVtYmVyIG9mIGltcHJvdmVtZW50cyB0byB0aGUgcmFtcCBjb250cm9sbGVyLCBp
bgp0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcHBlYXIgaW4gdGhlIHBhdGNoOgoKLSBXaXRoIGEg
bG9uZ2VyIHRlc3QgbGVuZ3RoIHVzZSBsb25nZXIgcmFtcHMgd2l0aCBsb25nZXIgaW50ZXJ2YWxz
IHRvIGdldCBtb3JlIGRhdGEgYXQgZWFjaApjb21wbGV4aXR5LiBLZWVwIHRoZSAxMDAgbXMgaW50
ZXJ2YWwgbGVuZ3RoIGR1cmluZyB0aGUgcmFtcCB1cCBwaGFzZSBzaW5jZSB3ZSBkb24ndCBuZWVk
IHRvCnNwZW5kIG1vcmUgdGltZSB0aGVyZSB0byBmaW5kIHRoZSByaWdodCBvcmRlciBvZiBtYWdu
aXR1ZGUsIGJ1dCBpbmNyZWFzZSBpdCBkdXJpbmcgdGhlCnJhbXBzIHRvIDEyMCBtcy4KLSBUaGUg
cmFtcCBsaW5lYXJseSBpbnRlcnBvbGF0ZXMgdGhlIGNvbXBsZXhpdHkgdG8gcmVuZGVyIGJhc2Vk
IG9uIGl0cyB0aW1lc3RhbXAsIGJ1dCBpdCB3b3VsZApuZXZlciBzYW1wbGUgdGhlIG1pbmltdW0g
Y29tcGxleGl0eS4gSW5zdGVhZCBvZiBsZXJwaW5nIG1heCB0byBtaW4gY29tcGxleGl0eSBmcm9t
IHRpbWUKMCB0byB0IHdoZXJlIHQgaXMgdGhlIHJhbXAgbGVuZ3RoLCBpbnN0ZWFkIGxlcnAgZnJv
bSAwIHRvICh0IC0gaW50ZXJ2YWxTYW1wbGVMZW5ndGgpIHNvIHRoYXQKd2UgY2FuIGhhdmUgYXQg
bGVhc3Qgb25lIGludGVydmFsIHNhbXBsZSBhdCB0aGUgbWluIGNvbXBsZXhpdHkgZm9yIHRoYXQg
cmFtcC4KLSBTb21lIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb25zIG9ubHkgY29tZSBvdXQgd2l0aCBv
bmUgbGluZSBzZWdtZW50IHJhdGhlciB0aGFuIHRoZSB0d28Kd2UgZXhwZWN0LiBUaGlzIGNvdWxk
IGJlIGR1ZSB0byBhIG5vaXN5IHJhbXAgb3IgdGhlIHJhbXAncyByYW5nZSBpcyB0b28gbmFycm93
LiBJZiB0aGF0J3MgdGhlCmNhc2UsIGluZmx1ZW5jZSB0aGUgbWluaW11bSBjb21wbGV4aXR5IG9m
IHRoZSBuZXh0IHJhbXAgdG93YXJkcyB0aGUgbG93ZXN0IGJvdW5kIG9mIDEsIHNvIHRoYXQKd2Ug
ZW5zdXJlIHRoYXQgYXQgbGVhc3QgcGFydCBvZiB0aGUgcmFtcCBpcyBjb3ZlcmluZyBhIGNvbXBs
ZXhpdHkgcmFuZ2UgdGhhdCB0aGUgc3lzdGVtIGNhbgpoYW5kbGUgYXQgZnVsbCA2MC4KLSBSZW1v
dmUgYW4gYXNzaWdubWVudCB0byBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCBzaW5jZSB0aGF0IGlz
IG5ldmVyIHN1YnNlcXVlbnRseSB1c2VkLgoKVXBkYXRlIHRoZSBmb3JtYXQgdXNlZCB0byBzZXJp
YWxpemUgdGhlIHJlc3VsdHMgZm9yIGFuYWx5c2lzLgoKRWFjaCBkYXRhIHBvaW50IHVzZWQgdG8g
aGF2ZSBuYW1lZCBwcm9wZXJ0aWVzIGZvciBmaWVsZHMgbGlrZSBjb21wbGV4aXR5IGFuZCBmcmFt
ZSByYXRlLgpJbiBhZGRpdGlvbiB0aGUgc2VyaWFsaXplZCBudW1iZXJzIGhhZCByb3VuZGluZyBl
cnJvcnMgdGhhdCB0b29rIHVwIG1hbnkgY2hhcmFjdGVycy4KVXBkYXRlIHRoZSBmb3JtYXQgYnkg
aW50cm9kdWNpbmcgYSBuZXcgZGF0YSBjb250YWluZXIgY2FsbGVkIFNhbXBsZURhdGEsIHdoaWNo
IGNvbnRhaW5zIGEKZmllbGQgbWFwLiBUaGUgbWFwIG1hcHMgYSBzdHJpbmcgdG8gYW4gYXJyYXkg
aW5kZXguIEVhY2ggZGF0YSBwb2ludCBpcyBhbiBhcnJheSwgc28sIHRvCmdldCBhIHN0YXQsIHVz
ZSB0aGUgZmllbGQgbWFwIHRvIGdldCB0aGUgYXJyYXkgaW5kZXggaW50byB0aGUgZGF0YSBwb2lu
dC4gVGhpcyBhbGxvd3MgZnV0dXJlCnZlcnNpb25zIHRvIHRyYWNrIG90aGVyIGRhdGEsIGFuZCBy
ZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgc3RyaW5nIGJ5IHR3by10aGlyZHMuCgoqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CihVdGlsaXRpZXMudG9GaXhlZE51bWJl
cik6IEFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHRydW5jYXRlcyB0aGUgbnVtYmVyIHRv
IGEgZml4ZWQKcHJlY2lzaW9uLCBhbmQgY29udmVydHMgaXQgYmFjayB0byBhIG51bWJlci4KKFNh
bXBsZURhdGEpOiBOZXcgY2xhc3MgdGhhdCBjb250YWlucyBzYW1wbGUgZGF0YSBhbmQgYSBmaWVs
ZCBtYXAgdGhhdCBtYXBzIHByb3BlcnRpZXMgdG8KYW4gYXJyYXkgaW5kZXguCihnZXQgbGVuZ3Ro
KTogTnVtYmVyIG9mIGRhdGEgcG9pbnRzLgooYWRkRmllbGQpOiBBZGQgYSBmaWVsZCB0byB0aGUg
ZmllbGQgbWFwLgoocHVzaCk6IEFkZCBhIGRhdGEgcG9pbnQuCihzb3J0KTogU29ydCB0aGUgZGF0
YS4KKHNsaWNlKTogUmV0dXJuIG5ldyBTYW1wbGVEYXRhIG9iamVjdCB3aXRoIHNsaWNlZCBkYXRh
LgooZm9yRWFjaCk6IEl0ZXJhdGUgb3ZlciB0aGUgZGF0YSB3aXRoIHByb3ZpZGVkIGZ1bmN0aW9u
LgooY3JlYXRlRGF0dW0pOgooZ2V0RmllbGRJbkRhdHVtKTogUmV0dXJucyB0aGUgZGF0YSBwb2lu
dCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIG5hbWUgYnkgbG9va2luZyBpdCB1cAppbiB0aGUg
ZmllbGQgbWFwIGluIHRoZSBkYXR1bSBwcm92aWRlZCwgd2hpY2ggY2FuIGJlIHRoZSBkYXR1bSBv
YmplY3QgaXRzZWxmIChhbiBhcnJheSkgb3IKYW4gaW5kZXggaW50byB0aGUgZGF0YSBtZW1iZXIg
dmFyaWFibGUuCihzZXRGaWVsZEluRGF0dW0pOiBTZXRzIHRoZSBkYXRhIHBvaW50IGFzc29jaWF0
ZWQgd2l0aCB0aGUgZmllbGQgbmFtZS4KKGF0KTogUmV0dXJucyB0aGUgZGF0YSBwb2ludCBhdCB0
aGUgcHJvdmlkZWQgaW5kZXguCih0b0FycmF5KTogU2VyaWFsaXplcyB0aGUgZGF0YSB3aGVyZSB0
aGUgZmllbGQgbWFwIHNlcnZlcyBhcyBwcm9wZXJ0eSBuYW1lcyBmb3IgZWFjaCBwb2ludC4KCiog
QW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzOgoodXBkYXRlR3JhcGhE
YXRhKTogUmVtb3ZlIHVudXNlZCBfdGVzdERhdGEuIENvbnZlcnQgdGhlIGRhdGEgdG8gdGhlIG9s
ZCBhcnJheSBmb3JtYXQgZm9yIHRoZQpncmFwaCB0byB1c2UsIHNpbmNlIHRoZSBvbGQgZm9ybWF0
IHdhcyBtdWNoIGVhc2llciB0byB3b3JrIHdpdGggd2hlbiBkaXNwbGF5aW5nIHRoZSBncmFwaHMu
CihvbkdyYXBoVHlwZUNoYW5nZWQpOiBGb3Igc29tZSBjb250cm9sbGVycywgbm8gYWx0ZXJuYXRp
dmUgc2NvcmUgb3IgbWVhbiBpcyBwcm92aWRlZC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5u
ZXIvYW5pbW9tZXRlci5jc3M6CiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0
ZXIuanM6IFJlZmFjdG9yIHRvIHVzZSBTYW1wbGVEYXRhLiBVcGRhdGUgSlNPTiBvdXRwdXQKdG8g
b25seSBnbyB0byAzIGRpZ2l0cyBvZiBwcmVjaXNpb24gZm9yIHB1cnBvc2VzIG9mIHJlZHVjaW5n
IHRoZSBkYXRhIHNpemUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczogQWRkIG5l
dyBzdHJpbmdzIHRvIHB1dCBpbnRvIHRoZSBmaWVsZCBtYXBzLgoqIEFuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL21haW4uanM6IFJlZmFjdG9yIHRvIHVzZSBTYW1wbGVEYXRhLgoKKiBBbmltb21l
dGVyL2RldmVsb3Blci5odG1sOgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDogUmVzdHJ1Y3R1cmUg
cmVzdWx0cyB0YWJsZSBmb3IgYm90aCBwYWdlcy4gQWRkIGNoYXJzZXQgYXR0cmlidXRlIHRvCnRl
c3RzLmpzIGluY2x1ZGUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1v
bWV0ZXIuY3NzOiBDbGVhciBvdXQgc3R5bGVzIGZyb20gcmVsZWFzZSBydW5uZXIuCiogQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzOgoob25HcmFwaFR5cGVDaGFuZ2Vk
KTogVXBkYXRlIHNjb3JlIGFuZCBtZWFuIGlmIGJvb3RzdHJhcCByZXN1bHRzIGFyZSBhdmFpbGFi
bGUgZnJvbSB0aGUKY29udHJvbGxlciwgc2luY2Ugbm90IGFsbCBjb250cm9sbGVycyBkbyBib290
c3RyYXBwaW5nLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qczog
VXBkYXRlIGhlYWRlciB0ZXh0LgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmNzczogSW5jbHVkZSBjb25maWRlbmNlIGludGVydmFsIGluIHJlc3VsdHMuCiogQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6CihSZXN1bHRzVGFibGUuX2FkZEhl
YWRlcik6IEhlYWRlciBjb250ZW50cyBjYW4gYmUgSFRNTCwgc28gdXNlIGlubmVySFRNTCBpbnN0
ZWFkLgooUmVzdWx0c1RhYmxlLl9hZGRCb2R5KTogQWRkIHRib2R5IGVsZW1lbnQuCihSZXN1bHRz
VGFibGUuX2FkZFRlc3QpOiBBbGxvdyBhIGRhdGEgY2VsbCB0byBpbnZva2UgYSBKUyBmdW5jdGlv
biB0byBnZXQgaXRzIGNvbnRlbnRzLgood2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jl
c3VsdHMpOiBBZGQgdGFibGUgdGhhdCBpbmNsdWRlcyB0ZXN0cycgY29uZmlkZW5jZSBpbnRlcnZh
bHMuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzOgooSGVhZGVycy5kZXRh
aWxzLnRleHQpOiBBZGQgbmV3IGRldGFpbHMgdGFibGUgdGhhdCBpbmNsdWRlcyBib290c3RyYXAg
Y29uZmlkZW5jZSBpbnRlcnZhbC4KVGhlIGludGVydmFsIGNhbiBiZSBhc3ltbWV0cmljLCBidXQg
Zm9yIHNpbXBsaWNpdHksIHJlcG9ydCB0aGUgbWF4aW11bSBkZXZpYXRpb24gcGVyY2VudGFnZQpv
biBlaXRoZXIgc2lkZSBvZiB0aGUgYm9vdHN0cmFwIG1lZGlhbi4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9zdGF0aXN0aWNzLmpzOgooYm9vdHN0cmFwKTogSW5jbHVkZSB0aGUgY29uZmlkZW5jZSBw
ZXJjZW50YWdlIGluIHRoZSByZXR1cm4gb2JqZWN0LgoKUmVwb3J0IGNhbnZhcyBzaXplIGluIHJl
c3VsdHMuCgoqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IEFkZCBtYXJrdXAgdG8gaW5kaWNh
dGUgd2hldGhlciBhIHNtYWxsLCBtZWRpdW0sIG9yIGxhcmdlCmNhbnZhcyB3YXMgdXNlZC4KKiBB
bmltb21ldGVyL2luZGV4Lmh0bWw6IERpdHRvLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9hbmltb21ldGVyLmpzOiBDYWxsIGRldGVybWluZUNhbnZhc1NpemUoKS4KKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3M6IFVwZGF0ZSBzdHlsZXMgdG8g
c2V0IHRoZSBjYW52YXMgYmFzZWQgb24gdGhlCmJvZHkgY2xhc3Mgc2l6ZS4KKiBBbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKHdpbmRvdy5iZW5jaG1hcmtDb250cm9s
bGVyLmluaXRpYWxpemUpOiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0aGUgY2FudmFzIGJhc2VkIG9u
IHRoZQpib2R5IGNsYXNzIHNpemUuCih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5kZXRlcm1p
bmVDYW52YXNTaXplKTogUnVuIHZhcmlvdXMgbWVkaWEgcXVlcmllcyBhbmQgc2V0IHRoZSBib2R5
CmNsYXNzIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBkZXZpY2UuCgoqIEFuaW1vbWV0ZXIvZGV2
ZWxvcGVyLmh0bWw6IFJlZmFjdG9yIHRvIGluY2x1ZGUgdGhlIG1haW4gQ1NTIGZpbGUsIGFuZCBy
ZWRvCnRoZSBsYXlvdXQgc28gdGhhdCBpdCBkb2Vzbid0IHJlbHkgb24gZmxleGJveC4KKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3M6CiogQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanM6Cih1cGRhdGVEaXNwbGF5KTog
U2luY2UgdmFyaW91cyBwYXJ0cyBvZiB0aGUgc2NyaXB0IGFsdGVyIHRoZSBib2R5IGNsYXNzLCB3
ZSBjYW4ndApyZXBsYWNlIHRoZSBjbGFzc05hbWUgZGlyZWN0bHkuIEluc3RlYWQsIHJlbW92ZSBh
bGwgZGlzcGxheS1iYXNlZCB2YWx1ZXMgYW5kIHRoZW4gYWRkCnRoZSBvbmUgdGhhdCB3YXMgc2Vs
ZWN0ZWQuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzOgoodXBk
YXRlR3JhcGhEYXRhKTogVG8gc2V0IHRoZSBzaXplIG9mIHRoZSBncmFwaCwgdXNlIHdpbmRvdy5p
bm5lckhlaWdodC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoK
KHdpbmRvdy5zZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24pOiBTaW5jZSB2YXJpb3VzIHBhcnRz
IG9mIHRoZSBzY3JpcHQgYWx0ZXIgdGhlIGJvZHkKY2xhc3MsIHdlIGNhbid0IHJlcGxhY2UgdGhl
IGNsYXNzTmFtZSBkaXJlY3RseS4gUmVtb3ZlIGFsbCBvZiB0aGUgc2VjdGlvbiBjbGFzc2VzCmlu
ZGl2aWR1YWxseSBhbmQgdGhlbiBhZGQgdGhlIG9uZSBkZXNpcmVkLgoqIEFuaW1vbWV0ZXIvdGVz
dHMvcmVzb3VyY2VzL3N0YWdlLmNzczogUmVtb3ZlIC1hcHBsZS1zeXN0ZW0gYXMgYSBmb250IHRv
IHVzZSBpbiB0aGUKc3RhZ2UuCi0tLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVs
b3Blci5odG1sICAgICAgICAgfCAyNDAgKysrKy0tLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvaW5kZXguaHRtbCAgICAgICAgICAgICB8ICAyNCArLQogLi4uL3Jlc291cmNlcy9kZWJ1
Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3MgICAgICAgICAgfCA1NDUgKysrKysrKy0tLS0tLS0tLS0t
LS0tCiAuLi4vcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzICAgICAgICAgICB8
ICAyMyArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qcyAg
ICAgfCAgNDkgKy0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMu
anMgICAgIHwgICAyICstCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyAg
ICAgICAgICAgICB8ICA4NyArKysrCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2Fu
aW1vbWV0ZXIuY3NzICAgICB8IDExOSArKystLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9hbmltb21ldGVyLmpzICAgICAgfCAyMDggKysrKysrLS0KIC4uLi9Bbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvbGluZXMuc3ZnICAgICAgICAgIHwgIDQwICstCiAuLi4vQW5pbW9tZXRl
ci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzICAgICAgICAgICB8ICAyMyArLQogLi4uL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMgICAgICAgICAgICAgfCAgODUgKystLQogUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdzLmpzICAgfCAgMTQgKy0K
IC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sICAgICAgICAgICAgIHwgICAx
ICsKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9jdXMuanMgICAgIHwg
IDQzICstCiAuLi4vdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzICAgICAgICAg
ICB8ICAgNiArLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0
Lmh0bWwgfCAgMjEgKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzICAg
ICAgICAgICAgIHwgMTQ0ICsrKystLQogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0
YWdlLmNzcyAgICAgICAgICAgfCAgIDIgKy0KIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgMjIyICsrKysrKysrKwogMjAgZmlsZXMgY2hhbmdlZCwg
MTEzOCBpbnNlcnRpb25zKCspLCA3NjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL2RldmVsb3Blci5odG1sCmluZGV4IGNmMzdlZTAuLjljMTRlMGYgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKQEAgLTEsMTUgKzEsMTkgQEAK
IDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLSAgICA8dGl0bGU+QW5pbW9tZXRlciAt
IGRldmVsb3BlcjwvdGl0bGU+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFi
bGU9bm8iPgorCisgICAgPHRpdGxlPk1vdGlvbk1hcmsgMS4wIC0gZGV2ZWxvcGVyPC90aXRsZT4K
KworICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3J1bm5lci9hbmlt
b21ldGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMv
ZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuY3NzIj4KKwogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9leHRl
bnNpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N0YXRpc3Rp
Y3MuanMiPjwvc2NyaXB0PgogCi0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvdGVz
dHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3Rz
LmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzIiBjaGFy
c2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CkBAIC0xOCwxMzQgKzIyLDE0NiBAQAogICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZGVidWctcnVubmVyL2QzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMiIGNoYXJzZXQ9InV0Zi04
Ij48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5PgorPGJvZHkgY2xhc3M9InNob3dpbmctaW50cm8i
PgogICAgIDxtYWluPgotICAgICAgICA8aHI+CiAgICAgICAgIDxzZWN0aW9uIGlkPSJpbnRybyIg
Y2xhc3M9InNlbGVjdGVkIj4KLSAgICAgICAgICAgIDxoMT5Bbmltb21ldGVyPC9oMT4KLSAgICAg
ICAgICAgIDxkaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0ic3VpdGVzIj4KLSAgICAgICAg
ICAgICAgICAgICAgPGgyPlN1aXRlczo8L2gyPgotICAgICAgICAgICAgICAgICAgICA8dWwgY2xh
c3M9InRyZWUiPjwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gaWQ9ImRyb3At
dGFyZ2V0Ij5Ecm9wIHJlc3VsdHMgaGVyZTwvc3Bhbj48L2Rpdj4KKyAgICAgICAgICAgIDxoMT5N
b3Rpb25NYXJrPC9oMT4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgorICAgICAgICAg
ICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8aDI+U3VpdGVzOjwvaDI+CisgICAgICAgICAgICAgICAgICAg
ICAgICA8dWwgY2xhc3M9InRyZWUiPjwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
PjxzcGFuIGlkPSJkcm9wLXRhcmdldCI+RHJvcCByZXN1bHRzIGhlcmU8L3NwYW4+PC9kaXY+Cisg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJv
cHRpb25zIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PcHRpb25zOjwvaDI+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJiZW5jaG1hcmstb3B0aW9ucyI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGVz
dCBsZW5ndGg6IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ0ZXN0LWludGVydmFsIiB2YWx1ZT0i
MzAiPiBzZWNvbmRzIGVhY2g8L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+RGlzcGxheTo8L2gzPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9InJhZGlv
IiB2YWx1ZT0ibWluaW1hbCIgY2hlY2tlZD4gTWluaW1hbDwvbGFiZWw+PC9saT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJk
aXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFsdWU9InByb2dyZXNzLWJhciI+IFByb2dyZXNzIGJhcjwv
bGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxo
Mz5BZGp1c3RpbmcgdGhlIHRlc3QgY29tcGxleGl0eTo8L2gzPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2
YWx1ZT0iZml4ZWQiPiBLZWVwIGF0IGEgZml4ZWQgY29tcGxleGl0eTwvbGFiZWw+PC9saT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBu
YW1lPSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InN0ZXAiPiBLZWVwIGF0IGEgZml4
ZWQgY29tcGxleGl0eSwgdGhlbiBtYWtlIGEgYmlnIHN0ZXA8L2xhYmVsPjwvbGk+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0i
Y29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJhZGFwdGl2ZSI+IE1haW50YWluIHRhcmdl
dCBGUFM8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVl
PSJyYW1wIiBjaGVja2VkPiBSYW1wPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5
cGU9InJhZGlvIiB2YWx1ZT0icmFtcDMwIj4gUmFtcCBAIDMwZnBzPC9sYWJlbD48L2xpPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlRhcmdldCBmcmFt
ZSByYXRlOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZnJhbWUtcmF0ZSIgdmFsdWU9IjUwIj4g
RlBTPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGgzPkthbG1hbiBmaWx0ZXIgZXN0aW1hdGVkIGVycm9yOjwvaDM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD5Qcm9jZXNzIGVycm9yIChRKTogPGlucHV0
IHR5cGU9Im51bWJlciIgaWQ9ImthbG1hbi1wcm9jZXNzLWVycm9yIiB2YWx1ZT0iMSI+PC9sYWJl
bD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFi
ZWw+TWVhc3VyZW1lbnQgZXJyb3IgKFIpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ia2FsbWFu
LW1lYXN1cmVtZW50LWVycm9yIiB2YWx1ZT0iNCI+PC9sYWJlbD48L2xpPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlRpbWUgbWVhc3VyZW1lbnQgbWV0aG9k
OjwvaDM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0i
dGltZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJwZXJmb3JtYW5jZSIgY2hlY2tl
ZD4gPGNvZGU+cGVyZm9ybWFuY2Uubm93KCk8L2NvZGU+PC9sYWJlbD48L2xpPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9InRp
bWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0iZGF0ZSI+IDxjb2RlPkRhdGUubm93
KCk8L2NvZGU+PC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3Jt
PgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJvcHRpb25zIj4KLSAgICAgICAgICAgICAgICAgICAgPGgy
Pk9wdGlvbnM6PC9oMj4KLSAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT0iYmVuY2htYXJr
LW9wdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAg
IDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UZXN0IGxlbmd0aDogPGlucHV0
IHR5cGU9Im51bWJlciIgaWQ9InRlc3QtaW50ZXJ2YWwiIHZhbHVlPSIyMCI+IHNlY29uZHMgZWFj
aDwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAg
IDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5EaXNwbGF5OjwvaDM+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgbmFtZT0iZGlzcGxheSIgdHlwZT0icmFkaW8iIHZhbHVlPSJtaW5pbWFsIiBj
aGVja2VkPiBNaW5pbWFsPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9InJhZGlvIiB2YWx1ZT0icHJv
Z3Jlc3MtYmFyIiBjaGVja2VkPiBQcm9ncmVzcyBiYXI8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAg
ICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aDM+QWRqdXN0aW5nIHRo
ZSB0ZXN0IGNvbXBsZXhpdHk6PC9oMz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9s
bGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImZpeGVkIj4gS2VlcCBhdCBhIGZpeGVkIGNvbXBsZXhp
dHk8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJzdGVwIj4gS2VlcCBh
dCBhIGZpeGVkIGNvbXBsZXhpdHksIHRoZW4gbWFrZSBhIGJpZyBzdGVwPC9sYWJlbD48L2xpPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRy
b2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0iYWRhcHRpdmUiPiBNYWludGFpbiB0YXJnZXQgRlBT
PC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlu
cHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0icmFtcCIgY2hlY2tlZD4g
UmFtcDwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVs
PjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAzMCI+IFJh
bXAgQCAzMGZwczwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0g
ICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UYXJnZXQgZnJhbWUgcmF0ZTogPGlucHV0IHR5cGU9
Im51bWJlciIgaWQ9ImZyYW1lLXJhdGUiIHZhbHVlPSI1MCI+IEZQUzwvbGFiZWw+Ci0gICAgICAg
ICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDxoMz5LYWxtYW4gZmlsdGVyIGVzdGltYXRlZCBlcnJvcjo8L2gzPgotICAg
ICAgICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48bGFiZWw+UHJvY2VzcyBlcnJvciAoUSk6IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJrYWxt
YW4tcHJvY2Vzcy1lcnJvciIgdmFsdWU9IjEiPjwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bGk+PGxhYmVsPk1lYXN1cmVtZW50IGVycm9yIChSKTogPGlucHV0IHR5
cGU9Im51bWJlciIgaWQ9ImthbG1hbi1tZWFzdXJlbWVudC1lcnJvciIgdmFsdWU9IjQiPjwvbGFi
ZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAg
ICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDxoMz5UaW1lIG1lYXN1cmVtZW50IG1ldGhvZDo8L2gzPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9InRpbWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0icGVyZm9ybWFuY2Ui
IGNoZWNrZWQ+IDxjb2RlPnBlcmZvcm1hbmNlLm5vdygpPC9jb2RlPjwvbGFiZWw+PC9saT4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJ0aW1lLW1l
YXN1cmVtZW50IiB0eXBlPSJyYWRpbyIgdmFsdWU9ImRhdGUiPiA8Y29kZT5EYXRlLm5vdygpPC9j
b2RlPjwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAg
ICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAg
ICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICA8cD5Gb3IgYWNjdXJhdGUgcmVzdWx0
cywgcGxlYXNlIHRha2UgdGhlIGJyb3dzZXIgd2luZG93IGZ1bGwgc2NyZWVuLCBvciByb3RhdGUg
dGhlIGRldmljZSB0byBsYW5kc2NhcGUgb3JpZW50YXRpb24uPC9wPgorICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9InN0YXJ0LWJlbmNobWFyayI+CisgICAgICAgICAgICAgICAgICAgIDxwIGNs
YXNzPSJoaWRkZW4iPlBsZWFzZSByb3RhdGUgdGhlIGRldmljZSB0byBvcmllbnRhdGlvbiBiZWZv
cmUgc3RhcnRpbmcuPC9wPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJydW4tYmVu
Y2htYXJrIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0QmVuY2htYXJrKCkiPlJ1
biBiZW5jaG1hcms8L2J1dHRvbj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
IDwvZGl2PgotICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRlIHJlc3VsdHMsIHBsZWFzZSB0YWtl
IHRoZSBicm93c2VyIHdpbmRvdyBmdWxsIHNjcmVlbiwgb3Igcm90YXRlIHRoZSBkZXZpY2UgdG8g
bGFuZHNjYXBlIG9yaWVudGF0aW9uLjwvcD4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yaWVu
dGF0aW9uLWNoZWNrIj4KLSAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaGlkZGVuIj5QbGVhc2Ug
cm90YXRlIHRoZSBkZXZpY2UgdG8gb3JpZW50YXRpb24gYmVmb3JlIHN0YXJ0aW5nLjwvcD4KLSAg
ICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJydW4tYmVuY2htYXJrIiBvbmNsaWNrPSJiZW5jaG1h
cmtDb250cm9sbGVyLnN0YXJ0QmVuY2htYXJrKCkiPlJ1biBiZW5jaG1hcms8L2J1dHRvbj4KLSAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L3NlY3Rpb24+CisKICAgICAgICAgPHNlY3Rpb24g
aWQ9InRlc3QtY29udGFpbmVyIj4KICAgICAgICAgICAgIDxkaXYgaWQ9InJ1bm5pbmctdGVzdCIg
Y2xhc3M9ImZyYW1lLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGlkPSJwcm9n
cmVzcyI+CiAgICAgICAgICAgICAgICAgPGRpdiBpZD0icHJvZ3Jlc3MtY29tcGxldGVkIj48L2Rp
dj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L3NlY3Rpb24+CisKICAgICAgICAgPHNl
Y3Rpb24gaWQ9InJlc3VsdHMiPgotICAgICAgICAgICAgPGgxPkFuaW1vbWV0ZXIgc2NvcmU8L2gx
PgotICAgICAgICAgICAgPHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9s
bGVyLnNob3dEZWJ1Z0luZm8oKSI+PC9wPgotICAgICAgICAgICAgPGRpdiBpZD0icmVzdWx0cy10
YWJsZXMiPgotICAgICAgICAgICAgICAgIDxkaXY+Ci0gICAgICAgICAgICAgICAgICAgIDx0YWJs
ZSBpZD0icmVzdWx0cy1zY29yZSI+PC90YWJsZT4KLSAgICAgICAgICAgICAgICAgICAgPHRhYmxl
IGlkPSJyZXN1bHRzLWRhdGEiPjwvdGFibGU+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5
Ij4KKyAgICAgICAgICAgICAgICA8aDE+TW90aW9uTWFyayBzY29yZTwvaDE+CisgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsIj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh
c3M9InNtYWxsIj5vbiBhIHNtYWxsIHNjcmVlbiAocGhvbmUpPC9zcGFuPgorICAgICAgICAgICAg
ICAgICAgICA8c3BhbiBjbGFzcz0ibWVkaXVtIj5vbiBhIG1lZGl1bSBzY3JlZW4gKGxhcHRvcCwg
dGFibGV0KTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhcmdlIj5v
biBhIGxhcmdlIHNjcmVlbiAoZGVza3RvcCk8L3NwYW4+CiAgICAgICAgICAgICAgICAgPC9kaXY+
Ci0gICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWhlYWRlciI+PC90YWJsZT4KKyAg
ICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NvcmUiIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xs
ZXIuc2hvd0RlYnVnSW5mbygpIj48L3A+CisgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbmZp
ZGVuY2UiPjwvcD4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJyZXN1bHRzLXRhYmxlcyIgY2xh
c3M9InRhYmxlLWNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtc2NvcmUiPjwvdGFibGU+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtZGF0YSI+PC90YWJsZT4KKyAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0i
cmVzdWx0cy1oZWFkZXIiPjwvdGFibGU+CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAg
ICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnJlc3RhcnRCZW5j
aG1hcmsoKSI+VGVzdCBBZ2FpbjwvYnV0dG9uPgorICAgICAgICAgICAgICAgIDxwPgorICAgICAg
ICAgICAgICAgICAgICAnaic6IFNob3cgSlNPTiByZXN1bHRzPGJyLz4KKyAgICAgICAgICAgICAg
ICAgICAgJ3MnOiBTZWxlY3QgdmFyaW91cyByZXN1bHRzIGZvciBjb3B5L3Bhc3RlICh1c2UgcmVw
ZWF0ZWRseSB0byBjeWNsZSkKKyAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICA8L2Rp
dj4KLSAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5yZXN0
YXJ0QmVuY2htYXJrKCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KLSAgICAgICAgICAgIDxwPgotICAg
ICAgICAgICAgICAgICdqJzogU2hvdyBKU09OIHJlc3VsdHM8YnIvPgotICAgICAgICAgICAgICAg
ICdzJzogU2VsZWN0IHZhcmlvdXMgcmVzdWx0cyBmb3IgY29weS9wYXN0ZSAodXNlIHJlcGVhdGVk
bHkgdG8gY3ljbGUpCi0gICAgICAgICAgICA8L3A+CiAgICAgICAgIDwvc2VjdGlvbj4KICAgICAg
ICAgPHNlY3Rpb24gaWQ9InRlc3QtZ3JhcGgiPgotICAgICAgICAgICAgPGhlYWRlcj4KLSAgICAg
ICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3Vs
dHMoKSI+Jmx0OyBSZXN1bHRzPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGgxPkdyYXBoOjwv
aDE+Ci0gICAgICAgICAgICA8L2hlYWRlcj4KLSAgICAgICAgICAgIDxuYXY+Ci0gICAgICAgICAg
ICAgICAgPGZvcm0gbmFtZT0iZ3JhcGgtdHlwZSI+Ci0gICAgICAgICAgICAgICAgICAgIDx1bD4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBu
YW1lPSJncmFwaC10eXBlIiB2YWx1ZT0idGltZSI+IFRpbWUgZ3JhcGg8L2xhYmVsPjwvbGk+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFt
ZT0iZ3JhcGgtdHlwZSIgdmFsdWU9ImNvbXBsZXhpdHkiIGNoZWNrZWQ+IENvbXBsZXhpdHkgZ3Jh
cGg8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAg
ICAgPC9mb3JtPgotICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9InRpbWUtZ3JhcGgtb3B0aW9u
cyI+Ci0gICAgICAgICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtYXJrZXJzIiBjaGVja2VkPiBN
YXJrZXJzPC9sYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj50aW1lOiA8
c3BhbiBjbGFzcz0idGltZSI+PC9zcGFuPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImF2ZXJhZ2VzIiBj
aGVja2VkPiBBdmVyYWdlczwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxs
aT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjb21wbGV4aXR5IiBjaGVja2Vk
PiBDb21wbGV4aXR5PC9sYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0iY29tcGxleGl0eSI+PC9zcGFuPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmF3RlBTIiBjaGVja2VkPiBS
YXcgRlBTPC9sYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i
cmF3RlBTIj48L3NwYW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWx0ZXJlZEZQUyIgY2hlY2tlZD4gRmlsdGVy
ZWQgRlBTPC9sYWJlbD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i
ZmlsdGVyZWRGUFMiPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlZ3Jlc3Npb25zIiBjaGVja2VkPiBS
ZWdyZXNzaW9uczwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAg
ICAgICAgPC9mb3JtPgotICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImNvbXBsZXhpdHktZ3Jh
cGgtb3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ic2VyaWVzIj4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBu
YW1lPSJzZXJpZXMtcmF3IiBjaGVja2VkPiBTZXJpZXMgcmF3PC9sYWJlbD48L2xpPgotICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9
InNlcmllcy1hdmVyYWdlIj4gU2VyaWVzIGF2ZXJhZ2U8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAg
ICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNz
aW9uLXRpbWUtc2NvcmUiPiBDb250cm9sbGVyIHNjb3JlPC9sYWJlbD48L2xpPgotICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJv
b3RzdHJhcC1zY29yZSIgY2hlY2tlZD4gQm9vdHN0cmFwIHNjb3JlIGFuZCBoaXN0b2dyYW08L2xh
YmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBl
PSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1yYXciIGNo
ZWNrZWQ+IFJlZ3Jlc3Npb24sIHNlcmllcyByYXc8L2xhYmVsPjxzcGFuIGlkPSJjb21wbGV4aXR5
LXJlZ3Jlc3Npb24tYWdncmVnYXRlLXJhdyI+PC9zcGFuPjwvbGk+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0
eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIj4gUmVncmVzc2lvbiwgc2VyaWVzIGF2ZXJh
Z2U8L2xhYmVsPjxzcGFuIGlkPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVnYXRlLWF2ZXJh
Z2UiPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAg
ICAgIDwvZm9ybT4KLSAgICAgICAgICAgIDwvbmF2PgotICAgICAgICAgICAgPHAgY2xhc3M9InNj
b3JlIj48L3A+Ci0gICAgICAgICAgICA8cCBjbGFzcz0ibWVhbiI+PC9wPgotICAgICAgICAgICAg
PGRpdiBpZD0idGVzdC1ncmFwaC1kYXRhIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJvZHkiPgorICAgICAgICAgICAgICAgIDxoZWFkZXI+CisgICAgICAgICAgICAgICAgICAgIDxi
dXR0b24gb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cygpIj4mbHQ7IFJl
c3VsdHM8L2J1dHRvbj4KKyAgICAgICAgICAgICAgICAgICAgPGgxPkdyYXBoOjwvaDE+CisgICAg
ICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzY29yZSI+PC9wPgorICAgICAgICAgICAgICAgICAg
ICA8cCBjbGFzcz0iY29uZmlkZW5jZSI+PC9wPgorICAgICAgICAgICAgICAgIDwvaGVhZGVyPgor
ICAgICAgICAgICAgICAgIDxuYXY+CisgICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9Imdy
YXBoLXR5cGUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJncmFwaC10
eXBlIiB2YWx1ZT0idGltZSI+IFRpbWUgZ3JhcGg8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImdyYXBo
LXR5cGUiIHZhbHVlPSJjb21wbGV4aXR5IiBjaGVja2VkPiBDb21wbGV4aXR5IGdyYXBoPC9sYWJl
bD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAg
ICAgPC9mb3JtPgorICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJ0aW1lLWdyYXBoLW9w
dGlvbnMiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtYXJrZXJz
IiBjaGVja2VkPiBNYXJrZXJzPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPHNwYW4+dGltZTogPHNwYW4gY2xhc3M9InRpbWUiPjwvc3Bhbj48L3NwYW4+PC9saT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgbmFtZT0iYXZlcmFnZXMiIGNoZWNrZWQ+IEF2ZXJhZ2VzPC9sYWJlbD48L2xpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBu
YW1lPSJjb21wbGV4aXR5IiBjaGVja2VkPiBDb21wbGV4aXR5PC9sYWJlbD4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbXBsZXhpdHkiPjwvc3Bhbj48L2xp
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBuYW1lPSJyYXdGUFMiIGNoZWNrZWQ+IFJhdyBGUFM8L2xhYmVsPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmF3RlBTIj48L3NwYW4+PC9saT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgbmFtZT0iZmlsdGVyZWRGUFMiIGNoZWNrZWQ+IEZpbHRlcmVkIEZQUzwvbGFiZWw+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWx0ZXJlZEZQUyI+
PC9zcGFuPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5w
dXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlZ3Jlc3Npb25zIiBjaGVja2VkPiBSZWdyZXNzaW9u
czwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAg
ICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT0iY29tcGxl
eGl0eS1ncmFwaC1vcHRpb25zIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0i
c2VyaWVzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgbmFtZT0ic2VyaWVzLXJhdyIgY2hlY2tlZD4gU2VyaWVzIHJhdzwvbGFi
ZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgbmFtZT0ic2VyaWVzLWF2ZXJhZ2UiPiBTZXJpZXMgYXZlcmFnZTwvbGFi
ZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5w
dXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlZ3Jlc3Npb24tdGltZS1zY29yZSI+IENvbnRyb2xs
ZXIgc2NvcmU8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxs
YWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJvb3RzdHJhcC1zY29yZSIgY2hlY2tl
ZD4gQm9vdHN0cmFwIHNjb3JlIGFuZCBoaXN0b2dyYW08L2xhYmVsPjwvbGk+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9
ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtcmF3IiBjaGVja2VkPiBSZWdyZXNzaW9u
LCBzZXJpZXMgcmF3PC9sYWJlbD48c3BhbiBpZD0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3Jl
Z2F0ZS1yYXciPjwvc3Bhbj48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48
bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24t
YWdncmVnYXRlLWF2ZXJhZ2UiPiBSZWdyZXNzaW9uLCBzZXJpZXMgYXZlcmFnZTwvbGFiZWw+PHNw
YW4gaWQ9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtYXZlcmFnZSI+PC9zcGFuPjwv
bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICA8
L2Zvcm0+CisgICAgICAgICAgICAgICAgPC9uYXY+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0i
dGVzdC1ncmFwaC1kYXRhIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L3Nl
Y3Rpb24+Ci0gICAgICAgIDxocj4KICAgICA8L21haW4+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbCBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sCmluZGV4IGY2NmY2M2QuLjM4MTkzYTggMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sCkBAIC00LDcgKzQsNyBAQAogICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxhYmxlPW5vIj4KIAotICAgIDx0aXRsZT5N
b3Rpb24gTWFyayAxLjA8L3RpdGxlPgorICAgIDx0aXRsZT5Nb3Rpb25NYXJrIDEuMDwvdGl0bGU+
CiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9ydW5uZXIvYW5p
bW9tZXRlci5jc3MiPgogCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9leHRlbnNpb25zLmpzIiBkZWZlcj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N0YXRpc3RpY3MuanMiIGRlZmVyPjwvc2NyaXB0PgogCi0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ydW5uZXIvdGVzdHMuanMiIGRlZmVyPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIiBjaGFyc2V0PSJ1dGYtOCIgZGVmZXI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyIg
ZGVmZXI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci9iZW5j
aG1hcmstcnVubmVyLmpzIiBkZWZlcj48L3NjcmlwdD4KQEAgLTI5LDcgKzI5LDcgQEAKICAgICAg
ICAgPHNlY3Rpb24gaWQ9ImludHJvIiBjbGFzcz0ic2VsZWN0ZWQiPgogICAgICAgICAgICAgPHN2
ZyBjbGFzcz0ibG9nbyI+PHVzZSB4bGluazpocmVmPSJyZXNvdXJjZXMvcnVubmVyL2xvZ28uc3Zn
I3Jvb3QiPjwvc3ZnPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm9keSI+Ci0gICAgICAgICAg
ICAgICAgPHA+TW90aW9uIE1hcmsgaXMgYSBncmFwaGljcyBiZW5jaG1hcmsgdGhhdCBtZWFzdXJl
cyBhIGJyb3dzZXLigJlzIGNhcGFiaWxpdHkgdG8gYW5pbWF0ZSBjb21wbGV4IHNjZW5lcyBhdCBh
IHRhcmdldCBmcmFtZSByYXRlLjwvcD4KKyAgICAgICAgICAgICAgICA8cD5Nb3Rpb25NYXJrIGlz
IGEgZ3JhcGhpY3MgYmVuY2htYXJrIHRoYXQgbWVhc3VyZXMgYSBicm93c2Vy4oCZcyBjYXBhYmls
aXR5IHRvIGFuaW1hdGUgY29tcGxleCBzY2VuZXMgYXQgYSB0YXJnZXQgZnJhbWUgcmF0ZS48L3A+
CiAgICAgICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRlIHJlc3VsdHMsIHBsZWFzZSB0YWtlIHlv
dXIgYnJvd3NlciB3aW5kb3cgZnVsbCBzY3JlZW4sIG9yIHJvdGF0ZSB5b3VyIGRldmljZSB0byBs
YW5kc2NhcGUgb3JpZW50YXRpb24uPC9wPgogICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwb3J0
cmFpdC1vcmllbnRhdGlvbi1jaGVjayI+PGI+UGxlYXNlIHJvdGF0ZSB5b3VyIGRldmljZS48L2I+
PC9wPgogICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImxhbmRzY2FwZS1vcmllbnRhdGlv
bi1jaGVjayIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFyaygpIj5S
dW4gQmVuY2htYXJrPC9idXR0b24+CkBAIC00MSw4ICs0MSwyMiBAQAogICAgICAgICA8c2VjdGlv
biBpZD0icmVzdWx0cyI+CiAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJsb2dvIj48dXNlIHhsaW5r
OmhyZWY9InJlc291cmNlcy9ydW5uZXIvbG9nby5zdmcjcm9vdCI+PC9zdmc+CiAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJib2R5Ij4KLSAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NvcmUiIG9u
Y2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd0RlYnVnSW5mbygpIj48L3A+Ci0gICAgICAg
ICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWhlYWRlciI+PC90YWJsZT48dGFibGUgaWQ9InJl
c3VsdHMtc2NvcmUiPjwvdGFibGU+PGJyPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNj
b3JlLWNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjb3JlIj48
L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlkZW5jZSI+PC9kaXY+
CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbCI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8c3BhbiBjbGFzcz0ic21hbGwiPm9uIGEgc21hbGwgc2NyZWVuIChwaG9uZSk8
L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVkaXVtIj5vbiBh
IG1lZGl1bSBzY3JlZW4gKGxhcHRvcCwgdGFibGV0KTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIDxzcGFuIGNsYXNzPSJsYXJnZSI+b24gYSBsYXJnZSBzY3JlZW4gKGRlc2t0b3ApPC9z
cGFuPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgorICAgICAgICAg
ICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1
bHRzLXNjb3JlIj48L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJy
ZXN1bHRzLWRhdGEiPjwvdGFibGU+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgICAgICAgICAgICA8dGFibGUgaWQ9InJlc3VsdHMtaGVhZGVyIj48L3RhYmxlPgorICAgICAg
ICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYmVuY2ht
YXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFyaygpIj5UZXN0IEFnYWluPC9idXR0b24+CiAgICAg
ICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3Mg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmlt
b21ldGVyLmNzcwppbmRleCAxZDNkZDMzLi4zZjA4ZDQ5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9h
bmltb21ldGVyLmNzcwpAQCAtMSw5MyArMSw2MSBAQAotLyogT3V0ZXIgaGFybmVzcyAqLwotaHRt
bCxib2R5IHsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgbWFyZ2luOiAwcHg7Ci0gICAgcGFkZGlu
ZzogMHB4OwotfQotCiBib2R5IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQxLCAyNDEs
IDI0MSk7Ci0gICAgY29sb3I6IHJnYig5NiwgOTYsIDk2KTsKLSAgICBmb250LWZhbWlseTogLWFw
cGxlLXN5c3RlbSwgIkhlbHZldGljYSBOZXVlIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBzYW5zLXNl
cmlmOwotfQotCi1tYWluIHsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0K
LSAgICBkaXNwbGF5OiBmbGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAganVzdGlm
eS1jb250ZW50OiBmbGV4LXN0YXJ0OwotICAgIGZsZXgtZmxvdzogY29sdW1uOworICAgIGZvbnQt
c2l6ZTogaW5pdGlhbDsKIH0KIAotaHIgewotICAgIGZsZXg6IDEgMCAyMHB4OwotICAgIHdpZHRo
OiAxcHg7Ci0gICAgYm9yZGVyOiAwOwotICAgIG1hcmdpbjogMDsKLX0KK2JvZHkuc2hvd2luZy1p
bnRybywKK2JvZHkuc2hvd2luZy1yZXN1bHRzLAorYm9keS5zaG93aW5nLXRlc3QtZ3JhcGggewor
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5NiwgOTYsIDk2KTsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiBpbml0aWFsOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsOworICAgIGJhY2tn
cm91bmQtc2l6ZTogaW5pdGlhbDsKKyAgICBhbmltYXRpb246IGluaXRpYWw7CisgICAgd2lsbC1j
aGFuZ2U6IGluaXRpYWw7CiAKLXNlY3Rpb24gewotICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7
Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgZGlzcGxheTogbm9uZTsKKyAgICBjb2xvcjogcmdiKDIz
NSwgMjM1LCAyMzUpOwogfQogCi1zZWN0aW9uLnNlbGVjdGVkIHsKLSAgICBkaXNwbGF5OiBpbml0
aWFsOworc2VjdGlvbiAuYm9keSB7CisgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgbWF4LXdpZHRo
OiBpbml0aWFsOworICAgIHRyYW5zZm9ybTogbm9uZTsKIH0KIAogaDEgewogICAgIGZvbnQtc2l6
ZTogM2VtOworICAgIG1hcmdpbjogMS41ZW0gMCAuNWVtOwogICAgIHRleHQtYWxpZ246IGNlbnRl
cjsKLSAgICBmb250LXdlaWdodDogNjAwOwotICAgIG1hcmdpbjogMTB2aCAwOwotICAgIGZsZXg6
IDAgMSAxZW07Ci19Ci0KLS5oaWRkZW4gewotICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKIGJ1dHRv
biB7Ci0gICAgZmxleDogMCAwIGF1dG87CisgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7
CisgICAgbWluLXdpZHRoOiBpbml0aWFsOworICAgIHRyYW5zaXRpb246IG5vbmU7CisgICAgYW5p
bWF0aW9uOiBub25lOworICAgIHdpbGwtY2hhbmdlOiBpbml0aWFsOworCiAgICAgZGlzcGxheTog
YmxvY2s7CiAgICAgZm9udC1zaXplOiAxLjVlbTsKLSAgICBib3JkZXI6IDJweCBzb2xpZCByZ2Io
OTYsIDk2LCA5Nik7Ci0gICAgY29sb3I6IHJnYig5NiwgOTYsIDk2KTsKKyAgICBib3JkZXI6IDJw
eCBzb2xpZCByZ2IoMjM1LCAyMzUsIDIzNSk7CisgICAgY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1
KTsKICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICBib3JkZXItcmFkaXVzOiAxMHB4
OwogICAgIHBhZGRpbmc6IC41ZW0gMmVtOwogfQogCiBidXR0b246aG92ZXIgewotICAgIGJhY2tn
cm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YmEoMjU1LCAyNTUsIDI1NSwgLjEpOwogICAgIGN1cnNvcjogcG9pbnRlcjsKIH0KIAogYnV0dG9u
OmFjdGl2ZSB7CiAgICAgY29sb3I6IGluaGVyaXQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
YSgwLCAwLCAwLCAuMik7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1
LCAuMik7CiB9CiAKIGJ1dHRvbjpkaXNhYmxlZCB7Ci0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDk2
LCA5NiwgOTYsIC41KTsKLSAgICBjb2xvcjogcmdiYSg5NiwgOTYsIDk2LCAuNSk7Ci19Ci0KLUBt
ZWRpYSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTAyNHB4KSwKLSAgICBzY3JlZW4g
YW5kIChtaW4tZGV2aWNlLXdpZHRoOiAxMDI0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2Fw
ZSkgewotICAgIHNlY3Rpb24gewotICAgICAgICBwYWRkaW5nOiAwIDIwcHg7Ci0gICAgfQotCi0g
ICAgc2VjdGlvbi5zZWxlY3RlZCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGFs
aWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsK
LSAgICAgICAgZmxleC1mbG93OiBjb2x1bW47Ci0gICAgfQorICAgIGJvcmRlci1jb2xvcjogcmdi
YSgyMzUsIDIzNSwgMjM1LCAuNSk7CisgICAgY29sb3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgLjUp
OwogfQogCiBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLApAQCAt
OTYsMjgwICs2NCwxNCBAQCBidXR0b246ZGlzYWJsZWQgewogICAgICAgICBmb250LXNpemU6IDIu
NWVtOwogICAgIH0KIAotICAgIGhyIHsKLSAgICAgICAgZmxleDogMCAwIDA7Ci0gICAgfQotCiAg
ICAgc2VjdGlvbiB7CiAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgIHdp
ZHRoOiAxMDAlOwogICAgICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgICAgIGFsaWduLXNlbGY6IHN0
cmV0Y2g7CiAgICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgIH0KIH0KIAotLyogSW50cm8gc2Vj
dGlvbiAqLwotI2ludHJvLnNlbGVjdGVkIHsKLSAgICBmbGV4OiAxIDAgYXV0bzsKLX0KLQotI2lu
dHJvID4gcCB7Ci0gICAgZmxleDogMCAxIGF1dG87Ci0gICAgcGFkZGluZzogLjVlbSAwOwotICAg
IG1hcmdpbjogMDsKLSAgICBmb250LXNpemU6IDJlbTsKLX0KLQotI2ludHJvIC5vcmllbnRhdGlv
bi1jaGVjayB7Ci0gICAgcGFkZGluZzogMTB2aCAwOwotICAgIHRleHQtYWxpZ246IGNlbnRlcjsK
LX0KLQotI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayBwIHsKLSAgICBmb250LXNpemU6IDFlbTsK
LSAgICBjb2xvcjogaHNsKDExLCA3MiUsIDUwJSk7Ci0gICAgbWFyZ2luLWJvdHRvbTogMWVtOwot
ICAgIC1hcHBsZS10cmFpbGluZy13b3JkOiAtYXBwbGUtcGFydGlhbGx5LWJhbGFuY2VkOwotfQot
Ci0jaW50cm8gLm9yaWVudGF0aW9uLWNoZWNrIGJ1dHRvbiB7Ci0gICAgbWFyZ2luOiAwIGF1dG87
Ci19Ci0KLUBtZWRpYSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTAyNHB4KSwKLSAg
ICBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAxMDI0cHgpIGFuZCAob3JpZW50YXRpb246
IGxhbmRzY2FwZSkgewotICAgICNpbnRybyBwIHsKLSAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsK
LSAgICAgICAgbWFyZ2luOiAwOwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1k
ZXZpY2Utd2lkdGg6IDQxNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDog
NDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICNpbnRyby5zZWxlY3Rl
ZCB7Ci0gICAgICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7
Ci0gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICAgICAgZmxleC1mbG93
OiBjb2x1bW47Ci0gICAgfQotCi0gICAgI2ludHJvIHAgewotICAgICAgICBwYWRkaW5nLWxlZnQ6
IDIwcHg7Ci0gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7Ci0gICAgICAgIGZvbnQtc2l6ZTog
MS41ZW07Ci0gICAgfQotfQotCi0vKiBSdW5uaW5nIHRlc3Qgc2VjdGlvbiAqLwotI3Rlc3QtY29u
dGFpbmVyLnNlbGVjdGVkIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotCi0gICAgYWxpZ24taXRlbXM6
IGNlbnRlcjsKLSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKLX0KLQotLmZyYW1lLWNvbnRh
aW5lciA+IGlmcmFtZSB7Ci0gICAgd2lkdGg6IDEyMDBweDsKLSAgICBoZWlnaHQ6IDYwMHB4Owot
ICAgIGJvcmRlcjogMDsKLSAgICBtYXJnaW46IDAgYXV0bzsKLX0KLQotQG1lZGlhIHNjcmVlbiBh
bmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKLSAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNl
LWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICN0ZXN0
LWNvbnRhaW5lciB7Ci0gICAgICAgIHBhZGRpbmc6IDA7Ci0gICAgfQotCi0gICAgLmZyYW1lLWNv
bnRhaW5lciB7Ci0gICAgICAgIHdpZHRoOiAxMDAlOwotICAgICAgICBoZWlnaHQ6IGNhbGMoMTAw
JSArIDFweCk7Ci0gICAgfQotCi0gICAgLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0gICAg
ICAgIHdpZHRoOiAxMDAlOwotICAgICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgfQotfQotCi1AbWVk
aWEgKG1pbi1kZXZpY2UtaGVpZ2h0OiA3NjhweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogMTAy
NHB4KSB7Ci0gICAgLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7Ci0gICAgICAgIHdpZHRoOiA5
MDBweDsKLSAgICAgICAgaGVpZ2h0OiA2MDBweDsKLSAgICB9Ci19Ci0KLUBtZWRpYSBzY3JlZW4g
YW5kIChtYXgtZGV2aWNlLXdpZHRoOiAxMDI0cHgpIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDEz
NjZweCkgewotICAgIC5mcmFtZS1jb250YWluZXIgPiBpZnJhbWUgewotICAgICAgICB3aWR0aDog
MTIwMHB4OwotICAgICAgICBoZWlnaHQ6IDgwMHB4OwotICAgIH0KLX0KLQotQG1lZGlhIHNjcmVl
biBhbmQgKG1pbi13aWR0aDogMTgwMHB4KSB7Ci0gICAgLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFt
ZSB7Ci0gICAgICAgIHdpZHRoOiAxNjAwcHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7Ci0gICAg
fQotfQotCi0vKiBSZXN1bHRzIHNlY3Rpb24gKi8KLSNyZXN1bHRzIHsKLSAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ci19Ci0KLSNyZXN1bHRzLnNlbGVjdGVkIHsKLSAgICBmbGV4OiAxIDAgYXV0bzsK
LX0KLQotLnNjb3JlIHsKLSAgICBmb250LXNpemU6IDVlbTsKLSAgICBmb250LXdlaWdodDogYm9s
ZDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLSNyZXN1bHRzLXRhYmxlcyB7Ci0gICAgZGlyZWN0aW9u
OiBydGw7Ci0KLSAgICBkaXNwbGF5OiBmbGV4OwotCi0gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsK
LSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKLQotICAgIG1hcmdpbjogM2VtIDA7Ci19Ci0K
LSNyZXN1bHRzIHRhYmxlIHsKLSAgICBkaXJlY3Rpb246IGx0cjsKLSAgICBib3JkZXItc3BhY2lu
ZzogMDsKLX0KLQotI3Jlc3VsdHMgdGggewotICAgIHBhZGRpbmc6IC41ZW0gMDsKLX0KLQotI3Jl
c3VsdHMgdHIgdGQgewotICAgIHBhZGRpbmc6IC4yNWVtIDA7Ci19Ci0KLSNyZXN1bHRzLWhlYWRl
ciB0ZCwgI3Jlc3VsdHMtaGVhZGVyIHRoIHsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotfQotI3Jl
c3VsdHMtaGVhZGVyIHRyIHRkIHsKLSAgICBwYWRkaW5nLXJpZ2h0OiAxZW07Ci19Ci0jcmVzdWx0
cy1zY29yZSB0ZCwgI3Jlc3VsdHMtc2NvcmUgdGggewotICAgIHRleHQtYWxpZ246IHJpZ2h0Owot
fQotI3Jlc3VsdHMgZm9vdGVyIHsKLSAgICBwYWRkaW5nLWJvdHRvbTogMTB2aDsKLX0KLQotQG1l
ZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKLSAgICBzY3JlZW4gYW5k
IChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkg
ewotICAgICNyZXN1bHRzLnNlbGVjdGVkIHsKLSAgICAgICAgcGFkZGluZzogMCAyMHB4OwotICAg
ICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgICAg
ICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0gICAgICAgIGZsZXgtZmxvdzogY29sdW1u
OwotICAgIH0KLQotICAgIC5zY29yZSB7Ci0gICAgICAgIGZvbnQtc2l6ZTogM2VtOwotICAgIH0K
LX0KLQotI292ZXJsYXkgewotICAgIHBvc2l0aW9uOiBmaXhlZDsKLSAgICB3aWR0aDogMTAwJTsK
LSAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgY29sb3I6
IHJnYigyNTUsIDI1NSwgMjU1KTsKLSAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDEwLCAuOCk7
Ci19Ci0KLUBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkpIHsK
LSAgICAjb3ZlcmxheSB7Ci0gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMTAsIC40KTsK
LSAgICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7Ci0gICAgfQotfQot
Ci0jb3ZlcmxheSA+IGRpdiB7Ci0gICAgd2lkdGg6IDUwMHB4OwotICAgIGhlaWdodDogNTAwcHg7
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIG1hcmdpbi10b3A6IC0yNTBweDsKLSAgICBt
YXJnaW4tbGVmdDogLTI1MHB4OwotICAgIHRvcDogNTAlOwotICAgIGxlZnQ6IDUwJTsKLSAgICBk
aXNwbGF5OiBmbGV4OwotICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICBmbGV4
LWZsb3c6IGNvbHVtbjsKLX0KLQotI292ZXJsYXkgPiBkaXYgZGl2IHsKLSAgICBmbGV4OiAxIDEg
YXV0bzsKLSAgICBvdmVyZmxvdzogc2Nyb2xsOwotICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigy
NDEsIDI0MSwgMjQxKTsKLSAgICBwYWRkaW5nOiAycHg7Ci0gICAgYm94LXNpemluZzogYm9yZGVy
LWJveDsKLX0KLQotI292ZXJsYXkgYnV0dG9uIHsKLSAgICBtYXJnaW46IDFlbSA1ZW07Ci0gICAg
Ym9yZGVyLWNvbG9yOiByZ2IoMjQxLCAyNDEsIDI0MSk7Ci0gICAgY29sb3I6IHJnYigyNDEsIDI0
MSwgMjQxKTsKLX0KLQotI292ZXJsYXkgYnV0dG9uOmhvdmVyIHsKLSAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xKTsKLX0KLQotI292ZXJsYXkgYnV0dG9uOmFjdGl2
ZSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMik7Ci19Ci0K
LS8qIERlYnVnIHNwZWNpZmljICovCi1ib2R5IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
OTYsIDk2LCA5Nik7Ci0gICAgY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKLX0KLQotaDEgewot
ICAgIG1hcmdpbjogNXZoIDA7Ci19Ci0KLWJ1dHRvbiB7Ci0gICAgYm9yZGVyOiAycHggc29saWQg
cmdiKDIzNSwgMjM1LCAyMzUpOwotICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7Ci19Ci0K
LWJ1dHRvbjpkaXNhYmxlZCB7Ci0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzNSwgMjM1LCAyMzUs
IC41KTsKLSAgICBjb2xvcjogcmdiYSgyMzUsIDIzNSwgMjM1LCAuNSk7Ci19Ci0KLWJ1dHRvbjpo
b3ZlciB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMSk7Ci0g
ICAgY3Vyc29yOiBwb2ludGVyOwotfQotCi1idXR0b246YWN0aXZlIHsKLSAgICBjb2xvcjogaW5o
ZXJpdDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTsKLX0K
LQotQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTgwMHB4KSB7Ci0gICAgc2VjdGlvbiB7
Ci0gICAgICAgIHdpZHRoOiAxNjAwcHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7Ci0gICAgfQot
fQotCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8q
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC00NjAsMjAgKzE2Miw1NCBAQCBsYWJlbC50cmVlLWxh
YmVsIHsKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNpbnRybyB7Ci0gICAgZmxleC1kaXJl
Y3Rpb246IGNvbHVtbjsKLSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0gICAgYWxp
Z24tY29udGVudDogY2VudGVyOworICAgIHBhZGRpbmc6IDA7CisgICAgb3BhY2l0eTogaW5pdGlh
bDsKKyAgICB0cmFuc2l0aW9uOiBub25lOworfQorCisjaW50cm8gLmJvZHkgPiBwIHsKKyAgICBw
YWRkaW5nOiAxZW0gMDsKKyAgICBtYXJnaW46IDAgYXV0bzsKKyAgICB0ZXh0LWFsaWduOiBjZW50
ZXI7Cit9CisKKyNpbnRybyAuc3RhcnQtYmVuY2htYXJrIHsKKyAgICBwYWRkaW5nOiAxMHZoIDA7
CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisjaW50cm8gLnN0YXJ0LWJlbmNobWFyayBw
IHsKKyAgICBjb2xvcjogaHNsKDExLCA3MiUsIDUwJSk7CisgICAgbWFyZ2luLWJvdHRvbTogMWVt
OworICAgIC1hcHBsZS10cmFpbGluZy13b3JkOiAtYXBwbGUtcGFydGlhbGx5LWJhbGFuY2VkOwor
fQorCisjaW50cm8gLnN0YXJ0LWJlbmNobWFyayBidXR0b24geworICAgIG1hcmdpbjogMCBhdXRv
OworfQorCisKK0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCisg
ICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9u
OiBsYW5kc2NhcGUpIHsKKyAgICAjaW50cm8uc2VsZWN0ZWQgeworICAgICAgICBkaXNwbGF5OiBm
bGV4OworICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOworICAgICAgICBqdXN0aWZ5LWNvbnRl
bnQ6IGZsZXgtc3RhcnQ7CisgICAgICAgIGZsZXgtZmxvdzogY29sdW1uOworICAgIH0KIAotICAg
IG1pbi1oZWlnaHQ6IDYwMHB4OwotICAgIGhlaWdodDogYXV0bzsKKyAgICAjaW50cm8gcCB7Cisg
ICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKKyAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsK
KyAgICAgICAgZm9udC1zaXplOiAxLjVlbTsKKyAgICB9CiB9CiAKICNpbnRybyBoMiB7Ci0gICAg
bWFyZ2luLXRvcDogMDsKICAgICBmb250LXNpemU6IDEuMmVtOwogfQogCi0jaW50cm8gPiBkaXY6
Zmlyc3Qtb2YtdHlwZSB7CisjaW50cm8gLmJvZHkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7CiAgICAg
d2lkdGg6IDEwMCU7CiAgICAgbWFyZ2luOiAyZW0gMCAwOwogICAgIGZsZXgtZGlyZWN0aW9uOiBy
b3c7CkBAIC01NTgsMjggKzI5NCwxOCBAQCBsYWJlbC50cmVlLWxhYmVsIHsKICAgICBmb250LXNp
emU6IDFlbTsKIH0KIAotI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayB7CisjaW50cm8gLnN0YXJ0
LWJlbmNobWFyayB7CiAgICAgcGFkZGluZzogMCAwIDEwdmg7CiAgICAgbWFyZ2luLXRvcDogMDsK
IH0KIAotI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayBwIHsKKyNpbnRybyAuc3RhcnQtYmVuY2ht
YXJrIHAgewogICAgIGNvbG9yOiBoc2woMTEsIDEwMCUsIDY2JSk7CiB9CiAKLUBtZWRpYSBzY3Jl
ZW4gYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAxODAwcHgpIHsKLSAgICAjaW50cm8gewotICAgICAg
ICBtaW4taGVpZ2h0OiA4MDBweDsKLSAgICB9Ci19Ci0KIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgt
ZGV2aWNlLXdpZHRoOiA0MTRweCksCiAgICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6
IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAjaW50cm8gewotICAg
ICAgICBtaW4taGVpZ2h0OiAxMDAlOwotICAgIH0KLQotICAgICNpbnRybyA+IGRpdjpmaXJzdC1v
Zi10eXBlIHsKKyAgICAjaW50cm8gLmJvZHkgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7CiAgICAgICAg
IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgfQogCkBAIC01OTUsMTAgKzMyMSw2IEBAIGxh
YmVsLnRyZWUtbGFiZWwgewogLyogICAgICAgICAgICAgICAgICAgICAgICAgICBSdW5uaW5nIFNl
Y3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCiAKLSN0ZXN0LWNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwot
fQotCiAjcnVubmluZy10ZXN0IHsKICAgICBkaXNwbGF5OiBmbGV4OwogICAgIGFsaWduLWl0ZW1z
OiBjZW50ZXI7CkBAIC02MzIsNiArMzU0LDEwIEBAIGxhYmVsLnRyZWUtbGFiZWwgewogLyogICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHRzIFNlY3Rpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKKyNyZXN1bHRzIHsK
KyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKICNyZXN1bHRzIGgxLCAjdGVzdC1ncmFwaCBo
MSB7CiAgICAgZm9udC1zaXplOiAyZW07CiB9CkBAIC02NTAsMTUgKzM3NiwxMTcgQEAgbGFiZWwu
dHJlZS1sYWJlbCB7CiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKLS5zY29yZSB7CisjcmVzdWx0
cyAuc2NvcmUsCisjdGVzdC1ncmFwaCAuc2NvcmUgewogICAgIGZvbnQtc2l6ZTogM2VtOworICAg
IGZvbnQtd2VpZ2h0OiBib2xkOworICAgIG1hcmdpbjogMDsKIH0KIAotLm1lYW4geworI3Jlc3Vs
dHMgLmNvbmZpZGVuY2UsCisjdGVzdC1ncmFwaCAuY29uZmlkZW5jZSB7CiAgICAgbWFyZ2luLXRv
cDogMDsKICAgICBtYXJnaW4tYm90dG9tOiAxZW07CiAgICAgZm9udC1zaXplOiAxLjVlbTsKICAg
ICBmb250LXdlaWdodDogNDAwOworICAgIHRleHQtaW5kZW50OiBpbmhlcml0OworICAgIGNvbG9y
OiBpbmhlcml0OworfQorCisjcmVzdWx0cy10YWJsZXMgeworICAgIGRpcmVjdGlvbjogcnRsOwor
CisgICAgZGlzcGxheTogZmxleDsKKworICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAganVz
dGlmeS1jb250ZW50OiBjZW50ZXI7CisKKyAgICBtYXJnaW46IDNlbSAwOworfQorCisjcmVzdWx0
cyAudGFibGUtY29udGFpbmVyID4gZGl2IHsKKyAgICBtYXJnaW4tbGVmdDogMDsKK30KKworI3Jl
c3VsdHMgI3Jlc3VsdHMtc2NvcmUgeworICAgIGZsb2F0OiBpbml0aWFsOworfQorCisjcmVzdWx0
cyAjcmVzdWx0cy1oZWFkZXIgeworICAgIHdpZHRoOiBpbml0aWFsOworICAgIHBvc2l0aW9uOiBp
bml0aWFsOworfQorCisjcmVzdWx0cyB0YWJsZSB7CisgICAgZGlyZWN0aW9uOiBsdHI7CisgICAg
bWluLXdpZHRoOiBpbml0aWFsOworfQorCisjcmVzdWx0cyB0YWJsZSB0ZC5zdWl0ZXMtc2VwYXJh
dG9yIHsKKyAgICBwYWRkaW5nOiAuNWVtIDA7Cit9CisKKyNyZXN1bHRzIHRhYmxlIHRyOm50aC1j
aGlsZChldmVuKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKKyNy
ZXN1bHRzIHRoIHsKKyAgICBwYWRkaW5nOiAuNWVtIDA7Cit9CisKKyNyZXN1bHRzIHRyIHRkIHsK
KyAgICBwYWRkaW5nOiAuMjVlbSAwOworfQorCisjcmVzdWx0cy1oZWFkZXIgdGQsICNyZXN1bHRz
LWhlYWRlciB0aCB7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKK30KKyNyZXN1bHRzLWhlYWRlciB0
ciB0ZCB7CisgICAgcGFkZGluZy1yaWdodDogMWVtOworfQorI3Jlc3VsdHMtc2NvcmUgdGQsICNy
ZXN1bHRzLXNjb3JlIHRoIHsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKyNyZXN1bHRzIC5i
b2R5ID4gYnV0dG9uIHsKKyAgICBtYXJnaW46IDEuNWVtIGF1dG8gLjVlbTsKK30KKyNyZXN1bHRz
IGZvb3RlciB7CisgICAgcGFkZGluZy1ib3R0b206IDEwdmg7Cit9CisKK0BtZWRpYSBzY3JlZW4g
YW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCisgICAgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKKyAgICAjcmVz
dWx0cy5zZWxlY3RlZCB7CisgICAgICAgIHBhZGRpbmc6IDAgMjBweDsKKyAgICB9Cit9CisKKyNv
dmVybGF5IHsKKyAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDEwLCAuOCk7Cit9CisKK0BzdXBw
b3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkpIHsKKyAgICAjb3Zlcmxh
eSB7CisgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMTAsIC40KTsKKyAgICB9Cit9CisK
KyNvdmVybGF5ID4gZGl2IGRpdiB7CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDI0MSwgMjQx
LCAyNDEpOworfQorCisjb3ZlcmxheSBidXR0b24geworICAgIG1hcmdpbjogMmVtIGF1dG87Cisg
ICAgYm9yZGVyLWNvbG9yOiByZ2IoMjQxLCAyNDEsIDI0MSk7CisgICAgY29sb3I6IHJnYigyNDEs
IDI0MSwgMjQxKTsKK30KKworI292ZXJsYXkgYnV0dG9uOmhvdmVyIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xKTsKK30KKworI292ZXJsYXkgYnV0dG9uOmFj
dGl2ZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMik7CiB9
CiAKICNyZXN1bHRzLWRhdGEgLmF2ZXJhZ2UgewpAQCAtNzExLDIyICs1MzksMjAgQEAgbGFiZWwu
dHJlZS1sYWJlbCB7CiAKICN0ZXN0LWdyYXBoIGhlYWRlciB7CiAgICAgcG9zaXRpb246IHJlbGF0
aXZlOwotICAgIHdpZHRoOiAxMDAlOworICAgIHRleHQtYWxpZ246Y2VudGVyOwogfQogCiAjdGVz
dC1ncmFwaCBoZWFkZXIgYnV0dG9uIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9w
OiAxLjVlbTsKKyAgICB0b3A6IDA7CiAgICAgbGVmdDogMDsKICAgICBib3JkZXItd2lkdGg6IDFw
eDsKICAgICBmb250LXNpemU6IDFlbTsKICAgICBwYWRkaW5nOiAuNWVtIDFlbTsKIH0KIAotI3Rl
c3QtZ3JhcGgtZGF0YSB7Ci0gICAgZmxleDogMSAxIGF1dG87Ci0gICAgYWxpZ24tc2VsZjogc3Ry
ZXRjaDsKLSAgICB6LWluZGV4OiAxOworI3Rlc3QtZ3JhcGggLnNjb3JlLCAjdGVzdC1ncmFwaCAu
Y29uZmlkZW5jZSB7CisgICAgbWFyZ2luOiAwOwogfQogCiAjdGVzdC1ncmFwaCBuYXYgewpAQCAt
NzYwLDYgKzU4Niw3IEBAIGxhYmVsLnRyZWUtbGFiZWwgewogLyogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Ki8KIAogI3Rlc3QtZ3JhcGgtZGF0YSB7CisgICAgei1pbmRleDogMTsKICAgICBmb250OiAxMHB4
IHNhbnMtc2VyaWY7CiAgICAgY29sb3I6IHJnYigyMzUsIDIzNSwgMjM1KTsKIH0KQEAgLTg5OCw3
ICs3MjUsNyBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIH0KIAogI2NvbXBsZXhpdHktZ3JhcGggLnJh
dy5zZXJpZXMgbGluZSB7Ci0gICAgc3Ryb2tlOiBoc2woMzAsIDk2JSwgNTYlKTsKKyAgICBzdHJv
a2U6IGhzbGEoMzAsIDk2JSwgNTYlLCAuMyk7CiAgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CiB9CiAK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWct
cnVubmVyL2FuaW1vbWV0ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCmluZGV4IDU1ZDFhOTkuLjVmMDQ3M2IgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL2FuaW1vbWV0ZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcwpAQCAtNzQsNyArNzQsNyBAQCBEZXZlbG9w
ZXJSZXN1bHRzVGFibGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUmVzdWx0c1RhYmxlLAog
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBoZWFkZXIuY2xhc3NOYW1lOwogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBpZiAoaGVhZGVyLnRpdGxlID09IFN0cmluZ3MudGV4dC50
ZXN0TmFtZSkgeworICAgICAgICAgICAgaWYgKGhlYWRlci50ZXh0ID09IFN0cmluZ3MudGV4dC50
ZXN0TmFtZSkgewogICAgICAgICAgICAgICAgIGlmIChpc05vaXN5KQogICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWUgKz0gIiBub2lzeS1yZXN1bHRzIjsKICAgICAgICAgICAgICAgICB2YXIg
dGQgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidGQiLCB7IGNsYXNzOiBjbGFzc05hbWUgfSwg
cm93KTsKQEAgLTkyLDkgKzkyLDggQEAgRGV2ZWxvcGVyUmVzdWx0c1RhYmxlID0gVXRpbGl0aWVz
LmNyZWF0ZVN1YmNsYXNzKFJlc3VsdHNUYWJsZSwKICAgICAgICAgICAgICAgICBpZiAodHlwZW9m
IGRhdGEgPT0gIm51bWJlciIpCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnRvRml4
ZWQoMik7CiAgICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQgPSBkYXRhOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB0ZC50ZXh0Q29udGVudCA9IGhlYWRlci50ZXh0
KHRlc3RSZXN1bHQsIHRlc3ROYW1lKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gaGVhZGVyLnRleHQodGVzdFJlc3Vs
dCk7CiAgICAgICAgIH0sIHRoaXMpOwogICAgIH0KIH0pOwpAQCAtMjEzLDcgKzIxMiwxMCBAQCB3
aW5kb3cub3B0aW9uc01hbmFnZXIgPQogCiAgICAgdXBkYXRlRGlzcGxheTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSAiZGlzcGxheS0iICsgb3B0
aW9uc01hbmFnZXIudmFsdWVGb3JPcHRpb24oImRpc3BsYXkiKTsKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5jbGFzc0xpc3QucmVtb3ZlKCJkaXNwbGF5LW1pbmltYWwiKTsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJkaXNwbGF5LXByb2dyZXNzLWJhciIpOworCisgICAg
ICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgiZGlzcGxheS0iICsgb3B0aW9uc01hbmFn
ZXIudmFsdWVGb3JPcHRpb24oImRpc3BsYXkiKSk7CiAgICAgfQogfTsKIApAQCAtNTA1LDYgKzUw
Nyw3IEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIs
IHsKICAgICAgICAgaWYgKGJlbmNobWFya0NvbnRyb2xsZXIuc3RhcnRCZW5jaG1hcmtJbW1lZGlh
dGVseUlmRW5jb2RlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGJlbmNobWFy
a0NvbnRyb2xsZXIuZGV0ZXJtaW5lQ2FudmFzU2l6ZSgpOwogICAgICAgICBiZW5jaG1hcmtDb250
cm9sbGVyLmFkZE9yaWVudGF0aW9uTGlzdGVuZXJJZk5lY2Vzc2FyeSgpOwogICAgICAgICBzdWl0
ZXNNYW5hZ2VyLmNyZWF0ZUVsZW1lbnRzKCk7CiAgICAgICAgIHN1aXRlc01hbmFnZXIudXBkYXRl
VUlGcm9tTG9jYWxTdG9yYWdlKCk7CkBAIC02MDYsNyArNjA5LDE1IEBAIFV0aWxpdGllcy5leHRl
bmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsKICAgICAgICAgICAgIEhlYWRl
cnMuZGV0YWlsc1s0XS5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBzZWN0
aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3JlKCJyZXN1bHRzIiwgZGFzaGJvYXJkLnNjb3JlLnRv
Rml4ZWQoMikpOworICAgICAgICBpZiAoZGFzaGJvYXJkLm9wdGlvbnNbU3RyaW5ncy5qc29uLmNv
bmZpZ3VyYXRpb25dKSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1v
dmUoInNtYWxsIiwgIm1lZGl1bSIsICJsYXJnZSIpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5jbGFzc0xpc3QuYWRkKGRhc2hib2FyZC5vcHRpb25zW1N0cmluZ3MuanNvbi5jb25maWd1cmF0
aW9uXSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgc2NvcmUgPSBkYXNoYm9hcmQuc2NvcmU7
CisgICAgICAgIHZhciBjb25maWRlbmNlID0gKChkYXNoYm9hcmQuc2NvcmVMb3dlckJvdW5kIC8g
c2NvcmUgLSAxKSAqIDEwMCkudG9GaXhlZCgyKSArCisgICAgICAgICAgICAiJSAvICsiICsgKChk
YXNoYm9hcmQuc2NvcmVVcHBlckJvdW5kIC8gc2NvcmUgLSAxKSAqIDEwMCkudG9GaXhlZCgyKSAr
ICIlIjsKKyAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29yZSgicmVzdWx0cyIs
IHNjb3JlLnRvRml4ZWQoMiksIGNvbmZpZGVuY2UpOwogICAgICAgICBzZWN0aW9uc01hbmFnZXIu
cG9wdWxhdGVUYWJsZSgicmVzdWx0cy1oZWFkZXIiLCBIZWFkZXJzLnRlc3ROYW1lLCBkYXNoYm9h
cmQpOwogICAgICAgICBzZWN0aW9uc01hbmFnZXIucG9wdWxhdGVUYWJsZSgicmVzdWx0cy1zY29y
ZSIsIEhlYWRlcnMuc2NvcmUsIGRhc2hib2FyZCk7CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5w
b3B1bGF0ZVRhYmxlKCJyZXN1bHRzLWRhdGEiLCBIZWFkZXJzLmRldGFpbHMsIGRhc2hib2FyZCk7
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9ncmFwaC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2dyYXBoLmpzCmluZGV4IDc2YTBhOTguLjQ4MDM5MzYgMTAwNjQ0Ci0tLSBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBo
LmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL2dyYXBoLmpzCkBAIC0xLDI4ICsxLDMwIEBACiBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHdp
bmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLCB7Ci0gICAgbGF5b3V0Q291bnRlcjogMCwKLQogICAg
IHVwZGF0ZUdyYXBoRGF0YTogZnVuY3Rpb24odGVzdFJlc3VsdCwgdGVzdERhdGEsIG9wdGlvbnMp
CiAgICAgewogICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0LWdyYXBoLWRhdGEiKTsKICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAiIjsKICAgICAg
ICAgZWxlbWVudC5fdGVzdFJlc3VsdCA9IHRlc3RSZXN1bHQ7Ci0gICAgICAgIGVsZW1lbnQuX3Rl
c3REYXRhID0gdGVzdERhdGE7CiAgICAgICAgIGVsZW1lbnQuX29wdGlvbnMgPSBvcHRpb25zOwot
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJociIpLnN0eWxlLndpZHRoID0gdGhpcy5s
YXlvdXRDb3VudGVyKysgKyAicHgiOwogCiAgICAgICAgIHZhciBtYXJnaW5zID0gbmV3IEluc2V0
cygzMCwgMzAsIDMwLCA0MCk7Ci0gICAgICAgIHZhciBzaXplID0gUG9pbnQuZWxlbWVudENsaWVu
dFNpemUoZWxlbWVudCkuc3VidHJhY3QobWFyZ2lucy5zaXplKTsKLQotICAgICAgICB0aGlzLmNy
ZWF0ZVRpbWVHcmFwaCh0ZXN0UmVzdWx0LCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uc2FtcGxlc11b
U3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24ubWFya3NdLCB0
ZXN0RGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0sIG9wdGlvbnMsIG1hcmdpbnMsIHNpemUp
OworICAgICAgICB2YXIgc2l6ZSA9IFBvaW50LmVsZW1lbnRDbGllbnRTaXplKGVsZW1lbnQpOwor
ICAgICAgICBzaXplLnkgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50Lm9mZnNldFRvcDsK
KyAgICAgICAgc2l6ZSA9IHNpemUuc3VidHJhY3QobWFyZ2lucy5zaXplKTsKKworICAgICAgICAv
LyBDb252ZXJ0IGZyb20gY29tcGFjdCBKU09OIG91dHB1dCB0byBwcm9wZXJ0aWVkIGRhdGEKKyAg
ICAgICAgdmFyIHNhbXBsZXNXaXRoUHJvcGVydGllcyA9IHt9OworICAgICAgICBbU3RyaW5ncy5q
c29uLmNvbnRyb2xsZXIsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCBTdHJpbmdzLmpzb24uY29t
cGxleGl0eUF2ZXJhZ2VdLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzTmFtZSkgeworICAgICAgICAg
ICAgdmFyIHNlcmllcyA9IHRlc3REYXRhW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtzZXJpZXNOYW1l
XTsKKyAgICAgICAgICAgIHNhbXBsZXNXaXRoUHJvcGVydGllc1tzZXJpZXNOYW1lXSA9IHNlcmll
cy50b0FycmF5KCk7CisgICAgICAgIH0pCisKKyAgICAgICAgdGhpcy5jcmVhdGVUaW1lR3JhcGgo
dGVzdFJlc3VsdCwgc2FtcGxlc1dpdGhQcm9wZXJ0aWVzW1N0cmluZ3MuanNvbi5jb250cm9sbGVy
XSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLm1hcmtzXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLmNv
bnRyb2xsZXJdLCBvcHRpb25zLCBtYXJnaW5zLCBzaXplKTsKICAgICAgICAgdGhpcy5vblRpbWVH
cmFwaE9wdGlvbnNDaGFuZ2VkKCk7CiAKLSAgICAgICAgdmFyIGhhc0NvbXBsZXhpdHlTYW1wbGVz
ID0gISF0ZXN0RGF0YVtTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhp
dHldOwotICAgICAgICB0aGlzLl9zaG93T3JIaWRlTm9kZXMoaGFzQ29tcGxleGl0eVNhbXBsZXMs
ICJmb3JtW25hbWU9Z3JhcGgtdHlwZV0iKTsKLSAgICAgICAgaWYgKGhhc0NvbXBsZXhpdHlTYW1w
bGVzKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5mb3Jtc1siZ3JhcGgtdHlwZSJdLmVsZW1lbnRz
WyJ0eXBlIl0gPSAiY29tcGxleGl0eSI7Ci0gICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbXBsZXhp
dHlHcmFwaCh0ZXN0UmVzdWx0LCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0sIHRl
c3REYXRhW1N0cmluZ3MuanNvbi5zYW1wbGVzXSwgb3B0aW9ucywgbWFyZ2lucywgc2l6ZSk7Ci0g
ICAgICAgICAgICB0aGlzLm9uQ29tcGxleGl0eUdyYXBoT3B0aW9uc0NoYW5nZWQoKTsKLSAgICAg
ICAgfQorICAgICAgICB0aGlzLl9zaG93T3JIaWRlTm9kZXModHJ1ZSwgImZvcm1bbmFtZT1ncmFw
aC10eXBlXSIpOworICAgICAgICBkb2N1bWVudC5mb3Jtc1siZ3JhcGgtdHlwZSJdLmVsZW1lbnRz
WyJ0eXBlIl0gPSAiY29tcGxleGl0eSI7CisgICAgICAgIHRoaXMuY3JlYXRlQ29tcGxleGl0eUdy
YXBoKHRlc3RSZXN1bHQsIHRlc3REYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgc2FtcGxl
c1dpdGhQcm9wZXJ0aWVzLCBvcHRpb25zLCBtYXJnaW5zLCBzaXplKTsKKyAgICAgICAgdGhpcy5v
bkNvbXBsZXhpdHlHcmFwaE9wdGlvbnNDaGFuZ2VkKCk7CiAKICAgICAgICAgdGhpcy5vbkdyYXBo
VHlwZUNoYW5nZWQoKTsKICAgICB9LApAQCAtNTY5LDcgKzU3MSw3IEBAIFV0aWxpdGllcy5leHRl
bmRPYmplY3Qod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIsIHsKICAgICAgICAgYmVuY2htYXJr
Q29udHJvbGxlci5fc2hvd09ySGlkZU5vZGVzKCFpc1RpbWVTZWxlY3RlZCwgIiNjb21wbGV4aXR5
LWdyYXBoIik7CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuX3Nob3dPckhpZGVOb2Rlcygh
aXNUaW1lU2VsZWN0ZWQsICJmb3JtW25hbWU9Y29tcGxleGl0eS1ncmFwaC1vcHRpb25zXSIpOwog
Ci0gICAgICAgIHZhciBzY29yZSwgbWVhbjsKKyAgICAgICAgdmFyIHNjb3JlID0gIiIsIG1lYW4g
PSAiIjsKICAgICAgICAgaWYgKGlzVGltZVNlbGVjdGVkKSB7CiAgICAgICAgICAgICBzY29yZSA9
IHRlc3RSZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXS50b0ZpeGVkKDIpOwogCkBAIC01OTYsMTMg
KzU5OCwxNiBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHdpbmRvdy5iZW5jaG1hcmtDb250cm9s
bGVyLCB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcGxleGl0eS1y
ZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIikudGV4dENvbnRlbnQgPSBjb21wbGV4aXR5QXZl
cmFnZVJlZ3Jlc3Npb24uY29tcGxleGl0eS50b0ZpeGVkKDIpICsgIiwgwrEiICsgY29tcGxleGl0
eUF2ZXJhZ2VSZWdyZXNzaW9uLnN0ZGV2LnRvRml4ZWQoMikgKyAibXMiOwogCiAgICAgICAgICAg
ICB2YXIgYm9vdHN0cmFwID0gY29tcGxleGl0eVJlZ3Jlc3Npb25bU3RyaW5ncy5qc29uLmJvb3Rz
dHJhcF07Ci0gICAgICAgICAgICBzY29yZSA9IGJvb3RzdHJhcC5tZWRpYW4udG9GaXhlZCgyKTsK
LSAgICAgICAgICAgIG1lYW4gPSBbCi0gICAgICAgICAgICAgICAgIjk1JSBDSTogIiwKLSAgICAg
ICAgICAgICAgICBib290c3RyYXAuY29uZmlkZW5jZUxvdy50b0ZpeGVkKDIpLAotICAgICAgICAg
ICAgICAgICLigJMiLAotICAgICAgICAgICAgICAgIGJvb3RzdHJhcC5jb25maWRlbmNlSGlnaC50
b0ZpeGVkKDIpCi0gICAgICAgICAgICBdLmpvaW4oIiIpOworICAgICAgICAgICAgaWYgKGJvb3Rz
dHJhcCkgeworICAgICAgICAgICAgICAgIHNjb3JlID0gYm9vdHN0cmFwLm1lZGlhbi50b0ZpeGVk
KDIpOworICAgICAgICAgICAgICAgIG1lYW4gPSBbCisgICAgICAgICAgICAgICAgICAgIChib290
c3RyYXAuY29uZmlkZW5jZVBlcmNlbnRhZ2UgKiAxMDApLnRvRml4ZWQoMCksCisgICAgICAgICAg
ICAgICAgICAgICIlIENJOiAiLAorICAgICAgICAgICAgICAgICAgICBib290c3RyYXAuY29uZmlk
ZW5jZUxvdy50b0ZpeGVkKDIpLAorICAgICAgICAgICAgICAgICAgICAi4oCTIiwKKyAgICAgICAg
ICAgICAgICAgICAgYm9vdHN0cmFwLmNvbmZpZGVuY2VIaWdoLnRvRml4ZWQoMikKKyAgICAgICAg
ICAgICAgICBdLmpvaW4oIiIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
c2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29yZSgidGVzdC1ncmFwaCIsIHNjb3JlLCBtZWFu
KTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVi
dWctcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMKaW5kZXggZTMyMzNmNS4uMTFiYjI0MiAxMDA2NDQKLS0t
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVz
dHMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1y
dW5uZXIvdGVzdHMuanMKQEAgLTIsNyArMiw3IEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3QoU3Ry
aW5ncy50ZXh0LCB7CiAgICAgc2FtcGxlczogIlNhbXBsZXMiLAogICAgIGNvbXBsZXhpdHk6ICJU
aW1lIENvbXBsZXhpdHkiLAogICAgIGZyYW1lUmF0ZTogIkZQUyIsCi0gICAgY29uZmlkZW5jZUlu
dGVydmFsOiAiOTUlIENvbmZpZGVuY2UgSW50ZXJ2YWwiLAorICAgIGNvbmZpZGVuY2VJbnRlcnZh
bDogIjgwJSBDb25maWRlbmNlIEludGVydmFsIiwKICAgICBtZXJnZWRSYXdDb21wbGV4aXR5OiAi
UmF3IENvbXBsZXhpdHkiLAogICAgIGdyYXBoOiAiR3JhcGgiCiB9KTsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwppbmRleCBkODFk
ZDc5Li42OWZlMzc0IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL2V4dGVuc2lvbnMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9leHRlbnNpb25zLmpzCkBAIC0xNTUsNiArMTU1LDEzIEBAIFV0aWxpdGllcyA9CiAg
ICAgbGVycDogZnVuY3Rpb24odmFsdWUsIG1pbiwgbWF4KQogICAgIHsKICAgICAgICAgcmV0dXJu
IG1pbiArIChtYXggLSBtaW4pICogdmFsdWU7CisgICAgfSwKKworICAgIHRvRml4ZWROdW1iZXI6
IGZ1bmN0aW9uKG51bWJlciwgcHJlY2lzaW9uKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlci50
b0ZpeGVkKQorICAgICAgICAgICAgcmV0dXJuIE51bWJlcihudW1iZXIudG9GaXhlZChwcmVjaXNp
b24pKTsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKICAgICB9CiB9OwogCkBAIC01ODEsMyArNTg4
LDgzIEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3QoSGVhcCwgewogICAgICAgICByZXR1cm4gbmV3
IEhlYXAobWF4U2l6ZSwgZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSAtIGI7IH0pOwogICAgIH0K
IH0pOworCit2YXIgU2FtcGxlRGF0YSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5j
dGlvbihmaWVsZE1hcCwgZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuZmllbGRNYXAgPSBmaWVs
ZE1hcCB8fCB7fTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YSB8fCBbXTsKKyAgICB9LCB7CisK
KyAgICBnZXQgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3Ro
OworICAgIH0sCisKKyAgICBhZGRGaWVsZDogZnVuY3Rpb24obmFtZSwgaW5kZXgpCisgICAgewor
ICAgICAgICB0aGlzLmZpZWxkTWFwW25hbWVdID0gaW5kZXg7CisgICAgfSwKKworICAgIHB1c2g6
IGZ1bmN0aW9uKGRhdHVtKQorICAgIHsKKyAgICAgICAgdGhpcy5kYXRhLnB1c2goZGF0dW0pOwor
ICAgIH0sCisKKyAgICBzb3J0OiBmdW5jdGlvbihzb3J0RnVuY3Rpb24pCisgICAgeworICAgICAg
ICB0aGlzLmRhdGEuc29ydChzb3J0RnVuY3Rpb24pOworICAgIH0sCisKKyAgICBzbGljZTogZnVu
Y3Rpb24oYmVnaW4sIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgU2FtcGxlRGF0YSh0
aGlzLmZpZWxkTWFwLCB0aGlzLmRhdGEuc2xpY2UoYmVnaW4sIGVuZCkpOworICAgIH0sCisKKyAg
ICBmb3JFYWNoOiBmdW5jdGlvbihpdGVyYXRpb25GdW5jdGlvbikKKyAgICB7CisgICAgICAgIHRo
aXMuZGF0YS5mb3JFYWNoKGl0ZXJhdGlvbkZ1bmN0aW9uKTsKKyAgICB9LAorCisgICAgY3JlYXRl
RGF0dW06IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBbXTsKKyAgICB9LAorCisg
ICAgZ2V0RmllbGRJbkRhdHVtOiBmdW5jdGlvbihkYXR1bSwgZmllbGROYW1lKQorICAgIHsKKyAg
ICAgICAgaWYgKHR5cGVvZiBkYXR1bSA9PT0gJ251bWJlcicpCisgICAgICAgICAgICBkYXR1bSA9
IHRoaXMuZGF0YVtkYXR1bV07CisgICAgICAgIHJldHVybiBkYXR1bVt0aGlzLmZpZWxkTWFwW2Zp
ZWxkTmFtZV1dOworICAgIH0sCisKKyAgICBzZXRGaWVsZEluRGF0dW06IGZ1bmN0aW9uKGRhdHVt
LCBmaWVsZE5hbWUsIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGVvZiBkYXR1bSA9PT0g
J251bWJlcicpCisgICAgICAgICAgICBkYXR1bSA9IHRoaXMuZGF0YVtkYXR1bV07CisgICAgICAg
IHJldHVybiBkYXR1bVt0aGlzLmZpZWxkTWFwW2ZpZWxkTmFtZV1dID0gdmFsdWU7CisgICAgfSwK
KworICAgIGF0OiBmdW5jdGlvbihpbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmRh
dGFbaW5kZXhdOworICAgIH0sCisKKyAgICB0b0FycmF5OiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB2YXIgYXJyYXkgPSBbXTsKKworICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaChmdW5jdGlv
bihkYXR1bSkgeworICAgICAgICAgICAgdmFyIG5ld0RhdHVtID0ge307CisgICAgICAgICAgICBh
cnJheS5wdXNoKG5ld0RhdHVtKTsKKworICAgICAgICAgICAgZm9yICh2YXIgZmllbGROYW1lIGlu
IHRoaXMuZmllbGRNYXApIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldEZp
ZWxkSW5EYXR1bShkYXR1bSwgZmllbGROYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUg
IT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAgICAgbmV3
RGF0dW1bZmllbGROYW1lXSA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9LCB0aGlz
KTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIu
Y3NzCmluZGV4IGM2NWJiOTcuLjA1YjQ1ZjggMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzCkBAIC0y
OTIsMjAgKzI5MiwxNCBAQCBib2R5LmltYWdlcy1sb2FkZWQgI2ludHJvIHsKIAogLyogUnVubmlu
ZyB0ZXN0IHNlY3Rpb24gKi8KIAotI3Rlc3QtY29udGFpbmVyIHsKKy5mcmFtZS1jb250YWluZXIg
ewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKIAotICAgIHdpZHRoOiAxMjAwcHg7Ci0gICAgaGVp
Z2h0OiA2MDBweDsKLQogICAgIHRvcDogNTAlOwogICAgIGxlZnQ6IDUwJTsKLQotICAgIG1hcmdp
bi1sZWZ0OiAtNjAwcHg7Ci0gICAgbWFyZ2luLXRvcDogLTMwMHB4OwogfQogCi0jdGVzdC1jb250
YWluZXIgPiBpZnJhbWUgeworLmZyYW1lLWNvbnRhaW5lciA+IGlmcmFtZSB7CiAgICAgd2lkdGg6
IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDAlOwogCkBAIC0zMTMsNzAgKzMwNyw3MiBAQCBib2R5Lmlt
YWdlcy1sb2FkZWQgI2ludHJvIHsKICAgICBtYXJnaW46IDA7CiB9CiAKLUBtZWRpYSBzY3JlZW4g
YW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVp
Z2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI3Rlc3QtY29u
dGFpbmVyIHsKLSAgICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgICAgIGhlaWdodDogMTAwJTsKLQot
ICAgICAgICB0b3A6IDA7Ci0gICAgICAgIGxlZnQ6IDA7Ci0KLSAgICAgICAgbWFyZ2luLXRvcDog
MDsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgfQorYm9keS5zbWFsbCAuZnJhbWUtY29u
dGFpbmVyIHsKKyAgICB3aWR0aDogNTY4cHg7CisgICAgaGVpZ2h0OiAzMjBweDsKKyAgICBtYXJn
aW4tbGVmdDogLTI4NHB4OworICAgIG1hcmdpbi10b3A6IC0xNjBweDsKIH0KIAotQG1lZGlhIHNj
cmVlbiBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiA3NjhweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdo
dDogMTAyNHB4KSB7Ci0gICAgI3Rlc3QtY29udGFpbmVyIHsKLSAgICAgICAgd2lkdGg6IDkwMHB4
OwotICAgICAgICBoZWlnaHQ6IDYwMHB4OworYm9keS5tZWRpdW0gLmZyYW1lLWNvbnRhaW5lciB7
CisgICAgd2lkdGg6IDkwMHB4OworICAgIGhlaWdodDogNjAwcHg7CisgICAgbWFyZ2luLWxlZnQ6
IC00NTBweDsKKyAgICBtYXJnaW4tdG9wOiAtMzAwcHg7Cit9CiAKLSAgICAgICAgbWFyZ2luLWxl
ZnQ6IC00NTBweDsKLSAgICAgICAgbWFyZ2luLXRvcDogLTMwMHB4OwotICAgIH0KK2JvZHkubGFy
Z2UgLmZyYW1lLWNvbnRhaW5lciB7CisgICAgd2lkdGg6IDE2MDBweDsKKyAgICBoZWlnaHQ6IDgw
MHB4OworICAgIG1hcmdpbi1sZWZ0OiAtODAwcHg7CisgICAgbWFyZ2luLXRvcDogLTQwMHB4Owog
fQogCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG1p
bi1kZXZpY2UtaGVpZ2h0OiAxMzY2cHgpIHsKLSAgICAjdGVzdC1jb250YWluZXIgewotICAgICAg
ICB3aWR0aDogMTIwMHB4OwotICAgICAgICBoZWlnaHQ6IDYwMHB4OworLyogUmVzdWx0cyBzZWN0
aW9uICovCiAKLSAgICAgICAgbWFyZ2luLWxlZnQ6IC02MDBweDsKLSAgICAgICAgbWFyZ2luLXRv
cDogLTMwMHB4OwotICAgIH0KKyNyZXN1bHRzIHsKKyAgICBwYWRkaW5nOiAyZW07CiB9CiAKLUBt
ZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE4MDBweCkgewotICAgICN0ZXN0LWNvbnRhaW5l
ciB7Ci0gICAgICAgIHdpZHRoOiAxNjAwcHg7Ci0gICAgICAgIGhlaWdodDogODAwcHg7CisjcmVz
dWx0cyAuYm9keSB7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKK30KIAotICAgICAg
ICBtYXJnaW4tbGVmdDogLTgwMHB4OwotICAgICAgICBtYXJnaW4tdG9wOiAtNDAwcHg7Ci0gICAg
fQorI3Jlc3VsdHMgLnNjb3JlLWNvbnRhaW5lciB7CisgICAgcGFkZGluZy1ib3R0b206IDJlbTsK
IH0KIAotLyogUmVzdWx0cyBzZWN0aW9uICovCisjcmVzdWx0cyAudGFibGUtY29udGFpbmVyIHsK
KyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CiAKLSNyZXN1bHRzIHsKLSAgICBwYWRkaW5nOiAy
ZW07CisjcmVzdWx0cyAudGFibGUtY29udGFpbmVyID4gZGl2IHsKKyAgICBtYXJnaW4tbGVmdDog
NDAlOwogfQogCiAjcmVzdWx0cyAuc2NvcmUgewogICAgIGZvbnQtc2l6ZTogNWVtOwogICAgIGZv
bnQtd2VpZ2h0OiBib2xkOwogICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBsaW5lLWhlaWdo
dDogMTsKKyAgICBtYXJnaW46IDA7Cit9CiAKLSAgICBwYWRkaW5nLWxlZnQ6IDAuMjVlbTsKLQor
I3Jlc3VsdHMgLmNvbmZpZGVuY2UgeworICAgIGZvbnQtc2l6ZTogMmVtOworICAgIGZvbnQtc3R5
bGU6IGl0YWxpYzsKKyAgICBsaW5lLWhlaWdodDogMTsKICAgICBtYXJnaW46IDA7CisgICAgdGV4
dC1pbmRlbnQ6IDEuNzVlbTsKKyAgICBjb2xvcjogaHNsKDAsIDAlLCA0MCUpOworICAgIHBhZGRp
bmctYm90dG9tOiAuM2VtOwogfQogCiAjcmVzdWx0cyB0YWJsZSB7CiAgICAgYm9yZGVyLXNwYWNp
bmc6IDA7CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDA7Ci0gICAgbWluLXdpZHRoOiA0
MCU7CisgICAgbWluLXdpZHRoOiAyNSU7CiB9CiAKICNyZXN1bHRzIHRhYmxlIHRkLApAQCAtMzky
LDkgKzM4OCwyMCBAQCBib2R5LmltYWdlcy1sb2FkZWQgI2ludHJvIHsKICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgMC4wNSk7CiB9CiAKLSNyZXN1bHRzICNyZXN1bHRzLWhl
YWRlciwKKyNyZXN1bHRzICNyZXN1bHRzLWhlYWRlciB7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7CisgICAgd2lkdGg6IDQwJTsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cit9CisKICNyZXN1
bHRzICNyZXN1bHRzLXNjb3JlIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CisgICAgZmxv
YXQ6IGxlZnQ7Cit9CisKKyNyZXN1bHRzICNyZXN1bHRzLWRhdGEgc3BhbiB7CisgICAgZm9udC1z
aXplOiAuNzVlbTsKKyAgICBjb2xvcjogaHNsKDAsIDAlLCA0MCUpOwogfQogCiAjcmVzdWx0cyAj
cmVzdWx0cy1oZWFkZXIgdGQsCkBAIC00MTEsMTcgKzQxOCwyNiBAQCBib2R5LmltYWdlcy1sb2Fk
ZWQgI2ludHJvIHsKIH0KIAogI3Jlc3VsdHMgI3Jlc3VsdHMtc2NvcmUgdGQgewotICAgIC13ZWJr
aXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgY3Vyc29yOiB0ZXh0OwogfQogCiBAbWVkaWEgc2Ny
ZWVuIGFuZCAobWluLXdpZHRoOiA2NjdweCkgewotICAgICNyZXN1bHRzIC5ib2R5IC5zY29yZSB7
CisgICAgI3Jlc3VsdHMgLnNjb3JlLAorICAgICNyZXN1bHRzIC5jb25maWRlbmNlIHsKICAgICAg
ICAgZm9udC1zdHlsZTogbm9ybWFsOwotICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMWVtOwogICAg
IH0KIH0KIAorLmRldGFpbCBzcGFuIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCitib2R5LnNt
YWxsIC5kZXRhaWwgLnNtYWxsLAorYm9keS5tZWRpdW0gLmRldGFpbCAubWVkaXVtLAorYm9keS5s
YXJnZSAuZGV0YWlsIC5sYXJnZSB7CisgICAgZGlzcGxheTogaW5pdGlhbDsKK30KKwogI292ZXJs
YXkgewogICAgIHBvc2l0aW9uOiBmaXhlZDsKIApAQCAtNDU2LDYgKzQ3Miw3IEBAIGJvZHkuaW1h
Z2VzLWxvYWRlZCAjaW50cm8gewogI292ZXJsYXkgPiBkaXYgZGl2IHsKICAgICBvdmVyZmxvdzog
c2Nyb2xsOwogCisgICAgZm9udC1zaXplOiAxMnB4OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6
IHRleHQ7CiAgICAgY3Vyc29yOiB0ZXh0OwogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcwppbmRleCA1NGY2
NDhlLi4xYzQ3MGM3IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMKQEAgLTIzLDYgKzIzLDggQEAgUmVz
dWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgdmFyIGl0ZXJh
dGlvbnNTY29yZXMgPSBbXTsKICAgICAgICAgdGhpcy5faXRlcmF0aW9uc1NhbXBsZXJzLmZvckVh
Y2goZnVuY3Rpb24oaXRlcmF0aW9uLCBpbmRleCkgewogICAgICAgICAgICAgdmFyIHRlc3RzU2Nv
cmVzID0gW107CisgICAgICAgICAgICB2YXIgdGVzdHNMb3dlckJvdW5kU2NvcmVzID0gW107Cisg
ICAgICAgICAgICB2YXIgdGVzdHNVcHBlckJvdW5kU2NvcmVzID0gW107CiAKICAgICAgICAgICAg
IHZhciByZXN1bHQgPSB7fTsKICAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29u
LnJlc3VsdHMuaXRlcmF0aW9uc11baW5kZXhdID0gcmVzdWx0OwpAQCAtNDQsMTQgKzQ2LDIwIEBA
IFJlc3VsdHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICAg
ICAgICAgIGRlbGV0ZSBzdWl0ZURhdGFbdGVzdE5hbWVdW1N0cmluZ3MuanNvbi5yZXN1bHRdOwog
CiAgICAgICAgICAgICAgICAgICAgIHRlc3RzU2NvcmVzLnB1c2goc3VpdGVSZXN1bHRbdGVzdE5h
bWVdW1N0cmluZ3MuanNvbi5zY29yZV0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0c0xvd2Vy
Qm91bmRTY29yZXMucHVzaChzdWl0ZVJlc3VsdFt0ZXN0TmFtZV1bU3RyaW5ncy5qc29uLnNjb3Jl
TG93ZXJCb3VuZF0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0c1VwcGVyQm91bmRTY29yZXMu
cHVzaChzdWl0ZVJlc3VsdFt0ZXN0TmFtZV1bU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZF0p
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdWx0
W1N0cmluZ3MuanNvbi5zY29yZV0gPSBTdGF0aXN0aWNzLmdlb21ldHJpY01lYW4odGVzdHNTY29y
ZXMpOworICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmRdID0g
U3RhdGlzdGljcy5nZW9tZXRyaWNNZWFuKHRlc3RzTG93ZXJCb3VuZFNjb3Jlcyk7CisgICAgICAg
ICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZF0gPSBTdGF0aXN0aWNzLmdl
b21ldHJpY01lYW4odGVzdHNVcHBlckJvdW5kU2NvcmVzKTsKICAgICAgICAgICAgIGl0ZXJhdGlv
bnNTY29yZXMucHVzaChyZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSk7CiAgICAgICAgIH0sIHRo
aXMpOwogCiAgICAgICAgIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlXSA9IFN0YXRp
c3RpY3Muc2FtcGxlTWVhbihpdGVyYXRpb25zU2NvcmVzLmxlbmd0aCwgaXRlcmF0aW9uc1Njb3Jl
cy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSArIGI7IH0pKTsKKyAgICAgICAgdGhp
cy5fcmVzdWx0c1tTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJvdW5kXSA9IHRoaXMuX3Jlc3VsdHNb
U3RyaW5ncy5qc29uLnJlc3VsdHMuaXRlcmF0aW9uc11bMF1bU3RyaW5ncy5qc29uLnNjb3JlTG93
ZXJCb3VuZF07CisgICAgICAgIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJC
b3VuZF0gPSB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5yZXN1bHRzLml0ZXJhdGlvbnNdWzBd
W1N0cmluZ3MuanNvbi5zY29yZVVwcGVyQm91bmRdOwogICAgIH0sCiAKICAgICBjYWxjdWxhdGVT
Y29yZTogZnVuY3Rpb24oZGF0YSkKQEAgLTY0LDM4ICs3Miw3MSBAQCBSZXN1bHRzRGFzaGJvYXJk
ID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICBpZiAodGhpcy5fb3B0aW9uc1siY29u
dHJvbGxlciJdID09ICJyYW1wMzAiKQogICAgICAgICAgICAgZGVzaXJlZEZyYW1lTGVuZ3RoID0g
MTAwMC8zMDsKIAotICAgICAgICBmdW5jdGlvbiBmaW5kUmVncmVzc2lvbihzZXJpZXMpIHsKKyAg
ICAgICAgZnVuY3Rpb24gZmluZFJlZ3Jlc3Npb24oc2VyaWVzLCBwcm9maWxlKSB7CiAgICAgICAg
ICAgICB2YXIgbWluSW5kZXggPSBNYXRoLnJvdW5kKC4wMjUgKiBzZXJpZXMubGVuZ3RoKTsKICAg
ICAgICAgICAgIHZhciBtYXhJbmRleCA9IE1hdGgucm91bmQoLjk3NSAqIChzZXJpZXMubGVuZ3Ro
IC0gMSkpOwotICAgICAgICAgICAgdmFyIG1pbkNvbXBsZXhpdHkgPSBzZXJpZXNbbWluSW5kZXhd
LmNvbXBsZXhpdHk7Ci0gICAgICAgICAgICB2YXIgbWF4Q29tcGxleGl0eSA9IHNlcmllc1ttYXhJ
bmRleF0uY29tcGxleGl0eTsKKyAgICAgICAgICAgIHZhciBtaW5Db21wbGV4aXR5ID0gc2VyaWVz
LmdldEZpZWxkSW5EYXR1bShtaW5JbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOworICAg
ICAgICAgICAgdmFyIG1heENvbXBsZXhpdHkgPSBzZXJpZXMuZ2V0RmllbGRJbkRhdHVtKG1heElu
ZGV4LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7CisKICAgICAgICAgICAgIGlmIChNYXRoLmFi
cyhtYXhDb21wbGV4aXR5IC0gbWluQ29tcGxleGl0eSkgPCAyMCAmJiBtYXhJbmRleCAtIG1pbklu
ZGV4IDwgMjApIHsKICAgICAgICAgICAgICAgICBtaW5JbmRleCA9IDA7CiAgICAgICAgICAgICAg
ICAgbWF4SW5kZXggPSBzZXJpZXMubGVuZ3RoIC0gMTsKLSAgICAgICAgICAgICAgICBtaW5Db21w
bGV4aXR5ID0gc2VyaWVzW21pbkluZGV4XS5jb21wbGV4aXR5OwotICAgICAgICAgICAgICAgIG1h
eENvbXBsZXhpdHkgPSBzZXJpZXNbbWF4SW5kZXhdLmNvbXBsZXhpdHk7CisgICAgICAgICAgICAg
ICAgbWluQ29tcGxleGl0eSA9IHNlcmllcy5nZXRGaWVsZEluRGF0dW0obWluSW5kZXgsIFN0cmlu
Z3MuanNvbi5jb21wbGV4aXR5KTsKKyAgICAgICAgICAgICAgICBtYXhDb21wbGV4aXR5ID0gc2Vy
aWVzLmdldEZpZWxkSW5EYXR1bShtYXhJbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOwog
ICAgICAgICAgICAgfQogCisgICAgICAgICAgICB2YXIgY29tcGxleGl0eUluZGV4ID0gc2VyaWVz
LmZpZWxkTWFwW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5XTsKKyAgICAgICAgICAgIHZhciBmcmFt
ZUxlbmd0aEluZGV4ID0gc2VyaWVzLmZpZWxkTWFwW1N0cmluZ3MuanNvbi5mcmFtZUxlbmd0aF07
CisgICAgICAgICAgICB2YXIgcmVncmVzc2lvbk9wdGlvbnMgPSB7IGRlc2lyZWRGcmFtZUxlbmd0
aDogZGVzaXJlZEZyYW1lTGVuZ3RoIH07CisgICAgICAgICAgICBpZiAocHJvZmlsZSkKKyAgICAg
ICAgICAgICAgICByZWdyZXNzaW9uT3B0aW9ucy5wcmVmZXJyZWRQcm9maWxlID0gcHJvZmlsZTsK
ICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgbWluQ29tcGxleGl0eTogbWlu
Q29tcGxleGl0eSwKICAgICAgICAgICAgICAgICBtYXhDb21wbGV4aXR5OiBtYXhDb21wbGV4aXR5
LAogICAgICAgICAgICAgICAgIHNhbXBsZXM6IHNlcmllcy5zbGljZShtaW5JbmRleCwgbWF4SW5k
ZXggKyAxKSwKICAgICAgICAgICAgICAgICByZWdyZXNzaW9uOiBuZXcgUmVncmVzc2lvbigKLSAg
ICAgICAgICAgICAgICAgICAgc2VyaWVzLAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAo
ZGF0dW0sIGkpIHsgcmV0dXJuIGRhdHVtW2ldLmNvbXBsZXhpdHk7IH0sCi0gICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIChkYXR1bSwgaSkgeyByZXR1cm4gZGF0dW1baV0uZnJhbWVMZW5ndGg7
IH0sCi0gICAgICAgICAgICAgICAgICAgIG1pbkluZGV4LCBtYXhJbmRleCwgZGVzaXJlZEZyYW1l
TGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICBzZXJpZXMuZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gKGRhdGEsIGkpIHsgcmV0dXJuIGRhdGFbaV1bY29tcGxleGl0eUluZGV4
XTsgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGRhdGEsIGkpIHsgcmV0dXJuIGRh
dGFbaV1bZnJhbWVMZW5ndGhJbmRleF07IH0sCisgICAgICAgICAgICAgICAgICAgIG1pbkluZGV4
LCBtYXhJbmRleCwgcmVncmVzc2lvbk9wdGlvbnMpCiAgICAgICAgICAgICB9OwogICAgICAgICB9
CiAKICAgICAgICAgdmFyIGNvbXBsZXhpdHlTYW1wbGVzOworICAgICAgICAvLyBDb252ZXJ0IHRo
ZXNlIHNhbXBsZXMgaW50byBTYW1wbGVEYXRhIG9iamVjdHMgaWYgbmVlZGVkCisgICAgICAgIFtT
dHJpbmdzLmpzb24uY29tcGxleGl0eSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlLCBT
dHJpbmdzLmpzb24uY29udHJvbGxlcl0uZm9yRWFjaChmdW5jdGlvbihzZXJpZXNOYW1lKSB7Cisg
ICAgICAgICAgICB2YXIgc2VyaWVzID0gc2FtcGxlc1tzZXJpZXNOYW1lXTsKKyAgICAgICAgICAg
IGlmIChzZXJpZXMgJiYgIShzZXJpZXMgaW5zdGFuY2VvZiBTYW1wbGVEYXRhKSkKKyAgICAgICAg
ICAgICAgICBzYW1wbGVzW3Nlcmllc05hbWVdID0gbmV3IFNhbXBsZURhdGEoc2VyaWVzLmZpZWxk
TWFwLCBzZXJpZXMuZGF0YSk7CisgICAgICAgIH0pOworCisgICAgICAgIHZhciBpc1JhbXBDb250
cm9sbGVyID0gWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhpcy5fb3B0aW9uc1siY29udHJv
bGxlciJdKSAhPSAtMTsKKyAgICAgICAgdmFyIHByZWRvbWluYW50UHJvZmlsZSA9ICIiOworICAg
ICAgICBpZiAoaXNSYW1wQ29udHJvbGxlcikgeworICAgICAgICAgICAgdmFyIHByb2ZpbGVzID0g
e307CisgICAgICAgICAgICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1
bmN0aW9uKHJlZ3Jlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocmVncmVzc2lvbltTdHJp
bmdzLmpzb24ucmVncmVzc2lvbnMucHJvZmlsZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHByb2ZpbGUgPSByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNzaW9ucy5wcm9maWxlXTsK
KyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZXNbcHJvZmlsZV0gPSAocHJvZmlsZXNbcHJvZmls
ZV0gfHwgMCkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB2YXIgbWF4UHJvZmlsZUNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHBy
b2ZpbGUgaW4gcHJvZmlsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvZmlsZXNbcHJvZmls
ZV0gPiBtYXhQcm9maWxlQ291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZG9taW5hbnRQ
cm9maWxlID0gcHJvZmlsZTsKKyAgICAgICAgICAgICAgICAgICAgbWF4UHJvZmlsZUNvdW50ID0g
cHJvZmlsZXNbcHJvZmlsZV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisKICAgICAgICAgW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5LCBTdHJpbmdzLmpzb24u
Y29tcGxleGl0eUF2ZXJhZ2VdLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzTmFtZSkgewogICAgICAg
ICAgICAgaWYgKCEoc2VyaWVzTmFtZSBpbiBzYW1wbGVzKSkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uID0ge307CiAgICAgICAgICAgICByZXN1
bHRbc2VyaWVzTmFtZV0gPSByZWdyZXNzaW9uOwotICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25S
ZXN1bHQgPSBmaW5kUmVncmVzc2lvbihzYW1wbGVzW3Nlcmllc05hbWVdKTsKKyAgICAgICAgICAg
IHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24oc2FtcGxlc1tzZXJpZXNOYW1l
XSwgcHJlZG9taW5hbnRQcm9maWxlKTsKICAgICAgICAgICAgIGlmIChzZXJpZXNOYW1lID09IFN0
cmluZ3MuanNvbi5jb21wbGV4aXR5KQogICAgICAgICAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVz
ID0gcmVncmVzc2lvblJlc3VsdC5zYW1wbGVzOwogICAgICAgICAgICAgdmFyIGNhbGN1bGF0aW9u
ID0gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9uOwpAQCAtMTExLDcgKzE1Miw3IEBAIFJlc3Vs
dHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICByZWdyZXNz
aW9uW1N0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXZdID0gTWF0aC5zcXJ0KGNhbGN1bGF0
aW9uLmVycm9yIC8gc2FtcGxlc1tzZXJpZXNOYW1lXS5sZW5ndGgpOwogICAgICAgICB9KTsKIAot
ICAgICAgICBpZiAoWyJyYW1wIiwgInJhbXAzMCJdLmluZGV4T2YodGhpcy5fb3B0aW9uc1siY29u
dHJvbGxlciJdKSAhPSAtMSkgeworICAgICAgICBpZiAoaXNSYW1wQ29udHJvbGxlcikgewogICAg
ICAgICAgICAgdmFyIHRpbWVDb21wbGV4aXR5ID0gbmV3IEV4cGVyaW1lbnQ7CiAgICAgICAgICAg
ICBkYXRhW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5mb3JFYWNoKGZ1bmN0aW9uKHJlZ3Jlc3Np
b24pIHsKICAgICAgICAgICAgICAgICB0aW1lQ29tcGxleGl0eS5zYW1wbGUocmVncmVzc2lvbltT
dHJpbmdzLmpzb24uY29tcGxleGl0eV0pOwpAQCAtMTI0LDE2ICsxNjUsMjIgQEAgUmVzdWx0c0Rh
c2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAgIGV4cGVyaW1lbnRS
ZXN1bHRbU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5zdGRldl0gPSB0aW1lQ29tcGxleGl0eS5z
dGFuZGFyZERldmlhdGlvbigpOwogICAgICAgICAgICAgZXhwZXJpbWVudFJlc3VsdFtTdHJpbmdz
Lmpzb24ubWVhc3VyZW1lbnRzLnBlcmNlbnRdID0gdGltZUNvbXBsZXhpdHkucGVyY2VudGFnZSgp
OwogCi0gICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldW1N0cmluZ3Mu
anNvbi5ib290c3RyYXBdID0gUmVncmVzc2lvbi5ib290c3RyYXAoY29tcGxleGl0eVNhbXBsZXMs
IDI1MDAsIGZ1bmN0aW9uKHJlc2FtcGxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc2FtcGxl
LnNvcnQoZnVuY3Rpb24oYSwgYikgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEu
Y29tcGxleGl0eSAtIGIuY29tcGxleGl0eTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25SZXN1bHQgPSBmaW5kUmVncmVzc2lvbihy
ZXNhbXBsZSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdyZXNzaW9uUmVzdWx0LnJl
Z3Jlc3Npb24uY29tcGxleGl0eTsKLSAgICAgICAgICAgICAgICB9LCAuOTUpOwotICAgICAgICAg
ICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0gPSByZXN1bHRbU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdLm1lZGlhbjsKLQorICAgICAgICAgICAgY29u
c3QgYm9vdHN0cmFwSXRlcmF0aW9ucyA9IDI1MDA7CisgICAgICAgICAgICB2YXIgYm9vdHN0cmFw
UmVzdWx0ID0gUmVncmVzc2lvbi5ib290c3RyYXAoY29tcGxleGl0eVNhbXBsZXMuZGF0YSwgYm9v
dHN0cmFwSXRlcmF0aW9ucywgZnVuY3Rpb24ocmVzYW1wbGVEYXRhKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGNvbXBsZXhpdHlJbmRleCA9IGNvbXBsZXhpdHlTYW1wbGVzLmZpZWxkTWFwW1N0cmlu
Z3MuanNvbi5jb21wbGV4aXR5XTsKKyAgICAgICAgICAgICAgICByZXNhbXBsZURhdGEuc29ydChm
dW5jdGlvbihhLCBiKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhW2NvbXBsZXhpdHlJ
bmRleF0gLSBiW2NvbXBsZXhpdHlJbmRleF07CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICB2YXIgcmVzYW1wbGUgPSBuZXcgU2FtcGxlRGF0YShjb21wbGV4aXR5U2FtcGxl
cy5maWVsZE1hcCwgcmVzYW1wbGVEYXRhKTsKKyAgICAgICAgICAgICAgICB2YXIgcmVncmVzc2lv
blJlc3VsdCA9IGZpbmRSZWdyZXNzaW9uKHJlc2FtcGxlLCBwcmVkb21pbmFudFByb2ZpbGUpOwor
ICAgICAgICAgICAgICAgIHJldHVybiByZWdyZXNzaW9uUmVzdWx0LnJlZ3Jlc3Npb24uY29tcGxl
eGl0eTsKKyAgICAgICAgICAgIH0sIC44KTsKKworICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3Mu
anNvbi5jb21wbGV4aXR5XVtTdHJpbmdzLmpzb24uYm9vdHN0cmFwXSA9IGJvb3RzdHJhcFJlc3Vs
dDsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdID0gYm9vdHN0cmFwUmVz
dWx0Lm1lZGlhbjsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJv
dW5kXSA9IGJvb3RzdHJhcFJlc3VsdC5jb25maWRlbmNlTG93OworICAgICAgICAgICAgcmVzdWx0
W1N0cmluZ3MuanNvbi5zY29yZVVwcGVyQm91bmRdID0gYm9vdHN0cmFwUmVzdWx0LmNvbmZpZGVu
Y2VIaWdoOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIG1hcmtzID0gZGF0YVtT
dHJpbmdzLmpzb24ubWFya3NdOwogICAgICAgICAgICAgdmFyIHNhbXBsaW5nU3RhcnRJbmRleCA9
IDAsIHNhbXBsaW5nRW5kSW5kZXggPSAtMTsKQEAgLTE0NCwxMSArMTkxLDEzIEBAIFJlc3VsdHNE
YXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAKICAgICAgICAgICAgIHZhciBhdmVy
YWdlQ29tcGxleGl0eSA9IG5ldyBFeHBlcmltZW50OwogICAgICAgICAgICAgdmFyIGF2ZXJhZ2VG
cmFtZUxlbmd0aCA9IG5ldyBFeHBlcmltZW50OwotICAgICAgICAgICAgc2FtcGxlc1tTdHJpbmdz
Lmpzb24uY29udHJvbGxlcl0uZm9yRWFjaChmdW5jdGlvbiAoc2FtcGxlLCBpKSB7CisgICAgICAg
ICAgICB2YXIgY29udHJvbGxlclNhbXBsZXMgPSBzYW1wbGVzW1N0cmluZ3MuanNvbi5jb250cm9s
bGVyXTsKKyAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24gKHNh
bXBsZSwgaSkgewogICAgICAgICAgICAgICAgIGlmIChpID49IHNhbXBsaW5nU3RhcnRJbmRleCAm
JiAoc2FtcGxpbmdFbmRJbmRleCA9PSAtMSB8fCBpIDwgc2FtcGxpbmdFbmRJbmRleCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXZlcmFnZUNvbXBsZXhpdHkuc2FtcGxlKHNhbXBsZS5jb21wbGV4
aXR5KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNhbXBsZS5zbW9vdGhlZEZyYW1lTGVuZ3Ro
ICYmIHNhbXBsZS5zbW9vdGhlZEZyYW1lTGVuZ3RoICE9IC0xKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYXZlcmFnZUZyYW1lTGVuZ3RoLnNhbXBsZShzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0
aCk7CisgICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VDb21wbGV4aXR5LnNhbXBsZShjb250cm9s
bGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uY29tcGxleGl0
eSkpOworICAgICAgICAgICAgICAgICAgICB2YXIgc21vb3RoZWRGcmFtZUxlbmd0aCA9IGNvbnRy
b2xsZXJTYW1wbGVzLmdldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5zbW9vdGhl
ZEZyYW1lTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNtb290aGVkRnJhbWVMZW5n
dGggJiYgc21vb3RoZWRGcmFtZUxlbmd0aCAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGF2ZXJhZ2VGcmFtZUxlbmd0aC5zYW1wbGUoc21vb3RoZWRGcmFtZUxlbmd0aCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSk7CiAKQEAgLTE2Nyw2ICsyMTYsOCBAQCBSZXN1bHRz
RGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgZXhwZXJpbWVu
dFJlc3VsdFtTdHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnBlcmNlbnRdID0gYXZlcmFnZUZyYW1l
TGVuZ3RoLnBlcmNlbnRhZ2UoKTsKIAogICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5z
Y29yZV0gPSBhdmVyYWdlQ29tcGxleGl0eS5zY29yZShFeHBlcmltZW50LmRlZmF1bHRzLkNPTkNF
Uk4pOworICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmRdID0g
cmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0gLSBhdmVyYWdlRnJhbWVMZW5ndGguc3RhbmRhcmRE
ZXZpYXRpb24oKTsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJv
dW5kXSA9IHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdICsgYXZlcmFnZUZyYW1lTGVuZ3RoLnN0
YW5kYXJkRGV2aWF0aW9uKCk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0xODgsMTIgKzIzOSwy
NyBAQCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICBy
ZXR1cm4gdGhpcy5fb3B0aW9uczsKICAgICB9LAogCi0gICAgZ2V0IHNjb3JlKCkKKyAgICBfZ2V0
UmVzdWx0c1Byb3BlcnR5OiBmdW5jdGlvbihwcm9wZXJ0eSkKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLl9yZXN1bHRzKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5q
c29uLnNjb3JlXTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzW3Byb3BlcnR5XTsK
ICAgICAgICAgdGhpcy5fcHJvY2Vzc0RhdGEoKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3Vs
dHNbU3RyaW5ncy5qc29uLnNjb3JlXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHNbcHJv
cGVydHldOworICAgIH0sCisKKyAgICBnZXQgc2NvcmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX2dldFJlc3VsdHNQcm9wZXJ0eShTdHJpbmdzLmpzb24uc2NvcmUpOworICAgIH0sCisK
KyAgICBnZXQgc2NvcmVMb3dlckJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9n
ZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZCk7CisgICAgfSwK
KworICAgIGdldCBzY29yZVVwcGVyQm91bmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2dldFJlc3VsdHNQcm9wZXJ0eShTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJvdW5kKTsKICAgICB9
CiB9KTsKIApAQCAtMjM3LDM0ICszMDMsNDAgQEAgUmVzdWx0c1RhYmxlID0gVXRpbGl0aWVzLmNy
ZWF0ZUNsYXNzKAogCiAgICAgICAgICAgICB2YXIgdGggPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVu
dCgidGgiLCB7fSwgcm93KTsKICAgICAgICAgICAgIGlmIChoZWFkZXIudGl0bGUgIT0gU3RyaW5n
cy50ZXh0LmdyYXBoKQotICAgICAgICAgICAgICAgIHRoLnRleHRDb250ZW50ID0gaGVhZGVyLnRp
dGxlOworICAgICAgICAgICAgICAgIHRoLmlubmVySFRNTCA9IGhlYWRlci50aXRsZTsKICAgICAg
ICAgICAgIGlmIChoZWFkZXIuY2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgdGguY29sU3BhbiA9
IGhlYWRlci5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgIH0pOwogICAgIH0sCiAKKyAgICBfYWRk
Qm9keTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy50Ym9keSA9IFV0aWxpdGllcy5j
cmVhdGVFbGVtZW50KCJ0Ym9keSIsIHt9LCB0aGlzLmVsZW1lbnQpOworICAgIH0sCisKICAgICBf
YWRkRW1wdHlSb3c6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciByb3cgPSBVdGlsaXRp
ZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAgICAgICAgdmFyIHJv
dyA9IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGlzLnRib2R5KTsKICAgICAg
ICAgdGhpcy5fZmxhdHRlbmVkSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uIChoZWFkZXIpIHsKICAg
ICAgICAgICAgIHJldHVybiBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidGQiLCB7IGNsYXNzOiAi
c3VpdGVzLXNlcGFyYXRvciIgfSwgcm93KTsKICAgICAgICAgfSk7CiAgICAgfSwKIAotICAgIF9h
ZGRUZXN0OiBmdW5jdGlvbih0ZXN0TmFtZSwgdGVzdFJlc3VsdHMsIG9wdGlvbnMpCisgICAgX2Fk
ZFRlc3Q6IGZ1bmN0aW9uKHRlc3ROYW1lLCB0ZXN0UmVzdWx0LCBvcHRpb25zKQogICAgIHsKLSAg
ICAgICAgdmFyIHJvdyA9IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50KCJ0ciIsIHt9LCB0aGlzLmVs
ZW1lbnQpOworICAgICAgICB2YXIgcm93ID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRyIiwg
e30sIHRoaXMudGJvZHkpOwogCiAgICAgICAgIHRoaXMuX2ZsYXR0ZW5lZEhlYWRlcnMuZm9yRWFj
aChmdW5jdGlvbiAoaGVhZGVyKSB7CiAgICAgICAgICAgICB2YXIgdGQgPSBVdGlsaXRpZXMuY3Jl
YXRlRWxlbWVudCgidGQiLCB7fSwgcm93KTsKLSAgICAgICAgICAgIGlmIChoZWFkZXIudGl0bGUg
PT0gU3RyaW5ncy50ZXh0LnRlc3ROYW1lKSB7CisgICAgICAgICAgICBpZiAoaGVhZGVyLnRleHQg
PT0gU3RyaW5ncy50ZXh0LnRlc3ROYW1lKSB7CiAgICAgICAgICAgICAgICAgdGQudGV4dENvbnRl
bnQgPSB0ZXN0TmFtZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyLnRleHQpIHsKLSAg
ICAgICAgICAgICAgICB2YXIgZGF0YSA9IHRlc3RSZXN1bHRzW2hlYWRlci50ZXh0XTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGhlYWRlci50ZXh0ID09ICJzdHJpbmciKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGRhdGEgPSB0ZXN0UmVzdWx0W2hlYWRlci50ZXh0XTsKICAgICAgICAg
ICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT0gIm51bWJlciIpCiAgICAgICAgICAgICAgICAgICAg
IGRhdGEgPSBkYXRhLnRvRml4ZWQoMik7Ci0gICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQg
PSBkYXRhOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IGRh
dGE7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSBo
ZWFkZXIudGV4dCh0ZXN0UmVzdWx0KTsKICAgICAgICAgfSwgdGhpcyk7CiAgICAgfSwKIApAQCAt
Mjg0LDYgKzM1Niw3IEBAIFJlc3VsdHNUYWJsZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAg
ICB7CiAgICAgICAgIHRoaXMuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fYWRkSGVhZGVyKCk7Cisg
ICAgICAgIHRoaXMuX2FkZEJvZHkoKTsKIAogICAgICAgICB2YXIgaXRlcmF0aW9uc1Jlc3VsdHMg
PSBkYXNoYm9hcmQucmVzdWx0czsKICAgICAgICAgaXRlcmF0aW9uc1Jlc3VsdHMuZm9yRWFjaChm
dW5jdGlvbihpdGVyYXRpb25SZXN1bHQsIGluZGV4KSB7CkBAIC0zMjcsMTAgKzQwMCwxMCBAQCB3
aW5kb3cuc2VjdGlvbnNNYW5hZ2VyID0KIHsKICAgICBzaG93U2VjdGlvbjogZnVuY3Rpb24oc2Vj
dGlvbklkZW50aWZpZXIsIHB1c2hTdGF0ZSkKICAgICB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHku
Y2xhc3NMaXN0LnJlbW92ZSgic2hvd2luZy1pbnRybyIpOwotICAgICAgICBkb2N1bWVudC5ib2R5
LmNsYXNzTGlzdC5yZW1vdmUoInNob3dpbmctcmVzdWx0cyIpOwotICAgICAgICBkb2N1bWVudC5i
b2R5LmNsYXNzTGlzdC5yZW1vdmUoInNob3dpbmctdGVzdC1jb250YWluZXIiKTsKLQorICAgICAg
ICB2YXIgc2VjdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJtYWluID4gc2VjdGlv
biIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInNob3dpbmctIiAr
IHNlY3Rpb25zW2ldLmlkKTsKKyAgICAgICAgfQogICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNz
TGlzdC5hZGQoInNob3dpbmctIiArIHNlY3Rpb25JZGVudGlmaWVyKTsKIAogICAgICAgICB2YXIg
Y3VycmVudFNlY3Rpb25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2VjdGlvbi5z
ZWxlY3RlZCIpOwpAQCAtMzQ2LDExICs0MTksMTEgQEAgd2luZG93LnNlY3Rpb25zTWFuYWdlciA9
CiAgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7c2VjdGlvbjogc2VjdGlvbklkZW50aWZp
ZXJ9LCBkb2N1bWVudC50aXRsZSk7CiAgICAgfSwKIAotICAgIHNldFNlY3Rpb25TY29yZTogZnVu
Y3Rpb24oc2VjdGlvbklkZW50aWZpZXIsIHNjb3JlLCBtZWFuKQorICAgIHNldFNlY3Rpb25TY29y
ZTogZnVuY3Rpb24oc2VjdGlvbklkZW50aWZpZXIsIHNjb3JlLCBjb25maWRlbmNlKQogICAgIHsK
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBzZWN0aW9uSWRlbnRpZmllciAr
ICIgLnNjb3JlIikudGV4dENvbnRlbnQgPSBzY29yZTsKLSAgICAgICAgaWYgKG1lYW4pCi0gICAg
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIiArIHNlY3Rpb25JZGVudGlmaWVyICsg
IiAubWVhbiIpLnRleHRDb250ZW50ID0gbWVhbjsKKyAgICAgICAgaWYgKGNvbmZpZGVuY2UpCisg
ICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIiArIHNlY3Rpb25JZGVudGlmaWVy
ICsgIiAuY29uZmlkZW5jZSIpLnRleHRDb250ZW50ID0gY29uZmlkZW5jZTsKICAgICB9LAogCiAg
ICAgcG9wdWxhdGVUYWJsZTogZnVuY3Rpb24odGFibGVJZGVudGlmaWVyLCBoZWFkZXJzLCBkYXNo
Ym9hcmQpCkBAIC0zNjMsOSArNDM2LDMyIEBAIHdpbmRvdy5zZWN0aW9uc01hbmFnZXIgPQogd2lu
ZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7CiAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKQog
ICAgIHsKKyAgICAgICAgYmVuY2htYXJrQ29udHJvbGxlci5kZXRlcm1pbmVDYW52YXNTaXplKCk7
CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuYWRkT3JpZW50YXRpb25MaXN0ZW5lcklmTmVj
ZXNzYXJ5KCk7CiAgICAgfSwKIAorICAgIGRldGVybWluZUNhbnZhc1NpemU6IGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgbWF0Y2ggPSB3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC1kZXZpY2Utd2lk
dGg6IDc2MHB4KSIpOworICAgICAgICBpZiAobWF0Y2gubWF0Y2hlcykgeworICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJzbWFsbCIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbWF0Y2ggPSB3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC1k
ZXZpY2Utd2lkdGg6IDE2MDBweCkiKTsKKyAgICAgICAgaWYgKG1hdGNoLm1hdGNoZXMpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgibWVkaXVtIik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtYXRjaCA9IHdpbmRvdy5tYXRjaE1l
ZGlhKCIobWF4LXdpZHRoOiAxNjAwcHgpIik7CisgICAgICAgIGlmIChtYXRjaC5tYXRjaGVzKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoIm1lZGl1bSIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFz
c0xpc3QuYWRkKCJsYXJnZSIpOworICAgIH0sCisKICAgICBhZGRPcmllbnRhdGlvbkxpc3RlbmVy
SWZOZWNlc3Nhcnk6IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAoISgib3JpZW50YXRpb24iIGlu
IHdpbmRvdykpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zNzksOSArNDc1LDkgQEAgd2luZG93
LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7CiAgICAgewogICAgICAgICBiZW5jaG1hcmtDb250cm9s
bGVyLmlzSW5MYW5kc2NhcGVPcmllbnRhdGlvbiA9IG1hdGNoLm1hdGNoZXM7CiAgICAgICAgIGlm
IChtYXRjaC5tYXRjaGVzKQotICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm9y
aWVudGF0aW9uLWNoZWNrIHAiKS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdGFydC1iZW5jaG1hcmsgcCIpLmNsYXNzTGlzdC5h
ZGQoImhpZGRlbiIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIub3JpZW50YXRpb24tY2hlY2sgcCIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIp
OworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0YXJ0LWJlbmNobWFyayBw
IikuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7CiAgICAgICAgIGJlbmNobWFya0NvbnRyb2xs
ZXIudXBkYXRlU3RhcnRCdXR0b25TdGF0ZSgpOwogICAgIH0sCiAKQEAgLTM5Miw2ICs0ODgsMTAg
QEAgd2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7CiAKICAgICBfc3RhcnRCZW5jaG1hcms6
IGZ1bmN0aW9uKHN1aXRlcywgb3B0aW9ucywgZnJhbWVDb250YWluZXJJRCkKICAgICB7CisgICAg
ICAgIHZhciBjb25maWd1cmF0aW9uID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUubWF0Y2goL3Nt
YWxsfG1lZGl1bXxsYXJnZS8pOworICAgICAgICBpZiAoY29uZmlndXJhdGlvbikKKyAgICAgICAg
ICAgIG9wdGlvbnNbU3RyaW5ncy5qc29uLmNvbmZpZ3VyYXRpb25dID0gY29uZmlndXJhdGlvblsw
XTsKKwogICAgICAgICBiZW5jaG1hcmtSdW5uZXJDbGllbnQuaW5pdGlhbGl6ZShzdWl0ZXMsIG9w
dGlvbnMpOwogICAgICAgICB2YXIgZnJhbWVDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChmcmFtZUNvbnRhaW5lcklEKTsKICAgICAgICAgdmFyIHJ1bm5lciA9IG5ldyBCZW5jaG1h
cmtSdW5uZXIoc3VpdGVzLCBmcmFtZUNvbnRhaW5lciwgYmVuY2htYXJrUnVubmVyQ2xpZW50KTsK
QEAgLTQwMyw3ICs1MDMsNyBAQCB3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciA9IHsKICAgICBz
dGFydEJlbmNobWFyazogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIG9wdGlvbnMgPSB7
Ci0gICAgICAgICAgICAidGVzdC1pbnRlcnZhbCI6IDIwLAorICAgICAgICAgICAgInRlc3QtaW50
ZXJ2YWwiOiAzMCwKICAgICAgICAgICAgICJkaXNwbGF5IjogIm1pbmltYWwiLAogICAgICAgICAg
ICAgImNvbnRyb2xsZXIiOiAicmFtcCIsCiAgICAgICAgICAgICAia2FsbWFuLXByb2Nlc3MtZXJy
b3IiOiAxLApAQCAtNDIxLDEwICs1MjEsMTIgQEAgd2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIg
PSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgZGFzaGJvYXJkID0gYmVuY2htYXJrUnVubmVy
Q2xpZW50LnJlc3VsdHM7Ci0KLSAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29y
ZSgicmVzdWx0cyIsIGRhc2hib2FyZC5zY29yZS50b0ZpeGVkKDIpKTsKKyAgICAgICAgdmFyIHNj
b3JlID0gZGFzaGJvYXJkLnNjb3JlOworICAgICAgICB2YXIgY29uZmlkZW5jZSA9ICLCsSIgKyAo
U3RhdGlzdGljcy5sYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZShkYXNoYm9hcmQuc2NvcmVMb3dl
ckJvdW5kLCBzY29yZSwgZGFzaGJvYXJkLnNjb3JlVXBwZXJCb3VuZCkgKiAxMDApLnRvRml4ZWQo
MikgKyAiJSI7CisgICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9uU2NvcmUoInJlc3Vs
dHMiLCBzY29yZS50b0ZpeGVkKDIpLCBjb25maWRlbmNlKTsKICAgICAgICAgc2VjdGlvbnNNYW5h
Z2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtaGVhZGVyIiwgSGVhZGVycy50ZXN0TmFtZSwgZGFz
aGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMt
c2NvcmUiLCBIZWFkZXJzLnNjb3JlLCBkYXNoYm9hcmQpOworICAgICAgICBzZWN0aW9uc01hbmFn
ZXIucG9wdWxhdGVUYWJsZSgicmVzdWx0cy1kYXRhIiwgSGVhZGVycy5kZXRhaWxzLCBkYXNoYm9h
cmQpOwogICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2hvd1NlY3Rpb24oInJlc3VsdHMiLCB0cnVl
KTsKICAgICB9LAogCkBAIC00NzIsNyArNTc0LDExIEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9s
bGVyID0gewogICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJlbmNobWFya1J1bm5lckNsaWVudC5y
ZXN1bHRzLm9wdGlvbnMsCiAgICAgICAgICAgICAgICAgZGF0YTogYmVuY2htYXJrUnVubmVyQ2xp
ZW50LnJlc3VsdHMuZGF0YQogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGRhdGEudGV4dENv
bnRlbnQgPSBKU09OLnN0cmluZ2lmeShvdXRwdXQsIG51bGwsIDEpOworICAgICAgICAgICAgZGF0
YS50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KG91dHB1dCwgZnVuY3Rpb24oa2V5LCB2YWx1
ZSkgeworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gVXRpbGl0aWVzLnRvRml4ZWROdW1iZXIodmFsdWUsIDMp
OworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgIH0sIDEpOwogICAg
ICAgICB9LCAwKTsKICAgICAgICAgZGF0YS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwpAQCAtNTAzLDcgKzYw
OSw3IEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgY2FzZSAxOiB7CiAgICAgICAgICAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiI3Jlc3VsdHMgLnNjb3JlIiksIDApOwotICAgICAgICAgICAgICAg
IHJhbmdlLnNldEVuZEFmdGVyKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXN1bHRzLXNjb3Jl
ID4gdHI6bGFzdC1vZi10eXBlIiksIDApOworICAgICAgICAgICAgICAgIHJhbmdlLnNldEVuZEFm
dGVyKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXN1bHRzLXNjb3JlIiksIDApOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSAyOiB7CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9s
aW5lcy5zdmcgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9s
aW5lcy5zdmcKaW5kZXggMTZjN2RjNy4uODM0NThiOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvbGluZXMuc3ZnCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xpbmVzLnN2ZwpAQCAtMiwyNSAr
MiwyNSBAQAogPCEtLSBDb3B5cmlnaHQgwqkgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuIC0tPgogPHN2ZyB2aWV3Qm94PSIwIDAgMTA1MiAxMjUxIiB2ZXJzaW9uPSIxLjEiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgPGcgZmlsbC1vcGFjaXR5PSIw
LjUiIGZpbGw9IndoaXRlIj4KLSAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNTEuNzYxNzE5IDAg
MjUzLjc2MTcxOSAwIDIuMTI4MzMzNDUgMTI1MC4zNjMyOCAwLjEyODMzMzQ1NCAxMjUwLjM2MzI4
Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjkxLjc2MTcxOSAwIDI5NS43NjE3MTkgMCA0
NC4xMjgzMzM1IDEyNTAuMzYzMjggNDAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxw
b2x5Z29uIHBvaW50cz0iMzMxLjc2MTcxOSAwIDMzNy43NjE3MTkgMCA4Ni4xMjgzMzM1IDEyNTAu
MzYzMjggODAuMTI4MzMzNSAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0i
MzcxLjc2MTcxOSAwIDM3OS43NjE3MTkgMCAxMjguMTI4MzMzIDEyNTAuMzYzMjggMTIwLjEyODMz
MyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDExLjc2MTcxOSAwIDQy
MS43NjE3MTkgMCAxNzAuMTI4MzMzIDEyNTAuMzYzMjggMTYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+
Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNDUxLjc2MTcxOSAwIDQ2My43NjE3MTkgMCAyMTIu
MTI4MzMzIDEyNTAuMzYzMjggMjAwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5
Z29uIHBvaW50cz0iNDkxLjc2MTcxOSAwIDUwNS43NjE3MTkgMCAyNTQuMTI4MzMzIDEyNTAuMzYz
MjggMjQwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNTMx
Ljc2MTcxOSAwIDU0Ny43NjE3MTkgMCAyOTYuMTI4MzMzIDEyNTAuMzYzMjggMjgwLjEyODMzMyAx
MjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNTcxLjc2MTcxOSAwIDU4OS43
NjE3MTkgMCAzMzguMTI4MzMzIDEyNTAuMzYzMjggMzIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0g
ICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNjExLjc2MTcxOSAwIDYzMS43NjE3MTkgMCAzODAuMTI4
MzMzIDEyNTAuMzYzMjggMzYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29u
IHBvaW50cz0iNjUxLjc2MTcxOSAwIDY3My43NjE3MTkgMCA0MjIuMTI4MzMzIDEyNTAuMzYzMjgg
NDAwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNjkxLjc2
MTcxOSAwIDcxNS43NjE3MTkgMCA0NjQuMTI4MzMzIDEyNTAuMzYzMjggNDQwLjEyODMzMyAxMjUw
LjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNzMxLjc2MTcxOSAwIDc1Ny43NjE3
MTkgMCA1MDYuMTI4MzMzIDEyNTAuMzYzMjggNDgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAg
ICAgIDxwb2x5Z29uIHBvaW50cz0iNzcxLjc2MTcxOSAwIDc5OS43NjE3MTkgMCA1NDguMTI4MzMz
IDEyNTAuMzYzMjggNTIwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBv
aW50cz0iODExLjc2MTcxOSAwIDg0MS43NjE3MTkgMCA1OTAuMTI4MzMzIDEyNTAuMzYzMjggNTYw
LjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iODUxLjc2MTcx
OSAwIDg4My43NjE3MTkgMCA2MzIuMTI4MzMzIDEyNTAuMzYzMjggNjAwLjEyODMzMyAxMjUwLjM2
MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iODkxLjc2MTcxOSAwIDkyNS43NjE3MTkg
MCA2NzQuMTI4MzMzIDEyNTAuMzYzMjggNjQwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAg
IDxwb2x5Z29uIHBvaW50cz0iOTMxLjc2MTcxOSAwIDk2Ny43NjE3MTkgMCA3MTYuMTI4MzMzIDEy
NTAuMzYzMjggNjgwLjEyODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50
cz0iOTcxLjc2MTcxOSAwIDEwMDkuNzYxNzIgMCA3NTguMTI4MzMzIDEyNTAuMzYzMjggNzIwLjEy
ODMzMyAxMjUwLjM2MzI4Ii8+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTAxMS43NjE3MiAw
IDEwNTEuNzYxNzIgMCA4MDAuMTI4MzMzIDEyNTAuMzYzMjggNzYwLjEyODMzMyAxMjUwLjM2MzI4
Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIxLjc2MTcxOSAwIDIyMy43NjE3MTkgMCAy
LjEyODMzMzQ1IDEyNTAuMzYzMjggMC4xMjgzMzM0NTQgMTI1MC4zNjMyOCIvPgorICAgICAgICA8
cG9seWdvbiBwb2ludHM9IjI2MS43NjE3MTkgMCAyNjUuNzYxNzE5IDAgNDQuMTI4MzMzNSAxMjUw
LjM2MzI4IDQwLjEyODMzMzUgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9
IjMwMS43NjE3MTkgMCAzMDcuNzYxNzE5IDAgODYuMTI4MzMzNSAxMjUwLjM2MzI4IDgwLjEyODMz
MzUgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjM0MS43NjE3MTkgMCAz
NDkuNzYxNzE5IDAgMTI4LjEyODMzMyAxMjUwLjM2MzI4IDEyMC4xMjgzMzMgMTI1MC4zNjMyOCIv
PgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjM4MS43NjE3MTkgMCAzOTEuNzYxNzE5IDAgMTcw
LjEyODMzMyAxMjUwLjM2MzI4IDE2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9s
eWdvbiBwb2ludHM9IjQyMS43NjE3MTkgMCA0MzMuNzYxNzE5IDAgMjEyLjEyODMzMyAxMjUwLjM2
MzI4IDIwMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ2
MS43NjE3MTkgMCA0NzUuNzYxNzE5IDAgMjU0LjEyODMzMyAxMjUwLjM2MzI4IDI0MC4xMjgzMzMg
MTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjUwMS43NjE3MTkgMCA1MTcu
NzYxNzE5IDAgMjk2LjEyODMzMyAxMjUwLjM2MzI4IDI4MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgor
ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU0MS43NjE3MTkgMCA1NTkuNzYxNzE5IDAgMzM4LjEy
ODMzMyAxMjUwLjM2MzI4IDMyMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdv
biBwb2ludHM9IjU4MS43NjE3MTkgMCA2MDEuNzYxNzE5IDAgMzgwLjEyODMzMyAxMjUwLjM2MzI4
IDM2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjYyMS43
NjE3MTkgMCA2NDMuNzYxNzE5IDAgNDIyLjEyODMzMyAxMjUwLjM2MzI4IDQwMC4xMjgzMzMgMTI1
MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjY2MS43NjE3MTkgMCA2ODUuNzYx
NzE5IDAgNDY0LjEyODMzMyAxMjUwLjM2MzI4IDQ0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAg
ICAgICA8cG9seWdvbiBwb2ludHM9IjcwMS43NjE3MTkgMCA3MjcuNzYxNzE5IDAgNTA2LjEyODMz
MyAxMjUwLjM2MzI4IDQ4MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBw
b2ludHM9Ijc0MS43NjE3MTkgMCA3NjkuNzYxNzE5IDAgNTQ4LjEyODMzMyAxMjUwLjM2MzI4IDUy
MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijc4MS43NjE3
MTkgMCA4MTEuNzYxNzE5IDAgNTkwLjEyODMzMyAxMjUwLjM2MzI4IDU2MC4xMjgzMzMgMTI1MC4z
NjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjgyMS43NjE3MTkgMCA4NTMuNzYxNzE5
IDAgNjMyLjEyODMzMyAxMjUwLjM2MzI4IDYwMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAg
ICA8cG9seWdvbiBwb2ludHM9Ijg2MS43NjE3MTkgMCA4OTUuNzYxNzE5IDAgNjc0LjEyODMzMyAx
MjUwLjM2MzI4IDY0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2lu
dHM9IjkwMS43NjE3MTkgMCA5MzcuNzYxNzE5IDAgNzE2LjEyODMzMyAxMjUwLjM2MzI4IDY4MC4x
MjgzMzMgMTI1MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijk0MS43NjE3MTkg
MCA5NzkuNzYxNzIgMCA3NTguMTI4MzMzIDEyNTAuMzYzMjggNzIwLjEyODMzMyAxMjUwLjM2MzI4
Ii8+CisgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOTgxLjc2MTcyIDAgMTAyMS43NjE3MiAwIDgw
MC4xMjgzMzMgMTI1MC4zNjMyOCA3NjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KICAgICA8L2c+CiA8
L3N2Zz4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanMKaW5kZXggZTM0OWM2My4uYWE5MzhjNSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKQEAgLTEs
NiArMSwyNSBAQAogdmFyIEhlYWRlcnMgPSB7Ci0gICAgdGVzdE5hbWU6IFt7IHRpdGxlOiBTdHJp
bmdzLnRleHQudGVzdE5hbWUgfV0sCi0gICAgc2NvcmU6IFt7IHRpdGxlOiBTdHJpbmdzLnRleHQu
c2NvcmUsIHRleHQ6IFN0cmluZ3MuanNvbi5zY29yZSB9XQorICAgIHRlc3ROYW1lOiBbCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRpdGxlOiAiPHNwYW4gb25jbGljaz0nYmVuY2htYXJrQ29udHJv
bGxlci5zaG93RGVidWdJbmZvKCknPiIgKyBTdHJpbmdzLnRleHQudGVzdE5hbWUgKyAiPC9zcGFu
PiIsCisgICAgICAgICAgICB0ZXh0OiBTdHJpbmdzLnRleHQudGVzdE5hbWUKKyAgICAgICAgfQor
ICAgIF0sCisgICAgc2NvcmU6IFsKKyAgICAgICAgeworICAgICAgICAgICAgdGl0bGU6IFN0cmlu
Z3MudGV4dC5zY29yZSwKKyAgICAgICAgICAgIHRleHQ6IFN0cmluZ3MuanNvbi5zY29yZQorICAg
ICAgICB9CisgICAgXSwKKyAgICBkZXRhaWxzOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRp
dGxlOiAiJm5ic3A7IiwKKyAgICAgICAgICAgIHRleHQ6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgYm9vdHN0cmFwID0gZGF0YVtTdHJpbmdzLmpzb24uY29tcGxleGl0eV1b
U3RyaW5ncy5qc29uLmJvb3RzdHJhcF07CisgICAgICAgICAgICAgICAgcmV0dXJuICI8c3Bhbj7C
sSIgKyAoU3RhdGlzdGljcy5sYXJnZXN0RGV2aWF0aW9uUGVyY2VudGFnZShib290c3RyYXAuY29u
ZmlkZW5jZUxvdywgYm9vdHN0cmFwLm1lZGlhbiwgYm9vdHN0cmFwLmNvbmZpZGVuY2VIaWdoKSAq
IDEwMCkudG9GaXhlZCgyKSArICIlPC9zcGFuPiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICBdCiB9OwogCiB2YXIgU3VpdGUgPSBmdW5jdGlvbihuYW1lLCB0ZXN0cykgewpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpz
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzCmlu
ZGV4IDY1ODZlODYuLjkzMjJhNzkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMKQEAgLTcwLDYgKzcwLDExIEBAIFN0YXRpc3Rp
Y3MgPQogICAgICAgICAgIHZhciB0ID0gMS4wIC8gKDEuMCArIHAgKiB2YWx1ZSk7CiAgICAgICAg
ICAgdmFyIHkgPSAxLjAgLSAoKCgoKGE1ICogdCArIGE0KSAqIHQpICsgYTMpICogdCArIGEyKSAq
IHQgKyBhMSkgKiB0ICogTWF0aC5leHAoLXZhbHVlICogdmFsdWUpOwogICAgICAgICAgIHJldHVy
biBzaWduICogeTsKKyAgICB9LAorCisgICAgbGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2U6IGZ1
bmN0aW9uKGxvdywgbWVhbiwgaGlnaCkKKyAgICB7CisgICAgICAgIHJldHVybiBNYXRoLm1heChN
YXRoLmFicyhsb3cgLyBtZWFuIC0gMSksIChoaWdoIC8gbWVhbiAtIDEpKTsKICAgICB9CiB9Owog
CkBAIC0xNDgsMzkgKzE1Myw0OSBAQCBFeHBlcmltZW50LmRlZmF1bHRzID0KIH07CiAKIFJlZ3Jl
c3Npb24gPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCi0gICAgZnVuY3Rpb24oc2FtcGxlcywgZ2V0
Q29tcGxleGl0eSwgZ2V0RnJhbWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBkZXNpcmVk
RnJhbWVMZW5ndGgpCisgICAgZnVuY3Rpb24oc2FtcGxlcywgZ2V0Q29tcGxleGl0eSwgZ2V0RnJh
bWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBvcHRpb25zKQogICAgIHsKLSAgICAgICAg
ZGVzaXJlZEZyYW1lTGVuZ3RoID0gZGVzaXJlZEZyYW1lTGVuZ3RoIHx8IDEwMDAvNjA7Ci0gICAg
ICAgIHZhciBzbG9wZSA9IHRoaXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29t
cGxleGl0eSwgZ2V0RnJhbWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7Ci0gICAgICAg
ICAgICBzaG91bGRDbGlwOiB0cnVlLAotICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0
aCwKLSAgICAgICAgICAgIHQxOiAwCi0gICAgICAgIH0pOwotICAgICAgICB2YXIgZmxhdCA9IHRo
aXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29tcGxleGl0eSwgZ2V0RnJhbWVM
ZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7Ci0gICAgICAgICAgICBzaG91bGRDbGlwOiB0
cnVlLAotICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0aCwKLSAgICAgICAgICAgIHQx
OiAwLAotICAgICAgICAgICAgdDI6IDAKLSAgICAgICAgfSk7Ci0gICAgICAgIHZhciBkZXNpcmVk
OwotICAgICAgICBpZiAoc2xvcGUuZXJyb3IgPCBmbGF0LmVycm9yKQotICAgICAgICAgICAgZGVz
aXJlZCA9IHNsb3BlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZXNpcmVkID0gZmxhdDsK
KyAgICAgICAgdmFyIGRlc2lyZWRGcmFtZUxlbmd0aCA9IG9wdGlvbnMuZGVzaXJlZEZyYW1lTGVu
Z3RoIHx8IDEwMDAvNjA7CisgICAgICAgIHZhciBiZXN0UHJvZmlsZTsKKworICAgICAgICBpZiAo
IW9wdGlvbnMucHJlZmVycmVkUHJvZmlsZSB8fCBvcHRpb25zLnByZWZlcnJlZFByb2ZpbGUgPT0g
U3RyaW5ncy5qc29uLnByb2ZpbGVzLnNsb3BlKSB7CisgICAgICAgICAgICB2YXIgc2xvcGUgPSB0
aGlzLl9jYWxjdWxhdGVSZWdyZXNzaW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdldEZyYW1l
TGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgeworICAgICAgICAgICAgICAgIHNob3VsZENs
aXA6IHRydWUsCisgICAgICAgICAgICAgICAgczE6IGRlc2lyZWRGcmFtZUxlbmd0aCwKKyAgICAg
ICAgICAgICAgICB0MTogMAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoIWJlc3RQ
cm9maWxlIHx8IHNsb3BlLmVycm9yIDwgYmVzdFByb2ZpbGUuZXJyb3IpIHsKKyAgICAgICAgICAg
ICAgICBiZXN0UHJvZmlsZSA9IHNsb3BlOworICAgICAgICAgICAgICAgIHRoaXMucHJvZmlsZSA9
IFN0cmluZ3MuanNvbi5wcm9maWxlcy5zbG9wZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBpZiAoIW9wdGlvbnMucHJlZmVycmVkUHJvZmlsZSB8fCBvcHRpb25zLnByZWZlcnJl
ZFByb2ZpbGUgPT0gU3RyaW5ncy5qc29uLnByb2ZpbGVzLmZsYXQpIHsKKyAgICAgICAgICAgIHZh
ciBmbGF0ID0gdGhpcy5fY2FsY3VsYXRlUmVncmVzc2lvbihzYW1wbGVzLCBnZXRDb21wbGV4aXR5
LCBnZXRGcmFtZUxlbmd0aCwgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHsKKyAgICAgICAgICAgICAg
ICBzaG91bGRDbGlwOiB0cnVlLAorICAgICAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5n
dGgsCisgICAgICAgICAgICAgICAgdDE6IDAsCisgICAgICAgICAgICAgICAgdDI6IDAKKyAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAoIWJlc3RQcm9maWxlIHx8IGZsYXQuZXJyb3Ig
PCBiZXN0UHJvZmlsZS5lcnJvcikgeworICAgICAgICAgICAgICAgIGJlc3RQcm9maWxlID0gZmxh
dDsKKyAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUgPSBTdHJpbmdzLmpzb24ucHJvZmlsZXMu
ZmxhdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuc3RhcnRJbmRl
eCA9IE1hdGgubWluKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTsKICAgICAgICAgdGhpcy5lbmRJbmRl
eCA9IE1hdGgubWF4KHN0YXJ0SW5kZXgsIGVuZEluZGV4KTsKIAotICAgICAgICB0aGlzLmNvbXBs
ZXhpdHkgPSBkZXNpcmVkLmNvbXBsZXhpdHk7Ci0gICAgICAgIHRoaXMuczEgPSBkZXNpcmVkLnMx
OwotICAgICAgICB0aGlzLnQxID0gZGVzaXJlZC50MTsKLSAgICAgICAgdGhpcy5zMiA9IGRlc2ly
ZWQuczI7Ci0gICAgICAgIHRoaXMudDIgPSBkZXNpcmVkLnQyOwotICAgICAgICB0aGlzLnN0ZGV2
MSA9IGRlc2lyZWQuc3RkZXYxOwotICAgICAgICB0aGlzLnN0ZGV2MiA9IGRlc2lyZWQuc3RkZXYy
OwotICAgICAgICB0aGlzLm4xID0gZGVzaXJlZC5uMTsKLSAgICAgICAgdGhpcy5uMiA9IGRlc2ly
ZWQubjI7Ci0gICAgICAgIHRoaXMuZXJyb3IgPSBkZXNpcmVkLmVycm9yOworICAgICAgICB0aGlz
LmNvbXBsZXhpdHkgPSBiZXN0UHJvZmlsZS5jb21wbGV4aXR5OworICAgICAgICB0aGlzLnMxID0g
YmVzdFByb2ZpbGUuczE7CisgICAgICAgIHRoaXMudDEgPSBiZXN0UHJvZmlsZS50MTsKKyAgICAg
ICAgdGhpcy5zMiA9IGJlc3RQcm9maWxlLnMyOworICAgICAgICB0aGlzLnQyID0gYmVzdFByb2Zp
bGUudDI7CisgICAgICAgIHRoaXMuc3RkZXYxID0gYmVzdFByb2ZpbGUuc3RkZXYxOworICAgICAg
ICB0aGlzLnN0ZGV2MiA9IGJlc3RQcm9maWxlLnN0ZGV2MjsKKyAgICAgICAgdGhpcy5uMSA9IGJl
c3RQcm9maWxlLm4xOworICAgICAgICB0aGlzLm4yID0gYmVzdFByb2ZpbGUubjI7CisgICAgICAg
IHRoaXMuZXJyb3IgPSBiZXN0UHJvZmlsZS5lcnJvcjsKICAgICB9LCB7CiAKICAgICB2YWx1ZUF0
OiBmdW5jdGlvbihjb21wbGV4aXR5KQpAQCAtMjE3LDYgKzIzMiw3IEBAIFJlZ3Jlc3Npb24gPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICB9OwogICAgICAgICB9CiAKKyAgICAg
ICAgLy8geCBpcyBleHBlY3RlZCB0byBpbmNyZWFzZSBpbiBjb21wbGV4aXR5CiAgICAgICAgIHZh
ciBpdGVyYXRpb25EaXJlY3Rpb24gPSBlbmRJbmRleCA+IHN0YXJ0SW5kZXggPyAxIDogLTE7CiAg
ICAgICAgIHZhciBsb3dDb21wbGV4aXR5ID0gZ2V0Q29tcGxleGl0eShzYW1wbGVzLCBzdGFydElu
ZGV4KTsKICAgICAgICAgdmFyIGhpZ2hDb21wbGV4aXR5ID0gZ2V0Q29tcGxleGl0eShzYW1wbGVz
LCBlbmRJbmRleCk7CkBAIC0yNDUsNyArMjYxLDkgQEAgUmVncmVzc2lvbiA9IFV0aWxpdGllcy5j
cmVhdGVDbGFzcygKICAgICAgICAgICAgIHMyX2Jlc3QgPSBzMjsKICAgICAgICAgICAgIHQyX2Jl
c3QgPSB0MjsKICAgICAgICAgICAgIGVycm9yMl9iZXN0ID0gZXJyb3IyOworICAgICAgICAgICAg
Ly8gTnVtYmVyIG9mIHNhbXBsZXMgaW5jbHVkZWQgaW4gdGhlIGZpcnN0IHNlZ21lbnQsIGluY2x1
c2l2ZSBvZiBzcGxpdEluZGV4CiAgICAgICAgICAgICBuMV9iZXN0ID0gaXRlcmF0aW9uRGlyZWN0
aW9uICogKHNwbGl0SW5kZXggLSBzdGFydEluZGV4KSArIDE7CisgICAgICAgICAgICAvLyBOdW1i
ZXIgb2Ygc2FtcGxlcyBpbmNsdWRlZCBpbiB0aGUgc2Vjb25kIHNlZ21lbnQKICAgICAgICAgICAg
IG4yX2Jlc3QgPSBpdGVyYXRpb25EaXJlY3Rpb24gKiAoZW5kSW5kZXggLSBzcGxpdEluZGV4KTsK
ICAgICAgICAgICAgIGlmICghb3B0aW9ucy5zaG91bGRDbGlwIHx8ICh4X3ByaW1lID49IGxvd0Nv
bXBsZXhpdHkgJiYgeF9wcmltZSA8PSBoaWdoQ29tcGxleGl0eSkpCiAgICAgICAgICAgICAgICAg
eF9iZXN0ID0geF9wcmltZTsKQEAgLTI5MCw4ICszMDgsOCBAQCBSZWdyZXNzaW9uID0gVXRpbGl0
aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgLy8gQXNzdW1lcyB0aGF0IHRoZSB0d28gc2Vn
bWVudHMgbWVldAogICAgICAgICAgICAgdmFyIHhfcHJpbWUgPSAoczEgLSBzMikgLyAodDIgLSB0
MSk7CiAKLSAgICAgICAgICAgIHZhciBlcnJvcjEgPSAoazEgKyBhMSpzMSpzMSArIGMxKnQxKnQx
IC0gMipkMSpzMSAtIDIqaDEqdDEgKyAyKmIxKnMxKnQxKSB8fCAwOwotICAgICAgICAgICAgdmFy
IGVycm9yMiA9IChrMiArIGEyKnMyKnMyICsgYzIqdDIqdDIgLSAyKmQyKnMyIC0gMipoMip0MiAr
IDIqYjIqczIqdDIpIHx8IDA7CisgICAgICAgICAgICB2YXIgZXJyb3IxID0gKGsxICsgYTEqczEq
czEgKyBjMSp0MSp0MSAtIDIqZDEqczEgLSAyKmgxKnQxICsgMipiMSpzMSp0MSkgfHwgTnVtYmVy
Lk1BWF9WQUxVRTsKKyAgICAgICAgICAgIHZhciBlcnJvcjIgPSAoazIgKyBhMipzMipzMiArIGMy
KnQyKnQyIC0gMipkMipzMiAtIDIqaDIqdDIgKyAyKmIyKnMyKnQyKSB8fCBOdW1iZXIuTUFYX1ZB
TFVFOwogCiAgICAgICAgICAgICBpZiAoaSA9PSBzdGFydEluZGV4KSB7CiAgICAgICAgICAgICAg
ICAgc2V0QmVzdChzMSwgdDEsIGVycm9yMSwgczIsIHQyLCBlcnJvcjIsIGksIHhfcHJpbWUsIHgp
OwpAQCAtMzIyLDggKzM0MCw4IEBAIFJlZ3Jlc3Npb24gPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CiAgICAgICAgICAgICAgICAgICAgIHQyID0gb3B0aW9ucy50MiAhPT0gdW5kZWZpbmVkID8gb3B0
aW9ucy50MiA6ICgoRSArIGxhbWJkYTEqKGgyIC0gZDIqeCAtIGIyKnkgKyBhMip5eCkpIC8gKEYg
KyBsYW1iZGExKkspKTsKICAgICAgICAgICAgICAgICAgICAgeF9wcmltZSA9IChzMSAtIHMyKSAv
ICh0MiAtIHQxKTsKIAotICAgICAgICAgICAgICAgICAgICBlcnJvcjEgPSAoKGsxICsgYTEqczEq
czEgKyBjMSp0MSp0MSAtIDIqZDEqczEgLSAyKmgxKnQxICsgMipiMSpzMSp0MSkgLSBsYW1iZGEx
ICogTWF0aC5wb3coeSAtIChzMSArIHQxKngpLCAyKSkgfHwgMDsKLSAgICAgICAgICAgICAgICAg
ICAgZXJyb3IyID0gKChrMiArIGEyKnMyKnMyICsgYzIqdDIqdDIgLSAyKmQyKnMyIC0gMipoMip0
MiArIDIqYjIqczIqdDIpICsgbGFtYmRhMSAqIE1hdGgucG93KHkgLSAoczIgKyB0Mip4KSwgMikp
IHx8IDA7CisgICAgICAgICAgICAgICAgICAgIGVycm9yMSA9ICgoazEgKyBhMSpzMSpzMSArIGMx
KnQxKnQxIC0gMipkMSpzMSAtIDIqaDEqdDEgKyAyKmIxKnMxKnQxKSAtIGxhbWJkYTEgKiBNYXRo
LnBvdyh5IC0gKHMxICsgdDEqeCksIDIpKSB8fCBOdW1iZXIuTUFYX1ZBTFVFOworICAgICAgICAg
ICAgICAgICAgICBlcnJvcjIgPSAoKGsyICsgYTIqczIqczIgKyBjMip0Mip0MiAtIDIqZDIqczIg
LSAyKmgyKnQyICsgMipiMipzMip0MikgKyBsYW1iZGExICogTWF0aC5wb3coeSAtIChzMiArIHQy
KngpLCAyKSkgfHwgTnVtYmVyLk1BWF9WQUxVRTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KHQxICE9IHQyKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0K
QEAgLTM3Miw3ICszOTAsOCBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KFJlZ3Jlc3Npb24sIHsK
ICAgICAgICAgICAgIGNvbmZpZGVuY2VIaWdoOiBib290c3RyYXBEYXRhW01hdGgucm91bmQoKGl0
ZXJhdGlvbkNvdW50IC0gMSkgKiAoMSArIGNvbmZpZGVuY2VQZXJjZW50YWdlKSAvIDIpXSwKICAg
ICAgICAgICAgIG1lZGlhbjogYm9vdHN0cmFwRGF0YVtNYXRoLnJvdW5kKGl0ZXJhdGlvbkNvdW50
IC8gMildLAogICAgICAgICAgICAgbWVhbjogYm9vdHN0cmFwRXN0aW1hdG9yLm1lYW4oKSwKLSAg
ICAgICAgICAgIGRhdGE6IGJvb3RzdHJhcERhdGEKKyAgICAgICAgICAgIGRhdGE6IGJvb3RzdHJh
cERhdGEsCisgICAgICAgICAgICBjb25maWRlbmNlUGVyY2VudGFnZTogY29uZmlkZW5jZVBlcmNl
bnRhZ2UKICAgICAgICAgfTsKICAgICB9CiB9KTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcwppbmRleCAxOTIyOWFhLi5iNThmNjdlOSAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdzLmpz
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qcwpA
QCAtOSwxMyArOSwxOSBAQCB2YXIgU3RyaW5ncyA9IHsKICAgICAgICAgc2FtcGxpbmdFbmRUaW1l
T2Zmc2V0OiAiRW5kIHNhbXBsaW5nIiwKIAogICAgICAgICBzYW1wbGVzOiAic2FtcGxlcyIsCisg
ICAgICAgIGRhdGFGaWVsZE1hcDogImRhdGFGaWVsZE1hcCIsCiAgICAgICAgIGNvbnRyb2xsZXI6
ICJjb250cm9sbGVyIiwKKyAgICAgICAgdGltZTogInRpbWUiLAogICAgICAgICBjb21wbGV4aXR5
OiAiY29tcGxleGl0eSIsCiAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlOiAiY29tcGxleGl0eUF2
ZXJhZ2UiLAogICAgICAgICBmcmFtZUxlbmd0aDogImZyYW1lTGVuZ3RoIiwKKyAgICAgICAgc21v
b3RoZWRGcmFtZUxlbmd0aDogInNtb290aGVkRnJhbWVMZW5ndGgiLAogCiAgICAgICAgIHJlc3Vs
dDogInJlc3VsdCIsCisgICAgICAgIGNvbmZpZ3VyYXRpb246ICJjb25maWd1cmF0aW9uIiwKICAg
ICAgICAgc2NvcmU6ICJzY29yZSIsCisgICAgICAgIHNjb3JlTG93ZXJCb3VuZDogInNjb3JlTG93
ZXJCb3VuZCIsCisgICAgICAgIHNjb3JlVXBwZXJCb3VuZDogInNjb3JlVXBwZXJCb3VuZCIsCiAg
ICAgICAgIGJvb3RzdHJhcDogImJvb3RzdHJhcCIsCiAgICAgICAgIG1lYXN1cmVtZW50czogewog
ICAgICAgICAgICAgYXZlcmFnZTogImF2ZXJhZ2UiLApAQCAtMjgsNyArMzQsMTMgQEAgdmFyIFN0
cmluZ3MgPSB7CiAgICAgICAgICAgICBzdGFydEluZGV4OiAic3RhcnRJbmRleCIsCiAgICAgICAg
ICAgICBlbmRJbmRleDogImVuZEluZGV4IiwKICAgICAgICAgICAgIHNlZ21lbnQxOiAic2VnbWVu
dDEiLAotICAgICAgICAgICAgc2VnbWVudDI6ICJzZWdtZW50MiIKKyAgICAgICAgICAgIHNlZ21l
bnQyOiAic2VnbWVudDIiLAorICAgICAgICAgICAgcHJvZmlsZTogInByb2ZpbGUiCisgICAgICAg
IH0sCisKKyAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgIHNsb3BlOiAic2xvcGUiLAor
ICAgICAgICAgICAgZmxhdDogImZsYXQiCiAgICAgICAgIH0sCiAKICAgICAgICAgcmVzdWx0czog
ewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9m
b2N1cy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1
cy5odG1sCmluZGV4IDczMTI1NmQuLjAyMjY0ZDcgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ZvY3VzLmh0bWwKQEAgLTIxLDYgKzIxLDcgQEAK
ICAgICB9CiAKICAgICAjY2VudGVyLXRleHQgeworICAgICAgICBmb250LXNpemU6IDkwJTsKICAg
ICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3Vy
Y2VzL2ZvY3VzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9y
ZXNvdXJjZXMvZm9jdXMuanMKaW5kZXggNTY3Mjg5Ny4uMjZjMjQ2NSAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZm9jdXMuanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMv
Zm9jdXMuanMKQEAgLTEsMjcgKzEsMjUgQEAKIChmdW5jdGlvbigpIHsKIAogdmFyIG1heFZlcnRp
Y2FsT2Zmc2V0ID0gNTA7Ci12YXIgcmFkaXVzID0gMTA7Ci12YXIgY2VudGVyRGlhbWV0ZXIgPSAx
MDA7Ci12YXIgc2l6ZVZhcmlhbmNlID0gODA7Ci12YXIgdHJhdmVsRGlzdGFuY2UgPSA3MDsKLQot
dmFyIG1pbk9iamVjdERlcHRoID0gMC4yOwotdmFyIG1heE9iamVjdERlcHRoID0gMS4wOwordmFy
IG1pbmltdW1EaWFtZXRlciA9IDMwOwordmFyIGNlbnRlckRpYW1ldGVyID0gOTA7Cit2YXIgc2l6
ZVZhcmlhbmNlID0gNjA7Cit2YXIgdHJhdmVsRGlzdGFuY2UgPSA1MDsKIAogdmFyIG9wYWNpdHlN
dWx0aXBsaWVyID0gMzA7CiAKIHZhciBGb2N1c0VsZW1lbnQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xh
c3MoCiAgICAgZnVuY3Rpb24oc3RhZ2UpCiAgICAgewotICAgICAgICB2YXIgdG9wT2Zmc2V0ID0g
bWF4VmVydGljYWxPZmZzZXQgKiBTdGFnZS5yYW5kb21TaWduKCk7Ci0gICAgICAgIHZhciB0b3Ag
PSBTdGFnZS5yYW5kb20oMCwgc3RhZ2Uuc2l6ZS5oZWlnaHQgLSAyICogcmFkaXVzIC0gc2l6ZVZh
cmlhbmNlKTsKLSAgICAgICAgdmFyIGxlZnQgPSBTdGFnZS5yYW5kb20oMCwgc3RhZ2Uuc2l6ZS53
aWR0aCAtIDIgKiByYWRpdXMgLSBzaXplVmFyaWFuY2UpOworICAgICAgICB2YXIgc2l6ZSA9IG1p
bmltdW1EaWFtZXRlciArIHNpemVWYXJpYW5jZTsKIAogICAgICAgICAvLyBzaXplIGFuZCBibHVy
cmluZyBhcmUgYSBmdW5jdGlvbiBvZiBkZXB0aAotICAgICAgICB0aGlzLl9kZXB0aCA9IFV0aWxp
dGllcy5sZXJwKDEgLSBNYXRoLnBvdyhQc2V1ZG8ucmFuZG9tKCksIDIpLCBtaW5PYmplY3REZXB0
aCwgbWF4T2JqZWN0RGVwdGgpOwotICAgICAgICB2YXIgZGlzdGFuY2UgPSBVdGlsaXRpZXMubGVy
cCh0aGlzLl9kZXB0aCwgMSwgc2l6ZVZhcmlhbmNlKTsKLSAgICAgICAgdmFyIHNpemUgPSAyICog
cmFkaXVzICsgc2l6ZVZhcmlhbmNlIC0gZGlzdGFuY2U7CisgICAgICAgIHRoaXMuX2RlcHRoID0g
UHNldWRvLnJhbmRvbSgpOworICAgICAgICB2YXIgZGlzdGFuY2UgPSBVdGlsaXRpZXMubGVycCh0
aGlzLl9kZXB0aCwgMCwgc2l6ZVZhcmlhbmNlKTsKKyAgICAgICAgc2l6ZSAtPSBkaXN0YW5jZTsK
KworICAgICAgICB2YXIgdG9wID0gU3RhZ2UucmFuZG9tKDAsIHN0YWdlLnNpemUuaGVpZ2h0IC0g
c2l6ZSkgLSBzdGFnZS5tYXhCbHVyVmFsdWUgKiAzOworICAgICAgICB2YXIgbGVmdCA9IFN0YWdl
LnJhbmRvbSgwLCBzdGFnZS5zaXplLndpZHRoIC0gc2l6ZSkgLSBzdGFnZS5tYXhCbHVyVmFsdWUg
KiAzOwogCiAgICAgICAgIHRoaXMuY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoID0gKHNpemUgKyBzdGFn
ZS5tYXhCbHVyVmFsdWUgKiA2KSArICJweCI7CkBAIC0zMCwxNiArMjgsMTUgQEAgdmFyIEZvY3Vz
RWxlbWVudCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgdGhpcy5jb250YWluZXIu
c3R5bGUubGVmdCA9IGxlZnQgKyAicHgiOwogICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS56
SW5kZXggPSBNYXRoLnJvdW5kKCgxIC0gdGhpcy5fZGVwdGgpICogMTApOwogCi0gICAgICAgIHZh
ciBwYXJ0aWNsZSA9IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50KCJkaXYiLCB7fSwgdGhpcy5jb250
YWluZXIpOwotICAgICAgICBwYXJ0aWNsZS5zdHlsZS53aWR0aCA9IHNpemUgKyAicHgiOwotICAg
ICAgICBwYXJ0aWNsZS5zdHlsZS5oZWlnaHQgPSBzaXplICsgInB4IjsKLSAgICAgICAgcGFydGlj
bGUuc3R5bGUudG9wID0gKHN0YWdlLm1heEJsdXJWYWx1ZSAqIDMpICsgInB4IjsKLSAgICAgICAg
cGFydGljbGUuc3R5bGUubGVmdCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7Ci0g
ICAgICAgIHRoaXMucGFydGljbGUgPSBwYXJ0aWNsZTsKKyAgICAgICAgdGhpcy5wYXJ0aWNsZSA9
IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50KCJkaXYiLCB7fSwgdGhpcy5jb250YWluZXIpOworICAg
ICAgICB0aGlzLnBhcnRpY2xlLnN0eWxlLndpZHRoID0gc2l6ZSArICJweCI7CisgICAgICAgIHRo
aXMucGFydGljbGUuc3R5bGUuaGVpZ2h0ID0gc2l6ZSArICJweCI7CisgICAgICAgIHRoaXMucGFy
dGljbGUuc3R5bGUudG9wID0gKHN0YWdlLm1heEJsdXJWYWx1ZSAqIDMpICsgInB4IjsKKyAgICAg
ICAgdGhpcy5wYXJ0aWNsZS5zdHlsZS5sZWZ0ID0gKHN0YWdlLm1heEJsdXJWYWx1ZSAqIDMpICsg
InB4IjsKIAogICAgICAgICB2YXIgZGVwdGhNdWx0aXBsaWVyID0gVXRpbGl0aWVzLmxlcnAoMSAt
IHRoaXMuX2RlcHRoLCAwLjgsIDEpOwotICAgICAgICB0aGlzLl9zaW5NdWx0aXBsaWVyID0gUHNl
dWRvLnJhbmRvbSgpICogU3RhZ2UucmFuZG9tU2lnbigpICogZGVwdGhNdWx0aXBsaWVyOwotICAg
ICAgICB0aGlzLl9jb3NNdWx0aXBsaWVyID0gUHNldWRvLnJhbmRvbSgpICogU3RhZ2UucmFuZG9t
U2lnbigpICogZGVwdGhNdWx0aXBsaWVyOworICAgICAgICB0aGlzLl9zaW5NdWx0aXBsaWVyID0g
UHNldWRvLnJhbmRvbSgpICogU3RhZ2UucmFuZG9tU2lnbigpICogZGVwdGhNdWx0aXBsaWVyICog
dHJhdmVsRGlzdGFuY2U7CisgICAgICAgIHRoaXMuX2Nvc011bHRpcGxpZXIgPSBQc2V1ZG8ucmFu
ZG9tKCkgKiBTdGFnZS5yYW5kb21TaWduKCkgKiBkZXB0aE11bHRpcGxpZXIgKiB0cmF2ZWxEaXN0
YW5jZTsKICAgICB9LCB7CiAKICAgICBoaWRlOiBmdW5jdGlvbigpCkBAIC0xMzEsOCArMTI4LDgg
QEAgdmFyIEZvY3VzU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3RhZ2UsCiAgICAg
YW5pbWF0ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHRpbWUgPSB0aGlzLl9iZW5j
aG1hcmsudGltZXN0YW1wOwotICAgICAgICB2YXIgc2luRmFjdG9yID0gTWF0aC5zaW4odGltZSAv
IHRoaXMubW92ZW1lbnREdXJhdGlvbikgKiB0cmF2ZWxEaXN0YW5jZTsKLSAgICAgICAgdmFyIGNv
c0ZhY3RvciA9IE1hdGguY29zKHRpbWUgLyB0aGlzLm1vdmVtZW50RHVyYXRpb24pICogdHJhdmVs
RGlzdGFuY2U7CisgICAgICAgIHZhciBzaW5GYWN0b3IgPSBNYXRoLnNpbih0aW1lIC8gdGhpcy5t
b3ZlbWVudER1cmF0aW9uKTsKKyAgICAgICAgdmFyIGNvc0ZhY3RvciA9IE1hdGguY29zKHRpbWUg
LyB0aGlzLm1vdmVtZW50RHVyYXRpb24pOwogCiAgICAgICAgIHZhciBmb2N1c1Byb2dyZXNzID0g
MC41ICsgMC41ICogTWF0aC5zaW4odGltZSAvIHRoaXMuZm9jdXNEdXJhdGlvbik7CiAgICAgICAg
IHRoaXMuX2ZvY2FsUG9pbnQgPSBmb2N1c1Byb2dyZXNzOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdl
LWRhdGEuanMKaW5kZXggN2EwMjhmMi4uNmRlNWQwNiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcworKysg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFn
ZS1kYXRhLmpzCkBAIC04LDEwICs4LDEwIEBAIHZhciBJbWFnZURhdGFTdGFnZSA9IFV0aWxpdGll
cy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAgICAgICAgdGhpcy5fb2Zmc2V0SW5kZXggPSAwOwog
ICAgIH0sIHsKIAotICAgIGltYWdlV2lkdGg6IDEwMCwKLSAgICBpbWFnZUhlaWdodDogMTAwLAor
ICAgIGltYWdlV2lkdGg6IDUwLAorICAgIGltYWdlSGVpZ2h0OiA1MCwKICAgICBwaXhlbFN0cmlk
ZTogNCwKLSAgICByb3dTdHJpZGU6IDQwMCwKKyAgICByb3dTdHJpZGU6IDIwMCwKICAgICB3ZWln
aHROZWdhdGl2ZVRocmVzaG9sZDogMC4wNCwKICAgICB3ZWlnaHRQb3NpdGl2ZVRocmVzaG9sZDog
MC45NiwKICAgICBpbWFnZVNyY3M6IFsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWwKaW5kZXggNGM5ZGRlMS4uNWU5NGI4YyAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWwK
QEAgLTcsMjggKzcsMTUgQEAKIAogICAgICAgICAjc3RhZ2UgewogICAgICAgICAgICAgZm9udC1m
YW1pbHk6IEhlbHZldGljYTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDsKLSAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6ICMzMTM1MzQ7LyogI2QxOTQ4YzsqLworICAgICAgICAgICAg
Zm9udC1zaXplOiA1MnB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMxMzUzNDsK
ICAgICAgICAgfQotICAgICAgICBAbWVkaWEgKG1pbi1kZXZpY2UtaGVpZ2h0OiA3NjhweCkgYW5k
IChtYXgtZGV2aWNlLWhlaWdodDogMTAyNHB4KSB7CisgICAgICAgIEBtZWRpYSAobWF4LXdpZHRo
OiA5MDBweCkgewogICAgICAgICAgICAgI3N0YWdlIHsKICAgICAgICAgICAgICAgICBmb250LXNp
emU6IDQwcHg7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgQG1lZGlhIHNjcmVl
biBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4KSwKLSAgICAgICAgICAgIHNjcmVlbiBhbmQg
KG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7
Ci0gICAgICAgICAgICAjc3RhZ2UgewotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4
LWRldmljZS13aWR0aDogMzc1cHgpLAotICAgICAgICAgICAgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS1oZWlnaHQ6IDM3NXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAgICAg
ICAgICNzdGFnZSB7Ci0gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4OwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdp
ZHRoOiAzMjBweCksCi0gICAgICAgICAgICBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDog
MzIwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgeworICAgICAgICBAbWVkaWEgKG1h
eC13aWR0aDogNTY4cHgpIHsKICAgICAgICAgICAgICNzdGFnZSB7CiAgICAgICAgICAgICAgICAg
Zm9udC1zaXplOiAyOHB4OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCmluZGV4IGUxNGVkNTkuLjBiOTk1
NmEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJj
ZXMvbWFpbi5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3Vy
Y2VzL21haW4uanMKQEAgLTE0OSw4ICsxNDksMTIgQEAgQ29udHJvbGxlciA9IFV0aWxpdGllcy5j
cmVhdGVDbGFzcygKIAogICAgIF9wcm9jZXNzQ29tcGxleGl0eVNhbXBsZXM6IGZ1bmN0aW9uKGNv
bXBsZXhpdHlTYW1wbGVzLCBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMpCiAgICAgeworICAgICAg
ICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLmNvbXBsZXhp
dHksIDApOworICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuYWRkRmllbGQoU3RyaW5n
cy5qc29uLmZyYW1lTGVuZ3RoLCAxKTsKKyAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVz
LmFkZEZpZWxkKFN0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXYsIDIpOworCiAgICAgICAg
IGNvbXBsZXhpdHlTYW1wbGVzLnNvcnQoZnVuY3Rpb24oYSwgYikgewotICAgICAgICAgICAgcmV0
dXJuIGEuY29tcGxleGl0eSAtIGIuY29tcGxleGl0eTsKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV4aXR5U2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oYSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkp
IC0gY29tcGxleGl0eVNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKGIsIFN0cmluZ3MuanNvbi5jb21w
bGV4aXR5KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gU2FtcGxlcyBhdmVyYWdlZCBiYXNl
ZCBvbiBjb21wbGV4aXR5CkBAIC0xNTksMjEgKzE2MywyMyBAQCBDb250cm9sbGVyID0gVXRpbGl0
aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICBmdW5jdGlvbiBhZGRTYW1wbGUoKSB7CiAgICAgICAg
ICAgICB2YXIgbWVhbiA9IGV4cGVyaW1lbnRBdENvbXBsZXhpdHkubWVhbigpOwogICAgICAgICAg
ICAgdmFyIHN0ZGV2ID0gZXhwZXJpbWVudEF0Q29tcGxleGl0eS5zdGFuZGFyZERldmlhdGlvbigp
OwotICAgICAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLnB1c2goewotICAgICAgICAg
ICAgICAgIGNvbXBsZXhpdHk6IGN1cnJlbnRDb21wbGV4aXR5LAotICAgICAgICAgICAgICAgIGZy
YW1lTGVuZ3RoOiBtZWFuLAotICAgICAgICAgICAgICAgIHN0ZGV2OiBzdGRldgotICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIHZhciBhdmVyYWdlU2FtcGxlID0gY29tcGxleGl0eUF2ZXJh
Z2VTYW1wbGVzLmNyZWF0ZURhdHVtKCk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNh
bXBsZXMucHVzaChhdmVyYWdlU2FtcGxlKTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdl
U2FtcGxlcy5zZXRGaWVsZEluRGF0dW0oYXZlcmFnZVNhbXBsZSwgU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHksIGN1cnJlbnRDb21wbGV4aXR5KTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdl
U2FtcGxlcy5zZXRGaWVsZEluRGF0dW0oYXZlcmFnZVNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1l
TGVuZ3RoLCBtZWFuKTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5zZXRG
aWVsZEluRGF0dW0oYXZlcmFnZVNhbXBsZSwgU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5zdGRl
diwgc3RkZXYpOwogICAgICAgICB9CiAgICAgICAgIGNvbXBsZXhpdHlTYW1wbGVzLmZvckVhY2go
ZnVuY3Rpb24oc2FtcGxlKSB7Ci0gICAgICAgICAgICBpZiAoc2FtcGxlLmNvbXBsZXhpdHkgIT0g
Y3VycmVudENvbXBsZXhpdHkpIHsKKyAgICAgICAgICAgIHZhciBzYW1wbGVDb21wbGV4aXR5ID0g
Y29tcGxleGl0eVNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmNv
bXBsZXhpdHkpOworICAgICAgICAgICAgaWYgKHNhbXBsZUNvbXBsZXhpdHkgIT0gY3VycmVudENv
bXBsZXhpdHkpIHsKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbXBsZXhpdHkgPiAtMSkK
ICAgICAgICAgICAgICAgICAgICAgYWRkU2FtcGxlKCk7CiAKLSAgICAgICAgICAgICAgICBjdXJy
ZW50Q29tcGxleGl0eSA9IHNhbXBsZS5jb21wbGV4aXR5OworICAgICAgICAgICAgICAgIGN1cnJl
bnRDb21wbGV4aXR5ID0gc2FtcGxlQ29tcGxleGl0eTsKICAgICAgICAgICAgICAgICBleHBlcmlt
ZW50QXRDb21wbGV4aXR5ID0gbmV3IEV4cGVyaW1lbnQ7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBleHBlcmltZW50QXRDb21wbGV4aXR5LnNhbXBsZShzYW1wbGUuZnJhbWVMZW5ndGgpOwor
ICAgICAgICAgICAgZXhwZXJpbWVudEF0Q29tcGxleGl0eS5zYW1wbGUoY29tcGxleGl0eVNhbXBs
ZXMuZ2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoKSk7CiAg
ICAgICAgIH0pOwogICAgICAgICAvLyBGaW5pc2ggb2ZmIHRoZSBsYXN0IG9uZQogICAgICAgICBh
ZGRTYW1wbGUoKTsKQEAgLTE5MiwyOSArMTk4LDM3IEBAIENvbnRyb2xsZXIgPSBVdGlsaXRpZXMu
Y3JlYXRlQ2xhc3MoCiAKICAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc10gPSB7
fTsKIAotICAgICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXMgPSBbXSwgY29tcGxleGl0eUF2ZXJh
Z2VTYW1wbGVzID0gW107CisgICAgICAgIHZhciBjb250cm9sbGVyU2FtcGxlcyA9IG5ldyBTYW1w
bGVEYXRhOworICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpz
b24uY29udHJvbGxlcl0gPSBjb250cm9sbGVyU2FtcGxlczsKKworICAgICAgICBjb250cm9sbGVy
U2FtcGxlcy5hZGRGaWVsZChTdHJpbmdzLmpzb24udGltZSwgMCk7CisgICAgICAgIGNvbnRyb2xs
ZXJTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCAxKTsKKyAgICAgICAg
Y29udHJvbGxlclNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoLCAyKTsK
KyAgICAgICAgY29udHJvbGxlclNhbXBsZXMuYWRkRmllbGQoU3RyaW5ncy5qc29uLnNtb290aGVk
RnJhbWVMZW5ndGgsIDMpOworCisgICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxlcyA9IG5ldyBT
YW1wbGVEYXRhKGNvbnRyb2xsZXJTYW1wbGVzLmZpZWxkTWFwKTsKICAgICAgICAgcmVzdWx0c1tT
dHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldID0gY29tcGxleGl0
eVNhbXBsZXM7Ci0gICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3Mu
anNvbi5jb21wbGV4aXR5QXZlcmFnZV0gPSBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXM7CiAKLSAg
ICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbnRyb2xs
ZXJdID0gc2FtcGxlc1swXS5tYXAoZnVuY3Rpb24odGltZXN0YW1wLCBpKSB7Ci0gICAgICAgICAg
ICB2YXIgc2FtcGxlID0gewotICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudCB0aW1lIGluIG1p
bGxpc2Vjb25kcwotICAgICAgICAgICAgICAgIHRpbWU6IHRpbWVzdGFtcCAtIHRoaXMuX3N0YXJ0
VGltZXN0YW1wLAotICAgICAgICAgICAgICAgIGNvbXBsZXhpdHk6IHNhbXBsZXNbMV1baV0KLSAg
ICAgICAgICAgIH07CisgICAgICAgIHNhbXBsZXNbMF0uZm9yRWFjaChmdW5jdGlvbih0aW1lc3Rh
bXAsIGkpIHsKKyAgICAgICAgICAgIHZhciBzYW1wbGUgPSBjb250cm9sbGVyU2FtcGxlcy5jcmVh
dGVEYXR1bSgpOworICAgICAgICAgICAgY29udHJvbGxlclNhbXBsZXMucHVzaChzYW1wbGUpOwor
ICAgICAgICAgICAgY29tcGxleGl0eVNhbXBsZXMucHVzaChzYW1wbGUpOworCisgICAgICAgICAg
ICAvLyBSZXByZXNlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMKKyAgICAgICAgICAgIGNvbnRyb2xs
ZXJTYW1wbGVzLnNldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi50aW1lLCB0aW1l
c3RhbXAgLSB0aGlzLl9zdGFydFRpbWVzdGFtcCk7CisgICAgICAgICAgICBjb250cm9sbGVyU2Ft
cGxlcy5zZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgc2Ft
cGxlc1sxXVtpXSk7CiAKICAgICAgICAgICAgIGlmIChpID09IDApCi0gICAgICAgICAgICAgICAg
c2FtcGxlLmZyYW1lTGVuZ3RoID0gMTAwMC82MDsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVy
U2FtcGxlcy5zZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uZnJhbWVMZW5ndGgs
IDEwMDAvNjApOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNhbXBsZS5mcmFt
ZUxlbmd0aCA9IHRpbWVzdGFtcCAtIHNhbXBsZXNbMF1baSAtIDFdOworICAgICAgICAgICAgICAg
IGNvbnRyb2xsZXJTYW1wbGVzLnNldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5m
cmFtZUxlbmd0aCwgdGltZXN0YW1wIC0gc2FtcGxlc1swXVtpIC0gMV0pOwogCiAgICAgICAgICAg
ICBpZiAoc2FtcGxlc1syXVtpXSAhPSAtMSkKLSAgICAgICAgICAgICAgICBzYW1wbGUuc21vb3Ro
ZWRGcmFtZUxlbmd0aCA9IHNhbXBsZXNbMl1baV07Ci0KLSAgICAgICAgICAgIGNvbXBsZXhpdHlT
YW1wbGVzLnB1c2goc2FtcGxlKTsKLSAgICAgICAgICAgIHJldHVybiBzYW1wbGU7CisgICAgICAg
ICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5n
cy5qc29uLnNtb290aGVkRnJhbWVMZW5ndGgsIHNhbXBsZXNbMl1baV0pOwogICAgICAgICB9LCB0
aGlzKTsKIAorICAgICAgICB2YXIgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzID0gbmV3IFNhbXBs
ZURhdGE7CisgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNv
bi5jb21wbGV4aXR5QXZlcmFnZV0gPSBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXM7CiAgICAgICAg
IHRoaXMuX3Byb2Nlc3NDb21wbGV4aXR5U2FtcGxlcyhjb21wbGV4aXR5U2FtcGxlcywgY29tcGxl
eGl0eUF2ZXJhZ2VTYW1wbGVzKTsKICAgICB9CiB9KTsKQEAgLTMzMSw3ICszNDUsNyBAQCBSYW1w
Q29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAogICAgICAg
ICB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9IDE7CiAKICAgICAgICAgLy8gQWZ0ZXIgdGhlIHRp
ZXIgcmFuZ2UgaXMgZGV0ZXJtaW5lZCwgZmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIHJhbXAgaXRl
cmF0aW9ucwotICAgICAgICB2YXIgbWluaW11bVJhbXBMZW5ndGggPSAyNTAwOworICAgICAgICB2
YXIgbWluaW11bVJhbXBMZW5ndGggPSAzMDAwOwogICAgICAgICB2YXIgdG90YWxSYW1wSXRlcmF0
aW9ucyA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IodGhpcy5fZW5kVGltZXN0YW1wIC8gbWluaW11
bVJhbXBMZW5ndGgpKTsKICAgICAgICAgLy8gR2l2ZSBhIGxpdHRsZSBleHRyYSByb29tIHRvIHJ1
biBzaW5jZSB0aGUgcmFtcHMgd29uJ3QgYmUgZXhhY3RseSB0aGlzIGxlbmd0aAogICAgICAgICB0
aGlzLl9yYW1wTGVuZ3RoID0gTWF0aC5mbG9vcigodGhpcy5fZW5kVGltZXN0YW1wIC0gdG90YWxS
YW1wSXRlcmF0aW9ucyAqIHRoaXMuaW50ZXJ2YWxTYW1wbGluZ0xlbmd0aCkgLyB0b3RhbFJhbXBJ
dGVyYXRpb25zKTsKQEAgLTM1NywxNSArMzcxLDE4IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0
aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgZnJhbWVMZW5ndGhEZXNpcmVkOiAx
MDAwLzYwLAogICAgIC8vIEFkZCBzb21lIHRvbGVyYW5jZTsgZnJhbWUgbGVuZ3RocyBzaG9ydGVy
IHRoYW4gdGhpcyBhcmUgY29uc2lkZXJlZCB0byBiZSBAIHRoZSBkZXNpcmVkIGZyYW1lIGxlbmd0
aAogICAgIGZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9sZDogMTAwMC81OCwKLSAgICAvLyBSZXBy
ZXNlbnRzIHRoZSBsb3dlciBib3VuZCB0aHJlc2hvbGQgaW4gb3JkZXIgdG8gZmluZCB0aGUgcmln
aHQgY29tcGxleGl0eSByYW5nZSB0byBzYW1wbGUKLSAgICBmcmFtZUxlbmd0aFNsb3dlc3RUaHJl
c2hvbGQ6IDEwMDAvMzAsCisgICAgLy8gRHVyaW5nIHRpZXIgc2FtcGxpbmcgZ2V0IGF0IGxlYXN0
IHRoaXMgc2xvdyB0byBmaW5kIHRoZSByaWdodCBjb21wbGV4aXR5IHJhbmdlCisgICAgZnJhbWVM
ZW5ndGhUaWVyVGhyZXNob2xkOiAxMDAwLzMwLAogICAgIC8vIFRyeSB0byBtYWtlIGVhY2ggcmFt
cCBnZXQgdGhpcyBzbG93IHNvIHRoYXQgd2UgY2FuIGNyb3NzIHRoZSBicmVhayBwb2ludAogICAg
IGZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkOiAxMDAwLzQ1LAorICAgIC8vIERvIG5vdCBs
ZXQgdGhlIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24gYXQgdGhlIG1heGltdW0gY29tcGxleGl0eSBv
ZiBhIHJhbXAgZ2V0IHNsb3dlciB0aGFuIHRoaXMgdGhyZXNob2xkCisgICAgZnJhbWVMZW5ndGhS
YW1wVXBwZXJUaHJlc2hvbGQ6IDEwMDAvMjAsCiAKICAgICBzdGFydDogZnVuY3Rpb24oc3RhcnRU
aW1lc3RhbXAsIHN0YWdlKQogICAgIHsKICAgICAgICAgQ29udHJvbGxlci5wcm90b3R5cGUuc3Rh
cnQuY2FsbCh0aGlzLCBzdGFydFRpbWVzdGFtcCwgc3RhZ2UpOwogICAgICAgICB0aGlzLl9yYW1w
U3RhcnRUaW1lc3RhbXAgPSAwOworICAgICAgICB0aGlzLmludGVydmFsU2FtcGxpbmdMZW5ndGgg
PSAxMDA7CiAgICAgfSwKIAogICAgIGRpZEZpbmlzaEludGVydmFsOiBmdW5jdGlvbih0aW1lc3Rh
bXAsIHN0YWdlLCBpbnRlcnZhbEF2ZXJhZ2VGcmFtZUxlbmd0aCkKQEAgLTM3Niw3ICszOTMsNyBA
QCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAog
CiAgICAgICAgICAgICB2YXIgY3VycmVudENvbXBsZXhpdHkgPSBzdGFnZS5jb21wbGV4aXR5KCk7
CiAgICAgICAgICAgICB2YXIgY3VycmVudEZyYW1lTGVuZ3RoID0gdGhpcy5fZnJhbWVMZW5ndGhF
c3RpbWF0b3IuZXN0aW1hdGU7Ci0gICAgICAgICAgICBpZiAoY3VycmVudEZyYW1lTGVuZ3RoIDwg
dGhpcy5mcmFtZUxlbmd0aFNsb3dlc3RUaHJlc2hvbGQpIHsKKyAgICAgICAgICAgIGlmIChjdXJy
ZW50RnJhbWVMZW5ndGggPCB0aGlzLmZyYW1lTGVuZ3RoVGllclRocmVzaG9sZCkgewogICAgICAg
ICAgICAgICAgIHZhciBpc0FuaW1hdGluZ0F0NjBGUFMgPSBjdXJyZW50RnJhbWVMZW5ndGggPCB0
aGlzLmZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9sZDsKICAgICAgICAgICAgICAgICB2YXIgaGFz
RmluaXNoZWRTbG93VGllclRlc3QgPSB0aW1lc3RhbXAgPiB0aGlzLl90aWVyU3RhcnRUaW1lc3Rh
bXAgKyB0aGlzLnRpZXJTbG93VGVzdExlbmd0aDsKIApAQCAtNDA0LDYgKzQyMSw3IEBAIFJhbXBD
b250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAKICAgICAg
ICAgICAgIHRoaXMuX2ZpbmlzaGVkVGllclNhbXBsaW5nID0gdHJ1ZTsKICAgICAgICAgICAgIHRo
aXMuaXNGcmFtZUxlbmd0aEVzdGltYXRvckVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHRo
aXMuaW50ZXJ2YWxTYW1wbGluZ0xlbmd0aCA9IDEyMDsKIAogICAgICAgICAgICAgLy8gRXh0ZW5k
IHRoZSB0ZXN0IGxlbmd0aCBzbyB0aGF0IHRoZSBmdWxsIHRlc3QgbGVuZ3RoIGlzIG1hZGUgb2Yg
dGhlIHJhbXBzCiAgICAgICAgICAgICB0aGlzLl9lbmRUaW1lc3RhbXAgKz0gdGltZXN0YW1wOwpA
QCAtNDE4LDcgKzQzNiw3IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNs
YXNzKENvbnRyb2xsZXIsCiAgICAgICAgICAgICAvLyBJbnRlcnBvbGF0ZSBhIG1heGltdW0gY29t
cGxleGl0eSB0aGF0IGdldHMgdXMgYXJvdW5kIHRoZSBsb3dlc3QgdGhyZXNob2xkLgogICAgICAg
ICAgICAgLy8gQXZvaWQgZG9pbmcgdGhpcyBjYWxjdWxhdGlvbiBpZiB3ZSBuZXZlciBnZXQgb3V0
IG9mIHRoZSBmaXJzdCB0aWVyICh3aGVyZSB0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkgaXMgdW5k
ZWZpbmVkKS4KICAgICAgICAgICAgIGlmICh0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkgJiYgdGhp
cy5fbGFzdFRpZXJDb21wbGV4aXR5ICE9IGN1cnJlbnRDb21wbGV4aXR5KQotICAgICAgICAgICAg
ICAgIHRoaXMuX21heGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChV
dGlsaXRpZXMucHJvZ3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoU2xvd2VzdFRocmVzaG9sZCwg
dGhpcy5fbGFzdFRpZXJGcmFtZUxlbmd0aCwgY3VycmVudEZyYW1lTGVuZ3RoKSwgdGhpcy5fbGFz
dFRpZXJDb21wbGV4aXR5LCBjdXJyZW50Q29tcGxleGl0eSkpOworICAgICAgICAgICAgICAgIHRo
aXMuX21heGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChVdGlsaXRp
ZXMucHJvZ3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoVGllclRocmVzaG9sZCwgdGhpcy5fbGFz
dFRpZXJGcmFtZUxlbmd0aCwgY3VycmVudEZyYW1lTGVuZ3RoKSwgdGhpcy5fbGFzdFRpZXJDb21w
bGV4aXR5LCBjdXJyZW50Q29tcGxleGl0eSkpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAgICAgLy8gSWYgdGhlIGJyb3dzZXIgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyB0aGUgbW9z
dCBjb21wbGV4IHZlcnNpb24gb2YgdGhlIHRlc3QsIHVzZSB0aGF0CiAgICAgICAgICAgICAgICAg
dGhpcy5fbWF4aW11bUNvbXBsZXhpdHkgPSBjdXJyZW50Q29tcGxleGl0eTsKQEAgLTQ2NCw3ICs0
ODIsNyBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9s
bGVyLAogICAgICAgICB2YXIgaW50ZXJ2YWxGcmFtZUxlbmd0aE1lYW4gPSB0aGlzLl9pbnRlcnZh
bEZyYW1lTGVuZ3RoRXN0aW1hdG9yLm1lYW4oKTsKICAgICAgICAgdmFyIGludGVydmFsRnJhbWVM
ZW5ndGhTdGFuZGFyZERldmlhdGlvbiA9IHRoaXMuX2ludGVydmFsRnJhbWVMZW5ndGhFc3RpbWF0
b3Iuc3RhbmRhcmREZXZpYXRpb24oKTsKIAotICAgICAgICBpZiAoaW50ZXJ2YWxGcmFtZUxlbmd0
aE1lYW4gPCB0aGlzLmZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9sZCAmJiB0aGlzLl9pbnRlcnZh
bEZyYW1lTGVuZ3RoRXN0aW1hdG9yLmNkZih0aGlzLmZyYW1lTGVuZ3RoRGVzaXJlZFRocmVzaG9s
ZCkgPiAuOTUpIHsKKyAgICAgICAgaWYgKGludGVydmFsRnJhbWVMZW5ndGhNZWFuIDwgdGhpcy5m
cmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQgJiYgdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0aEVz
dGltYXRvci5jZGYodGhpcy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQpID4gLjkpIHsKICAg
ICAgICAgICAgIHRoaXMuX3Bvc3NpYmxlTWluaW11bUNvbXBsZXhpdHkgPSBNYXRoLm1heCh0aGlz
Ll9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5LCBjdXJyZW50Q29tcGxleGl0eSk7CiAgICAgICAg
IH0gZWxzZSBpZiAoaW50ZXJ2YWxGcmFtZUxlbmd0aFN0YW5kYXJkRGV2aWF0aW9uID4gMikgewog
ICAgICAgICAgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgd2UgbWlnaHQgaGF2ZSBmb3VuZCBhIHBy
ZXZpb3VzIGludGVydmFsIHdoZXJlIDYwZnBzIHdhcyByZWFjaGVkLiBXZSBoaXQgYSBzaWduaWZp
Y2FudCBibGlwLApAQCAtNDc4LDI4ICs0OTYsMzkgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGlsaXRp
ZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAgdmFyIHByb2dyZXNzID0gKHRp
bWVzdGFtcCAtIHRoaXMuX3JhbXBTdGFydFRpbWVzdGFtcCkgLyB0aGlzLl9jdXJyZW50UmFtcExl
bmd0aDsKIAogICAgICAgICBpZiAocHJvZ3Jlc3MgPCAxKSB7Ci0gICAgICAgICAgICBzdGFnZS50
dW5lKE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAocHJvZ3Jlc3MsIHRoaXMuX21heGltdW1Db21w
bGV4aXR5LCB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkpIC0gY3VycmVudENvbXBsZXhpdHkpOwor
ICAgICAgICAgICAgLy8gUmVmcmFtZSBwcm9ncmVzcyBwZXJjZW50YWdlIHNvIHRoYXQgdGhlIGxh
c3QgaW50ZXJ2YWwgb2YgdGhlIHJhbXAgY2FuIHNhbXBsZSBhdCBtaW5pbXVtIGNvbXBsZXhpdHkK
KyAgICAgICAgICAgIHByb2dyZXNzID0gKHRpbWVzdGFtcCAtIHRoaXMuX3JhbXBTdGFydFRpbWVz
dGFtcCkgLyAodGhpcy5fY3VycmVudFJhbXBMZW5ndGggLSB0aGlzLmludGVydmFsU2FtcGxpbmdM
ZW5ndGgpOworICAgICAgICAgICAgc3RhZ2UudHVuZShNYXRoLm1heCh0aGlzLl9taW5pbXVtQ29t
cGxleGl0eSwgTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChwcm9ncmVzcywgdGhpcy5fbWF4aW11
bUNvbXBsZXhpdHksIHRoaXMuX21pbmltdW1Db21wbGV4aXR5KSkpIC0gY3VycmVudENvbXBsZXhp
dHkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgdmFyIHJlZ3Jl
c3Npb24gPSBuZXcgUmVncmVzc2lvbih0aGlzLl9zYW1wbGVyLnNhbXBsZXMsIHRoaXMuX2dldENv
bXBsZXhpdHksIHRoaXMuX2dldEZyYW1lTGVuZ3RoLAotICAgICAgICAgICAgdGhpcy5fc2FtcGxl
ci5zYW1wbGVDb3VudCAtIDEsIHRoaXMuX3JhbXBTdGFydEluZGV4LCB0aGlzLmZyYW1lTGVuZ3Ro
RGVzaXJlZCk7CisgICAgICAgICAgICB0aGlzLl9zYW1wbGVyLnNhbXBsZUNvdW50IC0gMSwgdGhp
cy5fcmFtcFN0YXJ0SW5kZXgsIHsgZGVzaXJlZEZyYW1lTGVuZ3RoOiB0aGlzLmZyYW1lTGVuZ3Ro
RGVzaXJlZCB9KTsKICAgICAgICAgdGhpcy5fcmFtcFJlZ3Jlc3Npb25zLnB1c2gocmVncmVzc2lv
bik7CiAKLSAgICAgICAgdmFyIGludGVycG9sYXRlZEZyYW1lTGVuZ3RoID0gcmVncmVzc2lvbi52
YWx1ZUF0KHRoaXMuX21heGltdW1Db21wbGV4aXR5KTsKLSAgICAgICAgaWYgKGludGVycG9sYXRl
ZEZyYW1lTGVuZ3RoIDwgdGhpcy5mcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZCkKLSAgICAg
ICAgICAgIHRoaXMuX3Bvc3NpYmxlTWF4aW11bUNvbXBsZXhpdHkgPSBNYXRoLmZsb29yKFV0aWxp
dGllcy5sZXJwKFV0aWxpdGllcy5wcm9ncmVzc1ZhbHVlKHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93
ZXJUaHJlc2hvbGQsIGludGVycG9sYXRlZEZyYW1lTGVuZ3RoLCB0aGlzLl9sYXN0VGllckZyYW1l
TGVuZ3RoKSwgdGhpcy5fbWF4aW11bUNvbXBsZXhpdHksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0
eSkpOworICAgICAgICB2YXIgZnJhbWVMZW5ndGhBdE1heENvbXBsZXhpdHkgPSByZWdyZXNzaW9u
LnZhbHVlQXQodGhpcy5fbWF4aW11bUNvbXBsZXhpdHkpOworICAgICAgICBpZiAoZnJhbWVMZW5n
dGhBdE1heENvbXBsZXhpdHkgPCB0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkKQor
ICAgICAgICAgICAgdGhpcy5fcG9zc2libGVNYXhpbXVtQ29tcGxleGl0eSA9IE1hdGguZmxvb3Io
VXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dyZXNzVmFsdWUodGhpcy5mcmFtZUxlbmd0aFJh
bXBMb3dlclRocmVzaG9sZCwgZnJhbWVMZW5ndGhBdE1heENvbXBsZXhpdHksIHRoaXMuX2xhc3RU
aWVyRnJhbWVMZW5ndGgpLCB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSwgdGhpcy5fbGFzdFRpZXJD
b21wbGV4aXR5KSk7CisgICAgICAgIC8vIElmIHRoZSByZWdyZXNzaW9uIGRvZXNuJ3QgZml0IHRo
ZSBmaXJzdCBzZWdtZW50IGF0IGFsbCwga2VlcCB0aGUgbWluaW11bSBib3VuZCBhdCAxCisgICAg
ICAgIGlmICgodGltZXN0YW1wIC0gdGhpcy5fc2FtcGxlci5zYW1wbGVzWzBdW3RoaXMuX3NhbXBs
ZXIuc2FtcGxlQ291bnQgLSByZWdyZXNzaW9uLm4xXSkgLyB0aGlzLl9jdXJyZW50UmFtcExlbmd0
aCA8IC4yNSkKKyAgICAgICAgICAgIHRoaXMuX3Bvc3NpYmxlTWluaW11bUNvbXBsZXhpdHkgPSAx
OwogCi0gICAgICAgIGludGVycG9sYXRlZEZyYW1lTGVuZ3RoID0gcmVncmVzc2lvbi52YWx1ZUF0
KHRoaXMuX21pbmltdW1Db21wbGV4aXR5KTsKICAgICAgICAgdGhpcy5fbWluaW11bUNvbXBsZXhp
dHlFc3RpbWF0b3Iuc2FtcGxlKHRoaXMuX3Bvc3NpYmxlTWluaW11bUNvbXBsZXhpdHkpOwotCi0g
ICAgICAgIHRoaXMuX2NoYW5nZVBvaW50RXN0aW1hdG9yLnNhbXBsZShyZWdyZXNzaW9uLmNvbXBs
ZXhpdHkpOwotCiAgICAgICAgIHRoaXMuX21pbmltdW1Db21wbGV4aXR5ID0gTWF0aC5yb3VuZCh0
aGlzLl9taW5pbXVtQ29tcGxleGl0eUVzdGltYXRvci5tZWFuKCkpOwotICAgICAgICB0aGlzLl9t
YXhpbXVtQ29tcGxleGl0eSA9IE1hdGgucm91bmQodGhpcy5fbWluaW11bUNvbXBsZXhpdHkgKwot
ICAgICAgICAgICAgTWF0aC5tYXgoNSwKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3NzaWJsZU1h
eGltdW1Db21wbGV4aXR5IC0gdGhpcy5fbWluaW11bUNvbXBsZXhpdHksCi0gICAgICAgICAgICAg
ICAgKHRoaXMuX2NoYW5nZVBvaW50RXN0aW1hdG9yLm1lYW4oKSAtIHRoaXMuX21pbmltdW1Db21w
bGV4aXR5KSAqIDIpKTsKKworICAgICAgICBpZiAoZnJhbWVMZW5ndGhBdE1heENvbXBsZXhpdHkg
PCB0aGlzLmZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhyZXNob2xkKSB7CisgICAgICAgICAgICB0aGlz
Ll9jaGFuZ2VQb2ludEVzdGltYXRvci5zYW1wbGUocmVncmVzc2lvbi5jb21wbGV4aXR5KTsKKyAg
ICAgICAgICAgIC8vIElkZWFsbHkgd2UnbGwgdGFyZ2V0IHRoZSBjaGFuZ2UgcG9pbnQgaW4gdGhl
IG1pZGRsZSBvZiB0aGUgcmFtcC4gSWYgdGhlIHJhbmdlIG9mIHRoZSByYW1wIGlzIHRvbyBzbWFs
bCwgdGhlcmUgaXNuJ3QgZW5vdWdoCisgICAgICAgICAgICAvLyByYW5nZSBhbG9uZyB0aGUgY29t
cGxleGl0eSAoeCkgYXhpcyBmb3IgYSBnb29kIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24gdG8gYmUg
bWFkZSwgc28gZm9yY2UgYXQgbGVhc3QgYSByYW5nZSBvZiA1CisgICAgICAgICAgICAvLyBwYXJ0
aWNsZXMuIE1ha2UgaXQgcG9zc2libGUgdG8gaW5jcmVhc2UgdGhlIG1heGltdW0gY29tcGxleGl0
eSBpbiBjYXNlIHVuZXhwZWN0ZWQgbm9pc2UgY2FwcyB0aGUgcmVncmVzc2lvbiB0b28gbG93Lgor
ICAgICAgICAgICAgdGhpcy5fbWF4aW11bUNvbXBsZXhpdHkgPSBNYXRoLnJvdW5kKHRoaXMuX21p
bmltdW1Db21wbGV4aXR5ICsKKyAgICAgICAgICAgICAgICBNYXRoLm1heCg1LAorICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9wb3NzaWJsZU1heGltdW1Db21wbGV4aXR5IC0gdGhpcy5fbWluaW11
bUNvbXBsZXhpdHksCisgICAgICAgICAgICAgICAgICAgICh0aGlzLl9jaGFuZ2VQb2ludEVzdGlt
YXRvci5tZWFuKCkgLSB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkgKiAyKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgc2xvd2VzdCBzYW1wbGVzIHdlaWdoZWQgdGhlIHJl
Z3Jlc3Npb24gdG9vIGhlYXZpbHkKKyAgICAgICAgICAgIHRoaXMuX21heGltdW1Db21wbGV4aXR5
ID0gTWF0aC5tYXgoTWF0aC5yb3VuZCguOCAqIHRoaXMuX21heGltdW1Db21wbGV4aXR5KSwgdGhp
cy5fbWluaW11bUNvbXBsZXhpdHkgKyA1KTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIE5leHQg
cmFtcAogICAgICAgICBzdGFnZS50dW5lKHRoaXMuX21heGltdW1Db21wbGV4aXR5IC0gc3RhZ2Uu
Y29tcGxleGl0eSgpKTsKQEAgLTUyOSwyMSArNTU4LDIyIEBAIFJhbXBDb250cm9sbGVyID0gVXRp
bGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAgICAgICByZXN1bHRzW1N0
cmluZ3MuanNvbi5tYXJrc11bbWFya05hbWVdLnRpbWUgLT0gc3RhcnRUaW1lc3RhbXA7CiAgICAg
ICAgIH0KIAotICAgICAgICB2YXIgdGltZVNhbXBsZXMgPSByZXN1bHRzW1N0cmluZ3MuanNvbi5z
YW1wbGVzXVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl07Ci0gICAgICAgIHRpbWVTYW1wbGVzLmZv
ckVhY2goZnVuY3Rpb24odGltZVNhbXBsZSkgewotICAgICAgICAgICAgdGltZVNhbXBsZS50aW1l
IC09IHN0YXJ0VGltZXN0YW1wOworICAgICAgICB2YXIgY29udHJvbGxlclNhbXBsZXMgPSByZXN1
bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl07CisgICAg
ICAgIGNvbnRyb2xsZXJTYW1wbGVzLmZvckVhY2goZnVuY3Rpb24odGltZVNhbXBsZSkgeworICAg
ICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKHRpbWVTYW1wbGUsIFN0
cmluZ3MuanNvbi50aW1lLCBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0odGltZVNh
bXBsZSwgU3RyaW5ncy5qc29uLnRpbWUpIC0gc3RhcnRUaW1lc3RhbXApOwogICAgICAgICB9KTsK
IAogICAgICAgICAvLyBBZ2dyZWdhdGUgYWxsIG9mIHRoZSByYW1wcyBpbnRvIG9uZSBiaWcgY29t
cGxleGl0eS1mcmFtZUxlbmd0aCBkYXRhc2V0Ci0gICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxl
cyA9IFtdLCBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMgPSBbXTsKKyAgICAgICAgdmFyIGNvbXBs
ZXhpdHlTYW1wbGVzID0gbmV3IFNhbXBsZURhdGEoY29udHJvbGxlclNhbXBsZXMuZmllbGRNYXAp
OwogICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29t
cGxleGl0eV0gPSBjb21wbGV4aXR5U2FtcGxlczsKLSAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpz
b24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlXSA9IGNvbXBsZXhpdHlB
dmVyYWdlU2FtcGxlczsKIAogICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi5jb250cm9sbGVy
XSA9IFtdOwogICAgICAgICB0aGlzLl9yYW1wUmVncmVzc2lvbnMuZm9yRWFjaChmdW5jdGlvbihy
YW1wKSB7CiAgICAgICAgICAgICB2YXIgc3RhcnRJbmRleCA9IHJhbXAuc3RhcnRJbmRleCwgZW5k
SW5kZXggPSByYW1wLmVuZEluZGV4OwotICAgICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IHRpbWVT
YW1wbGVzW3N0YXJ0SW5kZXhdLnRpbWUsIGVuZFRpbWUgPSB0aW1lU2FtcGxlc1tlbmRJbmRleF0u
dGltZTsKLSAgICAgICAgICAgIHZhciBzdGFydENvbXBsZXhpdHkgPSB0aW1lU2FtcGxlc1tzdGFy
dEluZGV4XS5jb21wbGV4aXR5LCBlbmRDb21wbGV4aXR5ID0gdGltZVNhbXBsZXNbZW5kSW5kZXhd
LmNvbXBsZXhpdHk7CisgICAgICAgICAgICB2YXIgc3RhcnRUaW1lID0gY29udHJvbGxlclNhbXBs
ZXMuZ2V0RmllbGRJbkRhdHVtKHN0YXJ0SW5kZXgsIFN0cmluZ3MuanNvbi50aW1lKTsKKyAgICAg
ICAgICAgIHZhciBlbmRUaW1lID0gY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKGVu
ZEluZGV4LCBTdHJpbmdzLmpzb24udGltZSk7CisgICAgICAgICAgICB2YXIgc3RhcnRDb21wbGV4
aXR5ID0gY29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHN0YXJ0SW5kZXgsIFN0cmlu
Z3MuanNvbi5jb21wbGV4aXR5KTsKKyAgICAgICAgICAgIHZhciBlbmRDb21wbGV4aXR5ID0gY29u
dHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKGVuZEluZGV4LCBTdHJpbmdzLmpzb24uY29t
cGxleGl0eSk7CiAKICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uID0ge307CiAgICAgICAgICAg
ICByZXN1bHRzW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXS5wdXNoKHJlZ3Jlc3Npb24pOwpAQCAt
NTYyLDEwICs1OTIsMTQgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xh
c3MoQ29udHJvbGxlciwKICAgICAgICAgICAgIHJlZ3Jlc3Npb25bU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHldID0gcmFtcC5jb21wbGV4aXR5OwogICAgICAgICAgICAgcmVncmVzc2lvbltTdHJpbmdz
Lmpzb24ucmVncmVzc2lvbnMuc3RhcnRJbmRleF0gPSBzdGFydEluZGV4OwogICAgICAgICAgICAg
cmVncmVzc2lvbltTdHJpbmdzLmpzb24ucmVncmVzc2lvbnMuZW5kSW5kZXhdID0gZW5kSW5kZXg7
CisgICAgICAgICAgICByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5yZWdyZXNzaW9ucy5wcm9maWxl
XSA9IHJhbXAucHJvZmlsZTsKIAogICAgICAgICAgICAgZm9yICh2YXIgaiA9IHN0YXJ0SW5kZXg7
IGogPD0gZW5kSW5kZXg7ICsraikKLSAgICAgICAgICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5w
dXNoKHRpbWVTYW1wbGVzW2pdKTsKKyAgICAgICAgICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5w
dXNoKGNvbnRyb2xsZXJTYW1wbGVzLmF0KGopKTsKICAgICAgICAgfSk7CisKKyAgICAgICAgdmFy
IGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyA9IG5ldyBTYW1wbGVEYXRhOworICAgICAgICByZXN1
bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2Vd
ID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzOwogICAgICAgICB0aGlzLl9wcm9jZXNzQ29tcGxl
eGl0eVNhbXBsZXMoY29tcGxleGl0eVNhbXBsZXMsIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyk7
CiAgICAgfQogfSk7CkBAIC01NzgsOCArNjEyLDkgQEAgUmFtcDMwQ29udHJvbGxlciA9IFV0aWxp
dGllcy5jcmVhdGVTdWJjbGFzcyhSYW1wQ29udHJvbGxlciwKIAogICAgIGZyYW1lTGVuZ3RoRGVz
aXJlZDogMTAwMC8zMCwKICAgICBmcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQ6IDEwMDAvMjks
Ci0gICAgZnJhbWVMZW5ndGhTbG93ZXN0VGhyZXNob2xkOiAxMDAwLzIwLAotICAgIGZyYW1lTGVu
Z3RoUmFtcExvd2VyVGhyZXNob2xkOiAxMDAwLzIwCisgICAgZnJhbWVMZW5ndGhUaWVyVGhyZXNo
b2xkOiAxMDAwLzIwLAorICAgIGZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkOiAxMDAwLzIw
LAorICAgIGZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhyZXNob2xkOiAxMDAwLzEyCiB9KTsKIAogU3Rh
Z2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCkBAIC03OTcsNyArODMyLDEwIEBAIEJlbmNobWFy
ayA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgc3dpdGNoIChvcHRpb25zWyJ0aW1l
LW1lYXN1cmVtZW50Il0pCiAgICAgICAgIHsKICAgICAgICAgY2FzZSAicGVyZm9ybWFuY2UiOgot
ICAgICAgICAgICAgdGhpcy5fZ2V0VGltZXN0YW1wID0gcGVyZm9ybWFuY2Uubm93LmJpbmQocGVy
Zm9ybWFuY2UpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5wZXJmb3JtYW5jZSAmJiB3aW5kb3cu
cGVyZm9ybWFuY2Uubm93KQorICAgICAgICAgICAgICAgIHRoaXMuX2dldFRpbWVzdGFtcCA9IHBl
cmZvcm1hbmNlLm5vdy5iaW5kKHBlcmZvcm1hbmNlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0aGlzLl9nZXRUaW1lc3RhbXAgPSBEYXRlLm5vdzsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgIHRoaXMuX2dldFRpbWVzdGFt
cCA9IERhdGUubm93OwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL3Jlc291cmNlcy9zdGFnZS5jc3MgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvcmVzb3VyY2VzL3N0YWdlLmNzcwppbmRleCBlZGY3MTQxLi4wYjZmZmRjIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNzcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNz
cwpAQCAtNyw3ICs3LDcgQEAgYm9keSB7CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDA7
CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOwotICAgIGZvbnQtZmFt
aWx5OiAtYXBwbGUtc3lzdGVtLCAiSGVsdmV0aWNhIE5ldWUiLCBIZWx2ZXRpY2EsIFZlcmRhbmEs
IHNhbnMtc2VyaWY7CisgICAgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGlj
YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsKIH0KIAogI3N0YWdlIHsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
OGMyMGQ1My4uOGViNTQ1YSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMjUgQEAKKzIwMTYt
MDYtMTYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmVtZW50
cyB0byBBbmltb21ldGVyIGJlbmNobWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NzM4CisKKyAgICAgICAgUHJvdmlzaW9uYWxseSByZXZpZXdl
ZCBieSBTYWlkIEFib3UtSGFsbGF3YS4KKworICAgICAgICBVcGRhdGUgdGVzdHMuCisKKyAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWw6IEVuc3VyZSBvbmx5IHRocmVl
IHRleHQgc2l6ZXMgZm9yCisgICAgICAgIHRoZSB0aHJlZSBjYW52YXNlcy4KKyAgICAgICAgKiBB
bmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sOiBSZWR1Y2UgdGhlIHRleHQgc2l6ZSB0
byBmaXQgd2l0aCBzbWFsbGVyCisgICAgICAgIHBhcnRpY2xlIHNpemVzLgorICAgICAgICAqIEFu
aW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9mb2N1cy5qczogUmVtb3ZlIHRoZSBxdWFk
cmF0aWMgZGlzdHJpYnV0aW9uIGZvcgorICAgICAgICBwYXJ0aWNsZSBzaXplcywgYW5kIG1ha2Ug
aXQgbGluZWFyLiBSZWR1Y2UgdGhlIHNpemUgdmFyaWFuY2UuIFNodWZmbGUgdGhlIG1hdGggdG8K
KyAgICAgICAgcmVkdWNlIHNvbWUgY2FsY3VsYXRpb25zIHBlciBmcmFtZS4gRml4IHRoZSBwbGFj
ZW1lbnQgb2YgdGhlIHBhcnRpY2xlcyB3aGljaCBtaWdodAorICAgICAgICBvdGhlcndpc2UgYmUg
Y3VsbGVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFn
ZS1kYXRhLmpzOiBSZWR1Y2UgdGhlIHBhcnRpY2xlIHNpemUKKyAgICAgICAgdG8gZW5jb3VyYWdl
IGxhcmdlciBzY29yZXMuCisKKyAgICAgICAgSW5jbHVkZSBjb25maWRlbmNlIGludGVydmFsIGZv
ciB0aGUgZmluYWwgc2NvcmUsIGFuZCBzdG9yZSB0aGUgY2FudmFzCisgICAgICAgIHNpemUgaW4g
dGhlIHNlcmlhbGl6YXRpb24gc28gdGhhdCBpdCBpcyBhY2N1cmF0ZWx5IHNob3duIGluIHJlc3Vs
dHMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBBZGQgYSAiY29uZmlk
ZW5jZSIgZGl2LgorICAgICAgICAqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDogRGl0dG8uIENvbnZl
cnQgIm1lYW4iIHRvICJjb25maWRlbmNlIi4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogTG9vayBhdCBvcHRpb25zLCBhbmQKKyAgICAg
ICAgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaXMgaW5jbHVkZWQsIHVwZGF0ZSB0aGUgYm9keSBjbGFz
cyBiYXNlZCBvbiBpdAorICAgICAgICAoc2ltaWxhciB0byB3aGF0IHdlIGRvIHdoZW4gd2UgZmly
c3QgbG9hZCB0aGUgcGFnZSkuIFRoYXQgd2F5LCBpZiB5b3UKKyAgICAgICAgZHJhZy1hbmQtZHJv
cCBwcmV2aW91cyByZXN1bHRzIGluLCB0aGF0IGNvbmZpZ3VyYXRpb24gaXMgcmVmbGVjdGVkIGlu
CisgICAgICAgIHRoZSBkYXNoYm9hcmQuIFNob3cgdGhlIGZ1bGwgY29uZmlkZW5jZSBpbnRlcnZh
bC4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21l
dGVyLmNzczoKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRl
ci5jc3M6CisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRl
ci5qczoKKyAgICAgICAgKF9wcm9jZXNzRGF0YSk6IFByb3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBp
bnRlcnZhbCB2YWx1ZXMgb3V0IGFuZCBjYWxjdWxhdGUKKyAgICAgICAgdGhlIGxvd2VyIGFuZCB1
cHBlciBib3VuZHMuIEZvciBub3csIHNob3J0Y3V0IHRoZSBhZ2dyZWdhdGUgY2FsY3VsYXRpb24s
CisgICAgICAgIHNpbmNlIHdlIG9ubHkgZ28gdGhyb3VnaCBvbmUgaXRlcmF0aW9uLgorICAgICAg
ICAodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2NvcmUpOiBQcm9wYWdhdGUgdGhlIGNvbmZp
ZGVuY2UgaW50ZXJ2YWwgb3V0CisgICAgICAgIHRvIGJlIG5leHQgdG8gdGhlIHNjb3JlLiBEZXBl
bmRpbmcgb24gdGhlIGNvbnRyb2xsZXIgdGhlc2UgdmFsdWVzIGFyZQorICAgICAgICBjYWxjdWxh
dGVkIGRpZmZlcmVudGx5LgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuX2dldFJlc3VsdHNQ
cm9wZXJ0eSk6IENvbnZlbmllbmNlIGZ1bmN0aW9uLgorICAgICAgICAodGhpcy5fcHJvY2Vzc0Rh
dGEuZ2V0IHNjb3JlKTogUmVmYWN0b3IuCisgICAgICAgICh0aGlzLl9wcm9jZXNzRGF0YS5nZXQg
c2NvcmVMb3dlckJvdW5kKTogR2V0IHRoZSBhZ2dyZWdhdGUgbG93ZXIgYm91bmQuCisgICAgICAg
ICh0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVVcHBlckJvdW5kKTogR2V0IHRoZSBhZ2dyZWdh
dGUgdXBwZXIgYm91bmQuCisgICAgICAgICh3aW5kb3cuc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rp
b25TY29yZSk6CisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5fc3RhcnRCZW5j
aG1hcmspOiBXaGVuIHRoZSBiZW5jaG1hcmsgc3RhcnRzLCBub3RlCisgICAgICAgIHRoZSBjYW52
YXMgc2l6ZSBhbmQgYWRkIGl0IHRvIG9wdGlvbnMuIFRoYXQgd2F5IGl0IHdpbGwgYmUgYXV0b21h
dGljYWxseSBiZQorICAgICAgICBzZXJpYWxpemVkLgorICAgICAgICAod2luZG93LmJlbmNobWFy
a0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMpOiBJbmNsdWRlIHRoZSBtYXhpbXVtIGRldmlhdGlvbgor
ICAgICAgICBwZXJjZW50YWdlLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5l
ci9saW5lcy5zdmc6IE1ha2UgdGhlIGJhY2tncm91bmQgbGluZSB1cCB3aXRoIHRoZQorICAgICAg
ICBza2V3LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczoK
KyAgICAgICAgKEhlYWRlcnMuZGV0YWlscy50ZXh0KTogUmVmYWN0b3IuCisgICAgICAgICogQW5p
bW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qczoKKyAgICAgICAgKFN0YXRpc3RpY3MubGFy
Z2VzdERldmlhdGlvblBlcmNlbnRhZ2UpOiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjYWxjdWxh
dGUKKyAgICAgICAgdGhlIGRldmlhdGlvbiBwZXJjZW50YWdlIG9uIGVpdGhlciBlbmQgYW5kIHJl
dHVybiB0aGUgbGFyZ2VzdCBkZXZpYXRpb24uCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJj
ZXMvc3RyaW5ncy5qczoKKworICAgICAgICBQcm92aWRlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHdp
dGhvdXQgcGVyZm9ybWFuY2Uubm93LgorCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNv
dXJjZXMvbWFpbi5qczoKKyAgICAgICAgKEJlbmNobWFyay5VdGlsaXRpZXMuY3JlYXRlQ2xhc3Mp
OiBGYWxsYmFjayB0byBEYXRlLm5vdyBmb3IgcGxhdGZvcm1zCisgICAgICAgIHRoYXQgbWlnaHQg
bm90IHN1cHBvcnQgcGVyZm9ybWFuY2Uubm93LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzOiBTdHlsZSB1cGRhdGUuCisKKyAgICAgICAg
QWxsb3cgc3BlY2lmeWluZyBhIHJlZ3Jlc3Npb24gcHJvZmlsZSB0byB1c2UgaW5zdGVhZCBvZiB0
YWtpbmcgdGhlIG9uZQorICAgICAgICB3aXRoIHRoZSBsb3dlc3QgZXJyb3IuCisKKyAgICAgICAg
QWRkcmVzcyBhbiBpc3N1ZSBpbiB0aGUgZm9jdXMgdGVzdCB3aGVuIHRoZSByZWdyZXNzaW9uIGNh
bGN1bGF0ZWQgZW5kcworICAgICAgICB1cCBvdmVyZXN0aW1hdGluZyB0aGUgY2hhbmdlIHBvaW50
LCBjYXVzaW5nIGEgY2FzY2FkZSBvZiB0b3VnaGVyCisgICAgICAgIHJhbXBzLiBUaGUgcmVhc29u
IGJlaGluZCB0aGlzIGlzIHRoYXQgYXQgbWF4IGNvbXBsZXhpdHkgb2YgYW4gaW5pdGlhbAorICAg
ICAgICByYW1wLCB0aGUgZnJhbWUgbGVuZ3RoIGlzIHZlcnkgaGlnaCwgYW5kIGl0IGluZmx1ZW5j
ZXMgdGhlIHNlY29uZAorICAgICAgICBzZWdtZW50IG9mIHRoZSBwaWVjZXdpc2UgcmVncmVzc2lv
biBzdHJvbmdseSwgY2F1c2luZyBpdCB0byBiZSB2ZXJ5CisgICAgICAgIHN0ZWVwLiBBcyBhIHJl
c3VsdCwgdGhlIGZpcnN0IHNlZ21lbnQsIGV4cGVjdGVkIHRvIGJlIGZsYXQsIGVuZHMgdXAKKyAg
ICAgICAgY292ZXJpbmcgYSBoaWdoZXIgcmFuZ2Ugb2YgY29tcGxleGl0eS4gVGhhdCBtYWtlcyB0
aGUgY2hhbmdlIHBvaW50CisgICAgICAgIG11Y2ggaGlnaGVyIHRoYW4gaXQgc2hvdWxkIGJlLiBU
byBhdm9pZCB0aGlzLCB3ZSB3aWxsIGFkZCBhIHNhbml0eQorICAgICAgICBjaGVjayBvbiB0aGUg
bWF4aW11bSB2YWx1ZSBvZiB0aGUgcmFtcC4gSWYgdGhlIHJlZ3Jlc3Npb24ncyBwcm9qZWN0ZWQK
KyAgICAgICAgdmFsdWUgYXQgdGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUgY3VycmVudCBy
YW1wIGlzIHZlcnkgc2xvdyAobGVzcworICAgICAgICB0aGFuIDIwIGZwcyksIDEpIHJlZHVjZSB0
aGUgbWF4aW11bSBjb21wbGV4aXR5IGJ5IDIwJSwgYW5kIDIpIGRvIG5vdAorICAgICAgICBpbmNs
dWRlIHRoZSByZWdyZXNzaW9uJ3MgY2hhbmdlIHBvaW50IGluIHRoZSBjaGFuZ2UgcG9pbnQgZXN0
aW1hdG9yLgorICAgICAgICBUaGF0IGVzdGltYXRvciBpcyB1c2VkIGFzIHRoZSBtaWRwb2ludCBv
ZiB0aGUgbmV4dCByYW1wLCBhbmQgaW5jbHVkaW5nCisgICAgICAgIHRoZSBjaGFuZ2UgcG9pbnQg
ZnJvbSBhIHBvb3IgcmVncmVzc2lvbiBjYW4gYmFrZSBpbiB0aGUgZXJyb3IuIFRoZQorICAgICAg
ICBjb250cm9sbGVyIGFscmVhZHkga25vd3MgaG93IHRvIGFkanVzdCBmb3IgcmFtcHMgdGhhdCBh
cmUgdG9vIGVhc3kgZm9yCisgICAgICAgIHRoZSBzeXN0ZW0uCisKKyAgICAgICAgKiBBbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKHRoaXMuX3Byb2Nl
c3NEYXRhLmZpbmRSZWdyZXNzaW9uKTogVGFrZXMgYSBwcmVmZXJyZWQgcHJvZmlsZSBhbmQgZ2l2
ZXMgdGhhdCB0bworICAgICAgICBSZWdyZXNzaW9uLgorICAgICAgICAodGhpcy5fcHJvY2Vzc0Rh
dGEuY2FsY3VsYXRlU2NvcmUpOiBXaXRoIHRoZSByYW1wIGNvbnRyb2xsZXIsIHRha2UgdGhlIHBy
b2ZpbGUKKyAgICAgICAgb2YgdGhlIHJhbXAgdGhhdCB3YXMgdXNlZCB0aGUgbW9zdCB3aGVuIGNh
bGN1bGF0aW5nIHRoZSByYW1wJ3MgcmVncmVzc2lvbi4gVGhhdAorICAgICAgICBwcm9maWxlIGlz
IHdoYXQgaXMgdXNlZCBmb3IgdGhlIHRlc3QncyBzY29yZS4KKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzOgorICAgICAgICAoUmVncmVzc2lvbi5VdGlsaXRpZXMu
Y3JlYXRlQ2xhc3MpOiBVcGRhdGUgdG8gdGFrZSBhbiBvcHRpb25zIG9iamVjdCB3aGljaCBjYW4K
KyAgICAgICAgc3BlY2lmeSBhIHByb2ZpbGUgdG8gY2FsY3VsYXRlIHdpdGguIE90aGVyd2lzZSBp
dCB3aWxsIGNvbnRpbnVlIHRvIHVzZSBib3RoIGFuZAorICAgICAgICBzZWxlY3QgdGhlIG9uZSB3
aXRoIHRoZSBsb3dlciBlcnJvci4KKyAgICAgICAgKF9jYWxjdWxhdGVSZWdyZXNzaW9uKTogRml4
IGFuIGlzc3VlIHdoZXJlIHdlIGNsYWltIDAgZXJyb3IgaWYgdGhlIHJlZ3Jlc3Npb24KKyAgICAg
ICAgY2FsY3VsYXRpb24gZmFpbHMgZHVlIHRvIGRpdmlkZS1ieS16ZXJvLiBJbnN0ZWFkIHJlamVj
dCB0aGF0IHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24KKyAgICAgICAgYnkgZ2l2aW5nIGl0IE51bWJl
ci5NQVhfVkFMVUUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczog
TmV3IHN0cmluZ3MgZm9yIG1hcmtpbmcgYSByZWdyZXNzaW9uIGFzIGZsYXQKKyAgICAgICAgb3Ig
c2xvcGUuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAg
ICAgICAgKFJhbXBDb250cm9sbGVyKTogUmVuYW1lIHRoZSB0aHJlc2hvbGRzIGZvciBjbGFyaXR5
LiBBZGQgYSB0aHJlc2hvbGQgdGhhdCwgaWYKKyAgICAgICAgZXhjZWVkZWQsIHdpbGwgbG93ZXIg
dGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUgbmV4dCByYW1wLgorICAgICAgICAodHVuZSk6
IFJlbGF4IHRoZSBjZGYgY2hlY2sgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgaW50ZXJ2YWwgZGVm
aW5pdGVseSBmYWxscyBpbgorICAgICAgICB0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGggdGhyZXNo
b2xkLgorICAgICAgICAocHJvY2Vzc1NhbXBsZXMpOiBJbmNsdWRlIHRoZSBwcm9maWxlIGluIHRo
ZSByYW1wLgorCisgICAgICAgIFVwZGF0ZSByYW1wIGNvbnRyb2xsZXIgdGVzdC4gSW5jcmVhc2Ug
dGhlIGxlbmd0aCBvZiB0aGUgdGVzdCB0byAzMCBzZWNvbmRzLCBhbmQgZXh0ZW5kCisgICAgICAg
IHRoZSBpbnRlcnZhbCB0byAxMjAgbXMgZHVyaW5nIHNhbXBsaW5nLiBJbXByb3ZlIHRoZSBlc3Rp
bWF0aW9uIG9mIHRoZSByYW1wIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL2Rl
dmVsb3Blci5odG1sOiBDaGFuZ2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLCBhbmQgZG9uJ3Qgc2hv
dyB0aGUgcHJvZ3Jlc3MgYmFyCisgICAgICAgIGJ5IGRlZmF1bHQuCisgICAgICAgICogQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6IENoYW5nZSBkZWZhdWx0IHRvIDMw
IHNlY29uZHMuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczog
QSBudW1iZXIgb2YgaW1wcm92ZW1lbnRzIHRvIHRoZSByYW1wIGNvbnRyb2xsZXIsIGluCisgICAg
ICAgIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFwcGVhciBpbiB0aGUgcGF0Y2g6CisKKyAgICAg
ICAgLSBXaXRoIGEgbG9uZ2VyIHRlc3QgbGVuZ3RoIHVzZSBsb25nZXIgcmFtcHMgd2l0aCBsb25n
ZXIgaW50ZXJ2YWxzIHRvIGdldCBtb3JlIGRhdGEgYXQgZWFjaAorICAgICAgICBjb21wbGV4aXR5
LiBLZWVwIHRoZSAxMDAgbXMgaW50ZXJ2YWwgbGVuZ3RoIGR1cmluZyB0aGUgcmFtcCB1cCBwaGFz
ZSBzaW5jZSB3ZSBkb24ndCBuZWVkIHRvCisgICAgICAgIHNwZW5kIG1vcmUgdGltZSB0aGVyZSB0
byBmaW5kIHRoZSByaWdodCBvcmRlciBvZiBtYWduaXR1ZGUsIGJ1dCBpbmNyZWFzZSBpdCBkdXJp
bmcgdGhlCisgICAgICAgIHJhbXBzIHRvIDEyMCBtcy4KKyAgICAgICAgLSBUaGUgcmFtcCBsaW5l
YXJseSBpbnRlcnBvbGF0ZXMgdGhlIGNvbXBsZXhpdHkgdG8gcmVuZGVyIGJhc2VkIG9uIGl0cyB0
aW1lc3RhbXAsIGJ1dCBpdCB3b3VsZAorICAgICAgICBuZXZlciBzYW1wbGUgdGhlIG1pbmltdW0g
Y29tcGxleGl0eS4gSW5zdGVhZCBvZiBsZXJwaW5nIG1heCB0byBtaW4gY29tcGxleGl0eSBmcm9t
IHRpbWUKKyAgICAgICAgMCB0byB0IHdoZXJlIHQgaXMgdGhlIHJhbXAgbGVuZ3RoLCBpbnN0ZWFk
IGxlcnAgZnJvbSAwIHRvICh0IC0gaW50ZXJ2YWxTYW1wbGVMZW5ndGgpIHNvIHRoYXQKKyAgICAg
ICAgd2UgY2FuIGhhdmUgYXQgbGVhc3Qgb25lIGludGVydmFsIHNhbXBsZSBhdCB0aGUgbWluIGNv
bXBsZXhpdHkgZm9yIHRoYXQgcmFtcC4KKyAgICAgICAgLSBTb21lIHJlZ3Jlc3Npb24gY2FsY3Vs
YXRpb25zIG9ubHkgY29tZSBvdXQgd2l0aCBvbmUgbGluZSBzZWdtZW50IHJhdGhlciB0aGFuIHRo
ZSB0d28KKyAgICAgICAgd2UgZXhwZWN0LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBhIG5vaXN5IHJh
bXAgb3IgdGhlIHJhbXAncyByYW5nZSBpcyB0b28gbmFycm93LiBJZiB0aGF0J3MgdGhlCisgICAg
ICAgIGNhc2UsIGluZmx1ZW5jZSB0aGUgbWluaW11bSBjb21wbGV4aXR5IG9mIHRoZSBuZXh0IHJh
bXAgdG93YXJkcyB0aGUgbG93ZXN0IGJvdW5kIG9mIDEsIHNvIHRoYXQKKyAgICAgICAgd2UgZW5z
dXJlIHRoYXQgYXQgbGVhc3QgcGFydCBvZiB0aGUgcmFtcCBpcyBjb3ZlcmluZyBhIGNvbXBsZXhp
dHkgcmFuZ2UgdGhhdCB0aGUgc3lzdGVtIGNhbgorICAgICAgICBoYW5kbGUgYXQgZnVsbCA2MC4K
KyAgICAgICAgLSBSZW1vdmUgYW4gYXNzaWdubWVudCB0byBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0
aCBzaW5jZSB0aGF0IGlzIG5ldmVyIHN1YnNlcXVlbnRseSB1c2VkLgorCisgICAgICAgIFVwZGF0
ZSB0aGUgZm9ybWF0IHVzZWQgdG8gc2VyaWFsaXplIHRoZSByZXN1bHRzIGZvciBhbmFseXNpcy4K
KworICAgICAgICBFYWNoIGRhdGEgcG9pbnQgdXNlZCB0byBoYXZlIG5hbWVkIHByb3BlcnRpZXMg
Zm9yIGZpZWxkcyBsaWtlIGNvbXBsZXhpdHkgYW5kIGZyYW1lIHJhdGUuCisgICAgICAgIEluIGFk
ZGl0aW9uIHRoZSBzZXJpYWxpemVkIG51bWJlcnMgaGFkIHJvdW5kaW5nIGVycm9ycyB0aGF0IHRv
b2sgdXAgbWFueSBjaGFyYWN0ZXJzLgorICAgICAgICBVcGRhdGUgdGhlIGZvcm1hdCBieSBpbnRy
b2R1Y2luZyBhIG5ldyBkYXRhIGNvbnRhaW5lciBjYWxsZWQgU2FtcGxlRGF0YSwgd2hpY2ggY29u
dGFpbnMgYQorICAgICAgICBmaWVsZCBtYXAuIFRoZSBtYXAgbWFwcyBhIHN0cmluZyB0byBhbiBh
cnJheSBpbmRleC4gRWFjaCBkYXRhIHBvaW50IGlzIGFuIGFycmF5LCBzbywgdG8KKyAgICAgICAg
Z2V0IGEgc3RhdCwgdXNlIHRoZSBmaWVsZCBtYXAgdG8gZ2V0IHRoZSBhcnJheSBpbmRleCBpbnRv
IHRoZSBkYXRhIHBvaW50LiBUaGlzIGFsbG93cyBmdXR1cmUKKyAgICAgICAgdmVyc2lvbnMgdG8g
dHJhY2sgb3RoZXIgZGF0YSwgYW5kIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBzdHJp
bmcgYnkgdHdvLXRoaXJkcy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVu
c2lvbnMuanM6CisgICAgICAgIChVdGlsaXRpZXMudG9GaXhlZE51bWJlcik6IEFkZCBjb252ZW5p
ZW5jZSBmdW5jdGlvbiB0aGF0IHRydW5jYXRlcyB0aGUgbnVtYmVyIHRvIGEgZml4ZWQKKyAgICAg
ICAgcHJlY2lzaW9uLCBhbmQgY29udmVydHMgaXQgYmFjayB0byBhIG51bWJlci4KKyAgICAgICAg
KFNhbXBsZURhdGEpOiBOZXcgY2xhc3MgdGhhdCBjb250YWlucyBzYW1wbGUgZGF0YSBhbmQgYSBm
aWVsZCBtYXAgdGhhdCBtYXBzIHByb3BlcnRpZXMgdG8KKyAgICAgICAgYW4gYXJyYXkgaW5kZXgu
CisgICAgICAgIChnZXQgbGVuZ3RoKTogTnVtYmVyIG9mIGRhdGEgcG9pbnRzLgorICAgICAgICAo
YWRkRmllbGQpOiBBZGQgYSBmaWVsZCB0byB0aGUgZmllbGQgbWFwLgorICAgICAgICAocHVzaCk6
IEFkZCBhIGRhdGEgcG9pbnQuCisgICAgICAgIChzb3J0KTogU29ydCB0aGUgZGF0YS4KKyAgICAg
ICAgKHNsaWNlKTogUmV0dXJuIG5ldyBTYW1wbGVEYXRhIG9iamVjdCB3aXRoIHNsaWNlZCBkYXRh
LgorICAgICAgICAoZm9yRWFjaCk6IEl0ZXJhdGUgb3ZlciB0aGUgZGF0YSB3aXRoIHByb3ZpZGVk
IGZ1bmN0aW9uLgorICAgICAgICAoY3JlYXRlRGF0dW0pOgorICAgICAgICAoZ2V0RmllbGRJbkRh
dHVtKTogUmV0dXJucyB0aGUgZGF0YSBwb2ludCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIG5h
bWUgYnkgbG9va2luZyBpdCB1cAorICAgICAgICBpbiB0aGUgZmllbGQgbWFwIGluIHRoZSBkYXR1
bSBwcm92aWRlZCwgd2hpY2ggY2FuIGJlIHRoZSBkYXR1bSBvYmplY3QgaXRzZWxmIChhbiBhcnJh
eSkgb3IKKyAgICAgICAgYW4gaW5kZXggaW50byB0aGUgZGF0YSBtZW1iZXIgdmFyaWFibGUuCisg
ICAgICAgIChzZXRGaWVsZEluRGF0dW0pOiBTZXRzIHRoZSBkYXRhIHBvaW50IGFzc29jaWF0ZWQg
d2l0aCB0aGUgZmllbGQgbmFtZS4KKyAgICAgICAgKGF0KTogUmV0dXJucyB0aGUgZGF0YSBwb2lu
dCBhdCB0aGUgcHJvdmlkZWQgaW5kZXguCisgICAgICAgICh0b0FycmF5KTogU2VyaWFsaXplcyB0
aGUgZGF0YSB3aGVyZSB0aGUgZmllbGQgbWFwIHNlcnZlcyBhcyBwcm9wZXJ0eSBuYW1lcyBmb3Ig
ZWFjaCBwb2ludC4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9ncmFwaC5qczoKKyAgICAgICAgKHVwZGF0ZUdyYXBoRGF0YSk6IFJlbW92ZSB1bnVzZWQgX3Rl
c3REYXRhLiBDb252ZXJ0IHRoZSBkYXRhIHRvIHRoZSBvbGQgYXJyYXkgZm9ybWF0IGZvciB0aGUK
KyAgICAgICAgZ3JhcGggdG8gdXNlLCBzaW5jZSB0aGUgb2xkIGZvcm1hdCB3YXMgbXVjaCBlYXNp
ZXIgdG8gd29yayB3aXRoIHdoZW4gZGlzcGxheWluZyB0aGUgZ3JhcGhzLgorICAgICAgICAob25H
cmFwaFR5cGVDaGFuZ2VkKTogRm9yIHNvbWUgY29udHJvbGxlcnMsIG5vIGFsdGVybmF0aXZlIHNj
b3JlIG9yIG1lYW4gaXMgcHJvdmlkZWQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL2FuaW1vbWV0ZXIuY3NzOgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9hbmltb21ldGVyLmpzOiBSZWZhY3RvciB0byB1c2UgU2FtcGxlRGF0YS4gVXBkYXRlIEpT
T04gb3V0cHV0CisgICAgICAgIHRvIG9ubHkgZ28gdG8gMyBkaWdpdHMgb2YgcHJlY2lzaW9uIGZv
ciBwdXJwb3NlcyBvZiByZWR1Y2luZyB0aGUgZGF0YSBzaXplLgorICAgICAgICAqIEFuaW1vbWV0
ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6IEFkZCBuZXcgc3RyaW5ncyB0byBwdXQgaW50byB0aGUg
ZmllbGQgbWFwcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpz
OiBSZWZhY3RvciB0byB1c2UgU2FtcGxlRGF0YS4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvZGV2
ZWxvcGVyLmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBSZXN0cnVjdHVy
ZSByZXN1bHRzIHRhYmxlIGZvciBib3RoIHBhZ2VzLiBBZGQgY2hhcnNldCBhdHRyaWJ1dGUgdG8K
KyAgICAgICAgdGVzdHMuanMgaW5jbHVkZS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3M6IENsZWFyIG91dCBzdHlsZXMgZnJvbSByZWxl
YXNlIHJ1bm5lci4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIv
Z3JhcGguanM6CisgICAgICAgIChvbkdyYXBoVHlwZUNoYW5nZWQpOiBVcGRhdGUgc2NvcmUgYW5k
IG1lYW4gaWYgYm9vdHN0cmFwIHJlc3VsdHMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZQorICAgICAg
ICBjb250cm9sbGVyLCBzaW5jZSBub3QgYWxsIGNvbnRyb2xsZXJzIGRvIGJvb3RzdHJhcHBpbmcu
CisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzOiBV
cGRhdGUgaGVhZGVyIHRleHQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVy
L2FuaW1vbWV0ZXIuY3NzOiBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgaW4gcmVzdWx0cy4K
KyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAg
ICAgICAgKFJlc3VsdHNUYWJsZS5fYWRkSGVhZGVyKTogSGVhZGVyIGNvbnRlbnRzIGNhbiBiZSBI
VE1MLCBzbyB1c2UgaW5uZXJIVE1MIGluc3RlYWQuCisgICAgICAgIChSZXN1bHRzVGFibGUuX2Fk
ZEJvZHkpOiBBZGQgdGJvZHkgZWxlbWVudC4KKyAgICAgICAgKFJlc3VsdHNUYWJsZS5fYWRkVGVz
dCk6IEFsbG93IGEgZGF0YSBjZWxsIHRvIGludm9rZSBhIEpTIGZ1bmN0aW9uIHRvIGdldCBpdHMg
Y29udGVudHMuCisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0
cyk6IEFkZCB0YWJsZSB0aGF0IGluY2x1ZGVzIHRlc3RzJyBjb25maWRlbmNlIGludGVydmFscy4K
KyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanM6CisgICAgICAg
IChIZWFkZXJzLmRldGFpbHMudGV4dCk6IEFkZCBuZXcgZGV0YWlscyB0YWJsZSB0aGF0IGluY2x1
ZGVzIGJvb3RzdHJhcCBjb25maWRlbmNlIGludGVydmFsLgorICAgICAgICBUaGUgaW50ZXJ2YWwg
Y2FuIGJlIGFzeW1tZXRyaWMsIGJ1dCBmb3Igc2ltcGxpY2l0eSwgcmVwb3J0IHRoZSBtYXhpbXVt
IGRldmlhdGlvbiBwZXJjZW50YWdlCisgICAgICAgIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBib290
c3RyYXAgbWVkaWFuLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3Mu
anM6CisgICAgICAgIChib290c3RyYXApOiBJbmNsdWRlIHRoZSBjb25maWRlbmNlIHBlcmNlbnRh
Z2UgaW4gdGhlIHJldHVybiBvYmplY3QuCisKKyAgICAgICAgUmVwb3J0IGNhbnZhcyBzaXplIGlu
IHJlc3VsdHMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBBZGQgbWFy
a3VwIHRvIGluZGljYXRlIHdoZXRoZXIgYSBzbWFsbCwgbWVkaXVtLCBvciBsYXJnZQorICAgICAg
ICBjYW52YXMgd2FzIHVzZWQuCisgICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0
by4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5qczogQ2FsbCBkZXRlcm1pbmVDYW52YXNTaXplKCkuCisgICAgICAgICogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzOiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0aGUg
Y2FudmFzIGJhc2VkIG9uIHRoZQorICAgICAgICBib2R5IGNsYXNzIHNpemUuCisgICAgICAgICog
QW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6CisgICAgICAgICh3aW5k
b3cuYmVuY2htYXJrQ29udHJvbGxlci5pbml0aWFsaXplKTogVXBkYXRlIHN0eWxlcyB0byBzZXQg
dGhlIGNhbnZhcyBiYXNlZCBvbiB0aGUKKyAgICAgICAgYm9keSBjbGFzcyBzaXplLgorICAgICAg
ICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuZGV0ZXJtaW5lQ2FudmFzU2l6ZSk6IFJ1biB2
YXJpb3VzIG1lZGlhIHF1ZXJpZXMgYW5kIHNldCB0aGUgYm9keQorICAgICAgICBjbGFzcyBiYXNl
ZCBvbiB0aGUgc2l6ZSBvZiB0aGUgZGV2aWNlLgorCisgICAgICAgICogQW5pbW9tZXRlci9kZXZl
bG9wZXIuaHRtbDogUmVmYWN0b3IgdG8gaW5jbHVkZSB0aGUgbWFpbiBDU1MgZmlsZSwgYW5kIHJl
ZG8KKyAgICAgICAgdGhlIGxheW91dCBzbyB0aGF0IGl0IGRvZXNuJ3QgcmVseSBvbiBmbGV4Ym94
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVy
LmNzczoKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9t
ZXRlci5qczoKKyAgICAgICAgKHVwZGF0ZURpc3BsYXkpOiBTaW5jZSB2YXJpb3VzIHBhcnRzIG9m
IHRoZSBzY3JpcHQgYWx0ZXIgdGhlIGJvZHkgY2xhc3MsIHdlIGNhbid0CisgICAgICAgIHJlcGxh
Y2UgdGhlIGNsYXNzTmFtZSBkaXJlY3RseS4gSW5zdGVhZCwgcmVtb3ZlIGFsbCBkaXNwbGF5LWJh
c2VkIHZhbHVlcyBhbmQgdGhlbiBhZGQKKyAgICAgICAgdGhlIG9uZSB0aGF0IHdhcyBzZWxlY3Rl
ZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6
CisgICAgICAgICh1cGRhdGVHcmFwaERhdGEpOiBUbyBzZXQgdGhlIHNpemUgb2YgdGhlIGdyYXBo
LCB1c2Ugd2luZG93LmlubmVySGVpZ2h0LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3J1bm5lci9hbmltb21ldGVyLmpzOgorICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5z
aG93U2VjdGlvbik6IFNpbmNlIHZhcmlvdXMgcGFydHMgb2YgdGhlIHNjcmlwdCBhbHRlciB0aGUg
Ym9keQorICAgICAgICBjbGFzcywgd2UgY2FuJ3QgcmVwbGFjZSB0aGUgY2xhc3NOYW1lIGRpcmVj
dGx5LiBSZW1vdmUgYWxsIG9mIHRoZSBzZWN0aW9uIGNsYXNzZXMKKyAgICAgICAgaW5kaXZpZHVh
bGx5IGFuZCB0aGVuIGFkZCB0aGUgb25lIGRlc2lyZWQuCisgICAgICAgICogQW5pbW9tZXRlci90
ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzOiBSZW1vdmUgLWFwcGxlLXN5c3RlbSBhcyBhIGZvbnQg
dG8gdXNlIGluIHRoZQorICAgICAgICBzdGFnZS4KKwogMjAxNi0wNi0xMiAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCByb3VuZC1kb3duIGdvb2YgaW4gQWly
LmpzJ3MgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJnCi0tIAoyLjguMSAoQXBwbGUgR2l0LTY5KQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281800</attachid>
            <date>2016-06-21 18:01:34 -0700</date>
            <delta_ts>2016-06-21 20:09:47 -0700</delta_ts>
            <desc>Harness updates</desc>
            <filename>0001-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>122820</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA0N2E2MTAxYzMwMDIyMTg1NjcwMGIxZGFiYWVlNTEzM2I2ODA0MzJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUdWUs
IDIxIEp1biAyMDE2IDE3OjU3OjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUHJvdmlzaW9uYWxseSByZXZpZXdlZCBieSBTYWlkIEFib3Ut
SGFsbGF3YS4KCkluY2x1ZGUgY29uZmlkZW5jZSBpbnRlcnZhbCBmb3IgdGhlIGZpbmFsIHNjb3Jl
LCBhbmQgc3RvcmUgdGhlIGNhbnZhcwpzaXplIGluIHRoZSBzZXJpYWxpemF0aW9uIHNvIHRoYXQg
aXQgaXMgYWNjdXJhdGVseSBzaG93biBpbiByZXN1bHRzLgoKKiBBbmltb21ldGVyL2RldmVsb3Bl
ci5odG1sOiBBZGQgYSAiY29uZmlkZW5jZSIgZGl2LgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDog
RGl0dG8uIENvbnZlcnQgIm1lYW4iIHRvICJjb25maWRlbmNlIi4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogTG9vayBhdCBvcHRpb25zLCBhbmQKaWYg
dGhlIGNvbmZpZ3VyYXRpb24gaXMgaW5jbHVkZWQsIHVwZGF0ZSB0aGUgYm9keSBjbGFzcyBiYXNl
ZCBvbiBpdAooc2ltaWxhciB0byB3aGF0IHdlIGRvIHdoZW4gd2UgZmlyc3QgbG9hZCB0aGUgcGFn
ZSkuIFRoYXQgd2F5LCBpZiB5b3UKZHJhZy1hbmQtZHJvcCBwcmV2aW91cyByZXN1bHRzIGluLCB0
aGF0IGNvbmZpZ3VyYXRpb24gaXMgcmVmbGVjdGVkIGluCnRoZSBkYXNoYm9hcmQuIFNob3cgdGhl
IGZ1bGwgY29uZmlkZW5jZSBpbnRlcnZhbC4KCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWct
cnVubmVyL2FuaW1vbWV0ZXIuY3NzOgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9hbmltb21ldGVyLmpzOiBTdHlsZSB1cGRhdGUuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuY3NzOgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9t
ZXRlci5qczoKKF9wcm9jZXNzRGF0YSk6IFByb3BhZ2F0ZSB0aGUgY29uZmlkZW5jZSBpbnRlcnZh
bCB2YWx1ZXMgb3V0IGFuZCBjYWxjdWxhdGUKdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMuIEZv
ciBub3csIHNob3J0Y3V0IHRoZSBhZ2dyZWdhdGUgY2FsY3VsYXRpb24sCnNpbmNlIHdlIG9ubHkg
Z28gdGhyb3VnaCBvbmUgaXRlcmF0aW9uLgoodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2Nv
cmUpOiBQcm9wYWdhdGUgdGhlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgb3V0CnRvIGJlIG5leHQgdG8g
dGhlIHNjb3JlLiBEZXBlbmRpbmcgb24gdGhlIGNvbnRyb2xsZXIgdGhlc2UgdmFsdWVzIGFyZQpj
YWxjdWxhdGVkIGRpZmZlcmVudGx5LgoodGhpcy5fcHJvY2Vzc0RhdGEuX2dldFJlc3VsdHNQcm9w
ZXJ0eSk6IENvbnZlbmllbmNlIGZ1bmN0aW9uLgoodGhpcy5fcHJvY2Vzc0RhdGEuZ2V0IHNjb3Jl
KTogUmVmYWN0b3IuCih0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVMb3dlckJvdW5kKTogR2V0
IHRoZSBhZ2dyZWdhdGUgbG93ZXIgYm91bmQuCih0aGlzLl9wcm9jZXNzRGF0YS5nZXQgc2NvcmVV
cHBlckJvdW5kKTogR2V0IHRoZSBhZ2dyZWdhdGUgdXBwZXIgYm91bmQuCih3aW5kb3cuc2VjdGlv
bnNNYW5hZ2VyLnNldFNlY3Rpb25TY29yZSk6Cih3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5f
c3RhcnRCZW5jaG1hcmspOiBXaGVuIHRoZSBiZW5jaG1hcmsgc3RhcnRzLCBub3RlCnRoZSBjYW52
YXMgc2l6ZSBhbmQgYWRkIGl0IHRvIG9wdGlvbnMuIFRoYXQgd2F5IGl0IHdpbGwgYmUgYXV0b21h
dGljYWxseSBiZQpzZXJpYWxpemVkLgood2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jl
c3VsdHMpOiBJbmNsdWRlIHRoZSBtYXhpbXVtIGRldmlhdGlvbgpwZXJjZW50YWdlLgoqIEFuaW1v
bWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9saW5lcy5zdmc6IE1ha2UgdGhlIGJhY2tncm91bmQgbGlu
ZSB1cCB3aXRoIHRoZQpza2V3LgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5q
czoKKEhlYWRlcnMuZGV0YWlscy50ZXh0KTogUmVmYWN0b3IuCiogQW5pbW9tZXRlci9yZXNvdXJj
ZXMvc3RhdGlzdGljcy5qczoKKFN0YXRpc3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2Up
OiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjYWxjdWxhdGUKdGhlIGRldmlhdGlvbiBwZXJjZW50
YWdlIG9uIGVpdGhlciBlbmQgYW5kIHJldHVybiB0aGUgbGFyZ2VzdCBkZXZpYXRpb24uCiogQW5p
bW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczoKCkFsbG93IHNwZWNpZnlpbmcgYSByZWdyZXNz
aW9uIHByb2ZpbGUgdG8gdXNlIGluc3RlYWQgb2YgdGFraW5nIHRoZSBvbmUKd2l0aCB0aGUgbG93
ZXN0IGVycm9yLgoKQWRkcmVzcyBhbiBpc3N1ZSBpbiB0aGUgZm9jdXMgdGVzdCB3aGVuIHRoZSBy
ZWdyZXNzaW9uIGNhbGN1bGF0ZWQgZW5kcwp1cCBvdmVyZXN0aW1hdGluZyB0aGUgY2hhbmdlIHBv
aW50LCBjYXVzaW5nIGEgY2FzY2FkZSBvZiB0b3VnaGVyCnJhbXBzLiBUaGUgcmVhc29uIGJlaGlu
ZCB0aGlzIGlzIHRoYXQgYXQgbWF4IGNvbXBsZXhpdHkgb2YgYW4gaW5pdGlhbApyYW1wLCB0aGUg
ZnJhbWUgbGVuZ3RoIGlzIHZlcnkgaGlnaCwgYW5kIGl0IGluZmx1ZW5jZXMgdGhlIHNlY29uZApz
ZWdtZW50IG9mIHRoZSBwaWVjZXdpc2UgcmVncmVzc2lvbiBzdHJvbmdseSwgY2F1c2luZyBpdCB0
byBiZSB2ZXJ5CnN0ZWVwLiBBcyBhIHJlc3VsdCwgdGhlIGZpcnN0IHNlZ21lbnQsIGV4cGVjdGVk
IHRvIGJlIGZsYXQsIGVuZHMgdXAKY292ZXJpbmcgYSBoaWdoZXIgcmFuZ2Ugb2YgY29tcGxleGl0
eS4gVGhhdCBtYWtlcyB0aGUgY2hhbmdlIHBvaW50Cm11Y2ggaGlnaGVyIHRoYW4gaXQgc2hvdWxk
IGJlLiBUbyBhdm9pZCB0aGlzLCB3ZSB3aWxsIGFkZCBhIHNhbml0eQpjaGVjayBvbiB0aGUgbWF4
aW11bSB2YWx1ZSBvZiB0aGUgcmFtcC4gSWYgdGhlIHJlZ3Jlc3Npb24ncyBwcm9qZWN0ZWQKdmFs
dWUgYXQgdGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUgY3VycmVudCByYW1wIGlzIHZlcnkg
c2xvdyAobGVzcwp0aGFuIDIwIGZwcyksIDEpIHJlZHVjZSB0aGUgbWF4aW11bSBjb21wbGV4aXR5
IGJ5IDIwJSwgYW5kIDIpIGRvIG5vdAppbmNsdWRlIHRoZSByZWdyZXNzaW9uJ3MgY2hhbmdlIHBv
aW50IGluIHRoZSBjaGFuZ2UgcG9pbnQgZXN0aW1hdG9yLgpUaGF0IGVzdGltYXRvciBpcyB1c2Vk
IGFzIHRoZSBtaWRwb2ludCBvZiB0aGUgbmV4dCByYW1wLCBhbmQgaW5jbHVkaW5nCnRoZSBjaGFu
Z2UgcG9pbnQgZnJvbSBhIHBvb3IgcmVncmVzc2lvbiBjYW4gYmFrZSBpbiB0aGUgZXJyb3IuIFRo
ZQpjb250cm9sbGVyIGFscmVhZHkga25vd3MgaG93IHRvIGFkanVzdCBmb3IgcmFtcHMgdGhhdCBh
cmUgdG9vIGVhc3kgZm9yCnRoZSBzeXN0ZW0uCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5l
ci9hbmltb21ldGVyLmpzOgoodGhpcy5fcHJvY2Vzc0RhdGEuZmluZFJlZ3Jlc3Npb24pOiBUYWtl
cyBhIHByZWZlcnJlZCBwcm9maWxlIGFuZCBnaXZlcyB0aGF0IHRvClJlZ3Jlc3Npb24uCih0aGlz
Ll9wcm9jZXNzRGF0YS5jYWxjdWxhdGVTY29yZSk6IFdpdGggdGhlIHJhbXAgY29udHJvbGxlciwg
dGFrZSB0aGUgcHJvZmlsZQpvZiB0aGUgcmFtcCB0aGF0IHdhcyB1c2VkIHRoZSBtb3N0IHdoZW4g
Y2FsY3VsYXRpbmcgdGhlIHJhbXAncyByZWdyZXNzaW9uLiBUaGF0CnByb2ZpbGUgaXMgd2hhdCBp
cyB1c2VkIGZvciB0aGUgdGVzdCdzIHNjb3JlLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRp
c3RpY3MuanM6CihSZWdyZXNzaW9uLlV0aWxpdGllcy5jcmVhdGVDbGFzcyk6IFVwZGF0ZSB0byB0
YWtlIGFuIG9wdGlvbnMgb2JqZWN0IHdoaWNoIGNhbgpzcGVjaWZ5IGEgcHJvZmlsZSB0byBjYWxj
dWxhdGUgd2l0aC4gT3RoZXJ3aXNlIGl0IHdpbGwgY29udGludWUgdG8gdXNlIGJvdGggYW5kCnNl
bGVjdCB0aGUgb25lIHdpdGggdGhlIGxvd2VyIGVycm9yLgooX2NhbGN1bGF0ZVJlZ3Jlc3Npb24p
OiBGaXggYW4gaXNzdWUgd2hlcmUgd2UgY2xhaW0gMCBlcnJvciBpZiB0aGUgcmVncmVzc2lvbgpj
YWxjdWxhdGlvbiBmYWlscyBkdWUgdG8gZGl2aWRlLWJ5LXplcm8uIEluc3RlYWQgcmVqZWN0IHRo
YXQgcmVncmVzc2lvbiBjYWxjdWxhdGlvbgpieSBnaXZpbmcgaXQgTnVtYmVyLk1BWF9WQUxVRS4K
KiBBbmltb21ldGVyL3Jlc291cmNlcy9zdHJpbmdzLmpzOiBOZXcgc3RyaW5ncyBmb3IgbWFya2lu
ZyBhIHJlZ3Jlc3Npb24gYXMgZmxhdApvciBzbG9wZS4KKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291
cmNlcy9tYWluLmpzOgooUmFtcENvbnRyb2xsZXIpOiBSZW5hbWUgdGhlIHRocmVzaG9sZHMgZm9y
IGNsYXJpdHkuIEFkZCBhIHRocmVzaG9sZCB0aGF0LCBpZgpleGNlZWRlZCwgd2lsbCBsb3dlciB0
aGUgbWF4aW11bSBjb21wbGV4aXR5IG9mIHRoZSBuZXh0IHJhbXAuCih0dW5lKTogUmVsYXggdGhl
IGNkZiBjaGVjayB0byBjb25zaWRlciB3aGV0aGVyIHRoZSBpbnRlcnZhbCBkZWZpbml0ZWx5IGZh
bGxzIGluCnRoZSBkZXNpcmVkIGZyYW1lIGxlbmd0aCB0aHJlc2hvbGQuCihwcm9jZXNzU2FtcGxl
cyk6IEluY2x1ZGUgdGhlIHByb2ZpbGUgaW4gdGhlIHJhbXAuCgpVcGRhdGUgcmFtcCBjb250cm9s
bGVyIHRlc3QuIEluY3JlYXNlIHRoZSBsZW5ndGggb2YgdGhlIHRlc3QgdG8gMzAgc2Vjb25kcywg
YW5kIGV4dGVuZAp0aGUgaW50ZXJ2YWwgdG8gMTIwIG1zIGR1cmluZyBzYW1wbGluZy4gSW1wcm92
ZSB0aGUgZXN0aW1hdGlvbiBvZiB0aGUgcmFtcCBwYXJhbWV0ZXJzLgoKKiBBbmltb21ldGVyL2Rl
dmVsb3Blci5odG1sOiBDaGFuZ2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLCBhbmQgZG9uJ3Qgc2hv
dyB0aGUgcHJvZ3Jlc3MgYmFyCmJ5IGRlZmF1bHQuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuanM6IENoYW5nZSBkZWZhdWx0IHRvIDMwIHNlY29uZHMuCiogQW5pbW9t
ZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogQSBudW1iZXIgb2YgaW1wcm92ZW1lbnRzIHRv
IHRoZSByYW1wIGNvbnRyb2xsZXIsIGluCnRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFwcGVhciBp
biB0aGUgcGF0Y2g6CgotIFdpdGggYSBsb25nZXIgdGVzdCBsZW5ndGggdXNlIGxvbmdlciByYW1w
cyB3aXRoIGxvbmdlciBpbnRlcnZhbHMgdG8gZ2V0IG1vcmUgZGF0YSBhdCBlYWNoCmNvbXBsZXhp
dHkuIEtlZXAgdGhlIDEwMCBtcyBpbnRlcnZhbCBsZW5ndGggZHVyaW5nIHRoZSByYW1wIHVwIHBo
YXNlIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8Kc3BlbmQgbW9yZSB0aW1lIHRoZXJlIHRvIGZpbmQg
dGhlIHJpZ2h0IG9yZGVyIG9mIG1hZ25pdHVkZSwgYnV0IGluY3JlYXNlIGl0IGR1cmluZyB0aGUK
cmFtcHMgdG8gMTIwIG1zLgotIFRoZSByYW1wIGxpbmVhcmx5IGludGVycG9sYXRlcyB0aGUgY29t
cGxleGl0eSB0byByZW5kZXIgYmFzZWQgb24gaXRzIHRpbWVzdGFtcCwgYnV0IGl0IHdvdWxkCm5l
dmVyIHNhbXBsZSB0aGUgbWluaW11bSBjb21wbGV4aXR5LiBJbnN0ZWFkIG9mIGxlcnBpbmcgbWF4
IHRvIG1pbiBjb21wbGV4aXR5IGZyb20gdGltZQowIHRvIHQgd2hlcmUgdCBpcyB0aGUgcmFtcCBs
ZW5ndGgsIGluc3RlYWQgbGVycCBmcm9tIDAgdG8gKHQgLSBpbnRlcnZhbFNhbXBsZUxlbmd0aCkg
c28gdGhhdAp3ZSBjYW4gaGF2ZSBhdCBsZWFzdCBvbmUgaW50ZXJ2YWwgc2FtcGxlIGF0IHRoZSBt
aW4gY29tcGxleGl0eSBmb3IgdGhhdCByYW1wLgotIFNvbWUgcmVncmVzc2lvbiBjYWxjdWxhdGlv
bnMgb25seSBjb21lIG91dCB3aXRoIG9uZSBsaW5lIHNlZ21lbnQgcmF0aGVyIHRoYW4gdGhlIHR3
bwp3ZSBleHBlY3QuIFRoaXMgY291bGQgYmUgZHVlIHRvIGEgbm9pc3kgcmFtcCBvciB0aGUgcmFt
cCdzIHJhbmdlIGlzIHRvbyBuYXJyb3cuIElmIHRoYXQncyB0aGUKY2FzZSwgaW5mbHVlbmNlIHRo
ZSBtaW5pbXVtIGNvbXBsZXhpdHkgb2YgdGhlIG5leHQgcmFtcCB0b3dhcmRzIHRoZSBsb3dlc3Qg
Ym91bmQgb2YgMSwgc28gdGhhdAp3ZSBlbnN1cmUgdGhhdCBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBy
YW1wIGlzIGNvdmVyaW5nIGEgY29tcGxleGl0eSByYW5nZSB0aGF0IHRoZSBzeXN0ZW0gY2FuCmhh
bmRsZSBhdCBmdWxsIDYwLgotIFJlbW92ZSBhbiBhc3NpZ25tZW50IHRvIGludGVycG9sYXRlZEZy
YW1lTGVuZ3RoIHNpbmNlIHRoYXQgaXMgbmV2ZXIgc3Vic2VxdWVudGx5IHVzZWQuCgpVcGRhdGUg
dGhlIGZvcm1hdCB1c2VkIHRvIHNlcmlhbGl6ZSB0aGUgcmVzdWx0cyBmb3IgYW5hbHlzaXMuCgpF
YWNoIGRhdGEgcG9pbnQgdXNlZCB0byBoYXZlIG5hbWVkIHByb3BlcnRpZXMgZm9yIGZpZWxkcyBs
aWtlIGNvbXBsZXhpdHkgYW5kIGZyYW1lIHJhdGUuCkluIGFkZGl0aW9uIHRoZSBzZXJpYWxpemVk
IG51bWJlcnMgaGFkIHJvdW5kaW5nIGVycm9ycyB0aGF0IHRvb2sgdXAgbWFueSBjaGFyYWN0ZXJz
LgpVcGRhdGUgdGhlIGZvcm1hdCBieSBpbnRyb2R1Y2luZyBhIG5ldyBkYXRhIGNvbnRhaW5lciBj
YWxsZWQgU2FtcGxlRGF0YSwgd2hpY2ggY29udGFpbnMgYQpmaWVsZCBtYXAuIFRoZSBtYXAgbWFw
cyBhIHN0cmluZyB0byBhbiBhcnJheSBpbmRleC4gRWFjaCBkYXRhIHBvaW50IGlzIGFuIGFycmF5
LCBzbywgdG8KZ2V0IGEgc3RhdCwgdXNlIHRoZSBmaWVsZCBtYXAgdG8gZ2V0IHRoZSBhcnJheSBp
bmRleCBpbnRvIHRoZSBkYXRhIHBvaW50LiBUaGlzIGFsbG93cyBmdXR1cmUKdmVyc2lvbnMgdG8g
dHJhY2sgb3RoZXIgZGF0YSwgYW5kIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBzdHJp
bmcgYnkgdHdvLXRoaXJkcy4KCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczoK
KFV0aWxpdGllcy50b0ZpeGVkTnVtYmVyKTogQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQg
dHJ1bmNhdGVzIHRoZSBudW1iZXIgdG8gYSBmaXhlZApwcmVjaXNpb24sIGFuZCBjb252ZXJ0cyBp
dCBiYWNrIHRvIGEgbnVtYmVyLgooU2FtcGxlRGF0YSk6IE5ldyBjbGFzcyB0aGF0IGNvbnRhaW5z
IHNhbXBsZSBkYXRhIGFuZCBhIGZpZWxkIG1hcCB0aGF0IG1hcHMgcHJvcGVydGllcyB0bwphbiBh
cnJheSBpbmRleC4KKGdldCBsZW5ndGgpOiBOdW1iZXIgb2YgZGF0YSBwb2ludHMuCihhZGRGaWVs
ZCk6IEFkZCBhIGZpZWxkIHRvIHRoZSBmaWVsZCBtYXAuCihwdXNoKTogQWRkIGEgZGF0YSBwb2lu
dC4KKHNvcnQpOiBTb3J0IHRoZSBkYXRhLgooc2xpY2UpOiBSZXR1cm4gbmV3IFNhbXBsZURhdGEg
b2JqZWN0IHdpdGggc2xpY2VkIGRhdGEuCihmb3JFYWNoKTogSXRlcmF0ZSBvdmVyIHRoZSBkYXRh
IHdpdGggcHJvdmlkZWQgZnVuY3Rpb24uCihjcmVhdGVEYXR1bSk6CihnZXRGaWVsZEluRGF0dW0p
OiBSZXR1cm5zIHRoZSBkYXRhIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbmFtZSBi
eSBsb29raW5nIGl0IHVwCmluIHRoZSBmaWVsZCBtYXAgaW4gdGhlIGRhdHVtIHByb3ZpZGVkLCB3
aGljaCBjYW4gYmUgdGhlIGRhdHVtIG9iamVjdCBpdHNlbGYgKGFuIGFycmF5KSBvcgphbiBpbmRl
eCBpbnRvIHRoZSBkYXRhIG1lbWJlciB2YXJpYWJsZS4KKHNldEZpZWxkSW5EYXR1bSk6IFNldHMg
dGhlIGRhdGEgcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBuYW1lLgooYXQpOiBSZXR1
cm5zIHRoZSBkYXRhIHBvaW50IGF0IHRoZSBwcm92aWRlZCBpbmRleC4KKHRvQXJyYXkpOiBTZXJp
YWxpemVzIHRoZSBkYXRhIHdoZXJlIHRoZSBmaWVsZCBtYXAgc2VydmVzIGFzIHByb3BlcnR5IG5h
bWVzIGZvciBlYWNoIHBvaW50LgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIv
Z3JhcGguanM6Cih1cGRhdGVHcmFwaERhdGEpOiBSZW1vdmUgdW51c2VkIF90ZXN0RGF0YS4gQ29u
dmVydCB0aGUgZGF0YSB0byB0aGUgb2xkIGFycmF5IGZvcm1hdCBmb3IgdGhlCmdyYXBoIHRvIHVz
ZSwgc2luY2UgdGhlIG9sZCBmb3JtYXQgd2FzIG11Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCB3aGVu
IGRpc3BsYXlpbmcgdGhlIGdyYXBocy4KKG9uR3JhcGhUeXBlQ2hhbmdlZCk6IEZvciBzb21lIGNv
bnRyb2xsZXJzLCBubyBhbHRlcm5hdGl2ZSBzY29yZSBvciBtZWFuIGlzIHByb3ZpZGVkLgoqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzczoKKiBBbmltb21ldGVyL3Jl
c291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczogUmVmYWN0b3IgdG8gdXNlIFNhbXBsZURhdGEu
IFVwZGF0ZSBKU09OIG91dHB1dAp0byBvbmx5IGdvIHRvIDMgZGlnaXRzIG9mIHByZWNpc2lvbiBm
b3IgcHVycG9zZXMgb2YgcmVkdWNpbmcgdGhlIGRhdGEgc2l6ZS4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9zdHJpbmdzLmpzOiBBZGQgbmV3IHN0cmluZ3MgdG8gcHV0IGludG8gdGhlIGZpZWxkIG1h
cHMuCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogUmVmYWN0b3IgdG8gdXNl
IFNhbXBsZURhdGEuCgoqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6CiogQW5pbW9tZXRlci9p
bmRleC5odG1sOiBSZXN0cnVjdHVyZSByZXN1bHRzIHRhYmxlIGZvciBib3RoIHBhZ2VzLiBBZGQg
Y2hhcnNldCBhdHRyaWJ1dGUgdG8KdGVzdHMuanMgaW5jbHVkZS4KKiBBbmltb21ldGVyL3Jlc291
cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5jc3M6IENsZWFyIG91dCBzdHlsZXMgZnJvbSBy
ZWxlYXNlIHJ1bm5lci4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGgu
anM6CihvbkdyYXBoVHlwZUNoYW5nZWQpOiBVcGRhdGUgc2NvcmUgYW5kIG1lYW4gaWYgYm9vdHN0
cmFwIHJlc3VsdHMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZQpjb250cm9sbGVyLCBzaW5jZSBub3Qg
YWxsIGNvbnRyb2xsZXJzIGRvIGJvb3RzdHJhcHBpbmcuCiogQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL3Rlc3RzLmpzOiBVcGRhdGUgaGVhZGVyIHRleHQuCiogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzOiBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2
YWwgaW4gcmVzdWx0cy4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5q
czoKKFJlc3VsdHNUYWJsZS5fYWRkSGVhZGVyKTogSGVhZGVyIGNvbnRlbnRzIGNhbiBiZSBIVE1M
LCBzbyB1c2UgaW5uZXJIVE1MIGluc3RlYWQuCihSZXN1bHRzVGFibGUuX2FkZEJvZHkpOiBBZGQg
dGJvZHkgZWxlbWVudC4KKFJlc3VsdHNUYWJsZS5fYWRkVGVzdCk6IEFsbG93IGEgZGF0YSBjZWxs
IHRvIGludm9rZSBhIEpTIGZ1bmN0aW9uIHRvIGdldCBpdHMgY29udGVudHMuCih3aW5kb3cuYmVu
Y2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cyk6IEFkZCB0YWJsZSB0aGF0IGluY2x1ZGVzIHRl
c3RzJyBjb25maWRlbmNlIGludGVydmFscy4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIv
dGVzdHMuanM6CihIZWFkZXJzLmRldGFpbHMudGV4dCk6IEFkZCBuZXcgZGV0YWlscyB0YWJsZSB0
aGF0IGluY2x1ZGVzIGJvb3RzdHJhcCBjb25maWRlbmNlIGludGVydmFsLgpUaGUgaW50ZXJ2YWwg
Y2FuIGJlIGFzeW1tZXRyaWMsIGJ1dCBmb3Igc2ltcGxpY2l0eSwgcmVwb3J0IHRoZSBtYXhpbXVt
IGRldmlhdGlvbiBwZXJjZW50YWdlCm9uIGVpdGhlciBzaWRlIG9mIHRoZSBib290c3RyYXAgbWVk
aWFuLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanM6Cihib290c3RyYXApOiBJ
bmNsdWRlIHRoZSBjb25maWRlbmNlIHBlcmNlbnRhZ2UgaW4gdGhlIHJldHVybiBvYmplY3QuCgpS
ZXBvcnQgY2FudmFzIHNpemUgaW4gcmVzdWx0cy4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRt
bDogQWRkIG1hcmt1cCB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgc21hbGwsIG1lZGl1bSwgb3IgbGFy
Z2UKY2FudmFzIHdhcyB1c2VkLgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDogRGl0dG8uCiogQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanM6IENhbGwgZGV0ZXJt
aW5lQ2FudmFzU2l6ZSgpLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVy
LmNzczogVXBkYXRlIHN0eWxlcyB0byBzZXQgdGhlIGNhbnZhcyBiYXNlZCBvbiB0aGUKYm9keSBj
bGFzcyBzaXplLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzOgoo
d2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuaW5pdGlhbGl6ZSk6IFVwZGF0ZSBzdHlsZXMgdG8g
c2V0IHRoZSBjYW52YXMgYmFzZWQgb24gdGhlCmJvZHkgY2xhc3Mgc2l6ZS4KKHdpbmRvdy5iZW5j
aG1hcmtDb250cm9sbGVyLmRldGVybWluZUNhbnZhc1NpemUpOiBSdW4gdmFyaW91cyBtZWRpYSBx
dWVyaWVzIGFuZCBzZXQgdGhlIGJvZHkKY2xhc3MgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGRl
dmljZS4KCiogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogUmVmYWN0b3IgdG8gaW5jbHVkZSB0
aGUgbWFpbiBDU1MgZmlsZSwgYW5kIHJlZG8KdGhlIGxheW91dCBzbyB0aGF0IGl0IGRvZXNuJ3Qg
cmVseSBvbiBmbGV4Ym94LgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmlt
b21ldGVyLmNzczoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5qczoKKHVwZGF0ZURpc3BsYXkpOiBTaW5jZSB2YXJpb3VzIHBhcnRzIG9mIHRoZSBzY3JpcHQg
YWx0ZXIgdGhlIGJvZHkgY2xhc3MsIHdlIGNhbid0CnJlcGxhY2UgdGhlIGNsYXNzTmFtZSBkaXJl
Y3RseS4gSW5zdGVhZCwgcmVtb3ZlIGFsbCBkaXNwbGF5LWJhc2VkIHZhbHVlcyBhbmQgdGhlbiBh
ZGQKdGhlIG9uZSB0aGF0IHdhcyBzZWxlY3RlZC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1
Zy1ydW5uZXIvZ3JhcGguanM6Cih1cGRhdGVHcmFwaERhdGEpOiBUbyBzZXQgdGhlIHNpemUgb2Yg
dGhlIGdyYXBoLCB1c2Ugd2luZG93LmlubmVySGVpZ2h0LgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3J1bm5lci9hbmltb21ldGVyLmpzOgood2luZG93LnNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlv
bik6IFNpbmNlIHZhcmlvdXMgcGFydHMgb2YgdGhlIHNjcmlwdCBhbHRlciB0aGUgYm9keQpjbGFz
cywgd2UgY2FuJ3QgcmVwbGFjZSB0aGUgY2xhc3NOYW1lIGRpcmVjdGx5LiBSZW1vdmUgYWxsIG9m
IHRoZSBzZWN0aW9uIGNsYXNzZXMKaW5kaXZpZHVhbGx5IGFuZCB0aGVuIGFkZCB0aGUgb25lIGRl
c2lyZWQuCiogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzOiBSZW1vdmUgLWFw
cGxlLXN5c3RlbSBhcyBhIGZvbnQgdG8gdXNlIGluIHRoZQpzdGFnZS4KLS0tCiBQZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwgICAgICAgICB8IDI0MCArKysrLS0tLS0K
IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sICAgICAgICAgICAgIHwgIDI0
ICstCiAuLi4vcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcyAgICAgICAgICB8
IDU0NSArKysrKysrLS0tLS0tLS0tLS0tLS0KIC4uLi9yZXNvdXJjZXMvZGVidWctcnVubmVyL2Fu
aW1vbWV0ZXIuanMgICAgICAgICAgIHwgIDIzICstCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2dyYXBoLmpzICAgICB8ICA0OSArLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyAgICAgfCAgIDIgKy0KIC4uLi9Bbmltb21ldGVyL3Jl
c291cmNlcy9leHRlbnNpb25zLmpzICAgICAgICAgICAgIHwgIDg3ICsrKysKIC4uLi9Bbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MgICAgIHwgMTE5ICsrKy0tCiAuLi4v
QW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMgICAgICB8IDIwOCArKysr
KystLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9saW5lcy5zdmcgICAgICAgICAg
fCAgNDAgKy0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMgICAgICAg
ICAgIHwgIDIzICstCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyAgICAg
ICAgICAgICB8ICA4NSArKy0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3N0cmluZ3MuanMgICB8ICAxNCArLQogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21h
aW4uanMgICAgICAgICAgICAgfCAxMzkgKysrKy0tCiAuLi4vQW5pbW9tZXRlci90ZXN0cy9yZXNv
dXJjZXMvc3RhZ2UuY3NzICAgICAgICAgICB8ICAgMiArLQogUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDMgKysrKysrKysKIDE2IGZpbGVzIGNo
YW5nZWQsIDEwODcgaW5zZXJ0aW9ucygrKSwgNzE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbCBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbAppbmRleCBjZjM3ZWUwLi45YzE0ZTBmIDEw
MDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCkBAIC0xLDE1ICsx
LDE5IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci0gICAgPHRpdGxlPkFuaW1v
bWV0ZXIgLSBkZXZlbG9wZXI8L3RpdGxlPgogICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2Vy
LXNjYWxhYmxlPW5vIj4KKworICAgIDx0aXRsZT5Nb3Rpb25NYXJrIDEuMCAtIGRldmVsb3Blcjwv
dGl0bGU+CisKKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9ydW5u
ZXIvYW5pbW9tZXRlci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVz
b3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzcyI+CisKICAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
dGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVu
bmVyL3Rlc3RzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5l
ci90ZXN0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzIiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5q
cyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgpAQCAtMTgsMTM0ICsyMiwxNDYgQEAKICAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9kMy5taW4uanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWctcnVubmVyL2dyYXBoLmpzIiBjaGFyc2V0
PSJ1dGYtOCI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keT4KKzxib2R5IGNsYXNzPSJzaG93aW5n
LWludHJvIj4KICAgICA8bWFpbj4KLSAgICAgICAgPGhyPgogICAgICAgICA8c2VjdGlvbiBpZD0i
aW50cm8iIGNsYXNzPSJzZWxlY3RlZCI+Ci0gICAgICAgICAgICA8aDE+QW5pbW9tZXRlcjwvaDE+
Ci0gICAgICAgICAgICA8ZGl2PgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN1aXRlcyI+Ci0g
ICAgICAgICAgICAgICAgICAgIDxoMj5TdWl0ZXM6PC9oMj4KLSAgICAgICAgICAgICAgICAgICAg
PHVsIGNsYXNzPSJ0cmVlIj48L3VsPgotICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGlk
PSJkcm9wLXRhcmdldCI+RHJvcCByZXN1bHRzIGhlcmU8L3NwYW4+PC9kaXY+CisgICAgICAgICAg
ICA8aDE+TW90aW9uTWFyazwvaDE+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ij4KKyAg
ICAgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdWl0ZXMi
PgorICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlN1aXRlczo8L2gyPgorICAgICAgICAgICAg
ICAgICAgICAgICAgPHVsIGNsYXNzPSJ0cmVlIj48L3VsPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPGRpdj48c3BhbiBpZD0iZHJvcC10YXJnZXQiPkRyb3AgcmVzdWx0cyBoZXJlPC9zcGFuPjwv
ZGl2PgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRp
diBpZD0ib3B0aW9ucyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aDI+T3B0aW9uczo8L2gy
PgorICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT0iYmVuY2htYXJrLW9wdGlvbnMi
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxh
YmVsPlRlc3QgbGVuZ3RoOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idGVzdC1pbnRlcnZhbCIg
dmFsdWU9IjMwIj4gc2Vjb25kcyBlYWNoPC9sYWJlbD4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkRpc3BsYXk6PC9oMz4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBl
PSJyYWRpbyIgdmFsdWU9Im1pbmltYWwiIGNoZWNrZWQ+IE1pbmltYWw8L2xhYmVsPjwvbGk+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQg
bmFtZT0iZGlzcGxheSIgdHlwZT0icmFkaW8iIHZhbHVlPSJwcm9ncmVzcy1iYXIiPiBQcm9ncmVz
cyBiYXI8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L3VsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8aDM+QWRqdXN0aW5nIHRoZSB0ZXN0IGNvbXBsZXhpdHk6PC9oMz4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0eXBlPSJy
YWRpbyIgdmFsdWU9ImZpeGVkIj4gS2VlcCBhdCBhIGZpeGVkIGNvbXBsZXhpdHk8L2xhYmVsPjwv
bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJzdGVwIj4gS2VlcCBh
dCBhIGZpeGVkIGNvbXBsZXhpdHksIHRoZW4gbWFrZSBhIGJpZyBzdGVwPC9sYWJlbD48L2xpPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0iYWRhcHRpdmUiPiBNYWludGFp
biB0YXJnZXQgRlBTPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlv
IiB2YWx1ZT0icmFtcCIgY2hlY2tlZD4gUmFtcDwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJjb250cm9s
bGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAzMCI+IFJhbXAgQCAzMGZwczwvbGFiZWw+PC9s
aT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UYXJn
ZXQgZnJhbWUgcmF0ZTogPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImZyYW1lLXJhdGUiIHZhbHVl
PSI1MCI+IEZQUzwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxoMz5LYWxtYW4gZmlsdGVyIGVzdGltYXRlZCBlcnJvcjo8L2gz
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+UHJvY2VzcyBlcnJvciAoUSk6
IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJrYWxtYW4tcHJvY2Vzcy1lcnJvciIgdmFsdWU9IjEi
PjwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
bGk+PGxhYmVsPk1lYXN1cmVtZW50IGVycm9yIChSKTogPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9
ImthbG1hbi1tZWFzdXJlbWVudC1lcnJvciIgdmFsdWU9IjQiPjwvbGFiZWw+PC9saT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5UaW1lIG1lYXN1cmVtZW50
IG1ldGhvZDo8L2gzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0
IG5hbWU9InRpbWUtbWVhc3VyZW1lbnQiIHR5cGU9InJhZGlvIiB2YWx1ZT0icGVyZm9ybWFuY2Ui
IGNoZWNrZWQ+IDxjb2RlPnBlcmZvcm1hbmNlLm5vdygpPC9jb2RlPjwvbGFiZWw+PC9saT4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBu
YW1lPSJ0aW1lLW1lYXN1cmVtZW50IiB0eXBlPSJyYWRpbyIgdmFsdWU9ImRhdGUiPiA8Y29kZT5E
YXRlLm5vdygpPC9jb2RlPjwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9k
aXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0ib3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAg
ICAgIDxoMj5PcHRpb25zOjwvaDI+Ci0gICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImJl
bmNobWFyay1vcHRpb25zIj4KLSAgICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAg
ICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGVzdCBsZW5ndGg6
IDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ0ZXN0LWludGVydmFsIiB2YWx1ZT0iMjAiPiBzZWNv
bmRzIGVhY2g8L2xhYmVsPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAg
ICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aDM+RGlzcGxheTo8L2gzPgot
ICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IG5hbWU9ImRpc3BsYXkiIHR5cGU9InJhZGlvIiB2YWx1ZT0ibWlu
aW1hbCIgY2hlY2tlZD4gTWluaW1hbDwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1lPSJkaXNwbGF5IiB0eXBlPSJyYWRpbyIgdmFs
dWU9InByb2dyZXNzLWJhciIgY2hlY2tlZD4gUHJvZ3Jlc3MgYmFyPC9sYWJlbD48L2xpPgotICAg
ICAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAg
ICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGgzPkFkanVz
dGluZyB0aGUgdGVzdCBjb21wbGV4aXR5OjwvaDM+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0i
Y29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJmaXhlZCI+IEtlZXAgYXQgYSBmaXhlZCBj
b21wbGV4aXR5PC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48
bGFiZWw+PGlucHV0IG5hbWU9ImNvbnRyb2xsZXIiIHR5cGU9InJhZGlvIiB2YWx1ZT0ic3RlcCI+
IEtlZXAgYXQgYSBmaXhlZCBjb21wbGV4aXR5LCB0aGVuIG1ha2UgYSBiaWcgc3RlcDwvbGFiZWw+
PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCBuYW1l
PSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9ImFkYXB0aXZlIj4gTWFpbnRhaW4gdGFy
Z2V0IEZQUzwvbGFiZWw+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxh
YmVsPjxpbnB1dCBuYW1lPSJjb250cm9sbGVyIiB0eXBlPSJyYWRpbyIgdmFsdWU9InJhbXAiIGNo
ZWNrZWQ+IFJhbXA8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PjxsYWJlbD48aW5wdXQgbmFtZT0iY29udHJvbGxlciIgdHlwZT0icmFkaW8iIHZhbHVlPSJyYW1w
MzAiPiBSYW1wIEAgMzBmcHM8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
L3VsPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VGFyZ2V0IGZyYW1lIHJhdGU6IDxpbnB1
dCB0eXBlPSJudW1iZXIiIGlkPSJmcmFtZS1yYXRlIiB2YWx1ZT0iNTAiPiBGUFM8L2xhYmVsPgot
ICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICA8aDM+S2FsbWFuIGZpbHRlciBlc3RpbWF0ZWQgZXJyb3I6PC9o
Mz4KLSAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGxhYmVsPlByb2Nlc3MgZXJyb3IgKFEpOiA8aW5wdXQgdHlwZT0ibnVtYmVyIiBp
ZD0ia2FsbWFuLXByb2Nlc3MtZXJyb3IiIHZhbHVlPSIxIj48L2xhYmVsPjwvbGk+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD5NZWFzdXJlbWVudCBlcnJvciAoUik6IDxp
bnB1dCB0eXBlPSJudW1iZXIiIGlkPSJrYWxtYW4tbWVhc3VyZW1lbnQtZXJyb3IiIHZhbHVlPSI0
Ij48L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAg
ICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICA8aDM+VGltZSBtZWFzdXJlbWVudCBtZXRob2Q6PC9oMz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDx1bD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVs
PjxpbnB1dCBuYW1lPSJ0aW1lLW1lYXN1cmVtZW50IiB0eXBlPSJyYWRpbyIgdmFsdWU9InBlcmZv
cm1hbmNlIiBjaGVja2VkPiA8Y29kZT5wZXJmb3JtYW5jZS5ub3coKTwvY29kZT48L2xhYmVsPjwv
bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgbmFtZT0i
dGltZS1tZWFzdXJlbWVudCIgdHlwZT0icmFkaW8iIHZhbHVlPSJkYXRlIj4gPGNvZGU+RGF0ZS5u
b3coKTwvY29kZT48L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgot
ICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAg
ICAgICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgICAgPHA+Rm9yIGFjY3VyYXRl
IHJlc3VsdHMsIHBsZWFzZSB0YWtlIHRoZSBicm93c2VyIHdpbmRvdyBmdWxsIHNjcmVlbiwgb3Ig
cm90YXRlIHRoZSBkZXZpY2UgdG8gbGFuZHNjYXBlIG9yaWVudGF0aW9uLjwvcD4KKyAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJzdGFydC1iZW5jaG1hcmsiPgorICAgICAgICAgICAgICAgICAg
ICA8cCBjbGFzcz0iaGlkZGVuIj5QbGVhc2Ugcm90YXRlIHRoZSBkZXZpY2UgdG8gb3JpZW50YXRp
b24gYmVmb3JlIHN0YXJ0aW5nLjwvcD4KKyAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0i
cnVuLWJlbmNobWFyayIgb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFy
aygpIj5SdW4gYmVuY2htYXJrPC9idXR0b24+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxwPkZvciBhY2N1cmF0ZSByZXN1bHRzLCBwbGVh
c2UgdGFrZSB0aGUgYnJvd3NlciB3aW5kb3cgZnVsbCBzY3JlZW4sIG9yIHJvdGF0ZSB0aGUgZGV2
aWNlIHRvIGxhbmRzY2FwZSBvcmllbnRhdGlvbi48L3A+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz
PSJvcmllbnRhdGlvbi1jaGVjayI+Ci0gICAgICAgICAgICAgICAgPHAgY2xhc3M9ImhpZGRlbiI+
UGxlYXNlIHJvdGF0ZSB0aGUgZGV2aWNlIHRvIG9yaWVudGF0aW9uIGJlZm9yZSBzdGFydGluZy48
L3A+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0icnVuLWJlbmNobWFyayIgb25jbGljaz0i
YmVuY2htYXJrQ29udHJvbGxlci5zdGFydEJlbmNobWFyaygpIj5SdW4gYmVuY2htYXJrPC9idXR0
b24+Ci0gICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgorCiAgICAgICAgIDxz
ZWN0aW9uIGlkPSJ0ZXN0LWNvbnRhaW5lciI+CiAgICAgICAgICAgICA8ZGl2IGlkPSJydW5uaW5n
LXRlc3QiIGNsYXNzPSJmcmFtZS1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgICAgPGRpdiBp
ZD0icHJvZ3Jlc3MiPgogICAgICAgICAgICAgICAgIDxkaXYgaWQ9InByb2dyZXNzLWNvbXBsZXRl
ZCI+PC9kaXY+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9zZWN0aW9uPgorCiAgICAg
ICAgIDxzZWN0aW9uIGlkPSJyZXN1bHRzIj4KLSAgICAgICAgICAgIDxoMT5Bbmltb21ldGVyIHNj
b3JlPC9oMT4KLSAgICAgICAgICAgIDxwIGNsYXNzPSJzY29yZSIgb25jbGljaz0iYmVuY2htYXJr
Q29udHJvbGxlci5zaG93RGVidWdJbmZvKCkiPjwvcD4KLSAgICAgICAgICAgIDxkaXYgaWQ9InJl
c3VsdHMtdGFibGVzIj4KLSAgICAgICAgICAgICAgICA8ZGl2PgotICAgICAgICAgICAgICAgICAg
ICA8dGFibGUgaWQ9InJlc3VsdHMtc2NvcmUiPjwvdGFibGU+Ci0gICAgICAgICAgICAgICAgICAg
IDx0YWJsZSBpZD0icmVzdWx0cy1kYXRhIj48L3RhYmxlPgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYm9keSI+CisgICAgICAgICAgICAgICAgPGgxPk1vdGlvbk1hcmsgc2NvcmU8L2gxPgorICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbCI+CisgICAgICAgICAgICAgICAgICAgIDxz
cGFuIGNsYXNzPSJzbWFsbCI+b24gYSBzbWFsbCBzY3JlZW4gKHBob25lKTwvc3Bhbj4KKyAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lZGl1bSI+b24gYSBtZWRpdW0gc2NyZWVuIChs
YXB0b3AsIHRhYmxldCk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJs
YXJnZSI+b24gYSBsYXJnZSBzY3JlZW4gKGRlc2t0b3ApPC9zcGFuPgogICAgICAgICAgICAgICAg
IDwvZGl2PgotICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0icmVzdWx0cy1oZWFkZXIiPjwvdGFi
bGU+CisgICAgICAgICAgICAgICAgPHAgY2xhc3M9InNjb3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtD
b250cm9sbGVyLnNob3dEZWJ1Z0luZm8oKSI+PC9wPgorICAgICAgICAgICAgICAgIDxwIGNsYXNz
PSJjb25maWRlbmNlIj48L3A+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVzdWx0cy10YWJs
ZXMiIGNsYXNzPSJ0YWJsZS1jb250YWluZXIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLXNjb3JlIj48L3RhYmxl
PgorICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWRhdGEiPjwvdGFi
bGU+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8dGFi
bGUgaWQ9InJlc3VsdHMtaGVhZGVyIj48L3RhYmxlPgorICAgICAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYmVuY2htYXJrQ29udHJvbGxlci5yZXN0
YXJ0QmVuY2htYXJrKCkiPlRlc3QgQWdhaW48L2J1dHRvbj4KKyAgICAgICAgICAgICAgICA8cD4K
KyAgICAgICAgICAgICAgICAgICAgJ2onOiBTaG93IEpTT04gcmVzdWx0czxici8+CisgICAgICAg
ICAgICAgICAgICAgICdzJzogU2VsZWN0IHZhcmlvdXMgcmVzdWx0cyBmb3IgY29weS9wYXN0ZSAo
dXNlIHJlcGVhdGVkbHkgdG8gY3ljbGUpCisgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAg
ICAgPC9kaXY+Ci0gICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xs
ZXIucmVzdGFydEJlbmNobWFyaygpIj5UZXN0IEFnYWluPC9idXR0b24+Ci0gICAgICAgICAgICA8
cD4KLSAgICAgICAgICAgICAgICAnaic6IFNob3cgSlNPTiByZXN1bHRzPGJyLz4KLSAgICAgICAg
ICAgICAgICAncyc6IFNlbGVjdCB2YXJpb3VzIHJlc3VsdHMgZm9yIGNvcHkvcGFzdGUgKHVzZSBy
ZXBlYXRlZGx5IHRvIGN5Y2xlKQotICAgICAgICAgICAgPC9wPgogICAgICAgICA8L3NlY3Rpb24+
CiAgICAgICAgIDxzZWN0aW9uIGlkPSJ0ZXN0LWdyYXBoIj4KLSAgICAgICAgICAgIDxoZWFkZXI+
Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNo
b3dSZXN1bHRzKCkiPiZsdDsgUmVzdWx0czwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxoMT5H
cmFwaDo8L2gxPgotICAgICAgICAgICAgPC9oZWFkZXI+Ci0gICAgICAgICAgICA8bmF2PgotICAg
ICAgICAgICAgICAgIDxmb3JtIG5hbWU9ImdyYXBoLXR5cGUiPgotICAgICAgICAgICAgICAgICAg
ICA8dWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJy
YWRpbyIgbmFtZT0iZ3JhcGgtdHlwZSIgdmFsdWU9InRpbWUiPiBUaW1lIGdyYXBoPC9sYWJlbD48
L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0icmFk
aW8iIG5hbWU9ImdyYXBoLXR5cGUiIHZhbHVlPSJjb21wbGV4aXR5IiBjaGVja2VkPiBDb21wbGV4
aXR5IGdyYXBoPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAg
ICAgICAgICAgIDwvZm9ybT4KLSAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJ0aW1lLWdyYXBo
LW9wdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibWFya2VycyIgY2hl
Y2tlZD4gTWFya2VyczwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+
dGltZTogPHNwYW4gY2xhc3M9InRpbWUiPjwvc3Bhbj48L3NwYW4+PC9saT4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJhdmVy
YWdlcyIgY2hlY2tlZD4gQXZlcmFnZXM8L2xhYmVsPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eSIg
Y2hlY2tlZD4gQ29tcGxleGl0eTwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
PHNwYW4gY2xhc3M9ImNvbXBsZXhpdHkiPjwvc3Bhbj48L2xpPgotICAgICAgICAgICAgICAgICAg
ICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJhd0ZQUyIgY2hl
Y2tlZD4gUmF3IEZQUzwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4g
Y2xhc3M9InJhd0ZQUyI+PC9zcGFuPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+
PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmlsdGVyZWRGUFMiIGNoZWNrZWQ+
IEZpbHRlcmVkIEZQUzwvbGFiZWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4g
Y2xhc3M9ImZpbHRlcmVkRlBTIj48L3NwYW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9ucyIgY2hl
Y2tlZD4gUmVncmVzc2lvbnM8L2xhYmVsPgotICAgICAgICAgICAgICAgICAgICA8L3VsPgotICAg
ICAgICAgICAgICAgIDwvZm9ybT4KLSAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPSJjb21wbGV4
aXR5LWdyYXBoLW9wdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNlcmll
cyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgbmFtZT0ic2VyaWVzLXJhdyIgY2hlY2tlZD4gU2VyaWVzIHJhdzwvbGFiZWw+PC9saT4K
LSAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94
IiBuYW1lPSJzZXJpZXMtYXZlcmFnZSI+IFNlcmllcyBhdmVyYWdlPC9sYWJlbD48L2xpPgotICAg
ICAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgICAgICAgICA8dWw+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0i
cmVncmVzc2lvbi10aW1lLXNjb3JlIj4gQ29udHJvbGxlciBzY29yZTwvbGFiZWw+PC9saT4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBu
YW1lPSJib290c3RyYXAtc2NvcmUiIGNoZWNrZWQ+IEJvb3RzdHJhcCBzY29yZSBhbmQgaGlzdG9n
cmFtPC9sYWJlbD48L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5w
dXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNvbXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUt
cmF3IiBjaGVja2VkPiBSZWdyZXNzaW9uLCBzZXJpZXMgcmF3PC9sYWJlbD48c3BhbiBpZD0iY29t
cGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0ZS1yYXciPjwvc3Bhbj48L2xpPgotICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNv
bXBsZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtYXZlcmFnZSI+IFJlZ3Jlc3Npb24sIHNlcmll
cyBhdmVyYWdlPC9sYWJlbD48c3BhbiBpZD0iY29tcGxleGl0eS1yZWdyZXNzaW9uLWFnZ3JlZ2F0
ZS1hdmVyYWdlIj48L3NwYW4+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgPC91bD4KLSAgICAg
ICAgICAgICAgICA8L2Zvcm0+Ci0gICAgICAgICAgICA8L25hdj4KLSAgICAgICAgICAgIDxwIGNs
YXNzPSJzY29yZSI+PC9wPgotICAgICAgICAgICAgPHAgY2xhc3M9Im1lYW4iPjwvcD4KLSAgICAg
ICAgICAgIDxkaXYgaWQ9InRlc3QtZ3JhcGgtZGF0YSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJib2R5Ij4KKyAgICAgICAgICAgICAgICA8aGVhZGVyPgorICAgICAgICAgICAgICAg
ICAgICA8YnV0dG9uIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc2hvd1Jlc3VsdHMoKSI+
Jmx0OyBSZXN1bHRzPC9idXR0b24+CisgICAgICAgICAgICAgICAgICAgIDxoMT5HcmFwaDo8L2gx
PgorICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NvcmUiPjwvcD4KKyAgICAgICAgICAg
ICAgICAgICAgPHAgY2xhc3M9ImNvbmZpZGVuY2UiPjwvcD4KKyAgICAgICAgICAgICAgICA8L2hl
YWRlcj4KKyAgICAgICAgICAgICAgICA8bmF2PgorICAgICAgICAgICAgICAgICAgICA8Zm9ybSBu
YW1lPSJncmFwaC10eXBlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0i
Z3JhcGgtdHlwZSIgdmFsdWU9InRpbWUiPiBUaW1lIGdyYXBoPC9sYWJlbD48L2xpPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1l
PSJncmFwaC10eXBlIiB2YWx1ZT0iY29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0eSBncmFw
aDwvbGFiZWw+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAg
ICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT0idGltZS1n
cmFwaC1vcHRpb25zIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0i
bWFya2VycyIgY2hlY2tlZD4gTWFya2VyczwvbGFiZWw+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxzcGFuPnRpbWU6IDxzcGFuIGNsYXNzPSJ0aW1lIj48L3NwYW4+PC9zcGFuPjwv
bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlwZT0i
Y2hlY2tib3giIG5hbWU9ImF2ZXJhZ2VzIiBjaGVja2VkPiBBdmVyYWdlczwvbGFiZWw+PC9saT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgbmFtZT0iY29tcGxleGl0eSIgY2hlY2tlZD4gQ29tcGxleGl0eTwvbGFiZWw+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb21wbGV4aXR5Ij48L3Nw
YW4+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGxhYmVsPjxpbnB1dCB0
eXBlPSJjaGVja2JveCIgbmFtZT0icmF3RlBTIiBjaGVja2VkPiBSYXcgRlBTPC9sYWJlbD4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJhd0ZQUyI+PC9zcGFu
PjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48aW5wdXQgdHlw
ZT0iY2hlY2tib3giIG5hbWU9ImZpbHRlcmVkRlBTIiBjaGVja2VkPiBGaWx0ZXJlZCBGUFM8L2xh
YmVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsdGVy
ZWRGUFMiPjwvc3Bhbj48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFi
ZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9ucyIgY2hlY2tlZD4gUmVn
cmVzc2lvbnM8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgICAgICAgICA8L2Zvcm0+CisgICAgICAgICAgICAgICAgICAgIDxmb3JtIG5hbWU9
ImNvbXBsZXhpdHktZ3JhcGgtb3B0aW9ucyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dWwg
Y2xhc3M9InNlcmllcyI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlcmllcy1yYXciIGNoZWNrZWQ+IFNlcmllcyBy
YXc8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxsYWJlbD48
aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlcmllcy1hdmVyYWdlIj4gU2VyaWVzIGF2ZXJh
Z2U8L2xhYmVsPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFi
ZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWdyZXNzaW9uLXRpbWUtc2NvcmUiPiBD
b250cm9sbGVyIHNjb3JlPC9sYWJlbD48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJib290c3RyYXAtc2NvcmUi
IGNoZWNrZWQ+IEJvb3RzdHJhcCBzY29yZSBhbmQgaGlzdG9ncmFtPC9sYWJlbD48L2xpPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94
IiBuYW1lPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVnYXRlLXJhdyIgY2hlY2tlZD4gUmVn
cmVzc2lvbiwgc2VyaWVzIHJhdzwvbGFiZWw+PHNwYW4gaWQ9ImNvbXBsZXhpdHktcmVncmVzc2lv
bi1hZ2dyZWdhdGUtcmF3Ij48L3NwYW4+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bGk+PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY29tcGxleGl0eS1yZWdy
ZXNzaW9uLWFnZ3JlZ2F0ZS1hdmVyYWdlIj4gUmVncmVzc2lvbiwgc2VyaWVzIGF2ZXJhZ2U8L2xh
YmVsPjxzcGFuIGlkPSJjb21wbGV4aXR5LXJlZ3Jlc3Npb24tYWdncmVnYXRlLWF2ZXJhZ2UiPjwv
c3Bhbj48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAg
ICAgICAgPC9mb3JtPgorICAgICAgICAgICAgICAgIDwvbmF2PgorICAgICAgICAgICAgICAgIDxk
aXYgaWQ9InRlc3QtZ3JhcGgtZGF0YSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgPC9zZWN0aW9uPgotICAgICAgICA8aHI+CiAgICAgPC9tYWluPgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAppbmRleCBmNjZmNjNkLi4zODE5
M2E4IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbApAQCAtNCw3ICs0LDcg
QEAKICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgdXNlci1zY2FsYWJsZT1ubyI+CiAKLSAgICA8
dGl0bGU+TW90aW9uIE1hcmsgMS4wPC90aXRsZT4KKyAgICA8dGl0bGU+TW90aW9uTWFyayAxLjA8
L3RpdGxlPgogCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcnVu
bmVyL2FuaW1vbWV0ZXIuY3NzIj4KIApAQCAtMTIsNyArMTIsNyBAQAogICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyIgZGVmZXI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zdGF0aXN0aWNzLmpzIiBkZWZlcj48L3NjcmlwdD4KIAotICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIiBkZWZlcj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcyIgY2hhcnNldD0idXRmLTgiIGRl
ZmVyPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0
ZXIuanMiIGRlZmVyPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5u
ZXIvYmVuY2htYXJrLXJ1bm5lci5qcyIgZGVmZXI+PC9zY3JpcHQ+CkBAIC0yOSw3ICsyOSw3IEBA
CiAgICAgICAgIDxzZWN0aW9uIGlkPSJpbnRybyIgY2xhc3M9InNlbGVjdGVkIj4KICAgICAgICAg
ICAgIDxzdmcgY2xhc3M9ImxvZ28iPjx1c2UgeGxpbms6aHJlZj0icmVzb3VyY2VzL3J1bm5lci9s
b2dvLnN2ZyNyb290Ij48L3N2Zz4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvZHkiPgotICAg
ICAgICAgICAgICAgIDxwPk1vdGlvbiBNYXJrIGlzIGEgZ3JhcGhpY3MgYmVuY2htYXJrIHRoYXQg
bWVhc3VyZXMgYSBicm93c2Vy4oCZcyBjYXBhYmlsaXR5IHRvIGFuaW1hdGUgY29tcGxleCBzY2Vu
ZXMgYXQgYSB0YXJnZXQgZnJhbWUgcmF0ZS48L3A+CisgICAgICAgICAgICAgICAgPHA+TW90aW9u
TWFyayBpcyBhIGdyYXBoaWNzIGJlbmNobWFyayB0aGF0IG1lYXN1cmVzIGEgYnJvd3NlcuKAmXMg
Y2FwYWJpbGl0eSB0byBhbmltYXRlIGNvbXBsZXggc2NlbmVzIGF0IGEgdGFyZ2V0IGZyYW1lIHJh
dGUuPC9wPgogICAgICAgICAgICAgICAgIDxwPkZvciBhY2N1cmF0ZSByZXN1bHRzLCBwbGVhc2Ug
dGFrZSB5b3VyIGJyb3dzZXIgd2luZG93IGZ1bGwgc2NyZWVuLCBvciByb3RhdGUgeW91ciBkZXZp
Y2UgdG8gbGFuZHNjYXBlIG9yaWVudGF0aW9uLjwvcD4KICAgICAgICAgICAgICAgICA8cCBjbGFz
cz0icG9ydHJhaXQtb3JpZW50YXRpb24tY2hlY2siPjxiPlBsZWFzZSByb3RhdGUgeW91ciBkZXZp
Y2UuPC9iPjwvcD4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5kc2NhcGUtb3Jp
ZW50YXRpb24tY2hlY2siIG9uY2xpY2s9ImJlbmNobWFya0NvbnRyb2xsZXIuc3RhcnRCZW5jaG1h
cmsoKSI+UnVuIEJlbmNobWFyazwvYnV0dG9uPgpAQCAtNDEsOCArNDEsMjIgQEAKICAgICAgICAg
PHNlY3Rpb24gaWQ9InJlc3VsdHMiPgogICAgICAgICAgICAgPHN2ZyBjbGFzcz0ibG9nbyI+PHVz
ZSB4bGluazpocmVmPSJyZXNvdXJjZXMvcnVubmVyL2xvZ28uc3ZnI3Jvb3QiPjwvc3ZnPgogICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYm9keSI+Ci0gICAgICAgICAgICAgICAgPHAgY2xhc3M9InNj
b3JlIiBvbmNsaWNrPSJiZW5jaG1hcmtDb250cm9sbGVyLnNob3dEZWJ1Z0luZm8oKSI+PC9wPgot
ICAgICAgICAgICAgICAgIDx0YWJsZSBpZD0icmVzdWx0cy1oZWFkZXIiPjwvdGFibGU+PHRhYmxl
IGlkPSJyZXN1bHRzLXNjb3JlIj48L3RhYmxlPjxicj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJzY29yZS1jb250YWluZXIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJz
Y29yZSI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZGVuY2Ui
PjwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXRhaWwiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNtYWxsIj5vbiBhIHNtYWxsIHNjcmVlbiAo
cGhvbmUpPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lZGl1
bSI+b24gYSBtZWRpdW0gc2NyZWVuIChsYXB0b3AsIHRhYmxldCk8L3NwYW4+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFyZ2UiPm9uIGEgbGFyZ2Ugc2NyZWVuIChkZXNr
dG9wKTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtY29udGFpbmVyIj4KKyAg
ICAgICAgICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBp
ZD0icmVzdWx0cy1zY29yZSI+PC90YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJs
ZSBpZD0icmVzdWx0cy1kYXRhIj48L3RhYmxlPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGlkPSJyZXN1bHRzLWhlYWRlciI+PC90YWJsZT4K
KyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9
ImJlbmNobWFya0NvbnRyb2xsZXIuc3RhcnRCZW5jaG1hcmsoKSI+VGVzdCBBZ2FpbjwvYnV0dG9u
PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvc2VjdGlvbj4KZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0
ZXIuY3NzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5u
ZXIvYW5pbW9tZXRlci5jc3MKaW5kZXggMWQzZGQzMy4uM2YwOGQ0OSAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRl
ci5jc3MKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1y
dW5uZXIvYW5pbW9tZXRlci5jc3MKQEAgLTEsOTMgKzEsNjEgQEAKLS8qIE91dGVyIGhhcm5lc3Mg
Ki8KLWh0bWwsYm9keSB7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIG1hcmdpbjogMHB4OwotICAg
IHBhZGRpbmc6IDBweDsKLX0KLQogYm9keSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0
MSwgMjQxLCAyNDEpOwotICAgIGNvbG9yOiByZ2IoOTYsIDk2LCA5Nik7Ci0gICAgZm9udC1mYW1p
bHk6IC1hcHBsZS1zeXN0ZW0sICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgVmVyZGFuYSwg
c2Fucy1zZXJpZjsKLX0KLQotbWFpbiB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAx
MDAlOwotCi0gICAgZGlzcGxheTogZmxleDsKLSAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAg
IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKLSAgICBmbGV4LWZsb3c6IGNvbHVtbjsKKyAg
ICBmb250LXNpemU6IGluaXRpYWw7CiB9CiAKLWhyIHsKLSAgICBmbGV4OiAxIDAgMjBweDsKLSAg
ICB3aWR0aDogMXB4OwotICAgIGJvcmRlcjogMDsKLSAgICBtYXJnaW46IDA7Ci19Citib2R5LnNo
b3dpbmctaW50cm8sCitib2R5LnNob3dpbmctcmVzdWx0cywKK2JvZHkuc2hvd2luZy10ZXN0LWdy
YXBoIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTYsIDk2LCA5Nik7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogaW5pdGlhbDsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbDsKKyAg
ICBiYWNrZ3JvdW5kLXNpemU6IGluaXRpYWw7CisgICAgYW5pbWF0aW9uOiBpbml0aWFsOworICAg
IHdpbGwtY2hhbmdlOiBpbml0aWFsOwogCi1zZWN0aW9uIHsKLSAgICBib3gtc2l6aW5nOiBib3Jk
ZXItYm94OwotICAgIHdpZHRoOiAxMDAlOwotICAgIGRpc3BsYXk6IG5vbmU7CisgICAgY29sb3I6
IHJnYigyMzUsIDIzNSwgMjM1KTsKIH0KIAotc2VjdGlvbi5zZWxlY3RlZCB7Ci0gICAgZGlzcGxh
eTogaW5pdGlhbDsKK3NlY3Rpb24gLmJvZHkgeworICAgIG1hcmdpbi1sZWZ0OiAwOworICAgIG1h
eC13aWR0aDogaW5pdGlhbDsKKyAgICB0cmFuc2Zvcm06IG5vbmU7CiB9CiAKIGgxIHsKICAgICBm
b250LXNpemU6IDNlbTsKKyAgICBtYXJnaW46IDEuNWVtIDAgLjVlbTsKICAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ci0gICAgZm9udC13ZWlnaHQ6IDYwMDsKLSAgICBtYXJnaW46IDEwdmggMDsKLSAg
ICBmbGV4OiAwIDEgMWVtOwotfQotCi0uaGlkZGVuIHsKLSAgICBkaXNwbGF5OiBub25lOwogfQog
CiBidXR0b24gewotICAgIGZsZXg6IDAgMCBhdXRvOworICAgIHRyYW5zZm9ybTogbm9uZSAhaW1w
b3J0YW50OworICAgIG1pbi13aWR0aDogaW5pdGlhbDsKKyAgICB0cmFuc2l0aW9uOiBub25lOwor
ICAgIGFuaW1hdGlvbjogbm9uZTsKKyAgICB3aWxsLWNoYW5nZTogaW5pdGlhbDsKKwogICAgIGRp
c3BsYXk6IGJsb2NrOwogICAgIGZvbnQtc2l6ZTogMS41ZW07Ci0gICAgYm9yZGVyOiAycHggc29s
aWQgcmdiKDk2LCA5NiwgOTYpOwotICAgIGNvbG9yOiByZ2IoOTYsIDk2LCA5Nik7CisgICAgYm9y
ZGVyOiAycHggc29saWQgcmdiKDIzNSwgMjM1LCAyMzUpOworICAgIGNvbG9yOiByZ2IoMjM1LCAy
MzUsIDIzNSk7CiAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgYm9yZGVyLXJhZGl1
czogMTBweDsKICAgICBwYWRkaW5nOiAuNWVtIDJlbTsKIH0KIAogYnV0dG9uOmhvdmVyIHsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4xKTsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xKTsKICAgICBjdXJzb3I6IHBvaW50ZXI7CiB9CiAK
IGJ1dHRvbjphY3RpdmUgewogICAgIGNvbG9yOiBpbmhlcml0OwotICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYmEoMCwgMCwgMCwgLjIpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAy
NTUsIDI1NSwgLjIpOwogfQogCiBidXR0b246ZGlzYWJsZWQgewotICAgIGJvcmRlci1jb2xvcjog
cmdiYSg5NiwgOTYsIDk2LCAuNSk7Ci0gICAgY29sb3I6IHJnYmEoOTYsIDk2LCA5NiwgLjUpOwot
fQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDEwMjRweCksCi0gICAg
c2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBs
YW5kc2NhcGUpIHsKLSAgICBzZWN0aW9uIHsKLSAgICAgICAgcGFkZGluZzogMCAyMHB4OwotICAg
IH0KLQotICAgIHNlY3Rpb24uc2VsZWN0ZWQgewotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAg
ICAgICBhbGlnbi1pdGVtczogY2VudGVyOwotICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgt
c3RhcnQ7Ci0gICAgICAgIGZsZXgtZmxvdzogY29sdW1uOwotICAgIH0KKyAgICBib3JkZXItY29s
b3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgLjUpOworICAgIGNvbG9yOiByZ2JhKDIzNSwgMjM1LCAy
MzUsIC41KTsKIH0KIAogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDQxNHB4
KSwKQEAgLTk2LDI4MCArNjQsMTQgQEAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICAgZm9udC1z
aXplOiAyLjVlbTsKICAgICB9CiAKLSAgICBociB7Ci0gICAgICAgIGZsZXg6IDAgMCAwOwotICAg
IH0KLQogICAgIHNlY3Rpb24gewogICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAg
ICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgaGVpZ2h0OiAxMDAlOwotICAgICAgICBhbGlnbi1z
ZWxmOiBzdHJldGNoOwogICAgICAgICBwYWRkaW5nOiAwIDVweDsKICAgICB9CiB9CiAKLS8qIElu
dHJvIHNlY3Rpb24gKi8KLSNpbnRyby5zZWxlY3RlZCB7Ci0gICAgZmxleDogMSAwIGF1dG87Ci19
Ci0KLSNpbnRybyA+IHAgewotICAgIGZsZXg6IDAgMSBhdXRvOwotICAgIHBhZGRpbmc6IC41ZW0g
MDsKLSAgICBtYXJnaW46IDA7Ci0gICAgZm9udC1zaXplOiAyZW07Ci19Ci0KLSNpbnRybyAub3Jp
ZW50YXRpb24tY2hlY2sgewotICAgIHBhZGRpbmc6IDEwdmggMDsKLSAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ci19Ci0KLSNpbnRybyAub3JpZW50YXRpb24tY2hlY2sgcCB7Ci0gICAgZm9udC1zaXpl
OiAxZW07Ci0gICAgY29sb3I6IGhzbCgxMSwgNzIlLCA1MCUpOwotICAgIG1hcmdpbi1ib3R0b206
IDFlbTsKLSAgICAtYXBwbGUtdHJhaWxpbmctd29yZDogLWFwcGxlLXBhcnRpYWxseS1iYWxhbmNl
ZDsKLX0KLQotI2ludHJvIC5vcmllbnRhdGlvbi1jaGVjayBidXR0b24gewotICAgIG1hcmdpbjog
MCBhdXRvOwotfQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDEwMjRw
eCksCi0gICAgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG9yaWVu
dGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAjaW50cm8gcCB7Ci0gICAgICAgIG1heC13aWR0aDog
ODAwcHg7Ci0gICAgICAgIG1hcmdpbjogMDsKLSAgICB9Ci19Ci0KLUBtZWRpYSBzY3JlZW4gYW5k
IChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCi0gICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1o
ZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAgICAjaW50cm8u
c2VsZWN0ZWQgewotICAgICAgICBkaXNwbGF5OiBmbGV4OwotICAgICAgICBhbGlnbi1pdGVtczog
Y2VudGVyOwotICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0gICAgICAgIGZs
ZXgtZmxvdzogY29sdW1uOwotICAgIH0KLQotICAgICNpbnRybyBwIHsKLSAgICAgICAgcGFkZGlu
Zy1sZWZ0OiAyMHB4OwotICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OwotICAgICAgICBmb250
LXNpemU6IDEuNWVtOwotICAgIH0KLX0KLQotLyogUnVubmluZyB0ZXN0IHNlY3Rpb24gKi8KLSN0
ZXN0LWNvbnRhaW5lci5zZWxlY3RlZCB7Ci0gICAgZGlzcGxheTogZmxleDsKLQotICAgIGFsaWdu
LWl0ZW1zOiBjZW50ZXI7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ci19Ci0KLS5mcmFt
ZS1jb250YWluZXIgPiBpZnJhbWUgewotICAgIHdpZHRoOiAxMjAwcHg7Ci0gICAgaGVpZ2h0OiA2
MDBweDsKLSAgICBib3JkZXI6IDA7Ci0gICAgbWFyZ2luOiAwIGF1dG87Ci19Ci0KLUBtZWRpYSBz
Y3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCi0gICAgc2NyZWVuIGFuZCAobWF4
LWRldmljZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKLSAg
ICAjdGVzdC1jb250YWluZXIgewotICAgICAgICBwYWRkaW5nOiAwOwotICAgIH0KLQotICAgIC5m
cmFtZS1jb250YWluZXIgewotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgICAgaGVpZ2h0OiBj
YWxjKDEwMCUgKyAxcHgpOwotICAgIH0KLQotICAgIC5mcmFtZS1jb250YWluZXIgPiBpZnJhbWUg
ewotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgICAgaGVpZ2h0OiAxMDAlOwotICAgIH0KLX0K
LQotQG1lZGlhIChtaW4tZGV2aWNlLWhlaWdodDogNzY4cHgpIGFuZCAobWF4LWRldmljZS1oZWln
aHQ6IDEwMjRweCkgewotICAgIC5mcmFtZS1jb250YWluZXIgPiBpZnJhbWUgewotICAgICAgICB3
aWR0aDogOTAwcHg7Ci0gICAgICAgIGhlaWdodDogNjAwcHg7Ci0gICAgfQotfQotCi1AbWVkaWEg
c2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogMTAyNHB4KSBhbmQgKG1pbi1kZXZpY2UtaGVp
Z2h0OiAxMzY2cHgpIHsKLSAgICAuZnJhbWUtY29udGFpbmVyID4gaWZyYW1lIHsKLSAgICAgICAg
d2lkdGg6IDEyMDBweDsKLSAgICAgICAgaGVpZ2h0OiA4MDBweDsKLSAgICB9Ci19Ci0KLUBtZWRp
YSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE4MDBweCkgewotICAgIC5mcmFtZS1jb250YWluZXIg
PiBpZnJhbWUgewotICAgICAgICB3aWR0aDogMTYwMHB4OwotICAgICAgICBoZWlnaHQ6IDgwMHB4
OwotICAgIH0KLX0KLQotLyogUmVzdWx0cyBzZWN0aW9uICovCi0jcmVzdWx0cyB7Ci0gICAgdGV4
dC1hbGlnbjogY2VudGVyOwotfQotCi0jcmVzdWx0cy5zZWxlY3RlZCB7Ci0gICAgZmxleDogMSAw
IGF1dG87Ci19Ci0KLS5zY29yZSB7Ci0gICAgZm9udC1zaXplOiA1ZW07Ci0gICAgZm9udC13ZWln
aHQ6IGJvbGQ7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0jcmVzdWx0cy10YWJsZXMgewotICAgIGRp
cmVjdGlvbjogcnRsOwotCi0gICAgZGlzcGxheTogZmxleDsKLQotICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7Ci0gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ci0KLSAgICBtYXJnaW46IDNlbSAw
OwotfQotCi0jcmVzdWx0cyB0YWJsZSB7Ci0gICAgZGlyZWN0aW9uOiBsdHI7Ci0gICAgYm9yZGVy
LXNwYWNpbmc6IDA7Ci19Ci0KLSNyZXN1bHRzIHRoIHsKLSAgICBwYWRkaW5nOiAuNWVtIDA7Ci19
Ci0KLSNyZXN1bHRzIHRyIHRkIHsKLSAgICBwYWRkaW5nOiAuMjVlbSAwOwotfQotCi0jcmVzdWx0
cy1oZWFkZXIgdGQsICNyZXN1bHRzLWhlYWRlciB0aCB7Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsK
LX0KLSNyZXN1bHRzLWhlYWRlciB0ciB0ZCB7Ci0gICAgcGFkZGluZy1yaWdodDogMWVtOwotfQot
I3Jlc3VsdHMtc2NvcmUgdGQsICNyZXN1bHRzLXNjb3JlIHRoIHsKLSAgICB0ZXh0LWFsaWduOiBy
aWdodDsKLX0KLSNyZXN1bHRzIGZvb3RlciB7Ci0gICAgcGFkZGluZy1ib3R0b206IDEwdmg7Ci19
Ci0KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCi0gICAgc2Ny
ZWVuIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDQxNHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5k
c2NhcGUpIHsKLSAgICAjcmVzdWx0cy5zZWxlY3RlZCB7Ci0gICAgICAgIHBhZGRpbmc6IDAgMjBw
eDsKLSAgICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsK
LSAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwotICAgICAgICBmbGV4LWZsb3c6
IGNvbHVtbjsKLSAgICB9Ci0KLSAgICAuc2NvcmUgewotICAgICAgICBmb250LXNpemU6IDNlbTsK
LSAgICB9Ci19Ci0KLSNvdmVybGF5IHsKLSAgICBwb3NpdGlvbjogZml4ZWQ7Ci0gICAgd2lkdGg6
IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIHRvcDogMDsKLSAgICBsZWZ0OiAwOwotICAg
IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ci0gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAx
MCwgLjgpOwotfQotCi1Ac3VwcG9ydHMgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEw
cHgpKSB7Ci0gICAgI292ZXJsYXkgewotICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDEw
LCAuNCk7Ci0gICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwotICAg
IH0KLX0KLQotI292ZXJsYXkgPiBkaXYgewotICAgIHdpZHRoOiA1MDBweDsKLSAgICBoZWlnaHQ6
IDUwMHB4OwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBtYXJnaW4tdG9wOiAtMjUwcHg7
Ci0gICAgbWFyZ2luLWxlZnQ6IC0yNTBweDsKLSAgICB0b3A6IDUwJTsKLSAgICBsZWZ0OiA1MCU7
Ci0gICAgZGlzcGxheTogZmxleDsKLSAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7Ci0g
ICAgZmxleC1mbG93OiBjb2x1bW47Ci19Ci0KLSNvdmVybGF5ID4gZGl2IGRpdiB7Ci0gICAgZmxl
eDogMSAxIGF1dG87Ci0gICAgb3ZlcmZsb3c6IHNjcm9sbDsKLSAgICBib3JkZXI6IDFweCBzb2xp
ZCByZ2IoMjQxLCAyNDEsIDI0MSk7Ci0gICAgcGFkZGluZzogMnB4OwotICAgIGJveC1zaXppbmc6
IGJvcmRlci1ib3g7Ci19Ci0KLSNvdmVybGF5IGJ1dHRvbiB7Ci0gICAgbWFyZ2luOiAxZW0gNWVt
OwotICAgIGJvcmRlci1jb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOwotICAgIGNvbG9yOiByZ2Io
MjQxLCAyNDEsIDI0MSk7Ci19Ci0KLSNvdmVybGF5IGJ1dHRvbjpob3ZlciB7Ci0gICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMSk7Ci19Ci0KLSNvdmVybGF5IGJ1dHRv
bjphY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjIp
OwotfQotCi0vKiBEZWJ1ZyBzcGVjaWZpYyAqLwotYm9keSB7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDk2LCA5NiwgOTYpOwotICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7Ci19Ci0K
LWgxIHsKLSAgICBtYXJnaW46IDV2aCAwOwotfQotCi1idXR0b24gewotICAgIGJvcmRlcjogMnB4
IHNvbGlkIHJnYigyMzUsIDIzNSwgMjM1KTsKLSAgICBjb2xvcjogcmdiKDIzNSwgMjM1LCAyMzUp
OwotfQotCi1idXR0b246ZGlzYWJsZWQgewotICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzUsIDIz
NSwgMjM1LCAuNSk7Ci0gICAgY29sb3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgLjUpOwotfQotCi1i
dXR0b246aG92ZXIgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg
LjEpOwotICAgIGN1cnNvcjogcG9pbnRlcjsKLX0KLQotYnV0dG9uOmFjdGl2ZSB7Ci0gICAgY29s
b3I6IGluaGVyaXQ7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAu
Mik7Ci19Ci0KLUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE4MDBweCkgewotICAgIHNl
Y3Rpb24gewotICAgICAgICB3aWR0aDogMTYwMHB4OwotICAgICAgICBoZWlnaHQ6IDgwMHB4Owot
ICAgIH0KLX0KLQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRyZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNDYwLDIwICsxNjIsNTQgQEAgbGFiZWwu
dHJlZS1sYWJlbCB7CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaW50cm8gewotICAgIGZs
ZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci0gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0Owot
ICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgICBwYWRkaW5nOiAwOworICAgIG9wYWNpdHk6
IGluaXRpYWw7CisgICAgdHJhbnNpdGlvbjogbm9uZTsKK30KKworI2ludHJvIC5ib2R5ID4gcCB7
CisgICAgcGFkZGluZzogMWVtIDA7CisgICAgbWFyZ2luOiAwIGF1dG87CisgICAgdGV4dC1hbGln
bjogY2VudGVyOworfQorCisjaW50cm8gLnN0YXJ0LWJlbmNobWFyayB7CisgICAgcGFkZGluZzog
MTB2aCAwOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworI2ludHJvIC5zdGFydC1iZW5j
aG1hcmsgcCB7CisgICAgY29sb3I6IGhzbCgxMSwgNzIlLCA1MCUpOworICAgIG1hcmdpbi1ib3R0
b206IDFlbTsKKyAgICAtYXBwbGUtdHJhaWxpbmctd29yZDogLWFwcGxlLXBhcnRpYWxseS1iYWxh
bmNlZDsKK30KKworI2ludHJvIC5zdGFydC1iZW5jaG1hcmsgYnV0dG9uIHsKKyAgICBtYXJnaW46
IDAgYXV0bzsKK30KKworCitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0
cHgpLAorICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmll
bnRhdGlvbjogbGFuZHNjYXBlKSB7CisgICAgI2ludHJvLnNlbGVjdGVkIHsKKyAgICAgICAgZGlz
cGxheTogZmxleDsKKyAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICAgICAganVzdGlm
eS1jb250ZW50OiBmbGV4LXN0YXJ0OworICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjsKKyAgICB9
CiAKLSAgICBtaW4taGVpZ2h0OiA2MDBweDsKLSAgICBoZWlnaHQ6IGF1dG87CisgICAgI2ludHJv
IHAgeworICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CisgICAgICAgIHBhZGRpbmctcmlnaHQ6
IDIwcHg7CisgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CisgICAgfQogfQogCiAjaW50cm8gaDIg
ewotICAgIG1hcmdpbi10b3A6IDA7CiAgICAgZm9udC1zaXplOiAxLjJlbTsKIH0KIAotI2ludHJv
ID4gZGl2OmZpcnN0LW9mLXR5cGUgeworI2ludHJvIC5ib2R5ID4gZGl2OmZpcnN0LW9mLXR5cGUg
ewogICAgIHdpZHRoOiAxMDAlOwogICAgIG1hcmdpbjogMmVtIDAgMDsKICAgICBmbGV4LWRpcmVj
dGlvbjogcm93OwpAQCAtNTU4LDI4ICsyOTQsMTggQEAgbGFiZWwudHJlZS1sYWJlbCB7CiAgICAg
Zm9udC1zaXplOiAxZW07CiB9CiAKLSNpbnRybyAub3JpZW50YXRpb24tY2hlY2sgeworI2ludHJv
IC5zdGFydC1iZW5jaG1hcmsgewogICAgIHBhZGRpbmc6IDAgMCAxMHZoOwogICAgIG1hcmdpbi10
b3A6IDA7CiB9CiAKLSNpbnRybyAub3JpZW50YXRpb24tY2hlY2sgcCB7CisjaW50cm8gLnN0YXJ0
LWJlbmNobWFyayBwIHsKICAgICBjb2xvcjogaHNsKDExLCAxMDAlLCA2NiUpOwogfQogCi1AbWVk
aWEgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDogMTgwMHB4KSB7Ci0gICAgI2ludHJvIHsK
LSAgICAgICAgbWluLWhlaWdodDogODAwcHg7Ci0gICAgfQotfQotCiBAbWVkaWEgc2NyZWVuIGFu
ZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLAogICAgIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Ut
aGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0gICAgI2ludHJv
IHsKLSAgICAgICAgbWluLWhlaWdodDogMTAwJTsKLSAgICB9Ci0KLSAgICAjaW50cm8gPiBkaXY6
Zmlyc3Qtb2YtdHlwZSB7CisgICAgI2ludHJvIC5ib2R5ID4gZGl2OmZpcnN0LW9mLXR5cGUgewog
ICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgIH0KIApAQCAtNTk1LDEwICszMjEs
NiBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVu
bmluZyBTZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLwogCi0jdGVzdC1jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKLX0KLQogI3J1bm5pbmctdGVzdCB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBhbGln
bi1pdGVtczogY2VudGVyOwpAQCAtNjMyLDYgKzM1NCwxMCBAQCBsYWJlbC50cmVlLWxhYmVsIHsK
IC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0cyBTZWN0aW9uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisjcmVz
dWx0cyB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCiAjcmVzdWx0cyBoMSwgI3Rlc3Qt
Z3JhcGggaDEgewogICAgIGZvbnQtc2l6ZTogMmVtOwogfQpAQCAtNjUwLDE1ICszNzYsMTE3IEBA
IGxhYmVsLnRyZWUtbGFiZWwgewogICAgIGNvbG9yOiBpbmhlcml0OwogfQogCi0uc2NvcmUgewor
I3Jlc3VsdHMgLnNjb3JlLAorI3Rlc3QtZ3JhcGggLnNjb3JlIHsKICAgICBmb250LXNpemU6IDNl
bTsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBtYXJnaW46IDA7CiB9CiAKLS5tZWFuIHsK
KyNyZXN1bHRzIC5jb25maWRlbmNlLAorI3Rlc3QtZ3JhcGggLmNvbmZpZGVuY2UgewogICAgIG1h
cmdpbi10b3A6IDA7CiAgICAgbWFyZ2luLWJvdHRvbTogMWVtOwogICAgIGZvbnQtc2l6ZTogMS41
ZW07CiAgICAgZm9udC13ZWlnaHQ6IDQwMDsKKyAgICB0ZXh0LWluZGVudDogaW5oZXJpdDsKKyAg
ICBjb2xvcjogaW5oZXJpdDsKK30KKworI3Jlc3VsdHMtdGFibGVzIHsKKyAgICBkaXJlY3Rpb246
IHJ0bDsKKworICAgIGRpc3BsYXk6IGZsZXg7CisKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOwor
ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOworCisgICAgbWFyZ2luOiAzZW0gMDsKK30KKwor
I3Jlc3VsdHMgLnRhYmxlLWNvbnRhaW5lciA+IGRpdiB7CisgICAgbWFyZ2luLWxlZnQ6IDA7Cit9
CisKKyNyZXN1bHRzICNyZXN1bHRzLXNjb3JlIHsKKyAgICBmbG9hdDogaW5pdGlhbDsKK30KKwor
I3Jlc3VsdHMgI3Jlc3VsdHMtaGVhZGVyIHsKKyAgICB3aWR0aDogaW5pdGlhbDsKKyAgICBwb3Np
dGlvbjogaW5pdGlhbDsKK30KKworI3Jlc3VsdHMgdGFibGUgeworICAgIGRpcmVjdGlvbjogbHRy
OworICAgIG1pbi13aWR0aDogaW5pdGlhbDsKK30KKworI3Jlc3VsdHMgdGFibGUgdGQuc3VpdGVz
LXNlcGFyYXRvciB7CisgICAgcGFkZGluZzogLjVlbSAwOworfQorCisjcmVzdWx0cyB0YWJsZSB0
cjpudGgtY2hpbGQoZXZlbikgeworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owor
fQorCisjcmVzdWx0cyB0aCB7CisgICAgcGFkZGluZzogLjVlbSAwOworfQorCisjcmVzdWx0cyB0
ciB0ZCB7CisgICAgcGFkZGluZzogLjI1ZW0gMDsKK30KKworI3Jlc3VsdHMtaGVhZGVyIHRkLCAj
cmVzdWx0cy1oZWFkZXIgdGggeworICAgIHRleHQtYWxpZ246IGxlZnQ7Cit9CisjcmVzdWx0cy1o
ZWFkZXIgdHIgdGQgeworICAgIHBhZGRpbmctcmlnaHQ6IDFlbTsKK30KKyNyZXN1bHRzLXNjb3Jl
IHRkLCAjcmVzdWx0cy1zY29yZSB0aCB7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisjcmVz
dWx0cyAuYm9keSA+IGJ1dHRvbiB7CisgICAgbWFyZ2luOiAxLjVlbSBhdXRvIC41ZW07Cit9Cisj
cmVzdWx0cyBmb290ZXIgeworICAgIHBhZGRpbmctYm90dG9tOiAxMHZoOworfQorCitAbWVkaWEg
c2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLAorICAgIHNjcmVlbiBhbmQgKG1h
eC1kZXZpY2UtaGVpZ2h0OiA0MTRweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Cisg
ICAgI3Jlc3VsdHMuc2VsZWN0ZWQgeworICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CisgICAgfQor
fQorCisjb3ZlcmxheSB7CisgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAxMCwgLjgpOworfQor
CitAc3VwcG9ydHMgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpKSB7CisgICAg
I292ZXJsYXkgeworICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDEwLCAuNCk7CisgICAg
fQorfQorCisjb3ZlcmxheSA+IGRpdiBkaXYgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigy
NDEsIDI0MSwgMjQxKTsKK30KKworI292ZXJsYXkgYnV0dG9uIHsKKyAgICBtYXJnaW46IDJlbSBh
dXRvOworICAgIGJvcmRlci1jb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOworICAgIGNvbG9yOiBy
Z2IoMjQxLCAyNDEsIDI0MSk7Cit9CisKKyNvdmVybGF5IGJ1dHRvbjpob3ZlciB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMSk7Cit9CisKKyNvdmVybGF5IGJ1
dHRvbjphY3RpdmUgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg
LjIpOwogfQogCiAjcmVzdWx0cy1kYXRhIC5hdmVyYWdlIHsKQEAgLTcxMSwyMiArNTM5LDIwIEBA
IGxhYmVsLnRyZWUtbGFiZWwgewogCiAjdGVzdC1ncmFwaCBoZWFkZXIgewogICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKLSAgICB3aWR0aDogMTAwJTsKKyAgICB0ZXh0LWFsaWduOmNlbnRlcjsKIH0K
IAogI3Rlc3QtZ3JhcGggaGVhZGVyIGJ1dHRvbiB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwot
ICAgIHRvcDogMS41ZW07CisgICAgdG9wOiAwOwogICAgIGxlZnQ6IDA7CiAgICAgYm9yZGVyLXdp
ZHRoOiAxcHg7CiAgICAgZm9udC1zaXplOiAxZW07CiAgICAgcGFkZGluZzogLjVlbSAxZW07CiB9
CiAKLSN0ZXN0LWdyYXBoLWRhdGEgewotICAgIGZsZXg6IDEgMSBhdXRvOwotICAgIGFsaWduLXNl
bGY6IHN0cmV0Y2g7Ci0gICAgei1pbmRleDogMTsKKyN0ZXN0LWdyYXBoIC5zY29yZSwgI3Rlc3Qt
Z3JhcGggLmNvbmZpZGVuY2UgeworICAgIG1hcmdpbjogMDsKIH0KIAogI3Rlc3QtZ3JhcGggbmF2
IHsKQEAgLTc2MCw2ICs1ODYsNyBAQCBsYWJlbC50cmVlLWxhYmVsIHsKIC8qIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCiAKICN0ZXN0LWdyYXBoLWRhdGEgeworICAgIHotaW5kZXg6IDE7CiAgICAgZm9u
dDogMTBweCBzYW5zLXNlcmlmOwogICAgIGNvbG9yOiByZ2IoMjM1LCAyMzUsIDIzNSk7CiB9CkBA
IC04OTgsNyArNzI1LDcgQEAgbGFiZWwudHJlZS1sYWJlbCB7CiB9CiAKICNjb21wbGV4aXR5LWdy
YXBoIC5yYXcuc2VyaWVzIGxpbmUgewotICAgIHN0cm9rZTogaHNsKDMwLCA5NiUsIDU2JSk7Cisg
ICAgc3Ryb2tlOiBoc2xhKDMwLCA5NiUsIDU2JSwgLjMpOwogICAgIHN0cm9rZS13aWR0aDogMXB4
OwogfQogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcwppbmRleCA1NWQxYTk5Li41ZjA0
NzNiIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci9hbmltb21ldGVyLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0ZXIuanMKQEAgLTc0LDcgKzc0LDcgQEAg
RGV2ZWxvcGVyUmVzdWx0c1RhYmxlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFJlc3VsdHNU
YWJsZSwKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lID0gaGVhZGVyLmNsYXNzTmFtZTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGhlYWRlci50aXRsZSA9PSBTdHJpbmdz
LnRleHQudGVzdE5hbWUpIHsKKyAgICAgICAgICAgIGlmIChoZWFkZXIudGV4dCA9PSBTdHJpbmdz
LnRleHQudGVzdE5hbWUpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNOb2lzeSkKICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lICs9ICIgbm9pc3ktcmVzdWx0cyI7CiAgICAgICAgICAgICAg
ICAgdmFyIHRkID0gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwgeyBjbGFzczogY2xhc3NO
YW1lIH0sIHJvdyk7CkBAIC05Miw5ICs5Miw4IEBAIERldmVsb3BlclJlc3VsdHNUYWJsZSA9IFV0
aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhSZXN1bHRzVGFibGUsCiAgICAgICAgICAgICAgICAgaWYg
KHR5cGVvZiBkYXRhID09ICJudW1iZXIiKQogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0
YS50b0ZpeGVkKDIpOwogICAgICAgICAgICAgICAgIHRkLnRleHRDb250ZW50ID0gZGF0YTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQgPSBoZWFk
ZXIudGV4dCh0ZXN0UmVzdWx0LCB0ZXN0TmFtZSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZC50ZXh0Q29udGVudCA9IGhlYWRlci50ZXh0KHRl
c3RSZXN1bHQpOwogICAgICAgICB9LCB0aGlzKTsKICAgICB9CiB9KTsKQEAgLTIxMyw3ICsyMTIs
MTAgQEAgd2luZG93Lm9wdGlvbnNNYW5hZ2VyID0KIAogICAgIHVwZGF0ZURpc3BsYXk6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gImRpc3BsYXkt
IiArIG9wdGlvbnNNYW5hZ2VyLnZhbHVlRm9yT3B0aW9uKCJkaXNwbGF5Iik7CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiZGlzcGxheS1taW5pbWFsIik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgiZGlzcGxheS1wcm9ncmVzcy1iYXIiKTsK
KworICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoImRpc3BsYXktIiArIG9wdGlv
bnNNYW5hZ2VyLnZhbHVlRm9yT3B0aW9uKCJkaXNwbGF5IikpOwogICAgIH0KIH07CiAKQEAgLTUw
NSw2ICs1MDcsNyBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHdpbmRvdy5iZW5jaG1hcmtDb250
cm9sbGVyLCB7CiAgICAgICAgIGlmIChiZW5jaG1hcmtDb250cm9sbGVyLnN0YXJ0QmVuY2htYXJr
SW1tZWRpYXRlbHlJZkVuY29kZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBi
ZW5jaG1hcmtDb250cm9sbGVyLmRldGVybWluZUNhbnZhc1NpemUoKTsKICAgICAgICAgYmVuY2ht
YXJrQ29udHJvbGxlci5hZGRPcmllbnRhdGlvbkxpc3RlbmVySWZOZWNlc3NhcnkoKTsKICAgICAg
ICAgc3VpdGVzTWFuYWdlci5jcmVhdGVFbGVtZW50cygpOwogICAgICAgICBzdWl0ZXNNYW5hZ2Vy
LnVwZGF0ZVVJRnJvbUxvY2FsU3RvcmFnZSgpOwpAQCAtNjA2LDcgKzYwOSwxNSBAQCBVdGlsaXRp
ZXMuZXh0ZW5kT2JqZWN0KHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLCB7CiAgICAgICAgICAg
ICBIZWFkZXJzLmRldGFpbHNbNF0uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAg
ICAgc2VjdGlvbnNNYW5hZ2VyLnNldFNlY3Rpb25TY29yZSgicmVzdWx0cyIsIGRhc2hib2FyZC5z
Y29yZS50b0ZpeGVkKDIpKTsKKyAgICAgICAgaWYgKGRhc2hib2FyZC5vcHRpb25zW1N0cmluZ3Mu
anNvbi5jb25maWd1cmF0aW9uXSkgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xp
c3QucmVtb3ZlKCJzbWFsbCIsICJtZWRpdW0iLCAibGFyZ2UiKTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuY2xhc3NMaXN0LmFkZChkYXNoYm9hcmQub3B0aW9uc1tTdHJpbmdzLmpzb24uY29u
ZmlndXJhdGlvbl0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHNjb3JlID0gZGFzaGJvYXJk
LnNjb3JlOworICAgICAgICB2YXIgY29uZmlkZW5jZSA9ICgoZGFzaGJvYXJkLnNjb3JlTG93ZXJC
b3VuZCAvIHNjb3JlIC0gMSkgKiAxMDApLnRvRml4ZWQoMikgKworICAgICAgICAgICAgIiUgLyAr
IiArICgoZGFzaGJvYXJkLnNjb3JlVXBwZXJCb3VuZCAvIHNjb3JlIC0gMSkgKiAxMDApLnRvRml4
ZWQoMikgKyAiJSI7CisgICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9uU2NvcmUoInJl
c3VsdHMiLCBzY29yZS50b0ZpeGVkKDIpLCBjb25maWRlbmNlKTsKICAgICAgICAgc2VjdGlvbnNN
YW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtaGVhZGVyIiwgSGVhZGVycy50ZXN0TmFtZSwg
ZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3Vs
dHMtc2NvcmUiLCBIZWFkZXJzLnNjb3JlLCBkYXNoYm9hcmQpOwogICAgICAgICBzZWN0aW9uc01h
bmFnZXIucG9wdWxhdGVUYWJsZSgicmVzdWx0cy1kYXRhIiwgSGVhZGVycy5kZXRhaWxzLCBkYXNo
Ym9hcmQpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qcwppbmRleCA3NmEwYTk4Li40ODAzOTM2IDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9ncmFwaC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci9ncmFwaC5qcwpAQCAtMSwyOCArMSwzMCBAQAogVXRpbGl0aWVzLmV4dGVuZE9i
amVjdCh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciwgewotICAgIGxheW91dENvdW50ZXI6IDAs
Ci0KICAgICB1cGRhdGVHcmFwaERhdGE6IGZ1bmN0aW9uKHRlc3RSZXN1bHQsIHRlc3REYXRhLCBv
cHRpb25zKQogICAgIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdC1ncmFwaC1kYXRhIik7CiAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gIiI7
CiAgICAgICAgIGVsZW1lbnQuX3Rlc3RSZXN1bHQgPSB0ZXN0UmVzdWx0OwotICAgICAgICBlbGVt
ZW50Ll90ZXN0RGF0YSA9IHRlc3REYXRhOwogICAgICAgICBlbGVtZW50Ll9vcHRpb25zID0gb3B0
aW9uczsKLSAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaHIiKS5zdHlsZS53aWR0aCA9
IHRoaXMubGF5b3V0Q291bnRlcisrICsgInB4IjsKIAogICAgICAgICB2YXIgbWFyZ2lucyA9IG5l
dyBJbnNldHMoMzAsIDMwLCAzMCwgNDApOwotICAgICAgICB2YXIgc2l6ZSA9IFBvaW50LmVsZW1l
bnRDbGllbnRTaXplKGVsZW1lbnQpLnN1YnRyYWN0KG1hcmdpbnMuc2l6ZSk7Ci0KLSAgICAgICAg
dGhpcy5jcmVhdGVUaW1lR3JhcGgodGVzdFJlc3VsdCwgdGVzdERhdGFbU3RyaW5ncy5qc29uLnNh
bXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLm1h
cmtzXSwgdGVzdERhdGFbU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLCBvcHRpb25zLCBtYXJnaW5z
LCBzaXplKTsKKyAgICAgICAgdmFyIHNpemUgPSBQb2ludC5lbGVtZW50Q2xpZW50U2l6ZShlbGVt
ZW50KTsKKyAgICAgICAgc2l6ZS55ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudC5vZmZz
ZXRUb3A7CisgICAgICAgIHNpemUgPSBzaXplLnN1YnRyYWN0KG1hcmdpbnMuc2l6ZSk7CisKKyAg
ICAgICAgLy8gQ29udmVydCBmcm9tIGNvbXBhY3QgSlNPTiBvdXRwdXQgdG8gcHJvcGVydGllZCBk
YXRhCisgICAgICAgIHZhciBzYW1wbGVzV2l0aFByb3BlcnRpZXMgPSB7fTsKKyAgICAgICAgW1N0
cmluZ3MuanNvbi5jb250cm9sbGVyLCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgU3RyaW5ncy5q
c29uLmNvbXBsZXhpdHlBdmVyYWdlXS5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllc05hbWUpIHsKKyAg
ICAgICAgICAgIHZhciBzZXJpZXMgPSB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uc2FtcGxlc11bc2Vy
aWVzTmFtZV07CisgICAgICAgICAgICBzYW1wbGVzV2l0aFByb3BlcnRpZXNbc2VyaWVzTmFtZV0g
PSBzZXJpZXMudG9BcnJheSgpOworICAgICAgICB9KQorCisgICAgICAgIHRoaXMuY3JlYXRlVGlt
ZUdyYXBoKHRlc3RSZXN1bHQsIHNhbXBsZXNXaXRoUHJvcGVydGllc1tTdHJpbmdzLmpzb24uY29u
dHJvbGxlcl0sIHRlc3REYXRhW1N0cmluZ3MuanNvbi5tYXJrc10sIHRlc3REYXRhW1N0cmluZ3Mu
anNvbi5jb250cm9sbGVyXSwgb3B0aW9ucywgbWFyZ2lucywgc2l6ZSk7CiAgICAgICAgIHRoaXMu
b25UaW1lR3JhcGhPcHRpb25zQ2hhbmdlZCgpOwogCi0gICAgICAgIHZhciBoYXNDb21wbGV4aXR5
U2FtcGxlcyA9ICEhdGVzdERhdGFbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5j
b21wbGV4aXR5XTsKLSAgICAgICAgdGhpcy5fc2hvd09ySGlkZU5vZGVzKGhhc0NvbXBsZXhpdHlT
YW1wbGVzLCAiZm9ybVtuYW1lPWdyYXBoLXR5cGVdIik7Ci0gICAgICAgIGlmIChoYXNDb21wbGV4
aXR5U2FtcGxlcykgewotICAgICAgICAgICAgZG9jdW1lbnQuZm9ybXNbImdyYXBoLXR5cGUiXS5l
bGVtZW50c1sidHlwZSJdID0gImNvbXBsZXhpdHkiOwotICAgICAgICAgICAgdGhpcy5jcmVhdGVD
b21wbGV4aXR5R3JhcGgodGVzdFJlc3VsdCwgdGVzdERhdGFbU3RyaW5ncy5qc29uLmNvbnRyb2xs
ZXJdLCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uc2FtcGxlc10sIG9wdGlvbnMsIG1hcmdpbnMsIHNp
emUpOwotICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXhpdHlHcmFwaE9wdGlvbnNDaGFuZ2VkKCk7
Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5fc2hvd09ySGlkZU5vZGVzKHRydWUsICJmb3JtW25h
bWU9Z3JhcGgtdHlwZV0iKTsKKyAgICAgICAgZG9jdW1lbnQuZm9ybXNbImdyYXBoLXR5cGUiXS5l
bGVtZW50c1sidHlwZSJdID0gImNvbXBsZXhpdHkiOworICAgICAgICB0aGlzLmNyZWF0ZUNvbXBs
ZXhpdHlHcmFwaCh0ZXN0UmVzdWx0LCB0ZXN0RGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0s
IHNhbXBsZXNXaXRoUHJvcGVydGllcywgb3B0aW9ucywgbWFyZ2lucywgc2l6ZSk7CisgICAgICAg
IHRoaXMub25Db21wbGV4aXR5R3JhcGhPcHRpb25zQ2hhbmdlZCgpOwogCiAgICAgICAgIHRoaXMu
b25HcmFwaFR5cGVDaGFuZ2VkKCk7CiAgICAgfSwKQEAgLTU2OSw3ICs1NzEsNyBAQCBVdGlsaXRp
ZXMuZXh0ZW5kT2JqZWN0KHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLCB7CiAgICAgICAgIGJl
bmNobWFya0NvbnRyb2xsZXIuX3Nob3dPckhpZGVOb2RlcyghaXNUaW1lU2VsZWN0ZWQsICIjY29t
cGxleGl0eS1ncmFwaCIpOwogICAgICAgICBiZW5jaG1hcmtDb250cm9sbGVyLl9zaG93T3JIaWRl
Tm9kZXMoIWlzVGltZVNlbGVjdGVkLCAiZm9ybVtuYW1lPWNvbXBsZXhpdHktZ3JhcGgtb3B0aW9u
c10iKTsKIAotICAgICAgICB2YXIgc2NvcmUsIG1lYW47CisgICAgICAgIHZhciBzY29yZSA9ICIi
LCBtZWFuID0gIiI7CiAgICAgICAgIGlmIChpc1RpbWVTZWxlY3RlZCkgewogICAgICAgICAgICAg
c2NvcmUgPSB0ZXN0UmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0udG9GaXhlZCgyKTsKIApAQCAt
NTk2LDEzICs1OTgsMTYgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdCh3aW5kb3cuYmVuY2htYXJr
Q29udHJvbGxlciwgewogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBs
ZXhpdHktcmVncmVzc2lvbi1hZ2dyZWdhdGUtYXZlcmFnZSIpLnRleHRDb250ZW50ID0gY29tcGxl
eGl0eUF2ZXJhZ2VSZWdyZXNzaW9uLmNvbXBsZXhpdHkudG9GaXhlZCgyKSArICIsIMKxIiArIGNv
bXBsZXhpdHlBdmVyYWdlUmVncmVzc2lvbi5zdGRldi50b0ZpeGVkKDIpICsgIm1zIjsKIAogICAg
ICAgICAgICAgdmFyIGJvb3RzdHJhcCA9IGNvbXBsZXhpdHlSZWdyZXNzaW9uW1N0cmluZ3MuanNv
bi5ib290c3RyYXBdOwotICAgICAgICAgICAgc2NvcmUgPSBib290c3RyYXAubWVkaWFuLnRvRml4
ZWQoMik7Ci0gICAgICAgICAgICBtZWFuID0gWwotICAgICAgICAgICAgICAgICI5NSUgQ0k6ICIs
Ci0gICAgICAgICAgICAgICAgYm9vdHN0cmFwLmNvbmZpZGVuY2VMb3cudG9GaXhlZCgyKSwKLSAg
ICAgICAgICAgICAgICAi4oCTIiwKLSAgICAgICAgICAgICAgICBib290c3RyYXAuY29uZmlkZW5j
ZUhpZ2gudG9GaXhlZCgyKQotICAgICAgICAgICAgXS5qb2luKCIiKTsKKyAgICAgICAgICAgIGlm
IChib290c3RyYXApIHsKKyAgICAgICAgICAgICAgICBzY29yZSA9IGJvb3RzdHJhcC5tZWRpYW4u
dG9GaXhlZCgyKTsKKyAgICAgICAgICAgICAgICBtZWFuID0gWworICAgICAgICAgICAgICAgICAg
ICAoYm9vdHN0cmFwLmNvbmZpZGVuY2VQZXJjZW50YWdlICogMTAwKS50b0ZpeGVkKDApLAorICAg
ICAgICAgICAgICAgICAgICAiJSBDSTogIiwKKyAgICAgICAgICAgICAgICAgICAgYm9vdHN0cmFw
LmNvbmZpZGVuY2VMb3cudG9GaXhlZCgyKSwKKyAgICAgICAgICAgICAgICAgICAgIuKAkyIsCisg
ICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcC5jb25maWRlbmNlSGlnaC50b0ZpeGVkKDIpCisg
ICAgICAgICAgICAgICAgXS5qb2luKCIiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0aW9uU2NvcmUoInRlc3QtZ3JhcGgiLCBzY29y
ZSwgbWVhbik7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
ZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCmluZGV4IGUzMjMzZjUuLjExYmIyNDIgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVu
bmVyL3Rlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL3Rlc3RzLmpzCkBAIC0yLDcgKzIsNyBAQCBVdGlsaXRpZXMuZXh0ZW5kT2Jq
ZWN0KFN0cmluZ3MudGV4dCwgewogICAgIHNhbXBsZXM6ICJTYW1wbGVzIiwKICAgICBjb21wbGV4
aXR5OiAiVGltZSBDb21wbGV4aXR5IiwKICAgICBmcmFtZVJhdGU6ICJGUFMiLAotICAgIGNvbmZp
ZGVuY2VJbnRlcnZhbDogIjk1JSBDb25maWRlbmNlIEludGVydmFsIiwKKyAgICBjb25maWRlbmNl
SW50ZXJ2YWw6ICI4MCUgQ29uZmlkZW5jZSBJbnRlcnZhbCIsCiAgICAgbWVyZ2VkUmF3Q29tcGxl
eGl0eTogIlJhdyBDb21wbGV4aXR5IiwKICAgICBncmFwaDogIkdyYXBoIgogfSk7CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKaW5k
ZXggZDgxZGQ3OS4uNjlmZTM3NCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwpAQCAtMTU1LDYgKzE1NSwxMyBAQCBVdGlsaXRp
ZXMgPQogICAgIGxlcnA6IGZ1bmN0aW9uKHZhbHVlLCBtaW4sIG1heCkKICAgICB7CiAgICAgICAg
IHJldHVybiBtaW4gKyAobWF4IC0gbWluKSAqIHZhbHVlOworICAgIH0sCisKKyAgICB0b0ZpeGVk
TnVtYmVyOiBmdW5jdGlvbihudW1iZXIsIHByZWNpc2lvbikKKyAgICB7CisgICAgICAgIGlmIChu
dW1iZXIudG9GaXhlZCkKKyAgICAgICAgICAgIHJldHVybiBOdW1iZXIobnVtYmVyLnRvRml4ZWQo
cHJlY2lzaW9uKSk7CisgICAgICAgIHJldHVybiBudW1iZXI7CiAgICAgfQogfTsKIApAQCAtNTgx
LDMgKzU4OCw4MyBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KEhlYXAsIHsKICAgICAgICAgcmV0
dXJuIG5ldyBIZWFwKG1heFNpemUsIGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgLSBiOyB9KTsK
ICAgICB9CiB9KTsKKwordmFyIFNhbXBsZURhdGEgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCisg
ICAgZnVuY3Rpb24oZmllbGRNYXAsIGRhdGEpCisgICAgeworICAgICAgICB0aGlzLmZpZWxkTWFw
ID0gZmllbGRNYXAgfHwge307CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgfHwgW107CisgICAg
fSwgeworCisgICAgZ2V0IGxlbmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5kYXRh
Lmxlbmd0aDsKKyAgICB9LAorCisgICAgYWRkRmllbGQ6IGZ1bmN0aW9uKG5hbWUsIGluZGV4KQor
ICAgIHsKKyAgICAgICAgdGhpcy5maWVsZE1hcFtuYW1lXSA9IGluZGV4OworICAgIH0sCisKKyAg
ICBwdXNoOiBmdW5jdGlvbihkYXR1bSkKKyAgICB7CisgICAgICAgIHRoaXMuZGF0YS5wdXNoKGRh
dHVtKTsKKyAgICB9LAorCisgICAgc29ydDogZnVuY3Rpb24oc29ydEZ1bmN0aW9uKQorICAgIHsK
KyAgICAgICAgdGhpcy5kYXRhLnNvcnQoc29ydEZ1bmN0aW9uKTsKKyAgICB9LAorCisgICAgc2xp
Y2U6IGZ1bmN0aW9uKGJlZ2luLCBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFNhbXBs
ZURhdGEodGhpcy5maWVsZE1hcCwgdGhpcy5kYXRhLnNsaWNlKGJlZ2luLCBlbmQpKTsKKyAgICB9
LAorCisgICAgZm9yRWFjaDogZnVuY3Rpb24oaXRlcmF0aW9uRnVuY3Rpb24pCisgICAgeworICAg
ICAgICB0aGlzLmRhdGEuZm9yRWFjaChpdGVyYXRpb25GdW5jdGlvbik7CisgICAgfSwKKworICAg
IGNyZWF0ZURhdHVtOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gW107CisgICAg
fSwKKworICAgIGdldEZpZWxkSW5EYXR1bTogZnVuY3Rpb24oZGF0dW0sIGZpZWxkTmFtZSkKKyAg
ICB7CisgICAgICAgIGlmICh0eXBlb2YgZGF0dW0gPT09ICdudW1iZXInKQorICAgICAgICAgICAg
ZGF0dW0gPSB0aGlzLmRhdGFbZGF0dW1dOworICAgICAgICByZXR1cm4gZGF0dW1bdGhpcy5maWVs
ZE1hcFtmaWVsZE5hbWVdXTsKKyAgICB9LAorCisgICAgc2V0RmllbGRJbkRhdHVtOiBmdW5jdGlv
bihkYXR1bSwgZmllbGROYW1lLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh0eXBlb2YgZGF0
dW0gPT09ICdudW1iZXInKQorICAgICAgICAgICAgZGF0dW0gPSB0aGlzLmRhdGFbZGF0dW1dOwor
ICAgICAgICByZXR1cm4gZGF0dW1bdGhpcy5maWVsZE1hcFtmaWVsZE5hbWVdXSA9IHZhbHVlOwor
ICAgIH0sCisKKyAgICBhdDogZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5kYXRhW2luZGV4XTsKKyAgICB9LAorCisgICAgdG9BcnJheTogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIGFycmF5ID0gW107CisKKyAgICAgICAgdGhpcy5kYXRhLmZvckVhY2go
ZnVuY3Rpb24oZGF0dW0pIHsKKyAgICAgICAgICAgIHZhciBuZXdEYXR1bSA9IHt9OworICAgICAg
ICAgICAgYXJyYXkucHVzaChuZXdEYXR1bSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGZpZWxk
TmFtZSBpbiB0aGlzLmZpZWxkTWFwKSB7CisgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhp
cy5nZXRGaWVsZEluRGF0dW0oZGF0dW0sIGZpZWxkTmFtZSk7CisgICAgICAgICAgICAgICAgaWYg
KHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAg
ICAgIG5ld0RhdHVtW2ZpZWxkTmFtZV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSwgdGhpcyk7CisKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KK30pOwpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRl
ci5jc3MgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmlt
b21ldGVyLmNzcwppbmRleCBjNjViYjk3Li4wNWI0NWY4IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNzcworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmNz
cwpAQCAtMjkyLDIwICsyOTIsMTQgQEAgYm9keS5pbWFnZXMtbG9hZGVkICNpbnRybyB7CiAKIC8q
IFJ1bm5pbmcgdGVzdCBzZWN0aW9uICovCiAKLSN0ZXN0LWNvbnRhaW5lciB7CisuZnJhbWUtY29u
dGFpbmVyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAKLSAgICB3aWR0aDogMTIwMHB4Owot
ICAgIGhlaWdodDogNjAwcHg7Ci0KICAgICB0b3A6IDUwJTsKICAgICBsZWZ0OiA1MCU7Ci0KLSAg
ICBtYXJnaW4tbGVmdDogLTYwMHB4OwotICAgIG1hcmdpbi10b3A6IC0zMDBweDsKIH0KIAotI3Rl
c3QtY29udGFpbmVyID4gaWZyYW1lIHsKKy5mcmFtZS1jb250YWluZXIgPiBpZnJhbWUgewogICAg
IHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogMTAwJTsKIApAQCAtMzEzLDcwICszMDcsNzIgQEAg
Ym9keS5pbWFnZXMtbG9hZGVkICNpbnRybyB7CiAgICAgbWFyZ2luOiAwOwogfQogCi1AbWVkaWEg
c2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDE0cHgpLCBzY3JlZW4gYW5kIChtYXgtZGV2
aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgewotICAgICN0
ZXN0LWNvbnRhaW5lciB7Ci0gICAgICAgIHdpZHRoOiAxMDAlOwotICAgICAgICBoZWlnaHQ6IDEw
MCU7Ci0KLSAgICAgICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotCi0gICAgICAgIG1hcmdp
bi10b3A6IDA7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAwOwotICAgIH0KK2JvZHkuc21hbGwgLmZy
YW1lLWNvbnRhaW5lciB7CisgICAgd2lkdGg6IDU2OHB4OworICAgIGhlaWdodDogMzIwcHg7Cisg
ICAgbWFyZ2luLWxlZnQ6IC0yODRweDsKKyAgICBtYXJnaW4tdG9wOiAtMTYwcHg7CiB9CiAKLUBt
ZWRpYSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLWhlaWdodDogNzY4cHgpIGFuZCAobWF4LWRldmlj
ZS1oZWlnaHQ6IDEwMjRweCkgewotICAgICN0ZXN0LWNvbnRhaW5lciB7Ci0gICAgICAgIHdpZHRo
OiA5MDBweDsKLSAgICAgICAgaGVpZ2h0OiA2MDBweDsKK2JvZHkubWVkaXVtIC5mcmFtZS1jb250
YWluZXIgeworICAgIHdpZHRoOiA5MDBweDsKKyAgICBoZWlnaHQ6IDYwMHB4OworICAgIG1hcmdp
bi1sZWZ0OiAtNDUwcHg7CisgICAgbWFyZ2luLXRvcDogLTMwMHB4OworfQogCi0gICAgICAgIG1h
cmdpbi1sZWZ0OiAtNDUwcHg7Ci0gICAgICAgIG1hcmdpbi10b3A6IC0zMDBweDsKLSAgICB9Citi
b2R5LmxhcmdlIC5mcmFtZS1jb250YWluZXIgeworICAgIHdpZHRoOiAxNjAwcHg7CisgICAgaGVp
Z2h0OiA4MDBweDsKKyAgICBtYXJnaW4tbGVmdDogLTgwMHB4OworICAgIG1hcmdpbi10b3A6IC00
MDBweDsKIH0KIAotQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDEwMjRweCkg
YW5kIChtaW4tZGV2aWNlLWhlaWdodDogMTM2NnB4KSB7Ci0gICAgI3Rlc3QtY29udGFpbmVyIHsK
LSAgICAgICAgd2lkdGg6IDEyMDBweDsKLSAgICAgICAgaGVpZ2h0OiA2MDBweDsKKy8qIFJlc3Vs
dHMgc2VjdGlvbiAqLwogCi0gICAgICAgIG1hcmdpbi1sZWZ0OiAtNjAwcHg7Ci0gICAgICAgIG1h
cmdpbi10b3A6IC0zMDBweDsKLSAgICB9CisjcmVzdWx0cyB7CisgICAgcGFkZGluZzogMmVtOwog
fQogCi1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxODAwcHgpIHsKLSAgICAjdGVzdC1j
b250YWluZXIgewotICAgICAgICB3aWR0aDogMTYwMHB4OwotICAgICAgICBoZWlnaHQ6IDgwMHB4
OworI3Jlc3VsdHMgLmJvZHkgeworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7Cit9CiAK
LSAgICAgICAgbWFyZ2luLWxlZnQ6IC04MDBweDsKLSAgICAgICAgbWFyZ2luLXRvcDogLTQwMHB4
OwotICAgIH0KKyNyZXN1bHRzIC5zY29yZS1jb250YWluZXIgeworICAgIHBhZGRpbmctYm90dG9t
OiAyZW07CiB9CiAKLS8qIFJlc3VsdHMgc2VjdGlvbiAqLworI3Jlc3VsdHMgLnRhYmxlLWNvbnRh
aW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQogCi0jcmVzdWx0cyB7Ci0gICAgcGFk
ZGluZzogMmVtOworI3Jlc3VsdHMgLnRhYmxlLWNvbnRhaW5lciA+IGRpdiB7CisgICAgbWFyZ2lu
LWxlZnQ6IDQwJTsKIH0KIAogI3Jlc3VsdHMgLnNjb3JlIHsKICAgICBmb250LXNpemU6IDVlbTsK
ICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgbGlu
ZS1oZWlnaHQ6IDE7CisgICAgbWFyZ2luOiAwOworfQogCi0gICAgcGFkZGluZy1sZWZ0OiAwLjI1
ZW07Ci0KKyNyZXN1bHRzIC5jb25maWRlbmNlIHsKKyAgICBmb250LXNpemU6IDJlbTsKKyAgICBm
b250LXN0eWxlOiBpdGFsaWM7CisgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgbWFyZ2luOiAwOwor
ICAgIHRleHQtaW5kZW50OiAxLjc1ZW07CisgICAgY29sb3I6IGhzbCgwLCAwJSwgNDAlKTsKKyAg
ICBwYWRkaW5nLWJvdHRvbTogLjNlbTsKIH0KIAogI3Jlc3VsdHMgdGFibGUgewogICAgIGJvcmRl
ci1zcGFjaW5nOiAwOwogICAgIG1hcmdpbjogMDsKICAgICBwYWRkaW5nOiAwOwotICAgIG1pbi13
aWR0aDogNDAlOworICAgIG1pbi13aWR0aDogMjUlOwogfQogCiAjcmVzdWx0cyB0YWJsZSB0ZCwK
QEAgLTM5Miw5ICszODgsMjAgQEAgYm9keS5pbWFnZXMtbG9hZGVkICNpbnRybyB7CiAgICAgYmFj
a2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMCUsIDAuMDUpOwogfQogCi0jcmVzdWx0cyAjcmVz
dWx0cy1oZWFkZXIsCisjcmVzdWx0cyAjcmVzdWx0cy1oZWFkZXIgeworICAgIHRvcDogMDsKKyAg
ICBsZWZ0OiAwOworICAgIHdpZHRoOiA0MCU7CisgICAgcG9zaXRpb246IGFic29sdXRlOworfQor
CiAjcmVzdWx0cyAjcmVzdWx0cy1zY29yZSB7Ci0gICAgZGlzcGxheTogaW5saW5lLXRhYmxlOwor
ICAgIGZsb2F0OiBsZWZ0OworfQorCisjcmVzdWx0cyAjcmVzdWx0cy1kYXRhIHNwYW4geworICAg
IGZvbnQtc2l6ZTogLjc1ZW07CisgICAgY29sb3I6IGhzbCgwLCAwJSwgNDAlKTsKIH0KIAogI3Jl
c3VsdHMgI3Jlc3VsdHMtaGVhZGVyIHRkLApAQCAtNDExLDE3ICs0MTgsMjYgQEAgYm9keS5pbWFn
ZXMtbG9hZGVkICNpbnRybyB7CiB9CiAKICNyZXN1bHRzICNyZXN1bHRzLXNjb3JlIHRkIHsKLSAg
ICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgIGN1cnNvcjogdGV4dDsKIH0KIAogQG1l
ZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjY3cHgpIHsKLSAgICAjcmVzdWx0cyAuYm9keSAu
c2NvcmUgeworICAgICNyZXN1bHRzIC5zY29yZSwKKyAgICAjcmVzdWx0cyAuY29uZmlkZW5jZSB7
CiAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLSAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjFl
bTsKICAgICB9CiB9CiAKKy5kZXRhaWwgc3BhbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwor
Ym9keS5zbWFsbCAuZGV0YWlsIC5zbWFsbCwKK2JvZHkubWVkaXVtIC5kZXRhaWwgLm1lZGl1bSwK
K2JvZHkubGFyZ2UgLmRldGFpbCAubGFyZ2UgeworICAgIGRpc3BsYXk6IGluaXRpYWw7Cit9CisK
ICNvdmVybGF5IHsKICAgICBwb3NpdGlvbjogZml4ZWQ7CiAKQEAgLTQ1Niw2ICs0NzIsNyBAQCBi
b2R5LmltYWdlcy1sb2FkZWQgI2ludHJvIHsKICNvdmVybGF5ID4gZGl2IGRpdiB7CiAgICAgb3Zl
cmZsb3c6IHNjcm9sbDsKIAorICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAtd2Via2l0LXVzZXIt
c2VsZWN0OiB0ZXh0OwogICAgIGN1cnNvcjogdGV4dDsKIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanMKaW5k
ZXggNTRmNjQ4ZS4uMWM0NzBjNyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzCkBAIC0yMyw2ICsyMyw4
IEBAIFJlc3VsdHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHZh
ciBpdGVyYXRpb25zU2NvcmVzID0gW107CiAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbnNTYW1wbGVy
cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZXJhdGlvbiwgaW5kZXgpIHsKICAgICAgICAgICAgIHZhciB0
ZXN0c1Njb3JlcyA9IFtdOworICAgICAgICAgICAgdmFyIHRlc3RzTG93ZXJCb3VuZFNjb3JlcyA9
IFtdOworICAgICAgICAgICAgdmFyIHRlc3RzVXBwZXJCb3VuZFNjb3JlcyA9IFtdOwogCiAgICAg
ICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmlu
Z3MuanNvbi5yZXN1bHRzLml0ZXJhdGlvbnNdW2luZGV4XSA9IHJlc3VsdDsKQEAgLTQ0LDE0ICs0
NiwyMCBAQCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAg
ICAgICAgICAgICAgICBkZWxldGUgc3VpdGVEYXRhW3Rlc3ROYW1lXVtTdHJpbmdzLmpzb24ucmVz
dWx0XTsKIAogICAgICAgICAgICAgICAgICAgICB0ZXN0c1Njb3Jlcy5wdXNoKHN1aXRlUmVzdWx0
W3Rlc3ROYW1lXVtTdHJpbmdzLmpzb24uc2NvcmVdKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dHNMb3dlckJvdW5kU2NvcmVzLnB1c2goc3VpdGVSZXN1bHRbdGVzdE5hbWVdW1N0cmluZ3MuanNv
bi5zY29yZUxvd2VyQm91bmRdKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdHNVcHBlckJvdW5k
U2NvcmVzLnB1c2goc3VpdGVSZXN1bHRbdGVzdE5hbWVdW1N0cmluZ3MuanNvbi5zY29yZVVwcGVy
Qm91bmRdKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdID0gU3RhdGlzdGljcy5nZW9tZXRyaWNNZWFuKHRl
c3RzU2NvcmVzKTsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJv
dW5kXSA9IFN0YXRpc3RpY3MuZ2VvbWV0cmljTWVhbih0ZXN0c0xvd2VyQm91bmRTY29yZXMpOwor
ICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZVVwcGVyQm91bmRdID0gU3RhdGlz
dGljcy5nZW9tZXRyaWNNZWFuKHRlc3RzVXBwZXJCb3VuZFNjb3Jlcyk7CiAgICAgICAgICAgICBp
dGVyYXRpb25zU2NvcmVzLnB1c2gocmVzdWx0W1N0cmluZ3MuanNvbi5zY29yZV0pOwogICAgICAg
ICB9LCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29yZV0g
PSBTdGF0aXN0aWNzLnNhbXBsZU1lYW4oaXRlcmF0aW9uc1Njb3Jlcy5sZW5ndGgsIGl0ZXJhdGlv
bnNTY29yZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSk7CisgICAg
ICAgIHRoaXMuX3Jlc3VsdHNbU3RyaW5ncy5qc29uLnNjb3JlTG93ZXJCb3VuZF0gPSB0aGlzLl9y
ZXN1bHRzW1N0cmluZ3MuanNvbi5yZXN1bHRzLml0ZXJhdGlvbnNdWzBdW1N0cmluZ3MuanNvbi5z
Y29yZUxvd2VyQm91bmRdOworICAgICAgICB0aGlzLl9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29y
ZVVwcGVyQm91bmRdID0gdGhpcy5fcmVzdWx0c1tTdHJpbmdzLmpzb24ucmVzdWx0cy5pdGVyYXRp
b25zXVswXVtTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJvdW5kXTsKICAgICB9LAogCiAgICAgY2Fs
Y3VsYXRlU2NvcmU6IGZ1bmN0aW9uKGRhdGEpCkBAIC02NCwzOCArNzIsNzEgQEAgUmVzdWx0c0Rh
c2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgaWYgKHRoaXMuX29wdGlv
bnNbImNvbnRyb2xsZXIiXSA9PSAicmFtcDMwIikKICAgICAgICAgICAgIGRlc2lyZWRGcmFtZUxl
bmd0aCA9IDEwMDAvMzA7CiAKLSAgICAgICAgZnVuY3Rpb24gZmluZFJlZ3Jlc3Npb24oc2VyaWVz
KSB7CisgICAgICAgIGZ1bmN0aW9uIGZpbmRSZWdyZXNzaW9uKHNlcmllcywgcHJvZmlsZSkgewog
ICAgICAgICAgICAgdmFyIG1pbkluZGV4ID0gTWF0aC5yb3VuZCguMDI1ICogc2VyaWVzLmxlbmd0
aCk7CiAgICAgICAgICAgICB2YXIgbWF4SW5kZXggPSBNYXRoLnJvdW5kKC45NzUgKiAoc2VyaWVz
Lmxlbmd0aCAtIDEpKTsKLSAgICAgICAgICAgIHZhciBtaW5Db21wbGV4aXR5ID0gc2VyaWVzW21p
bkluZGV4XS5jb21wbGV4aXR5OwotICAgICAgICAgICAgdmFyIG1heENvbXBsZXhpdHkgPSBzZXJp
ZXNbbWF4SW5kZXhdLmNvbXBsZXhpdHk7CisgICAgICAgICAgICB2YXIgbWluQ29tcGxleGl0eSA9
IHNlcmllcy5nZXRGaWVsZEluRGF0dW0obWluSW5kZXgsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5
KTsKKyAgICAgICAgICAgIHZhciBtYXhDb21wbGV4aXR5ID0gc2VyaWVzLmdldEZpZWxkSW5EYXR1
bShtYXhJbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOworCiAgICAgICAgICAgICBpZiAo
TWF0aC5hYnMobWF4Q29tcGxleGl0eSAtIG1pbkNvbXBsZXhpdHkpIDwgMjAgJiYgbWF4SW5kZXgg
LSBtaW5JbmRleCA8IDIwKSB7CiAgICAgICAgICAgICAgICAgbWluSW5kZXggPSAwOwogICAgICAg
ICAgICAgICAgIG1heEluZGV4ID0gc2VyaWVzLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgICAgICAg
bWluQ29tcGxleGl0eSA9IHNlcmllc1ttaW5JbmRleF0uY29tcGxleGl0eTsKLSAgICAgICAgICAg
ICAgICBtYXhDb21wbGV4aXR5ID0gc2VyaWVzW21heEluZGV4XS5jb21wbGV4aXR5OworICAgICAg
ICAgICAgICAgIG1pbkNvbXBsZXhpdHkgPSBzZXJpZXMuZ2V0RmllbGRJbkRhdHVtKG1pbkluZGV4
LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7CisgICAgICAgICAgICAgICAgbWF4Q29tcGxleGl0
eSA9IHNlcmllcy5nZXRGaWVsZEluRGF0dW0obWF4SW5kZXgsIFN0cmluZ3MuanNvbi5jb21wbGV4
aXR5KTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgdmFyIGNvbXBsZXhpdHlJbmRleCA9
IHNlcmllcy5maWVsZE1hcFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV07CisgICAgICAgICAgICB2
YXIgZnJhbWVMZW5ndGhJbmRleCA9IHNlcmllcy5maWVsZE1hcFtTdHJpbmdzLmpzb24uZnJhbWVM
ZW5ndGhdOworICAgICAgICAgICAgdmFyIHJlZ3Jlc3Npb25PcHRpb25zID0geyBkZXNpcmVkRnJh
bWVMZW5ndGg6IGRlc2lyZWRGcmFtZUxlbmd0aCB9OworICAgICAgICAgICAgaWYgKHByb2ZpbGUp
CisgICAgICAgICAgICAgICAgcmVncmVzc2lvbk9wdGlvbnMucHJlZmVycmVkUHJvZmlsZSA9IHBy
b2ZpbGU7CiAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgIG1pbkNvbXBsZXhp
dHk6IG1pbkNvbXBsZXhpdHksCiAgICAgICAgICAgICAgICAgbWF4Q29tcGxleGl0eTogbWF4Q29t
cGxleGl0eSwKICAgICAgICAgICAgICAgICBzYW1wbGVzOiBzZXJpZXMuc2xpY2UobWluSW5kZXgs
IG1heEluZGV4ICsgMSksCiAgICAgICAgICAgICAgICAgcmVncmVzc2lvbjogbmV3IFJlZ3Jlc3Np
b24oCi0gICAgICAgICAgICAgICAgICAgIHNlcmllcywKLSAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gKGRhdHVtLCBpKSB7IHJldHVybiBkYXR1bVtpXS5jb21wbGV4aXR5OyB9LAotICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoZGF0dW0sIGkpIHsgcmV0dXJuIGRhdHVtW2ldLmZyYW1l
TGVuZ3RoOyB9LAotICAgICAgICAgICAgICAgICAgICBtaW5JbmRleCwgbWF4SW5kZXgsIGRlc2ly
ZWRGcmFtZUxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgc2VyaWVzLmRhdGEsCisgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXRhLCBpKSB7IHJldHVybiBkYXRhW2ldW2NvbXBsZXhp
dHlJbmRleF07IH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkYXRhLCBpKSB7IHJl
dHVybiBkYXRhW2ldW2ZyYW1lTGVuZ3RoSW5kZXhdOyB9LAorICAgICAgICAgICAgICAgICAgICBt
aW5JbmRleCwgbWF4SW5kZXgsIHJlZ3Jlc3Npb25PcHRpb25zKQogICAgICAgICAgICAgfTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxlczsKKyAgICAgICAgLy8gQ29u
dmVydCB0aGVzZSBzYW1wbGVzIGludG8gU2FtcGxlRGF0YSBvYmplY3RzIGlmIG5lZWRlZAorICAg
ICAgICBbU3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5QXZl
cmFnZSwgU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLmZvckVhY2goZnVuY3Rpb24oc2VyaWVzTmFt
ZSkgeworICAgICAgICAgICAgdmFyIHNlcmllcyA9IHNhbXBsZXNbc2VyaWVzTmFtZV07CisgICAg
ICAgICAgICBpZiAoc2VyaWVzICYmICEoc2VyaWVzIGluc3RhbmNlb2YgU2FtcGxlRGF0YSkpCisg
ICAgICAgICAgICAgICAgc2FtcGxlc1tzZXJpZXNOYW1lXSA9IG5ldyBTYW1wbGVEYXRhKHNlcmll
cy5maWVsZE1hcCwgc2VyaWVzLmRhdGEpOworICAgICAgICB9KTsKKworICAgICAgICB2YXIgaXNS
YW1wQ29udHJvbGxlciA9IFsicmFtcCIsICJyYW1wMzAiXS5pbmRleE9mKHRoaXMuX29wdGlvbnNb
ImNvbnRyb2xsZXIiXSkgIT0gLTE7CisgICAgICAgIHZhciBwcmVkb21pbmFudFByb2ZpbGUgPSAi
IjsKKyAgICAgICAgaWYgKGlzUmFtcENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHZhciBwcm9m
aWxlcyA9IHt9OworICAgICAgICAgICAgZGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0uZm9y
RWFjaChmdW5jdGlvbihyZWdyZXNzaW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlZ3Jlc3Np
b25bU3RyaW5ncy5qc29uLnJlZ3Jlc3Npb25zLnByb2ZpbGVdKSB7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBwcm9maWxlID0gcmVncmVzc2lvbltTdHJpbmdzLmpzb24ucmVncmVzc2lvbnMucHJv
ZmlsZV07CisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVzW3Byb2ZpbGVdID0gKHByb2ZpbGVz
W3Byb2ZpbGVdIHx8IDApICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgdmFyIG1heFByb2ZpbGVDb3VudCA9IDA7CisgICAgICAgICAgICBmb3Ig
KHZhciBwcm9maWxlIGluIHByb2ZpbGVzKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb2ZpbGVz
W3Byb2ZpbGVdID4gbWF4UHJvZmlsZUNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIHByZWRv
bWluYW50UHJvZmlsZSA9IHByb2ZpbGU7CisgICAgICAgICAgICAgICAgICAgIG1heFByb2ZpbGVD
b3VudCA9IHByb2ZpbGVzW3Byb2ZpbGVdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCiAgICAgICAgIFtTdHJpbmdzLmpzb24uY29tcGxleGl0eSwgU3RyaW5n
cy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlXS5mb3JFYWNoKGZ1bmN0aW9uKHNlcmllc05hbWUpIHsK
ICAgICAgICAgICAgIGlmICghKHNlcmllc05hbWUgaW4gc2FtcGxlcykpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgICAgICB2YXIgcmVncmVzc2lvbiA9IHt9OwogICAgICAgICAg
ICAgcmVzdWx0W3Nlcmllc05hbWVdID0gcmVncmVzc2lvbjsKLSAgICAgICAgICAgIHZhciByZWdy
ZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jlc3Npb24oc2FtcGxlc1tzZXJpZXNOYW1lXSk7CisgICAg
ICAgICAgICB2YXIgcmVncmVzc2lvblJlc3VsdCA9IGZpbmRSZWdyZXNzaW9uKHNhbXBsZXNbc2Vy
aWVzTmFtZV0sIHByZWRvbWluYW50UHJvZmlsZSk7CiAgICAgICAgICAgICBpZiAoc2VyaWVzTmFt
ZSA9PSBTdHJpbmdzLmpzb24uY29tcGxleGl0eSkKICAgICAgICAgICAgICAgICBjb21wbGV4aXR5
U2FtcGxlcyA9IHJlZ3Jlc3Npb25SZXN1bHQuc2FtcGxlczsKICAgICAgICAgICAgIHZhciBjYWxj
dWxhdGlvbiA9IHJlZ3Jlc3Npb25SZXN1bHQucmVncmVzc2lvbjsKQEAgLTExMSw3ICsxNTIsNyBA
QCBSZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAg
cmVncmVzc2lvbltTdHJpbmdzLmpzb24ubWVhc3VyZW1lbnRzLnN0ZGV2XSA9IE1hdGguc3FydChj
YWxjdWxhdGlvbi5lcnJvciAvIHNhbXBsZXNbc2VyaWVzTmFtZV0ubGVuZ3RoKTsKICAgICAgICAg
fSk7CiAKLSAgICAgICAgaWYgKFsicmFtcCIsICJyYW1wMzAiXS5pbmRleE9mKHRoaXMuX29wdGlv
bnNbImNvbnRyb2xsZXIiXSkgIT0gLTEpIHsKKyAgICAgICAgaWYgKGlzUmFtcENvbnRyb2xsZXIp
IHsKICAgICAgICAgICAgIHZhciB0aW1lQ29tcGxleGl0eSA9IG5ldyBFeHBlcmltZW50OwogICAg
ICAgICAgICAgZGF0YVtTdHJpbmdzLmpzb24uY29udHJvbGxlcl0uZm9yRWFjaChmdW5jdGlvbihy
ZWdyZXNzaW9uKSB7CiAgICAgICAgICAgICAgICAgdGltZUNvbXBsZXhpdHkuc2FtcGxlKHJlZ3Jl
c3Npb25bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldKTsKQEAgLTEyNCwxNiArMTY1LDIyIEBAIFJl
c3VsdHNEYXNoYm9hcmQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICBleHBl
cmltZW50UmVzdWx0W1N0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXZdID0gdGltZUNvbXBs
ZXhpdHkuc3RhbmRhcmREZXZpYXRpb24oKTsKICAgICAgICAgICAgIGV4cGVyaW1lbnRSZXN1bHRb
U3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5wZXJjZW50XSA9IHRpbWVDb21wbGV4aXR5LnBlcmNl
bnRhZ2UoKTsKIAotICAgICAgICAgICAgcmVzdWx0W1N0cmluZ3MuanNvbi5jb21wbGV4aXR5XVtT
dHJpbmdzLmpzb24uYm9vdHN0cmFwXSA9IFJlZ3Jlc3Npb24uYm9vdHN0cmFwKGNvbXBsZXhpdHlT
YW1wbGVzLCAyNTAwLCBmdW5jdGlvbihyZXNhbXBsZSkgewotICAgICAgICAgICAgICAgICAgICBy
ZXNhbXBsZS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBhLmNvbXBsZXhpdHkgLSBiLmNvbXBsZXhpdHk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotCi0gICAgICAgICAgICAgICAgICAgIHZhciByZWdyZXNzaW9uUmVzdWx0ID0gZmluZFJlZ3Jl
c3Npb24ocmVzYW1wbGUpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVncmVzc2lvblJl
c3VsdC5yZWdyZXNzaW9uLmNvbXBsZXhpdHk7Ci0gICAgICAgICAgICAgICAgfSwgLjk1KTsKLSAg
ICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdID0gcmVzdWx0W1N0cmluZ3MuanNv
bi5jb21wbGV4aXR5XVtTdHJpbmdzLmpzb24uYm9vdHN0cmFwXS5tZWRpYW47Ci0KKyAgICAgICAg
ICAgIGNvbnN0IGJvb3RzdHJhcEl0ZXJhdGlvbnMgPSAyNTAwOworICAgICAgICAgICAgdmFyIGJv
b3RzdHJhcFJlc3VsdCA9IFJlZ3Jlc3Npb24uYm9vdHN0cmFwKGNvbXBsZXhpdHlTYW1wbGVzLmRh
dGEsIGJvb3RzdHJhcEl0ZXJhdGlvbnMsIGZ1bmN0aW9uKHJlc2FtcGxlRGF0YSkgeworICAgICAg
ICAgICAgICAgIHZhciBjb21wbGV4aXR5SW5kZXggPSBjb21wbGV4aXR5U2FtcGxlcy5maWVsZE1h
cFtTdHJpbmdzLmpzb24uY29tcGxleGl0eV07CisgICAgICAgICAgICAgICAgcmVzYW1wbGVEYXRh
LnNvcnQoZnVuY3Rpb24oYSwgYikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYVtjb21w
bGV4aXR5SW5kZXhdIC0gYltjb21wbGV4aXR5SW5kZXhdOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgdmFyIHJlc2FtcGxlID0gbmV3IFNhbXBsZURhdGEoY29tcGxleGl0
eVNhbXBsZXMuZmllbGRNYXAsIHJlc2FtcGxlRGF0YSk7CisgICAgICAgICAgICAgICAgdmFyIHJl
Z3Jlc3Npb25SZXN1bHQgPSBmaW5kUmVncmVzc2lvbihyZXNhbXBsZSwgcHJlZG9taW5hbnRQcm9m
aWxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVncmVzc2lvblJlc3VsdC5yZWdyZXNzaW9u
LmNvbXBsZXhpdHk7CisgICAgICAgICAgICB9LCAuOCk7CisKKyAgICAgICAgICAgIHJlc3VsdFtT
dHJpbmdzLmpzb24uY29tcGxleGl0eV1bU3RyaW5ncy5qc29uLmJvb3RzdHJhcF0gPSBib290c3Ry
YXBSZXN1bHQ7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSA9IGJvb3Rz
dHJhcFJlc3VsdC5tZWRpYW47CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3Jl
TG93ZXJCb3VuZF0gPSBib290c3RyYXBSZXN1bHQuY29uZmlkZW5jZUxvdzsKKyAgICAgICAgICAg
IHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVVcHBlckJvdW5kXSA9IGJvb3RzdHJhcFJlc3VsdC5j
b25maWRlbmNlSGlnaDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhciBtYXJrcyA9
IGRhdGFbU3RyaW5ncy5qc29uLm1hcmtzXTsKICAgICAgICAgICAgIHZhciBzYW1wbGluZ1N0YXJ0
SW5kZXggPSAwLCBzYW1wbGluZ0VuZEluZGV4ID0gLTE7CkBAIC0xNDQsMTEgKzE5MSwxMyBAQCBS
ZXN1bHRzRGFzaGJvYXJkID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogCiAgICAgICAgICAgICB2
YXIgYXZlcmFnZUNvbXBsZXhpdHkgPSBuZXcgRXhwZXJpbWVudDsKICAgICAgICAgICAgIHZhciBh
dmVyYWdlRnJhbWVMZW5ndGggPSBuZXcgRXhwZXJpbWVudDsKLSAgICAgICAgICAgIHNhbXBsZXNb
U3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdLmZvckVhY2goZnVuY3Rpb24gKHNhbXBsZSwgaSkgewor
ICAgICAgICAgICAgdmFyIGNvbnRyb2xsZXJTYW1wbGVzID0gc2FtcGxlc1tTdHJpbmdzLmpzb24u
Y29udHJvbGxlcl07CisgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5mb3JFYWNoKGZ1bmN0
aW9uIChzYW1wbGUsIGkpIHsKICAgICAgICAgICAgICAgICBpZiAoaSA+PSBzYW1wbGluZ1N0YXJ0
SW5kZXggJiYgKHNhbXBsaW5nRW5kSW5kZXggPT0gLTEgfHwgaSA8IHNhbXBsaW5nRW5kSW5kZXgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2VDb21wbGV4aXR5LnNhbXBsZShzYW1wbGUu
Y29tcGxleGl0eSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzYW1wbGUuc21vb3RoZWRGcmFt
ZUxlbmd0aCAmJiBzYW1wbGUuc21vb3RoZWRGcmFtZUxlbmd0aCAhPSAtMSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGF2ZXJhZ2VGcmFtZUxlbmd0aC5zYW1wbGUoc2FtcGxlLnNtb290aGVkRnJh
bWVMZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBhdmVyYWdlQ29tcGxleGl0eS5zYW1wbGUo
Y29udHJvbGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHNhbXBsZSwgU3RyaW5ncy5qc29uLmNv
bXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNtb290aGVkRnJhbWVMZW5ndGgg
PSBjb250cm9sbGVyU2FtcGxlcy5nZXRGaWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24u
c21vb3RoZWRGcmFtZUxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzbW9vdGhlZEZy
YW1lTGVuZ3RoICYmIHNtb290aGVkRnJhbWVMZW5ndGggIT0gLTEpCisgICAgICAgICAgICAgICAg
ICAgICAgICBhdmVyYWdlRnJhbWVMZW5ndGguc2FtcGxlKHNtb290aGVkRnJhbWVMZW5ndGgpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogCkBAIC0xNjcsNiArMjE2LDggQEAg
UmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAgIGV4
cGVyaW1lbnRSZXN1bHRbU3RyaW5ncy5qc29uLm1lYXN1cmVtZW50cy5wZXJjZW50XSA9IGF2ZXJh
Z2VGcmFtZUxlbmd0aC5wZXJjZW50YWdlKCk7CiAKICAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdz
Lmpzb24uc2NvcmVdID0gYXZlcmFnZUNvbXBsZXhpdHkuc2NvcmUoRXhwZXJpbWVudC5kZWZhdWx0
cy5DT05DRVJOKTsKKyAgICAgICAgICAgIHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVMb3dlckJv
dW5kXSA9IHJlc3VsdFtTdHJpbmdzLmpzb24uc2NvcmVdIC0gYXZlcmFnZUZyYW1lTGVuZ3RoLnN0
YW5kYXJkRGV2aWF0aW9uKCk7CisgICAgICAgICAgICByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3Jl
VXBwZXJCb3VuZF0gPSByZXN1bHRbU3RyaW5ncy5qc29uLnNjb3JlXSArIGF2ZXJhZ2VGcmFtZUxl
bmd0aC5zdGFuZGFyZERldmlhdGlvbigpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTg4LDEy
ICsyMzksMjcgQEAgUmVzdWx0c0Rhc2hib2FyZCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAg
ICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7CiAgICAgfSwKIAotICAgIGdldCBzY29yZSgpCisg
ICAgX2dldFJlc3VsdHNQcm9wZXJ0eTogZnVuY3Rpb24ocHJvcGVydHkpCiAgICAgewogICAgICAg
ICBpZiAodGhpcy5fcmVzdWx0cykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHRzW1N0
cmluZ3MuanNvbi5zY29yZV07CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWx0c1twcm9w
ZXJ0eV07CiAgICAgICAgIHRoaXMuX3Byb2Nlc3NEYXRhKCk7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9yZXN1bHRzW1N0cmluZ3MuanNvbi5zY29yZV07CisgICAgICAgIHJldHVybiB0aGlzLl9yZXN1
bHRzW3Byb3BlcnR5XTsKKyAgICB9LAorCisgICAgZ2V0IHNjb3JlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9nZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlKTsKKyAg
ICB9LAorCisgICAgZ2V0IHNjb3JlTG93ZXJCb3VuZCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fZ2V0UmVzdWx0c1Byb3BlcnR5KFN0cmluZ3MuanNvbi5zY29yZUxvd2VyQm91bmQpOwor
ICAgIH0sCisKKyAgICBnZXQgc2NvcmVVcHBlckJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9nZXRSZXN1bHRzUHJvcGVydHkoU3RyaW5ncy5qc29uLnNjb3JlVXBwZXJCb3VuZCk7
CiAgICAgfQogfSk7CiAKQEAgLTIzNywzNCArMzAzLDQwIEBAIFJlc3VsdHNUYWJsZSA9IFV0aWxp
dGllcy5jcmVhdGVDbGFzcygKIAogICAgICAgICAgICAgdmFyIHRoID0gVXRpbGl0aWVzLmNyZWF0
ZUVsZW1lbnQoInRoIiwge30sIHJvdyk7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnRpdGxlICE9
IFN0cmluZ3MudGV4dC5ncmFwaCkKLSAgICAgICAgICAgICAgICB0aC50ZXh0Q29udGVudCA9IGhl
YWRlci50aXRsZTsKKyAgICAgICAgICAgICAgICB0aC5pbm5lckhUTUwgPSBoZWFkZXIudGl0bGU7
CiAgICAgICAgICAgICBpZiAoaGVhZGVyLmNoaWxkcmVuKQogICAgICAgICAgICAgICAgIHRoLmNv
bFNwYW4gPSBoZWFkZXIuY2hpbGRyZW4ubGVuZ3RoOwogICAgICAgICB9KTsKICAgICB9LAogCisg
ICAgX2FkZEJvZHk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMudGJvZHkgPSBVdGls
aXRpZXMuY3JlYXRlRWxlbWVudCgidGJvZHkiLCB7fSwgdGhpcy5lbGVtZW50KTsKKyAgICB9LAor
CiAgICAgX2FkZEVtcHR5Um93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgcm93ID0g
VXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRyIiwge30sIHRoaXMuZWxlbWVudCk7CisgICAgICAg
IHZhciByb3cgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwgdGhpcy50Ym9keSk7
CiAgICAgICAgIHRoaXMuX2ZsYXR0ZW5lZEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGVhZGVy
KSB7CiAgICAgICAgICAgICByZXR1cm4gVXRpbGl0aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwgeyBj
bGFzczogInN1aXRlcy1zZXBhcmF0b3IiIH0sIHJvdyk7CiAgICAgICAgIH0pOwogICAgIH0sCiAK
LSAgICBfYWRkVGVzdDogZnVuY3Rpb24odGVzdE5hbWUsIHRlc3RSZXN1bHRzLCBvcHRpb25zKQor
ICAgIF9hZGRUZXN0OiBmdW5jdGlvbih0ZXN0TmFtZSwgdGVzdFJlc3VsdCwgb3B0aW9ucykKICAg
ICB7Ci0gICAgICAgIHZhciByb3cgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgidHIiLCB7fSwg
dGhpcy5lbGVtZW50KTsKKyAgICAgICAgdmFyIHJvdyA9IFV0aWxpdGllcy5jcmVhdGVFbGVtZW50
KCJ0ciIsIHt9LCB0aGlzLnRib2R5KTsKIAogICAgICAgICB0aGlzLl9mbGF0dGVuZWRIZWFkZXJz
LmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikgewogICAgICAgICAgICAgdmFyIHRkID0gVXRpbGl0
aWVzLmNyZWF0ZUVsZW1lbnQoInRkIiwge30sIHJvdyk7Ci0gICAgICAgICAgICBpZiAoaGVhZGVy
LnRpdGxlID09IFN0cmluZ3MudGV4dC50ZXN0TmFtZSkgeworICAgICAgICAgICAgaWYgKGhlYWRl
ci50ZXh0ID09IFN0cmluZ3MudGV4dC50ZXN0TmFtZSkgewogICAgICAgICAgICAgICAgIHRkLnRl
eHRDb250ZW50ID0gdGVzdE5hbWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlci50ZXh0
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0ZXN0UmVzdWx0c1toZWFkZXIudGV4dF07
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBoZWFkZXIudGV4dCA9PSAic3RyaW5nIikg
eworICAgICAgICAgICAgICAgIHZhciBkYXRhID0gdGVzdFJlc3VsdFtoZWFkZXIudGV4dF07CiAg
ICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICJudW1iZXIiKQogICAgICAgICAgICAg
ICAgICAgICBkYXRhID0gZGF0YS50b0ZpeGVkKDIpOwotICAgICAgICAgICAgICAgIHRkLnRleHRD
b250ZW50ID0gZGF0YTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZC5pbm5lckhU
TUwgPSBkYXRhOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGQuaW5uZXJI
VE1MID0gaGVhZGVyLnRleHQodGVzdFJlc3VsdCk7CiAgICAgICAgIH0sIHRoaXMpOwogICAgIH0s
CiAKQEAgLTI4NCw2ICszNTYsNyBAQCBSZXN1bHRzVGFibGUgPSBVdGlsaXRpZXMuY3JlYXRlQ2xh
c3MoCiAgICAgewogICAgICAgICB0aGlzLmNsZWFyKCk7CiAgICAgICAgIHRoaXMuX2FkZEhlYWRl
cigpOworICAgICAgICB0aGlzLl9hZGRCb2R5KCk7CiAKICAgICAgICAgdmFyIGl0ZXJhdGlvbnNS
ZXN1bHRzID0gZGFzaGJvYXJkLnJlc3VsdHM7CiAgICAgICAgIGl0ZXJhdGlvbnNSZXN1bHRzLmZv
ckVhY2goZnVuY3Rpb24oaXRlcmF0aW9uUmVzdWx0LCBpbmRleCkgewpAQCAtMzI3LDEwICs0MDAs
MTAgQEAgd2luZG93LnNlY3Rpb25zTWFuYWdlciA9CiB7CiAgICAgc2hvd1NlY3Rpb246IGZ1bmN0
aW9uKHNlY3Rpb25JZGVudGlmaWVyLCBwdXNoU3RhdGUpCiAgICAgewotICAgICAgICBkb2N1bWVu
dC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoInNob3dpbmctaW50cm8iKTsKLSAgICAgICAgZG9jdW1l
bnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93aW5nLXJlc3VsdHMiKTsKLSAgICAgICAgZG9j
dW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93aW5nLXRlc3QtY29udGFpbmVyIik7Ci0K
KyAgICAgICAgdmFyIHNlY3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibWFpbiA+
IHNlY3Rpb24iKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93
aW5nLSIgKyBzZWN0aW9uc1tpXS5pZCk7CisgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQuYm9k
eS5jbGFzc0xpc3QuYWRkKCJzaG93aW5nLSIgKyBzZWN0aW9uSWRlbnRpZmllcik7CiAKICAgICAg
ICAgdmFyIGN1cnJlbnRTZWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNl
Y3Rpb24uc2VsZWN0ZWQiKTsKQEAgLTM0NiwxMSArNDE5LDExIEBAIHdpbmRvdy5zZWN0aW9uc01h
bmFnZXIgPQogICAgICAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUoe3NlY3Rpb246IHNlY3Rpb25J
ZGVudGlmaWVyfSwgZG9jdW1lbnQudGl0bGUpOwogICAgIH0sCiAKLSAgICBzZXRTZWN0aW9uU2Nv
cmU6IGZ1bmN0aW9uKHNlY3Rpb25JZGVudGlmaWVyLCBzY29yZSwgbWVhbikKKyAgICBzZXRTZWN0
aW9uU2NvcmU6IGZ1bmN0aW9uKHNlY3Rpb25JZGVudGlmaWVyLCBzY29yZSwgY29uZmlkZW5jZSkK
ICAgICB7CiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiICsgc2VjdGlvbklkZW50
aWZpZXIgKyAiIC5zY29yZSIpLnRleHRDb250ZW50ID0gc2NvcmU7Ci0gICAgICAgIGlmIChtZWFu
KQotICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBzZWN0aW9uSWRlbnRp
ZmllciArICIgLm1lYW4iKS50ZXh0Q29udGVudCA9IG1lYW47CisgICAgICAgIGlmIChjb25maWRl
bmNlKQorICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIgKyBzZWN0aW9uSWRl
bnRpZmllciArICIgLmNvbmZpZGVuY2UiKS50ZXh0Q29udGVudCA9IGNvbmZpZGVuY2U7CiAgICAg
fSwKIAogICAgIHBvcHVsYXRlVGFibGU6IGZ1bmN0aW9uKHRhYmxlSWRlbnRpZmllciwgaGVhZGVy
cywgZGFzaGJvYXJkKQpAQCAtMzYzLDkgKzQzNiwzMiBAQCB3aW5kb3cuc2VjdGlvbnNNYW5hZ2Vy
ID0KIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAgIGluaXRpYWxpemU6IGZ1bmN0
aW9uKCkKICAgICB7CisgICAgICAgIGJlbmNobWFya0NvbnRyb2xsZXIuZGV0ZXJtaW5lQ2FudmFz
U2l6ZSgpOwogICAgICAgICBiZW5jaG1hcmtDb250cm9sbGVyLmFkZE9yaWVudGF0aW9uTGlzdGVu
ZXJJZk5lY2Vzc2FyeSgpOwogICAgIH0sCiAKKyAgICBkZXRlcm1pbmVDYW52YXNTaXplOiBmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIG1hdGNoID0gd2luZG93Lm1hdGNoTWVkaWEoIihtYXgtZGV2
aWNlLXdpZHRoOiA3NjBweCkiKTsKKyAgICAgICAgaWYgKG1hdGNoLm1hdGNoZXMpIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgic21hbGwiKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1hdGNoID0gd2luZG93Lm1hdGNoTWVkaWEo
IihtYXgtZGV2aWNlLXdpZHRoOiAxNjAwcHgpIik7CisgICAgICAgIGlmIChtYXRjaC5tYXRjaGVz
KSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoIm1lZGl1bSIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbWF0Y2ggPSB3aW5kb3cu
bWF0Y2hNZWRpYSgiKG1heC13aWR0aDogMTYwMHB4KSIpOworICAgICAgICBpZiAobWF0Y2gubWF0
Y2hlcykgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJtZWRpdW0i
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmJv
ZHkuY2xhc3NMaXN0LmFkZCgibGFyZ2UiKTsKKyAgICB9LAorCiAgICAgYWRkT3JpZW50YXRpb25M
aXN0ZW5lcklmTmVjZXNzYXJ5OiBmdW5jdGlvbigpIHsKICAgICAgICAgaWYgKCEoIm9yaWVudGF0
aW9uIiBpbiB3aW5kb3cpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzc5LDkgKzQ3NSw5IEBA
IHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogICAgIHsKICAgICAgICAgYmVuY2htYXJr
Q29udHJvbGxlci5pc0luTGFuZHNjYXBlT3JpZW50YXRpb24gPSBtYXRjaC5tYXRjaGVzOwogICAg
ICAgICBpZiAobWF0Y2gubWF0Y2hlcykKLSAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoIi5vcmllbnRhdGlvbi1jaGVjayBwIikuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7CisgICAg
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RhcnQtYmVuY2htYXJrIHAiKS5jbGFz
c0xpc3QuYWRkKCJoaWRkZW4iKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiLm9yaWVudGF0aW9uLWNoZWNrIHAiKS5jbGFzc0xpc3QucmVtb3ZlKCJo
aWRkZW4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdGFydC1iZW5j
aG1hcmsgcCIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgICBiZW5jaG1hcmtD
b250cm9sbGVyLnVwZGF0ZVN0YXJ0QnV0dG9uU3RhdGUoKTsKICAgICB9LAogCkBAIC0zOTIsNiAr
NDg4LDEwIEBAIHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyID0gewogCiAgICAgX3N0YXJ0QmVu
Y2htYXJrOiBmdW5jdGlvbihzdWl0ZXMsIG9wdGlvbnMsIGZyYW1lQ29udGFpbmVySUQpCiAgICAg
eworICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLm1h
dGNoKC9zbWFsbHxtZWRpdW18bGFyZ2UvKTsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pCisg
ICAgICAgICAgICBvcHRpb25zW1N0cmluZ3MuanNvbi5jb25maWd1cmF0aW9uXSA9IGNvbmZpZ3Vy
YXRpb25bMF07CisKICAgICAgICAgYmVuY2htYXJrUnVubmVyQ2xpZW50LmluaXRpYWxpemUoc3Vp
dGVzLCBvcHRpb25zKTsKICAgICAgICAgdmFyIGZyYW1lQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZnJhbWVDb250YWluZXJJRCk7CiAgICAgICAgIHZhciBydW5uZXIgPSBuZXcg
QmVuY2htYXJrUnVubmVyKHN1aXRlcywgZnJhbWVDb250YWluZXIsIGJlbmNobWFya1J1bm5lckNs
aWVudCk7CkBAIC00MDMsNyArNTAzLDcgQEAgd2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIgPSB7
CiAgICAgc3RhcnRCZW5jaG1hcms6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBvcHRp
b25zID0gewotICAgICAgICAgICAgInRlc3QtaW50ZXJ2YWwiOiAyMCwKKyAgICAgICAgICAgICJ0
ZXN0LWludGVydmFsIjogMzAsCiAgICAgICAgICAgICAiZGlzcGxheSI6ICJtaW5pbWFsIiwKICAg
ICAgICAgICAgICJjb250cm9sbGVyIjogInJhbXAiLAogICAgICAgICAgICAgImthbG1hbi1wcm9j
ZXNzLWVycm9yIjogMSwKQEAgLTQyMSwxMCArNTIxLDEyIEBAIHdpbmRvdy5iZW5jaG1hcmtDb250
cm9sbGVyID0gewogICAgICAgICB9CiAKICAgICAgICAgdmFyIGRhc2hib2FyZCA9IGJlbmNobWFy
a1J1bm5lckNsaWVudC5yZXN1bHRzOwotCi0gICAgICAgIHNlY3Rpb25zTWFuYWdlci5zZXRTZWN0
aW9uU2NvcmUoInJlc3VsdHMiLCBkYXNoYm9hcmQuc2NvcmUudG9GaXhlZCgyKSk7CisgICAgICAg
IHZhciBzY29yZSA9IGRhc2hib2FyZC5zY29yZTsKKyAgICAgICAgdmFyIGNvbmZpZGVuY2UgPSAi
wrEiICsgKFN0YXRpc3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UoZGFzaGJvYXJkLnNj
b3JlTG93ZXJCb3VuZCwgc2NvcmUsIGRhc2hib2FyZC5zY29yZVVwcGVyQm91bmQpICogMTAwKS50
b0ZpeGVkKDIpICsgIiUiOworICAgICAgICBzZWN0aW9uc01hbmFnZXIuc2V0U2VjdGlvblNjb3Jl
KCJyZXN1bHRzIiwgc2NvcmUudG9GaXhlZCgyKSwgY29uZmlkZW5jZSk7CiAgICAgICAgIHNlY3Rp
b25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJyZXN1bHRzLWhlYWRlciIsIEhlYWRlcnMudGVzdE5h
bWUsIGRhc2hib2FyZCk7CiAgICAgICAgIHNlY3Rpb25zTWFuYWdlci5wb3B1bGF0ZVRhYmxlKCJy
ZXN1bHRzLXNjb3JlIiwgSGVhZGVycy5zY29yZSwgZGFzaGJvYXJkKTsKKyAgICAgICAgc2VjdGlv
bnNNYW5hZ2VyLnBvcHVsYXRlVGFibGUoInJlc3VsdHMtZGF0YSIsIEhlYWRlcnMuZGV0YWlscywg
ZGFzaGJvYXJkKTsKICAgICAgICAgc2VjdGlvbnNNYW5hZ2VyLnNob3dTZWN0aW9uKCJyZXN1bHRz
IiwgdHJ1ZSk7CiAgICAgfSwKIApAQCAtNDcyLDcgKzU3NCwxMSBAQCB3aW5kb3cuYmVuY2htYXJr
Q29udHJvbGxlciA9IHsKICAgICAgICAgICAgICAgICBvcHRpb25zOiBiZW5jaG1hcmtSdW5uZXJD
bGllbnQucmVzdWx0cy5vcHRpb25zLAogICAgICAgICAgICAgICAgIGRhdGE6IGJlbmNobWFya1J1
bm5lckNsaWVudC5yZXN1bHRzLmRhdGEKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBkYXRh
LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0LCBudWxsLCAxKTsKKyAgICAgICAg
ICAgIGRhdGEudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShvdXRwdXQsIGZ1bmN0aW9uKGtl
eSwgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVy
JykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFV0aWxpdGllcy50b0ZpeGVkTnVtYmVyKHZh
bHVlLCAzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICB9LCAx
KTsKICAgICAgICAgfSwgMCk7CiAgICAgICAgIGRhdGEub25jbGljayA9IGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKQEAgLTUw
Myw3ICs2MDksNyBAQCB3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlciA9IHsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNhc2UgMTogewogICAgICAgICAgICAgICAgIHJhbmdlLnNldFN0YXJ0
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXN1bHRzIC5zY29yZSIpLCAwKTsKLSAgICAgICAg
ICAgICAgICByYW5nZS5zZXRFbmRBZnRlcihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVzdWx0
cy1zY29yZSA+IHRyOmxhc3Qtb2YtdHlwZSIpLCAwKTsKKyAgICAgICAgICAgICAgICByYW5nZS5z
ZXRFbmRBZnRlcihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVzdWx0cy1zY29yZSIpLCAwKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2Ug
MjogewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvbGluZXMuc3ZnIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvbGluZXMuc3ZnCmluZGV4IDE2YzdkYzcuLjgzNDU4YjggMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2xpbmVzLnN2ZworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9saW5lcy5zdmcKQEAg
LTIsMjUgKzIsMjUgQEAKIDwhLS0gQ29weXJpZ2h0IMKpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAtLT4KIDxzdmcgdmlld0JveD0iMCAwIDEwNTIgMTI1MSIgdmVyc2lvbj0i
MS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgIDxnIGZpbGwtb3Bh
Y2l0eT0iMC41IiBmaWxsPSJ3aGl0ZSI+Ci0gICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjUxLjc2
MTcxOSAwIDI1My43NjE3MTkgMCAyLjEyODMzMzQ1IDEyNTAuMzYzMjggMC4xMjgzMzM0NTQgMTI1
MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI5MS43NjE3MTkgMCAyOTUuNzYx
NzE5IDAgNDQuMTI4MzMzNSAxMjUwLjM2MzI4IDQwLjEyODMzMzUgMTI1MC4zNjMyOCIvPgotICAg
ICAgICA8cG9seWdvbiBwb2ludHM9IjMzMS43NjE3MTkgMCAzMzcuNzYxNzE5IDAgODYuMTI4MzMz
NSAxMjUwLjM2MzI4IDgwLjEyODMzMzUgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBw
b2ludHM9IjM3MS43NjE3MTkgMCAzNzkuNzYxNzE5IDAgMTI4LjEyODMzMyAxMjUwLjM2MzI4IDEy
MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQxMS43NjE3
MTkgMCA0MjEuNzYxNzE5IDAgMTcwLjEyODMzMyAxMjUwLjM2MzI4IDE2MC4xMjgzMzMgMTI1MC4z
NjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ1MS43NjE3MTkgMCA0NjMuNzYxNzE5
IDAgMjEyLjEyODMzMyAxMjUwLjM2MzI4IDIwMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAg
ICA8cG9seWdvbiBwb2ludHM9IjQ5MS43NjE3MTkgMCA1MDUuNzYxNzE5IDAgMjU0LjEyODMzMyAx
MjUwLjM2MzI4IDI0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2lu
dHM9IjUzMS43NjE3MTkgMCA1NDcuNzYxNzE5IDAgMjk2LjEyODMzMyAxMjUwLjM2MzI4IDI4MC4x
MjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU3MS43NjE3MTkg
MCA1ODkuNzYxNzE5IDAgMzM4LjEyODMzMyAxMjUwLjM2MzI4IDMyMC4xMjgzMzMgMTI1MC4zNjMy
OCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjYxMS43NjE3MTkgMCA2MzEuNzYxNzE5IDAg
MzgwLjEyODMzMyAxMjUwLjM2MzI4IDM2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8
cG9seWdvbiBwb2ludHM9IjY1MS43NjE3MTkgMCA2NzMuNzYxNzE5IDAgNDIyLjEyODMzMyAxMjUw
LjM2MzI4IDQwMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9
IjY5MS43NjE3MTkgMCA3MTUuNzYxNzE5IDAgNDY0LjEyODMzMyAxMjUwLjM2MzI4IDQ0MC4xMjgz
MzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjczMS43NjE3MTkgMCA3
NTcuNzYxNzE5IDAgNTA2LjEyODMzMyAxMjUwLjM2MzI4IDQ4MC4xMjgzMzMgMTI1MC4zNjMyOCIv
PgotICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijc3MS43NjE3MTkgMCA3OTkuNzYxNzE5IDAgNTQ4
LjEyODMzMyAxMjUwLjM2MzI4IDUyMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9s
eWdvbiBwb2ludHM9IjgxMS43NjE3MTkgMCA4NDEuNzYxNzE5IDAgNTkwLjEyODMzMyAxMjUwLjM2
MzI4IDU2MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg1
MS43NjE3MTkgMCA4ODMuNzYxNzE5IDAgNjMyLjEyODMzMyAxMjUwLjM2MzI4IDYwMC4xMjgzMzMg
MTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg5MS43NjE3MTkgMCA5MjUu
NzYxNzE5IDAgNjc0LjEyODMzMyAxMjUwLjM2MzI4IDY0MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgot
ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjkzMS43NjE3MTkgMCA5NjcuNzYxNzE5IDAgNzE2LjEy
ODMzMyAxMjUwLjM2MzI4IDY4MC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdv
biBwb2ludHM9Ijk3MS43NjE3MTkgMCAxMDA5Ljc2MTcyIDAgNzU4LjEyODMzMyAxMjUwLjM2MzI4
IDcyMC4xMjgzMzMgMTI1MC4zNjMyOCIvPgotICAgICAgICA8cG9seWdvbiBwb2ludHM9IjEwMTEu
NzYxNzIgMCAxMDUxLjc2MTcyIDAgODAwLjEyODMzMyAxMjUwLjM2MzI4IDc2MC4xMjgzMzMgMTI1
MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIyMS43NjE3MTkgMCAyMjMuNzYx
NzE5IDAgMi4xMjgzMzM0NSAxMjUwLjM2MzI4IDAuMTI4MzMzNDU0IDEyNTAuMzYzMjgiLz4KKyAg
ICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjEuNzYxNzE5IDAgMjY1Ljc2MTcxOSAwIDQ0LjEyODMz
MzUgMTI1MC4zNjMyOCA0MC4xMjgzMzM1IDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24g
cG9pbnRzPSIzMDEuNzYxNzE5IDAgMzA3Ljc2MTcxOSAwIDg2LjEyODMzMzUgMTI1MC4zNjMyOCA4
MC4xMjgzMzM1IDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNDEuNzYx
NzE5IDAgMzQ5Ljc2MTcxOSAwIDEyOC4xMjgzMzMgMTI1MC4zNjMyOCAxMjAuMTI4MzMzIDEyNTAu
MzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzODEuNzYxNzE5IDAgMzkxLjc2MTcx
OSAwIDE3MC4xMjgzMzMgMTI1MC4zNjMyOCAxNjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAg
ICAgPHBvbHlnb24gcG9pbnRzPSI0MjEuNzYxNzE5IDAgNDMzLjc2MTcxOSAwIDIxMi4xMjgzMzMg
MTI1MC4zNjMyOCAyMDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9p
bnRzPSI0NjEuNzYxNzE5IDAgNDc1Ljc2MTcxOSAwIDI1NC4xMjgzMzMgMTI1MC4zNjMyOCAyNDAu
MTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1MDEuNzYxNzE5
IDAgNTE3Ljc2MTcxOSAwIDI5Ni4xMjgzMzMgMTI1MC4zNjMyOCAyODAuMTI4MzMzIDEyNTAuMzYz
MjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI1NDEuNzYxNzE5IDAgNTU5Ljc2MTcxOSAw
IDMzOC4xMjgzMzMgMTI1MC4zNjMyOCAzMjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAg
PHBvbHlnb24gcG9pbnRzPSI1ODEuNzYxNzE5IDAgNjAxLjc2MTcxOSAwIDM4MC4xMjgzMzMgMTI1
MC4zNjMyOCAzNjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRz
PSI2MjEuNzYxNzE5IDAgNjQzLjc2MTcxOSAwIDQyMi4xMjgzMzMgMTI1MC4zNjMyOCA0MDAuMTI4
MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NjEuNzYxNzE5IDAg
Njg1Ljc2MTcxOSAwIDQ2NC4xMjgzMzMgMTI1MC4zNjMyOCA0NDAuMTI4MzMzIDEyNTAuMzYzMjgi
Lz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3MDEuNzYxNzE5IDAgNzI3Ljc2MTcxOSAwIDUw
Ni4xMjgzMzMgMTI1MC4zNjMyOCA0ODAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBv
bHlnb24gcG9pbnRzPSI3NDEuNzYxNzE5IDAgNzY5Ljc2MTcxOSAwIDU0OC4xMjgzMzMgMTI1MC4z
NjMyOCA1MjAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3
ODEuNzYxNzE5IDAgODExLjc2MTcxOSAwIDU5MC4xMjgzMzMgMTI1MC4zNjMyOCA1NjAuMTI4MzMz
IDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4MjEuNzYxNzE5IDAgODUz
Ljc2MTcxOSAwIDYzMi4xMjgzMzMgMTI1MC4zNjMyOCA2MDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4K
KyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4NjEuNzYxNzE5IDAgODk1Ljc2MTcxOSAwIDY3NC4x
MjgzMzMgMTI1MC4zNjMyOCA2NDAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHln
b24gcG9pbnRzPSI5MDEuNzYxNzE5IDAgOTM3Ljc2MTcxOSAwIDcxNi4xMjgzMzMgMTI1MC4zNjMy
OCA2ODAuMTI4MzMzIDEyNTAuMzYzMjgiLz4KKyAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5NDEu
NzYxNzE5IDAgOTc5Ljc2MTcyIDAgNzU4LjEyODMzMyAxMjUwLjM2MzI4IDcyMC4xMjgzMzMgMTI1
MC4zNjMyOCIvPgorICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijk4MS43NjE3MiAwIDEwMjEuNzYx
NzIgMCA4MDAuMTI4MzMzIDEyNTAuMzYzMjggNzYwLjEyODMzMyAxMjUwLjM2MzI4Ii8+CiAgICAg
PC9nPgogPC9zdmc+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3J1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvcnVubmVyL3Rlc3RzLmpzCmluZGV4IGUzNDljNjMuLmFhOTM4YzUgMTAwNjQ0Ci0tLSBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpz
CkBAIC0xLDYgKzEsMjUgQEAKIHZhciBIZWFkZXJzID0gewotICAgIHRlc3ROYW1lOiBbeyB0aXRs
ZTogU3RyaW5ncy50ZXh0LnRlc3ROYW1lIH1dLAotICAgIHNjb3JlOiBbeyB0aXRsZTogU3RyaW5n
cy50ZXh0LnNjb3JlLCB0ZXh0OiBTdHJpbmdzLmpzb24uc2NvcmUgfV0KKyAgICB0ZXN0TmFtZTog
WworICAgICAgICB7CisgICAgICAgICAgICB0aXRsZTogIjxzcGFuIG9uY2xpY2s9J2JlbmNobWFy
a0NvbnRyb2xsZXIuc2hvd0RlYnVnSW5mbygpJz4iICsgU3RyaW5ncy50ZXh0LnRlc3ROYW1lICsg
Ijwvc3Bhbj4iLAorICAgICAgICAgICAgdGV4dDogU3RyaW5ncy50ZXh0LnRlc3ROYW1lCisgICAg
ICAgIH0KKyAgICBdLAorICAgIHNjb3JlOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgIHRpdGxl
OiBTdHJpbmdzLnRleHQuc2NvcmUsCisgICAgICAgICAgICB0ZXh0OiBTdHJpbmdzLmpzb24uc2Nv
cmUKKyAgICAgICAgfQorICAgIF0sCisgICAgZGV0YWlsczogWworICAgICAgICB7CisgICAgICAg
ICAgICB0aXRsZTogIiZuYnNwOyIsCisgICAgICAgICAgICB0ZXh0OiBmdW5jdGlvbihkYXRhKSB7
CisgICAgICAgICAgICAgICAgdmFyIGJvb3RzdHJhcCA9IGRhdGFbU3RyaW5ncy5qc29uLmNvbXBs
ZXhpdHldW1N0cmluZ3MuanNvbi5ib290c3RyYXBdOworICAgICAgICAgICAgICAgIHJldHVybiAi
PHNwYW4+wrEiICsgKFN0YXRpc3RpY3MubGFyZ2VzdERldmlhdGlvblBlcmNlbnRhZ2UoYm9vdHN0
cmFwLmNvbmZpZGVuY2VMb3csIGJvb3RzdHJhcC5tZWRpYW4sIGJvb3RzdHJhcC5jb25maWRlbmNl
SGlnaCkgKiAxMDApLnRvRml4ZWQoMikgKyAiJTwvc3Bhbj4iOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgXQogfTsKIAogdmFyIFN1aXRlID0gZnVuY3Rpb24obmFtZSwgdGVzdHMpIHsK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlz
dGljcy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RhdGlzdGlj
cy5qcwppbmRleCA2NTg2ZTg2Li45MzIyYTc5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzCkBAIC03MCw2ICs3MCwxMSBAQCBT
dGF0aXN0aWNzID0KICAgICAgICAgICB2YXIgdCA9IDEuMCAvICgxLjAgKyBwICogdmFsdWUpOwog
ICAgICAgICAgIHZhciB5ID0gMS4wIC0gKCgoKChhNSAqIHQgKyBhNCkgKiB0KSArIGEzKSAqIHQg
KyBhMikgKiB0ICsgYTEpICogdCAqIE1hdGguZXhwKC12YWx1ZSAqIHZhbHVlKTsKICAgICAgICAg
ICByZXR1cm4gc2lnbiAqIHk7CisgICAgfSwKKworICAgIGxhcmdlc3REZXZpYXRpb25QZXJjZW50
YWdlOiBmdW5jdGlvbihsb3csIG1lYW4sIGhpZ2gpCisgICAgeworICAgICAgICByZXR1cm4gTWF0
aC5tYXgoTWF0aC5hYnMobG93IC8gbWVhbiAtIDEpLCAoaGlnaCAvIG1lYW4gLSAxKSk7CiAgICAg
fQogfTsKIApAQCAtMTQ4LDM5ICsxNTMsNDkgQEAgRXhwZXJpbWVudC5kZWZhdWx0cyA9CiB9Owog
CiBSZWdyZXNzaW9uID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAotICAgIGZ1bmN0aW9uKHNhbXBs
ZXMsIGdldENvbXBsZXhpdHksIGdldEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwg
ZGVzaXJlZEZyYW1lTGVuZ3RoKQorICAgIGZ1bmN0aW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHks
IGdldEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgb3B0aW9ucykKICAgICB7Ci0g
ICAgICAgIGRlc2lyZWRGcmFtZUxlbmd0aCA9IGRlc2lyZWRGcmFtZUxlbmd0aCB8fCAxMDAwLzYw
OwotICAgICAgICB2YXIgc2xvcGUgPSB0aGlzLl9jYWxjdWxhdGVSZWdyZXNzaW9uKHNhbXBsZXMs
IGdldENvbXBsZXhpdHksIGdldEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgewot
ICAgICAgICAgICAgc2hvdWxkQ2xpcDogdHJ1ZSwKLSAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJh
bWVMZW5ndGgsCi0gICAgICAgICAgICB0MTogMAotICAgICAgICB9KTsKLSAgICAgICAgdmFyIGZs
YXQgPSB0aGlzLl9jYWxjdWxhdGVSZWdyZXNzaW9uKHNhbXBsZXMsIGdldENvbXBsZXhpdHksIGdl
dEZyYW1lTGVuZ3RoLCBzdGFydEluZGV4LCBlbmRJbmRleCwgewotICAgICAgICAgICAgc2hvdWxk
Q2xpcDogdHJ1ZSwKLSAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5ndGgsCi0gICAgICAg
ICAgICB0MTogMCwKLSAgICAgICAgICAgIHQyOiAwCi0gICAgICAgIH0pOwotICAgICAgICB2YXIg
ZGVzaXJlZDsKLSAgICAgICAgaWYgKHNsb3BlLmVycm9yIDwgZmxhdC5lcnJvcikKLSAgICAgICAg
ICAgIGRlc2lyZWQgPSBzbG9wZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZGVzaXJlZCA9
IGZsYXQ7CisgICAgICAgIHZhciBkZXNpcmVkRnJhbWVMZW5ndGggPSBvcHRpb25zLmRlc2lyZWRG
cmFtZUxlbmd0aCB8fCAxMDAwLzYwOworICAgICAgICB2YXIgYmVzdFByb2ZpbGU7CisKKyAgICAg
ICAgaWYgKCFvcHRpb25zLnByZWZlcnJlZFByb2ZpbGUgfHwgb3B0aW9ucy5wcmVmZXJyZWRQcm9m
aWxlID09IFN0cmluZ3MuanNvbi5wcm9maWxlcy5zbG9wZSkgeworICAgICAgICAgICAgdmFyIHNs
b3BlID0gdGhpcy5fY2FsY3VsYXRlUmVncmVzc2lvbihzYW1wbGVzLCBnZXRDb21wbGV4aXR5LCBn
ZXRGcmFtZUxlbmd0aCwgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHsKKyAgICAgICAgICAgICAgICBz
aG91bGRDbGlwOiB0cnVlLAorICAgICAgICAgICAgICAgIHMxOiBkZXNpcmVkRnJhbWVMZW5ndGgs
CisgICAgICAgICAgICAgICAgdDE6IDAKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYg
KCFiZXN0UHJvZmlsZSB8fCBzbG9wZS5lcnJvciA8IGJlc3RQcm9maWxlLmVycm9yKSB7CisgICAg
ICAgICAgICAgICAgYmVzdFByb2ZpbGUgPSBzbG9wZTsKKyAgICAgICAgICAgICAgICB0aGlzLnBy
b2ZpbGUgPSBTdHJpbmdzLmpzb24ucHJvZmlsZXMuc2xvcGU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKCFvcHRpb25zLnByZWZlcnJlZFByb2ZpbGUgfHwgb3B0aW9ucy5w
cmVmZXJyZWRQcm9maWxlID09IFN0cmluZ3MuanNvbi5wcm9maWxlcy5mbGF0KSB7CisgICAgICAg
ICAgICB2YXIgZmxhdCA9IHRoaXMuX2NhbGN1bGF0ZVJlZ3Jlc3Npb24oc2FtcGxlcywgZ2V0Q29t
cGxleGl0eSwgZ2V0RnJhbWVMZW5ndGgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCB7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQ2xpcDogdHJ1ZSwKKyAgICAgICAgICAgICAgICBzMTogZGVzaXJlZEZy
YW1lTGVuZ3RoLAorICAgICAgICAgICAgICAgIHQxOiAwLAorICAgICAgICAgICAgICAgIHQyOiAw
CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgaWYgKCFiZXN0UHJvZmlsZSB8fCBmbGF0
LmVycm9yIDwgYmVzdFByb2ZpbGUuZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBiZXN0UHJvZmls
ZSA9IGZsYXQ7CisgICAgICAgICAgICAgICAgdGhpcy5wcm9maWxlID0gU3RyaW5ncy5qc29uLnBy
b2ZpbGVzLmZsYXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLnN0
YXJ0SW5kZXggPSBNYXRoLm1pbihzdGFydEluZGV4LCBlbmRJbmRleCk7CiAgICAgICAgIHRoaXMu
ZW5kSW5kZXggPSBNYXRoLm1heChzdGFydEluZGV4LCBlbmRJbmRleCk7CiAKLSAgICAgICAgdGhp
cy5jb21wbGV4aXR5ID0gZGVzaXJlZC5jb21wbGV4aXR5OwotICAgICAgICB0aGlzLnMxID0gZGVz
aXJlZC5zMTsKLSAgICAgICAgdGhpcy50MSA9IGRlc2lyZWQudDE7Ci0gICAgICAgIHRoaXMuczIg
PSBkZXNpcmVkLnMyOwotICAgICAgICB0aGlzLnQyID0gZGVzaXJlZC50MjsKLSAgICAgICAgdGhp
cy5zdGRldjEgPSBkZXNpcmVkLnN0ZGV2MTsKLSAgICAgICAgdGhpcy5zdGRldjIgPSBkZXNpcmVk
LnN0ZGV2MjsKLSAgICAgICAgdGhpcy5uMSA9IGRlc2lyZWQubjE7Ci0gICAgICAgIHRoaXMubjIg
PSBkZXNpcmVkLm4yOwotICAgICAgICB0aGlzLmVycm9yID0gZGVzaXJlZC5lcnJvcjsKKyAgICAg
ICAgdGhpcy5jb21wbGV4aXR5ID0gYmVzdFByb2ZpbGUuY29tcGxleGl0eTsKKyAgICAgICAgdGhp
cy5zMSA9IGJlc3RQcm9maWxlLnMxOworICAgICAgICB0aGlzLnQxID0gYmVzdFByb2ZpbGUudDE7
CisgICAgICAgIHRoaXMuczIgPSBiZXN0UHJvZmlsZS5zMjsKKyAgICAgICAgdGhpcy50MiA9IGJl
c3RQcm9maWxlLnQyOworICAgICAgICB0aGlzLnN0ZGV2MSA9IGJlc3RQcm9maWxlLnN0ZGV2MTsK
KyAgICAgICAgdGhpcy5zdGRldjIgPSBiZXN0UHJvZmlsZS5zdGRldjI7CisgICAgICAgIHRoaXMu
bjEgPSBiZXN0UHJvZmlsZS5uMTsKKyAgICAgICAgdGhpcy5uMiA9IGJlc3RQcm9maWxlLm4yOwor
ICAgICAgICB0aGlzLmVycm9yID0gYmVzdFByb2ZpbGUuZXJyb3I7CiAgICAgfSwgewogCiAgICAg
dmFsdWVBdDogZnVuY3Rpb24oY29tcGxleGl0eSkKQEAgLTIxNyw2ICsyMzIsNyBAQCBSZWdyZXNz
aW9uID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICAgICAgfTsKICAgICAgICAgfQog
CisgICAgICAgIC8vIHggaXMgZXhwZWN0ZWQgdG8gaW5jcmVhc2UgaW4gY29tcGxleGl0eQogICAg
ICAgICB2YXIgaXRlcmF0aW9uRGlyZWN0aW9uID0gZW5kSW5kZXggPiBzdGFydEluZGV4ID8gMSA6
IC0xOwogICAgICAgICB2YXIgbG93Q29tcGxleGl0eSA9IGdldENvbXBsZXhpdHkoc2FtcGxlcywg
c3RhcnRJbmRleCk7CiAgICAgICAgIHZhciBoaWdoQ29tcGxleGl0eSA9IGdldENvbXBsZXhpdHko
c2FtcGxlcywgZW5kSW5kZXgpOwpAQCAtMjQ1LDcgKzI2MSw5IEBAIFJlZ3Jlc3Npb24gPSBVdGls
aXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgICAgICBzMl9iZXN0ID0gczI7CiAgICAgICAgICAg
ICB0Ml9iZXN0ID0gdDI7CiAgICAgICAgICAgICBlcnJvcjJfYmVzdCA9IGVycm9yMjsKKyAgICAg
ICAgICAgIC8vIE51bWJlciBvZiBzYW1wbGVzIGluY2x1ZGVkIGluIHRoZSBmaXJzdCBzZWdtZW50
LCBpbmNsdXNpdmUgb2Ygc3BsaXRJbmRleAogICAgICAgICAgICAgbjFfYmVzdCA9IGl0ZXJhdGlv
bkRpcmVjdGlvbiAqIChzcGxpdEluZGV4IC0gc3RhcnRJbmRleCkgKyAxOworICAgICAgICAgICAg
Ly8gTnVtYmVyIG9mIHNhbXBsZXMgaW5jbHVkZWQgaW4gdGhlIHNlY29uZCBzZWdtZW50CiAgICAg
ICAgICAgICBuMl9iZXN0ID0gaXRlcmF0aW9uRGlyZWN0aW9uICogKGVuZEluZGV4IC0gc3BsaXRJ
bmRleCk7CiAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuc2hvdWxkQ2xpcCB8fCAoeF9wcmltZSA+
PSBsb3dDb21wbGV4aXR5ICYmIHhfcHJpbWUgPD0gaGlnaENvbXBsZXhpdHkpKQogICAgICAgICAg
ICAgICAgIHhfYmVzdCA9IHhfcHJpbWU7CkBAIC0yOTAsOCArMzA4LDggQEAgUmVncmVzc2lvbiA9
IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgICAgIC8vIEFzc3VtZXMgdGhhdCB0aGUg
dHdvIHNlZ21lbnRzIG1lZXQKICAgICAgICAgICAgIHZhciB4X3ByaW1lID0gKHMxIC0gczIpIC8g
KHQyIC0gdDEpOwogCi0gICAgICAgICAgICB2YXIgZXJyb3IxID0gKGsxICsgYTEqczEqczEgKyBj
MSp0MSp0MSAtIDIqZDEqczEgLSAyKmgxKnQxICsgMipiMSpzMSp0MSkgfHwgMDsKLSAgICAgICAg
ICAgIHZhciBlcnJvcjIgPSAoazIgKyBhMipzMipzMiArIGMyKnQyKnQyIC0gMipkMipzMiAtIDIq
aDIqdDIgKyAyKmIyKnMyKnQyKSB8fCAwOworICAgICAgICAgICAgdmFyIGVycm9yMSA9IChrMSAr
IGExKnMxKnMxICsgYzEqdDEqdDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIHx8
IE51bWJlci5NQVhfVkFMVUU7CisgICAgICAgICAgICB2YXIgZXJyb3IyID0gKGsyICsgYTIqczIq
czIgKyBjMip0Mip0MiAtIDIqZDIqczIgLSAyKmgyKnQyICsgMipiMipzMip0MikgfHwgTnVtYmVy
Lk1BWF9WQUxVRTsKIAogICAgICAgICAgICAgaWYgKGkgPT0gc3RhcnRJbmRleCkgewogICAgICAg
ICAgICAgICAgIHNldEJlc3QoczEsIHQxLCBlcnJvcjEsIHMyLCB0MiwgZXJyb3IyLCBpLCB4X3By
aW1lLCB4KTsKQEAgLTMyMiw4ICszNDAsOCBAQCBSZWdyZXNzaW9uID0gVXRpbGl0aWVzLmNyZWF0
ZUNsYXNzKAogICAgICAgICAgICAgICAgICAgICB0MiA9IG9wdGlvbnMudDIgIT09IHVuZGVmaW5l
ZCA/IG9wdGlvbnMudDIgOiAoKEUgKyBsYW1iZGExKihoMiAtIGQyKnggLSBiMip5ICsgYTIqeXgp
KSAvIChGICsgbGFtYmRhMSpLKSk7CiAgICAgICAgICAgICAgICAgICAgIHhfcHJpbWUgPSAoczEg
LSBzMikgLyAodDIgLSB0MSk7CiAKLSAgICAgICAgICAgICAgICAgICAgZXJyb3IxID0gKChrMSAr
IGExKnMxKnMxICsgYzEqdDEqdDEgLSAyKmQxKnMxIC0gMipoMSp0MSArIDIqYjEqczEqdDEpIC0g
bGFtYmRhMSAqIE1hdGgucG93KHkgLSAoczEgKyB0MSp4KSwgMikpIHx8IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIGVycm9yMiA9ICgoazIgKyBhMipzMipzMiArIGMyKnQyKnQyIC0gMipkMipzMiAt
IDIqaDIqdDIgKyAyKmIyKnMyKnQyKSArIGxhbWJkYTEgKiBNYXRoLnBvdyh5IC0gKHMyICsgdDIq
eCksIDIpKSB8fCAwOworICAgICAgICAgICAgICAgICAgICBlcnJvcjEgPSAoKGsxICsgYTEqczEq
czEgKyBjMSp0MSp0MSAtIDIqZDEqczEgLSAyKmgxKnQxICsgMipiMSpzMSp0MSkgLSBsYW1iZGEx
ICogTWF0aC5wb3coeSAtIChzMSArIHQxKngpLCAyKSkgfHwgTnVtYmVyLk1BWF9WQUxVRTsKKyAg
ICAgICAgICAgICAgICAgICAgZXJyb3IyID0gKChrMiArIGEyKnMyKnMyICsgYzIqdDIqdDIgLSAy
KmQyKnMyIC0gMipoMip0MiArIDIqYjIqczIqdDIpICsgbGFtYmRhMSAqIE1hdGgucG93KHkgLSAo
czIgKyB0Mip4KSwgMikpIHx8IE51bWJlci5NQVhfVkFMVUU7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmICh0MSAhPSB0MikKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICB9CkBAIC0zNzIsNyArMzkwLDggQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChSZWdyZXNz
aW9uLCB7CiAgICAgICAgICAgICBjb25maWRlbmNlSGlnaDogYm9vdHN0cmFwRGF0YVtNYXRoLnJv
dW5kKChpdGVyYXRpb25Db3VudCAtIDEpICogKDEgKyBjb25maWRlbmNlUGVyY2VudGFnZSkgLyAy
KV0sCiAgICAgICAgICAgICBtZWRpYW46IGJvb3RzdHJhcERhdGFbTWF0aC5yb3VuZChpdGVyYXRp
b25Db3VudCAvIDIpXSwKICAgICAgICAgICAgIG1lYW46IGJvb3RzdHJhcEVzdGltYXRvci5tZWFu
KCksCi0gICAgICAgICAgICBkYXRhOiBib290c3RyYXBEYXRhCisgICAgICAgICAgICBkYXRhOiBi
b290c3RyYXBEYXRhLAorICAgICAgICAgICAgY29uZmlkZW5jZVBlcmNlbnRhZ2U6IGNvbmZpZGVu
Y2VQZXJjZW50YWdlCiAgICAgICAgIH07CiAgICAgfQogfSk7CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanMKaW5kZXggMTkyMjlhYS4uYjU4ZjY3
ZTkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc3Ry
aW5ncy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmlu
Z3MuanMKQEAgLTksMTMgKzksMTkgQEAgdmFyIFN0cmluZ3MgPSB7CiAgICAgICAgIHNhbXBsaW5n
RW5kVGltZU9mZnNldDogIkVuZCBzYW1wbGluZyIsCiAKICAgICAgICAgc2FtcGxlczogInNhbXBs
ZXMiLAorICAgICAgICBkYXRhRmllbGRNYXA6ICJkYXRhRmllbGRNYXAiLAogICAgICAgICBjb250
cm9sbGVyOiAiY29udHJvbGxlciIsCisgICAgICAgIHRpbWU6ICJ0aW1lIiwKICAgICAgICAgY29t
cGxleGl0eTogImNvbXBsZXhpdHkiLAogICAgICAgICBjb21wbGV4aXR5QXZlcmFnZTogImNvbXBs
ZXhpdHlBdmVyYWdlIiwKICAgICAgICAgZnJhbWVMZW5ndGg6ICJmcmFtZUxlbmd0aCIsCisgICAg
ICAgIHNtb290aGVkRnJhbWVMZW5ndGg6ICJzbW9vdGhlZEZyYW1lTGVuZ3RoIiwKIAogICAgICAg
ICByZXN1bHQ6ICJyZXN1bHQiLAorICAgICAgICBjb25maWd1cmF0aW9uOiAiY29uZmlndXJhdGlv
biIsCiAgICAgICAgIHNjb3JlOiAic2NvcmUiLAorICAgICAgICBzY29yZUxvd2VyQm91bmQ6ICJz
Y29yZUxvd2VyQm91bmQiLAorICAgICAgICBzY29yZVVwcGVyQm91bmQ6ICJzY29yZVVwcGVyQm91
bmQiLAogICAgICAgICBib290c3RyYXA6ICJib290c3RyYXAiLAogICAgICAgICBtZWFzdXJlbWVu
dHM6IHsKICAgICAgICAgICAgIGF2ZXJhZ2U6ICJhdmVyYWdlIiwKQEAgLTI4LDcgKzM0LDEzIEBA
IHZhciBTdHJpbmdzID0gewogICAgICAgICAgICAgc3RhcnRJbmRleDogInN0YXJ0SW5kZXgiLAog
ICAgICAgICAgICAgZW5kSW5kZXg6ICJlbmRJbmRleCIsCiAgICAgICAgICAgICBzZWdtZW50MTog
InNlZ21lbnQxIiwKLSAgICAgICAgICAgIHNlZ21lbnQyOiAic2VnbWVudDIiCisgICAgICAgICAg
ICBzZWdtZW50MjogInNlZ21lbnQyIiwKKyAgICAgICAgICAgIHByb2ZpbGU6ICJwcm9maWxlIgor
ICAgICAgICB9LAorCisgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICBzbG9wZTogInNs
b3BlIiwKKyAgICAgICAgICAgIGZsYXQ6ICJmbGF0IgogICAgICAgICB9LAogCiAgICAgICAgIHJl
c3VsdHM6IHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9y
ZXNvdXJjZXMvbWFpbi5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNv
dXJjZXMvbWFpbi5qcwppbmRleCBlMTRlZDU5Li4yOWJiMTU4IDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCkBAIC0xNDksOCAr
MTQ5LDEyIEBAIENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAKICAgICBfcHJv
Y2Vzc0NvbXBsZXhpdHlTYW1wbGVzOiBmdW5jdGlvbihjb21wbGV4aXR5U2FtcGxlcywgY29tcGxl
eGl0eUF2ZXJhZ2VTYW1wbGVzKQogICAgIHsKKyAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1w
bGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCAwKTsKKyAgICAgICAgY29tcGxl
eGl0eUF2ZXJhZ2VTYW1wbGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgMSk7
CisgICAgICAgIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5hZGRGaWVsZChTdHJpbmdzLmpzb24u
bWVhc3VyZW1lbnRzLnN0ZGV2LCAyKTsKKwogICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5zb3J0
KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICAgIHJldHVybiBhLmNvbXBsZXhpdHkgLSBiLmNv
bXBsZXhpdHk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxleGl0eVNhbXBsZXMuZ2V0RmllbGRJ
bkRhdHVtKGEsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KSAtIGNvbXBsZXhpdHlTYW1wbGVzLmdl
dEZpZWxkSW5EYXR1bShiLCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIC8vIFNhbXBsZXMgYXZlcmFnZWQgYmFzZWQgb24gY29tcGxleGl0eQpAQCAtMTU5
LDIxICsxNjMsMjMgQEAgQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAg
ICAgZnVuY3Rpb24gYWRkU2FtcGxlKCkgewogICAgICAgICAgICAgdmFyIG1lYW4gPSBleHBlcmlt
ZW50QXRDb21wbGV4aXR5Lm1lYW4oKTsKICAgICAgICAgICAgIHZhciBzdGRldiA9IGV4cGVyaW1l
bnRBdENvbXBsZXhpdHkuc3RhbmRhcmREZXZpYXRpb24oKTsKLSAgICAgICAgICAgIGNvbXBsZXhp
dHlBdmVyYWdlU2FtcGxlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICBjb21wbGV4aXR5OiBjdXJy
ZW50Q29tcGxleGl0eSwKLSAgICAgICAgICAgICAgICBmcmFtZUxlbmd0aDogbWVhbiwKLSAgICAg
ICAgICAgICAgICBzdGRldjogc3RkZXYKLSAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB2
YXIgYXZlcmFnZVNhbXBsZSA9IGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcy5jcmVhdGVEYXR1bSgp
OworICAgICAgICAgICAgY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzLnB1c2goYXZlcmFnZVNhbXBs
ZSk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0RmllbGRJbkRhdHVt
KGF2ZXJhZ2VTYW1wbGUsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5LCBjdXJyZW50Q29tcGxleGl0
eSk7CisgICAgICAgICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0RmllbGRJbkRhdHVt
KGF2ZXJhZ2VTYW1wbGUsIFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgbWVhbik7CisgICAgICAg
ICAgICBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKGF2ZXJhZ2VTYW1w
bGUsIFN0cmluZ3MuanNvbi5tZWFzdXJlbWVudHMuc3RkZXYsIHN0ZGV2KTsKICAgICAgICAgfQog
ICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHNhbXBsZSkgewotICAg
ICAgICAgICAgaWYgKHNhbXBsZS5jb21wbGV4aXR5ICE9IGN1cnJlbnRDb21wbGV4aXR5KSB7Cisg
ICAgICAgICAgICB2YXIgc2FtcGxlQ29tcGxleGl0eSA9IGNvbXBsZXhpdHlTYW1wbGVzLmdldEZp
ZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5jb21wbGV4aXR5KTsKKyAgICAgICAgICAg
IGlmIChzYW1wbGVDb21wbGV4aXR5ICE9IGN1cnJlbnRDb21wbGV4aXR5KSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGN1cnJlbnRDb21wbGV4aXR5ID4gLTEpCiAgICAgICAgICAgICAgICAgICAgIGFk
ZFNhbXBsZSgpOwogCi0gICAgICAgICAgICAgICAgY3VycmVudENvbXBsZXhpdHkgPSBzYW1wbGUu
Y29tcGxleGl0eTsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tcGxleGl0eSA9IHNhbXBsZUNv
bXBsZXhpdHk7CiAgICAgICAgICAgICAgICAgZXhwZXJpbWVudEF0Q29tcGxleGl0eSA9IG5ldyBF
eHBlcmltZW50OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZXhwZXJpbWVudEF0Q29tcGxl
eGl0eS5zYW1wbGUoc2FtcGxlLmZyYW1lTGVuZ3RoKTsKKyAgICAgICAgICAgIGV4cGVyaW1lbnRB
dENvbXBsZXhpdHkuc2FtcGxlKGNvbXBsZXhpdHlTYW1wbGVzLmdldEZpZWxkSW5EYXR1bShzYW1w
bGUsIFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCkpOwogICAgICAgICB9KTsKICAgICAgICAgLy8g
RmluaXNoIG9mZiB0aGUgbGFzdCBvbmUKICAgICAgICAgYWRkU2FtcGxlKCk7CkBAIC0xOTIsMjkg
KzE5OCwzNyBAQCBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogCiAgICAgICAg
IHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdID0ge307CiAKLSAgICAgICAgdmFyIGNvbXBs
ZXhpdHlTYW1wbGVzID0gW10sIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyA9IFtdOworICAgICAg
ICB2YXIgY29udHJvbGxlclNhbXBsZXMgPSBuZXcgU2FtcGxlRGF0YTsKKyAgICAgICAgcmVzdWx0
c1tTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdID0gY29udHJv
bGxlclNhbXBsZXM7CisKKyAgICAgICAgY29udHJvbGxlclNhbXBsZXMuYWRkRmllbGQoU3RyaW5n
cy5qc29uLnRpbWUsIDApOworICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5hZGRGaWVsZChTdHJp
bmdzLmpzb24uY29tcGxleGl0eSwgMSk7CisgICAgICAgIGNvbnRyb2xsZXJTYW1wbGVzLmFkZEZp
ZWxkKFN0cmluZ3MuanNvbi5mcmFtZUxlbmd0aCwgMik7CisgICAgICAgIGNvbnRyb2xsZXJTYW1w
bGVzLmFkZEZpZWxkKFN0cmluZ3MuanNvbi5zbW9vdGhlZEZyYW1lTGVuZ3RoLCAzKTsKKworICAg
ICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXMgPSBuZXcgU2FtcGxlRGF0YShjb250cm9sbGVyU2Ft
cGxlcy5maWVsZE1hcCk7CiAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0
cmluZ3MuanNvbi5jb21wbGV4aXR5XSA9IGNvbXBsZXhpdHlTYW1wbGVzOwotICAgICAgICByZXN1
bHRzW1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2Vd
ID0gY29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzOwogCi0gICAgICAgIHJlc3VsdHNbU3RyaW5ncy5q
c29uLnNhbXBsZXNdW1N0cmluZ3MuanNvbi5jb250cm9sbGVyXSA9IHNhbXBsZXNbMF0ubWFwKGZ1
bmN0aW9uKHRpbWVzdGFtcCwgaSkgewotICAgICAgICAgICAgdmFyIHNhbXBsZSA9IHsKLSAgICAg
ICAgICAgICAgICAvLyBSZXByZXNlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMKLSAgICAgICAgICAg
ICAgICB0aW1lOiB0aW1lc3RhbXAgLSB0aGlzLl9zdGFydFRpbWVzdGFtcCwKLSAgICAgICAgICAg
ICAgICBjb21wbGV4aXR5OiBzYW1wbGVzWzFdW2ldCi0gICAgICAgICAgICB9OworICAgICAgICBz
YW1wbGVzWzBdLmZvckVhY2goZnVuY3Rpb24odGltZXN0YW1wLCBpKSB7CisgICAgICAgICAgICB2
YXIgc2FtcGxlID0gY29udHJvbGxlclNhbXBsZXMuY3JlYXRlRGF0dW0oKTsKKyAgICAgICAgICAg
IGNvbnRyb2xsZXJTYW1wbGVzLnB1c2goc2FtcGxlKTsKKyAgICAgICAgICAgIGNvbXBsZXhpdHlT
YW1wbGVzLnB1c2goc2FtcGxlKTsKKworICAgICAgICAgICAgLy8gUmVwcmVzZW50IHRpbWUgaW4g
bWlsbGlzZWNvbmRzCisgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5zZXRGaWVsZEluRGF0
dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24udGltZSwgdGltZXN0YW1wIC0gdGhpcy5fc3RhcnRUaW1l
c3RhbXApOworICAgICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0RmllbGRJbkRhdHVtKHNh
bXBsZSwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHksIHNhbXBsZXNbMV1baV0pOwogCiAgICAgICAg
ICAgICBpZiAoaSA9PSAwKQotICAgICAgICAgICAgICAgIHNhbXBsZS5mcmFtZUxlbmd0aCA9IDEw
MDAvNjA7CisgICAgICAgICAgICAgICAgY29udHJvbGxlclNhbXBsZXMuc2V0RmllbGRJbkRhdHVt
KHNhbXBsZSwgU3RyaW5ncy5qc29uLmZyYW1lTGVuZ3RoLCAxMDAwLzYwKTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBzYW1wbGUuZnJhbWVMZW5ndGggPSB0aW1lc3RhbXAgLSBz
YW1wbGVzWzBdW2kgLSAxXTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5zZXRG
aWVsZEluRGF0dW0oc2FtcGxlLCBTdHJpbmdzLmpzb24uZnJhbWVMZW5ndGgsIHRpbWVzdGFtcCAt
IHNhbXBsZXNbMF1baSAtIDFdKTsKIAogICAgICAgICAgICAgaWYgKHNhbXBsZXNbMl1baV0gIT0g
LTEpCi0gICAgICAgICAgICAgICAgc2FtcGxlLnNtb290aGVkRnJhbWVMZW5ndGggPSBzYW1wbGVz
WzJdW2ldOwotCi0gICAgICAgICAgICBjb21wbGV4aXR5U2FtcGxlcy5wdXNoKHNhbXBsZSk7Ci0g
ICAgICAgICAgICByZXR1cm4gc2FtcGxlOworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1w
bGVzLnNldEZpZWxkSW5EYXR1bShzYW1wbGUsIFN0cmluZ3MuanNvbi5zbW9vdGhlZEZyYW1lTGVu
Z3RoLCBzYW1wbGVzWzJdW2ldKTsKICAgICAgICAgfSwgdGhpcyk7CiAKKyAgICAgICAgdmFyIGNv
bXBsZXhpdHlBdmVyYWdlU2FtcGxlcyA9IG5ldyBTYW1wbGVEYXRhOworICAgICAgICByZXN1bHRz
W1N0cmluZ3MuanNvbi5zYW1wbGVzXVtTdHJpbmdzLmpzb24uY29tcGxleGl0eUF2ZXJhZ2VdID0g
Y29tcGxleGl0eUF2ZXJhZ2VTYW1wbGVzOwogICAgICAgICB0aGlzLl9wcm9jZXNzQ29tcGxleGl0
eVNhbXBsZXMoY29tcGxleGl0eVNhbXBsZXMsIGNvbXBsZXhpdHlBdmVyYWdlU2FtcGxlcyk7CiAg
ICAgfQogfSk7CkBAIC0zMzEsNyArMzQ1LDcgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGlsaXRpZXMu
Y3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAgdGhpcy5fbWF4aW11bUNvbXBsZXhp
dHkgPSAxOwogCiAgICAgICAgIC8vIEFmdGVyIHRoZSB0aWVyIHJhbmdlIGlzIGRldGVybWluZWQs
IGZpZ3VyZSBvdXQgdGhlIG51bWJlciBvZiByYW1wIGl0ZXJhdGlvbnMKLSAgICAgICAgdmFyIG1p
bmltdW1SYW1wTGVuZ3RoID0gMjUwMDsKKyAgICAgICAgdmFyIG1pbmltdW1SYW1wTGVuZ3RoID0g
MzAwMDsKICAgICAgICAgdmFyIHRvdGFsUmFtcEl0ZXJhdGlvbnMgPSBNYXRoLm1heCgxLCBNYXRo
LmZsb29yKHRoaXMuX2VuZFRpbWVzdGFtcCAvIG1pbmltdW1SYW1wTGVuZ3RoKSk7CiAgICAgICAg
IC8vIEdpdmUgYSBsaXR0bGUgZXh0cmEgcm9vbSB0byBydW4gc2luY2UgdGhlIHJhbXBzIHdvbid0
IGJlIGV4YWN0bHkgdGhpcyBsZW5ndGgKICAgICAgICAgdGhpcy5fcmFtcExlbmd0aCA9IE1hdGgu
Zmxvb3IoKHRoaXMuX2VuZFRpbWVzdGFtcCAtIHRvdGFsUmFtcEl0ZXJhdGlvbnMgKiB0aGlzLmlu
dGVydmFsU2FtcGxpbmdMZW5ndGgpIC8gdG90YWxSYW1wSXRlcmF0aW9ucyk7CkBAIC0zNTcsMTUg
KzM3MSwxOCBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250
cm9sbGVyLAogICAgIGZyYW1lTGVuZ3RoRGVzaXJlZDogMTAwMC82MCwKICAgICAvLyBBZGQgc29t
ZSB0b2xlcmFuY2U7IGZyYW1lIGxlbmd0aHMgc2hvcnRlciB0aGFuIHRoaXMgYXJlIGNvbnNpZGVy
ZWQgdG8gYmUgQCB0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGgKICAgICBmcmFtZUxlbmd0aERlc2ly
ZWRUaHJlc2hvbGQ6IDEwMDAvNTgsCi0gICAgLy8gUmVwcmVzZW50cyB0aGUgbG93ZXIgYm91bmQg
dGhyZXNob2xkIGluIG9yZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGNvbXBsZXhpdHkgcmFuZ2UgdG8g
c2FtcGxlCi0gICAgZnJhbWVMZW5ndGhTbG93ZXN0VGhyZXNob2xkOiAxMDAwLzMwLAorICAgIC8v
IER1cmluZyB0aWVyIHNhbXBsaW5nIGdldCBhdCBsZWFzdCB0aGlzIHNsb3cgdG8gZmluZCB0aGUg
cmlnaHQgY29tcGxleGl0eSByYW5nZQorICAgIGZyYW1lTGVuZ3RoVGllclRocmVzaG9sZDogMTAw
MC8zMCwKICAgICAvLyBUcnkgdG8gbWFrZSBlYWNoIHJhbXAgZ2V0IHRoaXMgc2xvdyBzbyB0aGF0
IHdlIGNhbiBjcm9zcyB0aGUgYnJlYWsgcG9pbnQKICAgICBmcmFtZUxlbmd0aFJhbXBMb3dlclRo
cmVzaG9sZDogMTAwMC80NSwKKyAgICAvLyBEbyBub3QgbGV0IHRoZSByZWdyZXNzaW9uIGNhbGN1
bGF0aW9uIGF0IHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgb2YgYSByYW1wIGdldCBzbG93ZXIgdGhh
biB0aGlzIHRocmVzaG9sZAorICAgIGZyYW1lTGVuZ3RoUmFtcFVwcGVyVGhyZXNob2xkOiAxMDAw
LzIwLAogCiAgICAgc3RhcnQ6IGZ1bmN0aW9uKHN0YXJ0VGltZXN0YW1wLCBzdGFnZSkKICAgICB7
CiAgICAgICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnN0YXJ0LmNhbGwodGhpcywgc3RhcnRUaW1l
c3RhbXAsIHN0YWdlKTsKICAgICAgICAgdGhpcy5fcmFtcFN0YXJ0VGltZXN0YW1wID0gMDsKKyAg
ICAgICAgdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoID0gMTAwOwogICAgIH0sCiAKICAgICBk
aWRGaW5pc2hJbnRlcnZhbDogZnVuY3Rpb24odGltZXN0YW1wLCBzdGFnZSwgaW50ZXJ2YWxBdmVy
YWdlRnJhbWVMZW5ndGgpCkBAIC0zNzYsNyArMzkzLDcgQEAgUmFtcENvbnRyb2xsZXIgPSBVdGls
aXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKIAogICAgICAgICAgICAgdmFyIGN1cnJl
bnRDb21wbGV4aXR5ID0gc3RhZ2UuY29tcGxleGl0eSgpOwogICAgICAgICAgICAgdmFyIGN1cnJl
bnRGcmFtZUxlbmd0aCA9IHRoaXMuX2ZyYW1lTGVuZ3RoRXN0aW1hdG9yLmVzdGltYXRlOwotICAg
ICAgICAgICAgaWYgKGN1cnJlbnRGcmFtZUxlbmd0aCA8IHRoaXMuZnJhbWVMZW5ndGhTbG93ZXN0
VGhyZXNob2xkKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudEZyYW1lTGVuZ3RoIDwgdGhpcy5m
cmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQpIHsKICAgICAgICAgICAgICAgICB2YXIgaXNBbmltYXRp
bmdBdDYwRlBTID0gY3VycmVudEZyYW1lTGVuZ3RoIDwgdGhpcy5mcmFtZUxlbmd0aERlc2lyZWRU
aHJlc2hvbGQ7CiAgICAgICAgICAgICAgICAgdmFyIGhhc0ZpbmlzaGVkU2xvd1RpZXJUZXN0ID0g
dGltZXN0YW1wID4gdGhpcy5fdGllclN0YXJ0VGltZXN0YW1wICsgdGhpcy50aWVyU2xvd1Rlc3RM
ZW5ndGg7CiAKQEAgLTQwNCw2ICs0MjEsNyBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5j
cmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAogCiAgICAgICAgICAgICB0aGlzLl9maW5pc2hlZFRp
ZXJTYW1wbGluZyA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLmlzRnJhbWVMZW5ndGhFc3RpbWF0
b3JFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmludGVydmFsU2FtcGxpbmdMZW5n
dGggPSAxMjA7CiAKICAgICAgICAgICAgIC8vIEV4dGVuZCB0aGUgdGVzdCBsZW5ndGggc28gdGhh
dCB0aGUgZnVsbCB0ZXN0IGxlbmd0aCBpcyBtYWRlIG9mIHRoZSByYW1wcwogICAgICAgICAgICAg
dGhpcy5fZW5kVGltZXN0YW1wICs9IHRpbWVzdGFtcDsKQEAgLTQxOCw3ICs0MzYsNyBAQCBSYW1w
Q29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDb250cm9sbGVyLAogICAgICAg
ICAgICAgLy8gSW50ZXJwb2xhdGUgYSBtYXhpbXVtIGNvbXBsZXhpdHkgdGhhdCBnZXRzIHVzIGFy
b3VuZCB0aGUgbG93ZXN0IHRocmVzaG9sZC4KICAgICAgICAgICAgIC8vIEF2b2lkIGRvaW5nIHRo
aXMgY2FsY3VsYXRpb24gaWYgd2UgbmV2ZXIgZ2V0IG91dCBvZiB0aGUgZmlyc3QgdGllciAod2hl
cmUgdGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5IGlzIHVuZGVmaW5lZCkuCiAgICAgICAgICAgICBp
ZiAodGhpcy5fbGFzdFRpZXJDb21wbGV4aXR5ICYmIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSAh
PSBjdXJyZW50Q29tcGxleGl0eSkKLSAgICAgICAgICAgICAgICB0aGlzLl9tYXhpbXVtQ29tcGxl
eGl0eSA9IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dyZXNzVmFsdWUo
dGhpcy5mcmFtZUxlbmd0aFNsb3dlc3RUaHJlc2hvbGQsIHRoaXMuX2xhc3RUaWVyRnJhbWVMZW5n
dGgsIGN1cnJlbnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSwgY3VycmVu
dENvbXBsZXhpdHkpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9
IE1hdGguZmxvb3IoVXRpbGl0aWVzLmxlcnAoVXRpbGl0aWVzLnByb2dyZXNzVmFsdWUodGhpcy5m
cmFtZUxlbmd0aFRpZXJUaHJlc2hvbGQsIHRoaXMuX2xhc3RUaWVyRnJhbWVMZW5ndGgsIGN1cnJl
bnRGcmFtZUxlbmd0aCksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSwgY3VycmVudENvbXBsZXhp
dHkpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIElmIHRoZSBicm93
c2VyIGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgdGhlIG1vc3QgY29tcGxleCB2ZXJzaW9uIG9mIHRo
ZSB0ZXN0LCB1c2UgdGhhdAogICAgICAgICAgICAgICAgIHRoaXMuX21heGltdW1Db21wbGV4aXR5
ID0gY3VycmVudENvbXBsZXhpdHk7CkBAIC00NjQsNyArNDgyLDcgQEAgUmFtcENvbnRyb2xsZXIg
PSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQ29udHJvbGxlciwKICAgICAgICAgdmFyIGludGVy
dmFsRnJhbWVMZW5ndGhNZWFuID0gdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0aEVzdGltYXRvci5t
ZWFuKCk7CiAgICAgICAgIHZhciBpbnRlcnZhbEZyYW1lTGVuZ3RoU3RhbmRhcmREZXZpYXRpb24g
PSB0aGlzLl9pbnRlcnZhbEZyYW1lTGVuZ3RoRXN0aW1hdG9yLnN0YW5kYXJkRGV2aWF0aW9uKCk7
CiAKLSAgICAgICAgaWYgKGludGVydmFsRnJhbWVMZW5ndGhNZWFuIDwgdGhpcy5mcmFtZUxlbmd0
aERlc2lyZWRUaHJlc2hvbGQgJiYgdGhpcy5faW50ZXJ2YWxGcmFtZUxlbmd0aEVzdGltYXRvci5j
ZGYodGhpcy5mcmFtZUxlbmd0aERlc2lyZWRUaHJlc2hvbGQpID4gLjk1KSB7CisgICAgICAgIGlm
IChpbnRlcnZhbEZyYW1lTGVuZ3RoTWVhbiA8IHRoaXMuZnJhbWVMZW5ndGhEZXNpcmVkVGhyZXNo
b2xkICYmIHRoaXMuX2ludGVydmFsRnJhbWVMZW5ndGhFc3RpbWF0b3IuY2RmKHRoaXMuZnJhbWVM
ZW5ndGhEZXNpcmVkVGhyZXNob2xkKSA+IC45KSB7CiAgICAgICAgICAgICB0aGlzLl9wb3NzaWJs
ZU1pbmltdW1Db21wbGV4aXR5ID0gTWF0aC5tYXgodGhpcy5fcG9zc2libGVNaW5pbXVtQ29tcGxl
eGl0eSwgY3VycmVudENvbXBsZXhpdHkpOwogICAgICAgICB9IGVsc2UgaWYgKGludGVydmFsRnJh
bWVMZW5ndGhTdGFuZGFyZERldmlhdGlvbiA+IDIpIHsKICAgICAgICAgICAgIC8vIEluIHRoZSBj
YXNlIHdoZXJlIHdlIG1pZ2h0IGhhdmUgZm91bmQgYSBwcmV2aW91cyBpbnRlcnZhbCB3aGVyZSA2
MGZwcyB3YXMgcmVhY2hlZC4gV2UgaGl0IGEgc2lnbmlmaWNhbnQgYmxpcCwKQEAgLTQ3OCwyOCAr
NDk2LDM5IEBAIFJhbXBDb250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRy
b2xsZXIsCiAgICAgICAgIHZhciBwcm9ncmVzcyA9ICh0aW1lc3RhbXAgLSB0aGlzLl9yYW1wU3Rh
cnRUaW1lc3RhbXApIC8gdGhpcy5fY3VycmVudFJhbXBMZW5ndGg7CiAKICAgICAgICAgaWYgKHBy
b2dyZXNzIDwgMSkgewotICAgICAgICAgICAgc3RhZ2UudHVuZShNYXRoLmZsb29yKFV0aWxpdGll
cy5sZXJwKHByb2dyZXNzLCB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSwgdGhpcy5fbWluaW11bUNv
bXBsZXhpdHkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKKyAgICAgICAgICAgIC8vIFJlZnJhbWUg
cHJvZ3Jlc3MgcGVyY2VudGFnZSBzbyB0aGF0IHRoZSBsYXN0IGludGVydmFsIG9mIHRoZSByYW1w
IGNhbiBzYW1wbGUgYXQgbWluaW11bSBjb21wbGV4aXR5CisgICAgICAgICAgICBwcm9ncmVzcyA9
ICh0aW1lc3RhbXAgLSB0aGlzLl9yYW1wU3RhcnRUaW1lc3RhbXApIC8gKHRoaXMuX2N1cnJlbnRS
YW1wTGVuZ3RoIC0gdGhpcy5pbnRlcnZhbFNhbXBsaW5nTGVuZ3RoKTsKKyAgICAgICAgICAgIHN0
YWdlLnR1bmUoTWF0aC5tYXgodGhpcy5fbWluaW11bUNvbXBsZXhpdHksIE1hdGguZmxvb3IoVXRp
bGl0aWVzLmxlcnAocHJvZ3Jlc3MsIHRoaXMuX21heGltdW1Db21wbGV4aXR5LCB0aGlzLl9taW5p
bXVtQ29tcGxleGl0eSkpKSAtIGN1cnJlbnRDb21wbGV4aXR5KTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciByZWdyZXNzaW9uID0gbmV3IFJlZ3Jlc3Npb24o
dGhpcy5fc2FtcGxlci5zYW1wbGVzLCB0aGlzLl9nZXRDb21wbGV4aXR5LCB0aGlzLl9nZXRGcmFt
ZUxlbmd0aCwKLSAgICAgICAgICAgIHRoaXMuX3NhbXBsZXIuc2FtcGxlQ291bnQgLSAxLCB0aGlz
Ll9yYW1wU3RhcnRJbmRleCwgdGhpcy5mcmFtZUxlbmd0aERlc2lyZWQpOworICAgICAgICAgICAg
dGhpcy5fc2FtcGxlci5zYW1wbGVDb3VudCAtIDEsIHRoaXMuX3JhbXBTdGFydEluZGV4LCB7IGRl
c2lyZWRGcmFtZUxlbmd0aDogdGhpcy5mcmFtZUxlbmd0aERlc2lyZWQgfSk7CiAgICAgICAgIHRo
aXMuX3JhbXBSZWdyZXNzaW9ucy5wdXNoKHJlZ3Jlc3Npb24pOwogCi0gICAgICAgIHZhciBpbnRl
cnBvbGF0ZWRGcmFtZUxlbmd0aCA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0aGlzLl9tYXhpbXVtQ29t
cGxleGl0eSk7Ci0gICAgICAgIGlmIChpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCA8IHRoaXMuZnJh
bWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQpCi0gICAgICAgICAgICB0aGlzLl9wb3NzaWJsZU1h
eGltdW1Db21wbGV4aXR5ID0gTWF0aC5mbG9vcihVdGlsaXRpZXMubGVycChVdGlsaXRpZXMucHJv
Z3Jlc3NWYWx1ZSh0aGlzLmZyYW1lTGVuZ3RoUmFtcExvd2VyVGhyZXNob2xkLCBpbnRlcnBvbGF0
ZWRGcmFtZUxlbmd0aCwgdGhpcy5fbGFzdFRpZXJGcmFtZUxlbmd0aCksIHRoaXMuX21heGltdW1D
b21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckNvbXBsZXhpdHkpKTsKKyAgICAgICAgdmFyIGZyYW1l
TGVuZ3RoQXRNYXhDb21wbGV4aXR5ID0gcmVncmVzc2lvbi52YWx1ZUF0KHRoaXMuX21heGltdW1D
b21wbGV4aXR5KTsKKyAgICAgICAgaWYgKGZyYW1lTGVuZ3RoQXRNYXhDb21wbGV4aXR5IDwgdGhp
cy5mcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZCkKKyAgICAgICAgICAgIHRoaXMuX3Bvc3Np
YmxlTWF4aW11bUNvbXBsZXhpdHkgPSBNYXRoLmZsb29yKFV0aWxpdGllcy5sZXJwKFV0aWxpdGll
cy5wcm9ncmVzc1ZhbHVlKHRoaXMuZnJhbWVMZW5ndGhSYW1wTG93ZXJUaHJlc2hvbGQsIGZyYW1l
TGVuZ3RoQXRNYXhDb21wbGV4aXR5LCB0aGlzLl9sYXN0VGllckZyYW1lTGVuZ3RoKSwgdGhpcy5f
bWF4aW11bUNvbXBsZXhpdHksIHRoaXMuX2xhc3RUaWVyQ29tcGxleGl0eSkpOworICAgICAgICAv
LyBJZiB0aGUgcmVncmVzc2lvbiBkb2Vzbid0IGZpdCB0aGUgZmlyc3Qgc2VnbWVudCBhdCBhbGws
IGtlZXAgdGhlIG1pbmltdW0gYm91bmQgYXQgMQorICAgICAgICBpZiAoKHRpbWVzdGFtcCAtIHRo
aXMuX3NhbXBsZXIuc2FtcGxlc1swXVt0aGlzLl9zYW1wbGVyLnNhbXBsZUNvdW50IC0gcmVncmVz
c2lvbi5uMV0pIC8gdGhpcy5fY3VycmVudFJhbXBMZW5ndGggPCAuMjUpCisgICAgICAgICAgICB0
aGlzLl9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5ID0gMTsKIAotICAgICAgICBpbnRlcnBvbGF0
ZWRGcmFtZUxlbmd0aCA9IHJlZ3Jlc3Npb24udmFsdWVBdCh0aGlzLl9taW5pbXVtQ29tcGxleGl0
eSk7CiAgICAgICAgIHRoaXMuX21pbmltdW1Db21wbGV4aXR5RXN0aW1hdG9yLnNhbXBsZSh0aGlz
Ll9wb3NzaWJsZU1pbmltdW1Db21wbGV4aXR5KTsKLQotICAgICAgICB0aGlzLl9jaGFuZ2VQb2lu
dEVzdGltYXRvci5zYW1wbGUocmVncmVzc2lvbi5jb21wbGV4aXR5KTsKLQogICAgICAgICB0aGlz
Ll9taW5pbXVtQ29tcGxleGl0eSA9IE1hdGgucm91bmQodGhpcy5fbWluaW11bUNvbXBsZXhpdHlF
c3RpbWF0b3IubWVhbigpKTsKLSAgICAgICAgdGhpcy5fbWF4aW11bUNvbXBsZXhpdHkgPSBNYXRo
LnJvdW5kKHRoaXMuX21pbmltdW1Db21wbGV4aXR5ICsKLSAgICAgICAgICAgIE1hdGgubWF4KDUs
Ci0gICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVNYXhpbXVtQ29tcGxleGl0eSAtIHRoaXMu
X21pbmltdW1Db21wbGV4aXR5LAotICAgICAgICAgICAgICAgICh0aGlzLl9jaGFuZ2VQb2ludEVz
dGltYXRvci5tZWFuKCkgLSB0aGlzLl9taW5pbXVtQ29tcGxleGl0eSkgKiAyKSk7CisKKyAgICAg
ICAgaWYgKGZyYW1lTGVuZ3RoQXRNYXhDb21wbGV4aXR5IDwgdGhpcy5mcmFtZUxlbmd0aFJhbXBV
cHBlclRocmVzaG9sZCkgeworICAgICAgICAgICAgdGhpcy5fY2hhbmdlUG9pbnRFc3RpbWF0b3Iu
c2FtcGxlKHJlZ3Jlc3Npb24uY29tcGxleGl0eSk7CisgICAgICAgICAgICAvLyBJZGVhbGx5IHdl
J2xsIHRhcmdldCB0aGUgY2hhbmdlIHBvaW50IGluIHRoZSBtaWRkbGUgb2YgdGhlIHJhbXAuIElm
IHRoZSByYW5nZSBvZiB0aGUgcmFtcCBpcyB0b28gc21hbGwsIHRoZXJlIGlzbid0IGVub3VnaAor
ICAgICAgICAgICAgLy8gcmFuZ2UgYWxvbmcgdGhlIGNvbXBsZXhpdHkgKHgpIGF4aXMgZm9yIGEg
Z29vZCByZWdyZXNzaW9uIGNhbGN1bGF0aW9uIHRvIGJlIG1hZGUsIHNvIGZvcmNlIGF0IGxlYXN0
IGEgcmFuZ2Ugb2YgNQorICAgICAgICAgICAgLy8gcGFydGljbGVzLiBNYWtlIGl0IHBvc3NpYmxl
IHRvIGluY3JlYXNlIHRoZSBtYXhpbXVtIGNvbXBsZXhpdHkgaW4gY2FzZSB1bmV4cGVjdGVkIG5v
aXNlIGNhcHMgdGhlIHJlZ3Jlc3Npb24gdG9vIGxvdy4KKyAgICAgICAgICAgIHRoaXMuX21heGlt
dW1Db21wbGV4aXR5ID0gTWF0aC5yb3VuZCh0aGlzLl9taW5pbXVtQ29tcGxleGl0eSArCisgICAg
ICAgICAgICAgICAgTWF0aC5tYXgoNSwKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9zc2li
bGVNYXhpbXVtQ29tcGxleGl0eSAtIHRoaXMuX21pbmltdW1Db21wbGV4aXR5LAorICAgICAgICAg
ICAgICAgICAgICAodGhpcy5fY2hhbmdlUG9pbnRFc3RpbWF0b3IubWVhbigpIC0gdGhpcy5fbWlu
aW11bUNvbXBsZXhpdHkpICogMikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
VGhlIHNsb3dlc3Qgc2FtcGxlcyB3ZWlnaGVkIHRoZSByZWdyZXNzaW9uIHRvbyBoZWF2aWx5Cisg
ICAgICAgICAgICB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSA9IE1hdGgubWF4KE1hdGgucm91bmQo
LjggKiB0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSksIHRoaXMuX21pbmltdW1Db21wbGV4aXR5ICsg
NSk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBOZXh0IHJhbXAKICAgICAgICAgc3RhZ2UudHVu
ZSh0aGlzLl9tYXhpbXVtQ29tcGxleGl0eSAtIHN0YWdlLmNvbXBsZXhpdHkoKSk7CkBAIC01Mjks
MjEgKzU1OCwyMiBAQCBSYW1wQ29udHJvbGxlciA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhD
b250cm9sbGVyLAogICAgICAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24ubWFya3NdW21hcmtO
YW1lXS50aW1lIC09IHN0YXJ0VGltZXN0YW1wOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHRp
bWVTYW1wbGVzID0gcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNv
bnRyb2xsZXJdOwotICAgICAgICB0aW1lU2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHRpbWVTYW1w
bGUpIHsKLSAgICAgICAgICAgIHRpbWVTYW1wbGUudGltZSAtPSBzdGFydFRpbWVzdGFtcDsKKyAg
ICAgICAgdmFyIGNvbnRyb2xsZXJTYW1wbGVzID0gcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxl
c11bU3RyaW5ncy5qc29uLmNvbnRyb2xsZXJdOworICAgICAgICBjb250cm9sbGVyU2FtcGxlcy5m
b3JFYWNoKGZ1bmN0aW9uKHRpbWVTYW1wbGUpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXJTYW1w
bGVzLnNldEZpZWxkSW5EYXR1bSh0aW1lU2FtcGxlLCBTdHJpbmdzLmpzb24udGltZSwgY29udHJv
bGxlclNhbXBsZXMuZ2V0RmllbGRJbkRhdHVtKHRpbWVTYW1wbGUsIFN0cmluZ3MuanNvbi50aW1l
KSAtIHN0YXJ0VGltZXN0YW1wKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gQWdncmVnYXRl
IGFsbCBvZiB0aGUgcmFtcHMgaW50byBvbmUgYmlnIGNvbXBsZXhpdHktZnJhbWVMZW5ndGggZGF0
YXNldAotICAgICAgICB2YXIgY29tcGxleGl0eVNhbXBsZXMgPSBbXSwgY29tcGxleGl0eUF2ZXJh
Z2VTYW1wbGVzID0gW107CisgICAgICAgIHZhciBjb21wbGV4aXR5U2FtcGxlcyA9IG5ldyBTYW1w
bGVEYXRhKGNvbnRyb2xsZXJTYW1wbGVzLmZpZWxkTWFwKTsKICAgICAgICAgcmVzdWx0c1tTdHJp
bmdzLmpzb24uc2FtcGxlc11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHldID0gY29tcGxleGl0eVNh
bXBsZXM7Ci0gICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnNhbXBsZXNdW1N0cmluZ3MuanNv
bi5jb21wbGV4aXR5QXZlcmFnZV0gPSBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXM7CiAKICAgICAg
ICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uY29udHJvbGxlcl0gPSBbXTsKICAgICAgICAgdGhpcy5f
cmFtcFJlZ3Jlc3Npb25zLmZvckVhY2goZnVuY3Rpb24ocmFtcCkgewogICAgICAgICAgICAgdmFy
IHN0YXJ0SW5kZXggPSByYW1wLnN0YXJ0SW5kZXgsIGVuZEluZGV4ID0gcmFtcC5lbmRJbmRleDsK
LSAgICAgICAgICAgIHZhciBzdGFydFRpbWUgPSB0aW1lU2FtcGxlc1tzdGFydEluZGV4XS50aW1l
LCBlbmRUaW1lID0gdGltZVNhbXBsZXNbZW5kSW5kZXhdLnRpbWU7Ci0gICAgICAgICAgICB2YXIg
c3RhcnRDb21wbGV4aXR5ID0gdGltZVNhbXBsZXNbc3RhcnRJbmRleF0uY29tcGxleGl0eSwgZW5k
Q29tcGxleGl0eSA9IHRpbWVTYW1wbGVzW2VuZEluZGV4XS5jb21wbGV4aXR5OworICAgICAgICAg
ICAgdmFyIHN0YXJ0VGltZSA9IGNvbnRyb2xsZXJTYW1wbGVzLmdldEZpZWxkSW5EYXR1bShzdGFy
dEluZGV4LCBTdHJpbmdzLmpzb24udGltZSk7CisgICAgICAgICAgICB2YXIgZW5kVGltZSA9IGNv
bnRyb2xsZXJTYW1wbGVzLmdldEZpZWxkSW5EYXR1bShlbmRJbmRleCwgU3RyaW5ncy5qc29uLnRp
bWUpOworICAgICAgICAgICAgdmFyIHN0YXJ0Q29tcGxleGl0eSA9IGNvbnRyb2xsZXJTYW1wbGVz
LmdldEZpZWxkSW5EYXR1bShzdGFydEluZGV4LCBTdHJpbmdzLmpzb24uY29tcGxleGl0eSk7Cisg
ICAgICAgICAgICB2YXIgZW5kQ29tcGxleGl0eSA9IGNvbnRyb2xsZXJTYW1wbGVzLmdldEZpZWxk
SW5EYXR1bShlbmRJbmRleCwgU3RyaW5ncy5qc29uLmNvbXBsZXhpdHkpOwogCiAgICAgICAgICAg
ICB2YXIgcmVncmVzc2lvbiA9IHt9OwogICAgICAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24u
Y29udHJvbGxlcl0ucHVzaChyZWdyZXNzaW9uKTsKQEAgLTU2MiwxMCArNTkyLDE0IEBAIFJhbXBD
b250cm9sbGVyID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENvbnRyb2xsZXIsCiAgICAgICAg
ICAgICByZWdyZXNzaW9uW1N0cmluZ3MuanNvbi5jb21wbGV4aXR5XSA9IHJhbXAuY29tcGxleGl0
eTsKICAgICAgICAgICAgIHJlZ3Jlc3Npb25bU3RyaW5ncy5qc29uLnJlZ3Jlc3Npb25zLnN0YXJ0
SW5kZXhdID0gc3RhcnRJbmRleDsKICAgICAgICAgICAgIHJlZ3Jlc3Npb25bU3RyaW5ncy5qc29u
LnJlZ3Jlc3Npb25zLmVuZEluZGV4XSA9IGVuZEluZGV4OworICAgICAgICAgICAgcmVncmVzc2lv
bltTdHJpbmdzLmpzb24ucmVncmVzc2lvbnMucHJvZmlsZV0gPSByYW1wLnByb2ZpbGU7CiAKICAg
ICAgICAgICAgIGZvciAodmFyIGogPSBzdGFydEluZGV4OyBqIDw9IGVuZEluZGV4OyArK2opCi0g
ICAgICAgICAgICAgICAgY29tcGxleGl0eVNhbXBsZXMucHVzaCh0aW1lU2FtcGxlc1tqXSk7Cisg
ICAgICAgICAgICAgICAgY29tcGxleGl0eVNhbXBsZXMucHVzaChjb250cm9sbGVyU2FtcGxlcy5h
dChqKSk7CiAgICAgICAgIH0pOworCisgICAgICAgIHZhciBjb21wbGV4aXR5QXZlcmFnZVNhbXBs
ZXMgPSBuZXcgU2FtcGxlRGF0YTsKKyAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24uc2FtcGxl
c11bU3RyaW5ncy5qc29uLmNvbXBsZXhpdHlBdmVyYWdlXSA9IGNvbXBsZXhpdHlBdmVyYWdlU2Ft
cGxlczsKICAgICAgICAgdGhpcy5fcHJvY2Vzc0NvbXBsZXhpdHlTYW1wbGVzKGNvbXBsZXhpdHlT
YW1wbGVzLCBjb21wbGV4aXR5QXZlcmFnZVNhbXBsZXMpOwogICAgIH0KIH0pOwpAQCAtNTc4LDgg
KzYxMiw5IEBAIFJhbXAzMENvbnRyb2xsZXIgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUmFt
cENvbnRyb2xsZXIsCiAKICAgICBmcmFtZUxlbmd0aERlc2lyZWQ6IDEwMDAvMzAsCiAgICAgZnJh
bWVMZW5ndGhEZXNpcmVkVGhyZXNob2xkOiAxMDAwLzI5LAotICAgIGZyYW1lTGVuZ3RoU2xvd2Vz
dFRocmVzaG9sZDogMTAwMC8yMCwKLSAgICBmcmFtZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZDog
MTAwMC8yMAorICAgIGZyYW1lTGVuZ3RoVGllclRocmVzaG9sZDogMTAwMC8yMCwKKyAgICBmcmFt
ZUxlbmd0aFJhbXBMb3dlclRocmVzaG9sZDogMTAwMC8yMCwKKyAgICBmcmFtZUxlbmd0aFJhbXBV
cHBlclRocmVzaG9sZDogMTAwMC8xMgogfSk7CiAKIFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZUNs
YXNzKApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291
cmNlcy9zdGFnZS5jc3MgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3Vy
Y2VzL3N0YWdlLmNzcwppbmRleCBlZGY3MTQxLi4wYjZmZmRjIDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNzcworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmNzcwpAQCAtNyw3
ICs3LDcgQEAgYm9keSB7CiAgICAgbWFyZ2luOiAwOwogICAgIHBhZGRpbmc6IDA7CiAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDI0MSwgMjQxLCAyNDEpOwotICAgIGZvbnQtZmFtaWx5OiAtYXBw
bGUtc3lzdGVtLCAiSGVsdmV0aWNhIE5ldWUiLCBIZWx2ZXRpY2EsIFZlcmRhbmEsIHNhbnMtc2Vy
aWY7CisgICAgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgVmVyZGFu
YSwgc2Fucy1zZXJpZjsKIH0KIAogI3N0YWdlIHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGMyMGQ1My4u
Y2NiYTkyZSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMDYgQEAKKzIwMTYtMDYtMjEgIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmVtZW50cyB0byBBbmlt
b21ldGVyIGJlbmNobWFyaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3NzM4CisKKyAgICAgICAgUHJvdmlzaW9uYWxseSByZXZpZXdlZCBieSBTYWlk
IEFib3UtSGFsbGF3YS4KKworICAgICAgICBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9y
IHRoZSBmaW5hbCBzY29yZSwgYW5kIHN0b3JlIHRoZSBjYW52YXMKKyAgICAgICAgc2l6ZSBpbiB0
aGUgc2VyaWFsaXphdGlvbiBzbyB0aGF0IGl0IGlzIGFjY3VyYXRlbHkgc2hvd24gaW4gcmVzdWx0
cy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6IEFkZCBhICJjb25maWRl
bmNlIiBkaXYuCisgICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0by4gQ29udmVy
dCAibWVhbiIgdG8gImNvbmZpZGVuY2UiLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2Vz
L2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzOiBMb29rIGF0IG9wdGlvbnMsIGFuZAorICAgICAg
ICBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBpbmNsdWRlZCwgdXBkYXRlIHRoZSBib2R5IGNsYXNz
IGJhc2VkIG9uIGl0CisgICAgICAgIChzaW1pbGFyIHRvIHdoYXQgd2UgZG8gd2hlbiB3ZSBmaXJz
dCBsb2FkIHRoZSBwYWdlKS4gVGhhdCB3YXksIGlmIHlvdQorICAgICAgICBkcmFnLWFuZC1kcm9w
IHByZXZpb3VzIHJlc3VsdHMgaW4sIHRoYXQgY29uZmlndXJhdGlvbiBpcyByZWZsZWN0ZWQgaW4K
KyAgICAgICAgdGhlIGRhc2hib2FyZC4gU2hvdyB0aGUgZnVsbCBjb25maWRlbmNlIGludGVydmFs
LgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2FuaW1vbWV0
ZXIuY3NzOgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmlt
b21ldGVyLmpzOiBTdHlsZSB1cGRhdGUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL2FuaW1vbWV0ZXIuY3NzOgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL2FuaW1vbWV0ZXIuanM6CisgICAgICAgIChfcHJvY2Vzc0RhdGEpOiBQcm9wYWdhdGUg
dGhlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgdmFsdWVzIG91dCBhbmQgY2FsY3VsYXRlCisgICAgICAg
IHRoZSBsb3dlciBhbmQgdXBwZXIgYm91bmRzLiBGb3Igbm93LCBzaG9ydGN1dCB0aGUgYWdncmVn
YXRlIGNhbGN1bGF0aW9uLAorICAgICAgICBzaW5jZSB3ZSBvbmx5IGdvIHRocm91Z2ggb25lIGl0
ZXJhdGlvbi4KKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NEYXRhLmNhbGN1bGF0ZVNjb3JlKTogUHJv
cGFnYXRlIHRoZSBjb25maWRlbmNlIGludGVydmFsIG91dAorICAgICAgICB0byBiZSBuZXh0IHRv
IHRoZSBzY29yZS4gRGVwZW5kaW5nIG9uIHRoZSBjb250cm9sbGVyIHRoZXNlIHZhbHVlcyBhcmUK
KyAgICAgICAgY2FsY3VsYXRlZCBkaWZmZXJlbnRseS4KKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NE
YXRhLl9nZXRSZXN1bHRzUHJvcGVydHkpOiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAgICAgICAg
KHRoaXMuX3Byb2Nlc3NEYXRhLmdldCBzY29yZSk6IFJlZmFjdG9yLgorICAgICAgICAodGhpcy5f
cHJvY2Vzc0RhdGEuZ2V0IHNjb3JlTG93ZXJCb3VuZCk6IEdldCB0aGUgYWdncmVnYXRlIGxvd2Vy
IGJvdW5kLgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuZ2V0IHNjb3JlVXBwZXJCb3VuZCk6
IEdldCB0aGUgYWdncmVnYXRlIHVwcGVyIGJvdW5kLgorICAgICAgICAod2luZG93LnNlY3Rpb25z
TWFuYWdlci5zZXRTZWN0aW9uU2NvcmUpOgorICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRy
b2xsZXIuX3N0YXJ0QmVuY2htYXJrKTogV2hlbiB0aGUgYmVuY2htYXJrIHN0YXJ0cywgbm90ZQor
ICAgICAgICB0aGUgY2FudmFzIHNpemUgYW5kIGFkZCBpdCB0byBvcHRpb25zLiBUaGF0IHdheSBp
dCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYmUKKyAgICAgICAgc2VyaWFsaXplZC4KKyAgICAgICAg
KHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLnNob3dSZXN1bHRzKTogSW5jbHVkZSB0aGUgbWF4
aW11bSBkZXZpYXRpb24KKyAgICAgICAgcGVyY2VudGFnZS4KKyAgICAgICAgKiBBbmltb21ldGVy
L3Jlc291cmNlcy9ydW5uZXIvbGluZXMuc3ZnOiBNYWtlIHRoZSBiYWNrZ3JvdW5kIGxpbmUgdXAg
d2l0aCB0aGUKKyAgICAgICAgc2tldy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanM6CisgICAgICAgIChIZWFkZXJzLmRldGFpbHMudGV4dCk6IFJlZmFjdG9y
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanM6CisgICAgICAg
IChTdGF0aXN0aWNzLmxhcmdlc3REZXZpYXRpb25QZXJjZW50YWdlKTogQ29udmVuaWVuY2UgZnVu
Y3Rpb24gdG8gY2FsY3VsYXRlCisgICAgICAgIHRoZSBkZXZpYXRpb24gcGVyY2VudGFnZSBvbiBl
aXRoZXIgZW5kIGFuZCByZXR1cm4gdGhlIGxhcmdlc3QgZGV2aWF0aW9uLgorICAgICAgICAqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL3N0cmluZ3MuanM6CisKKyAgICAgICAgQWxsb3cgc3BlY2lmeWlu
ZyBhIHJlZ3Jlc3Npb24gcHJvZmlsZSB0byB1c2UgaW5zdGVhZCBvZiB0YWtpbmcgdGhlIG9uZQor
ICAgICAgICB3aXRoIHRoZSBsb3dlc3QgZXJyb3IuCisKKyAgICAgICAgQWRkcmVzcyBhbiBpc3N1
ZSBpbiB0aGUgZm9jdXMgdGVzdCB3aGVuIHRoZSByZWdyZXNzaW9uIGNhbGN1bGF0ZWQgZW5kcwor
ICAgICAgICB1cCBvdmVyZXN0aW1hdGluZyB0aGUgY2hhbmdlIHBvaW50LCBjYXVzaW5nIGEgY2Fz
Y2FkZSBvZiB0b3VnaGVyCisgICAgICAgIHJhbXBzLiBUaGUgcmVhc29uIGJlaGluZCB0aGlzIGlz
IHRoYXQgYXQgbWF4IGNvbXBsZXhpdHkgb2YgYW4gaW5pdGlhbAorICAgICAgICByYW1wLCB0aGUg
ZnJhbWUgbGVuZ3RoIGlzIHZlcnkgaGlnaCwgYW5kIGl0IGluZmx1ZW5jZXMgdGhlIHNlY29uZAor
ICAgICAgICBzZWdtZW50IG9mIHRoZSBwaWVjZXdpc2UgcmVncmVzc2lvbiBzdHJvbmdseSwgY2F1
c2luZyBpdCB0byBiZSB2ZXJ5CisgICAgICAgIHN0ZWVwLiBBcyBhIHJlc3VsdCwgdGhlIGZpcnN0
IHNlZ21lbnQsIGV4cGVjdGVkIHRvIGJlIGZsYXQsIGVuZHMgdXAKKyAgICAgICAgY292ZXJpbmcg
YSBoaWdoZXIgcmFuZ2Ugb2YgY29tcGxleGl0eS4gVGhhdCBtYWtlcyB0aGUgY2hhbmdlIHBvaW50
CisgICAgICAgIG11Y2ggaGlnaGVyIHRoYW4gaXQgc2hvdWxkIGJlLiBUbyBhdm9pZCB0aGlzLCB3
ZSB3aWxsIGFkZCBhIHNhbml0eQorICAgICAgICBjaGVjayBvbiB0aGUgbWF4aW11bSB2YWx1ZSBv
ZiB0aGUgcmFtcC4gSWYgdGhlIHJlZ3Jlc3Npb24ncyBwcm9qZWN0ZWQKKyAgICAgICAgdmFsdWUg
YXQgdGhlIG1heGltdW0gY29tcGxleGl0eSBvZiB0aGUgY3VycmVudCByYW1wIGlzIHZlcnkgc2xv
dyAobGVzcworICAgICAgICB0aGFuIDIwIGZwcyksIDEpIHJlZHVjZSB0aGUgbWF4aW11bSBjb21w
bGV4aXR5IGJ5IDIwJSwgYW5kIDIpIGRvIG5vdAorICAgICAgICBpbmNsdWRlIHRoZSByZWdyZXNz
aW9uJ3MgY2hhbmdlIHBvaW50IGluIHRoZSBjaGFuZ2UgcG9pbnQgZXN0aW1hdG9yLgorICAgICAg
ICBUaGF0IGVzdGltYXRvciBpcyB1c2VkIGFzIHRoZSBtaWRwb2ludCBvZiB0aGUgbmV4dCByYW1w
LCBhbmQgaW5jbHVkaW5nCisgICAgICAgIHRoZSBjaGFuZ2UgcG9pbnQgZnJvbSBhIHBvb3IgcmVn
cmVzc2lvbiBjYW4gYmFrZSBpbiB0aGUgZXJyb3IuIFRoZQorICAgICAgICBjb250cm9sbGVyIGFs
cmVhZHkga25vd3MgaG93IHRvIGFkanVzdCBmb3IgcmFtcHMgdGhhdCBhcmUgdG9vIGVhc3kgZm9y
CisgICAgICAgIHRoZSBzeXN0ZW0uCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKHRoaXMuX3Byb2Nlc3NEYXRhLmZpbmRSZWdy
ZXNzaW9uKTogVGFrZXMgYSBwcmVmZXJyZWQgcHJvZmlsZSBhbmQgZ2l2ZXMgdGhhdCB0bworICAg
ICAgICBSZWdyZXNzaW9uLgorICAgICAgICAodGhpcy5fcHJvY2Vzc0RhdGEuY2FsY3VsYXRlU2Nv
cmUpOiBXaXRoIHRoZSByYW1wIGNvbnRyb2xsZXIsIHRha2UgdGhlIHByb2ZpbGUKKyAgICAgICAg
b2YgdGhlIHJhbXAgdGhhdCB3YXMgdXNlZCB0aGUgbW9zdCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBy
YW1wJ3MgcmVncmVzc2lvbi4gVGhhdAorICAgICAgICBwcm9maWxlIGlzIHdoYXQgaXMgdXNlZCBm
b3IgdGhlIHRlc3QncyBzY29yZS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9zdGF0
aXN0aWNzLmpzOgorICAgICAgICAoUmVncmVzc2lvbi5VdGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBV
cGRhdGUgdG8gdGFrZSBhbiBvcHRpb25zIG9iamVjdCB3aGljaCBjYW4KKyAgICAgICAgc3BlY2lm
eSBhIHByb2ZpbGUgdG8gY2FsY3VsYXRlIHdpdGguIE90aGVyd2lzZSBpdCB3aWxsIGNvbnRpbnVl
IHRvIHVzZSBib3RoIGFuZAorICAgICAgICBzZWxlY3QgdGhlIG9uZSB3aXRoIHRoZSBsb3dlciBl
cnJvci4KKyAgICAgICAgKF9jYWxjdWxhdGVSZWdyZXNzaW9uKTogRml4IGFuIGlzc3VlIHdoZXJl
IHdlIGNsYWltIDAgZXJyb3IgaWYgdGhlIHJlZ3Jlc3Npb24KKyAgICAgICAgY2FsY3VsYXRpb24g
ZmFpbHMgZHVlIHRvIGRpdmlkZS1ieS16ZXJvLiBJbnN0ZWFkIHJlamVjdCB0aGF0IHJlZ3Jlc3Np
b24gY2FsY3VsYXRpb24KKyAgICAgICAgYnkgZ2l2aW5nIGl0IE51bWJlci5NQVhfVkFMVUUuCisg
ICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczogTmV3IHN0cmluZ3MgZm9y
IG1hcmtpbmcgYSByZWdyZXNzaW9uIGFzIGZsYXQKKyAgICAgICAgb3Igc2xvcGUuCisgICAgICAg
ICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAgICAgICAgKFJhbXBDb250
cm9sbGVyKTogUmVuYW1lIHRoZSB0aHJlc2hvbGRzIGZvciBjbGFyaXR5LiBBZGQgYSB0aHJlc2hv
bGQgdGhhdCwgaWYKKyAgICAgICAgZXhjZWVkZWQsIHdpbGwgbG93ZXIgdGhlIG1heGltdW0gY29t
cGxleGl0eSBvZiB0aGUgbmV4dCByYW1wLgorICAgICAgICAodHVuZSk6IFJlbGF4IHRoZSBjZGYg
Y2hlY2sgdG8gY29uc2lkZXIgd2hldGhlciB0aGUgaW50ZXJ2YWwgZGVmaW5pdGVseSBmYWxscyBp
bgorICAgICAgICB0aGUgZGVzaXJlZCBmcmFtZSBsZW5ndGggdGhyZXNob2xkLgorICAgICAgICAo
cHJvY2Vzc1NhbXBsZXMpOiBJbmNsdWRlIHRoZSBwcm9maWxlIGluIHRoZSByYW1wLgorCisgICAg
ICAgIFVwZGF0ZSByYW1wIGNvbnRyb2xsZXIgdGVzdC4gSW5jcmVhc2UgdGhlIGxlbmd0aCBvZiB0
aGUgdGVzdCB0byAzMCBzZWNvbmRzLCBhbmQgZXh0ZW5kCisgICAgICAgIHRoZSBpbnRlcnZhbCB0
byAxMjAgbXMgZHVyaW5nIHNhbXBsaW5nLiBJbXByb3ZlIHRoZSBlc3RpbWF0aW9uIG9mIHRoZSBy
YW1wIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBD
aGFuZ2UgZGVmYXVsdCB0byAzMCBzZWNvbmRzLCBhbmQgZG9uJ3Qgc2hvdyB0aGUgcHJvZ3Jlc3Mg
YmFyCisgICAgICAgIGJ5IGRlZmF1bHQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL2FuaW1vbWV0ZXIuanM6IENoYW5nZSBkZWZhdWx0IHRvIDMwIHNlY29uZHMuCisgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczogQSBudW1iZXIgb2YgaW1w
cm92ZW1lbnRzIHRvIHRoZSByYW1wIGNvbnRyb2xsZXIsIGluCisgICAgICAgIHRoZSBvcmRlciBp
biB3aGljaCB0aGV5IGFwcGVhciBpbiB0aGUgcGF0Y2g6CisKKyAgICAgICAgLSBXaXRoIGEgbG9u
Z2VyIHRlc3QgbGVuZ3RoIHVzZSBsb25nZXIgcmFtcHMgd2l0aCBsb25nZXIgaW50ZXJ2YWxzIHRv
IGdldCBtb3JlIGRhdGEgYXQgZWFjaAorICAgICAgICBjb21wbGV4aXR5LiBLZWVwIHRoZSAxMDAg
bXMgaW50ZXJ2YWwgbGVuZ3RoIGR1cmluZyB0aGUgcmFtcCB1cCBwaGFzZSBzaW5jZSB3ZSBkb24n
dCBuZWVkIHRvCisgICAgICAgIHNwZW5kIG1vcmUgdGltZSB0aGVyZSB0byBmaW5kIHRoZSByaWdo
dCBvcmRlciBvZiBtYWduaXR1ZGUsIGJ1dCBpbmNyZWFzZSBpdCBkdXJpbmcgdGhlCisgICAgICAg
IHJhbXBzIHRvIDEyMCBtcy4KKyAgICAgICAgLSBUaGUgcmFtcCBsaW5lYXJseSBpbnRlcnBvbGF0
ZXMgdGhlIGNvbXBsZXhpdHkgdG8gcmVuZGVyIGJhc2VkIG9uIGl0cyB0aW1lc3RhbXAsIGJ1dCBp
dCB3b3VsZAorICAgICAgICBuZXZlciBzYW1wbGUgdGhlIG1pbmltdW0gY29tcGxleGl0eS4gSW5z
dGVhZCBvZiBsZXJwaW5nIG1heCB0byBtaW4gY29tcGxleGl0eSBmcm9tIHRpbWUKKyAgICAgICAg
MCB0byB0IHdoZXJlIHQgaXMgdGhlIHJhbXAgbGVuZ3RoLCBpbnN0ZWFkIGxlcnAgZnJvbSAwIHRv
ICh0IC0gaW50ZXJ2YWxTYW1wbGVMZW5ndGgpIHNvIHRoYXQKKyAgICAgICAgd2UgY2FuIGhhdmUg
YXQgbGVhc3Qgb25lIGludGVydmFsIHNhbXBsZSBhdCB0aGUgbWluIGNvbXBsZXhpdHkgZm9yIHRo
YXQgcmFtcC4KKyAgICAgICAgLSBTb21lIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb25zIG9ubHkgY29t
ZSBvdXQgd2l0aCBvbmUgbGluZSBzZWdtZW50IHJhdGhlciB0aGFuIHRoZSB0d28KKyAgICAgICAg
d2UgZXhwZWN0LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBhIG5vaXN5IHJhbXAgb3IgdGhlIHJhbXAn
cyByYW5nZSBpcyB0b28gbmFycm93LiBJZiB0aGF0J3MgdGhlCisgICAgICAgIGNhc2UsIGluZmx1
ZW5jZSB0aGUgbWluaW11bSBjb21wbGV4aXR5IG9mIHRoZSBuZXh0IHJhbXAgdG93YXJkcyB0aGUg
bG93ZXN0IGJvdW5kIG9mIDEsIHNvIHRoYXQKKyAgICAgICAgd2UgZW5zdXJlIHRoYXQgYXQgbGVh
c3QgcGFydCBvZiB0aGUgcmFtcCBpcyBjb3ZlcmluZyBhIGNvbXBsZXhpdHkgcmFuZ2UgdGhhdCB0
aGUgc3lzdGVtIGNhbgorICAgICAgICBoYW5kbGUgYXQgZnVsbCA2MC4KKyAgICAgICAgLSBSZW1v
dmUgYW4gYXNzaWdubWVudCB0byBpbnRlcnBvbGF0ZWRGcmFtZUxlbmd0aCBzaW5jZSB0aGF0IGlz
IG5ldmVyIHN1YnNlcXVlbnRseSB1c2VkLgorCisgICAgICAgIFVwZGF0ZSB0aGUgZm9ybWF0IHVz
ZWQgdG8gc2VyaWFsaXplIHRoZSByZXN1bHRzIGZvciBhbmFseXNpcy4KKworICAgICAgICBFYWNo
IGRhdGEgcG9pbnQgdXNlZCB0byBoYXZlIG5hbWVkIHByb3BlcnRpZXMgZm9yIGZpZWxkcyBsaWtl
IGNvbXBsZXhpdHkgYW5kIGZyYW1lIHJhdGUuCisgICAgICAgIEluIGFkZGl0aW9uIHRoZSBzZXJp
YWxpemVkIG51bWJlcnMgaGFkIHJvdW5kaW5nIGVycm9ycyB0aGF0IHRvb2sgdXAgbWFueSBjaGFy
YWN0ZXJzLgorICAgICAgICBVcGRhdGUgdGhlIGZvcm1hdCBieSBpbnRyb2R1Y2luZyBhIG5ldyBk
YXRhIGNvbnRhaW5lciBjYWxsZWQgU2FtcGxlRGF0YSwgd2hpY2ggY29udGFpbnMgYQorICAgICAg
ICBmaWVsZCBtYXAuIFRoZSBtYXAgbWFwcyBhIHN0cmluZyB0byBhbiBhcnJheSBpbmRleC4gRWFj
aCBkYXRhIHBvaW50IGlzIGFuIGFycmF5LCBzbywgdG8KKyAgICAgICAgZ2V0IGEgc3RhdCwgdXNl
IHRoZSBmaWVsZCBtYXAgdG8gZ2V0IHRoZSBhcnJheSBpbmRleCBpbnRvIHRoZSBkYXRhIHBvaW50
LiBUaGlzIGFsbG93cyBmdXR1cmUKKyAgICAgICAgdmVyc2lvbnMgdG8gdHJhY2sgb3RoZXIgZGF0
YSwgYW5kIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIG91dHB1dCBzdHJpbmcgYnkgdHdvLXRoaXJk
cy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CisgICAg
ICAgIChVdGlsaXRpZXMudG9GaXhlZE51bWJlcik6IEFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiB0
aGF0IHRydW5jYXRlcyB0aGUgbnVtYmVyIHRvIGEgZml4ZWQKKyAgICAgICAgcHJlY2lzaW9uLCBh
bmQgY29udmVydHMgaXQgYmFjayB0byBhIG51bWJlci4KKyAgICAgICAgKFNhbXBsZURhdGEpOiBO
ZXcgY2xhc3MgdGhhdCBjb250YWlucyBzYW1wbGUgZGF0YSBhbmQgYSBmaWVsZCBtYXAgdGhhdCBt
YXBzIHByb3BlcnRpZXMgdG8KKyAgICAgICAgYW4gYXJyYXkgaW5kZXguCisgICAgICAgIChnZXQg
bGVuZ3RoKTogTnVtYmVyIG9mIGRhdGEgcG9pbnRzLgorICAgICAgICAoYWRkRmllbGQpOiBBZGQg
YSBmaWVsZCB0byB0aGUgZmllbGQgbWFwLgorICAgICAgICAocHVzaCk6IEFkZCBhIGRhdGEgcG9p
bnQuCisgICAgICAgIChzb3J0KTogU29ydCB0aGUgZGF0YS4KKyAgICAgICAgKHNsaWNlKTogUmV0
dXJuIG5ldyBTYW1wbGVEYXRhIG9iamVjdCB3aXRoIHNsaWNlZCBkYXRhLgorICAgICAgICAoZm9y
RWFjaCk6IEl0ZXJhdGUgb3ZlciB0aGUgZGF0YSB3aXRoIHByb3ZpZGVkIGZ1bmN0aW9uLgorICAg
ICAgICAoY3JlYXRlRGF0dW0pOgorICAgICAgICAoZ2V0RmllbGRJbkRhdHVtKTogUmV0dXJucyB0
aGUgZGF0YSBwb2ludCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIG5hbWUgYnkgbG9va2luZyBp
dCB1cAorICAgICAgICBpbiB0aGUgZmllbGQgbWFwIGluIHRoZSBkYXR1bSBwcm92aWRlZCwgd2hp
Y2ggY2FuIGJlIHRoZSBkYXR1bSBvYmplY3QgaXRzZWxmIChhbiBhcnJheSkgb3IKKyAgICAgICAg
YW4gaW5kZXggaW50byB0aGUgZGF0YSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChzZXRGaWVs
ZEluRGF0dW0pOiBTZXRzIHRoZSBkYXRhIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQg
bmFtZS4KKyAgICAgICAgKGF0KTogUmV0dXJucyB0aGUgZGF0YSBwb2ludCBhdCB0aGUgcHJvdmlk
ZWQgaW5kZXguCisgICAgICAgICh0b0FycmF5KTogU2VyaWFsaXplcyB0aGUgZGF0YSB3aGVyZSB0
aGUgZmllbGQgbWFwIHNlcnZlcyBhcyBwcm9wZXJ0eSBuYW1lcyBmb3IgZWFjaCBwb2ludC4KKwor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9ncmFwaC5qczoKKyAg
ICAgICAgKHVwZGF0ZUdyYXBoRGF0YSk6IFJlbW92ZSB1bnVzZWQgX3Rlc3REYXRhLiBDb252ZXJ0
IHRoZSBkYXRhIHRvIHRoZSBvbGQgYXJyYXkgZm9ybWF0IGZvciB0aGUKKyAgICAgICAgZ3JhcGgg
dG8gdXNlLCBzaW5jZSB0aGUgb2xkIGZvcm1hdCB3YXMgbXVjaCBlYXNpZXIgdG8gd29yayB3aXRo
IHdoZW4gZGlzcGxheWluZyB0aGUgZ3JhcGhzLgorICAgICAgICAob25HcmFwaFR5cGVDaGFuZ2Vk
KTogRm9yIHNvbWUgY29udHJvbGxlcnMsIG5vIGFsdGVybmF0aXZlIHNjb3JlIG9yIG1lYW4gaXMg
cHJvdmlkZWQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0
ZXIuY3NzOgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVy
LmpzOiBSZWZhY3RvciB0byB1c2UgU2FtcGxlRGF0YS4gVXBkYXRlIEpTT04gb3V0cHV0CisgICAg
ICAgIHRvIG9ubHkgZ28gdG8gMyBkaWdpdHMgb2YgcHJlY2lzaW9uIGZvciBwdXJwb3NlcyBvZiBy
ZWR1Y2luZyB0aGUgZGF0YSBzaXplLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0
cmluZ3MuanM6IEFkZCBuZXcgc3RyaW5ncyB0byBwdXQgaW50byB0aGUgZmllbGQgbWFwcy4KKyAg
ICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzOiBSZWZhY3RvciB0byB1
c2UgU2FtcGxlRGF0YS4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWw6Cisg
ICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBSZXN0cnVjdHVyZSByZXN1bHRzIHRhYmxl
IGZvciBib3RoIHBhZ2VzLiBBZGQgY2hhcnNldCBhdHRyaWJ1dGUgdG8KKyAgICAgICAgdGVzdHMu
anMgaW5jbHVkZS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIv
YW5pbW9tZXRlci5jc3M6IENsZWFyIG91dCBzdHlsZXMgZnJvbSByZWxlYXNlIHJ1bm5lci4KKyAg
ICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6CisgICAg
ICAgIChvbkdyYXBoVHlwZUNoYW5nZWQpOiBVcGRhdGUgc2NvcmUgYW5kIG1lYW4gaWYgYm9vdHN0
cmFwIHJlc3VsdHMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZQorICAgICAgICBjb250cm9sbGVyLCBz
aW5jZSBub3QgYWxsIGNvbnRyb2xsZXJzIGRvIGJvb3RzdHJhcHBpbmcuCisgICAgICAgICogQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzOiBVcGRhdGUgaGVhZGVyIHRl
eHQuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3Nz
OiBJbmNsdWRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgaW4gcmVzdWx0cy4KKyAgICAgICAgKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAgICAgKFJlc3VsdHNU
YWJsZS5fYWRkSGVhZGVyKTogSGVhZGVyIGNvbnRlbnRzIGNhbiBiZSBIVE1MLCBzbyB1c2UgaW5u
ZXJIVE1MIGluc3RlYWQuCisgICAgICAgIChSZXN1bHRzVGFibGUuX2FkZEJvZHkpOiBBZGQgdGJv
ZHkgZWxlbWVudC4KKyAgICAgICAgKFJlc3VsdHNUYWJsZS5fYWRkVGVzdCk6IEFsbG93IGEgZGF0
YSBjZWxsIHRvIGludm9rZSBhIEpTIGZ1bmN0aW9uIHRvIGdldCBpdHMgY29udGVudHMuCisgICAg
ICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93UmVzdWx0cyk6IEFkZCB0YWJsZSB0
aGF0IGluY2x1ZGVzIHRlc3RzJyBjb25maWRlbmNlIGludGVydmFscy4KKyAgICAgICAgKiBBbmlt
b21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanM6CisgICAgICAgIChIZWFkZXJzLmRldGFp
bHMudGV4dCk6IEFkZCBuZXcgZGV0YWlscyB0YWJsZSB0aGF0IGluY2x1ZGVzIGJvb3RzdHJhcCBj
b25maWRlbmNlIGludGVydmFsLgorICAgICAgICBUaGUgaW50ZXJ2YWwgY2FuIGJlIGFzeW1tZXRy
aWMsIGJ1dCBmb3Igc2ltcGxpY2l0eSwgcmVwb3J0IHRoZSBtYXhpbXVtIGRldmlhdGlvbiBwZXJj
ZW50YWdlCisgICAgICAgIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBib290c3RyYXAgbWVkaWFuLgor
ICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3N0YXRpc3RpY3MuanM6CisgICAgICAgIChi
b290c3RyYXApOiBJbmNsdWRlIHRoZSBjb25maWRlbmNlIHBlcmNlbnRhZ2UgaW4gdGhlIHJldHVy
biBvYmplY3QuCisKKyAgICAgICAgUmVwb3J0IGNhbnZhcyBzaXplIGluIHJlc3VsdHMuCisKKyAg
ICAgICAgKiBBbmltb21ldGVyL2RldmVsb3Blci5odG1sOiBBZGQgbWFya3VwIHRvIGluZGljYXRl
IHdoZXRoZXIgYSBzbWFsbCwgbWVkaXVtLCBvciBsYXJnZQorICAgICAgICBjYW52YXMgd2FzIHVz
ZWQuCisgICAgICAgICogQW5pbW9tZXRlci9pbmRleC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczogQ2FsbCBkZXRl
cm1pbmVDYW52YXNTaXplKCkuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVy
L2FuaW1vbWV0ZXIuY3NzOiBVcGRhdGUgc3R5bGVzIHRvIHNldCB0aGUgY2FudmFzIGJhc2VkIG9u
IHRoZQorICAgICAgICBib2R5IGNsYXNzIHNpemUuCisgICAgICAgICogQW5pbW9tZXRlci9yZXNv
dXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuanM6CisgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29u
dHJvbGxlci5pbml0aWFsaXplKTogVXBkYXRlIHN0eWxlcyB0byBzZXQgdGhlIGNhbnZhcyBiYXNl
ZCBvbiB0aGUKKyAgICAgICAgYm9keSBjbGFzcyBzaXplLgorICAgICAgICAod2luZG93LmJlbmNo
bWFya0NvbnRyb2xsZXIuZGV0ZXJtaW5lQ2FudmFzU2l6ZSk6IFJ1biB2YXJpb3VzIG1lZGlhIHF1
ZXJpZXMgYW5kIHNldCB0aGUgYm9keQorICAgICAgICBjbGFzcyBiYXNlZCBvbiB0aGUgc2l6ZSBv
ZiB0aGUgZGV2aWNlLgorCisgICAgICAgICogQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbDogUmVm
YWN0b3IgdG8gaW5jbHVkZSB0aGUgbWFpbiBDU1MgZmlsZSwgYW5kIHJlZG8KKyAgICAgICAgdGhl
IGxheW91dCBzbyB0aGF0IGl0IGRvZXNuJ3QgcmVseSBvbiBmbGV4Ym94LgorICAgICAgICAqIEFu
aW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmNzczoKKyAgICAgICAg
KiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qczoKKyAgICAg
ICAgKHVwZGF0ZURpc3BsYXkpOiBTaW5jZSB2YXJpb3VzIHBhcnRzIG9mIHRoZSBzY3JpcHQgYWx0
ZXIgdGhlIGJvZHkgY2xhc3MsIHdlIGNhbid0CisgICAgICAgIHJlcGxhY2UgdGhlIGNsYXNzTmFt
ZSBkaXJlY3RseS4gSW5zdGVhZCwgcmVtb3ZlIGFsbCBkaXNwbGF5LWJhc2VkIHZhbHVlcyBhbmQg
dGhlbiBhZGQKKyAgICAgICAgdGhlIG9uZSB0aGF0IHdhcyBzZWxlY3RlZC4KKyAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvZ3JhcGguanM6CisgICAgICAgICh1cGRh
dGVHcmFwaERhdGEpOiBUbyBzZXQgdGhlIHNpemUgb2YgdGhlIGdyYXBoLCB1c2Ugd2luZG93Lmlu
bmVySGVpZ2h0LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzOgorICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5zaG93U2VjdGlvbik6IFNp
bmNlIHZhcmlvdXMgcGFydHMgb2YgdGhlIHNjcmlwdCBhbHRlciB0aGUgYm9keQorICAgICAgICBj
bGFzcywgd2UgY2FuJ3QgcmVwbGFjZSB0aGUgY2xhc3NOYW1lIGRpcmVjdGx5LiBSZW1vdmUgYWxs
IG9mIHRoZSBzZWN0aW9uIGNsYXNzZXMKKyAgICAgICAgaW5kaXZpZHVhbGx5IGFuZCB0aGVuIGFk
ZCB0aGUgb25lIGRlc2lyZWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMv
c3RhZ2UuY3NzOiBSZW1vdmUgLWFwcGxlLXN5c3RlbSBhcyBhIGZvbnQgdG8gdXNlIGluIHRoZQor
ICAgICAgICBzdGFnZS4KKwogMjAxNi0wNi0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCByb3VuZC1kb3duIGdvb2YgaW4gQWlyLmpzJ3MgU2h1ZmZsZUN1
c3RvbS5mb3JFYWNoQXJnCi0tIAoyLjguMSAoQXBwbGUgR2l0LTY5KQoK
</data>
<flag name="review"
          id="305620"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281801</attachid>
            <date>2016-06-21 18:01:59 -0700</date>
            <delta_ts>2016-06-21 20:10:36 -0700</delta_ts>
            <desc>Test updates</desc>
            <filename>0002-Improvements-to-Animometer-benchmark.patch</filename>
            <type>text/plain</type>
            <size>8639</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA3MzY1NjE0NTNlNTQ2ZTVjNTUzOGFjMGM1YmM5M2MzMDlhOTcyZjJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUdWUs
IDIxIEp1biAyMDE2IDE4OjAwOjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIEltcHJvdmVt
ZW50cyB0byBBbmltb21ldGVyIGJlbmNobWFyawogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzczOAoKUHJvdmlzaW9uYWxseSByZXZpZXdlZCBieSBTYWlkIEFib3Ut
SGFsbGF3YS4KClVwZGF0ZSB0ZXN0cy4KCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5o
dG1sOiBFbnN1cmUgb25seSB0aHJlZSB0ZXh0IHNpemVzIGZvcgp0aGUgdGhyZWUgY2FudmFzZXMu
CiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRtbDogUmVkdWNlIHRoZSB0ZXh0IHNp
emUgdG8gZml0IHdpdGggc21hbGxlcgpwYXJ0aWNsZSBzaXplcy4KKiBBbmltb21ldGVyL3Rlc3Rz
L21hc3Rlci9yZXNvdXJjZXMvZm9jdXMuanM6IFJlbW92ZSB0aGUgcXVhZHJhdGljIGRpc3RyaWJ1
dGlvbiBmb3IKcGFydGljbGUgc2l6ZXMsIGFuZCBtYWtlIGl0IGxpbmVhci4gUmVkdWNlIHRoZSBz
aXplIHZhcmlhbmNlLiBTaHVmZmxlIHRoZSBtYXRoIHRvCnJlZHVjZSBzb21lIGNhbGN1bGF0aW9u
cyBwZXIgZnJhbWUuIEZpeCB0aGUgcGxhY2VtZW50IG9mIHRoZSBwYXJ0aWNsZXMgd2hpY2ggbWln
aHQKb3RoZXJ3aXNlIGJlIGN1bGxlZC4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJj
ZXMvaW1hZ2UtZGF0YS5qczogUmVkdWNlIHRoZSBwYXJ0aWNsZSBzaXplCnRvIGVuY291cmFnZSBs
YXJnZXIgc2NvcmVzLgotLS0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1s
ICAgICAgICAgICAgIHwgIDEgKwogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9mb2N1cy5qcyAgICAgfCA0MyArKysrKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vdGVzdHMvbWFz
dGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzICAgICAgICAgICB8ICA2ICstLQogUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWwgfCAyMSArKy0tLS0tLS0t
LQogUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAy
MCArKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDQzIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvZm9jdXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0
ZXIvZm9jdXMuaHRtbAppbmRleCA3MzEyNTZkLi4wMjI2NGQ3IDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ZvY3VzLmh0bWwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9mb2N1cy5odG1sCkBAIC0yMSw2ICsy
MSw3IEBACiAgICAgfQogCiAgICAgI2NlbnRlci10ZXh0IHsKKyAgICAgICAgZm9udC1zaXplOiA5
MCU7CiAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVy
L3Jlc291cmNlcy9mb2N1cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvcmVzb3VyY2VzL2ZvY3VzLmpzCmluZGV4IDU2NzI4OTcuLjI2YzI0NjUgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2Zv
Y3VzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVz
b3VyY2VzL2ZvY3VzLmpzCkBAIC0xLDI3ICsxLDI1IEBACiAoZnVuY3Rpb24oKSB7CiAKIHZhciBt
YXhWZXJ0aWNhbE9mZnNldCA9IDUwOwotdmFyIHJhZGl1cyA9IDEwOwotdmFyIGNlbnRlckRpYW1l
dGVyID0gMTAwOwotdmFyIHNpemVWYXJpYW5jZSA9IDgwOwotdmFyIHRyYXZlbERpc3RhbmNlID0g
NzA7Ci0KLXZhciBtaW5PYmplY3REZXB0aCA9IDAuMjsKLXZhciBtYXhPYmplY3REZXB0aCA9IDEu
MDsKK3ZhciBtaW5pbXVtRGlhbWV0ZXIgPSAzMDsKK3ZhciBjZW50ZXJEaWFtZXRlciA9IDkwOwor
dmFyIHNpemVWYXJpYW5jZSA9IDYwOwordmFyIHRyYXZlbERpc3RhbmNlID0gNTA7CiAKIHZhciBv
cGFjaXR5TXVsdGlwbGllciA9IDMwOwogCiB2YXIgRm9jdXNFbGVtZW50ID0gVXRpbGl0aWVzLmNy
ZWF0ZUNsYXNzKAogICAgIGZ1bmN0aW9uKHN0YWdlKQogICAgIHsKLSAgICAgICAgdmFyIHRvcE9m
ZnNldCA9IG1heFZlcnRpY2FsT2Zmc2V0ICogU3RhZ2UucmFuZG9tU2lnbigpOwotICAgICAgICB2
YXIgdG9wID0gU3RhZ2UucmFuZG9tKDAsIHN0YWdlLnNpemUuaGVpZ2h0IC0gMiAqIHJhZGl1cyAt
IHNpemVWYXJpYW5jZSk7Ci0gICAgICAgIHZhciBsZWZ0ID0gU3RhZ2UucmFuZG9tKDAsIHN0YWdl
LnNpemUud2lkdGggLSAyICogcmFkaXVzIC0gc2l6ZVZhcmlhbmNlKTsKKyAgICAgICAgdmFyIHNp
emUgPSBtaW5pbXVtRGlhbWV0ZXIgKyBzaXplVmFyaWFuY2U7CiAKICAgICAgICAgLy8gc2l6ZSBh
bmQgYmx1cnJpbmcgYXJlIGEgZnVuY3Rpb24gb2YgZGVwdGgKLSAgICAgICAgdGhpcy5fZGVwdGgg
PSBVdGlsaXRpZXMubGVycCgxIC0gTWF0aC5wb3coUHNldWRvLnJhbmRvbSgpLCAyKSwgbWluT2Jq
ZWN0RGVwdGgsIG1heE9iamVjdERlcHRoKTsKLSAgICAgICAgdmFyIGRpc3RhbmNlID0gVXRpbGl0
aWVzLmxlcnAodGhpcy5fZGVwdGgsIDEsIHNpemVWYXJpYW5jZSk7Ci0gICAgICAgIHZhciBzaXpl
ID0gMiAqIHJhZGl1cyArIHNpemVWYXJpYW5jZSAtIGRpc3RhbmNlOworICAgICAgICB0aGlzLl9k
ZXB0aCA9IFBzZXVkby5yYW5kb20oKTsKKyAgICAgICAgdmFyIGRpc3RhbmNlID0gVXRpbGl0aWVz
LmxlcnAodGhpcy5fZGVwdGgsIDAsIHNpemVWYXJpYW5jZSk7CisgICAgICAgIHNpemUgLT0gZGlz
dGFuY2U7CisKKyAgICAgICAgdmFyIHRvcCA9IFN0YWdlLnJhbmRvbSgwLCBzdGFnZS5zaXplLmhl
aWdodCAtIHNpemUpIC0gc3RhZ2UubWF4Qmx1clZhbHVlICogMzsKKyAgICAgICAgdmFyIGxlZnQg
PSBTdGFnZS5yYW5kb20oMCwgc3RhZ2Uuc2l6ZS53aWR0aCAtIHNpemUpIC0gc3RhZ2UubWF4Qmx1
clZhbHVlICogMzsKIAogICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS53aWR0aCA9IChzaXpl
ICsgc3RhZ2UubWF4Qmx1clZhbHVlICogNikgKyAicHgiOwpAQCAtMzAsMTYgKzI4LDE1IEBAIHZh
ciBGb2N1c0VsZW1lbnQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHRoaXMuY29u
dGFpbmVyLnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKICAgICAgICAgdGhpcy5jb250YWluZXIu
c3R5bGUuekluZGV4ID0gTWF0aC5yb3VuZCgoMSAtIHRoaXMuX2RlcHRoKSAqIDEwKTsKIAotICAg
ICAgICB2YXIgcGFydGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgiZGl2Iiwge30sIHRo
aXMuY29udGFpbmVyKTsKLSAgICAgICAgcGFydGljbGUuc3R5bGUud2lkdGggPSBzaXplICsgInB4
IjsKLSAgICAgICAgcGFydGljbGUuc3R5bGUuaGVpZ2h0ID0gc2l6ZSArICJweCI7Ci0gICAgICAg
IHBhcnRpY2xlLnN0eWxlLnRvcCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7Ci0g
ICAgICAgIHBhcnRpY2xlLnN0eWxlLmxlZnQgPSAoc3RhZ2UubWF4Qmx1clZhbHVlICogMykgKyAi
cHgiOwotICAgICAgICB0aGlzLnBhcnRpY2xlID0gcGFydGljbGU7CisgICAgICAgIHRoaXMucGFy
dGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlRWxlbWVudCgiZGl2Iiwge30sIHRoaXMuY29udGFpbmVy
KTsKKyAgICAgICAgdGhpcy5wYXJ0aWNsZS5zdHlsZS53aWR0aCA9IHNpemUgKyAicHgiOworICAg
ICAgICB0aGlzLnBhcnRpY2xlLnN0eWxlLmhlaWdodCA9IHNpemUgKyAicHgiOworICAgICAgICB0
aGlzLnBhcnRpY2xlLnN0eWxlLnRvcCA9IChzdGFnZS5tYXhCbHVyVmFsdWUgKiAzKSArICJweCI7
CisgICAgICAgIHRoaXMucGFydGljbGUuc3R5bGUubGVmdCA9IChzdGFnZS5tYXhCbHVyVmFsdWUg
KiAzKSArICJweCI7CiAKICAgICAgICAgdmFyIGRlcHRoTXVsdGlwbGllciA9IFV0aWxpdGllcy5s
ZXJwKDEgLSB0aGlzLl9kZXB0aCwgMC44LCAxKTsKLSAgICAgICAgdGhpcy5fc2luTXVsdGlwbGll
ciA9IFBzZXVkby5yYW5kb20oKSAqIFN0YWdlLnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlwbGll
cjsKLSAgICAgICAgdGhpcy5fY29zTXVsdGlwbGllciA9IFBzZXVkby5yYW5kb20oKSAqIFN0YWdl
LnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlwbGllcjsKKyAgICAgICAgdGhpcy5fc2luTXVsdGlw
bGllciA9IFBzZXVkby5yYW5kb20oKSAqIFN0YWdlLnJhbmRvbVNpZ24oKSAqIGRlcHRoTXVsdGlw
bGllciAqIHRyYXZlbERpc3RhbmNlOworICAgICAgICB0aGlzLl9jb3NNdWx0aXBsaWVyID0gUHNl
dWRvLnJhbmRvbSgpICogU3RhZ2UucmFuZG9tU2lnbigpICogZGVwdGhNdWx0aXBsaWVyICogdHJh
dmVsRGlzdGFuY2U7CiAgICAgfSwgewogCiAgICAgaGlkZTogZnVuY3Rpb24oKQpAQCAtMTMxLDgg
KzEyOCw4IEBAIHZhciBGb2N1c1N0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdl
LAogICAgIGFuaW1hdGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciB0aW1lID0gdGhp
cy5fYmVuY2htYXJrLnRpbWVzdGFtcDsKLSAgICAgICAgdmFyIHNpbkZhY3RvciA9IE1hdGguc2lu
KHRpbWUgLyB0aGlzLm1vdmVtZW50RHVyYXRpb24pICogdHJhdmVsRGlzdGFuY2U7Ci0gICAgICAg
IHZhciBjb3NGYWN0b3IgPSBNYXRoLmNvcyh0aW1lIC8gdGhpcy5tb3ZlbWVudER1cmF0aW9uKSAq
IHRyYXZlbERpc3RhbmNlOworICAgICAgICB2YXIgc2luRmFjdG9yID0gTWF0aC5zaW4odGltZSAv
IHRoaXMubW92ZW1lbnREdXJhdGlvbik7CisgICAgICAgIHZhciBjb3NGYWN0b3IgPSBNYXRoLmNv
cyh0aW1lIC8gdGhpcy5tb3ZlbWVudER1cmF0aW9uKTsKIAogICAgICAgICB2YXIgZm9jdXNQcm9n
cmVzcyA9IDAuNSArIDAuNSAqIE1hdGguc2luKHRpbWUgLyB0aGlzLmZvY3VzRHVyYXRpb24pOwog
ICAgICAgICB0aGlzLl9mb2NhbFBvaW50ID0gZm9jdXNQcm9ncmVzczsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRh
dGEuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9pbWFnZS1kYXRhLmpzCmluZGV4IDdhMDI4ZjIuLjZkZTVkMDYgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJj
ZXMvaW1hZ2UtZGF0YS5qcwpAQCAtOCwxMCArOCwxMCBAQCB2YXIgSW1hZ2VEYXRhU3RhZ2UgPSBV
dGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3RhZ2UsCiAgICAgICAgIHRoaXMuX29mZnNldEluZGV4
ID0gMDsKICAgICB9LCB7CiAKLSAgICBpbWFnZVdpZHRoOiAxMDAsCi0gICAgaW1hZ2VIZWlnaHQ6
IDEwMCwKKyAgICBpbWFnZVdpZHRoOiA1MCwKKyAgICBpbWFnZUhlaWdodDogNTAsCiAgICAgcGl4
ZWxTdHJpZGU6IDQsCi0gICAgcm93U3RyaWRlOiA0MDAsCisgICAgcm93U3RyaWRlOiAyMDAsCiAg
ICAgd2VpZ2h0TmVnYXRpdmVUaHJlc2hvbGQ6IDAuMDQsCiAgICAgd2VpZ2h0UG9zaXRpdmVUaHJl
c2hvbGQ6IDAuOTYsCiAgICAgaW1hZ2VTcmNzOiBbCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sCmluZGV4IDRjOWRkZTEuLjVlOTRiOGMg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4
dC5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4
dC5odG1sCkBAIC03LDI4ICs3LDE1IEBACiAKICAgICAgICAgI3N0YWdlIHsKICAgICAgICAgICAg
IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7Ci0gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7Ci0g
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzEzNTM0Oy8qICNkMTk0OGM7Ki8KKyAgICAg
ICAgICAgIGZvbnQtc2l6ZTogNTJweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMz
MTM1MzQ7CiAgICAgICAgIH0KLSAgICAgICAgQG1lZGlhIChtaW4tZGV2aWNlLWhlaWdodDogNzY4
cHgpIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDEwMjRweCkgeworICAgICAgICBAbWVkaWEgKG1h
eC13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgICNzdGFnZSB7CiAgICAgICAgICAgICAgICAg
Zm9udC1zaXplOiA0MHB4OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIEBtZWRp
YSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiA0MTRweCksCi0gICAgICAgICAgICBzY3Jl
ZW4gYW5kIChtYXgtZGV2aWNlLWhlaWdodDogNDE0cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRz
Y2FwZSkgewotICAgICAgICAgICAgI3N0YWdlIHsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6
IDM2cHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgQG1lZGlhIHNjcmVlbiBh
bmQgKG1heC1kZXZpY2Utd2lkdGg6IDM3NXB4KSwKLSAgICAgICAgICAgIHNjcmVlbiBhbmQgKG1h
eC1kZXZpY2UtaGVpZ2h0OiAzNzVweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7Ci0g
ICAgICAgICAgICAjc3RhZ2UgewotICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRl
dmljZS13aWR0aDogMzIwcHgpLAotICAgICAgICAgICAgc2NyZWVuIGFuZCAobWF4LWRldmljZS1o
ZWlnaHQ6IDMyMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsKKyAgICAgICAgQG1l
ZGlhIChtYXgtd2lkdGg6IDU2OHB4KSB7CiAgICAgICAgICAgICAjc3RhZ2UgewogICAgICAgICAg
ICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Y2NiYTkyZS4uZTNlNmQ5ZCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTUsNiArNSwyNiBAQAogCiAgICAg
ICAgIFByb3Zpc2lvbmFsbHkgcmV2aWV3ZWQgYnkgU2FpZCBBYm91LUhhbGxhd2EuCiAKKyAgICAg
ICAgVXBkYXRlIHRlc3RzLgorCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4
dC5odG1sOiBFbnN1cmUgb25seSB0aHJlZSB0ZXh0IHNpemVzIGZvcgorICAgICAgICB0aGUgdGhy
ZWUgY2FudmFzZXMuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvZm9jdXMuaHRt
bDogUmVkdWNlIHRoZSB0ZXh0IHNpemUgdG8gZml0IHdpdGggc21hbGxlcgorICAgICAgICBwYXJ0
aWNsZSBzaXplcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMv
Zm9jdXMuanM6IFJlbW92ZSB0aGUgcXVhZHJhdGljIGRpc3RyaWJ1dGlvbiBmb3IKKyAgICAgICAg
cGFydGljbGUgc2l6ZXMsIGFuZCBtYWtlIGl0IGxpbmVhci4gUmVkdWNlIHRoZSBzaXplIHZhcmlh
bmNlLiBTaHVmZmxlIHRoZSBtYXRoIHRvCisgICAgICAgIHJlZHVjZSBzb21lIGNhbGN1bGF0aW9u
cyBwZXIgZnJhbWUuIEZpeCB0aGUgcGxhY2VtZW50IG9mIHRoZSBwYXJ0aWNsZXMgd2hpY2ggbWln
aHQKKyAgICAgICAgb3RoZXJ3aXNlIGJlIGN1bGxlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qczogUmVkdWNlIHRoZSBwYXJ0aWNsZSBz
aXplCisgICAgICAgIHRvIGVuY291cmFnZSBsYXJnZXIgc2NvcmVzLgorCisyMDE2LTA2LTIxICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlbWVudHMgdG8gQW5p
bW9tZXRlciBiZW5jaG1hcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NzczOAorCisgICAgICAgIFByb3Zpc2lvbmFsbHkgcmV2aWV3ZWQgYnkgU2Fp
ZCBBYm91LUhhbGxhd2EuCisKICAgICAgICAgSW5jbHVkZSBjb25maWRlbmNlIGludGVydmFsIGZv
ciB0aGUgZmluYWwgc2NvcmUsIGFuZCBzdG9yZSB0aGUgY2FudmFzCiAgICAgICAgIHNpemUgaW4g
dGhlIHNlcmlhbGl6YXRpb24gc28gdGhhdCBpdCBpcyBhY2N1cmF0ZWx5IHNob3duIGluIHJlc3Vs
dHMuCiAKLS0gCjIuOC4xIChBcHBsZSBHaXQtNjkpCgo=
</data>
<flag name="review"
          id="305621"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>