<?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>75297</bug_id>
          
          <creation_ts>2011-12-28 00:54:47 -0800</creation_ts>
          <short_desc>[V8] meta: DOM attributes should be defined on a prototype chain</short_desc>
          <delta_ts>2013-09-01 10:32:32 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>49739</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527579</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-28 00:54:47 -0800</bug_when>
    <thetext>Although currently DOM attributes are defined on a platform object, the spec says that DOM attributes without [Unforgeable] IDL should be defined on a prototype chain:
http://dev.w3.org/2006/webapi/WebIDL/#es-attributes

Current behavior:
HTMLElement.hasOwnProperty(&quot;lang&quot;) =&gt; false
HTMLElement.prototype.hasOwnProperty(&quot;lang&quot;) =&gt; false
div.hasOwnProperty(&quot;lang&quot;) =&gt; true
div.__proto__.hasOwnProperty(&quot;lang&quot;) =&gt; false
div.__proto__.__proto__.hasOwnProperty(&quot;lang&quot;) =&gt; false

Expected behavior:
HTMLElement.hasOwnProperty(&quot;lang&quot;) =&gt; false
HTMLElement.prototype.hasOwnProperty(&quot;lang&quot;) =&gt; true
div.hasOwnProperty(&quot;lang&quot;) =&gt; false
div.__proto__.hasOwnProperty(&quot;lang&quot;) =&gt; false
div.__proto__.__proto__.hasOwnProperty(&quot;lang&quot;) =&gt; true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527580</commentid>
    <comment_count>1</comment_count>
      <attachid>120638</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-28 00:56:37 -0800</bug_when>
    <thetext>Created attachment 120638
Test cases for constants, attributes and operations

This test checks if constants, attributes and operations on a DOM interface are correctly implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527582</commentid>
    <comment_count>2</comment_count>
      <attachid>120639</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-28 00:58:18 -0800</bug_when>
    <thetext>Created attachment 120639
Test cases for attribute getter and setter

This test checks if attribute getter and setter on a DOM interface are correctly implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527584</commentid>
    <comment_count>3</comment_count>
      <attachid>120641</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-28 01:03:13 -0800</bug_when>
    <thetext>Created attachment 120641
WIP: test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527643</commentid>
    <comment_count>4</comment_count>
      <attachid>120661</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-28 06:02:50 -0800</bug_when>
    <thetext>Created attachment 120661
WIP: test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527827</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-28 19:44:57 -0800</bug_when>
    <thetext>Don&apos;t we have bugs about this already? Perhaps bug 68002 and/or bug 49739.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527908</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-29 06:44:02 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Don&apos;t we have bugs about this already? Perhaps bug 68002 and/or bug 49739.

ap: Yes, this is a duplicated bug. We (i.e. dominicc and I) are planning to use this bug just for informally investigating WIP strategies for addressing this issue. After some investigation, we will upload a patch for the original bug 49739. Thanks.

*** This bug has been marked as a duplicate of bug 49739 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528798</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-03 08:36:32 -0800</bug_when>
    <thetext>ap: On this bug, I would like to work on the V8 side fix of bug 49739.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528800</commentid>
    <comment_count>8</comment_count>
      <attachid>120952</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-03 08:37:23 -0800</bug_when>
    <thetext>Created attachment 120952
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528804</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-03 08:43:51 -0800</bug_when>
    <thetext>I uploaded a WIP (or EXPERIMENTAL) patch. I moved all the V8 DOM attributes in HTMLDivElement.idl, HTMLElement.idl, Element.idl and Node.idl (except for the attributes that have custom getters or custom setters), from a platform object to a prototype chain. Please see WebCore/ChangeLog for more details.

Note: This is just a WIP patch. Ultimately, we are planning to remove all the [V8OnProto] IDL and just use the [V8Unforgeable] IDL; In other words, according to the spec, all attributes without the [V8Unforgeable] IDL will be defined on a prototype chain and all attributes with the [V8Unforgeable] IDL will be defined on a platform object. That being said, this requires non-trivial work. Before moving all DOM attributes onto a prototype chain, we need to

- rewrite all custom getters and setters,
- handle special attributes (e.g. DOMWindow attributes, EventListener attributes, attributes with the [V8DisallowShadowing] IDL)
- investigate security issues,
- and measure the performance impact of this change.

Comments are appreciated. In particular, I am wondering if the test cases (interface_attributes.html and interface_properties.html) are sufficient and correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530001</commentid>
    <comment_count>10</comment_count>
      <attachid>120952</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-01-04 21:57:35 -0800</bug_when>
    <thetext>Comment on attachment 120952
WIP patch

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

&gt; Source/WebCore/ChangeLog:28
&gt; +                if (!V8HTMLElement::GetTemplate()-&gt;HasInstance(info.This()))  /* (#) */

What happens with:

HTMLButtonElement.prototype.lang

&gt; Source/WebCore/ChangeLog:69
&gt; +        * bindings/scripts/CodeGeneratorV8.pm: As described above. Renamed [v8OnProto]

For clarity it might be good to separate the rename out from the rest of this change.

&gt; LayoutTests/fast/js/interface_attributes.html:1
&gt; +&lt;!DOCTYPE html&gt;

These tests look good to me.

&gt; LayoutTests/fast/js/interface_attributes.html:14
&gt; +shouldBe(&apos;div.__proto__ === HTMLDivElement.prototype&apos;, &apos;true&apos;);

Is there shouldBeTrue?

&gt; LayoutTests/fast/js/interface_properties.html:1
&gt; +&lt;!DOCTYPE html&gt;

These tests look good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530008</commentid>
    <comment_count>11</comment_count>
      <attachid>120952</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-04 22:21:20 -0800</bug_when>
    <thetext>Comment on attachment 120952
WIP patch

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

&gt;&gt; Source/WebCore/ChangeLog:28
&gt;&gt; +                if (!V8HTMLElement::GetTemplate()-&gt;HasInstance(info.This()))  /* (#) */
&gt; 
&gt; What happens with:
&gt; 
&gt; HTMLButtonElement.prototype.lang

Both HTMLButtonElement.prototype.lang and HTMLDivElement.prototype.lang throw TypeError (I confirmed). Since HTML{Button,Div}Element.prototype is not a platform-object, HasInstance() returns false.

Although more security and performance investigation is needed, if this change looks OK, we might be able to get this work done without touching the V8 code at all.

&gt; Source/WebCore/ChangeLog:62
&gt; +              attributes with the [V8DisallowShadowing] IDL)

Actually I am not sure what attributes must be treated specially. It seems that the attributes with the [Unforgeable] IDL in the spec are not the only attributes we must treat specially. I&apos;m investigating it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530249</commentid>
    <comment_count>12</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-05 06:36:14 -0800</bug_when>
    <thetext>I evaluated the performance impact using DROMAEO. Since the patch moved all DOM attributes in HTMLElement, Element and Node, I think that we can approximately evaluate the performance impact.

The current performance (DOM attributes on a platform object): http://dromaeo.com/?id=159876
The performance with the patch (DOM attributes on a prototype chain): http://dromaeo.com/?id=159879

For example, the performance of &quot;DOM attributes&quot; degrades by 24%. Oh...this is far from acceptable...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530333</commentid>
    <comment_count>13</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-01-05 09:08:39 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; I evaluated the performance impact using DROMAEO. Since the patch moved all DOM attributes in HTMLElement, Element and Node, I think that we can approximately evaluate the performance impact.
&gt; 
&gt; The current performance (DOM attributes on a platform object): http://dromaeo.com/?id=159876
&gt; The performance with the patch (DOM attributes on a prototype chain): http://dromaeo.com/?id=159879
&gt; 
&gt; For example, the performance of &quot;DOM attributes&quot; degrades by 24%. Oh...this is far from acceptable...

Yikes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530933</commentid>
    <comment_count>14</comment_count>
      <attachid>121399</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-05 22:20:24 -0800</bug_when>
    <thetext>Created attachment 121399
DOM micro benchmark

Uploaded a DOM micro benchmark. The result will be coming soon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530935</commentid>
    <comment_count>15</comment_count>
      <attachid>121401</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-05 22:29:40 -0800</bug_when>
    <thetext>Created attachment 121401
DOM micro benchmark

Updated the DOM micro benchmark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530942</commentid>
    <comment_count>16</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-05 23:01:47 -0800</bug_when>
    <thetext>Here are the performance results of the DOM micro benchmark I attached:

The current performance (DOM attributes on a platform object): http://haraken.info/a/dom_benchmark_master.txt
The performance with the patch (DOM attributes on a prototype chain): http://haraken.info/a/dom_benchmark_wip.txt

In total, moving DOM attributes degrades performance by 12%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538363</commentid>
    <comment_count>17</comment_count>
      <attachid>123046</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-18 17:52:17 -0800</bug_when>
    <thetext>Created attachment 123046
WIP: The OnProto patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538382</commentid>
    <comment_count>18</comment_count>
      <attachid>123047</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-18 18:10:15 -0800</bug_when>
    <thetext>Created attachment 123047
WIP: Patch to measure the overhead of DOM attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732395</commentid>
    <comment_count>19</comment_count>
      <attachid>166635</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-02 01:05:43 -0700</bug_when>
    <thetext>Created attachment 166635
Patch for performance experiments. Not for review.

I&apos;ll write up the performance results in days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732397</commentid>
    <comment_count>20</comment_count>
      <attachid>166637</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-02 01:08:27 -0700</bug_when>
    <thetext>Created attachment 166637
Benchmark tests for performance experiments

I&apos;ll write up the performance results in days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732634</commentid>
    <comment_count>21</comment_count>
      <attachid>166635</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-10-02 07:11:38 -0700</bug_when>
    <thetext>Comment on attachment 166635
Patch for performance experiments. Not for review.

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

&gt; Source/WebCore/bindings/v8/V8DOMConfiguration.h:85
&gt; +        (attribute.onPrototype ? prototype : instance)-&gt;SetAccessor(v8::String::NewSymbol(attribute.name),
&gt; +                                                                    attribute.getter,
&gt; +                                                                    attribute.setter,
&gt; +                                                                    v8::External::Wrap(attribute.data),
&gt; +                                                                    attribute.settings,
&gt; +                                                                    attribute.attribute,
&gt; +                                                                    v8::AccessorSignature::New(templ));

I&apos;m curious why we want to do this. SetAccessor creates a magic data property. Having this on the prototype chain is a bigger semantic foul than the current incorrect bindings (it violates ES5, http://es5.github.com/#x8.12.5).

Is this just to get a better understanding of the performance implications? We need to test with real accessor properties to get accurate results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733256</commentid>
    <comment_count>22</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-02 17:24:20 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I&apos;m curious why we want to do this. SetAccessor creates a magic data property. Having this on the prototype chain is a bigger semantic foul than the current incorrect bindings (it violates ES5, http://es5.github.com/#x8.12.5).
&gt; 
&gt; Is this just to get a better understanding of the performance implications? We need to test with real accessor properties to get accurate results.

First of all: At present this is just for performance experiments. I can show the results in a day or so.

For the future: I was planning to keep using SetAccessor. My understanding was that if SetAccessor meets the following semantics then we can use SetAccessor for correct semantics of DOM attribute getters/setters:

[1] getters/setters throw a TypeError when they are called for an invalid receiver. (e.g. xhr.__proto__ = HTMLElement.prorotype; xhr.lang;)

[2] JavaScript getters/setters are exposed.


[1] is already implemented. We can enable the TypeError check by passing AccessorSignature to SetAccessor.

I thought [2] is already implemented, but it looks like it does not work. I&apos;ll discuss it with the V8 team.


I think I&apos;m missing something. Correct me please:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733324</commentid>
    <comment_count>23</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-10-02 20:15:34 -0700</bug_when>
    <thetext>(In reply to comment #22) 
&gt; I think I&apos;m missing something. Correct me please:)

The V8 API function, SetAccessor, creates a data property (http://es5.github.com/#x8.10.2). We need a new V8 API function that creates an accessor property (http://es5.github.com/#x8.10.1).

When a property is assigned to, the internal [[Put]] algorithm (http://es5.github.com/#x8.12.5) is used. If there is a data property somewhere on the prototype chain, and [[CanPut]] is true, then a new own (instance) property is defined. This means that if there is a data property, for example &quot;id&quot; on Element.prototype, then assigning myElement.id, will just create a new own property on myElement and the magic V8 setter should not be invoked.

This is how things should work. Engines are allowed to break (almost) any spec behavior for exotic (host) objects but since we are so close it seems like a bad idea to not do this right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733399</commentid>
    <comment_count>24</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-02 23:59:39 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22) 
&gt; &gt; I think I&apos;m missing something. Correct me please:)
&gt; 
&gt; The V8 API function, SetAccessor, creates a data property (http://es5.github.com/#x8.10.2). We need a new V8 API function that creates an accessor property (http://es5.github.com/#x8.10.1).

In my understanding, SetAccessor() creates a data property by default, but creates an accessor property if we pass AccessorSignature() to SetAccessor.


&gt; When a property is assigned to, the internal [[Put]] algorithm (http://es5.github.com/#x8.12.5) is used. If there is a data property somewhere on the prototype chain, and [[CanPut]] is true, then a new own (instance) property is defined. This means that if there is a data property, for example &quot;id&quot; on Element.prototype, then assigning myElement.id, will just create a new own property on myElement and the magic V8 setter should not be invoked.

For example, the following code works fine with my patch:

div.testAttrElementOnProto = &quot;foo&quot;;
div.hasOwnProperty(&quot;testAttrElementOnProto&quot;); // false
div.__proto__.__proto__.__proto__.hasOwnProperty(&quot;testAttrElementOnProto&quot;); // true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733576</commentid>
    <comment_count>25</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-03 05:10:23 -0700</bug_when>
    <thetext>Here are performance results:
https://docs.google.com/a/chromium.org/document/d/1ko2uA1MurSO_SFkvyefYWDcGRO7EmOmVDofdEQNbwB0/edit

Summary: Half a year ago, I evaluated the performance impacts of moving DOM
attributes to JavaScript prototype chains and observed ~120%
performance regression. Now the V8 team has fixed all performance bugs
about it, I re-evaluated the performance impacts. The good news is
that now there remains only the pure overhead of prototype chain
lookup. On the other hand, the bad news is that the overhead is not
ignorable. Considering that one prototype chain lookup takes 0.69 ns
and that the current div.nodeType takes 13.97 ns, if we move DOM
attributes from div to Node.prototype, then it will cause (0.69 * 4) /
13.97 = 20% performance regression. Any wild idea to avoid the
regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733661</commentid>
    <comment_count>26</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-10-03 07:09:29 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; In my understanding, SetAccessor() creates a data property by default, but creates an accessor property if we pass AccessorSignature() to SetAccessor.

There is no documentation supporting that claim and your Google Doc also points out that using a signature does not create a JS accessor property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923506</commentid>
    <comment_count>27</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-01 10:32:32 -0700</bug_when>
    <thetext>V8 is gone.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>120638</attachid>
            <date>2011-12-28 00:56:37 -0800</date>
            <delta_ts>2011-12-28 00:56:37 -0800</delta_ts>
            <desc>Test cases for constants, attributes and operations</desc>
            <filename>interface_properties.html</filename>
            <type>text/html</type>
            <size>3103</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2Pgo8c2NyaXB0PgpkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjb25z
dGFudHMsIGF0dHJpYnV0ZXMgYW5kIG9wZXJhdGlvbnMgb24gYSBET00gaW50ZXJmYWNlIGFyZSBj
b3JyZWN0bHkgaW1wbGVtZW50ZWQuIik7Cgp2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CgpkZWJ1ZygnXG4tLS0gQ29uc3RhbnRzIHNob3VsZCBiZSBkZWZpbmVkIGJvdGgg
b24gdGhlIGludGVyZmFjZSBvYmplY3QgYW5kIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4nKTsKc2hvdWxkQmUoJ05vZGUuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ3Ry
dWUnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4Kc2hvdWxkQmUoJ05vZGUucHJvdG90eXBlLmhhc093
blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0LgpzaG91bGRCZSgnZGl2Lmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScs
ICdmYWxzZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCnNob3VsZEJlKCdkaXYuX19wcm90b19fLmhh
c093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmhh
c093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLl9f
cHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAnZmFsc2UnKTsgLy8gV3Jv
bmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCnNob3VsZEJlKCdkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUi
KScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgpzaG91bGRCZSgnZGl2
Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90b3R5
cGUnLCAndHJ1ZScpOwoKZGVidWcoJ1xuLS0tIEF0dHJpYnV0ZXMgd2l0aG91dCB0aGUgW1VuZm9y
Z2VhYmxlXSBJREwgc2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0LicpOwpzaG91bGRCZSgnSFRNTEVsZW1lbnQuaGFzT3duUHJvcGVydHkoImxhbmciKScs
ICdmYWxzZScpOyAvLyBJbnRlcmZhY2Ugb2JqZWN0LgpzaG91bGRCZSgnSFRNTEVsZW1lbnQucHJv
dG90eXBlLmhhc093blByb3BlcnR5KCJsYW5nIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2Zh
bHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uaGFzT3du
UHJvcGVydHkoImxhbmciKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5
KCJsYW5nIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4Kc2hvdWxk
QmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fID09PSBIVE1MRWxlbWVudC5wcm90b3R5cGUnLCAn
dHJ1ZScpOwoKZGVidWcoJ1xuLS0tIEF0dHJpYnV0ZXMgd2l0aCB0aGUgW1VuZm9yZ2VhYmxlXSBJ
REwgc2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIHBsYXRmb3JtIG9iamVjdC4nKTsKc2hvdWxkQmUo
J3dpbmRvdy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoInRvcCIpJywgJ2ZhbHNlJyk7IC8vIElu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgpzaG91bGRCZSgnd2luZG93Lmhhc093blByb3BlcnR5
KCJ0b3AiKScsICd0cnVlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KCmRlYnVnKCdcbi0tLSBPcGVy
YXRpb25zIHNob3VsZCBiZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4nKTsKc2hvdWxkQmUoJ0VsZW1lbnQuaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywg
J2ZhbHNlJyk7IC8vIEludGVyZmFjZSBvYmplY3QuCnNob3VsZEJlKCdFbGVtZW50LnByb3RvdHlw
ZS5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdC4Kc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmli
dXRlIiknLCAnZmFsc2UnKTsgLy8gUGxhdGZvcm0gb2JqZWN0LgpzaG91bGRCZSgnZGl2Ll9fcHJv
dG9fXy5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAnZmFsc2UnKTsgLy8gV3Jvbmcg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCnNob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJv
dG9fXy5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAnZmFsc2UnKTsgLy8gV3Jvbmcg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCnNob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJv
dG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywgJ3RydWUnKTsg
Ly8gSW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCnNob3VsZEJlKCdkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18gPT09IEVsZW1lbnQucHJvdG90eXBlJywgJ3RydWUnKTsKCmRlYnVn
KCdcbi0tLSBTdGF0aWMgb3BlcmF0aW9ucyBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QuJyk7Ci8vIEFyZSB0aGVyZSBhbnkgc3RhdGljIG9wZXJhdGlv
bnM/IEkgY291bGRuJ3QgZmluZCBpdC4KCnZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwoK
PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>120639</attachid>
            <date>2011-12-28 00:58:18 -0800</date>
            <delta_ts>2011-12-28 00:58:18 -0800</delta_ts>
            <desc>Test cases for attribute getter and setter</desc>
            <filename>interface_attributes.html</filename>
            <type>text/html</type>
            <size>3364</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2Pgo8c2NyaXB0PgpkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBhdHRy
aWJ1dGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb24gYSBET00gaW50ZXJmYWNlIGFyZSBjb3JyZWN0bHkg
aW1wbGVtZW50ZWQuIik7Cgp2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CgpkZWJ1ZygnXG4tLS0gQ2hlY2tzIGEgcHJvdG90eXBlIGNoYWluJyk7CnNob3VsZEJlKCdkaXYu
X19wcm90b19fID09PSBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUnLCAndHJ1ZScpOwpzaG91bGRC
ZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVtZW50LnByb3RvdHlwZScsICd0
cnVlJyk7CnNob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEVs
ZW1lbnQucHJvdG90eXBlJywgJ3RydWUnKTsKc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90
b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IE5vZGUucHJvdG90eXBlJywgJ3RydWUnKTsKCmRl
YnVnKCdcbi0tLSBDYWxscyBoYXNPd25Qcm9wZXJ0eSgpJyk7CnNob3VsZEJlKCdIVE1MRWxlbWVu
dC5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIEludGVyZmFjZSBvYmplY3Qu
CnNob3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScs
ICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgpzaG91bGRCZSgnZGl2Lmhh
c093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gUGxhdGZvcm0gb2JqZWN0LgpzaG91
bGRCZSgnZGl2Ll9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8v
IFdyb25nIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgpzaG91bGRCZSgnZGl2Ll9fcHJvdG9f
Xy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0LgoKZGVidWcoJ1xuLS0tIENhbGxzIHRoZSBhdHRyaWJ1dGUgZ2V0
dGVyIGZyb20gYSBwbGF0Zm9ybSBvYmplY3QnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYu
bGFuZycsICcnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLmxhbmcnLCAn
Jyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycs
ICcnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3By
b3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKCmRlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmli
dXRlIHNldHRlciBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0Jyk7CmRlYnVnKCdTZXRzICJmb28xIiBv
biBkaXYnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZyA9ICJmb28xIicsICdmb28x
Jyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcnLCAnZm9vMScpOwpzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2Rpdi5fX3Byb3RvX18ubGFuZycsICdmb28xJyk7CnNob3VsZEJlRXF1YWxU
b1N0cmluZygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICdmb28xJyk7CnNob3VsZEJl
RXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAn
dW5kZWZpbmVkJyk7CgpkZWJ1ZygnXG4tLS0gU2V0cyAiZm9vMiIgb24gSFRNTERpdkVsZW1lbnQu
cHJvdG90eXBlJyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5sYW5nID0g
ImZvbzIiJywgJ2ZvbzInKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICdmb28y
Jyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5sYW5nJywgJ2ZvbzInKTsK
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ2Zv
bzInKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3By
b3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKCmRlYnVnKCdcbi0tLSBTZXRzICJmb28zIiBvbiBI
VE1MRWxlbWVudC5wcm90b3R5cGUnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90
b19fLl9fcHJvdG9fXy5sYW5nID0gImZvbzMiJywgJ2ZvbzMnKTsKc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdkaXYubGFuZycsICdmb28zJyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJv
dG9fXy5sYW5nJywgJ2ZvbzMnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19f
Ll9fcHJvdG9fXy5sYW5nJywgJ2ZvbzMnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19w
cm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKCnZhciB1c2Vy
T2JqZWN0ID0gbmV3IE9iamVjdCgpOwp1c2VyT2JqZWN0Ll9fcHJvdG9fXyA9IEhUTUxEaXZFbGVt
ZW50LnByb3RvdHlwZTsKCmRlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmlidXRlIGdldHRlciBm
cm9tIGEgbm9uLXBsYXRmb3JtIG9iamVjdCcpOwpzaG91bGRUaHJvdygndXNlck9iamVjdC5sYW5n
JywgJ1R5cGVFcnJvcicpOwpzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VzZXJPYmplY3QuX19wcm90
b19fLmxhbmcnLCAnZm9vMycpOwpzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VzZXJPYmplY3QuX19w
cm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ2ZvbzMnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1
c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAndW5kZWZpbmVk
Jyk7CgpkZWJ1ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBzZXR0ZXIgZnJvbSBhIG5vbi1w
bGF0Zm9ybSBvYmplY3QnKTsKc2hvdWxkQmUoJ3VzZXJPYmplY3QubGFuZyA9ICJmb280IicsICdU
eXBlRXJyb3InKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5s
YW5nJywgJ2ZvbzMnKTsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1c2VyT2JqZWN0Ll9fcHJvdG9f
Xy5fX3Byb3RvX18ubGFuZycsICdmb28zJyk7CnNob3VsZEJlRXF1YWxUb1N0cmluZygndXNlck9i
amVjdC5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOwoK
CnZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwoKPC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120641</attachid>
            <date>2011-12-28 01:03:13 -0800</date>
            <delta_ts>2011-12-28 06:02:45 -0800</delta_ts>
            <desc>WIP: test cases</desc>
            <filename>bug-75297-20111228180311.patch</filename>
            <type>text/plain</type>
            <size>8124</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzMzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODdhNjRkNGQ3NjBiZDFjMGQxMzM2
NTk3NTgxNTdhZThmMDAwYjdjNS4uMmY4ZTk2YmVkMzU4MjljOTgzYTBiYTU5NTFjODcyNzcxOWMz
MDNjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTI4ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXSVA6IFtXSVBdW21ldGFdIERPTSBhdHRy
aWJ1dGVzIHNob3VsZCBiZSBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNoYWluCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI5NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsdGhvdWdoIGN1cnJlbnRseSBE
T00gYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVjdCwgdGhlIHNwZWMg
c2F5cyB0aGF0IERPTSBhdHRyaWJ1dGVzIHdpdGhvdXQgW1VuZm9yZ2VhYmxlXSBJREwgc2hvdWxk
IGJlIGRlZmluZWQgb24gYSBwcm90b3R5cGUgY2hhaW46CisgICAgICAgIGh0dHA6Ly9kZXYudzMu
b3JnLzIwMDYvd2ViYXBpL1dlYklETC8jZXMtYXR0cmlidXRlcworCisgICAgICAgICogZmFzdC9q
cy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2lu
dGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTI3ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENocm9taXVtIHJlYmFzZWxpbmUgYWZ0
ZXIgcjk4NTk2IHBhcnQgMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJm
YWNlX2F0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJp
YnV0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWI3MDU5MjY5ZjY2NzBkYWViZTViZTE1NmIzNGY1Mjhi
ZmJkYjUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnRlcmZhY2Vf
YXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFu
ZCBzZXR0ZXIgb24gYSBET00gaW50ZXJmYWNlIGFyZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuIik7
CisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKworZGVidWcoJ1xu
LS0tIENoZWNrcyBhIHByb3RvdHlwZSBjaGFpbicpOworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18g
PT09IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9f
cHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7Citz
aG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBFbGVtZW50LnBy
b3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1Zygn
XG4tLS0gQ2FsbHMgaGFzT3duUHJvcGVydHkoKScpOworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhh
c093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3No
b3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0
cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNP
d25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3Vs
ZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8g
V3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9f
Xy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0LgorCitkZWJ1ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBn
ZXR0ZXIgZnJvbSBhIHBsYXRmb3JtIG9iamVjdCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdk
aXYubGFuZycsICcnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5sYW5n
JywgJycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5s
YW5nJywgJycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9f
Xy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIENhbGxzIHRo
ZSBhdHRyaWJ1dGUgc2V0dGVyIGZyb20gYSBwbGF0Zm9ybSBvYmplY3QnKTsKK2RlYnVnKCdTZXRz
ICJmb28xIiBvbiBkaXYnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcgPSAiZm9v
MSInLCAnZm9vMScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICdmb28xJyk7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5fX3Byb3RvX18ubGFuZycsICdmb28xJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAnZm9v
MScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3By
b3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIFNldHMgImZvbzIiIG9u
IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYu
X19wcm90b19fLmxhbmcgPSAiZm9vMiInLCAnZm9vMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdkaXYubGFuZycsICdmb28yJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5fX3Byb3Rv
X18ubGFuZycsICdmb28yJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5fX3Byb3RvX18u
X19wcm90b19fLmxhbmcnLCAnZm9vMicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYuX19w
cm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWco
J1xuLS0tIFNldHMgImZvbzMiIG9uIEhUTUxFbGVtZW50LnByb3RvdHlwZScpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5sYW5nID0gImZvbzMiJywgJ2Zv
bzMnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcnLCAnZm9vMycpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLmxhbmcnLCAnZm9vMycpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ2ZvbzMnKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxh
bmcnLCAndW5kZWZpbmVkJyk7CisKK3ZhciB1c2VyT2JqZWN0ID0gbmV3IE9iamVjdCgpOwordXNl
ck9iamVjdC5fX3Byb3RvX18gPSBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGU7CisKK2RlYnVnKCdc
bi0tLSBDYWxscyB0aGUgYXR0cmlidXRlIGdldHRlciBmcm9tIGEgbm9uLXBsYXRmb3JtIG9iamVj
dCcpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QubGFuZycsICdUeXBlRXJyb3InKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygndXNlck9iamVjdC5fX3Byb3RvX18ubGFuZycsICdmb28zJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VzZXJPYmplY3QuX19wcm90b19fLl9fcHJvdG9fXy5sYW5n
JywgJ2ZvbzMnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndXNlck9iamVjdC5fX3Byb3RvX18u
X19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCitkZWJ1ZygnXG4tLS0g
Q2FsbHMgdGhlIGF0dHJpYnV0ZSBzZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QnKTsK
K3Nob3VsZEJlKCd1c2VyT2JqZWN0LmxhbmcgPSAiZm9vNCInLCAnVHlwZUVycm9yJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3VzZXJPYmplY3QuX19wcm90b19fLmxhbmcnLCAnZm9vMycpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFu
ZycsICdmb28zJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VzZXJPYmplY3QuX19wcm90b19f
Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2ludGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL2ludGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjVjYjY0NWY0NDVjNGM0MzMwM2JhZGExYjc5Y2E1MmU4MTYyZTcxYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX3Byb3BlcnRpZXMuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBjaGVja3MgaWYgY29uc3RhbnRzLCBhdHRyaWJ1dGVzIGFuZCBvcGVyYXRpb25zIG9uIGEg
RE9NIGludGVyZmFjZSBhcmUgY29ycmVjdGx5IGltcGxlbWVudGVkLiIpOworCit2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKK2RlYnVnKCdcbi0tLSBDb25zdGFudHMg
c2hvdWxkIGJlIGRlZmluZWQgYm90aCBvbiB0aGUgaW50ZXJmYWNlIG9iamVjdCBhbmQgdGhlIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LicpOworc2hvdWxkQmUoJ05vZGUuaGFzT3duUHJvcGVy
dHkoIkVMRU1FTlRfTk9ERSIpJywgJ3RydWUnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3Vs
ZEJlKCdOb2RlLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAndHJ1
ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuaGFzT3du
UHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4K
K3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScs
ICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJl
KCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIikn
LCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRC
ZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJFTEVN
RU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19f
Lmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJv
dG9fXy5fX3Byb3RvX18gPT09IE5vZGUucHJvdG90eXBlJywgJ3RydWUnKTsKKworZGVidWcoJ1xu
LS0tIEF0dHJpYnV0ZXMgd2l0aG91dCB0aGUgW1VuZm9yZ2VhYmxlXSBJREwgc2hvdWxkIGJlIGRl
ZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LicpOworc2hvdWxkQmUoJ0hU
TUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNl
IG9iamVjdC4KK3Nob3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHko
ImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxk
QmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9i
amVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIiknLCAn
ZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgn
ZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7
IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18u
X19wcm90b19fID09PSBIVE1MRWxlbWVudC5wcm90b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1Zygn
XG4tLS0gQXR0cmlidXRlcyB3aXRoIHRoZSBbVW5mb3JnZWFibGVdIElETCBzaG91bGQgYmUgZGVm
aW5lZCBvbiB0aGUgcGxhdGZvcm0gb2JqZWN0LicpOworc2hvdWxkQmUoJ3dpbmRvdy5fX3Byb3Rv
X18uaGFzT3duUHJvcGVydHkoInRvcCIpJywgJ2ZhbHNlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ3dpbmRvdy5oYXNPd25Qcm9wZXJ0eSgidG9wIiknLCAndHJ1
ZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCisKK2RlYnVnKCdcbi0tLSBPcGVyYXRpb25zIHNob3Vs
ZCBiZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4nKTsKK3Nob3Vs
ZEJlKCdFbGVtZW50Lmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICdmYWxzZScpOyAv
LyBJbnRlcmZhY2Ugb2JqZWN0Lgorc2hvdWxkQmUoJ0VsZW1lbnQucHJvdG90eXBlLmhhc093blBy
b3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAn
ZmFsc2UnKTsgLy8gUGxhdGZvcm0gb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uaGFz
T3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywgJ2ZhbHNlJyk7IC8vIFdyb25nIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmhh
c093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5f
X3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywgJ3RydWUnKTsgLy8gSW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3Rv
X18uX19wcm90b19fID09PSBFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CisKK2RlYnVnKCdc
bi0tLSBTdGF0aWMgb3BlcmF0aW9ucyBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QuJyk7CisvLyBBcmUgdGhlcmUgYW55IHN0YXRpYyBvcGVyYXRpb25z
PyBJIGNvdWxkbid0IGZpbmQgaXQuCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120661</attachid>
            <date>2011-12-28 06:02:50 -0800</date>
            <delta_ts>2012-01-03 08:37:16 -0800</delta_ts>
            <desc>WIP: test cases</desc>
            <filename>bug-75297-20111228230248.patch</filename>
            <type>text/plain</type>
            <size>7987</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzMzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODdhNjRkNGQ3NjBiZDFjMGQxMzM2
NTk3NTgxNTdhZThmMDAwYjdjNS4uMmY4ZTk2YmVkMzU4MjljOTgzYTBiYTU5NTFjODcyNzcxOWMz
MDNjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTI4ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXSVA6IFtXSVBdW21ldGFdIERPTSBhdHRy
aWJ1dGVzIHNob3VsZCBiZSBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNoYWluCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI5NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsdGhvdWdoIGN1cnJlbnRseSBE
T00gYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVjdCwgdGhlIHNwZWMg
c2F5cyB0aGF0IERPTSBhdHRyaWJ1dGVzIHdpdGhvdXQgW1VuZm9yZ2VhYmxlXSBJREwgc2hvdWxk
IGJlIGRlZmluZWQgb24gYSBwcm90b3R5cGUgY2hhaW46CisgICAgICAgIGh0dHA6Ly9kZXYudzMu
b3JnLzIwMDYvd2ViYXBpL1dlYklETC8jZXMtYXR0cmlidXRlcworCisgICAgICAgICogZmFzdC9q
cy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2lu
dGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTI3ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENocm9taXVtIHJlYmFzZWxpbmUgYWZ0
ZXIgcjk4NTk2IHBhcnQgMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJm
YWNlX2F0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJp
YnV0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzJmNDFjYTBmZDRhN2VlMzkzNTIwYzZlNDUzZmMxZTU5
NDBkOWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnRlcmZhY2Vf
YXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFu
ZCBzZXR0ZXIgb24gYSBET00gaW50ZXJmYWNlIGFyZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuIik7
CisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKworZGVidWcoJ1xu
LS0tIENoZWNrcyBhIHByb3RvdHlwZSBjaGFpbicpOworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18g
PT09IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9f
cHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7Citz
aG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBFbGVtZW50LnBy
b3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1Zygn
XG4tLS0gQ2FsbHMgaGFzT3duUHJvcGVydHkoKScpOworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhh
c093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3No
b3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0
cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNP
d25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3Vs
ZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8g
V3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9f
Xy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0LgorCitkZWJ1ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBn
ZXR0ZXIgZnJvbSBhIHBsYXRmb3JtIG9iamVjdCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdk
aXYubGFuZycsICcnKTsKK3Nob3VsZFRocm93KCdkaXYuX19wcm90b19fLmxhbmcnLCAnVHlwZUVy
cm9yJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICdUeXBl
RXJyb3InKTsKK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFu
ZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIENhbGxzIHRoZSBhdHRyaWJ1dGUgc2V0
dGVyIGZyb20gYSBwbGF0Zm9ybSBvYmplY3QnKTsKK2RlYnVnKCdTZXRzICJmb28xIiBvbiBkaXYn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcgPSAiZm9vMSInLCAnZm9vMScpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICdmb28xJyk7CitzaG91bGRUaHJvdygn
ZGl2Ll9fcHJvdG9fXy5sYW5nJywgJ1R5cGVFcnJvcicpOworc2hvdWxkVGhyb3coJ2Rpdi5fX3By
b3RvX18uX19wcm90b19fLmxhbmcnLCAnVHlwZUVycm9yJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJv
dG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAndW5kZWZpbmVkJyk7CisKK2RlYnVnKCdc
bi0tLSBTZXRzICJmb28yIiBvbiBIVE1MRGl2RWxlbWVudC5wcm90b3R5cGUnKTsKK3Nob3VsZFRo
cm93KCdkaXYuX19wcm90b19fLmxhbmcgPSAiZm9vMiInLCAnVHlwZUVycm9yJyk7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2Rpdi5sYW5nJywgJ2ZvbzEnKTsKK3Nob3VsZFRocm93KCdkaXYuX19w
cm90b19fLmxhbmcnLCAnVHlwZUVycm9yJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5f
X3Byb3RvX18ubGFuZycsICdUeXBlRXJyb3InKTsKK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIFNl
dHMgImZvbzMiIG9uIEhUTUxFbGVtZW50LnByb3RvdHlwZScpOworc2hvdWxkVGhyb3coJ2Rpdi5f
X3Byb3RvX18uX19wcm90b19fLmxhbmcgPSAiZm9vMyInLCAnVHlwZUVycm9yJyk7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2Rpdi5sYW5nJywgJ2ZvbzEnKTsKK3Nob3VsZFRocm93KCdkaXYuX19w
cm90b19fLmxhbmcnLCAnVHlwZUVycm9yJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5f
X3Byb3RvX18ubGFuZycsICdUeXBlRXJyb3InKTsKK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRlZmluZWQnKTsKKwordmFyIHVzZXJPYmplY3Qg
PSBuZXcgT2JqZWN0KCk7Cit1c2VyT2JqZWN0Ll9fcHJvdG9fXyA9IEhUTUxEaXZFbGVtZW50LnBy
b3RvdHlwZTsKKworZGVidWcoJ1xuLS0tIENhbGxzIHRoZSBhdHRyaWJ1dGUgZ2V0dGVyIGZyb20g
YSBub24tcGxhdGZvcm0gb2JqZWN0Jyk7CitzaG91bGRUaHJvdygndXNlck9iamVjdC5sYW5nJywg
J1R5cGVFcnJvcicpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QuX19wcm90b19fLmxhbmcnLCAn
VHlwZUVycm9yJyk7CitzaG91bGRUaHJvdygndXNlck9iamVjdC5fX3Byb3RvX18uX19wcm90b19f
LmxhbmcnLCAnVHlwZUVycm9yJyk7CitzaG91bGRCZSgndXNlck9iamVjdC5fX3Byb3RvX18uX19w
cm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCitkZWJ1ZygnXG4tLS0gQ2Fs
bHMgdGhlIGF0dHJpYnV0ZSBzZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QnKTsKK3No
b3VsZFRocm93KCd1c2VyT2JqZWN0LmxhbmcgPSAiZm9vNCInLCAnVHlwZUVycm9yJyk7CitzaG91
bGRUaHJvdygndXNlck9iamVjdC5fX3Byb3RvX18ubGFuZycsICdUeXBlRXJyb3InKTsKK3Nob3Vs
ZFRocm93KCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICdUeXBlRXJyb3In
KTsKK3Nob3VsZEJlKCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxh
bmcnLCAndW5kZWZpbmVkJyk7CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9qcy9pbnRlcmZhY2VfcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnRl
cmZhY2VfcHJvcGVydGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1Y2I2NDVmNDQ1YzRjNDMzMDNiYWRh
MWI3OWNhNTJlODE2MmU3MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pz
L2ludGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNvbnN0YW50
cywgYXR0cmlidXRlcyBhbmQgb3BlcmF0aW9ucyBvbiBhIERPTSBpbnRlcmZhY2UgYXJlIGNvcnJl
Y3RseSBpbXBsZW1lbnRlZC4iKTsKKwordmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworCitkZWJ1ZygnXG4tLS0gQ29uc3RhbnRzIHNob3VsZCBiZSBkZWZpbmVkIGJvdGgg
b24gdGhlIGludGVyZmFjZSBvYmplY3QgYW5kIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4nKTsKK3Nob3VsZEJlKCdOb2RlLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICd0
cnVlJyk7IC8vIEludGVyZmFjZSBvYmplY3QuCitzaG91bGRCZSgnTm9kZS5wcm90b3R5cGUuaGFz
T3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ3RydWUnKTsgLy8gSW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Lmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUi
KScsICdmYWxzZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9f
Xy5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3Rv
X18uaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ2ZhbHNlJyk7IC8vIFdyb25nIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90
b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAnZmFsc2UnKTsg
Ly8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJv
dG9fXy5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVO
VF9OT0RFIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3Vs
ZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBOb2Rl
LnByb3RvdHlwZScsICd0cnVlJyk7CisKK2RlYnVnKCdcbi0tLSBBdHRyaWJ1dGVzIHdpdGhvdXQg
dGhlIFtVbmZvcmdlYWJsZV0gSURMIHNob3VsZCBiZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdC4nKTsKK3Nob3VsZEJlKCdIVE1MRWxlbWVudC5oYXNPd25Qcm9wZXJ0
eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIEludGVyZmFjZSBvYmplY3QuCitzaG91bGRCZSgnSFRN
TEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJsYW5nIiknLCAndHJ1ZScpOyAvLyBJ
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuaGFzT3duUHJvcGVydHko
ImxhbmciKScsICdmYWxzZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9f
cHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7IC8vIFdyb25nIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19f
Lmhhc093blByb3BlcnR5KCJsYW5nIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXyA9PT0gSFRNTEVsZW1l
bnQucHJvdG90eXBlJywgJ3RydWUnKTsKKworZGVidWcoJ1xuLS0tIEF0dHJpYnV0ZXMgd2l0aCB0
aGUgW1VuZm9yZ2VhYmxlXSBJREwgc2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIHBsYXRmb3JtIG9i
amVjdC4nKTsKK3Nob3VsZEJlKCd3aW5kb3cuX19wcm90b19fLmhhc093blByb3BlcnR5KCJ0b3Ai
KScsICdmYWxzZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCd3
aW5kb3cuaGFzT3duUHJvcGVydHkoInRvcCIpJywgJ3RydWUnKTsgLy8gUGxhdGZvcm0gb2JqZWN0
LgorCitkZWJ1ZygnXG4tLS0gT3BlcmF0aW9ucyBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuJyk7CitzaG91bGRCZSgnRWxlbWVudC5oYXNPd25Qcm9w
ZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3No
b3VsZEJlKCdFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIikn
LCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYu
aGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9i
amVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1
dGUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3No
b3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmli
dXRlIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitz
aG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5
KCJnZXRBdHRyaWJ1dGUiKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gRWxlbWVu
dC5wcm90b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1ZygnXG4tLS0gU3RhdGljIG9wZXJhdGlvbnMg
c2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LicpOwor
Ly8gQXJlIHRoZXJlIGFueSBzdGF0aWMgb3BlcmF0aW9ucz8gSSBjb3VsZG4ndCBmaW5kIGl0Lgor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120952</attachid>
            <date>2012-01-03 08:37:23 -0800</date>
            <delta_ts>2012-01-18 17:52:11 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-75297-20120104013721.patch</filename>
            <type>text/plain</type>
            <size>63608</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQzMWU3NTU1M2EwNWQx
YjBlNzAxY2Q4ODY4MDRmOTBmNDc1ZDg0Zi4uZTc4ZmU4YjIwNjllMzI3NTViMTI0NDk3N2UwMjk0
MDg3MjcxNzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExMCBAQAogMjAxMi0wMS0wMyAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW21ldGFdW1Y4XSBE
T00gYXR0cmlidXRlcyBzaG91bGQgYmUgZGVmaW5lZCBvbiBhIHByb3RvdHlwZSBjaGFpbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyOTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHRob3VnaCBjdXJy
ZW50bHkgRE9NIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgb24gYSBwbGF0Zm9ybSBvYmplY3QsCisg
ICAgICAgIHRoZSBzcGVjIHNheXMgdGhhdCBET00gYXR0cmlidXRlcyB3aXRob3V0IHRoZSBbVW5m
b3JnZWFibGVdIElETCBzaG91bGQgYmUgZGVmaW5lZAorICAgICAgICBvbiBhIHByb3RvdHlwZSBj
aGFpbjogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLyNlcy1hdHRyaWJ1dGVz
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBhbGwgdGhlIFY4IERPTSBhdHRyaWJ1dGVzIGlu
IEhUTUxEaXZFbGVtZW50LmlkbCwgSFRNTEVsZW1lbnQuaWRsLAorICAgICAgICBFbGVtZW50Lmlk
bCBhbmQgTm9kZS5pZGwgKGV4Y2VwdCBmb3IgdGhlIGF0dHJpYnV0ZXMgdGhhdCBoYXZlIGN1c3Rv
bSBnZXR0ZXJzIG9yCisgICAgICAgIGN1c3RvbSBzZXR0ZXJzKSwgZnJvbSBhIHBsYXRmb3JtIG9i
amVjdCB0byBhIHByb3RvdHlwZSBjaGFpbi4KKworICAgICAgICBUaGUgZXNzZW50aWFsIGNoYW5n
ZSBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgYXMgZm9sbG93czoKKworICAgICAgICAgICAgQkVG
T1JFIChIVE1MRWxlbWVudC5sYW5nIGlzIGRlZmluZWQgb24gYSBwbGF0Zm9ybSBvYmplY3QpOgor
ICAgICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsYW5nQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBFbGVtZW50KiBpbXAgPSBWOEVsZW1lbnQ6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB2OEV4dGVy
bmFsU3RyaW5nKGltcC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bGFuZ0F0dHIpKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgQUZURVIgKEhUTUxFbGVtZW50LmxhbmcgaXMgZGVmaW5l
ZCBvbiBhIHByb3RvdHlwZSBjaGFpbik6CisgICAgICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGxhbmdBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGlmICghVjhIVE1MRWxlbWVudDo6R2V0VGVtcGxhdGUoKS0+SGFzSW5zdGFuY2UoaW5mby5UaGlz
KCkpKSAgLyogKCMpICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJB
IERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3Qi
LCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBpbXAg
PSBWOEhUTUxFbGVtZW50Ojp0b05hdGl2ZShpbmZvLlRoaXMoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHY4U3RyaW5nKGltcC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6bGFu
Z0F0dHIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBJbiBjYXNlIG9mIHRoZSBET00gYXR0
cmlidXRlIGdldHRlciwgdGhlIHNwZWMgc2F5czoKKworICAgICAgICAgICAgMS4gTGV0IE8gYmUg
dGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvT2JqZWN0IG9uIHRoZSB0aGlzIHZhbHVlLgorICAgICAg
ICAgICAgMi4gSWYgTyBpcyBub3QgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHRo
ZSBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICBvbiB3aGljaCB0aGUgYXR0cmlidXRlIHdhcyBk
ZWNsYXJlZCwgdGhlbiAoLi4ub21taXR0ZWQuLi4pIHRocm93IGEgVHlwZUVycm9yLgorCisgICAg
ICAgIFRoZSBpZiBzdGF0ZW1lbnQgbWFya2VkIGFzICgjKSBjaGVja3MgMiBpbiB0aGUgc3BlYy4g
VG8gdW5kZXJzdGFuZCB0aGlzLAorICAgICAgICBub3RlIHRoYXQgd2hlbiBsYW5nQXR0ckdldHRl
cigpIGlzIGNhbGxlZCBieSB0aGUgVjggZW5naW5lLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQKKwor
ICAgICAgICAgICAgLSBpbmZvLkhvbGRlcigpIHBvaW50cyB0byB0aGUgb2JqZWN0IG9uIHdoaWNo
IGxhbmcgaXMgZGVmaW5lZCwKKyAgICAgICAgICAgICAgaS5lLiB0aGUgcHJvdG90eXBlIG9iamVj
dCBvZiBIVE1MRWxlbWVudC4KKyAgICAgICAgICAgIC0gaW5mby5UaGlzKCkgcG9pbnRzIHRvICd0
aGlzJywgaS5lLiB0aGUgcmVjZWl2ZXIgb2JqZWN0LgorICAgICAgICAgICAgICBGb3IgZXhhbXBs
ZSwgd2hlbiBkaXYubGFuZyBpcyBldmFsdWF0ZWQsIGluZm8uVGhpcygpIHBvaW50cyB0byBkaXYu
CisKKyAgICAgICAgVGhpcyB3YXksIHdlIGNhbiBjaGVjayB3aGV0aGVyICJPIGlzIGEgcGxhdGZv
cm0gb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlCisgICAgICAgIG9uIHdoaWNo
IHRoZSBhdHRyaWJ1dGUgd2FzIGRlY2xhcmVkIiBieSBjaGVja2luZyB3aGV0aGVyIGluZm8uVGhp
cygpIGlzIGFuIGluc3RhbmNlCisgICAgICAgIGdlbmVyYXRlZCBmcm9tIFY4SFRNTEVsZW1lbnQu
IFNwZWNpZmljYWxseSwgd2UgY2FuIGNoZWNrIGl0IGJ5CisgICAgICAgIFY4SFRNTEVsZW1lbnQ6
OkdldFRlbXBsYXRlKCktPkhhc0luc3RhbmNlKGluZm8uVGhpcygpKS4KKworICAgICAgICBOb3Rl
OiBUaGlzIGlzIGp1c3QgYSBXSVAgcGF0Y2guIFVsdGltYXRlbHksIHdlIGFyZSBwbGFubmluZyB0
byByZW1vdmUgYWxsIHRoZSBbVjhPblByb3RvXSBJREwKKyAgICAgICAgYW5kIGp1c3QgdXNlIHRo
ZSBbVjhVbmZvcmdlYWJsZV0gSURMOyBJbiBvdGhlciB3b3JkcywgYWNjb3JkaW5nIHRvIHRoZSBz
cGVjLCBhbGwgYXR0cmlidXRlcworICAgICAgICB3aXRob3V0IHRoZSBbVjhVbmZvcmdlYWJsZV0g
SURMIHdpbGwgYmUgZGVmaW5lZCBvbiBhIHByb3RvdHlwZSBjaGFpbiBhbmQgYWxsIGF0dHJpYnV0
ZXMKKyAgICAgICAgd2l0aCB0aGUgW1Y4VW5mb3JnZWFibGVdIElETCB3aWxsIGJlIGRlZmluZWQg
b24gYSBwbGF0Zm9ybSBvYmplY3QuIFRoYXQgYmVpbmcgc2FpZCwKKyAgICAgICAgdGhpcyByZXF1
aXJlcyBub24tdHJpdmlhbCB3b3JrLiBCZWZvcmUgbW92aW5nIGFsbCBET00gYXR0cmlidXRlcyBv
bnRvIGEgcHJvdG90eXBlIGNoYWluLAorICAgICAgICB3ZSBuZWVkIHRvCisKKyAgICAgICAgICAg
IC0gcmV3cml0ZSBhbGwgY3VzdG9tIGdldHRlcnMgYW5kIHNldHRlcnMsCisgICAgICAgICAgICAt
IGhhbmRsZSBzcGVjaWFsIGF0dHJpYnV0ZXMgKGUuZy4gRE9NV2luZG93IGF0dHJpYnV0ZXMsIEV2
ZW50TGlzdGVuZXIgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgYXR0cmlidXRlcyB3aXRoIHRo
ZSBbVjhEaXNhbGxvd1NoYWRvd2luZ10gSURMKQorICAgICAgICAgICAgLSBpbnZlc3RpZ2F0ZSBz
ZWN1cml0eSBpc3N1ZXMsCisgICAgICAgICAgICAtIGFuZCBtZWFzdXJlIHRoZSBwZXJmb3JtYW5j
ZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvanMvaW50ZXJm
YWNlX2F0dHJpYnV0ZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9qcy9pbnRlcmZhY2VfcHJv
cGVydGllcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbTogQXMgZGVzY3JpYmVkIGFib3ZlLiBSZW5hbWVkIFt2OE9uUHJvdG9dCisgICAgICAgIHRv
IFtWOE9uUHJvdG9dLgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAg
ICAgKEdlbmVyYXRlTm9ybWFsQXR0clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZVNpbmdsZUJh
dGNoZWRBdHRyaWJ1dGUpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5pZGw6IEFkZGVkIFtWOE9uUHJvdG9dIElETCB0byBhbGwgYXR0
cmlidXRlcyB0aGF0IGRvIG5vdCBoYXZlCisgICAgICAgIGEgY3VzdG9tIGdldHRlciBub3IgYSBj
dXN0b20gc2V0dGVyLgorICAgICAgICAqIGRvbS9Ob2RlLmlkbDogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MRGl2RWxlbWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaWRsOiBEaXR0by4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbDogQWRkZWQgYSBhdHRyaWJ1dGUgd2l0aCB0aGUgW1Y4T25Qcm90b10gSURMCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDogVXBkYXRlZCBy
dW4tYmluZGluZ3MtdGVzdHMgcmVzdWx0cy4KKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmF0dHJP
blByb3RvKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnNldEF0dHJPblByb3RvKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDogRGl0dG8uCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5j
cHA6IERpdHRvLgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl9vbl9wcm90
byk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX29uX3Byb3RvKToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9v
YmpfY2xhc3NfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpB
dHRyT25Qcm90byk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBdHRyT25Qcm90byk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6IERpdHRv
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06IERp
dHRvLgorICAgICAgICAoLVtET01UZXN0T2JqIGF0dHJPblByb3RvXSk6CisgICAgICAgICgtW0RP
TVRlc3RPYmogc2V0QXR0ck9uUHJvdG86XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iaklu
dGVybmFsOjphdHRyT25Qcm90b0F0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
akludGVybmFsOjphdHRyT25Qcm90b0F0dHJTZXR0ZXIpOgorCisyMDEyLTAxLTAzICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBVbnJldmlld2VkLiBSZWJh
c2VsaW5lZCBydW4tYmluZGluZ3MtdGVzdHMgcmVzdWx0cy4KIAogICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggNWVi
ZDYyMWRlZGViYTA3NjE4ZWIwOWIyYjA3MGYwMTZhMjZiNjUwNC4uZDE0MzE2ZDQ5OTczYzIzZGVl
YjM1NjFjMGY4ZDYwMzBiMjhmMWI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTgyNywyMiArODI3LDE4IEBAIEVORAog
RU5ECiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2lmICgkYXR0ckV4dC0+eyJ2
OE9uUHJvdG8ifSB8fCAkYXR0ckV4dC0+eyJWOERpc2FsbG93U2hhZG93aW5nIn0pIHsKKyAgICB9
IGVsc2lmICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSB8fCAkYXR0ckV4dC0+eyJWOERpc2FsbG93
U2hhZG93aW5nIn0pIHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Ci0gICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRlcigpOworICAgICR7aW1wbENs
YXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CiBFTkQKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMgcGVyZm9ybSBsb29rdXAg
Zmlyc3QKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKLSAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3Jh
cHBlcihWOCR7aW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlKCksIGluZm8uVGhpcygpKTsKLSAg
ICBpZiAoaG9sZGVyLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOworICAgIGlmICghVjgke2ludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLT5IYXNJ
bnN0YW5jZShpbmZvLlRoaXMoKSkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJBIERPTSBh
dHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QiLCBWOFBy
b3h5OjpUeXBlRXJyb3IpOworICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xh
c3NOYW1lfTo6dG9OYXRpdmUoaW5mby5UaGlzKCkpOwogRU5ECiAgICAgICAgIH0KLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgICR7aW1wbENsYXNzTmFtZX0qIGlt
cCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaG9sZGVyKTsKLUVORAogICAgIH0gZWxz
ZSB7CiAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwogICAgICAgICBteSAkdXJsID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVVJMIn07CkBAIC0xMDQ2LDIyICsxMDQy
LDIwIEBAIEVORAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkc3Zn
V3JhcHBlZE5hdGl2ZVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+cHJvcGVydHlSZWZlcmVu
Y2UoKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkc3Zn
V3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTtcbiIpOwogICAgICAgICB9Ci0g
ICAgfSBlbHNpZiAoJGF0dHJFeHQtPnsidjhPblByb3RvIn0pIHsKLSAgICAgIGlmICgkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCA8PEVORCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRl
cigpOworICAgIH0gZWxzaWYgKCRhdHRyRXh0LT57IlY4T25Qcm90byJ9KSB7CisgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgPDxFTkQpOworICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4JHtp
bXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiBFTkQKLSAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICMgcGVyZm9ybSBsb29rdXAgZmlyc3QKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgPDxFTkQpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0g
VjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4JHtpbnRlcmZhY2VOYW1lfTo6R2V0VGVt
cGxhdGUoKSwgaW5mby5UaGlzKCkpOwotICAgIGlmIChob2xkZXIuSXNFbXB0eSgpKQorICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwor
ICAgIGlmICghVjgke2ludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShp
bmZvLlRoaXMoKSkpIHsKKyAgICAgICAgdGhyb3dFcnJvcigiQSBET00gYXR0cmlidXRlIHNldHRl
ciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0IiwgVjhQcm94eTo6VHlwZUVycm9y
KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAke2ltcGxDbGFzc05hbWV9KiBpbXAgPSBW
OCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZlKGluZm8uVGhpcygpKTsKIEVORAotICAgICAgfQot
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKLSAgICAke2ltcGxDbGFzc05hbWV9
KiBpbXAgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZlKGhvbGRlcik7Ci1FTkQKKyAgICAg
ICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICRhdHRyVHlwZSA9IEdldFR5cGVGcm9tU2ln
bmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwpAQCAt
MTk3Niw3ICsxOTcwLDcgQEAgc3ViIEdlbmVyYXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZQogICAg
IH0KIAogICAgICMgQW4gYWNjZXNzb3IgY2FuIGJlIGluc3RhbGxlZCBvbiB0aGUgcHJvdG8KLSAg
ICBpZiAoJGF0dHJFeHQtPnsidjhPblByb3RvIn0pIHsKKyAgICBpZiAoJGF0dHJFeHQtPnsiVjhP
blByb3RvIn0pIHsKICAgICAgICAgJG9uX3Byb3RvID0gIjEgLyogb24gcHJvdG8gKi8iOwogICAg
IH0KIApAQCAtMjIyOSw3ICsyMjIzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgfQogCiAgICAgICAgIGlmICgkYXR0clR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiICYmICRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJ2OE9uUHJvdG8ifSA9IDE7CisgICAgICAg
ICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE9uUHJv
dG8ifSA9IDE7CiAgICAgICAgIH0KIAogICAgICAgICAjIEF0dHJpYnV0ZXMgb2YgdHlwZSBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgYXJlIHNldCBpbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCmluZGV4
IDVjZTEwMzA2Nzc3MTkxY2M3YTJiM2IzM2U4ZDlmZWMxMDk3M2YxYzQuLjQ5MDVhZjU3Mjg1MTdj
YWY1NjU4N2ZkYmM5OWJkODYzOGU0Mzg5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApAQCAtMjE3
LDYgKzIxNywyMiBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFRlc3RPYmpBdHRyKGNvbnN0IFdl
YkRPTVRlc3RPYmomIG5ld1Rlc3RPYmpBdHRyKQogICAgIGltcGwoKS0+c2V0VGVzdE9iakF0dHIo
dG9XZWJDb3JlKG5ld1Rlc3RPYmpBdHRyKSk7CiB9CiAKK1dlYkRPTVN0cmluZyBXZWJET01UZXN0
T2JqOjphdHRyT25Qcm90bygpIGNvbnN0Cit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJl
dHVybiBXZWJET01TdHJpbmcoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXVEY6
OlN0cmluZyY+KGltcGwoKS0+YXR0ck9uUHJvdG8oKSk7Cit9CisKK3ZvaWQgV2ViRE9NVGVzdE9i
ajo6c2V0QXR0ck9uUHJvdG8oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdBdHRyT25Qcm90bykKK3sK
KyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgpLT5zZXRBdHRy
T25Qcm90byhuZXdBdHRyT25Qcm90byk7Cit9CisKIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9i
ajo6WE1MT2JqQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5o
CmluZGV4IGIxYTkyNzhiMmJlNGI2NDc2MGM1YjhiMWIzNjdhNjJhMzk0YTUwYWIuLjViODdkYWYx
NDI4Y2IzMTYwODNjMGVjYmRjZTc2ODU4YzBhM2JjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC04
Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0cmluZ0F0dHIoY29uc3QgV2ViRE9N
U3RyaW5nJik7CiAgICAgV2ViRE9NVGVzdE9iaiB0ZXN0T2JqQXR0cigpIGNvbnN0OwogICAgIHZv
aWQgc2V0VGVzdE9iakF0dHIoY29uc3QgV2ViRE9NVGVzdE9iaiYpOworICAgIFdlYkRPTVN0cmlu
ZyBhdHRyT25Qcm90bygpIGNvbnN0OworICAgIHZvaWQgc2V0QXR0ck9uUHJvdG8oY29uc3QgV2Vi
RE9NU3RyaW5nJik7CiAgICAgV2ViRE9NVGVzdE9iaiBYTUxPYmpBdHRyKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRYTUxPYmpBdHRyKGNvbnN0IFdlYkRPTVRlc3RPYmomKTsKICAgICBib29sIGNyZWF0
ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCBjOTI2MjU1
ODAzOGI3MDdiZTNmZTFlYTE3ZTVmNmViZDJiZWJlMzEyLi4zZDJjOTQ5YmZiMGU2M2RkNGZjMWU4
YTZiNTVjZmIzNWE5YWEwMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApA
QCAtNjEyLDYgKzYxMiwyNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF90ZXN0X29ial9hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqCiAgICAgaXRlbS0+c2V0
VGVzdE9iakF0dHIoY29udmVydGVkX3ZhbHVlKTsKIH0KIAorZ2NoYXIqCit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9hdHRyX29uX3Byb3RvKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdjaGFyKiByZXMgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmF0
dHJPblByb3RvKCkpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X2F0dHJfb25fcHJvdG8oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAg
IFdURjo6U3RyaW5nIGNvbnZlcnRlZF92YWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1
ZSk7CisgICAgaXRlbS0+c2V0QXR0ck9uUHJvdG8oY29udmVydGVkX3ZhbHVlKTsKK30KKwogV2Vi
S2l0RE9NVGVzdE9iaioKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3htbF9vYmpfYXR0cihXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQogewpAQCAtMTEzNiw2ICsxMTU3LDcgQEAgZW51bSB7CiAgICAg
UFJPUF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLAogICAg
IFBST1BfVEVTVF9PQkpfQVRUUiwKKyAgICBQUk9QX0FUVFJfT05fUFJPVE8sCiAgICAgUFJPUF9Y
TUxfT0JKX0FUVFIsCiAgICAgUFJPUF9DUkVBVEUsCiAgICAgUFJPUF9SRUZMRUNURURfU1RSSU5H
X0FUVFIsCkBAIC0xMjEyLDYgKzEyMzQsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb24KICAg
ICAgICAgY29yZVNlbGYtPnNldFN0cmluZ0F0dHIoV1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFs
dWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2Ug
UFJPUF9BVFRSX09OX1BST1RPOgorICAgIHsKKyAgICAgICAgY29yZVNlbGYtPnNldEF0dHJPblBy
b3RvKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFBST1BfQ1JFQVRFOgogICAgIHsKICAgICAg
ICAgY29yZVNlbGYtPnNldENyZWF0ZSgoZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpKTsKQEAg
LTEzODcsNiArMTQxNCwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYQogICAgICAgICBnX3Zh
bHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpOwogICAgICAgICBi
cmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX0FUVFJfT05fUFJPVE86CisgICAgeworICAgICAg
ICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxm
LT5hdHRyT25Qcm90bygpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFBST1Bf
WE1MX09CSl9BVFRSOgogICAgIHsKICAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IHB0
ciA9IGNvcmVTZWxmLT54bWxPYmpBdHRyKCk7CkBAIC0xNjIxLDYgKzE2NTMsMTMgQEAgR19NQVhV
SU5UNjQsIC8qIG1pbiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ET01fVEVTVF9PQkosIC8qIGdvYmplY3Qg
dHlwZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9QX0FUVFJfT05fUFJPVE8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJhdHRyLW9uLXByb3RvIiwgLyogbmFtZSAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidGVzdF9vYmpfYXR0ci1vbi1wcm90byIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWFkLXdyaXRlICBnY2hhciogVGVzdE9iai5hdHRyLW9uLXByb3RvIiwgLyogbG9uZ2VyIC0g
Y291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST1BfWE1MX09CSl9BVFRSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgieG1sLW9iai1hdHRyIiwgLyogbmFtZSAqLwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGVzdF9vYmpfeG1sLW9iai1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCBjNzY5NmRmNWE5N2RkN2M1NzYzYmMyMDZkNjc2
Y2NlMGFjOGQzNjhmLi5lZmQ4OWY3ZjdjNGIwNTJlY2MzNmU2YzFkN2E5NmMyYzcyZGU4Mzk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCkBAIC01NjgsNiArNTY4LDI3IEBAIFdFQktJ
VF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdGVzdF9vYmpfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgorICogd2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl9vbl9wcm90bzoKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgZ2NoYXIqCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX29uX3Byb3RvKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfb25fcHJvdG86Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQHZhbHVlOiBBICNnY2hhcgorICoKKyAq
IFJldHVybnM6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X2F0dHJfb25fcHJvdG8oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKKworLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF94bWxfb2JqX2F0dHI6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMmU1YzFiMjYz
ZDY2YTQ4OWI4NjZmM2M4NzUyZTZjYzJiZDJmYmFlNS4uYjllMjgxMWQ4YzBiMjA4Mzk0MzcxZDJm
NmU5NjAzMDhiODc3OTk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogICAgIHsgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwK
ICAgICB7ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialN0cmluZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidGVzdE9iakF0
dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialRlc3RPYmpBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialRl
c3RPYmpBdHRyLCBOb0ludHJpbnNpYyB9LAorICAgIHsgImF0dHJPblByb3RvIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpBdHRyT25Qcm90byksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpBdHRyT25Qcm90bywgTm9J
bnRyaW5zaWMgfSwKICAgICB7ICJYTUxPYmpBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpYTUxPYmpBdHRy
KSwgKGludHB0cl90KXNldEpTVGVzdE9ialhNTE9iakF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAg
eyAiY3JlYXRlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDcmVhdGUpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2Jq
Q3JlYXRlLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBEb250
RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0ciwgTm9JbnRyaW5zaWMgfSwKQEAgLTQzMCw2ICs0MzEsMTYgQEAgSlNW
YWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJh
c2UsIGNvbnN0IElkZW50aWZpZXIKIH0KIAogCitKU1ZhbHVlIGpzVGVzdE9iakF0dHJPblByb3Rv
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7
CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNP
YmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgaW1wbC0+YXR0ck9uUHJvdG8oKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworCiBKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChz
bG90QmFzZSkpOwpAQCAtODA3LDYgKzgxOCwxNCBAQCB2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdQog
fQogCiAKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0ck9uUHJvdG8oRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAg
aW1wbC0+c2V0QXR0ck9uUHJvdG8odXN0cmluZ1RvU3RyaW5nKHZhbHVlLmlzRW1wdHkoKSA/IFVT
dHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpKSk7Cit9CisKKwogdm9pZCBzZXRKU1Rlc3RP
YmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggZmE3MzEzOWM4YzNlOWQ1OTc4YmIyZGYz
MzJlZTAwYzUyYTMzMmUyNC4uMWRkZjUyMWQ3ODJkOTVhMDI4MTdlMTZlNDRmZTBkOWZmZWExODc2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaApAQCAtMjA4LDYgKzIwOCw4IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpTdHJp
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50CiB2
b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lk
IHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqQXR0ck9uUHJvdG8oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBz
ZXRKU1Rlc3RPYmpBdHRyT25Qcm90byhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRK
U1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA2
MmNlMzMyMzdmMGM2OTU0MmNmMDdjZWQ1NGMxYjVmYWY4YzcwNGVjLi43ZGE4MTc3OWM2ODQ1YzNk
ZDRlNjM0NzI2M2QwYTA1MTk1NjYwNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC03NCw2ICs3NCw4IEBA
IGVudW0gewogLSAodm9pZClzZXRTdHJpbmdBdHRyOihOU1N0cmluZyAqKW5ld1N0cmluZ0F0dHI7
CiAtIChET01UZXN0T2JqICopdGVzdE9iakF0dHI7CiAtICh2b2lkKXNldFRlc3RPYmpBdHRyOihE
T01UZXN0T2JqICopbmV3VGVzdE9iakF0dHI7CistIChOU1N0cmluZyAqKWF0dHJPblByb3RvOwor
LSAodm9pZClzZXRBdHRyT25Qcm90bzooTlNTdHJpbmcgKiluZXdBdHRyT25Qcm90bzsKIC0gKERP
TVRlc3RPYmogKilYTUxPYmpBdHRyOwogLSAodm9pZClzZXRYTUxPYmpBdHRyOihET01UZXN0T2Jq
ICopbmV3WE1MT2JqQXR0cjsKIC0gKEJPT0wpY3JlYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggYjJk
Y2E2MzI1ZDJhZjRlYmZlYmEwOGJjMzg5ZjEyZGY3MDZlNWNlZi4uNDFlZWRhMmJlMDk5MTMwMjhj
ZDg3ZGQ0ZWE2NGM1MjBkMmVlZDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC0xODYsNiArMTg2LDE4
IEBACiAgICAgSU1QTC0+c2V0VGVzdE9iakF0dHIoY29yZShuZXdUZXN0T2JqQXR0cikpOwogfQog
CistIChOU1N0cmluZyAqKWF0dHJPblByb3RvCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5hdHRyT25Qcm90bygpOworfQorCist
ICh2b2lkKXNldEF0dHJPblByb3RvOihOU1N0cmluZyAqKW5ld0F0dHJPblByb3RvCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJP
blByb3RvKG5ld0F0dHJPblByb3RvKTsKK30KKwogLSAoRE9NVGVzdE9iaiAqKVhNTE9iakF0dHIK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNjU1ZGZl
MTBkN2ZhNWU4NWY0YzMyYWMzNjAyMDZiMzc2NGE3NDlmYS4uYzhlMjczZjIwYzE1MTQwMDU3NWIx
NmFiNWJmMWQ0NGM3MzgxNjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNDQsNiArNDQsNyBAQCBtb2R1bGUgdGVzdCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgdW5zaWduZWRMb25nTG9u
Z0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgICAgc3RyaW5n
QXR0cjsKICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAgICAgICB0ZXN0T2Jq
QXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIERPTVN0cmluZyAgICBhdHRyT25Q
cm90bzsKIAogICAgICAgICBKUywgVjgKICAgICAgICAgLy8gV0tfdWNmaXJzdCwgV0tfbGNmaXJz
dCBleGNlcHRpb25hbCBjYXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggMGFiZDFkY2ExNThkNDQxM2QwODdj
MGM1ZDY2YWQyNzYxYTNiZjBiZC4uZmJiMjUzMDdlYzU2NjY4YWE1ZDY3OTc5YzQ4YjA0MWY5ZjY4
MWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTIwOCw2ICsyMDgsMjggQEAgc3RhdGljIHZvaWQgdGVzdE9i
akF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6
OlZhbHUKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXR0
ck9uUHJvdG9BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0ck9u
UHJvdG8uX2dldCIpOworICAgIGlmICghVjhUZXN0T2JqOjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0
YW5jZShpbmZvLlRoaXMoKSkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJBIERPTSBhdHRy
aWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QiLCBWOFByb3h5
OjpUeXBlRXJyb3IpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5m
by5UaGlzKCkpOworICAgIHJldHVybiB2OFN0cmluZyhpbXAtPmF0dHJPblByb3RvKCkpOworfQor
CitzdGF0aWMgdm9pZCBhdHRyT25Qcm90b0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0ck9uUHJvdG8uX3NldCIp
OworICAgIGlmICghVjhUZXN0T2JqOjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRo
aXMoKSkpIHsKKyAgICAgICAgdGhyb3dFcnJvcigiQSBET00gYXR0cmlidXRlIHNldHRlciBpcyBj
YWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0IiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uVGhpcygpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JM
T0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIGltcC0+c2V0QXR0ck9uUHJv
dG8odik7CisgICAgcmV0dXJuOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFhN
TE9iakF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouWE1MT2Jq
QXR0ci5fZ2V0Iik7CkBAIC0xMzg1LDYgKzE0MDcsOCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7InN0cmluZ0F0dHIiLCBUZXN0T2JqSW50
ZXJuYWw6OnN0cmluZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnN0cmluZ0F0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RPYmpBdHRy
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJ0ZXN0T2JqQXR0ciIsIFRl
c3RPYmpJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnRl
c3RPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdh
dHRyT25Qcm90bycgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOE9uUHJvdG8nKQorICAg
IHsiYXR0ck9uUHJvdG8iLCBUZXN0T2JqSW50ZXJuYWw6OmF0dHJPblByb3RvQXR0ckdldHRlciwg
VGVzdE9iakludGVybmFsOjphdHRyT25Qcm90b0F0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDEgLyogb24gcHJvdG8gKi99LAogICAg
IC8vIEF0dHJpYnV0ZSAnWE1MT2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcn
KQogICAgIHsiWE1MT2JqQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJHZXR0
ZXIsIFRlc3RPYmpJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAogICAgIC8vIEF0dHJpYnV0ZSAnY3JlYXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
JycpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggODFmYjI2MDM1MWU0MzUyZjEwNWY0NzRjMmQ1
YzMzODNhOWJhOWRmYy4uM2RkNjlkZjdmNjc3YWU3NzYwZjUyNzg5ZDUwNDY1ZmQ2MTFmMTExOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMjcsNyArMjcsNyBAQCBtb2R1bGUgY29yZSB7CiAK
ICAgICAgICAgLy8gRE9NIExldmVsIDEgQ29yZQogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgdGFnTmFtZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0g
RE9NU3RyaW5nIHRhZ05hbWU7CiAKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0g
RE9NU3RyaW5nIGdldEF0dHJpYnV0ZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IERPTVN0cmluZyBuYW1lKTsKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBzZXRBdHRyaWJ1
dGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSwKQEAg
LTYxLDIzICs2MSwyMyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIGJv
b2xlYW4gaGFzQXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogCiAgICAgICAg
IC8vIENvbW1vbiBleHRlbnNpb25zCiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
b2Zmc2V0TGVmdDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgb2Zmc2V0VG9wOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBvZmZzZXRXaWR0aDsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgb2Zmc2V0SGVpZ2h0OwotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRWxlbWVudCBvZmZzZXRQYXJlbnQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGNsaWVudExlZnQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWVudFRv
cDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpZW50V2lkdGg7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNsaWVudEhlaWdodDsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGxvbmcgc2Nyb2xsTGVmdDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxv
bmcgc2Nyb2xsVG9wOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxXaWR0
aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc2Nyb2xsSGVpZ2h0OworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBvZmZzZXRMZWZ0OworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBvZmZzZXRUb3A7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBsb25nIG9mZnNldFdpZHRoOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBvZmZzZXRIZWlnaHQ7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBFbGVtZW50IG9mZnNldFBhcmVudDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGxvbmcgY2xpZW50TGVmdDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGxvbmcgY2xpZW50VG9wOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBjbGllbnRXaWR0aDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGxvbmcgY2xpZW50SGVpZ2h0
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBzY3JvbGxMZWZ0
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBzY3JvbGxUb3A7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBsb25nIHNjcm9sbFdpZHRo
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gbG9uZyBzY3JvbGxIZWln
aHQ7CiAKICAgICAgICAgdm9pZCBmb2N1cygpOwogICAgICAgICB2b2lkIGJsdXIoKTsKQEAgLTk3
LDcgKzk3LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5h
bWUpOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZB
U0NSSVBUCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdNYXAgZGF0YXNldDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIERPTVN0cmluZ01hcCBkYXRh
c2V0OwogI2VuZGlmCiAKICAgICAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCkBA
IC0xMTEsMTEgKzExMSwxMSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBFbGVtZW50VHJhdmVyc2FsIEFQSQotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBmaXJzdEVsZW1lbnRDaGlsZDsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgbGFzdEVsZW1lbnRDaGlsZDsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQgcHJldmlvdXNFbGVtZW50U2libGluZzsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgbmV4dEVsZW1lbnRTaWJsaW5nOwotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjaGlsZEVsZW1lbnRDb3VudDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIEVsZW1lbnQgZmlyc3RFbGVtZW50Q2hpbGQ7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBFbGVtZW50IGxhc3RFbGVt
ZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBFbGVtZW50
IHByZXZpb3VzRWxlbWVudFNpYmxpbmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhP
blByb3RvXSBFbGVtZW50IG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtWOE9uUHJvdG9dIHVuc2lnbmVkIGxvbmcgY2hpbGRFbGVtZW50Q291bnQ7CiAKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAg
ICAgICAgLy8gQ1NTT00gVmlldyBNb2R1bGUgQVBJCkBAIC0xMjUsNyArMTI1LDcgQEAgbW9kdWxl
IGNvcmUgewogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0Vf
T0JKRUNUSVZFX0MKICAgICAgICAgLy8gT2JqZWN0aXZlLUMgZXh0ZW5zaW9ucwotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVyVGV4dDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOE9uUHJvdG9dIERPTVN0cmluZyBpbm5lclRleHQ7CiAjZW5kaWYKIAogI2lm
IGRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVfRlVMTFNDUkVFTl9BUEkK
QEAgLTEzNSw3NSArMTM1LDc1IEBAIG1vZHVsZSBjb3JlIHsKIAogI2lmICFkZWZpbmVkKExBTkdV
QUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gRXZl
bnQgaGFuZGxlciBET00gYXR0cmlidXRlcwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uYWJvcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25ibHVyOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uY2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uY2xpY2s7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25j
b250ZXh0bWVudTsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmRibGNsaWNrOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
ZHJhZzsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdl
bmQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnZW50
ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVh
dmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnb3Zl
cjsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdzdGFy
dDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRyb3A7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKLSAgICAg
ICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvY3VzOwotICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwotICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKLSAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleXByZXNzOwotICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5dXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubW91c2Vkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3ZlOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubW91c2VvdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25tb3VzZW92ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25tb3VzZXVwOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9ubW91c2V3aGVlbDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbnNjcm9sbDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbnNlbGVjdDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbnN1Ym1pdDsKLQotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9uY2FucGxheTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmNhbnBsYXl0aHJvdWdoOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uZHVyYXRpb25jaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwotICAgICAgICAvLyBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRkYXRhOwotICAgICAgICAvLyBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7Ci0gICAg
ICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25wYXVzZTsKLSAgICAg
ICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnBsYXk7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25wbGF5aW5nOwotICAgICAg
ICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucHJvZ3Jlc3M7Ci0gICAg
ICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25yYXRlY2hhbmdlOwot
ICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVhZHlzdGF0
ZWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bnNlZWtlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bnNlZWtpbmc7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25zaG93OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
c3RhbGxlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bnN1c3BlbmQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b250aW1ldXBkYXRlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9udm9sdW1lY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ud2FpdGluZzsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
LCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmNoYW5nZTsKKyAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uY2xpY2s7CisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmNvbnRleHRt
ZW51OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25kYmxjbGljazsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uZHJhZzsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJv
dG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJhZ2VudGVyOworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7CisgICAg
ICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdv
dmVyOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25kcmFnc3RhcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmRyb3A7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CisgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CisgICAg
ICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRv
d247CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmtleXByZXNzOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25rZXl1cDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8s
IERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubW91c2Vkb3duOworICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7CisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3V0
OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25tb3VzZW92ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbm1vdXNldXA7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNjcm9sbDsKKyAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OworICAgICAg
ICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zdWJtaXQ7
CisKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uY2FucGxheTsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uY2FucGxheXRocm91Z2g7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBb
VjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOworICAg
ICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25l
bXB0aWVkOworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25lbmRlZDsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtW
OE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CisgICAg
ICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxv
YWRzdGFydDsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ucGF1c2U7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbnBsYXk7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblBy
b3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnBsYXlpbmc7CisgICAgICAgIC8vIGF0dHJp
YnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAg
ICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25y
YXRlY2hhbmdlOworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4
T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zZWVrZWQ7CisgICAgICAgIC8vIGF0
dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlZWtpbmc7Cisg
ICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bnNob3c7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbnN0YWxsZWQ7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbnN1c3BlbmQ7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhP
blByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnRpbWV1cGRhdGU7CisgICAgICAgIC8v
IGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnZvbHVtZWNo
YW5nZTsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9ud2FpdGluZzsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwotICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlY3V0OwotICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uY3V0OwotICAgICAgICBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlY29weTsKLSAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmNvcHk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwYXN0ZTsKLSAgICAgICAgYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnBhc3RlOwotICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0
ZW5lciBvbnRvdWNoc3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sQ29uZGl0aW9u
YWw9VE9VQ0hfRVZFTlRTLEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaG1v
dmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRT
LEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKLSAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGlt
ZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRF
bnVtLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1
bGxzY3JlZW5jaGFuZ2U7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmJlZm9yZWN1dDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8s
IERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uY3V0OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Q
cm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjb3B5OworICAgICAgICBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jb3B5OworICAgICAg
ICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVw
YXN0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ucGFzdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbnJlc2V0OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
LCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0OworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgRW5hYmxl
ZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoc3RhcnQ7CisgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvLCBEb250RW51bSwgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLCBFbmFibGVk
QXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2htb3ZlOworICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgRW5hYmxlZEF0
UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoZW5kOworICAgICAgICBhdHRyaWJ1dGUgW1Y4
T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgRW5hYmxlZEF0UnVu
dGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOworICAgICAgICBhdHRyaWJ1dGUgW1Y4
T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBFdmVudExpc3Rl
bmVyIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZTsKICNlbmRpZgogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmlkbAppbmRleCA4YmIzMzQ5YzAzNTkxMDEyYjgyNWVjNGI2MzNmMjdlZTFkNWRjNjNiLi44MTll
ZmM2NjYxMmU4MGQ1YjA5OGU0MjY2ODIyODgwYjM0MzFhMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBA
IC01MSwyMSArNTEsMjEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCAgICAgIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgICAgICAgICA9IDExOwogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PVEFUSU9OX05PREUgICAgICAgICAgICAgICAgICA9
IDEyOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsXSBET01TdHJpbmcgICAgICAgIG5vZGVOYW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAg
IG5vZGVOYW1lOwogCiAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgc3BlYyBzYXlzIHRo
aXMgY2FuIGFsc28gcmFpc2Ugb24gcmV0cmlldmFsLgotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICAgbm9kZVZhbHVlCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgICAgICAgIG5vZGVWYWx1ZQogICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCAgIG5vZGVUeXBlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAg
ICAgICAgICAgICBwYXJlbnROb2RlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxp
c3QgICAgICAgICBjaGlsZE5vZGVzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAg
ICAgICAgICAgICBmaXJzdENoaWxkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAg
ICAgICAgICAgICBsYXN0Q2hpbGQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGUgICAgICAgICAgICAgbmV4dFNpYmxpbmc7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
YW1lZE5vZGVNYXAgICAgIGF0dHJpYnV0ZXM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
b2N1bWVudCAgICAgICAgIG93bmVyRG9jdW1lbnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhPblByb3RvXSB1bnNpZ25lZCBzaG9ydCAgIG5vZGVUeXBlOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZSAgICAgICAgICAgICBwYXJlbnROb2RlOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZUxpc3QgICAgICAgICBjaGls
ZE5vZGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZSAgICAg
ICAgICAgICBmaXJzdENoaWxkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90
b10gTm9kZSAgICAgICAgICAgICBsYXN0Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBOb2RlICAgICAgICAgICAgIHByZXZpb3VzU2libGluZzsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIE5vZGUgICAgICAgICAgICAgbmV4dFNpYmxp
bmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBOYW1lZE5vZGVNYXAg
ICAgIGF0dHJpYnV0ZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBE
b2N1bWVudCAgICAgICAgIG93bmVyRG9jdW1lbnQ7CiAKICAgICAgICAgW09sZFN0eWxlT2JqQywg
Q3VzdG9tXSBOb2RlIGluc2VydEJlZm9yZShpbiBbUmV0dXJuXSBOb2RlIG5ld0NoaWxkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGUgcmVm
Q2hpbGQpCkBAIC04NywxOSArODcsMTkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbT2xkU3R5
bGVPYmpDXSBib29sZWFuIGlzU3VwcG9ydGVkKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gRE9NU3RyaW5nIGZlYXR1cmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHZlcnNpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5hbWVz
cGFjZVVSSTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1Rv
PU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIHByZWZpeAor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29udmVydE51bGxTdHJpbmdU
bz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5hbWVzcGFjZVVSSTsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgcHJlZml4CiAgICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIGxvY2FsTmFt
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3Ry
aW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICBsb2NhbE5hbWU7CiAKICAgICAgICAgYm9vbGVh
biAgICAgICAgICAgIGhhc0F0dHJpYnV0ZXMoKTsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCAzOgogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgYmFzZVVSSTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5n
ICAgICAgIGJhc2VVUkk7CiAKICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBzcGVjIHNh
eXMgdGhpcyBjYW4gYWxzbyByYWlzZSBvbiByZXRyaWV2YWwuCi0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgICAgICAgdGV4dENvbnRlbnQKICAgICAgICAgICAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBib29sZWFuICAgICAgICAg
ICAgaXNTYW1lTm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgb3Ro
ZXIpOwpAQCAtMTMxLDExICsxMzEsMTEgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmIC8qIDAgKi8K
IAogICAgICAgICAvLyBJRSBleHRlbnNpb25zCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBF
bGVtZW50ICAgICAgICAgIHBhcmVudEVsZW1lbnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBFbGVtZW50ICAgICAgICAgIHBhcmVudEVsZW1lbnQ7CiAKICNpZiBkZWZp
bmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAg
ICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb25zCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgIGlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4T25Qcm90b10gYm9vbGVhbiAgICAgICAgICBpc0NvbnRlbnRFZGl0YWJsZTsKICNl
bmRpZiAvKiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAqLwogCiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuaWRsCmluZGV4IDkwZmI4NGY4ZjVkZWI5YzhkMmQ2Y2ZiMjQ5YTQ0NzA2NmI5Nzg0Y2Eu
LmY2OTRiZDAxNzlmODNlMWE4YzAwZDA3ZmZmYTRkNmNjYmUzNGM0NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUgaHRtbCB7
CiAKICAgICBpbnRlcmZhY2UgSFRNTERpdkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90bywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggNzI1Nzc1NWFlNmQzM2Q0NGI5NmY3OTc0N2Qy
NWE1OTRhOTVhMjhkYi4uZDg4ODg4ZDhlMDljZWUxZWRlY2VmNTkxZTYyNzk4ZTY3MTI1N2U5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKQEAgLTI2LDI3ICsyNiwyNyBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgXSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgewogICAgICAgICAgICAgICAg
ICAvLyBpaHQuY29tIHJlbGllcyBvbiBpZCByZXR1cm5pbmcgdGhlIGVtcHR5IHN0cmluZyB3aGVu
IG5vIGlkIGlzIHByZXNlbnQuIAogICAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2VycyBk
byB0aGlzIGFzIHdlbGwuIFNvIHdlIGRvbid0IGNvbnZlcnQgbnVsbCB0byBKUyBudWxsLgotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBpZDsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGl0bGU7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGxhbmc7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGRpcjsKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0PWNsYXNzXSBET01TdHJpbmcgY2xhc3NOYW1lOwotICAgICAgICAg
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IGNsYXNzTGlzdDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxlY3RdIERPTVN0cmluZyBpZDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxlY3RdIERPTVN0cmlu
ZyB0aXRsZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxlY3Rd
IERPTVN0cmluZyBsYW5nOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywg
UmVmbGVjdF0gRE9NU3RyaW5nIGRpcjsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9u
UHJvdG8sIFJlZmxlY3Q9Y2xhc3NdIERPTVN0cmluZyBjbGFzc05hbWU7CisgICAgICAgICAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBET01Ub2tlbkxpc3QgY2xhc3NMaXN0
OwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICB0YWJJbmRl
eDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgIGRyYWdnYWJs
ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2Via2l0
ZHJvcHpvbmU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBo
aWRkZW47Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFj
Y2Vzc0tleTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGxvbmcgICAg
ICAgICAgICAgIHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
b10gYm9vbGVhbiAgICAgICAgICAgZHJhZ2dhYmxlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgUmVmbGVjdF0gRE9NU3RyaW5nIHdlYmtpdGRyb3B6b25lOworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgUmVmbGVjdF0gYm9vbGVhbiBoaWRkZW47
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBSZWZsZWN0XSBET01TdHJp
bmcgYWNjZXNzS2V5OwogCi0gICAgICAgIC8vIEV4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAor
ICAgICAgICAgICAgICAgICAvLyBFeHRlbnNpb25zCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRN
TAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgaW5uZXJUZXh0CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVyVGV4dAogICAgICAgICAgICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb3V0ZXJIVE1MCisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIG91dGVySFRNTAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG91dGVy
VGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIEVsZW1lbnQgaW5zZXJ0QWRqYWNlbnRFbGVtZW50KGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHdoZXJlLApAQCAtNTksMjMgKzU5LDIzIEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdGV4dCkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiBjaGlsZHJlbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIEhU
TUxDb2xsZWN0aW9uIGNoaWxkcmVuOwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50RWRpdGFibGUKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgY29udGVudEVkaXRhYmxlCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlz
Q29udGVudEVkaXRhYmxlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10g
Ym9vbGVhbiBpc0NvbnRlbnRFZGl0YWJsZTsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiBzcGVsbGNoZWNrOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
b10gYm9vbGVhbiBzcGVsbGNoZWNrOwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBib29sZWFuIGl0ZW1TY29wZTsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9r
ZW5MaXN0IGl0ZW1UeXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PU1JQ1JPREFUQSwgUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaXRlbUlkOworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0
XSBib29sZWFuIGl0ZW1TY29wZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJv
dG8sIENvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVR5cGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBDb25kaXRpb25hbD1NSUNS
T0RBVEEsIFJlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGl0ZW1JZDsKIAotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3Qg
aXRlbVJlZjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RB
VEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2Vu
TGlzdCBpdGVtUmVmOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKIAogI2lm
IGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uIHByb3BlcnRpZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblBy
b3RvLCBDb25kaXRpb25hbD1NSUNST0RBVEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBwcm9w
ZXJ0aWVzOwogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFH
RV9DUFAKQEAgLTg2LDcgKzg2LDcgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAKICNpZiBkZWZp
bmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlRGlzcGxheVN0cmluZzsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIERPTVN0cmluZyB0aXRsZURpc3BsYXlT
dHJpbmc7CiAjZW5kaWYKICAgICB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTMyM2M2YTRmNmM5OThhODNjNmZiOWVk
MTYxZDUzNWQwZTU5N2Q3YS4uY2E0MTBmYmVlZGY2Mjc3NWQzMzk1NzMyNTBkNzhmODA5OWE4MWE2
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTAzICBLZW50YXJvIEhhcmEgIDxoYXJh
a2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbbWV0YV1bVjhdIERPTSBhdHRyaWJ1dGVzIHNo
b3VsZCBiZSBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNoYWluCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI5NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsdGhvdWdoIGN1cnJlbnRseSBET00gYXR0cmli
dXRlcyBhcmUgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVjdCwKKyAgICAgICAgdGhlIHNwZWMg
c2F5cyB0aGF0IERPTSBhdHRyaWJ1dGVzIHdpdGhvdXQgdGhlIFtVbmZvcmdlYWJsZV0gSURMIHNo
b3VsZCBiZSBkZWZpbmVkCisgICAgICAgIG9uIGEgcHJvdG90eXBlIGNoYWluOiBodHRwOi8vZGV2
LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJJREwvI2VzLWF0dHJpYnV0ZXMKKworICAgICAgICBUaGlz
IHBhdGNoIG1vdmVzIGFsbCBWOCBET00gYXR0cmlidXRlcyBpbiBIVE1MRGl2RWxlbWVudC5pZGws
IEhUTUxFbGVtZW50LmlkbCwKKyAgICAgICAgRWxlbWVudC5pZGwgYW5kIE5vZGUuaWRsIChleGNl
cHQgZm9yIGF0dHJpYnV0ZXMgdGhhdCBoYXZlIGN1c3RvbSBnZXR0ZXJzIG9yCisgICAgICAgIGN1
c3RvbSBzZXR0ZXJzKSwgZnJvbSBhIHBsYXRmb3JtIGluc3RhbmNlIHRvIGEgcHJvdG90eXBlIGNo
YWluLgorCisgICAgICAgIGludGVyZmFjZV9hdHRyaWJ1dGVzLmh0bWwgYW5kIGludGVyZmFjZV9w
cm9wZXJ0aWVzLmh0bWwgY2hlY2tzIGlmIERPTSBhdHRyaWJ1dGVzCisgICAgICAgIGFyZSBkZWZp
bmVkIG5vdCBvbiBhIHBsYXRmb3JtIG9iamVjdCBidXQgb24gYSBwcm90b3R5cGUgY2hhaW4sIGFj
Y29yZGluZyB0byB0aGUgc3BlYy4KKworICAgICAgICAqIGZhc3QvanMvaW50ZXJmYWNlX2F0dHJp
YnV0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9pbnRlcmZhY2VfcHJvcGVydGll
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9kb20v
cHJvdG90eXBlLWNoYWluLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0aGUgdGVzdCByZXN1bHQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvanMv
aW50ZXJmYWNlX3Byb3BlcnRpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wMS0wMyAg
QWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBn
ZXRDb21wdXRlZFN0eWxlIGZvciBvdXRsaW5lIGlzIG5vdCBpbXBsZW1lbnRlZC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJpYnV0ZXMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJpYnV0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDM1
ZGI3MTU2YjVlMTg4NDBiZGI2NDc5MjBhYzQ4NDQ3NGM4NWExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEs
NzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGNoZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb24gYSBET00gaW50ZXJmYWNl
IGFyZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuIik7CisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKworZGVidWcoJ1xuLS0tIENoZWNrcyBhIHByb3RvdHlwZSBjaGFp
bicpOworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18gPT09IEhUTUxEaXZFbGVtZW50LnByb3RvdHlw
ZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxF
bGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3By
b3RvX18uX19wcm90b19fID09PSBFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRC
ZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5w
cm90b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1ZygnXG4tLS0gQ2FsbHMgaGFzT3duUHJvcGVydHko
KScpOworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFs
c2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5
cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNl
Jyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blBy
b3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHko
ImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgorCitkZWJ1
ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBnZXR0ZXIgZnJvbSBhIHBsYXRmb3JtIG9iamVj
dCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICcnKTsKK3Nob3VsZFRocm93
KCdkaXYuX19wcm90b19fLmxhbmcnKTsKK3Nob3VsZFRocm93KCdkaXYuX19wcm90b19fLl9fcHJv
dG9fXy5sYW5nJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19f
LmxhbmcnLCAndW5kZWZpbmVkJyk7CisKK2RlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmlidXRl
IHNldHRlciBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0Jyk7CitkZWJ1ZygnU2V0cyAiZm9vMSIgb24g
ZGl2Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5sYW5nID0gImZvbzEiJywgJ2ZvbzEn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcnLCAnZm9vMScpOworc2hvdWxkVGhy
b3coJ2Rpdi5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkVGhyb3coJ2Rpdi5fX3Byb3RvX18uX19w
cm90b19fLmxhbmcnKTsKK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3Rv
X18ubGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIFNldHMgImZvbzIiIG9uIEhU
TUxEaXZFbGVtZW50LnByb3RvdHlwZScpOworc2hvdWxkVGhyb3coJ2Rpdi5fX3Byb3RvX18ubGFu
ZyA9ICJmb28yIicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICdmb28xJyk7
CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5sYW5nJyk7CitzaG91bGRUaHJvdygnZGl2Ll9f
cHJvdG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90
b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCitkZWJ1ZygnXG4tLS0gU2V0cyAi
Zm9vMyIgb24gSFRNTEVsZW1lbnQucHJvdG90eXBlJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJv
dG9fXy5fX3Byb3RvX18ubGFuZyA9ICJmb28zIicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdk
aXYubGFuZycsICdmb28xJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5sYW5nJyk7Citz
aG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkQmUoJ2Rp
di5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCit2
YXIgdXNlck9iamVjdCA9IG5ldyBPYmplY3QoKTsKK3VzZXJPYmplY3QuX19wcm90b19fID0gSFRN
TERpdkVsZW1lbnQucHJvdG90eXBlOworCitkZWJ1ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0
ZSBnZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QnKTsKK3Nob3VsZFRocm93KCd1c2Vy
T2JqZWN0LmxhbmcnKTsKK3Nob3VsZFRocm93KCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5sYW5nJyk7
CitzaG91bGRUaHJvdygndXNlck9iamVjdC5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnKTsKK3No
b3VsZEJlKCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAn
dW5kZWZpbmVkJyk7CisKK2RlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmlidXRlIHNldHRlciBm
cm9tIGEgbm9uLXBsYXRmb3JtIG9iamVjdCcpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QubGFu
ZyA9ICJmb280IicpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QuX19wcm90b19fLmxhbmcnKTsK
K3Nob3VsZFRocm93KCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hv
dWxkQmUoJ3VzZXJPYmplY3QuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1
bmRlZmluZWQnKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2lu
dGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2ludGVyZmFjZV9w
cm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVjYjY0NWY0NDVjNGM0MzMwM2JhZGExYjc5Y2E1
MmU4MTYyZTcxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJm
YWNlX3Byb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY29uc3RhbnRzLCBhdHRy
aWJ1dGVzIGFuZCBvcGVyYXRpb25zIG9uIGEgRE9NIGludGVyZmFjZSBhcmUgY29ycmVjdGx5IGlt
cGxlbWVudGVkLiIpOworCit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisKK2RlYnVnKCdcbi0tLSBDb25zdGFudHMgc2hvdWxkIGJlIGRlZmluZWQgYm90aCBvbiB0aGUg
aW50ZXJmYWNlIG9iamVjdCBhbmQgdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LicpOwor
c2hvdWxkQmUoJ05vZGUuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ3RydWUnKTsg
Ly8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdOb2RlLnByb3RvdHlwZS5oYXNPd25Qcm9w
ZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdC4KK3Nob3VsZEJlKCdkaXYuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ2Zh
bHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093
blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNP
d25Qcm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9u
ZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUi
KScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rp
di5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IE5vZGUucHJvdG90
eXBlJywgJ3RydWUnKTsKKworZGVidWcoJ1xuLS0tIEF0dHJpYnV0ZXMgd2l0aG91dCB0aGUgW1Vu
Zm9yZ2VhYmxlXSBJREwgc2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0LicpOworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5n
IiknLCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdIVE1MRWxlbWVu
dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIp
JywgJ2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19f
Lmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3du
UHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
Lgorc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fID09PSBIVE1MRWxlbWVudC5wcm90
b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1ZygnXG4tLS0gQXR0cmlidXRlcyB3aXRoIHRoZSBbVW5m
b3JnZWFibGVdIElETCBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgcGxhdGZvcm0gb2JqZWN0Licp
Oworc2hvdWxkQmUoJ3dpbmRvdy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoInRvcCIpJywgJ2Zh
bHNlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ3dpbmRvdy5o
YXNPd25Qcm9wZXJ0eSgidG9wIiknLCAndHJ1ZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCisKK2Rl
YnVnKCdcbi0tLSBPcGVyYXRpb25zIHNob3VsZCBiZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdC4nKTsKK3Nob3VsZEJlKCdFbGVtZW50Lmhhc093blByb3BlcnR5KCJn
ZXRBdHRyaWJ1dGUiKScsICdmYWxzZScpOyAvLyBJbnRlcmZhY2Ugb2JqZWN0Lgorc2hvdWxkQmUo
J0VsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICd0cnVl
Jyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Q
cm9wZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAnZmFsc2UnKTsgLy8gUGxhdGZvcm0gb2JqZWN0Lgor
c2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywg
J2ZhbHNlJyk7IC8vIFdyb25nIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUo
J2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScs
ICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJl
KCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0
dHJpYnV0ZSIpJywgJ3RydWUnKTsgLy8gSW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91
bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBFbGVtZW50LnByb3Rv
dHlwZScsICd0cnVlJyk7CisKK2RlYnVnKCdcbi0tLSBTdGF0aWMgb3BlcmF0aW9ucyBzaG91bGQg
YmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuJyk7CisvLyBBcmUg
dGhlcmUgYW55IHN0YXRpYyBvcGVyYXRpb25zPyBJIGNvdWxkbid0IGZpbmQgaXQuCisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9w
cm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKaW5kZXggMmRiMjAx
MTE3ZDcyZGIwNGIzMWViYjA3ZjUyYmIxNTU3ZjU5MGUzYS4uMDQ0ZGZjMmE1OWVjNGU5ODIzY2E1
NWE5Y2RmZTQwNzZmNWFhN2VjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1l
eHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRoaXMgcGFnZSBwcmludHMgb3V0IHRoZSBwcm90
b3R5cGUgY2hhaW5zIG9mIHNlbGVjdCBET00gb2JqZWN0cy4gT2xkZXIgdmVyc2lvbnMKIAogTk9U
RTogVGhpcyB0ZXN0IHdpbGwgc3RhcnQgZmFpbGluZyBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQg
b2YgYSByZWxhdGVkIHByb3RvdHlwZSBjaGFpbiBpbiBXZWJDb3JlLiBUaGF0IGRvZXMgbm90IG5l
Y2Vzc2FyaWx5IG1lYW4gdGhhdCB5b3UgaGF2ZSBkb25lIHNvbWV0aGluZyB3cm9uZzsgeW91IG1h
eSBqdXN0IG5lZWQgdG8gY2hlY2sgaW4gbmV3IHJlc3VsdHMuCiAKLS0tLS0tIFtvYmplY3QgSFRN
TERvY3VtZW50XSAoNCBwcm90b3R5cGVzKSAtLS0tLQorLS0tLS0gW29iamVjdCBIVE1MRG9jdW1l
bnRdICg1IHByb3RvdHlwZXMpIC0tLS0tCiAKIFtvYmplY3QgT2JqZWN0XQogCkBAIC0xMiw3ICsx
MiwxMSBAQCBOT1RFOiBUaGlzIHRlc3Qgd2lsbCBzdGFydCBmYWlsaW5nIGlmIHlvdSBjaGFuZ2Ug
dGhlIGxheW91dCBvZiBhIHJlbGF0ZWQgcHJvdG90eQogCiBbb2JqZWN0IE9iamVjdF0KIAotLS0t
LS0gW29iamVjdCBIVE1MRGl2RWxlbWVudF0gKDUgcHJvdG90eXBlcykgLS0tLS0KK1tvYmplY3Qg
T2JqZWN0XQorCistLS0tLSBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XSAoNiBwcm90b3R5cGVzKSAt
LS0tLQorCitbb2JqZWN0IE9iamVjdF0KIAogW29iamVjdCBPYmplY3RdCiAKQEAgLTI0LDcgKzI4
LDkgQEAgTk9URTogVGhpcyB0ZXN0IHdpbGwgc3RhcnQgZmFpbGluZyBpZiB5b3UgY2hhbmdlIHRo
ZSBsYXlvdXQgb2YgYSByZWxhdGVkIHByb3RvdHkKIAogW29iamVjdCBPYmplY3RdCiAKLS0tLS0t
IFtvYmplY3QgSFRNTEZvcm1FbGVtZW50XSAoNSBwcm90b3R5cGVzKSAtLS0tLQorLS0tLS0gW29i
amVjdCBIVE1MRm9ybUVsZW1lbnRdICg2IHByb3RvdHlwZXMpIC0tLS0tCisKK1tvYmplY3QgT2Jq
ZWN0XQogCiBbb2JqZWN0IE9iamVjdF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2pzL2ludGVyZmFjZV9hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmUzNzQzMjUwY2JmN2E5Zjk3N2Q4MjY4MTBiZmMz
Y2FhZTA4NmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
MiBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb24g
YSBET00gaW50ZXJmYWNlIGFyZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisKKy0tLSBDaGVja3MgYSBwcm90b3R5cGUgY2hhaW4KK1BBU1Mg
ZGl2Ll9fcHJvdG9fXyA9PT0gSFRNTERpdkVsZW1lbnQucHJvdG90eXBlIGlzIHRydWUKK1BBU1Mg
ZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVtZW50LnByb3RvdHlwZSBpcyB0cnVl
CitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gRWxlbWVudC5wcm90
b3R5cGUgaXMgdHJ1ZQorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fID09PSBOb2RlLnByb3RvdHlwZSBpcyB0cnVlCisKKy0tLSBDYWxscyBoYXNPd25Qcm9w
ZXJ0eSgpCitQQVNTIEhUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgZmFsc2UK
K1BBU1MgSFRNTEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgdHJ1
ZQorUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoImxhbmciKSBpcyBmYWxzZQorUEFTUyBkaXYuX19w
cm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgZmFsc2UKK1BBU1MgZGl2Ll9fcHJvdG9f
Xy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKSBpcyB0cnVlCisKKy0tLSBDYWxscyB0
aGUgYXR0cmlidXRlIGdldHRlciBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0CitQQVNTIGRpdi5sYW5n
IGlzICIiCitQQVNTIGRpdi5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmpl
Y3QuCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLmxhbmcgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQSBET00gYXR0cmlidXRlIGdldHRlciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZv
cm0gb2JqZWN0LgorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZyBp
cyB1bmRlZmluZWQKKworLS0tIENhbGxzIHRoZSBhdHRyaWJ1dGUgc2V0dGVyIGZyb20gYSBwbGF0
Zm9ybSBvYmplY3QKK1NldHMgImZvbzEiIG9uIGRpdgorUEFTUyBkaXYubGFuZyA9ICJmb28xIiBp
cyAiZm9vMSIKK1BBU1MgZGl2LmxhbmcgaXMgImZvbzEiCitQQVNTIGRpdi5fX3Byb3RvX18ubGFu
ZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNh
bGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90
b19fLmxhbmcgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQSBET00gYXR0cmlidXRlIGdldHRl
ciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0LgorUEFTUyBkaXYuX19wcm90b19f
Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZyBpcyB1bmRlZmluZWQKKworLS0tIFNldHMgImZvbzIi
IG9uIEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZQorUEFTUyBkaXYuX19wcm90b19fLmxhbmcgPSAi
Zm9vMiIgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQSBET00gYXR0cmlidXRlIHNldHRlciBp
cyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0LgorUEFTUyBkaXYubGFuZyBpcyAiZm9v
MSIKK1BBU1MgZGl2Ll9fcHJvdG9fXy5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEg
RE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4K
K1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBv
YmplY3QuCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVu
ZGVmaW5lZAorCistLS0gU2V0cyAiZm9vMyIgb24gSFRNTEVsZW1lbnQucHJvdG90eXBlCitQQVNT
IGRpdi5fX3Byb3RvX18uX19wcm90b19fLmxhbmcgPSAiZm9vMyIgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQSBET00gYXR0cmlidXRlIHNldHRlciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZv
cm0gb2JqZWN0LgorUEFTUyBkaXYubGFuZyBpcyAiZm9vMSIKK1BBU1MgZGl2Ll9fcHJvdG9fXy5s
YW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMg
Y2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3By
b3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0
dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIGRpdi5fX3Byb3Rv
X18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVmaW5lZAorCistLS0gQ2FsbHMgdGhl
IGF0dHJpYnV0ZSBnZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QKK1BBU1MgdXNlck9i
amVjdC5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0
ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5f
X3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUg
Z2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIHVzZXJPYmpl
Y3QuX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEg
RE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4K
K1BBU1MgdXNlck9iamVjdC5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVu
ZGVmaW5lZAorCistLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBzZXR0ZXIgZnJvbSBhIG5vbi1wbGF0
Zm9ybSBvYmplY3QKK1BBU1MgdXNlck9iamVjdC5sYW5nID0gImZvbzQiIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBzZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBs
YXRmb3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5v
bi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIHVzZXJPYmplY3QuX19wcm90b19fLl9fcHJvdG9fXy5s
YW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMg
Y2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5fX3Byb3Rv
X18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvanMvaW50ZXJmYWNlX3Byb3BlcnRpZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2Vf
cHJvcGVydGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI5MzFlMDMwZDEwY2MxMGZlODc5
MzkzMWRiODhhNzBhMDU0MjQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvanMvaW50ZXJmYWNlX3Byb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNDIgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY29uc3RhbnRzLCBhdHRyaWJ1dGVz
IGFuZCBvcGVyYXRpb25zIG9uIGEgRE9NIGludGVyZmFjZSBhcmUgY29ycmVjdGx5IGltcGxlbWVu
dGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCistLS0gQ29uc3RhbnRzIHNo
b3VsZCBiZSBkZWZpbmVkIGJvdGggb24gdGhlIGludGVyZmFjZSBvYmplY3QgYW5kIHRoZSBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK1BBU1MgTm9kZS5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVO
VF9OT0RFIikgaXMgdHJ1ZQorUEFTUyBOb2RlLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiRUxF
TUVOVF9OT0RFIikgaXMgdHJ1ZQorUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9E
RSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoIkVMRU1FTlRf
Tk9ERSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3Bl
cnR5KCJFTEVNRU5UX05PREUiKSBpcyBmYWxzZQorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9f
Xy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpIGlzIGZhbHNlCitQQVNT
IGRpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVy
dHkoIkVMRU1FTlRfTk9ERSIpIGlzIHRydWUKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18u
X19wcm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90b3R5cGUgaXMgdHJ1ZQorCistLS0gQXR0
cmlidXRlcyB3aXRob3V0IHRoZSBbVW5mb3JnZWFibGVdIElETCBzaG91bGQgYmUgZGVmaW5lZCBv
biB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitQQVNTIEhUTUxFbGVtZW50Lmhhc093
blByb3BlcnR5KCJsYW5nIikgaXMgZmFsc2UKK1BBU1MgSFRNTEVsZW1lbnQucHJvdG90eXBlLmhh
c093blByb3BlcnR5KCJsYW5nIikgaXMgdHJ1ZQorUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoImxh
bmciKSBpcyBmYWxzZQorUEFTUyBkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIikg
aXMgZmFsc2UKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxh
bmciKSBpcyB0cnVlCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fID09PSBIVE1MRWxlbWVu
dC5wcm90b3R5cGUgaXMgdHJ1ZQorCistLS0gQXR0cmlidXRlcyB3aXRoIHRoZSBbVW5mb3JnZWFi
bGVdIElETCBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgcGxhdGZvcm0gb2JqZWN0LgorUEFTUyB3
aW5kb3cuX19wcm90b19fLmhhc093blByb3BlcnR5KCJ0b3AiKSBpcyBmYWxzZQorUEFTUyB3aW5k
b3cuaGFzT3duUHJvcGVydHkoInRvcCIpIGlzIHRydWUKKworLS0tIE9wZXJhdGlvbnMgc2hvdWxk
IGJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgorUEFTUyBFbGVt
ZW50Lmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKSBpcyBmYWxzZQorUEFTUyBFbGVtZW50
LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIikgaXMgdHJ1ZQorUEFTUyBk
aXYuaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3By
b3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpIGlzIGZhbHNlCitQQVNTIGRpdi5f
X3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKSBpcyBmYWxz
ZQorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHko
ImdldEF0dHJpYnV0ZSIpIGlzIHRydWUKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fID09PSBFbGVtZW50LnByb3RvdHlwZSBpcyB0cnVlCisKKy0tLSBTdGF0aWMgb3BlcmF0
aW9ucyBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>121399</attachid>
            <date>2012-01-05 22:20:24 -0800</date>
            <delta_ts>2012-01-05 22:20:24 -0800</delta_ts>
            <desc>DOM micro benchmark</desc>
            <filename>dom_microbenchmark.html</filename>
            <type>text/html</type>
            <size>5354</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPjwvaGVhZD4KPGJvZHk+CjxoMT5ET00gTWljcm8gQmVuY2htYXJrPC9oMT4K
PHA+UmVwZWF0IGNvdW50OiA8aW5wdXQgaWQ9InJlcGVhdCIgdHlwZT0idGV4dCIgdmFsdWU9IjEw
MDAwMDAiIC8+PGJyIC8+CjxpbnB1dCBpZD0icnVuIiB0eXBlPSJidXR0b24iIHZhbHVlPSJSdW4i
IC8+PC9wPgo8cHJlIGlkPSJyZXN1bHQiIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiNkZGZmZmYn
PjwvcHJlPgo8L2JvZHk+CjxzY3JpcHQ+CnZhciB0b3RhbFRpbWUgPSAwOwoKZnVuY3Rpb24gcnVu
QWxsQmVuY2htYXJrcyhyZXBlYXQpIHsKICAgIGxvZygnXG49PT09IEF0dHJpYnV0ZSBnZXR0ZXJz
IG9uIEhUTUxFbGVtZW50ID09PT1cbicpOwogICAgWyJpZCIsICJ0aXRsZSIsICJsYW5nIiwgImRp
ciIsICJjbGFzc05hbWUiLCAiY2xhc3NMaXN0IiwgInRhYkluZGV4IiwgImRyYWdnYWJsZSIsICJ3
ZWJraXRkcm9wem9uZSIsICJoaWRkZW4iLCAiYWNjZXNzS2V5IiwgImNoaWxkcmVuIiwgImlzQ29u
dGVudEVkaXRhYmxlIiwgInNwZWxsY2hlY2siLCAiaXRlbVNjb3BlIiwgIml0ZW1UeXBlIiwgIml0
ZW1JZCIsICJpdGVtUmVmIiwgIml0ZW1Qcm9wIiwgInByb3BlcnRpZXMiLCAidGl0bGVEaXNwbGF5
U3RyaW5nIl0uZm9yRWFjaChmdW5jdGlvbiAoYXR0cikgewogICAgICAgIHJ1bkJlbmNobWFyaygn
ZGl2LicgKyBhdHRyLCByZXBlYXQpOwogICAgfSk7CgogICAgbG9nKCdcbj09PT0gQXR0cmlidXRl
IHNldHRlcnMgb24gSFRNTEVsZW1lbnQgPT09PVxuJyk7CiAgICBbImlkIiwgInRpdGxlIiwgImxh
bmciLCAiZGlyIiwgImNsYXNzTmFtZSIsICJjbGFzc0xpc3QiLCAidGFiSW5kZXgiLCAiZHJhZ2dh
YmxlIiwgIndlYmtpdGRyb3B6b25lIiwgImhpZGRlbiIsICJhY2Nlc3NLZXkiLCAiY2hpbGRyZW4i
LCAiaXNDb250ZW50RWRpdGFibGUiLCAic3BlbGxjaGVjayIsICJpdGVtU2NvcGUiLCAiaXRlbVR5
cGUiLCAiaXRlbUlkIiwgIml0ZW1SZWYiLCAiaXRlbVByb3AiLCAicHJvcGVydGllcyIsICJ0aXRs
ZURpc3BsYXlTdHJpbmciXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyKSB7CiAgICAgICAgcnVuQmVu
Y2htYXJrKCdkaXYuJyArIGF0dHIgKyAnID0gdW5kZWZpbmVkJywgcmVwZWF0KTsKICAgIH0pOwoK
ICAgIGxvZygnXG49PT09IEF0dHJpYnV0ZSBnZXR0ZXJzIG9uIEVsZW1lbnQgPT09PVxuJyk7CiAg
ICBbInRhZ05hbWUiLCAic3R5bGUiLCAib2Zmc2V0TGVmdCIsICJvZmZzZXRUb3AiLCAib2Zmc2V0
V2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFBhcmVudCIsICJjbGllbnRMZWZ0IiwgImNs
aWVudFRvcCIsICJjbGllbnRXaWR0aCIsICJjbGllbnRIZWlnaHQiLCAic2Nyb2xsTGVmdCIsICJz
Y3JvbGxUb3AiLCAic2Nyb2xsV2lkdGgiLCAic2Nyb2xsSGVpZ2h0IiwgImRhdGFzZXQiLCAiZmly
c3RFbGVtZW50Q2hpbGQiLCAibGFzdEVsZW1lbnRDaGlsZCIsICJwcmV2aW91c0VsZW1lbnRTaWJs
aW5nIiwgIm5leHRFbGVtZW50U2libGluZyIsICJjaGlsZEVsZW1lbnRDb3VudCIsICJpbm5lclRl
eHQiLCAib25hYm9ydCIsICJvbmJsdXIiLCAib25jaGFuZ2UiLCAib25jbGljayIsICJvbmNvbnRl
eHRtZW51IiwgIm9uZGJsY2xpY2siLCAib25kcmFnIiwgIm9uZHJhZ2VuZCIsICJvbmRyYWdlbnRl
ciIsICJvbmRyYWdsZWF2ZSIsICJvbmRyYWdvdmVyIiwgIm9uZHJhZ3N0YXJ0IiwgIm9uZHJvcCIs
ICJvbmVycm9yIiwgIm9uZm9jdXMiLCAib25pbnB1dCIsICJvbmludmFsaWQiLCAib25rZXlkb3du
IiwgIm9ua2V5cHJlc3MiLCAib25rZXl1cCIsICJvbmxvYWQiLCAib25tb3VzZWRvd24iLCAib25t
b3VzZW1vdmUiLCAib25tb3VzZW91dCIsICJvbm1vdXNlb3ZlciIsICJvbm1vdXNldXAiLCAib25t
b3VzZXdoZWVsIiwgIm9uc2Nyb2xsIiwgIm9uc2VsZWN0IiwgIm9uc3VibWl0IiwgIm9uYmVmb3Jl
Y3V0IiwgIm9uY3V0IiwgIm9uYmVmb3JlY29weSIsICJvbmNvcHkiLCAib25iZWZvcmVwYXN0ZSIs
ICJvbnBhc3RlIiwgIm9ucmVzZXQiLCAib25zZWFyY2giLCAib25zZWxlY3RzdGFydCIsICJvbnRv
dWNoc3RhcnQiLCAib250b3VjaG1vdmUiLCAib250b3VjaGVuZCIsICJvbnRvdWNoY2FuY2VsIiwg
Im9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAg
ICAgICBydW5CZW5jaG1hcmsoJ2Rpdi4nICsgYXR0ciwgcmVwZWF0KTsKICAgIH0pOwoKICAgIGxv
ZygnXG49PT09IEF0dHJpYnV0ZSBzZXR0ZXJzIG9uIEVsZW1lbnQgPT09PVxuJyk7CiAgICBbInRh
Z05hbWUiLCAic3R5bGUiLCAib2Zmc2V0TGVmdCIsICJvZmZzZXRUb3AiLCAib2Zmc2V0V2lkdGgi
LCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFBhcmVudCIsICJjbGllbnRMZWZ0IiwgImNsaWVudFRv
cCIsICJjbGllbnRXaWR0aCIsICJjbGllbnRIZWlnaHQiLCAic2Nyb2xsTGVmdCIsICJzY3JvbGxU
b3AiLCAic2Nyb2xsV2lkdGgiLCAic2Nyb2xsSGVpZ2h0IiwgImRhdGFzZXQiLCAiZmlyc3RFbGVt
ZW50Q2hpbGQiLCAibGFzdEVsZW1lbnRDaGlsZCIsICJwcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwg
Im5leHRFbGVtZW50U2libGluZyIsICJjaGlsZEVsZW1lbnRDb3VudCIsICJpbm5lclRleHQiLCAi
b25hYm9ydCIsICJvbmJsdXIiLCAib25jaGFuZ2UiLCAib25jbGljayIsICJvbmNvbnRleHRtZW51
IiwgIm9uZGJsY2xpY2siLCAib25kcmFnIiwgIm9uZHJhZ2VuZCIsICJvbmRyYWdlbnRlciIsICJv
bmRyYWdsZWF2ZSIsICJvbmRyYWdvdmVyIiwgIm9uZHJhZ3N0YXJ0IiwgIm9uZHJvcCIsICJvbmVy
cm9yIiwgIm9uZm9jdXMiLCAib25pbnB1dCIsICJvbmludmFsaWQiLCAib25rZXlkb3duIiwgIm9u
a2V5cHJlc3MiLCAib25rZXl1cCIsICJvbmxvYWQiLCAib25tb3VzZWRvd24iLCAib25tb3VzZW1v
dmUiLCAib25tb3VzZW91dCIsICJvbm1vdXNlb3ZlciIsICJvbm1vdXNldXAiLCAib25tb3VzZXdo
ZWVsIiwgIm9uc2Nyb2xsIiwgIm9uc2VsZWN0IiwgIm9uc3VibWl0IiwgIm9uYmVmb3JlY3V0Iiwg
Im9uY3V0IiwgIm9uYmVmb3JlY29weSIsICJvbmNvcHkiLCAib25iZWZvcmVwYXN0ZSIsICJvbnBh
c3RlIiwgIm9ucmVzZXQiLCAib25zZWFyY2giLCAib25zZWxlY3RzdGFydCIsICJvbnRvdWNoc3Rh
cnQiLCAib250b3VjaG1vdmUiLCAib250b3VjaGVuZCIsICJvbnRvdWNoY2FuY2VsIiwgIm9ud2Vi
a2l0ZnVsbHNjcmVlbmNoYW5nZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAgICAgICBy
dW5CZW5jaG1hcmsoJ2Rpdi4nICsgYXR0ciArICcgPSB1bmRlZmluZWQnLCByZXBlYXQpOwogICAg
fSk7CgogICAgbG9nKCdcbj09PT0gQXR0cmlidXRlIGdldHRlcnMgb24gTm9kZSA9PT09XG4nKTsK
ICAgIFsibm9kZU5hbWUiLCAibm9kZVR5cGUiLCAicGFyZW50Tm9kZSIsICJjaGlsZE5vZGVzIiwg
ImZpcnN0Q2hpbGQiLCAibGFzdENoaWxkIiwgInByZXZpb3VzU2libGluZyIsICJuZXh0U2libGlu
ZyIsICJhdHRyaWJ1dGVzIiwgIm93bmVyRG9jdW1lbnQiLCAibmFtZXNwYWNlVVJJIiwgImxvY2Fs
TmFtZSIsICJiYXNlVVJJIiwgInBhcmVudEVsZW1lbnQiLCAiaXNDb250ZW50RWRpdGFibGUiXS5m
b3JFYWNoKGZ1bmN0aW9uIChhdHRyKSB7CiAgICAgICAgcnVuQmVuY2htYXJrKCdkaXYuJyArIGF0
dHIsIHJlcGVhdCk7CiAgICB9KTsKCiAgICBsb2coJ1xuPT09PSBBdHRyaWJ1dGUgc2V0dGVycyBv
biBOb2RlID09PT1cbicpOwogICAgWyJub2RlTmFtZSIsICJub2RlVHlwZSIsICJwYXJlbnROb2Rl
IiwgImNoaWxkTm9kZXMiLCAiZmlyc3RDaGlsZCIsICJsYXN0Q2hpbGQiLCAicHJldmlvdXNTaWJs
aW5nIiwgIm5leHRTaWJsaW5nIiwgImF0dHJpYnV0ZXMiLCAib3duZXJEb2N1bWVudCIsICJuYW1l
c3BhY2VVUkkiLCAibG9jYWxOYW1lIiwgImJhc2VVUkkiLCAicGFyZW50RWxlbWVudCIsICJpc0Nv
bnRlbnRFZGl0YWJsZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAgICAgICBydW5CZW5j
aG1hcmsoJ2Rpdi4nICsgYXR0ciArICcgPSB1bmRlZmluZWQnLCByZXBlYXQpOwogICAgfSk7Cn0K
CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydW4nKS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRv
d24nLCBmdW5jdGlvbihldmVudCkgewogICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJ1J1bm5pbmcu
Li4nOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICcn
Owp9KTsKCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydW4nKS5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZXVwJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgIHZhciByZXBlYXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVwZWF0JykudmFsdWU7CgogICAgcnVuQWxsQmVuY2htYXJrcyhyZXBlYXQp
OwoKICAgIGxvZygnXG49PT09IENvbXBsZXRlZCA9PT09XG4nKTsKICAgIGxvZygnXG5SZXBlYXQg
Y291bnQ6ICcgKyByZXBlYXQgKyAnXG4nKTsKICAgIHByaW50VG90YWxUaW1lKCk7CiAgICBldmVu
dC50YXJnZXQudmFsdWUgPSAnUnVuJzsKfSk7CgpmdW5jdGlvbiBsb2coc3RyKSB7CiAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
dWx0JykuaW5uZXJIVE1MICs9IHN0cjsKICAgIH0sIDApOwp9CgpmdW5jdGlvbiBydW5CZW5jaG1h
cmsoY29kZSwgcmVwZWF0KSB7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIC8v
IHdhcm0tdXAKICAgICAgICBldmFsKCd2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7IGZvciAodmFyIGkgPSAwOyBpIDwgJyArIDEwMCArICc7IGkrKykgeyAnICsgY29kZSAr
ICcgfScpOwoKICAgICAgICB2YXIgYmVnaW4gPSBuZXcgRGF0ZSgpOwogICAgICAgIGV2YWwoJ3Zh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZm9yICh2YXIgaSA9IDA7IGkg
PCAnICsgcmVwZWF0ICsgJzsgaSsrKSB7ICcgKyBjb2RlICsgJyB9Jyk7CiAgICAgICAgdmFyIGVu
ZCA9IG5ldyBEYXRlKCk7CiAgICAgICAgdG90YWxUaW1lICs9IGVuZCAtIGJlZ2luOwogICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgKz0gY29kZSArICc6
ICcgKyAoZW5kIC0gYmVnaW4pICsgJyBtc1xuJzsKICAgIH0sIDApOwp9CgpmdW5jdGlvbiBwcmlu
dFRvdGFsVGltZSgpIHsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCArPSAnVG90YWwgdGltZTogJyAr
IHRvdGFsVGltZSArICcgbXNcbic7CiAgICB9LCAwKTsKfQo8L3NjcmlwdD4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>121401</attachid>
            <date>2012-01-05 22:29:40 -0800</date>
            <delta_ts>2012-01-05 22:29:40 -0800</delta_ts>
            <desc>DOM micro benchmark</desc>
            <filename>dom_microbenchmark.html</filename>
            <type>text/html</type>
            <size>5475</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPjwvaGVhZD4KPGJvZHk+CjxoMT5ET00gTWljcm8gQmVuY2htYXJrPC9oMT4K
PHA+UmVwZWF0IGNvdW50OiA8aW5wdXQgaWQ9InJlcGVhdCIgdHlwZT0idGV4dCIgdmFsdWU9IjEw
MDAwMDAiIC8+PGJyIC8+CjxpbnB1dCBpZD0icnVuIiB0eXBlPSJidXR0b24iIHZhbHVlPSJSdW4i
IC8+PC9wPgo8cHJlIGlkPSJyZXN1bHQiIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiNkZGZmZmYn
PjwvcHJlPgo8L2JvZHk+CjxzY3JpcHQ+CnZhciB0b3RhbFRpbWUgPSAwOwoKZnVuY3Rpb24gcnVu
QWxsQmVuY2htYXJrcyhyZXBlYXQpIHsKICAgIGxvZygnXG49PT09IEF0dHJpYnV0ZSBnZXR0ZXJz
IG9uIEhUTUxFbGVtZW50ID09PT1cbicpOwogICAgWyJpZCIsICJ0aXRsZSIsICJsYW5nIiwgImRp
ciIsICJjbGFzc05hbWUiLCAiY2xhc3NMaXN0IiwgInRhYkluZGV4IiwgImRyYWdnYWJsZSIsICJ3
ZWJraXRkcm9wem9uZSIsICJoaWRkZW4iLCAiYWNjZXNzS2V5IiwgImNoaWxkcmVuIiwgImlzQ29u
dGVudEVkaXRhYmxlIiwgInNwZWxsY2hlY2siLCAiaXRlbVNjb3BlIiwgIml0ZW1UeXBlIiwgIml0
ZW1JZCIsICJpdGVtUmVmIiwgIml0ZW1Qcm9wIiwgInByb3BlcnRpZXMiLCAidGl0bGVEaXNwbGF5
U3RyaW5nIl0uZm9yRWFjaChmdW5jdGlvbiAoYXR0cikgewogICAgICAgIHJ1bkJlbmNobWFyaygn
ZGl2LicgKyBhdHRyLCByZXBlYXQpOwogICAgfSk7CgogICAgbG9nKCdcbj09PT0gQXR0cmlidXRl
IHNldHRlcnMgb24gSFRNTEVsZW1lbnQgPT09PVxuJyk7CiAgICBbImlkIiwgInRpdGxlIiwgImxh
bmciLCAiZGlyIiwgImNsYXNzTmFtZSIsICJjbGFzc0xpc3QiLCAidGFiSW5kZXgiLCAiZHJhZ2dh
YmxlIiwgIndlYmtpdGRyb3B6b25lIiwgImhpZGRlbiIsICJhY2Nlc3NLZXkiLCAiY2hpbGRyZW4i
LCAiaXNDb250ZW50RWRpdGFibGUiLCAic3BlbGxjaGVjayIsICJpdGVtU2NvcGUiLCAiaXRlbVR5
cGUiLCAiaXRlbUlkIiwgIml0ZW1SZWYiLCAiaXRlbVByb3AiLCAicHJvcGVydGllcyIsICJ0aXRs
ZURpc3BsYXlTdHJpbmciXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyKSB7CiAgICAgICAgcnVuQmVu
Y2htYXJrKCdkaXYuJyArIGF0dHIgKyAnID0gdW5kZWZpbmVkJywgcmVwZWF0KTsKICAgIH0pOwoK
ICAgIGxvZygnXG49PT09IEF0dHJpYnV0ZSBnZXR0ZXJzIG9uIEVsZW1lbnQgPT09PVxuJyk7CiAg
ICBbInRhZ05hbWUiLCAic3R5bGUiLCAib2Zmc2V0TGVmdCIsICJvZmZzZXRUb3AiLCAib2Zmc2V0
V2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFBhcmVudCIsICJjbGllbnRMZWZ0IiwgImNs
aWVudFRvcCIsICJjbGllbnRXaWR0aCIsICJjbGllbnRIZWlnaHQiLCAic2Nyb2xsTGVmdCIsICJz
Y3JvbGxUb3AiLCAic2Nyb2xsV2lkdGgiLCAic2Nyb2xsSGVpZ2h0IiwgImRhdGFzZXQiLCAiZmly
c3RFbGVtZW50Q2hpbGQiLCAibGFzdEVsZW1lbnRDaGlsZCIsICJwcmV2aW91c0VsZW1lbnRTaWJs
aW5nIiwgIm5leHRFbGVtZW50U2libGluZyIsICJjaGlsZEVsZW1lbnRDb3VudCIsICJpbm5lclRl
eHQiLCAib25hYm9ydCIsICJvbmJsdXIiLCAib25jaGFuZ2UiLCAib25jbGljayIsICJvbmNvbnRl
eHRtZW51IiwgIm9uZGJsY2xpY2siLCAib25kcmFnIiwgIm9uZHJhZ2VuZCIsICJvbmRyYWdlbnRl
ciIsICJvbmRyYWdsZWF2ZSIsICJvbmRyYWdvdmVyIiwgIm9uZHJhZ3N0YXJ0IiwgIm9uZHJvcCIs
ICJvbmVycm9yIiwgIm9uZm9jdXMiLCAib25pbnB1dCIsICJvbmludmFsaWQiLCAib25rZXlkb3du
IiwgIm9ua2V5cHJlc3MiLCAib25rZXl1cCIsICJvbmxvYWQiLCAib25tb3VzZWRvd24iLCAib25t
b3VzZW1vdmUiLCAib25tb3VzZW91dCIsICJvbm1vdXNlb3ZlciIsICJvbm1vdXNldXAiLCAib25t
b3VzZXdoZWVsIiwgIm9uc2Nyb2xsIiwgIm9uc2VsZWN0IiwgIm9uc3VibWl0IiwgIm9uYmVmb3Jl
Y3V0IiwgIm9uY3V0IiwgIm9uYmVmb3JlY29weSIsICJvbmNvcHkiLCAib25iZWZvcmVwYXN0ZSIs
ICJvbnBhc3RlIiwgIm9ucmVzZXQiLCAib25zZWFyY2giLCAib25zZWxlY3RzdGFydCIsICJvbnRv
dWNoc3RhcnQiLCAib250b3VjaG1vdmUiLCAib250b3VjaGVuZCIsICJvbnRvdWNoY2FuY2VsIiwg
Im9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAg
ICAgICBydW5CZW5jaG1hcmsoJ2Rpdi4nICsgYXR0ciwgcmVwZWF0KTsKICAgIH0pOwoKICAgIGxv
ZygnXG49PT09IEF0dHJpYnV0ZSBzZXR0ZXJzIG9uIEVsZW1lbnQgPT09PVxuJyk7CiAgICBbInRh
Z05hbWUiLCAic3R5bGUiLCAib2Zmc2V0TGVmdCIsICJvZmZzZXRUb3AiLCAib2Zmc2V0V2lkdGgi
LCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFBhcmVudCIsICJjbGllbnRMZWZ0IiwgImNsaWVudFRv
cCIsICJjbGllbnRXaWR0aCIsICJjbGllbnRIZWlnaHQiLCAic2Nyb2xsTGVmdCIsICJzY3JvbGxU
b3AiLCAic2Nyb2xsV2lkdGgiLCAic2Nyb2xsSGVpZ2h0IiwgImRhdGFzZXQiLCAiZmlyc3RFbGVt
ZW50Q2hpbGQiLCAibGFzdEVsZW1lbnRDaGlsZCIsICJwcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwg
Im5leHRFbGVtZW50U2libGluZyIsICJjaGlsZEVsZW1lbnRDb3VudCIsICJpbm5lclRleHQiLCAi
b25hYm9ydCIsICJvbmJsdXIiLCAib25jaGFuZ2UiLCAib25jbGljayIsICJvbmNvbnRleHRtZW51
IiwgIm9uZGJsY2xpY2siLCAib25kcmFnIiwgIm9uZHJhZ2VuZCIsICJvbmRyYWdlbnRlciIsICJv
bmRyYWdsZWF2ZSIsICJvbmRyYWdvdmVyIiwgIm9uZHJhZ3N0YXJ0IiwgIm9uZHJvcCIsICJvbmVy
cm9yIiwgIm9uZm9jdXMiLCAib25pbnB1dCIsICJvbmludmFsaWQiLCAib25rZXlkb3duIiwgIm9u
a2V5cHJlc3MiLCAib25rZXl1cCIsICJvbmxvYWQiLCAib25tb3VzZWRvd24iLCAib25tb3VzZW1v
dmUiLCAib25tb3VzZW91dCIsICJvbm1vdXNlb3ZlciIsICJvbm1vdXNldXAiLCAib25tb3VzZXdo
ZWVsIiwgIm9uc2Nyb2xsIiwgIm9uc2VsZWN0IiwgIm9uc3VibWl0IiwgIm9uYmVmb3JlY3V0Iiwg
Im9uY3V0IiwgIm9uYmVmb3JlY29weSIsICJvbmNvcHkiLCAib25iZWZvcmVwYXN0ZSIsICJvbnBh
c3RlIiwgIm9ucmVzZXQiLCAib25zZWFyY2giLCAib25zZWxlY3RzdGFydCIsICJvbnRvdWNoc3Rh
cnQiLCAib250b3VjaG1vdmUiLCAib250b3VjaGVuZCIsICJvbnRvdWNoY2FuY2VsIiwgIm9ud2Vi
a2l0ZnVsbHNjcmVlbmNoYW5nZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAgICAgICBy
dW5CZW5jaG1hcmsoJ2Rpdi4nICsgYXR0ciArICcgPSB1bmRlZmluZWQnLCByZXBlYXQpOwogICAg
fSk7CgogICAgbG9nKCdcbj09PT0gQXR0cmlidXRlIGdldHRlcnMgb24gTm9kZSA9PT09XG4nKTsK
ICAgIFsibm9kZU5hbWUiLCAibm9kZVR5cGUiLCAicGFyZW50Tm9kZSIsICJjaGlsZE5vZGVzIiwg
ImZpcnN0Q2hpbGQiLCAibGFzdENoaWxkIiwgInByZXZpb3VzU2libGluZyIsICJuZXh0U2libGlu
ZyIsICJhdHRyaWJ1dGVzIiwgIm93bmVyRG9jdW1lbnQiLCAibmFtZXNwYWNlVVJJIiwgImxvY2Fs
TmFtZSIsICJiYXNlVVJJIiwgInBhcmVudEVsZW1lbnQiLCAiaXNDb250ZW50RWRpdGFibGUiXS5m
b3JFYWNoKGZ1bmN0aW9uIChhdHRyKSB7CiAgICAgICAgcnVuQmVuY2htYXJrKCdkaXYuJyArIGF0
dHIsIHJlcGVhdCk7CiAgICB9KTsKCiAgICBsb2coJ1xuPT09PSBBdHRyaWJ1dGUgc2V0dGVycyBv
biBOb2RlID09PT1cbicpOwogICAgWyJub2RlTmFtZSIsICJub2RlVHlwZSIsICJwYXJlbnROb2Rl
IiwgImNoaWxkTm9kZXMiLCAiZmlyc3RDaGlsZCIsICJsYXN0Q2hpbGQiLCAicHJldmlvdXNTaWJs
aW5nIiwgIm5leHRTaWJsaW5nIiwgImF0dHJpYnV0ZXMiLCAib3duZXJEb2N1bWVudCIsICJuYW1l
c3BhY2VVUkkiLCAibG9jYWxOYW1lIiwgImJhc2VVUkkiLCAicGFyZW50RWxlbWVudCIsICJpc0Nv
bnRlbnRFZGl0YWJsZSJdLmZvckVhY2goZnVuY3Rpb24gKGF0dHIpIHsKICAgICAgICBydW5CZW5j
aG1hcmsoJ2Rpdi4nICsgYXR0ciArICcgPSB1bmRlZmluZWQnLCByZXBlYXQpOwogICAgfSk7Cn0K
CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydW4nKS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRv
d24nLCBmdW5jdGlvbihldmVudCkgewogICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJ1J1bm5pbmcu
Li4nOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICcn
Owp9KTsKCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdydW4nKS5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZXVwJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgIGV2ZW50LnRhcmdldC5kaXNhYmxlZCA9IHRy
dWU7CiAgICB2YXIgcmVwZWF0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcGVhdCcpLnZh
bHVlOwoKICAgIHJ1bkFsbEJlbmNobWFya3MocmVwZWF0KTsKCiAgICBsb2coJ1xuPT09PSBDb21w
bGV0ZWQgPT09PVxuJyk7CiAgICBsb2coJ1xuUmVwZWF0IGNvdW50OiAnICsgcmVwZWF0ICsgJ1xu
Jyk7CiAgICBiZW5jaG1hcmtDb21wbGV0ZWQoKTsKfSk7CgpmdW5jdGlvbiBsb2coc3RyKSB7CiAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0JykuaW5uZXJIVE1MICs9IHN0cjsKICAgIH0sIDApOwp9CgpmdW5jdGlvbiBydW5C
ZW5jaG1hcmsoY29kZSwgcmVwZWF0KSB7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgIC8vIHdhcm0tdXAKICAgICAgICBldmFsKCd2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7IGZvciAodmFyIGkgPSAwOyBpIDwgJyArIDEwMCArICc7IGkrKykgeyAnICsg
Y29kZSArICcgfScpOwoKICAgICAgICB2YXIgYmVnaW4gPSBuZXcgRGF0ZSgpOwogICAgICAgIGV2
YWwoJ3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsgZm9yICh2YXIgaSA9
IDA7IGkgPCAnICsgcmVwZWF0ICsgJzsgaSsrKSB7ICcgKyBjb2RlICsgJyB9Jyk7CiAgICAgICAg
dmFyIGVuZCA9IG5ldyBEYXRlKCk7CiAgICAgICAgdG90YWxUaW1lICs9IGVuZCAtIGJlZ2luOwog
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgKz0gY29k
ZSArICc6ICcgKyAoZW5kIC0gYmVnaW4pICsgJyBtc1xuJzsKICAgIH0sIDApOwp9CgpmdW5jdGlv
biBiZW5jaG1hcmtDb21wbGV0ZWQoKSB7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgKz0gJ1RvdGFs
IHRpbWU6ICcgKyB0b3RhbFRpbWUgKyAnIG1zXG4nOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdydW4nKS52YWx1ZSA9ICdSdW4nOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdydW4nKS5kaXNhYmxlZCA9IGZhbHNlOwogICAgfSwgMCk7Cn0KPC9zY3JpcHQ+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123046</attachid>
            <date>2012-01-18 17:52:17 -0800</date>
            <delta_ts>2012-01-18 18:10:08 -0800</delta_ts>
            <desc>WIP: The OnProto patch</desc>
            <filename>bug-75297-20120119105216.patch</filename>
            <type>text/plain</type>
            <size>64175</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGEzNjQ4YWZhOTJkOTgz
Y2RiOGY1ZjMzZDc1N2NmZDc2YzJkODAyMi4uMGNhMjViZGYyZWJkZTI3MTNhZGY4ZTIwYzkyNDA2
MzZlZjliMzY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxMi0wMS0xOSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW21ldGFdW1Y4XSBE
T00gYXR0cmlidXRlcyBzaG91bGQgYmUgZGVmaW5lZCBvbiBhIHByb3RvdHlwZSBjaGFpbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyOTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVA6IE9uUHJvdG8g
cGF0Y2guIChQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudCAiUGVyZm9ybWFuY2UgSW1wYWN0cyBvZiBN
b3ZpbmcKKyAgICAgICAgRE9NIEF0dHJpYnV0ZXMgdG8gYSBQcm90b3R5cGUgQ2hhaW4iIGZvciBt
b3JlIGRldGFpbHMuKQorCisgICAgICAgIEFsdGhvdWdoIGN1cnJlbnRseSBET00gYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVjdCwKKyAgICAgICAgdGhlIHNwZWMgc2F5
cyB0aGF0IERPTSBhdHRyaWJ1dGVzIHdpdGhvdXQgdGhlIFtVbmZvcmdlYWJsZV0gSURMIHNob3Vs
ZCBiZSBkZWZpbmVkCisgICAgICAgIG9uIGEgcHJvdG90eXBlIGNoYWluOiBodHRwOi8vZGV2Lncz
Lm9yZy8yMDA2L3dlYmFwaS9XZWJJREwvI2VzLWF0dHJpYnV0ZXMKKworICAgICAgICBUaGlzIHBh
dGNoIG1vdmVzIGFsbCB0aGUgVjggRE9NIGF0dHJpYnV0ZXMgaW4gSFRNTERpdkVsZW1lbnQuaWRs
LCBIVE1MRWxlbWVudC5pZGwsCisgICAgICAgIEVsZW1lbnQuaWRsIGFuZCBOb2RlLmlkbCAoZXhj
ZXB0IGZvciB0aGUgYXR0cmlidXRlcyB0aGF0IGhhdmUgY3VzdG9tIGdldHRlcnMgb3IKKyAgICAg
ICAgY3VzdG9tIHNldHRlcnMpLCBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0IHRvIGEgcHJvdG90eXBl
IGNoYWluLgorCisgICAgICAgIFRoZSBlc3NlbnRpYWwgY2hhbmdlIGluIHRoZSBnZW5lcmF0ZWQg
Y29kZSBpcyBhcyBmb2xsb3dzOgorCisgICAgICAgICAgICBCRUZPUkUgKEhUTUxFbGVtZW50Lmxh
bmcgaXMgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVjdCk6CisgICAgICAgICAgICBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGxhbmdBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIEVsZW1lbnQqIGltcCA9IFY4RWxlbWVudDo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHY4RXh0ZXJuYWxTdHJpbmcoaW1wLT5nZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpsYW5nQXR0cikpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBBRlRFUiAoSFRNTEVsZW1lbnQubGFuZyBpcyBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNo
YWluKToKKyAgICAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbGFuZ0F0dHJH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFWOEhUTUxFbGVtZW50
OjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSkpICAvKiAoIykgKi8KKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkEgRE9NIGF0dHJpYnV0ZSBnZXR0
ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdCIsIFY4UHJveHk6OlR5cGVFcnJv
cik7CisgICAgICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGltcCA9IFY4SFRNTEVsZW1lbnQ6OnRv
TmF0aXZlKGluZm8uVGhpcygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdjhTdHJpbmcoaW1w
LT5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpsYW5nQXR0cikpOworICAgICAgICAg
ICAgfQorCisgICAgICAgIEluIGNhc2Ugb2YgdGhlIERPTSBhdHRyaWJ1dGUgZ2V0dGVyLCB0aGUg
c3BlYyBzYXlzOgorCisgICAgICAgICAgICAxLiBMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxp
bmcgVG9PYmplY3Qgb24gdGhlIHRoaXMgdmFsdWUuCisgICAgICAgICAgICAyLiBJZiBPIGlzIG5v
dCBhIHBsYXRmb3JtIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGludGVyZmFjZQorICAgICAg
ICAgICAgICAgIG9uIHdoaWNoIHRoZSBhdHRyaWJ1dGUgd2FzIGRlY2xhcmVkLCB0aGVuICguLi5v
bW1pdHRlZC4uLikgdGhyb3cgYSBUeXBlRXJyb3IuCisKKyAgICAgICAgVGhlIGlmIHN0YXRlbWVu
dCBtYXJrZWQgYXMgKCMpIGNoZWNrcyAyIGluIHRoZSBzcGVjLiBUbyB1bmRlcnN0YW5kIHRoaXMs
CisgICAgICAgIG5vdGUgdGhhdCB3aGVuIGxhbmdBdHRyR2V0dGVyKCkgaXMgY2FsbGVkIGJ5IHRo
ZSBWOCBlbmdpbmUsIGl0IGlzIGd1YXJhbnRlZWQgdGhhdAorCisgICAgICAgICAgICAtIGluZm8u
SG9sZGVyKCkgcG9pbnRzIHRvIHRoZSBvYmplY3Qgb24gd2hpY2ggbGFuZyBpcyBkZWZpbmVkLAor
ICAgICAgICAgICAgICBpLmUuIHRoZSBwcm90b3R5cGUgb2JqZWN0IG9mIEhUTUxFbGVtZW50Lgor
ICAgICAgICAgICAgLSBpbmZvLlRoaXMoKSBwb2ludHMgdG8gJ3RoaXMnLCBpLmUuIHRoZSByZWNl
aXZlciBvYmplY3QuCisgICAgICAgICAgICAgIEZvciBleGFtcGxlLCB3aGVuIGRpdi5sYW5nIGlz
IGV2YWx1YXRlZCwgaW5mby5UaGlzKCkgcG9pbnRzIHRvIGRpdi4KKworICAgICAgICBUaGlzIHdh
eSwgd2UgY2FuIGNoZWNrIHdoZXRoZXIgIk8gaXMgYSBwbGF0Zm9ybSBvYmplY3QgdGhhdCBpbXBs
ZW1lbnRzIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb24gd2hpY2ggdGhlIGF0dHJpYnV0ZSB3YXMg
ZGVjbGFyZWQiIGJ5IGNoZWNraW5nIHdoZXRoZXIgaW5mby5UaGlzKCkgaXMgYW4gaW5zdGFuY2UK
KyAgICAgICAgZ2VuZXJhdGVkIGZyb20gVjhIVE1MRWxlbWVudC4gU3BlY2lmaWNhbGx5LCB3ZSBj
YW4gY2hlY2sgaXQgYnkKKyAgICAgICAgVjhIVE1MRWxlbWVudDo6R2V0VGVtcGxhdGUoKS0+SGFz
SW5zdGFuY2UoaW5mby5UaGlzKCkpLgorCisgICAgICAgIE5vdGU6IFRoaXMgaXMganVzdCBhIFdJ
UCBwYXRjaC4gVWx0aW1hdGVseSwgd2UgYXJlIHBsYW5uaW5nIHRvIHJlbW92ZSBhbGwgdGhlIFtW
OE9uUHJvdG9dIElETAorICAgICAgICBhbmQganVzdCB1c2UgdGhlIFtWOFVuZm9yZ2VhYmxlXSBJ
REw7IEluIG90aGVyIHdvcmRzLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMsIGFsbCBhdHRyaWJ1dGVz
CisgICAgICAgIHdpdGhvdXQgdGhlIFtWOFVuZm9yZ2VhYmxlXSBJREwgd2lsbCBiZSBkZWZpbmVk
IG9uIGEgcHJvdG90eXBlIGNoYWluIGFuZCBhbGwgYXR0cmlidXRlcworICAgICAgICB3aXRoIHRo
ZSBbVjhVbmZvcmdlYWJsZV0gSURMIHdpbGwgYmUgZGVmaW5lZCBvbiBhIHBsYXRmb3JtIG9iamVj
dC4gVGhhdCBiZWluZyBzYWlkLAorICAgICAgICB0aGlzIHJlcXVpcmVzIG5vbi10cml2aWFsIHdv
cmsuIEJlZm9yZSBtb3ZpbmcgYWxsIERPTSBhdHRyaWJ1dGVzIG9udG8gYSBwcm90b3R5cGUgY2hh
aW4sCisgICAgICAgIHdlIG5lZWQgdG8KKworICAgICAgICAgICAgLSByZXdyaXRlIGFsbCBjdXN0
b20gZ2V0dGVycyBhbmQgc2V0dGVycywKKyAgICAgICAgICAgIC0gaGFuZGxlIHNwZWNpYWwgYXR0
cmlidXRlcyAoZS5nLiBET01XaW5kb3cgYXR0cmlidXRlcywgRXZlbnRMaXN0ZW5lciBhdHRyaWJ1
dGVzLAorICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHdpdGggdGhlIFtWOERpc2FsbG93U2hhZG93
aW5nXSBJREwpCisgICAgICAgICAgICAtIGludmVzdGlnYXRlIHNlY3VyaXR5IGlzc3VlcywKKyAg
ICAgICAgICAgIC0gYW5kIG1lYXN1cmUgdGhlIHBlcmZvcm1hbmNlIGltcGFjdCBvZiB0aGlzIGNo
YW5nZS4KKworICAgICAgICBUZXN0czogZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2pzL2ludGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBBcyBkZXNjcmliZWQg
YWJvdmUuIFJlbmFtZWQgW3Y4T25Qcm90b10KKyAgICAgICAgdG8gW1Y4T25Qcm90b10uCisgICAg
ICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJHZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxB
dHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKworICAgICAgICAqIGRvbS9FbGVtZW50
LmlkbDogQWRkZWQgW1Y4T25Qcm90b10gSURMIHRvIGFsbCBhdHRyaWJ1dGVzIHRoYXQgZG8gbm90
IGhhdmUKKyAgICAgICAgYSBjdXN0b20gZ2V0dGVyIG5vciBhIGN1c3RvbSBzZXR0ZXIuCisgICAg
ICAgICogZG9tL05vZGUuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50
LmlkbDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6IERpdHRvLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCBhIGF0dHJp
YnV0ZSB3aXRoIHRoZSBbVjhPblByb3RvXSBJREwKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOiBVcGRhdGVkIHJ1bi1iaW5kaW5ncy10ZXN0cyBy
ZXN1bHRzLgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6YXR0ck9uUHJvdG8pOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6c2V0QXR0ck9uUHJvdG8pOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAg
ICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX29uX3Byb3RvKToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfb25fcHJvdG8pOgorICAgICAgICAod2Via2l0X2RvbV90
ZXN0X29ial9zZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRf
cHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jbGFzc19pbml0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJPblByb3RvKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJPblByb3RvKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDogRGl0dG8uCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbTogRGl0dG8uCisgICAgICAgICgtW0RP
TVRlc3RPYmogYXR0ck9uUHJvdG9dKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRBdHRyT25Q
cm90bzpdKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmF0dHJPblByb3Rv
QXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmF0dHJPblBy
b3RvQXR0clNldHRlcik6CisKIDIwMTItMDEtMTYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBtdWx0aXBsZSBBVF9UQVJHRVQgZXZlbnQgZGlz
cGF0Y2hpbmcgaW4gcmVnYXJkIHRvIHNoYWRvdyB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA3YjE4NGE3YTFjODRm
ZWMwNDFlODk2Y2VkN2YwNTA5ODUzNDEzZDc5Li45ZDBmNzhkMjAzOWUxMjkwZDRiYTgxNDBhOTUz
YzcyNjMxNGU3NjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtODQ1LDIyICs4NDUsMTggQEAgRU5ECiBFTkQKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzaWYgKCRhdHRyRXh0LT57InY4T25Qcm90byJ9
IHx8ICRhdHRyRXh0LT57IlY4RGlzYWxsb3dTaGFkb3dpbmcifSkgeworICAgIH0gZWxzaWYgKCRh
dHRyRXh0LT57IlY4T25Qcm90byJ9IHx8ICRhdHRyRXh0LT57IlY4RGlzYWxsb3dTaGFkb3dpbmci
fSkgewogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKLSAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAgJHtpbXBsQ2xhc3NOYW1lfSog
aW1wID0gVjgke2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKIEVORAog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIyBwZXJmb3JtIGxvb2t1cCBmaXJzdAogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gaG9sZGVyID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4JHtp
bnRlcmZhY2VOYW1lfTo6R2V0VGVtcGxhdGUoKSwgaW5mby5UaGlzKCkpOwotICAgIGlmIChob2xk
ZXIuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cisg
ICAgaWYgKCFWOCR7aW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlKCktPkhhc0luc3RhbmNlKGlu
Zm8uVGhpcygpKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkEgRE9NIGF0dHJpYnV0ZSBn
ZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdCIsIFY4UHJveHk6OlR5cGVF
cnJvcik7CisgICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gVjgke2ltcGxDbGFzc05hbWV9Ojp0
b05hdGl2ZShpbmZvLlRoaXMoKSk7CiBFTkQKICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCA8PEVORCk7Ci0gICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gVjgke2lt
cGxDbGFzc05hbWV9Ojp0b05hdGl2ZShob2xkZXIpOwotRU5ECiAgICAgfSBlbHNlIHsKICAgICAg
ICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJSZWZsZWN0In07CiAgICAgICAgIG15ICR1cmwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVUkwifTsKQEAgLTEwNjQsMjIgKzEwNjAsMjAgQEAgRU5E
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRzdmdXcmFwcGVkTmF0
aXZlVHlwZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRzdmdXcmFwcGVkTmF0
aXZlVHlwZSogaW1wID0gJmltcEluc3RhbmNlO1xuIik7CiAgICAgICAgIH0KLSAgICB9IGVsc2lm
ICgkYXR0ckV4dC0+eyJ2OE9uUHJvdG8ifSkgewotICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsK
LSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uSG9sZGVyKCk7CisgICAg
fSBlbHNpZiAoJGF0dHJFeHQtPnsiVjhPblByb3RvIn0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCA8PEVORCk7CisgICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gVjgke2ltcGxDbGFzc05h
bWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKIEVORAotICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgIyBwZXJmb3JtIGxvb2t1cCBmaXJzdAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCA8PEVORCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBWOERPTVdyYXBw
ZXI6Omxvb2t1cERPTVdyYXBwZXIoVjgke2ludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLCBp
bmZvLlRoaXMoKSk7Ci0gICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpCisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgaWYgKCFW
OCR7aW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlKCktPkhhc0luc3RhbmNlKGluZm8uVGhpcygp
KSkgeworICAgICAgICB0aHJvd0Vycm9yKCJBIERPTSBhdHRyaWJ1dGUgc2V0dGVyIGlzIGNhbGxl
ZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogICAgICAg
ICByZXR1cm47CisgICAgfQorICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xh
c3NOYW1lfTo6dG9OYXRpdmUoaW5mby5UaGlzKCkpOwogRU5ECi0gICAgICB9Ci0gICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4
JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaG9sZGVyKTsKLUVORAorICAgICAgICB9CiAgICAg
fSBlbHNlIHsKICAgICAgICAgbXkgJGF0dHJUeXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07CkBAIC0yMDAzLDcgKzE5
OTcsNyBAQCBzdWIgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlCiAgICAgfQogCiAgICAg
IyBBbiBhY2Nlc3NvciBjYW4gYmUgaW5zdGFsbGVkIG9uIHRoZSBwcm90bwotICAgIGlmICgkYXR0
ckV4dC0+eyJ2OE9uUHJvdG8ifSkgeworICAgIGlmICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSkg
ewogICAgICAgICAkb25fcHJvdG8gPSAiMSAvKiBvbiBwcm90byAqLyI7CiAgICAgfQogCkBAIC0y
MjU1LDcgKzIyNDksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKCRhdHRyVHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgJiYgJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57InY4T25Qcm90byJ9ID0gMTsKKyAgICAgICAgICAgICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4T25Qcm90byJ9ID0gMTsK
ICAgICAgICAgfQogCiAgICAgICAgICMgQXR0cmlidXRlcyBvZiB0eXBlIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBhcmUgc2V0IGluIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggOWRhYzJkYThh
OWFiMDkwMmZkYTI1ODVlNDU5ZTA4MDUyZDNjNDZhMy4uMGI2MmY1NWE4MzM3ZDIxNjhmMjdkMWRj
NjcwOThlMjBhNTQ5ZjYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC0yMzMsNiArMjMzLDIy
IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VGVzdE9iakF0dHIoY29uc3QgV2ViRE9NVGVzdE9i
aiYgbmV3VGVzdE9iakF0dHIpCiAgICAgaW1wbCgpLT5zZXRUZXN0T2JqQXR0cih0b1dlYkNvcmUo
bmV3VGVzdE9iakF0dHIpKTsKIH0KIAorV2ViRE9NU3RyaW5nIFdlYkRPTVRlc3RPYmo6OmF0dHJP
blByb3RvKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRP
TVN0cmluZygpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdURjo6U3RyaW5nJj4o
aW1wbCgpLT5hdHRyT25Qcm90bygpKTsKK30KKwordm9pZCBXZWJET01UZXN0T2JqOjpzZXRBdHRy
T25Qcm90byhjb25zdCBXZWJET01TdHJpbmcmIG5ld0F0dHJPblByb3RvKQoreworICAgIGlmICgh
aW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPnNldEF0dHJPblByb3RvKG5l
d0F0dHJPblByb3RvKTsKK30KKwogV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpYTUxPYmpB
dHRyKCkgY29uc3QKIHsKICAgICBpZiAoIWltcGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggNDNm
ZDk4YzAyOWE2NGQ0ZmRlM2Y3ZjcyMGFhYTM5NTVjN2I0ZmMwMi4uMDY5MzAzZmI3NDMyZDg1Mzhk
MjE1OTNjN2Y4YWE1YmM1N2VhZDM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTkwLDYgKzkwLDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RyaW5nQXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsK
ICAgICBXZWJET01UZXN0T2JqIHRlc3RPYmpBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUZXN0
T2JqQXR0cihjb25zdCBXZWJET01UZXN0T2JqJik7CisgICAgV2ViRE9NU3RyaW5nIGF0dHJPblBy
b3RvKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBdHRyT25Qcm90byhjb25zdCBXZWJET01TdHJpbmcm
KTsKICAgICBXZWJET01UZXN0T2JqIFhNTE9iakF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFhN
TE9iakF0dHIoY29uc3QgV2ViRE9NVGVzdE9iaiYpOwogICAgIGJvb2wgY3JlYXRlKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IDcwMTQ3Y2I4MTBiZmIwZjE0
OWI2YzYyOGMxZTc4YzU1NzQyMzQ4NGUuLmNmNGM3YzQ1MzY3ZjdmNTNkOTE5MTUxN2I2N2MxOGVl
NjQ1YWMzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC03MTAsNiAr
NzEwLDI3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Rlc3Rfb2JqX2F0dHIoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaioKICAgICBpdGVtLT5zZXRUZXN0T2JqQXR0
cihjb252ZXJ0ZWRfdmFsdWUpOwogfQogCitnY2hhcioKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X2F0dHJfb25fcHJvdG8oV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
CisgICAgZ2NoYXIqIHJlcyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+YXR0ck9uUHJvdG8o
KSk7CisgICAgcmV0dXJuIHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRf
YXR0cl9vbl9wcm90byhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
Cit7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV1RGOjpTdHJp
bmcgY29udmVydGVkX3ZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBp
dGVtLT5zZXRBdHRyT25Qcm90byhjb252ZXJ0ZWRfdmFsdWUpOworfQorCiBXZWJLaXRET01UZXN0
T2JqKgogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfeG1sX29ial9hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCiB7CkBAIC0xMzE2LDYgKzEzMzcsNyBAQCBlbnVtIHsKICAgICBQUk9QX1VOU0lH
TkVEX0xPTkdfTE9OR19BVFRSLAogICAgIFBST1BfU1RSSU5HX0FUVFIsCiAgICAgUFJPUF9URVNU
X09CSl9BVFRSLAorICAgIFBST1BfQVRUUl9PTl9QUk9UTywKICAgICBQUk9QX1hNTF9PQkpfQVRU
UiwKICAgICBQUk9QX0NSRUFURSwKICAgICBQUk9QX1JFRkxFQ1RFRF9TVFJJTkdfQVRUUiwKQEAg
LTEzOTYsNiArMTQxOCwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbgogICAgICAgICBjb3Jl
U2VsZi0+c2V0U3RyaW5nQXR0cihXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX0FUVFJf
T05fUFJPVE86CisgICAgeworICAgICAgICBjb3JlU2VsZi0+c2V0QXR0ck9uUHJvdG8oV1RGOjpT
dHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9DUkVBVEU6CiAgICAgewogICAgICAgICBjb3JlU2Vs
Zi0+c2V0Q3JlYXRlKChnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSkpOwpAQCAtMTU3Niw2ICsx
NjAzLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KKyAgICBjYXNlIFBST1BfQVRUUl9PTl9QUk9UTzoKKyAgICB7CisgICAgICAgIGdfdmFsdWVf
dGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJpbmcoY29yZVNlbGYtPmF0dHJPblBy
b3RvKCkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9YTUxfT0JKX0FU
VFI6CiAgICAgewogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gcHRyID0gY29yZVNl
bGYtPnhtbE9iakF0dHIoKTsKQEAgLTE4MzMsNiArMTg2NSwxMyBAQCBHX01BWFVJTlQ2NCwgLyog
bWluICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwgLyogZ29iamVjdCB0eXBlICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfQVRUUl9PTl9QUk9UTywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19zdHJpbmcoImF0dHItb24tcHJvdG8iLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X29ial9hdHRyLW9uLXByb3RvIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3Jp
dGUgIGdjaGFyKiBUZXN0T2JqLmF0dHItb24tcHJvdG8iLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3
aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ29iamVjdENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9YTUxfT0JKX0FUVFIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KCJ4bWwtb2JqLWF0dHIiLCAvKiBuYW1lICovCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29i
al94bWwtb2JqLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9i
ai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCmluZGV4IGE2MGI5N2VlYTM4ZjAyYjc1ZDE1YmQzMzVjM2E0MmViNDI5M2Jk
NzMuLjdlNTEwNTBkYjMxYzg3ZTk1MDE3ZjFlYjg5NDFiZjk1NGFlNDQ4ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTYxMSw2ICs2MTEsMjcgQEAgV0VCS0lUX0FQSSB2b2lk
CiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF90ZXN0X29ial9hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9hdHRyX29uX3Byb3RvOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
KyAqCisgKiBSZXR1cm5zOgorICoKKyoqLworV0VCS0lUX0FQSSBnY2hhcioKK3dlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X2F0dHJfb25fcHJvdG8oV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8q
KgorICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl9vbl9wcm90bzoKKyAqIEBzZWxmOiBB
ICNXZWJLaXRET01UZXN0T2JqCisgKiBAdmFsdWU6IEEgI2djaGFyCisgKgorICogUmV0dXJuczoK
KyAqCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl9v
bl9wcm90byhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOworCisv
KioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3htbF9vYmpfYXR0cjoKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01UZXN0T2JqCiAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBlOTFhMTE0MDM4OTY2ZmM3MmQ4
OTU3NjQ3YjI1NjU1YTVlOTAzMmY1Li5kYjMzNzZmZTQ2MGM5N2RmOGIzNjhmODFmOTI1N2E4YTlh
N2JiMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtODksNiArODksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAidW5zaWduZWRMb25nTG9u
Z0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KXNl
dEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInN0
cmluZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqU3RyaW5nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ0ZXN0T2JqQXR0ciIsIERvbnRE
ZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqVGVzdE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIs
IE5vSW50cmluc2ljIH0sCisgICAgeyAiYXR0ck9uUHJvdG8iLCBEb250RGVsZXRlLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJP
blByb3RvKSwgKGludHB0cl90KXNldEpTVGVzdE9iakF0dHJPblByb3RvLCBOb0ludHJpbnNpYyB9
LAogICAgIHsgIlhNTE9iakF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialhNTE9iakF0dHIpLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqWE1MT2JqQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjcmVhdGUi
LCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNyZWF0ZSksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpDcmVhdGUsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAicmVmbGVjdGVkU3RyaW5nQXR0ciIsIERvbnREZWxldGUsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyLCBOb0ludHJpbnNpYyB9LApAQCAtNDUyLDYgKzQ1MywxNiBAQCBKU1ZhbHVlIGpzVGVz
dE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbnRpZmllcgogfQogCiAKK0pTVmFsdWUganNUZXN0T2JqQXR0ck9uUHJvdG8oRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90
QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc1N0cmluZyhleGVjLCBpbXBsLT5hdHRyT25Qcm90bygpKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
CkBAIC04NjcsNiArODc4LDE0IEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1CiB9CiAKIAordm9p
ZCBzZXRKU1Rlc3RPYmpBdHRyT25Qcm90byhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpbXBsLT5zZXRB
dHRyT25Qcm90byh1c3RyaW5nVG9TdHJpbmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDog
dmFsdWUudG9TdHJpbmcoZXhlYykpKTsKK30KKworCiB2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0
aGlzT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAppbmRleCBhZTQwNDFkZTY3YTliY2VhZjViNGIxMzY5NzdjZTg3NTk0
MTZmZjIzLi4zMzRlYTRlNjkwZDhmNTAzN2Q4MmY4ODFmMTgxYzkyZGFiZTNmYzI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CkBAIC0yMTMsNiArMjEzLDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnQKIHZvaWQgc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpT
VmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0
T2JqVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1Zh
bHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyT25Qcm90byhKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9i
akF0dHJPblByb3RvKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9ialhN
TE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IDI4Mjk5NWFlODkx
M2ExYjE4N2UxNmI0MmYzZmY4Yjk0YzYxNzlhZWIuLjA4NGU1ZmMyODg2NDIxNGZmN2Q2ZTg5NDM5
MTZjY2E2ZGRiZDAzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTgzLDYgKzgzLDggQEAgZW51bSB7CiAt
ICh2b2lkKXNldFN0cmluZ0F0dHI6KE5TU3RyaW5nICopbmV3U3RyaW5nQXR0cjsKIC0gKERPTVRl
c3RPYmogKil0ZXN0T2JqQXR0cjsKIC0gKHZvaWQpc2V0VGVzdE9iakF0dHI6KERPTVRlc3RPYmog
KiluZXdUZXN0T2JqQXR0cjsKKy0gKE5TU3RyaW5nICopYXR0ck9uUHJvdG87CistICh2b2lkKXNl
dEF0dHJPblByb3RvOihOU1N0cmluZyAqKW5ld0F0dHJPblByb3RvOwogLSAoRE9NVGVzdE9iaiAq
KVhNTE9iakF0dHI7CiAtICh2b2lkKXNldFhNTE9iakF0dHI6KERPTVRlc3RPYmogKiluZXdYTUxP
YmpBdHRyOwogLSAoQk9PTCljcmVhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCAwOGYxZjFlN2FjM2Zk
MWNlODM3NzA0M2EwY2YzYjhhMWMzNDlhNGY0Li43MTJhMjY5OTFiMWEyMzQ4YmNkNzIzNzU1NTA2
MTUzZmExNmQ1NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTIwNCw2ICsyMDQsMTggQEAKICAgICBJ
TVBMLT5zZXRUZXN0T2JqQXR0cihjb3JlKG5ld1Rlc3RPYmpBdHRyKSk7CiB9CiAKKy0gKE5TU3Ry
aW5nICopYXR0ck9uUHJvdG8KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmF0dHJPblByb3RvKCk7Cit9CisKKy0gKHZvaWQpc2V0
QXR0ck9uUHJvdG86KE5TU3RyaW5nICopbmV3QXR0ck9uUHJvdG8KK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0ck9uUHJvdG8obmV3
QXR0ck9uUHJvdG8pOworfQorCiAtIChET01UZXN0T2JqICopWE1MT2JqQXR0cgogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBlZDMzOGM2YjIxZDcxOGJj
ZWYzMzI4YzE0MTIyZmFiMzgyNjQ4NDg1Li42NTNmM2I0MGQ4NzE3MmIwMWQyM2Q1MGUzZjJlZTRl
ODY4NmU3Mzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsCkBAIC00NCw2ICs0NCw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICB1bnNpZ25lZExvbmdMb25nQXR0cjsKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAg
ICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOworICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gRE9NU3RyaW5nICAgIGF0dHJPblByb3RvOwogCiAg
ICAgICAgIEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19sY2ZpcnN0IGV4Y2VwdGlv
bmFsIGNhc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCAxN2MwYTAzYWQyYWU3NGE0OWJiYjExYmM3NjE5MWY4
YmExN2UyYWUyLi5lYzc5ZTY0NzdiNTc0ZDE5NDBhOTU1ZjRmNDM2MzdjMDcwYzM5MTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcApAQCAtMjE4LDYgKzIxOCwyOCBAQCBzdGF0aWMgdm9pZCB0ZXN0T2JqQXR0ckF0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdQogICAg
IHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhdHRyT25Qcm90b0F0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5hdHRyT25Qcm90by5fZ2V0
Iik7CisgICAgaWYgKCFWOFRlc3RPYmo6OkdldFRlbXBsYXRlKCktPkhhc0luc3RhbmNlKGluZm8u
VGhpcygpKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkEgRE9NIGF0dHJpYnV0ZSBnZXR0
ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdCIsIFY4UHJveHk6OlR5cGVFcnJv
cik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLlRoaXMoKSk7
CisgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+YXR0ck9uUHJvdG8oKSk7Cit9CisKK3N0YXRpYyB2
b2lkIGF0dHJPblByb3RvQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5hdHRyT25Qcm90by5fc2V0Iik7CisgICAgaWYg
KCFWOFRlc3RPYmo6OkdldFRlbXBsYXRlKCktPkhhc0luc3RhbmNlKGluZm8uVGhpcygpKSkgewor
ICAgICAgICB0aHJvd0Vycm9yKCJBIERPTSBhdHRyaWJ1dGUgc2V0dGVyIGlzIGNhbGxlZCBieSBh
IG5vbi1wbGF0Zm9ybSBvYmplY3QiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5U
aGlzKCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChW
OFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CisgICAgaW1wLT5zZXRBdHRyT25Qcm90byh2KTsKKyAg
ICByZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gWE1MT2JqQXR0ckF0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5YTUxPYmpBdHRyLl9nZXQi
KTsKQEAgLTE0ODYsNiArMTUwOCw4IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIFRl
c3RPYmpBdHRyc1tdID0gewogICAgIHsic3RyaW5nQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6c3Ry
aW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6c3RyaW5nQXR0ckF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndGVzdE9iakF0dHInIChUeXBlOiAn
YXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7InRlc3RPYmpBdHRyIiwgVGVzdE9iakludGVy
bmFsOjp0ZXN0T2JqQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6dGVzdE9iakF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ2F0dHJPblByb3Rv
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1Y4T25Qcm90bycpCisgICAgeyJhdHRyT25Q
cm90byIsIFRlc3RPYmpJbnRlcm5hbDo6YXR0ck9uUHJvdG9BdHRyR2V0dGVyLCBUZXN0T2JqSW50
ZXJuYWw6OmF0dHJPblByb3RvQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMSAvKiBvbiBwcm90byAqL30sCiAgICAgLy8gQXR0cmli
dXRlICdYTUxPYmpBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJY
TUxPYmpBdHRyIiwgVGVzdE9iakludGVybmFsOjpYTUxPYmpBdHRyQXR0ckdldHRlciwgVGVzdE9i
akludGVybmFsOjpYTUxPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8g
QXR0cmlidXRlICdjcmVhdGUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbAppbmRleCBhMGY0MTg4NDkyOGY5OGMwZTQ1NTJjZDJiM2FkNzY2YzA2MzMy
Nzc4Li4yN2ViNjlmNDY3Yjk2NDJiMzBjNWYxNjM2NzJiMzdjNjdmMTljNjA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsCkBAIC0yNCwxMCArMjQsOSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEdl
bmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAgICBJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QK
ICAgICBdIEVsZW1lbnQgOiBOb2RlIHsKLQogICAgICAgICAvLyBET00gTGV2ZWwgMSBDb3JlCiAK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyB0YWdOYW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90bywg
Q29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgdGFnTmFtZTsKIAogICAgICAgICBb
Q29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWUpOwogICAgICAgICBbT2xk
U3R5bGVPYmpDXSB2b2lkIHNldEF0dHJpYnV0ZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIERPTVN0cmluZyBuYW1lLApAQCAtNjEsMjMgKzYwLDIzIEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgW09sZFN0eWxlT2JqQ10gYm9vbGVhbiBoYXNBdHRyaWJ1dGVOUyhpbiBbQ29udmVy
dE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmlu
ZyBuYW1lc3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbG9jYWxO
YW1lKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBz
dHlsZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIENTU1N0eWxlRGVj
bGFyYXRpb24gc3R5bGU7CiAKICAgICAgICAgLy8gQ29tbW9uIGV4dGVuc2lvbnMKIAotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBvZmZzZXRMZWZ0OwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyBvZmZzZXRUb3A7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IG9mZnNldFdpZHRoOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBvZmZzZXRIZWln
aHQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IG9mZnNldFBhcmVudDsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpZW50TGVmdDsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgY2xpZW50VG9wOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyBjbGllbnRXaWR0aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2xpZW50
SGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxMZWZ0OwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxUb3A7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHNjcm9sbFdpZHRoOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyBzY3JvbGxIZWlnaHQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBsb25nIG9mZnNldExlZnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBsb25nIG9mZnNldFRvcDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IGxvbmcgb2Zmc2V0V2lkdGg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBsb25nIG9mZnNldEhlaWdodDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJv
dG9dIEVsZW1lbnQgb2Zmc2V0UGFyZW50OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gbG9uZyBjbGllbnRMZWZ0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gbG9uZyBjbGllbnRUb3A7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhP
blByb3RvXSBsb25nIGNsaWVudFdpZHRoOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gbG9uZyBjbGllbnRIZWlnaHQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBsb25nIHNjcm9sbExlZnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBsb25nIHNjcm9sbFRvcDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGxvbmcgc2Nyb2xsV2lkdGg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBsb25nIHNjcm9sbEhlaWdodDsKIAogICAgICAgICB2b2lkIGZvY3VzKCk7CiAg
ICAgICAgIHZvaWQgYmx1cigpOwpAQCAtOTcsNyArOTYsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSk7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZ01hcCBkYXRhc2V0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gRE9NU3RyaW5nTWFwIGRhdGFzZXQ7CiAjZW5kaWYKIAogICAgICAgICAvLyBOb2Rl
U2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKQEAgLTExMSwxMSArMTEwLDExIEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEVsZW1l
bnRUcmF2ZXJzYWwgQVBJCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGZpcnN0
RWxlbWVudENoaWxkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBsYXN0RWxl
bWVudENoaWxkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBwcmV2aW91c0Vs
ZW1lbnRTaWJsaW5nOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBuZXh0RWxl
bWVudFNpYmxpbmc7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNo
aWxkRWxlbWVudENvdW50OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10g
RWxlbWVudCBmaXJzdEVsZW1lbnRDaGlsZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIEVsZW1lbnQgbGFzdEVsZW1lbnRDaGlsZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtWOE9uUHJvdG9dIEVsZW1lbnQgcHJldmlvdXNFbGVtZW50U2libGluZzsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIEVsZW1lbnQgbmV4dEVsZW1lbnRTaWJs
aW5nOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gdW5zaWduZWQgbG9u
ZyBjaGlsZEVsZW1lbnRDb3VudDsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
JiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICAvLyBDU1NPTSBWaWV3IE1vZHVsZSBBUEkK
QEAgLTEyNSw3ICsxMjQsNyBAQCBtb2R1bGUgY29yZSB7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdF
X09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBPYmplY3Rp
dmUtQyBleHRlbnNpb25zCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaW5u
ZXJUZXh0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gRE9NU3RyaW5n
IGlubmVyVGV4dDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQpAQCAtMTM1LDc2ICsxMzQsNzYgQEAgbW9kdWxlIGNv
cmUgewogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9P
QkpFQ1RJVkVfQwogICAgICAgICAvLyBFdmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCi0gICAg
ICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKLSAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jbGljazsKLSAgICAgICAgYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmNvbnRleHRtZW51OwotICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZGJsY2xpY2s7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdlbnRlcjsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdsZWF2ZTsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uZHJhZ3N0YXJ0OwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uZHJvcDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbmVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25pbnB1dDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmludmFsaWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25r
ZXlkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5
cHJlc3M7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXl1
cDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3VzZWRvd247Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3VzZW91dDsKLSAg
ICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3ZlcjsKLSAg
ICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3VzZXdoZWVsOwotICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2Nyb2xsOwotICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OwotICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3VibWl0OwotCi0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jYW5wbGF5OwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uY2FucGxheXRocm91Z2g7Ci0g
ICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNo
YW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVt
cHRpZWQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25l
bmRlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxv
YWRlZGRhdGE7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25sb2FkZWRtZXRhZGF0YTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmxvYWRzdGFydDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbnBhdXNlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ucGxheTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbnBsYXlpbmc7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25wcm9ncmVzczsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZl
bnRMaXN0ZW5lciBvbnJhdGVjaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2Vla2VkOwotICAgICAgICAvLyBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2Vla2luZzsKLSAgICAgICAgLy8gYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNob3c7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zdGFsbGVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3VzcGVuZDsKLSAgICAgICAgLy8gYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnRpbWV1cGRhdGU7Ci0gICAgICAgIC8vIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb252b2x1bWVjaGFuZ2U7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb253YWl0aW5nOworICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKKyAg
ICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmx1
cjsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uY2hhbmdlOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25jbGljazsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uY29udGV4dG1lbnU7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRibGNsaWNrOworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnOworICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25kcmFnZW5kOwor
ICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25k
cmFnZW50ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmRyYWdsZWF2ZTsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uZHJhZ292ZXI7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdzdGFydDsKKyAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZHJvcDsKKyAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZv
Y3VzOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25pbnB1dDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9uaW52YWxpZDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJv
dG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CisgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleXVwOworICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkOworICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25tb3Vz
ZWRvd247CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0
ZW5lciBvbm1vdXNlbW92ZTsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubW91c2VvdXQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
LCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3ZlcjsKKyAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubW91c2V1cDsKKyAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubW91c2V3aGVl
bDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uc2Nyb2xsOworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25zZWxlY3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbnN1Ym1pdDsKKworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Q
cm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jYW5wbGF5OworICAgICAgICAvLyBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jYW5wbGF5dGhyb3Vn
aDsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uZHVyYXRpb25jaGFuZ2U7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVtcHRpZWQ7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBb
VjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOworICAgICAgICAvLyBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2FkZWRkYXRh
OworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25sb2FkZWRtZXRhZGF0YTsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OworICAgICAgICAvLyBhdHRyaWJ1dGUg
W1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25wYXVzZTsKKyAgICAgICAgLy8g
YXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucGxheTsKKyAg
ICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
cGxheWluZzsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ucHJvZ3Jlc3M7CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnJhdGVjaGFuZ2U7CisgICAgICAgIC8vIGF0dHJpYnV0
ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnJlYWR5c3RhdGVjaGFuZ2U7
CisgICAgICAgIC8vIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbnNlZWtlZDsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uc2Vla2luZzsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8s
IERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2hvdzsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtW
OE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3RhbGxlZDsKKyAgICAgICAgLy8g
YXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3VzcGVuZDsK
KyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9udGltZXVwZGF0ZTsKKyAgICAgICAgLy8gYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9udm9sdW1lY2hhbmdlOworICAgICAgICAvLyBhdHRyaWJ1dGUgW1Y4
T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb253YWl0aW5nOwogCiAgICAgICAgIC8v
IFdlYktpdCBleHRlbnNpb25zCi0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25iZWZvcmVjdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25jdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25iZWZvcmVjb3B5OwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uY29weTsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJl
Zm9yZXBhc3RlOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
cGFzdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25yZXNl
dDsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlYXJjaDsK
LSAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0
OwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxF
bmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsKLSAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGlt
ZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKLSAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5l
ciBvbnRvdWNoZW5kOwotICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtLENvbmRpdGlvbmFsPVRP
VUNIX0VWRU5UUyxFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hjYW5jZWw7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJ
XSBFdmVudExpc3RlbmVyIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZTsKLSAgICAgICAgYXR0cmli
dXRlIFtEb250RW51bSwgQ29uZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEldIEV2ZW50TGlzdGVuZXIg
b253ZWJraXRmdWxsc2NyZWVuZXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJlZm9yZWN1dDsKKyAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG8sIERvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uY3V0OworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjb3B5OworICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25jb3B5
OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25iZWZvcmVwYXN0ZTsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIERvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9ucGFzdGU7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbnJlc2V0OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
bywgRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CisgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvLCBEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0OworICAgICAg
ICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5U
UywgRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoc3RhcnQ7CisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvLCBEb250RW51bSwgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRT
LCBFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2htb3ZlOworICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywg
RW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoZW5kOworICAgICAgICBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgRW5h
YmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOworICAgICAgICBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgRG9udEVudW0sIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBF
dmVudExpc3RlbmVyIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZTsKKyAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG8sIERvbnRFbnVtLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRM
aXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5lcnJvcjsKICNlbmRpZgogICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmlkbAppbmRleCA4YmIzMzQ5YzAzNTkxMDEyYjgyNWVjNGI2MzNmMjdlZTFkNWRjNjNiLi44
MTllZmM2NjYxMmU4MGQ1YjA5OGU0MjY2ODIyODgwYjM0MzFhMjE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRs
CkBAIC01MSwyMSArNTEsMjEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgICAgICAgICA9IDExOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PVEFUSU9OX05PREUgICAgICAgICAgICAgICAg
ICA9IDEyOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdU
bz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5vZGVOYW1lOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAg
ICAgIG5vZGVOYW1lOwogCiAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgc3BlYyBzYXlz
IHRoaXMgY2FuIGFsc28gcmFpc2Ugb24gcmV0cmlldmFsLgotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyAgICAgICAgbm9kZVZhbHVlCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgICAgICAgIG5vZGVWYWx1ZQogICAgICAgICAgICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCAgIG5vZGVUeXBlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSAgICAgICAgICAgICBwYXJlbnROb2RlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZUxpc3QgICAgICAgICBjaGlsZE5vZGVzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSAgICAgICAgICAgICBmaXJzdENoaWxkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSAgICAgICAgICAgICBsYXN0Q2hpbGQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
ICAgICAgICAgICAgIHByZXZpb3VzU2libGluZzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGUgICAgICAgICAgICAgbmV4dFNpYmxpbmc7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOYW1lZE5vZGVNYXAgICAgIGF0dHJpYnV0ZXM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBEb2N1bWVudCAgICAgICAgIG93bmVyRG9jdW1lbnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhPblByb3RvXSB1bnNpZ25lZCBzaG9ydCAgIG5vZGVUeXBlOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZSAgICAgICAgICAgICBwYXJlbnROb2RlOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZUxpc3QgICAgICAgICBj
aGlsZE5vZGVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gTm9kZSAg
ICAgICAgICAgICBmaXJzdENoaWxkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Q
cm90b10gTm9kZSAgICAgICAgICAgICBsYXN0Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBOb2RlICAgICAgICAgICAgIHByZXZpb3VzU2libGluZzsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIE5vZGUgICAgICAgICAgICAgbmV4dFNp
Ymxpbmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBOYW1lZE5vZGVN
YXAgICAgIGF0dHJpYnV0ZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBEb2N1bWVudCAgICAgICAgIG93bmVyRG9jdW1lbnQ7CiAKICAgICAgICAgW09sZFN0eWxlT2Jq
QywgQ3VzdG9tXSBOb2RlIGluc2VydEJlZm9yZShpbiBbUmV0dXJuXSBOb2RlIG5ld0NoaWxkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGUg
cmVmQ2hpbGQpCkBAIC04NywxOSArODcsMTkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbT2xk
U3R5bGVPYmpDXSBib29sZWFuIGlzU3VwcG9ydGVkKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIGZlYXR1cmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHZlcnNpb24pOwogCi0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5h
bWVzcGFjZVVSSTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmlu
Z1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIHByZWZp
eAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5hbWVzcGFjZVVSSTsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgcHJlZml4CiAgICAgICAgICAgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIGxvY2Fs
TmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxs
U3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICBsb2NhbE5hbWU7CiAKICAgICAgICAgYm9v
bGVhbiAgICAgICAgICAgIGhhc0F0dHJpYnV0ZXMoKTsKIAogICAgICAgICAvLyBJbnRyb2R1Y2Vk
IGluIERPTSBMZXZlbCAzOgogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51
bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgYmFzZVVSSTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3Ry
aW5nICAgICAgIGJhc2VVUkk7CiAKICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBzcGVj
IHNheXMgdGhpcyBjYW4gYWxzbyByYWlzZSBvbiByZXRyaWV2YWwuCi0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgdGV4dENvbnRlbnQKICAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBib29sZWFuICAgICAg
ICAgICAgaXNTYW1lTm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUg
b3RoZXIpOwpAQCAtMTMxLDExICsxMzEsMTEgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmIC8qIDAg
Ki8KIAogICAgICAgICAvLyBJRSBleHRlbnNpb25zCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBFbGVtZW50ICAgICAgICAgIHBhcmVudEVsZW1lbnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBFbGVtZW50ICAgICAgICAgIHBhcmVudEVsZW1lbnQ7CiAKICNpZiBk
ZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAg
ICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb25zCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuICAgICAgICAgIGlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4T25Qcm90b10gYm9vbGVhbiAgICAgICAgICBpc0NvbnRlbnRFZGl0YWJsZTsK
ICNlbmRpZiAvKiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAqLwogCiAjaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERp
dkVsZW1lbnQuaWRsCmluZGV4IDkwZmI4NGY4ZjVkZWI5YzhkMmQ2Y2ZiMjQ5YTQ0NzA2NmI5Nzg0
Y2EuLmY2OTRiZDAxNzlmODNlMWE4YzAwZDA3ZmZmYTRkNmNjYmUzNGM0NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUgaHRt
bCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTERpdkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90bywgUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggNzI1Nzc1NWFlNmQzM2Q0NGI5NmY3OTc0
N2QyNWE1OTRhOTVhMjhkYi4uZDg4ODg4ZDhlMDljZWUxZWRlY2VmNTkxZTYyNzk4ZTY3MTI1N2U5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKQEAgLTI2LDI3ICsyNiwyNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgXSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgewogICAgICAgICAgICAg
ICAgICAvLyBpaHQuY29tIHJlbGllcyBvbiBpZCByZXR1cm5pbmcgdGhlIGVtcHR5IHN0cmluZyB3
aGVuIG5vIGlkIGlzIHByZXNlbnQuIAogICAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2Vy
cyBkbyB0aGlzIGFzIHdlbGwuIFNvIHdlIGRvbid0IGNvbnZlcnQgbnVsbCB0byBKUyBudWxsLgot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBpZDsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGl0bGU7Ci0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGxhbmc7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGRpcjsKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0PWNsYXNzXSBET01TdHJpbmcgY2xhc3NOYW1lOwotICAgICAg
ICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IGNsYXNzTGlzdDsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxlY3RdIERPTVN0cmluZyBp
ZDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxlY3RdIERPTVN0
cmluZyB0aXRsZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIFJlZmxl
Y3RdIERPTVN0cmluZyBsYW5nOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
bywgUmVmbGVjdF0gRE9NU3RyaW5nIGRpcjsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG8sIFJlZmxlY3Q9Y2xhc3NdIERPTVN0cmluZyBjbGFzc05hbWU7CisgICAgICAgICAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBET01Ub2tlbkxpc3QgY2xhc3NM
aXN0OwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICB0YWJJ
bmRleDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgIGRyYWdn
YWJsZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2Vi
a2l0ZHJvcHpvbmU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBoaWRkZW47Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGxvbmcg
ICAgICAgICAgICAgIHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Q
cm90b10gYm9vbGVhbiAgICAgICAgICAgZHJhZ2dhYmxlOworICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW1Y4T25Qcm90bywgUmVmbGVjdF0gRE9NU3RyaW5nIHdlYmtpdGRyb3B6b25lOworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgUmVmbGVjdF0gYm9vbGVhbiBoaWRk
ZW47CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBSZWZsZWN0XSBET01T
dHJpbmcgYWNjZXNzS2V5OwogCi0gICAgICAgIC8vIEV4dGVuc2lvbnMKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRN
TAorICAgICAgICAgICAgICAgICAvLyBFeHRlbnNpb25zCisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVy
SFRNTAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgaW5uZXJUZXh0CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVyVGV4dAogICAgICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb3V0ZXJIVE1MCisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIG91dGVySFRNTAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG91
dGVyVGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OwogCiAgICAgICAgIEVsZW1lbnQgaW5zZXJ0QWRqYWNlbnRFbGVtZW50KGluIFtPcHRpb25hbD1D
YWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHdoZXJlLApAQCAtNTksMjMgKzU5LDIzIEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdGV4dCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29s
bGVjdGlvbiBjaGlsZHJlbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IEhUTUxDb2xsZWN0aW9uIGNoaWxkcmVuOwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50RWRpdGFibGUKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG8sIENvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgY29udGVudEVkaXRhYmxlCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90
b10gYm9vbGVhbiBpc0NvbnRlbnRFZGl0YWJsZTsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiBzcGVsbGNoZWNrOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Q
cm90b10gYm9vbGVhbiBzcGVsbGNoZWNrOwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBib29sZWFuIGl0ZW1TY29wZTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxl
VG9rZW5MaXN0IGl0ZW1UeXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPU1JQ1JPREFUQSwgUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaXRlbUlkOworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBSZWZs
ZWN0XSBib29sZWFuIGl0ZW1TY29wZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9u
UHJvdG8sIENvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVR5
cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvLCBDb25kaXRpb25hbD1N
SUNST0RBVEEsIFJlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGl0ZW1JZDsKIAotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVUb2tlbkxp
c3QgaXRlbVJlZjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNS
T0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4T25Qcm90bywgQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRv
a2VuTGlzdCBpdGVtUmVmOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4T25Qcm90bywg
Q29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKIAog
I2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uIHByb3BlcnRpZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhP
blByb3RvLCBDb25kaXRpb25hbD1NSUNST0RBVEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBw
cm9wZXJ0aWVzOwogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5H
VUFHRV9DUFAKQEAgLTg2LDcgKzg2LDcgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAKICNpZiBk
ZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlRGlzcGxheVN0cmluZzsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOE9uUHJvdG9dIERPTVN0cmluZyB0aXRsZURpc3Bs
YXlTdHJpbmc7CiAjZW5kaWYKICAgICB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzMxMTYyNGQ0ZjM2MGI2ZGJlYjA1
ODBhYTMwOTE2YWE1MmRmYWVkYS4uMzUxYzJjYWI2YzAwNjUwZmMyMmQ1MGIzZTZiYTdiMmZjZmVl
ZjZkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTE5ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbbWV0YV1bVjhdIERPTSBhdHRyaWJ1dGVz
IHNob3VsZCBiZSBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNoYWluCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI5NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUDogT25Qcm90byBwYXRjaC4gKFBsZWFz
ZSBzZWUgdGhlIGRvY3VtZW50ICJQZXJmb3JtYW5jZSBJbXBhY3RzIG9mIE1vdmluZworICAgICAg
ICBET00gQXR0cmlidXRlcyB0byBhIFByb3RvdHlwZSBDaGFpbiIgZm9yIG1vcmUgZGV0YWlscy4p
CisKKyAgICAgICAgQWx0aG91Z2ggY3VycmVudGx5IERPTSBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVk
IG9uIGEgcGxhdGZvcm0gb2JqZWN0LAorICAgICAgICB0aGUgc3BlYyBzYXlzIHRoYXQgRE9NIGF0
dHJpYnV0ZXMgd2l0aG91dCB0aGUgW1VuZm9yZ2VhYmxlXSBJREwgc2hvdWxkIGJlIGRlZmluZWQK
KyAgICAgICAgb24gYSBwcm90b3R5cGUgY2hhaW46IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2Vi
YXBpL1dlYklETC8jZXMtYXR0cmlidXRlcworCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgYWxs
IFY4IERPTSBhdHRyaWJ1dGVzIGluIEhUTUxEaXZFbGVtZW50LmlkbCwgSFRNTEVsZW1lbnQuaWRs
LAorICAgICAgICBFbGVtZW50LmlkbCBhbmQgTm9kZS5pZGwgKGV4Y2VwdCBmb3IgYXR0cmlidXRl
cyB0aGF0IGhhdmUgY3VzdG9tIGdldHRlcnMgb3IKKyAgICAgICAgY3VzdG9tIHNldHRlcnMpLCBm
cm9tIGEgcGxhdGZvcm0gaW5zdGFuY2UgdG8gYSBwcm90b3R5cGUgY2hhaW4uCisKKyAgICAgICAg
aW50ZXJmYWNlX2F0dHJpYnV0ZXMuaHRtbCBhbmQgaW50ZXJmYWNlX3Byb3BlcnRpZXMuaHRtbCBj
aGVja3MgaWYgRE9NIGF0dHJpYnV0ZXMKKyAgICAgICAgYXJlIGRlZmluZWQgbm90IG9uIGEgcGxh
dGZvcm0gb2JqZWN0IGJ1dCBvbiBhIHByb3RvdHlwZSBjaGFpbiwgYWNjb3JkaW5nIHRvIHRoZSBz
cGVjLgorCisgICAgICAgICogZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2pzL2ludGVyZmFjZV9wcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9wcm90b3R5cGUtY2hhaW4t
ZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHRoZSB0ZXN0IHJlc3VsdC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2pzL2ludGVyZmFjZV9hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2VfcHJvcGVy
dGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTAxLTE2ICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgbXVsdGlwbGUgQVRfVEFSR0VU
IGV2ZW50IGRpc3BhdGNoaW5nIGluIHJlZ2FyZCB0byBzaGFkb3cgdHJlZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvanMvaW50ZXJmYWNlX2F0dHJpYnV0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDM1ZGI3
MTU2YjVlMTg4NDBiZGI2NDc5MjBhYzQ4NDQ3NGM4NWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNzUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb24gYSBET00gaW50ZXJmYWNlIGFy
ZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuIik7CisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKworZGVidWcoJ1xuLS0tIENoZWNrcyBhIHByb3RvdHlwZSBjaGFpbicp
Oworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18gPT09IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZScs
ICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVt
ZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3Rv
X18uX19wcm90b19fID09PSBFbGVtZW50LnByb3RvdHlwZScsICd0cnVlJyk7CitzaG91bGRCZSgn
ZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90
b3R5cGUnLCAndHJ1ZScpOworCitkZWJ1ZygnXG4tLS0gQ2FsbHMgaGFzT3duUHJvcGVydHkoKScp
Oworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2Un
KTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdIVE1MRWxlbWVudC5wcm90b3R5cGUu
aGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywgJ2ZhbHNlJyk7
IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blByb3Bl
cnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxh
bmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgorCitkZWJ1Zygn
XG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBnZXR0ZXIgZnJvbSBhIHBsYXRmb3JtIG9iamVjdCcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICcnKTsKK3Nob3VsZFRocm93KCdk
aXYuX19wcm90b19fLmxhbmcnKTsKK3Nob3VsZFRocm93KCdkaXYuX19wcm90b19fLl9fcHJvdG9f
Xy5sYW5nJyk7CitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxh
bmcnLCAndW5kZWZpbmVkJyk7CisKK2RlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmlidXRlIHNl
dHRlciBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0Jyk7CitkZWJ1ZygnU2V0cyAiZm9vMSIgb24gZGl2
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Rpdi5sYW5nID0gImZvbzEiJywgJ2ZvbzEnKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZGl2LmxhbmcnLCAnZm9vMScpOworc2hvdWxkVGhyb3co
J2Rpdi5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkVGhyb3coJ2Rpdi5fX3Byb3RvX18uX19wcm90
b19fLmxhbmcnKTsKK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18u
bGFuZycsICd1bmRlZmluZWQnKTsKKworZGVidWcoJ1xuLS0tIFNldHMgImZvbzIiIG9uIEhUTUxE
aXZFbGVtZW50LnByb3RvdHlwZScpOworc2hvdWxkVGhyb3coJ2Rpdi5fX3Byb3RvX18ubGFuZyA9
ICJmb28yIicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYubGFuZycsICdmb28xJyk7Citz
aG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5sYW5nJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJv
dG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19f
Ll9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCitkZWJ1ZygnXG4tLS0gU2V0cyAiZm9v
MyIgb24gSFRNTEVsZW1lbnQucHJvdG90eXBlJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9f
Xy5fX3Byb3RvX18ubGFuZyA9ICJmb28zIicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkaXYu
bGFuZycsICdmb28xJyk7CitzaG91bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5sYW5nJyk7CitzaG91
bGRUaHJvdygnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hvdWxkQmUoJ2Rpdi5f
X3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nJywgJ3VuZGVmaW5lZCcpOworCit2YXIg
dXNlck9iamVjdCA9IG5ldyBPYmplY3QoKTsKK3VzZXJPYmplY3QuX19wcm90b19fID0gSFRNTERp
dkVsZW1lbnQucHJvdG90eXBlOworCitkZWJ1ZygnXG4tLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBn
ZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QnKTsKK3Nob3VsZFRocm93KCd1c2VyT2Jq
ZWN0LmxhbmcnKTsKK3Nob3VsZFRocm93KCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5sYW5nJyk7Citz
aG91bGRUaHJvdygndXNlck9iamVjdC5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnKTsKK3Nob3Vs
ZEJlKCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLmxhbmcnLCAndW5k
ZWZpbmVkJyk7CisKK2RlYnVnKCdcbi0tLSBDYWxscyB0aGUgYXR0cmlidXRlIHNldHRlciBmcm9t
IGEgbm9uLXBsYXRmb3JtIG9iamVjdCcpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QubGFuZyA9
ICJmb280IicpOworc2hvdWxkVGhyb3coJ3VzZXJPYmplY3QuX19wcm90b19fLmxhbmcnKTsKK3No
b3VsZFRocm93KCd1c2VyT2JqZWN0Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycpOworc2hvdWxk
QmUoJ3VzZXJPYmplY3QuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZycsICd1bmRl
ZmluZWQnKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2ludGVy
ZmFjZV9wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2ludGVyZmFjZV9wcm9w
ZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVjYjY0NWY0NDVjNGM0MzMwM2JhZGExYjc5Y2E1MmU4
MTYyZTcxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW50ZXJmYWNl
X3Byb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY29uc3RhbnRzLCBhdHRyaWJ1
dGVzIGFuZCBvcGVyYXRpb25zIG9uIGEgRE9NIGludGVyZmFjZSBhcmUgY29ycmVjdGx5IGltcGxl
bWVudGVkLiIpOworCit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisK
K2RlYnVnKCdcbi0tLSBDb25zdGFudHMgc2hvdWxkIGJlIGRlZmluZWQgYm90aCBvbiB0aGUgaW50
ZXJmYWNlIG9iamVjdCBhbmQgdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LicpOworc2hv
dWxkQmUoJ05vZGUuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ3RydWUnKTsgLy8g
SW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdOb2RlLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0
eSgiRUxFTUVOVF9OT0RFIiknLCAndHJ1ZScpOyAvLyBJbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dC4KK3Nob3VsZEJlKCdkaXYuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpJywgJ2ZhbHNl
Jyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhhc093blBy
b3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5oYXNPd25Q
cm9wZXJ0eSgiRUxFTUVOVF9OT0RFIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90
b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScsICdmYWxzZScpOyAvLyBXcm9uZyBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJv
dG9fXy5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJFTEVNRU5UX05PREUiKScs
ICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5f
X3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18gPT09IE5vZGUucHJvdG90eXBl
JywgJ3RydWUnKTsKKworZGVidWcoJ1xuLS0tIEF0dHJpYnV0ZXMgd2l0aG91dCB0aGUgW1VuZm9y
Z2VhYmxlXSBJREwgc2hvdWxkIGJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0LicpOworc2hvdWxkQmUoJ0hUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIikn
LCAnZmFsc2UnKTsgLy8gSW50ZXJmYWNlIG9iamVjdC4KK3Nob3VsZEJlKCdIVE1MRWxlbWVudC5w
cm90b3R5cGUuaGFzT3duUHJvcGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgibGFuZyIpJywg
J2ZhbHNlJyk7IC8vIFBsYXRmb3JtIG9iamVjdC4KK3Nob3VsZEJlKCdkaXYuX19wcm90b19fLmhh
c093blByb3BlcnR5KCJsYW5nIiknLCAnZmFsc2UnKTsgLy8gV3JvbmcgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QuCitzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJv
cGVydHkoImxhbmciKScsICd0cnVlJyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgor
c2hvdWxkQmUoJ2Rpdi5fX3Byb3RvX18uX19wcm90b19fID09PSBIVE1MRWxlbWVudC5wcm90b3R5
cGUnLCAndHJ1ZScpOworCitkZWJ1ZygnXG4tLS0gQXR0cmlidXRlcyB3aXRoIHRoZSBbVW5mb3Jn
ZWFibGVdIElETCBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgcGxhdGZvcm0gb2JqZWN0LicpOwor
c2hvdWxkQmUoJ3dpbmRvdy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoInRvcCIpJywgJ2ZhbHNl
Jyk7IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ3dpbmRvdy5oYXNP
d25Qcm9wZXJ0eSgidG9wIiknLCAndHJ1ZScpOyAvLyBQbGF0Zm9ybSBvYmplY3QuCisKK2RlYnVn
KCdcbi0tLSBPcGVyYXRpb25zIHNob3VsZCBiZSBkZWZpbmVkIG9uIHRoZSBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdC4nKTsKK3Nob3VsZEJlKCdFbGVtZW50Lmhhc093blByb3BlcnR5KCJnZXRB
dHRyaWJ1dGUiKScsICdmYWxzZScpOyAvLyBJbnRlcmZhY2Ugb2JqZWN0Lgorc2hvdWxkQmUoJ0Vs
ZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICd0cnVlJyk7
IC8vIEludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9w
ZXJ0eSgiZ2V0QXR0cmlidXRlIiknLCAnZmFsc2UnKTsgLy8gUGxhdGZvcm0gb2JqZWN0Lgorc2hv
dWxkQmUoJ2Rpdi5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpJywgJ2Zh
bHNlJyk7IC8vIFdyb25nIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0Lgorc2hvdWxkQmUoJ2Rp
di5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKScsICdm
YWxzZScpOyAvLyBXcm9uZyBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdC4KK3Nob3VsZEJlKCdk
aXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdldEF0dHJp
YnV0ZSIpJywgJ3RydWUnKTsgLy8gSW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitzaG91bGRC
ZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fID09PSBFbGVtZW50LnByb3RvdHlw
ZScsICd0cnVlJyk7CisKK2RlYnVnKCdcbi0tLSBTdGF0aWMgb3BlcmF0aW9ucyBzaG91bGQgYmUg
ZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuJyk7CisvLyBBcmUgdGhl
cmUgYW55IHN0YXRpYyBvcGVyYXRpb25zPyBJIGNvdWxkbid0IGZpbmQgaXQuCisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9wcm90
b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKaW5kZXggMmRiMjAxMTE3
ZDcyZGIwNGIzMWViYjA3ZjUyYmIxNTU3ZjU5MGUzYS4uMDQ0ZGZjMmE1OWVjNGU5ODIzY2E1NWE5
Y2RmZTQwNzZmNWFhN2VjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBl
Y3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRoaXMgcGFnZSBwcmludHMgb3V0IHRoZSBwcm90b3R5
cGUgY2hhaW5zIG9mIHNlbGVjdCBET00gb2JqZWN0cy4gT2xkZXIgdmVyc2lvbnMKIAogTk9URTog
VGhpcyB0ZXN0IHdpbGwgc3RhcnQgZmFpbGluZyBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2Yg
YSByZWxhdGVkIHByb3RvdHlwZSBjaGFpbiBpbiBXZWJDb3JlLiBUaGF0IGRvZXMgbm90IG5lY2Vz
c2FyaWx5IG1lYW4gdGhhdCB5b3UgaGF2ZSBkb25lIHNvbWV0aGluZyB3cm9uZzsgeW91IG1heSBq
dXN0IG5lZWQgdG8gY2hlY2sgaW4gbmV3IHJlc3VsdHMuCiAKLS0tLS0tIFtvYmplY3QgSFRNTERv
Y3VtZW50XSAoNCBwcm90b3R5cGVzKSAtLS0tLQorLS0tLS0gW29iamVjdCBIVE1MRG9jdW1lbnRd
ICg1IHByb3RvdHlwZXMpIC0tLS0tCiAKIFtvYmplY3QgT2JqZWN0XQogCkBAIC0xMiw3ICsxMiwx
MSBAQCBOT1RFOiBUaGlzIHRlc3Qgd2lsbCBzdGFydCBmYWlsaW5nIGlmIHlvdSBjaGFuZ2UgdGhl
IGxheW91dCBvZiBhIHJlbGF0ZWQgcHJvdG90eQogCiBbb2JqZWN0IE9iamVjdF0KIAotLS0tLS0g
W29iamVjdCBIVE1MRGl2RWxlbWVudF0gKDUgcHJvdG90eXBlcykgLS0tLS0KK1tvYmplY3QgT2Jq
ZWN0XQorCistLS0tLSBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XSAoNiBwcm90b3R5cGVzKSAtLS0t
LQorCitbb2JqZWN0IE9iamVjdF0KIAogW29iamVjdCBPYmplY3RdCiAKQEAgLTI0LDcgKzI4LDkg
QEAgTk9URTogVGhpcyB0ZXN0IHdpbGwgc3RhcnQgZmFpbGluZyBpZiB5b3UgY2hhbmdlIHRoZSBs
YXlvdXQgb2YgYSByZWxhdGVkIHByb3RvdHkKIAogW29iamVjdCBPYmplY3RdCiAKLS0tLS0tIFtv
YmplY3QgSFRNTEZvcm1FbGVtZW50XSAoNSBwcm90b3R5cGVzKSAtLS0tLQorLS0tLS0gW29iamVj
dCBIVE1MRm9ybUVsZW1lbnRdICg2IHByb3RvdHlwZXMpIC0tLS0tCisKK1tvYmplY3QgT2JqZWN0
XQogCiBbb2JqZWN0IE9iamVjdF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2pzL2ludGVyZmFjZV9hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmUzNzQzMjUwY2JmN2E5Zjk3N2Q4MjY4MTBiZmMzY2Fh
ZTA4NmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9qcy9pbnRlcmZhY2VfYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MiBA
QAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBhdHRyaWJ1dGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb24gYSBE
T00gaW50ZXJmYWNlIGFyZSBjb3JyZWN0bHkgaW1wbGVtZW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisKKy0tLSBDaGVja3MgYSBwcm90b3R5cGUgY2hhaW4KK1BBU1MgZGl2
Ll9fcHJvdG9fXyA9PT0gSFRNTERpdkVsZW1lbnQucHJvdG90eXBlIGlzIHRydWUKK1BBU1MgZGl2
Ll9fcHJvdG9fXy5fX3Byb3RvX18gPT09IEhUTUxFbGVtZW50LnByb3RvdHlwZSBpcyB0cnVlCitQ
QVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXyA9PT0gRWxlbWVudC5wcm90b3R5
cGUgaXMgdHJ1ZQorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90
b19fID09PSBOb2RlLnByb3RvdHlwZSBpcyB0cnVlCisKKy0tLSBDYWxscyBoYXNPd25Qcm9wZXJ0
eSgpCitQQVNTIEhUTUxFbGVtZW50Lmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgZmFsc2UKK1BB
U1MgSFRNTEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgdHJ1ZQor
UEFTUyBkaXYuaGFzT3duUHJvcGVydHkoImxhbmciKSBpcyBmYWxzZQorUEFTUyBkaXYuX19wcm90
b19fLmhhc093blByb3BlcnR5KCJsYW5nIikgaXMgZmFsc2UKK1BBU1MgZGl2Ll9fcHJvdG9fXy5f
X3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmciKSBpcyB0cnVlCisKKy0tLSBDYWxscyB0aGUg
YXR0cmlidXRlIGdldHRlciBmcm9tIGEgcGxhdGZvcm0gb2JqZWN0CitQQVNTIGRpdi5sYW5nIGlz
ICIiCitQQVNTIGRpdi5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
IERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3Qu
CitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLmxhbmcgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQSBET00gYXR0cmlidXRlIGdldHRlciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0g
b2JqZWN0LgorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZyBpcyB1
bmRlZmluZWQKKworLS0tIENhbGxzIHRoZSBhdHRyaWJ1dGUgc2V0dGVyIGZyb20gYSBwbGF0Zm9y
bSBvYmplY3QKK1NldHMgImZvbzEiIG9uIGRpdgorUEFTUyBkaXYubGFuZyA9ICJmb28xIiBpcyAi
Zm9vMSIKK1BBU1MgZGl2LmxhbmcgaXMgImZvbzEiCitQQVNTIGRpdi5fX3Byb3RvX18ubGFuZyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxl
ZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19f
LmxhbmcgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQSBET00gYXR0cmlidXRlIGdldHRlciBp
cyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0LgorUEFTUyBkaXYuX19wcm90b19fLl9f
cHJvdG9fXy5fX3Byb3RvX18ubGFuZyBpcyB1bmRlZmluZWQKKworLS0tIFNldHMgImZvbzIiIG9u
IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZQorUEFTUyBkaXYuX19wcm90b19fLmxhbmcgPSAiZm9v
MiIgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQSBET00gYXR0cmlidXRlIHNldHRlciBpcyBj
YWxsZWQgYnkgYSBub24tcGxhdGZvcm0gb2JqZWN0LgorUEFTUyBkaXYubGFuZyBpcyAiZm9vMSIK
K1BBU1MgZGl2Ll9fcHJvdG9fXy5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9N
IGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BB
U1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmpl
Y3QuCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVm
aW5lZAorCistLS0gU2V0cyAiZm9vMyIgb24gSFRNTEVsZW1lbnQucHJvdG90eXBlCitQQVNTIGRp
di5fX3Byb3RvX18uX19wcm90b19fLmxhbmcgPSAiZm9vMyIgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQSBET00gYXR0cmlidXRlIHNldHRlciBpcyBjYWxsZWQgYnkgYSBub24tcGxhdGZvcm0g
b2JqZWN0LgorUEFTUyBkaXYubGFuZyBpcyAiZm9vMSIKK1BBU1MgZGl2Ll9fcHJvdG9fXy5sYW5n
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2Fs
bGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3Rv
X18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVy
IGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIGRpdi5fX3Byb3RvX18u
X19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVmaW5lZAorCistLS0gQ2FsbHMgdGhlIGF0
dHJpYnV0ZSBnZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QKK1BBU1MgdXNlck9iamVj
dC5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0ZXIg
aXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5fX3By
b3RvX18ubGFuZyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0
dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9ybSBvYmplY3QuCitQQVNTIHVzZXJPYmplY3Qu
X19wcm90b19fLl9fcHJvdG9fXy5sYW5nIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9N
IGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BB
U1MgdXNlck9iamVjdC5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVm
aW5lZAorCistLS0gQ2FsbHMgdGhlIGF0dHJpYnV0ZSBzZXR0ZXIgZnJvbSBhIG5vbi1wbGF0Zm9y
bSBvYmplY3QKK1BBU1MgdXNlck9iamVjdC5sYW5nID0gImZvbzQiIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBzZXR0ZXIgaXMgY2FsbGVkIGJ5IGEgbm9uLXBsYXRm
b3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5fX3Byb3RvX18ubGFuZyB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1w
bGF0Zm9ybSBvYmplY3QuCitQQVNTIHVzZXJPYmplY3QuX19wcm90b19fLl9fcHJvdG9fXy5sYW5n
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEEgRE9NIGF0dHJpYnV0ZSBnZXR0ZXIgaXMgY2Fs
bGVkIGJ5IGEgbm9uLXBsYXRmb3JtIG9iamVjdC4KK1BBU1MgdXNlck9iamVjdC5fX3Byb3RvX18u
X19wcm90b19fLl9fcHJvdG9fXy5sYW5nIGlzIHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvanMvaW50ZXJmYWNlX3Byb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9qcy9pbnRlcmZhY2VfcHJv
cGVydGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI5MzFlMDMwZDEwY2MxMGZlODc5Mzkz
MWRiODhhNzBhMDU0MjQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvanMvaW50ZXJmYWNlX3Byb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNDIgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY29uc3RhbnRzLCBhdHRyaWJ1dGVzIGFu
ZCBvcGVyYXRpb25zIG9uIGEgRE9NIGludGVyZmFjZSBhcmUgY29ycmVjdGx5IGltcGxlbWVudGVk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCistLS0gQ29uc3RhbnRzIHNob3Vs
ZCBiZSBkZWZpbmVkIGJvdGggb24gdGhlIGludGVyZmFjZSBvYmplY3QgYW5kIHRoZSBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdC4KK1BBU1MgTm9kZS5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVOVF9O
T0RFIikgaXMgdHJ1ZQorUEFTUyBOb2RlLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiRUxFTUVO
VF9OT0RFIikgaXMgdHJ1ZQorUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIp
IGlzIGZhbHNlCitQQVNTIGRpdi5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9E
RSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5
KCJFTEVNRU5UX05PREUiKSBpcyBmYWxzZQorUEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5f
X3Byb3RvX18uaGFzT3duUHJvcGVydHkoIkVMRU1FTlRfTk9ERSIpIGlzIGZhbHNlCitQQVNTIGRp
di5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHko
IkVMRU1FTlRfTk9ERSIpIGlzIHRydWUKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fLl9fcHJvdG9fXyA9PT0gTm9kZS5wcm90b3R5cGUgaXMgdHJ1ZQorCistLS0gQXR0cmli
dXRlcyB3aXRob3V0IHRoZSBbVW5mb3JnZWFibGVdIElETCBzaG91bGQgYmUgZGVmaW5lZCBvbiB0
aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitQQVNTIEhUTUxFbGVtZW50Lmhhc093blBy
b3BlcnR5KCJsYW5nIikgaXMgZmFsc2UKK1BBU1MgSFRNTEVsZW1lbnQucHJvdG90eXBlLmhhc093
blByb3BlcnR5KCJsYW5nIikgaXMgdHJ1ZQorUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoImxhbmci
KSBpcyBmYWxzZQorUEFTUyBkaXYuX19wcm90b19fLmhhc093blByb3BlcnR5KCJsYW5nIikgaXMg
ZmFsc2UKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImxhbmci
KSBpcyB0cnVlCitQQVNTIGRpdi5fX3Byb3RvX18uX19wcm90b19fID09PSBIVE1MRWxlbWVudC5w
cm90b3R5cGUgaXMgdHJ1ZQorCistLS0gQXR0cmlidXRlcyB3aXRoIHRoZSBbVW5mb3JnZWFibGVd
IElETCBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgcGxhdGZvcm0gb2JqZWN0LgorUEFTUyB3aW5k
b3cuX19wcm90b19fLmhhc093blByb3BlcnR5KCJ0b3AiKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cu
aGFzT3duUHJvcGVydHkoInRvcCIpIGlzIHRydWUKKworLS0tIE9wZXJhdGlvbnMgc2hvdWxkIGJl
IGRlZmluZWQgb24gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0LgorUEFTUyBFbGVtZW50
Lmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKSBpcyBmYWxzZQorUEFTUyBFbGVtZW50LnBy
b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiZ2V0QXR0cmlidXRlIikgaXMgdHJ1ZQorUEFTUyBkaXYu
aGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3Byb3Rv
X18uaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZSIpIGlzIGZhbHNlCitQQVNTIGRpdi5fX3By
b3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJnZXRBdHRyaWJ1dGUiKSBpcyBmYWxzZQor
UEFTUyBkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoImdl
dEF0dHJpYnV0ZSIpIGlzIHRydWUKK1BBU1MgZGl2Ll9fcHJvdG9fXy5fX3Byb3RvX18uX19wcm90
b19fID09PSBFbGVtZW50LnByb3RvdHlwZSBpcyB0cnVlCisKKy0tLSBTdGF0aWMgb3BlcmF0aW9u
cyBzaG91bGQgYmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123047</attachid>
            <date>2012-01-18 18:10:15 -0800</date>
            <delta_ts>2012-01-18 18:10:15 -0800</delta_ts>
            <desc>WIP: Patch to measure the overhead of DOM attributes</desc>
            <filename>bug-75297-20120119111013.patch</filename>
            <type>text/plain</type>
            <size>72550</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGEzNjQ4YWZhOTJkOTgz
Y2RiOGY1ZjMzZDc1N2NmZDc2YzJkODAyMi4uMDZhODRmN2Q5MWMzMTk2MjRhYzdjODUwMDdiNzdm
ZTE2NzRmNWY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTAxLTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbbWV0YV1bVjhdIERP
TSBhdHRyaWJ1dGVzIHNob3VsZCBiZSBkZWZpbmVkIG9uIGEgcHJvdG90eXBlIGNoYWluCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUDogVGhlIHBhdGNo
IHRvIG1lYXN1cmUgdGhlIG92ZXJoZWFkcyBvZiBET00gYXR0cmlidXRlIGdldHRlcnMgYW5kIHNl
dHRlcnMKKyAgICAgICAgaW4gZGV0YWlsLiBUaGlzIHBhdGNoIGFkZGVzIHNwZWNpYWwgYnVzeUxv
b3AqIERPTSBhdHRyaWJ1dGVzIHRvIEhUTUxEaXZFbGVtZW50LmlkbCwKKyAgICAgICAgSFRNTEVs
ZW1lbnQuaWRsLCBFbGVtZW50LmlkbCBhbmQgTm9kZS5pZGwsIHRvIG1lYXN1cmUgdGhlIG92ZXJo
ZWFkcy4KKyAgICAgICAgKFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50ICJQZXJmb3JtYW5jZSBJbXBh
Y3RzIG9mIE1vdmluZyBET00gQXR0cmlidXRlcyB0byBhIFByb3RvdHlwZSBDaGFpbiIKKyAgICAg
ICAgZm9yIG1vcmUgZGV0YWlscy4pCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbToKKyAgICAgICAgLSBNb2RpZmllZCBhcyBkZXNjcmliZWQgYWJvdmUuCisg
ICAgICAgIC0gUmVuYW1lZCBbdjhPblByb3RvXSB0byBbVjhPblByb3RvXS4KKyAgICAgICAgLSBN
b2RpZmllZCB0byBnZW5lcmF0ZSB0aGUgY29kZSBmb3IgYnVzeUxvb3AqIHNwZWNpYWwgRE9NIGF0
dHJpYnV0ZXMuCisgICAgICAgIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50ICJQZXJmb3JtYW5jZSBJ
bXBhY3RzIG9mIE1vdmluZyBET00gQXR0cmlidXRlcyB0byBhIFByb3RvdHlwZSBDaGFpbiIKKyAg
ICAgICAgZm9yIG1vcmUgZXhwbGFuYXRpb25zIGFib3V0IHdoYXQgY29kZSBzaG91bGQgYmUgZ2Vu
ZXJhdGVkIGZvciB0aG9zZSBzcGVjaWFsIERPTSBhdHRyaWJ1dGVzLgorICAgICAgICAoR2VuZXJh
dGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0clNldHRlcik6
CisgICAgICAgIChHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1dGUpOgorICAgICAgICAoR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbik6CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVzeUxvb3ApOiBSdW5zIGEgYnVzeSBsb29wIGZvciBn
aXZlbiBuYW5vIHNlY29uZHMuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisK
KyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6IEFkZGVkIHRoZSBzcGVjaWFsIGJ1c3lMb29wKiBE
T00gYXR0cmlidXRlcy4KKyAgICAgICAgKiBkb20vTm9kZS5pZGw6IERpdHRvLgorICAgICAgICAq
IGh0bWwvSFRNTERpdkVsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmlkbDogRGl0dG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGw6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIHRoZSBzcGVjaWFsIGJ1c3lMb29wKiBET00gYXR0
cmlidXRlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouY3BwOiBVcGRhdGVkIHRoZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgIChXZWJET01UZXN0T2Jq
OjpidXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpz
ZXRCdXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpi
dXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KToKKyAgICAgICAgKFdl
YkRPTVRlc3RPYmo6OnNldEJ1c3lMb29wMTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1l
bnQpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6YnVzeUxvb3AxMDBPblByb3RvRWxlbWVudCk6
CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRCdXN5TG9vcDEwME9uUHJvdG9FbGVtZW50KToK
KyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudCk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRCdXN5TG9vcDEwME9uUHJv
dG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0
X29ial9nZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X2VsZW1lbnQpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X29ial9zZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X2VsZW1lbnQpOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X3dpdGhfc2Vj
dXJpdHlfY2hlY2tfZWxlbWVudCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9i
dXN5X2xvb3AxMF9vbl9vYmplY3Rfd2l0aF9zZWN1cml0eV9jaGVja19lbGVtZW50KToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2J1c3lfbG9vcDEwX29uX3Byb3RvX2VsZW1lbnQp
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfYnVzeV9sb29wMTBfb25fcHJvdG9f
ZWxlbWVudCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9idXN5X2xvb3AxMF9v
bl9wcm90b193aXRoX3NlY3VyaXR5X2NoZWNrX2VsZW1lbnQpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfYnVzeV9sb29wMTBfb25fcHJvdG9fd2l0aF9zZWN1cml0eV9jaGVja19l
bGVtZW50KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCdXN5TG9vcDEwME9uUHJvdG9FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpCdXN5TG9vcDEwME9u
T2JqZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpCdXN5TG9vcDEw
ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE9iakJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqQnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRl
c3RPYmogYnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnRdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBzZXRCdXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudDpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBidXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50XSk6CisgICAgICAg
ICgtW0RPTVRlc3RPYmogc2V0QnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxl
bWVudDpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBidXN5TG9vcDEwME9uUHJvdG9FbGVtZW50
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0QnVzeUxvb3AxMDBPblByb3RvRWxlbWVudDpd
KToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBidXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlD
aGVja0VsZW1lbnRdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRCdXN5TG9vcDEwME9uUHJv
dG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJu
YWw6OmJ1c3lMb29wMTAwT25PYmplY3RFbGVtZW50QXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqSW50ZXJuYWw6OmJ1c3lMb29wMTAwT25PYmplY3RFbGVtZW50QXR0clNldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmJ1c3lMb29wMTAwT25PYmpl
Y3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnRBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxl
bWVudEF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpidXN5
TG9vcDEwME9uUHJvdG9FbGVtZW50QXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqSW50ZXJuYWw6OmJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnRBdHRyU2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3Vy
aXR5Q2hlY2tFbGVtZW50QXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50
ZXJuYWw6OmJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudEF0dHJTZXR0
ZXIpOgorCiAyMDEyLTAxLTE2ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbXBsZW1lbnQgbXVsdGlwbGUgQVRfVEFSR0VUIGV2ZW50IGRpc3BhdGNoaW5nIGlu
IHJlZ2FyZCB0byBzaGFkb3cgdHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggN2IxODRhN2ExYzg0ZmVjMDQxZTg5NmNl
ZDdmMDUwOTg1MzQxM2Q3OS4uNDMxZjFmNjk3ZTYwYWQyOTdjOWJiYTQwYTI1MzBhMjYyYjYxYjk0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KQEAgLTg0NSwyMiArODQ1LDMxIEBAIEVORAogRU5ECiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KLSAgICB9IGVsc2lmICgkYXR0ckV4dC0+eyJ2OE9uUHJvdG8ifSB8fCAkYXR0ckV4
dC0+eyJWOERpc2FsbG93U2hhZG93aW5nIn0pIHsKKyAgICB9IGVsc2lmICgkYXR0ck5hbWUgPX4g
L15idXN5TG9vcChcZCspLykgeworICAgICAgICBteSAkbmFub3NlYyA9ICQxOworICAgICAgICBp
ZiAoJGF0dHJOYW1lID1+IC9XaXRoU2VjdXJpdHlDaGVjay8pIHsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICBWOCR7aW50ZXJmYWNlTmFtZX06OkdldFRl
bXBsYXRlKCktPkhhc0luc3RhbmNlKGluZm8uVGhpcygpKTsKK0VORAorICAgICAgICB9CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICBidXN5TG9vcCgkbmFub3Nl
Yyk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworfQorRU5ECisgICAgICAg
IHJldHVybjsKKyAgICB9IGVsc2lmICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSB8fCAkYXR0ckV4
dC0+eyJWOERpc2FsbG93U2hhZG93aW5nIn0pIHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8
PEVORCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRlcigp
OworICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSk7CiBFTkQKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICMg
cGVyZm9ybSBsb29rdXAgZmlyc3QKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
IDw8RU5EKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IFY4RE9NV3JhcHBl
cjo6bG9va3VwRE9NV3JhcHBlcihWOCR7aW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlKCksIGlu
Zm8uVGhpcygpKTsKLSAgICBpZiAoaG9sZGVyLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHY4
OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIGlmICghVjgke2ludGVyZmFjZU5hbWV9OjpHZXRU
ZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSkpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJBIERPTSBhdHRyaWJ1dGUgZ2V0dGVyIGlzIGNhbGxlZCBieSBhIG5vbi1wbGF0Zm9y
bSBvYmplY3QiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICR7aW1wbENsYXNzTmFtZX0qIGlt
cCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5UaGlzKCkpOwogRU5ECiAgICAg
ICAgIH0KLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgICR7aW1w
bENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaG9sZGVyKTsK
LUVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwogICAgICAgICBteSAkdXJs
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVVJMIn07CkBA
IC0xMDY0LDIyICsxMDczLDMzIEBAIEVORAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+
cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTtcbiIp
OwogICAgICAgICB9Ci0gICAgfSBlbHNpZiAoJGF0dHJFeHQtPnsidjhPblByb3RvIn0pIHsKLSAg
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCA8PEVORCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xk
ZXIgPSBpbmZvLkhvbGRlcigpOworICAgIH0gZWxzaWYgKCRhdHRyTmFtZSA9fiAvXmJ1c3lMb29w
KFxkKykvKSB7CisgICAgICAgIG15ICRuYW5vc2VjID0gJDE7CisgICAgICAgIGlmICgkYXR0ck5h
bWUgPX4gL1dpdGhTZWN1cml0eUNoZWNrLykgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOworICAgIFY4JHtpbnRlcmZhY2VOYW1lfTo6R2V0VGVtcGxhdGUoKS0+
SGFzSW5zdGFuY2UoaW5mby5UaGlzKCkpOwogRU5ECi0gICAgICB9IGVsc2UgewotICAgICAgICAj
IHBlcmZvcm0gbG9va3VwIGZpcnN0CisgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gVjhE
T01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4JHtpbnRlcmZhY2VOYW1lfTo6R2V0VGVtcGxh
dGUoKSwgaW5mby5UaGlzKCkpOwotICAgIGlmIChob2xkZXIuSXNFbXB0eSgpKQorICAgIGJ1c3lM
b29wKCRuYW5vc2VjKTsKKyAgICByZXR1cm47Cit9CitFTkQKICAgICAgICAgcmV0dXJuOworICAg
IH0gZWxzaWYgKCRhdHRyRXh0LT57IlY4T25Qcm90byJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgPDxFTkQpOworICAgICR7aW1wbENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xhc3NO
YW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiBFTkQKLSAgICAgIH0KLSAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCA8PEVORCk7Ci0gICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gVjgk
e2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShob2xkZXIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgIGlmICghVjgke2lu
dGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSkpIHsK
KyAgICAgICAgdGhyb3dFcnJvcigiQSBET00gYXR0cmlidXRlIHNldHRlciBpcyBjYWxsZWQgYnkg
YSBub24tcGxhdGZvcm0gb2JqZWN0IiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAke2ltcGxDbGFzc05hbWV9KiBpbXAgPSBWOCR7aW1wbENsYXNzTmFt
ZX06OnRvTmF0aXZlKGluZm8uVGhpcygpKTsKIEVORAorICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgbXkgJGF0dHJUeXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlKTsKICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07CkBAIC0yMDAzLDcgKzIwMjMsNyBAQCBz
dWIgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlCiAgICAgfQogCiAgICAgIyBBbiBhY2Nl
c3NvciBjYW4gYmUgaW5zdGFsbGVkIG9uIHRoZSBwcm90bwotICAgIGlmICgkYXR0ckV4dC0+eyJ2
OE9uUHJvdG8ifSkgeworICAgIGlmICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSkgewogICAgICAg
ICAkb25fcHJvdG8gPSAiMSAvKiBvbiBwcm90byAqLyI7CiAgICAgfQogCkBAIC0yMjU1LDcgKzIy
NzUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCRhdHRyVHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgJiYgJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKLSAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57InY4T25Qcm90byJ9ID0gMTsKKyAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4T25Qcm90byJ9ID0gMTsKICAgICAgICAg
fQogCiAgICAgICAgICMgQXR0cmlidXRlcyBvZiB0eXBlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBh
cmUgc2V0IGluIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggOWRhYzJkYThhOWFiMDkwMmZk
YTI1ODVlNDU5ZTA4MDUyZDNjNDZhMy4uMjMwNmY2OTZkNGJhMzBjMTE1YTM4N2ZjYTczNjVkZDVl
YWQ1NGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC03MjMsNiArNzIzLDcwIEBAIFdlYkRP
TVN0cmluZyBXZWJET01UZXN0T2JqOjpoYXNoKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgV1RGOjpTdHJpbmcmPihpbXBsKCktPmhhc2goKSk7CiB9CiAKK2ludCBXZWJET01U
ZXN0T2JqOjpidXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFp
bXBsKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGltcGwoKS0+YnVzeUxvb3Ax
MDBPbk9iamVjdEVsZW1lbnQoKTsKK30KKwordm9pZCBXZWJET01UZXN0T2JqOjpzZXRCdXN5TG9v
cDEwME9uT2JqZWN0RWxlbWVudChpbnQgbmV3QnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQpCit7
CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+c2V0QnVz
eUxvb3AxMDBPbk9iamVjdEVsZW1lbnQobmV3QnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQpOwor
fQorCitpbnQgV2ViRE9NVGVzdE9iajo6YnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybiAw
OworCisgICAgcmV0dXJuIGltcGwoKS0+YnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudCgpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldEJ1c3lMb29wMTAwT25P
YmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoaW50IG5ld0J1c3lMb29wMTAwT25PYmplY3RX
aXRoU2VjdXJpdHlDaGVja0VsZW1lbnQpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGltcGwoKS0+c2V0QnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudChuZXdCdXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50
KTsKK30KKworaW50IFdlYkRPTVRlc3RPYmo6OmJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoKSBj
b25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBpbXBsKCktPmJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoKTsKK30KKwordm9pZCBXZWJET01U
ZXN0T2JqOjpzZXRCdXN5TG9vcDEwME9uUHJvdG9FbGVtZW50KGludCBuZXdCdXN5TG9vcDEwME9u
UHJvdG9FbGVtZW50KQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpbXBsKCktPnNldEJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQobmV3QnVzeUxvb3AxMDBPblBy
b3RvRWxlbWVudCk7Cit9CisKK2ludCBXZWJET01UZXN0T2JqOjpidXN5TG9vcDEwME9uUHJvdG9X
aXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBpbXBsKCktPmJ1c3lMb29wMTAwT25Qcm90b1dp
dGhTZWN1cml0eUNoZWNrRWxlbWVudCgpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldEJ1
c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudChpbnQgbmV3QnVzeUxvb3Ax
MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KQoreworICAgIGlmICghaW1wbCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPnNldEJ1c3lMb29wMTAwT25Qcm90b1dpdGhT
ZWN1cml0eUNoZWNrRWxlbWVudChuZXdCdXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVj
a0VsZW1lbnQpOworfQorCiB2b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogewogICAg
IGlmICghaW1wbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAppbmRleCA0M2ZkOThjMDI5YTY0ZDRmZGUzZjdm
NzIwYWFhMzk1NWM3YjRmYzAyLi4xNDlmOTZmZmI0NmI1M2E4ODM5YWFjM2Q1MzU2ZDg2NDM5ODA4
MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAtMTYwLDYgKzE2MCwxNCBAQCBwdWJsaWM6CiAgICAg
aW50IGlkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRJZChpbnQpOwogICAgIFdlYkRPTVN0cmluZyBo
YXNoKCkgY29uc3Q7CisgICAgaW50IGJ1c3lMb29wMTAwT25PYmplY3RFbGVtZW50KCkgY29uc3Q7
CisgICAgdm9pZCBzZXRCdXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudChpbnQpOworICAgIGludCBi
dXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KCkgY29uc3Q7CisgICAg
dm9pZCBzZXRCdXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KGludCk7
CisgICAgaW50IGJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoKSBjb25zdDsKKyAgICB2b2lkIHNl
dEJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoaW50KTsKKyAgICBpbnQgYnVzeUxvb3AxMDBPblBy
b3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KCkgY29uc3Q7CisgICAgdm9pZCBzZXRCdXN5TG9v
cDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoaW50KTsKIAogICAgIHZvaWQgdm9p
ZE1ldGhvZCgpOwogICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGludCBpbnRBcmcsIGNvbnN0
IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCA3MDE0N2NiODEwYmZiMGYxNDliNmM2
MjhjMWU3OGM1NTc0MjM0ODRlLi4wZjdhODM3ZGMxMDhlODFlZTY3MmRlMmY0MTkxN2FkNmZiMGFl
YjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMTI4OCw2ICsxMjg4
LDgyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2hhc2goV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZikKICAgICByZXR1cm4gcmVzOwogfQogCitnaW50Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9i
dXN5X2xvb3AxMF9vbl9vYmplY3RfZWxlbWVudChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBnaW50IHJlcyA9IGl0ZW0tPmJ1c3lMb29wMTAwT25PYmplY3RF
bGVtZW50KCk7CisgICAgcmV0dXJuIHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29i
al9zZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X2VsZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2ludCB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRCdXN5TG9vcDEwME9uT2Jq
ZWN0RWxlbWVudCh2YWx1ZSk7Cit9CisKK2dpbnQKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2J1
c3lfbG9vcDEwX29uX29iamVjdF93aXRoX3NlY3VyaXR5X2NoZWNrX2VsZW1lbnQoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVz
dE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2ludCByZXMgPSBpdGVtLT5i
dXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KCk7CisgICAgcmV0dXJu
IHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYnVzeV9sb29wMTBfb25f
b2JqZWN0X3dpdGhfc2VjdXJpdHlfY2hlY2tfZWxlbWVudChXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnaW50IHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPnNldEJ1c3lMb29wMTAwT25PYmpl
Y3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQodmFsdWUpOworfQorCitnaW50Cit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9idXN5X2xvb3AxMF9vbl9wcm90b19lbGVtZW50KFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmog
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdpbnQgcmVzID0gaXRlbS0+YnVzeUxv
b3AxMDBPblByb3RvRWxlbWVudCgpOworICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X2J1c3lfbG9vcDEwX29uX3Byb3RvX2VsZW1lbnQoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2ludCB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3Jl
OjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRCdXN5
TG9vcDEwME9uUHJvdG9FbGVtZW50KHZhbHVlKTsKK30KKworZ2ludAord2Via2l0X2RvbV90ZXN0
X29ial9nZXRfYnVzeV9sb29wMTBfb25fcHJvdG9fd2l0aF9zZWN1cml0eV9jaGVja19lbGVtZW50
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2Vs
ZiwgMCk7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdpbnQgcmVz
ID0gaXRlbS0+YnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KCk7Cisg
ICAgcmV0dXJuIHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYnVzeV9s
b29wMTBfb25fcHJvdG9fd2l0aF9zZWN1cml0eV9jaGVja19lbGVtZW50KFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdpbnQgdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVz
dE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaXRlbS0+c2V0QnVzeUxvb3Ax
MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KHZhbHVlKTsKK30KKwogCiBHX0RFRklO
RV9UWVBFKFdlYktpdERPTVRlc3RPYmosIHdlYmtpdF9kb21fdGVzdF9vYmosIFdFQktJVF9UWVBF
X0RPTV9PQkpFQ1QpCiAKQEAgLTEzNTEsNiArMTQyNywxMCBAQCBlbnVtIHsKICAgICBQUk9QX0RF
U0NSSVBUSU9OLAogICAgIFBST1BfSUQsCiAgICAgUFJPUF9IQVNILAorICAgIFBST1BfQlVTWV9M
T09QMTBfT05fT0JKRUNUX0VMRU1FTlQsCisgICAgUFJPUF9CVVNZX0xPT1AxMF9PTl9PQkpFQ1Rf
V0lUSF9TRUNVUklUWV9DSEVDS19FTEVNRU5ULAorICAgIFBST1BfQlVTWV9MT09QMTBfT05fUFJP
VE9fRUxFTUVOVCwKKyAgICBQUk9QX0JVU1lfTE9PUDEwX09OX1BST1RPX1dJVEhfU0VDVVJJVFlf
Q0hFQ0tfRUxFTUVOVCwKIH07CiAKIApAQCAtMTcyOCw2ICsxODA4LDI2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgR1ZhCiAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRU
b1VURjhTdHJpbmcoY29yZVNlbGYtPmhhc2goKSkpOwogICAgICAgICBicmVhazsKICAgICB9Cisg
ICAgY2FzZSBQUk9QX0JVU1lfTE9PUDEwX09OX09CSkVDVF9FTEVNRU5UOgorICAgIHsKKyAgICAg
ICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBjb3JlU2VsZi0+YnVzeUxvb3AxMDBPbk9iamVjdEVs
ZW1lbnQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfQlVTWV9MT09Q
MTBfT05fT0JKRUNUX1dJVEhfU0VDVVJJVFlfQ0hFQ0tfRUxFTUVOVDoKKyAgICB7CisgICAgICAg
IGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgY29yZVNlbGYtPmJ1c3lMb29wMTAwT25PYmplY3RXaXRo
U2VjdXJpdHlDaGVja0VsZW1lbnQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IFBST1BfQlVTWV9MT09QMTBfT05fUFJPVE9fRUxFTUVOVDoKKyAgICB7CisgICAgICAgIGdfdmFs
dWVfc2V0X2ludCh2YWx1ZSwgY29yZVNlbGYtPmJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoKSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfQlVTWV9MT09QMTBfT05fUFJP
VE9fV0lUSF9TRUNVUklUWV9DSEVDS19FTEVNRU5UOgorICAgIHsKKyAgICAgICAgZ192YWx1ZV9z
ZXRfaW50KHZhbHVlLCBjb3JlU2VsZi0+YnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hl
Y2tFbGVtZW50KCkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTIwNTYsNiArMjE1Niw0MiBAQCBHX01BWExPTkcsIC8q
IG1heCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVhZC1vbmx5ICBnY2hhciogVGVzdE9iai5oYXNoIiwgLyogbG9uZ2VyIC0g
Y291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9CVVNZX0xPT1AxMF9PTl9PQkpFQ1RfRUxFTUVOVCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQoImJ1c3ktbG9vcDEwLW9u
LW9iamVjdC1lbGVtZW50IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYnVzeS1sb29wMTAtb24t
b2JqZWN0LWVsZW1lbnQiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAg
Z2ludCBUZXN0T2JqLmJ1c3ktbG9vcDEwLW9uLW9iamVjdC1lbGVtZW50IiwgLyogbG9uZ2VyIC0g
Y291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOSU5ULCAv
KiBtaW4gKi8KK0dfTUFYSU5ULCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9C
VVNZX0xPT1AxMF9PTl9PQkpFQ1RfV0lUSF9TRUNVUklUWV9DSEVDS19FTEVNRU5ULAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgiYnVzeS1sb29w
MTAtb24tb2JqZWN0LXdpdGgtc2VjdXJpdHktY2hlY2stZWxlbWVudCIsIC8qIG5hbWUgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InRlc3Rfb2JqX2J1c3ktbG9vcDEwLW9uLW9iamVjdC13aXRoLXNlY3VyaXR5LWNoZWNrLWVsZW1l
bnQiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2ludCBUZXN0T2Jq
LmJ1c3ktbG9vcDEwLW9uLW9iamVjdC13aXRoLXNlY3VyaXR5LWNoZWNrLWVsZW1lbnQiLCAvKiBs
b25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19N
SU5JTlQsIC8qIG1pbiAqLworR19NQVhJTlQsIC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUk9QX0JVU1lfTE9PUDEwX09OX1BST1RPX0VMRU1FTlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KCJidXN5LWxvb3AxMC1vbi1wcm90by1l
bGVtZW50IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYnVzeS1sb29wMTAtb24tcHJvdG8tZWxl
bWVudCIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnaW50IFRlc3RP
YmouYnVzeS1sb29wMTAtb24tcHJvdG8tZWxlbWVudCIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdp
dGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTklOVCwgLyogbWluICovCitH
X01BWElOVCwgLyogbWF4ICovCiswLCAvKiBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUpKTsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQlVTWV9MT09QMTBf
T05fUFJPVE9fV0lUSF9TRUNVUklUWV9DSEVDS19FTEVNRU5ULAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgiYnVzeS1sb29wMTAtb24tcHJvdG8t
d2l0aC1zZWN1cml0eS1jaGVjay1lbGVtZW50IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYnVz
eS1sb29wMTAtb24tcHJvdG8td2l0aC1zZWN1cml0eS1jaGVjay1lbGVtZW50IiwgLyogc2hvcnQg
ZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdpbnQgVGVzdE9iai5idXN5LWxvb3AxMC1v
bi1wcm90by13aXRoLXNlY3VyaXR5LWNoZWNrLWVsZW1lbnQiLCAvKiBsb25nZXIgLSBjb3VsZCBk
byB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5JTlQsIC8qIG1pbiAq
LworR19NQVhJTlQsIC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CiAKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4IGE2
MGI5N2VlYTM4ZjAyYjc1ZDE1YmQzMzVjM2E0MmViNDI5M2JkNzMuLmUzNmM1N2QzZmQ5ZWY5N2Y5
N2Y1MWJjMDNlNzAzM2EzYThkNWFkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgK
QEAgLTExNjAsNiArMTE2MCw5MCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9pZChXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiBXRUJLSVRfQVBJIGdjaGFyKgogd2Via2l0
X2RvbV90ZXN0X29ial9nZXRfaGFzaChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAorLyoqCisg
KiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9idXN5X2xvb3AxMF9vbl9vYmplY3RfZWxlbWVudDoK
KyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8K
K1dFQktJVF9BUEkgZ2ludAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25f
b2JqZWN0X2VsZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8qKgorICogd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X2VsZW1lbnQ6CisgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQHZhbHVlOiBBICNnaW50CisgKgorICogUmV0dXJu
czoKKyAqCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYnVz
eV9sb29wMTBfb25fb2JqZWN0X2VsZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludCB2
YWx1ZSk7CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25f
b2JqZWN0X3dpdGhfc2VjdXJpdHlfY2hlY2tfZWxlbWVudDoKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgZ2ludAord2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25fb2JqZWN0X3dpdGhfc2VjdXJpdHlf
Y2hlY2tfZWxlbWVudChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF9idXN5X2xvb3AxMF9vbl9vYmplY3Rfd2l0aF9zZWN1cml0eV9jaGVj
a19lbGVtZW50OgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEB2YWx1ZTogQSAj
Z2ludAorICoKKyAqIFJldHVybnM6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2J1c3lfbG9vcDEwX29uX29iamVjdF93aXRoX3NlY3VyaXR5X2NoZWNr
X2VsZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludCB2YWx1ZSk7CisKKy8qKgorICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25fcHJvdG9fZWxlbWVudDoKKyAq
IEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dF
QktJVF9BUEkgZ2ludAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25fcHJv
dG9fZWxlbWVudChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9idXN5X2xvb3AxMF9vbl9wcm90b19lbGVtZW50OgorICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKKyAqIEB2YWx1ZTogQSAjZ2ludAorICoKKyAqIFJldHVybnM6Cisg
KgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2J1c3lfbG9v
cDEwX29uX3Byb3RvX2VsZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludCB2YWx1ZSk7
CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYnVzeV9sb29wMTBfb25fcHJvdG9f
d2l0aF9zZWN1cml0eV9jaGVja19lbGVtZW50OgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKKyAqCisgKiBSZXR1cm5zOgorICoKKyoqLworV0VCS0lUX0FQSSBnaW50Cit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9idXN5X2xvb3AxMF9vbl9wcm90b193aXRoX3NlY3VyaXR5X2NoZWNrX2Vs
ZW1lbnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYnVzeV9sb29wMTBfb25fcHJvdG9fd2l0aF9zZWN1cml0eV9jaGVja19lbGVtZW50
OgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEB2YWx1ZTogQSAjZ2ludAorICoK
KyAqIFJldHVybnM6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2J1c3lfbG9vcDEwX29uX3Byb3RvX3dpdGhfc2VjdXJpdHlfY2hlY2tfZWxlbWVudChX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50IHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAogI2Vu
ZGlmIC8qIFdlYktpdERPTVRlc3RPYmpfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBlOTFhMTE0MDM4OTY2
ZmM3MmQ4OTU3NjQ3YjI1NjU1YTVlOTAzMmY1Li42M2U3OWM5MTE4NjZiMjE0YTE1ZDg1ZThlZjMx
OTRmN2E1MTI0Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTM1LDExICsxMzUsMTUgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogICAgIHsgImRlc2Ny
aXB0aW9uIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakRlc2NyaXB0aW9uKSwgKGludHB0cl90
KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiaWQiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iaklkKSwgKGludHB0
cl90KXNldEpTVGVzdE9iaklkLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImhhc2giLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqSGFzaCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAg
IHsgImJ1c3lMb29wMTAwT25PYmplY3RFbGVtZW50IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpCdXN5TG9vcDEw
ME9uT2JqZWN0RWxlbWVudCksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpCdXN5TG9vcDEwME9uT2Jq
ZWN0RWxlbWVudCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJidXN5TG9vcDEwME9uT2JqZWN0V2l0
aFNlY3VyaXR5Q2hlY2tFbGVtZW50IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpCdXN5TG9vcDEwME9uT2JqZWN0
V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KSwgKGludHB0cl90KXNldEpTVGVzdE9iakJ1c3lMb29w
MTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQsIE5vSW50cmluc2ljIH0sCisgICAg
eyAiYnVzeUxvb3AxMDBPblByb3RvRWxlbWVudCIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQnVzeUxvb3AxMDBP
blByb3RvRWxlbWVudCksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpCdXN5TG9vcDEwME9uUHJvdG9F
bGVtZW50LCBOb0ludHJpbnNpYyB9LAorICAgIHsgImJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1
cml0eUNoZWNrRWxlbWVudCIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQnVzeUxvb3AxMDBPblByb3RvV2l0aFNl
Y3VyaXR5Q2hlY2tFbGVtZW50KSwgKGludHB0cl90KXNldEpTVGVzdE9iakJ1c3lMb29wMTAwT25Q
cm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjb25z
dHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
MCwgTm9JbnRyaW5zaWMgfSwKICAgICB7IDAsIDAsIDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAK
LXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqVGFibGUgPSB7IDEzNiwgMTI3LCBKU1Rl
c3RPYmpUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RPYmpU
YWJsZSA9IHsgMTM3LCAxMjcsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07CiAvKiBIYXNoIHRh
YmxlIGZvciBjb25zdHJ1Y3RvciAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KQEAgLTc5OCw2ICs4MDIsNDYgQEAgSlNW
YWx1ZSBqc1Rlc3RPYmpIYXNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29u
c3QgSWRlbnRpZmllciYpCiB9CiAKIAorSlNWYWx1ZSBqc1Rlc3RPYmpCdXN5TG9vcDEwME9uT2Jq
ZWN0RWxlbWVudChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmJ1c3lMb29wMTAwT25PYmpl
Y3RFbGVtZW50KCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworSlNWYWx1ZSBqc1Rlc3RP
YmpCdXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJh
c2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRp
Y19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNOdW1iZXIoaW1wbC0+YnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxl
bWVudCgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKK0pTVmFsdWUganNUZXN0T2JqQnVz
eUxvb3AxMDBPblByb3RvRWxlbWVudChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOworICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmJ1c3lM
b29wMTAwT25Qcm90b0VsZW1lbnQoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitKU1Zh
bHVlIGpzVGVzdE9iakJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQorewor
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0
eUNoZWNrRWxlbWVudCgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RPYmoqIGRvbU9iamVjdCA9IHN0YXRpY19jYXN0
PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0xMTA2LDYgKzExNTAsMzggQEAg
dm9pZCBzZXRKU1Rlc3RPYmpJZChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogfQogCiAKK3ZvaWQgc2V0SlNUZXN0T2JqQnVzeUxvb3AxMDBPbk9i
amVjdEVsZW1lbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rl
c3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVz
dE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1wbC0+c2V0QnVzeUxvb3AxMDBPbk9i
amVjdEVsZW1lbnQodG9pbnQodmFsdWUpKTsKK30KKworCit2b2lkIHNldEpTVGVzdE9iakJ1c3lM
b29wMTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0
T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Cisg
ICAgaW1wbC0+c2V0QnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudCh0
b2ludCh2YWx1ZSkpOworfQorCisKK3ZvaWQgc2V0SlNUZXN0T2JqQnVzeUxvb3AxMDBPblByb3Rv
RWxlbWVudChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9i
aio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpbXBsLT5zZXRCdXN5TG9vcDEwME9uUHJvdG9F
bGVtZW50KHRvaW50KHZhbHVlKSk7Cit9CisKKwordm9pZCBzZXRKU1Rlc3RPYmpCdXN5TG9vcDEw
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2JqKiBp
bXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1w
bC0+c2V0QnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KHRvaW50KHZh
bHVlKSk7Cit9CisKKwogSlNWYWx1ZSBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gZ2V0
RE9NQ29uc3RydWN0b3I8SlNUZXN0T2JqQ29uc3RydWN0b3I+KGV4ZWMsIHN0YXRpY19jYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYWU0MDQxZGU2N2E5
YmNlYWY1YjRiMTM2OTc3Y2U4NzU5NDE2ZmYyMy4uNDcxMTRlYmZjY2U4MWZlZGI0NjQ1ODY2YTFl
Yzc5Y2RkM2Q4MjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMjc1LDYgKzI3NSwxNCBAQCBKU0M6OkpTVmFsdWUg
anNUZXN0T2JqRGVzY3JpcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0
IEpTQzo6SWRlbgogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqSWQo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNW
YWx1ZSBqc1Rlc3RPYmpIYXNoKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OklkZW50aWZpZXImKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpCdXN5TG9vcDEwME9uT2Jq
ZWN0RWxlbWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakJ1c3lMb29wMTAwT25PYmplY3RFbGVtZW50KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFs
dWUganNUZXN0T2JqQnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2
b2lkIHNldEpTVGVzdE9iakJ1c3lMb29wMTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1l
bnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6
SlNWYWx1ZSBqc1Rlc3RPYmpCdXN5TG9vcDEwME9uUHJvdG9FbGVtZW50KEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0
T2JqQnVzeUxvb3AxMDBPblByb3RvRWxlbWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakJ1c3lMb29wMTAwT25Q
cm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakJ1c3lMb29wMTAw
T25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsK
IC8vIENvbnN0YW50cwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggMjgyOTk1YWU4OTEzYTFiMTg3ZTE2YjQy
ZjNmZjhiOTRjNjE3OWFlYi4uZTQ3ZWM5MjA0OTJmOWEzZTQ0ZGVhNDRkNmE5ODdjMDhmZmNmNmQ2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmouaApAQCAtMTU1LDYgKzE1NSwxNCBAQCBlbnVtIHsKIC0gKGludClpZE5h
bWU7CiAtICh2b2lkKXNldElkTmFtZTooaW50KW5ld0lkTmFtZTsKIC0gKE5TU3RyaW5nICopaGFz
aE5hbWU7CistIChpbnQpYnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQ7CistICh2b2lkKXNldEJ1
c3lMb29wMTAwT25PYmplY3RFbGVtZW50OihpbnQpbmV3QnVzeUxvb3AxMDBPbk9iamVjdEVsZW1l
bnQ7CistIChpbnQpYnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsK
Ky0gKHZvaWQpc2V0QnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDoo
aW50KW5ld0J1c3lMb29wMTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CistIChp
bnQpYnVzeUxvb3AxMDBPblByb3RvRWxlbWVudDsKKy0gKHZvaWQpc2V0QnVzeUxvb3AxMDBPblBy
b3RvRWxlbWVudDooaW50KW5ld0J1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQ7CistIChpbnQpYnVz
eUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworLSAodm9pZClzZXRCdXN5
TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ6KGludCluZXdCdXN5TG9vcDEw
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CiAtICh2b2lkKXZvaWRNZXRob2Q7CiAt
ICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczooaW50KWludEFyZyBzdHJBcmc6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKGludClpbnRNZXRob2Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbQppbmRleCAwOGYxZjFlN2FjM2ZkMWNlODM3NzA0M2EwY2YzYjhhMWMzNDlhNGY0
Li5mMzA5YmJmMzI3ZDE2ZTU3NDAzMTQ1M2YwODhlYzE3ZTBkZmM3MDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
bW0KQEAgLTYwMiw2ICs2MDIsNTQgQEAKICAgICByZXR1cm4gSU1QTC0+aGFzaCgpOwogfQogCist
IChpbnQpYnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmJ1c3lMb29wMTAwT25PYmpl
Y3RFbGVtZW50KCk7Cit9CisKKy0gKHZvaWQpc2V0QnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQ6
KGludCluZXdCdXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRCdXN5TG9vcDEwME9uT2JqZWN0
RWxlbWVudChuZXdCdXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudCk7Cit9CisKKy0gKGludClidXN5
TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5idXN5TG9vcDEw
ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KCk7Cit9CisKKy0gKHZvaWQpc2V0QnVz
eUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDooaW50KW5ld0J1c3lMb29w
MTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QnVzeUxvb3AxMDBPbk9iamVj
dFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudChuZXdCdXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3Vy
aXR5Q2hlY2tFbGVtZW50KTsKK30KKworLSAoaW50KWJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQoKTsKK30KKworLSAodm9pZClzZXRCdXN5
TG9vcDEwME9uUHJvdG9FbGVtZW50OihpbnQpbmV3QnVzeUxvb3AxMDBPblByb3RvRWxlbWVudAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5z
ZXRCdXN5TG9vcDEwME9uUHJvdG9FbGVtZW50KG5ld0J1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQp
OworfQorCistIChpbnQpYnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5idXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQoKTsKK30K
KworLSAodm9pZClzZXRCdXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ6
KGludCluZXdCdXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QnVz
eUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50KG5ld0J1c3lMb29wMTAwT25Q
cm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudCk7Cit9CisKIC0gKHZvaWQpdm9pZE1ldGhvZAog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBlZDMzOGM2
YjIxZDcxOGJjZWYzMzI4YzE0MTIyZmFiMzgyNjQ4NDg1Li43OWI2YjVjMGNlYmNkOWNkOGNkYzdh
MjA2MGY5YWJhZGQ5ZGJkMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0yMTgsNSArMjE4LDExIEBAIG1vZHVsZSB0ZXN0IHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTMgPSAwWDIwOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xNCA9IDB4MWFiYzsKICAgICAg
ICAgY29uc3QgW1JlZmxlY3Q9Q09OU1RfSU1QTF0gdW5zaWduZWQgc2hvcnQgQ09OU1RfSkFWQVND
UklQVCA9IDE1OworCisgICAgICAgIC8vIERPTSBzcGVjaWFsIGF0dHJpYnV0ZXMKKyAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgYXR0cmli
dXRlIGludCBidXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTAwT25Qcm90b0VsZW1lbnQ7
CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvV2l0
aFNlY3VyaXR5Q2hlY2tFbGVtZW50OwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDE3YzBhMDNh
ZDJhZTc0YTQ5YmJiMTFiYzc2MTkxZjhiYTE3ZTJhZTIuLjViNGEwMDViNzEwN2M1Njc4Mjc4NWRh
ZTRkZjkwNWM3ZTMzNGZiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC03NzMsNiArNzczLDU4IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFzaEF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4CiAgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+aGFzaCgpKTsKIH0K
IAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBidXN5TG9vcDEwME9uT2JqZWN0RWxlbWVu
dEF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5idXN5TG9vcDEwME9u
T2JqZWN0RWxlbWVudC5fZ2V0Iik7CisgICAgYnVzeUxvb3AoMTAwKTsKKyAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CitzdGF0aWMgdm9pZCBidXN5TG9vcDEwME9uT2JqZWN0
RWxlbWVudEF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmouYnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQuX3NldCIpOwor
ICAgIGJ1c3lMb29wKDEwMCk7CisgICAgcmV0dXJuOworfQorc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBidXN5TG9vcDEwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50QXR0ckdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmJ1c3lMb29wMTAwT25PYmplY3RX
aXRoU2VjdXJpdHlDaGVja0VsZW1lbnQuX2dldCIpOworICAgIFY4VGVzdE9iajo6R2V0VGVtcGxh
dGUoKS0+SGFzSW5zdGFuY2UoaW5mby5UaGlzKCkpOworICAgIGJ1c3lMb29wKDEwMCk7CisgICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworfQorc3RhdGljIHZvaWQgYnVzeUxvb3Ax
MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudEF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYnVzeUxvb3Ax
MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudC5fc2V0Iik7CisgICAgVjhUZXN0T2Jq
OjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSk7CisgICAgYnVzeUxvb3Ao
MTAwKTsKKyAgICByZXR1cm47Cit9CitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGJ1c3lM
b29wMTAwT25Qcm90b0VsZW1lbnRBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmouYnVzeUxvb3AxMDBPblByb3RvRWxlbWVudC5fZ2V0Iik7CisgICAgYnVzeUxvb3AoMTAw
KTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CitzdGF0aWMgdm9pZCBi
dXN5TG9vcDEwME9uUHJvdG9FbGVtZW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5idXN5TG9vcDEwME9uUHJvdG9F
bGVtZW50Ll9zZXQiKTsKKyAgICBidXN5TG9vcCgxMDApOworICAgIHJldHVybjsKK30KK3N0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hl
Y2tFbGVtZW50QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmJ1c3lM
b29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudC5fZ2V0Iik7CisgICAgVjhUZXN0
T2JqOjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSk7CisgICAgYnVzeUxv
b3AoMTAwKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CitzdGF0aWMg
dm9pZCBidXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnRBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLmJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudC5fc2V0Iik7Cisg
ICAgVjhUZXN0T2JqOjpHZXRUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZShpbmZvLlRoaXMoKSk7Cisg
ICAgYnVzeUxvb3AoMTAwKTsKKyAgICByZXR1cm47Cit9CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFRlc3RPYmpDb25zdHJ1Y3RvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLmNvbnN0cnVjdG9ycy5fZ2V0Iik7CkBAIC0xNTcwLDYgKzE2MjIsMTQgQEAgc3RhdGlj
IGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJpZCIsIFRl
c3RPYmpJbnRlcm5hbDo6aWRBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OmlkQXR0clNldHRl
ciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRF
RkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAv
KiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdoYXNoJyAoVHlwZTogJ3JlYWRv
bmx5IGF0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJoYXNoIiwgVGVzdE9iakludGVybmFs
OjpoYXNoQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdi
dXN5TG9vcDEwME9uT2JqZWN0RWxlbWVudCcgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcn
KQorICAgIHsiYnVzeUxvb3AxMDBPbk9iamVjdEVsZW1lbnQiLCBUZXN0T2JqSW50ZXJuYWw6OmJ1
c3lMb29wMTAwT25PYmplY3RFbGVtZW50QXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpidXN5
TG9vcDEwME9uT2JqZWN0RWxlbWVudEF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8v
IEF0dHJpYnV0ZSAnYnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudCcg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsiYnVzeUxvb3AxMDBPbk9iamVj
dFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudCIsIFRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3AxMDBP
bk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudEF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5h
bDo6YnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudEF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnYnVzeUxvb3AxMDBPblByb3RvRWxl
bWVudCcgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOE9uUHJvdG8nKQorICAgIHsiYnVz
eUxvb3AxMDBPblByb3RvRWxlbWVudCIsIFRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3AxMDBPblBy
b3RvRWxlbWVudEF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3AxMDBPblByb3Rv
RWxlbWVudEF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDEgLyogb24gcHJvdG8gKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnYnVzeUxv
b3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50JyAoVHlwZTogJ2F0dHJpYnV0ZScg
RXh0QXR0cjogJ1Y4T25Qcm90bycpCisgICAgeyJidXN5TG9vcDEwME9uUHJvdG9XaXRoU2VjdXJp
dHlDaGVja0VsZW1lbnQiLCBUZXN0T2JqSW50ZXJuYWw6OmJ1c3lMb29wMTAwT25Qcm90b1dpdGhT
ZWN1cml0eUNoZWNrRWxlbWVudEF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6YnVzeUxvb3Ax
MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50QXR0clNldHRlciwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMSAvKiBvbiBwcm90byAqL30s
CiB9OwogCiBzdGF0aWMgY29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RPYmpDYWxsYmFja3NbXSA9
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCmluZGV4IGEzNmRkNjIw
OGY2MzZhZWZiZmE0ODFhMzc2NjU4NDg5MDc2YTU5MDEuLjU5NzJhOGYzNmMwN2ZlNjg4ODFkMzY3
MzVjN2Q4ZTM2MTBmMDEyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmNwcApAQCAtNjM5LDQgKzYzOSwyMyBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHY4VmFs
dWVUb1dlYkNvcmVET01TdHJpbmdMaXN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YQogICAgIHJl
dHVybiByZXQucmVsZWFzZSgpOwogfQogCit2b2lkIGJ1c3lMb29wKGludCBuYW5vc2VjKQorewor
ICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgbG9uZyB0c2MsIHByZXZUc2MsIGFjY3VtdWxhdGVk
VHNjLCBhY2N1bXVsYXRlZFRzY01heDsKKworICAgIGFjY3VtdWxhdGVkVHNjID0gMDsKKyAgICBh
Y2N1bXVsYXRlZFRzY01heCA9ICh1bnNpZ25lZCBsb25nIGxvbmcpKENQVV9IWiAqIDFlLTkgKiBu
YW5vc2VjKTsKKyAgICBSRFRTQyhwcmV2VHNjKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBS
RFRTQyh0c2MpOworICAgICAgICBpZiAodHNjID4gcHJldlRzYykKKyAgICAgICAgICAgIGFjY3Vt
dWxhdGVkVHNjICs9IHRzYyAtIHByZXZUc2M7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFj
Y3VtdWxhdGVkVHNjICs9IHRzYyArICgoMVVMTCA8PCAzMikgLSBwcmV2VHNjKTsKKyAgICAgICAg
aWYgKGFjY3VtdWxhdGVkVHNjID49IGFjY3VtdWxhdGVkVHNjTWF4KQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIHByZXZUc2MgPSB0c2M7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IDcyNTI5ZTA2
YzYwODczODlhNDRkMDk1MTM5NmRlOTMyMzQ5OGQxOTcuLmZlNzQzMWQ3NGFjZTc3Y2RlYzNhOTNj
ZThhOWY1OGU3MjEwNzVkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
CkBAIC01MTQsNiArNTE0LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTWlzc2lu
Z0lzRW1wdHkKICAgICB9OwogCisjZGVmaW5lIFJEVFNDKFgpIF9fYXNtX18gX192b2xhdGlsZV9f
ICgicmR0c2MiIDogIj1BIiAoWCkpOworI2RlZmluZSBDUFVfSFogKDIuOTMgKiAxMDAwICogMTAw
MCAqIDEwMDApCisKK3ZvaWQgYnVzeUxvb3AoaW50IG5hbm9zZWMpOworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBWOEJpbmRpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmlu
ZGV4IGEwZjQxODg0OTI4Zjk4YzBlNDU1MmNkMmIzYWQ3NjZjMDYzMzI3NzguLjlkNzIyMjQ0NGE5
YjJiMTQ4NDc5NDg1MGJhZjBhYzJhYjU0YzBhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAg
LTI0LDYgKzI0LDEwNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29u
dmVydGVyLAogICAgICAgICBJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QKICAgICBdIEVsZW1lbnQg
OiBOb2RlIHsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDBPbk9iamVj
dEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyME9uT2Jq
ZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQwT25P
YmplY3RFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNjBP
bk9iamVjdEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A4
ME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9v
cDEwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDIwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBi
dXN5TG9vcDMwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDQwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGludCBidXN5TG9vcDUwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIGludCBidXN5TG9vcDYwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIGludCBidXN5TG9vcDcwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDgwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIGludCBidXN5TG9vcDkwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEwMDBPbk9iamVjdEVsZW1lbnQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxMjAwT25PYmplY3RFbGVtZW50OworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTQwME9uT2JqZWN0RWxlbWVudDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE2MDBPbk9iamVjdEVsZW1l
bnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxODAwT25PYmplY3RF
bGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjAwME9uT2Jq
ZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIyMDBP
bk9iamVjdEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3Ay
NDAwT25PYmplY3RFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lM
b29wMjYwME9uT2JqZWN0RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBi
dXN5TG9vcDI4MDBPbk9iamVjdEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBp
bnQgYnVzeUxvb3AzMDAwT25PYmplY3RFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgaW50IGJ1c3lMb29wME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQwT25P
YmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBpbnQgYnVzeUxvb3A2ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wODBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEwME9u
T2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgaW50IGJ1c3lMb29wMjAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDBPbk9iamVjdFdpdGhTZWN1cml0
eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQw
ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgaW50IGJ1c3lMb29wNTAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A2MDBPbk9iamVjdFdpdGhTZWN1
cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9v
cDcwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgaW50IGJ1c3lMb29wODAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A5MDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDEwMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEyMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE0MDBPbk9iamVj
dFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDE2MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE4MDBPbk9iamVjdFdpdGhTZWN1cml0eUNo
ZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIwMDBP
bk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIGludCBidXN5TG9vcDIyMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDI0MDBPbk9iamVjdFdpdGhTZWN1
cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9v
cDI2MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDI4MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDMwMDBPbk9iamVjdFdp
dGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gaW50IGJ1c3lMb29wME9uUHJvdG9FbGVtZW50OworICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjBPblByb3RvRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDQwT25Qcm90b0Vs
ZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxv
b3A2ME9uUHJvdG9FbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90
b10gaW50IGJ1c3lMb29wODBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDEwME9uUHJvdG9FbGVtZW50OworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjAwT25Qcm90b0VsZW1l
bnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3Az
MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IGludCBidXN5TG9vcDQwME9uUHJvdG9FbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNTAwT25Qcm90b0VsZW1lbnQ7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A2MDBPblByb3RvRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDcw
ME9uUHJvdG9FbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10g
aW50IGJ1c3lMb29wODAwT25Qcm90b0VsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A5MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDEwMDBPblByb3RvRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDEy
MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IGludCBidXN5TG9vcDE0MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDE2MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDE4MDBPblByb3RvRWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9v
cDIwMDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJv
dG9dIGludCBidXN5TG9vcDIyMDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDI0MDBPblByb3RvRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDI2MDBPblByb3Rv
RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5
TG9vcDI4MDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9u
UHJvdG9dIGludCBidXN5TG9vcDMwMDBPblByb3RvRWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDBPblByb3RvV2l0aFNlY3VyaXR5Q2hl
Y2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1
c3lMb29wMjBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNDBPblByb3RvV2l0aFNlY3VyaXR5
Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50
IGJ1c3lMb29wNjBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wODBPblByb3RvV2l0aFNlY3Vy
aXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10g
aW50IGJ1c3lMb29wMTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwME9uUHJvdG9XaXRo
U2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvXSBpbnQgYnVzeUxvb3AzMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNDAwT25Qcm90
b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGludCBidXN5TG9vcDUwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A2MDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNzAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9v
cDgwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A5MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hl
Y2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1
c3lMb29wMTAwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMjAwT25Qcm90b1dpdGhTZWN1
cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IGludCBidXN5TG9vcDE0MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTYwME9uUHJvdG9X
aXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvXSBpbnQgYnVzeUxvb3AxODAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwMDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjIwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0Vs
ZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxv
b3AyNDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrRWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDI2MDBPblByb3RvV2l0aFNlY3VyaXR5
Q2hlY2tFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50
IGJ1c3lMb29wMjgwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0VsZW1lbnQ7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AzMDAwT25Qcm90b1dpdGhT
ZWN1cml0eUNoZWNrRWxlbWVudDsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMSBDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmlkbAppbmRleCA4YmIzMzQ5YzAzNTkxMDEyYjgyNWVjNGI2MzNmMjdlZTFkNWRjNjNi
Li44YjFkMGYwNjc1NjljNTM2NzdmN2Q2MmMwOGE0Yjk4ZTcyN2ZmNzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aWRsCkBAIC0zNyw2ICszNywxMDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICA6IE9iamVjdCwg
RXZlbnRUYXJnZXQKICNlbmRpZiAvKiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAqLwog
ICAgICB7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AwT25PYmplY3RO
b2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjBPbk9iamVjdE5v
ZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A0ME9uT2JqZWN0Tm9k
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDYwT25PYmplY3ROb2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wODBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxMDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyMDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A0MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A1MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A2MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A3MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A4MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A5MDBPbk9iamVjdE5vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxMDAwT25PYmplY3ROb2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTIwME9uT2JqZWN0Tm9k
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE0MDBPbk9iamVjdE5v
ZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxNjAwT25PYmplY3RO
b2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTgwME9uT2JqZWN0
Tm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIwMDBPbk9iamVj
dE5vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyMjAwT25PYmpl
Y3ROb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjQwME9uT2Jq
ZWN0Tm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDI2MDBPbk9i
amVjdE5vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyODAwT25P
YmplY3ROb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMzAwME9u
T2JqZWN0Tm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDBPbk9i
amVjdFdpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDIwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A0ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tOb2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNjBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9v
cDgwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBpbnQgYnVzeUxvb3AxMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIwME9uT2JqZWN0V2l0aFNlY3VyaXR5
Q2hlY2tOb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMzAwT25P
YmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBp
bnQgYnVzeUxvb3A0MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDUwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tO
b2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNjAwT25PYmplY3RX
aXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVz
eUxvb3A3MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDgwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tOb2RlOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wOTAwT25PYmplY3RXaXRoU2Vj
dXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3Ax
MDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBpbnQgYnVzeUxvb3AxMjAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxNDAwT25PYmplY3RXaXRoU2VjdXJp
dHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxNjAw
T25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBpbnQgYnVzeUxvb3AxODAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyMDAwT25PYmplY3RXaXRoU2VjdXJpdHlD
aGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyMjAwT25P
YmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBp
bnQgYnVzeUxvb3AyNDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyNjAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVj
a05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyODAwT25PYmpl
Y3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQg
YnVzeUxvb3AzMDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja05vZGU7CisKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDBPblByb3RvTm9kZTsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwT25Qcm90
b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxv
b3A0ME9uUHJvdG9Ob2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10g
aW50IGJ1c3lMb29wNjBPblByb3RvTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGludCBidXN5TG9vcDgwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvTm9kZTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwME9uUHJvdG9Ob2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAw
T25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3A0MDBPblByb3RvTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9u
UHJvdG9dIGludCBidXN5TG9vcDUwME9uUHJvdG9Ob2RlOworICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjAwT25Qcm90b05vZGU7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A3MDBPblByb3RvTm9kZTsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDgwME9u
UHJvdG9Ob2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1
c3lMb29wOTAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvXSBpbnQgYnVzeUxvb3AxMDAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMjAwT25Qcm90b05vZGU7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxNDAwT25Qcm90b05vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxNjAw
T25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AxODAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvXSBpbnQgYnVzeUxvb3AyMDAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMjAwT25Qcm90b05vZGU7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyNDAwT25Qcm90b05v
ZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3Ay
NjAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBp
bnQgYnVzeUxvb3AyODAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3AzMDAwT25Qcm90b05vZGU7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AwT25Qcm90b1dpdGhTZWN1cml0eUNo
ZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5
TG9vcDIwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDQwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNr
Tm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9v
cDYwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDgwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9k
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDEw
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAw
T25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDQwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A1MDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDcwME9u
UHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3A4MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2RlOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wOTAwT25Q
cm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGludCBidXN5TG9vcDEwMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2RlOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTIwME9u
UHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3AxNDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDE2MDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTgwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDAw
T25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9kZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIyMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2Rl
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjQw
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja05vZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyNjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrTm9k
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDI4
MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tOb2RlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja05v
ZGU7CisKICAgICAgICAgLy8gTm9kZVR5cGUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBFTEVNRU5UX05PREUgICAgICAgICAgICAgICAgICAgPSAxOwogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIEFUVFJJQlVURV9OT0RFICAgICAgICAgICAgICAgICA9IDI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCmluZGV4IDkwZmI4NGY4ZjVkZWI5Yzhk
MmQ2Y2ZiMjQ5YTQ0NzA2NmI5Nzg0Y2EuLjdhMDkyZGE0NmNkZWM0NDYzY2Y3OGJiODI3MWFlMTU5
ZjIxMjk2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsCkBAIC0yMCw2
ICsyMCwxMDggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MRGl2RWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDBPbk9iamVj
dEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjBPbk9iamVj
dEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNDBPbk9iamVj
dEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNjBPbk9iamVj
dEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wODBPbk9iamVj
dEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTAwT25PYmpl
Y3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIwME9uT2Jq
ZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDBPbk9i
amVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNDAwT25P
YmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDUwME9u
T2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A2MDBP
bk9iamVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNzAw
T25PYmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDgw
ME9uT2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A5
MDBPbk9iamVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29w
MTAwME9uT2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxv
b3AxMjAwT25PYmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDE0MDBPbk9iamVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1
c3lMb29wMTYwME9uT2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQg
YnVzeUxvb3AxODAwT25PYmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDIwMDBPbk9iamVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUg
aW50IGJ1c3lMb29wMjIwME9uT2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0
ZSBpbnQgYnVzeUxvb3AyNDAwT25PYmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmli
dXRlIGludCBidXN5TG9vcDI2MDBPbk9iamVjdEhUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRy
aWJ1dGUgaW50IGJ1c3lMb29wMjgwME9uT2JqZWN0SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0
dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDAwT25PYmplY3RIVE1MRGl2RWxlbWVudDsKKyAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVs
ZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyME9uT2JqZWN0V2l0aFNlY3Vy
aXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQw
T25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1
dGUgaW50IGJ1c3lMb29wNjBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7
CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A4ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hl
Y2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEwME9uT2Jq
ZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDIwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAg
ICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDMwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tI
VE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQwME9uT2JqZWN0
V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBi
dXN5TG9vcDUwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAg
ICAgYXR0cmlidXRlIGludCBidXN5TG9vcDYwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1M
RGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDcwME9uT2JqZWN0V2l0
aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDgwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDkwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEwMDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxv
b3AxMjAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBh
dHRyaWJ1dGUgaW50IGJ1c3lMb29wMTQwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE2MDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxv
b3AxODAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBh
dHRyaWJ1dGUgaW50IGJ1c3lMb29wMjAwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIyMDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxv
b3AyNDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBh
dHRyaWJ1dGUgaW50IGJ1c3lMb29wMjYwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDI4MDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxv
b3AzMDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworCisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AwT25Qcm90b0hUTUxEaXZFbGVtZW50
OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjBPblByb3RvSFRN
TERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A0
ME9uUHJvdG9IVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGlu
dCBidXN5TG9vcDYwT25Qcm90b0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gaW50IGJ1c3lMb29wODBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvSFRNTERpdkVsZW1lbnQ7
CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDBPblByb3RvSFRN
TERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3Az
MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBp
bnQgYnVzeUxvb3A0MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3A1MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A2MDBPblByb3RvSFRNTERpdkVsZW1l
bnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A3MDBPblByb3Rv
SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxv
b3A4MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBpbnQgYnVzeUxvb3A5MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDAwT25Qcm90b0hUTUxEaXZFbGVtZW50OworICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTIwME9uUHJvdG9IVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDE0MDBP
blByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AxNjAwT25Qcm90b0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgW1Y4
T25Qcm90b10gaW50IGJ1c3lMb29wMTgwME9uUHJvdG9IVE1MRGl2RWxlbWVudDsKKyAgICAgICAg
YXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwMDBPblByb3RvSFRNTERpdkVsZW1l
bnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMjAwT25Qcm90
b0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lM
b29wMjQwME9uUHJvdG9IVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJv
dG9dIGludCBidXN5TG9vcDI2MDBPblByb3RvSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyODAwT25Qcm90b0hUTUxEaXZFbGVtZW50Owor
ICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAwME9uUHJvdG9IVE1M
RGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERp
dkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A0ME9u
UHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDgwT25Q
cm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2
RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwME9u
UHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUg
W1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERp
dkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A0MDBP
blByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1MRGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRl
IFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDUwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxE
aXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjAw
T25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A3MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1M
RGl2RWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDgw
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxEaXZFbGVtZW50OworICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wOTAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRN
TERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3Ax
MDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNr
SFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxv
b3AxNDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxNjAwT25Qcm90b1dpdGhTZWN1cml0eUNo
ZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVz
eUxvb3AxODAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDAwT25Qcm90b1dpdGhTZWN1cml0
eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AyMjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAg
ICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyNDAwT25Qcm90b1dpdGhTZWN1
cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBp
bnQgYnVzeUxvb3AyNjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyODAwT25Qcm90b1dpdGhT
ZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBpbnQgYnVzeUxvb3AzMDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTERpdkVsZW1lbnQ7
CisKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAppbmRleCA3MjU3NzU1YWU2ZDMzZDQ0Yjk2
Zjc5NzQ3ZDI1YTU5NGE5NWEyOGRiLi42ZmE2YzY1Y2ZjNzBkMzk2MDViNTUwMzE2OWE0YjVjYTVi
NzgzNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtMjQsNiArMjQsMTA4
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAg
ICAgIEN1c3RvbVB1c2hFdmVudEhhbmRsZXJTY29wZQogICAgIF0gSFRNTEVsZW1lbnQgOiBFbGVt
ZW50IHsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDBPbk9iamVjdEhU
TUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjBPbk9i
amVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29w
NDBPbk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1
c3lMb29wNjBPbk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
aW50IGJ1c3lMb29wODBPbk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgaW50IGJ1c3lMb29wMTAwT25PYmplY3RIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIGludCBidXN5TG9vcDIwME9uT2JqZWN0SFRNTEVsZW1lbnQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDBPbk9iamVjdEhUTUxFbGVtZW50Owor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wNDAwT25PYmplY3RIVE1MRWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDUwME9uT2JqZWN0
SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A2MDBP
bk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lM
b29wNzAwT25PYmplY3RIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlu
dCBidXN5TG9vcDgwME9uT2JqZWN0SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBpbnQgYnVzeUxvb3A5MDBPbk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTAwME9uT2JqZWN0SFRNTEVsZW1lbnQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxMjAwT25PYmplY3RIVE1MRWxlbWVudDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDE0MDBPbk9iamVjdEhUTUxF
bGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTYwME9uT2Jq
ZWN0SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3Ax
ODAwT25PYmplY3RIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBi
dXN5TG9vcDIwMDBPbk9iamVjdEhUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgaW50IGJ1c3lMb29wMjIwME9uT2JqZWN0SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyNDAwT25PYmplY3RIVE1MRWxlbWVudDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDI2MDBPbk9iamVjdEhUTUxFbGVtZW50Owor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjgwME9uT2JqZWN0SFRNTEVs
ZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AzMDAwT25PYmpl
Y3RIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDBP
bk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBpbnQgYnVzeUxvb3AyME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDQwT25PYmplY3RXaXRo
U2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50
IGJ1c3lMb29wNjBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3A4ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hl
Y2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEw
ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDIwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDMwME9uT2JqZWN0
V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGludCBidXN5TG9vcDQwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDUwME9uT2JqZWN0V2l0aFNlY3Vy
aXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDYwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDcwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tI
VE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDgwME9u
T2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIGludCBidXN5TG9vcDkwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDEwMDBPbk9iamVjdFdp
dGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBp
bnQgYnVzeUxvb3AxMjAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMTQwME9uT2JqZWN0V2l0aFNlY3Vy
aXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5
TG9vcDE2MDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AxODAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVj
a0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW50IGJ1c3lMb29wMjAw
ME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGludCBidXN5TG9vcDIyMDBPbk9iamVjdFdpdGhTZWN1cml0eUNoZWNrSFRNTEVs
ZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQgYnVzeUxvb3AyNDAwT25PYmpl
Y3RXaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgaW50IGJ1c3lMb29wMjYwME9uT2JqZWN0V2l0aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGludCBidXN5TG9vcDI4MDBPbk9iamVjdFdpdGhT
ZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbnQg
YnVzeUxvb3AzMDAwT25PYmplY3RXaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworCisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AwT25Qcm90b0hU
TUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1
c3lMb29wMjBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
VjhPblByb3RvXSBpbnQgYnVzeUxvb3A0ME9uUHJvdG9IVE1MRWxlbWVudDsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDYwT25Qcm90b0hUTUxFbGVt
ZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29w
ODBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDBPblByb3RvSFRNTEVsZW1lbnQ7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AzMDBP
blByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3Rv
XSBpbnQgYnVzeUxvb3A0MDBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A1MDBPblByb3RvSFRNTEVsZW1lbnQ7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A2MDBPblBy
b3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBp
bnQgYnVzeUxvb3A3MDBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A4MDBPblByb3RvSFRNTEVsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A5MDBPblByb3Rv
SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AxMDAwT25Qcm90b0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTIwME9uUHJvdG9IVE1MRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDE0MDBPblByb3Rv
SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AxNjAwT25Qcm90b0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMTgwME9uUHJvdG9IVE1MRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDIwMDBPblByb3Rv
SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AyMjAwT25Qcm90b0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMjQwME9uUHJvdG9IVE1MRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDI2MDBPblByb3Rv
SFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQg
YnVzeUxvb3AyODAwT25Qcm90b0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wMzAwME9uUHJvdG9IVE1MRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5TG9vcDBPblByb3RvV2l0
aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGludCBidXN5TG9vcDIwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1l
bnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A0
ME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjBPblByb3RvV2l0aFNlY3VyaXR5Q2hl
Y2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGlu
dCBidXN5TG9vcDgwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMDBPblByb3RvV2l0
aFNlY3VyaXR5Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtW
OE9uUHJvdG9dIGludCBidXN5TG9vcDIwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVt
ZW50OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29w
MzAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A0MDBPblByb3RvV2l0aFNlY3VyaXR5
Q2hlY2tIVE1MRWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9d
IGludCBidXN5TG9vcDUwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wNjAwT25Qcm90
b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3A3MDBPblByb3RvV2l0aFNlY3VyaXR5Q2hlY2tIVE1M
RWxlbWVudDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtWOE9uUHJvdG9dIGludCBidXN5
TG9vcDgwME9uUHJvdG9XaXRoU2VjdXJpdHlDaGVja0hUTUxFbGVtZW50OworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW1Y4T25Qcm90b10gaW50IGJ1c3lMb29wOTAwT25Qcm90b1dpdGhTZWN1
cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblBy
b3RvXSBpbnQgYnVzeUxvb3AxMDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxMjAw
T25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxNDAwT25Qcm90b1dpdGhTZWN1cml0eUNo
ZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBp
bnQgYnVzeUxvb3AxNjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AxODAwT25Qcm90
b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyMDAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRN
TEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVz
eUxvb3AyMjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AyNDAwT25Qcm90b1dpdGhT
ZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhP
blByb3RvXSBpbnQgYnVzeUxvb3AyNjAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1l
bnQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3Ay
ODAwT25Qcm90b1dpdGhTZWN1cml0eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbVjhPblByb3RvXSBpbnQgYnVzeUxvb3AzMDAwT25Qcm90b1dpdGhTZWN1cml0
eUNoZWNrSFRNTEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
Ly8gaWh0LmNvbSByZWxpZXMgb24gaWQgcmV0dXJuaW5nIHRoZSBlbXB0eSBzdHJpbmcgd2hlbiBu
byBpZCBpcyBwcmVzZW50LiAKICAgICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnMgZG8g
dGhpcyBhcyB3ZWxsLiBTbyB3ZSBkb24ndCBjb252ZXJ0IG51bGwgdG8gSlMgbnVsbC4KICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166635</attachid>
            <date>2012-10-02 01:05:43 -0700</date>
            <delta_ts>2012-10-02 07:11:38 -0700</delta_ts>
            <desc>Patch for performance experiments. Not for review.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>24757</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTUNvbmZpZ3VyYXRpb24uY3Bw
CmluZGV4IGQ2ZGEzMjkuLmQxNmQzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01Db25maWd1cmF0aW9uLmNwcApAQCAtODYsNCArODYsMjggQEAgdjg6OkxvY2Fs
PHY4OjpTaWduYXR1cmU+IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUodjg6
OlBlcnNpc3RlbnQ8djgKICAgICByZXR1cm4gZGVmYXVsdFNpZ25hdHVyZTsKIH0KIAordjg6Okxv
Y2FsPHY4OjpTaWduYXR1cmU+IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUy
KHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBmdW5jdGlvbkRlc2NyaXB0b3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gcGFyZW50Q2xhc3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGZpZWxk
Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSogYXR0cmlidXRlcywgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IGF0dHJpYnV0ZUNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhdGNoZWRDYWxsYmFjayog
Y2FsbGJhY2tzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBjYWxsYmFja0NvdW50KQoreworICAgIGZ1bmN0aW9u
RGVzY3JpcHRvci0+U2V0Q2xhc3NOYW1lKHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChpbnRlcmZhY2VO
YW1lKSk7CisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBmdW5j
dGlvbkRlc2NyaXB0b3ItPkluc3RhbmNlVGVtcGxhdGUoKTsKKyAgICBpbnN0YW5jZS0+U2V0SW50
ZXJuYWxGaWVsZENvdW50KGZpZWxkQ291bnQpOworICAgIGlmICghcGFyZW50Q2xhc3MuSXNFbXB0
eSgpKQorICAgICAgICBmdW5jdGlvbkRlc2NyaXB0b3ItPkluaGVyaXQocGFyZW50Q2xhc3MpOwor
ICAgIGlmIChhdHRyaWJ1dGVDb3VudCkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGF0dHJpYnV0ZUNvdW50OyArK2kpCisgICAgICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUyKGlu
c3RhbmNlLCBmdW5jdGlvbkRlc2NyaXB0b3ItPlByb3RvdHlwZVRlbXBsYXRlKCksIGZ1bmN0aW9u
RGVzY3JpcHRvciwgYXR0cmlidXRlc1tpXSk7CisgICAgfQorICAgIHY4OjpMb2NhbDx2ODo6U2ln
bmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGZ1bmN0aW9uRGVz
Y3JpcHRvcik7CisgICAgaWYgKGNhbGxiYWNrQ291bnQpCisgICAgICAgIGJhdGNoQ29uZmlndXJl
Q2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRvci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgZGVmYXVs
dFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERl
bGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tDb3VudCk7CisgICAgcmV0dXJuIGRlZmF1bHRTaWdu
YXR1cmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKaW5kZXggNmZiNWY1ZS4uZjIxNjhhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgK
QEAgLTcxLDYgKzcxLDIwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLmF0dHJpYnV0
ZSk7CiAgICAgfQogCisgICAgc3RhdGljIGlubGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZTIo
djg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRl
PiBwcm90b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
djg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVtcGwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSYgYXR0cmli
dXRlKQorICAgIHsKKyAgICAgICAgKGF0dHJpYnV0ZS5vblByb3RvdHlwZSA/IHByb3RvdHlwZSA6
IGluc3RhbmNlKS0+U2V0QWNjZXNzb3Iodjg6OlN0cmluZzo6TmV3U3ltYm9sKGF0dHJpYnV0ZS5u
YW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLmdldHRlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
LnNldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdjg6OkV4dGVybmFsOjpXcmFwKGF0dHJpYnV0ZS5kYXRhKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlLnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuYXR0
cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ODo6QWNjZXNzb3JTaWduYXR1cmU6Ok5ldyh0ZW1wbCkpOwor
ICAgIH0KKwogICAgIC8vIEJhdGNoZWRDb25zdGFudCB0cmFuc2xhdGVzIGludG8gY2FsbHMgdG8g
U2V0KCkgZm9yIHNldHRpbmcgdXAgYW4gb2JqZWN0J3MKICAgICAvLyBjb25zdGFudHMuIEl0IHNl
dHMgdGhlIGNvbnN0YW50IG9uIGJvdGggdGhlIEZ1bmN0aW9uVGVtcGxhdGUgYW5kIHRoZQogICAg
IC8vIE9iamVjdFRlbXBsYXRlLiBQcm9wZXJ0eUF0dHJpYnV0ZXMgaXMgYWx3YXlzIFJlYWRPbmx5
LgpAQCAtMTA0LDYgKzExOCwxNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYXR0cmlidXRlQ291bnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBC
YXRjaGVkQ2FsbGJhY2sqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGNhbGxiYWNrQ291bnQpOworCisgICAgc3RhdGljIHY4OjpM
b2NhbDx2ODo6U2lnbmF0dXJlPiBjb25maWd1cmVUZW1wbGF0ZTIodjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHBhcmVudENsYXNzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBmaWVsZENvdW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEJhdGNoZWRBdHRyaWJ1dGUqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhdHRyaWJ1dGVDb3VudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXRjaGVk
Q2FsbGJhY2sqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBjYWxsYmFja0NvdW50KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRleCA2YjM0MjdjLi41NjQ5MGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0lubGluZUdldE93blByb3BlcnR5
U2xvdAogICAgIF0gRWxlbWVudCA6IE5vZGUgewotCisgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyB0ZXN0QXR0ckVsZW1lbnRPbkluc3RhbmNlOworICAgICAgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgdGVzdEF0dHJFbGVtZW50T25Qcm90bzsKICAgICAgICAgLy8gRE9NIExldmVsIDEgQ29y
ZQogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBET01TdHJpbmcgdGFnTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAppbmRleCBmYzRhODgyLi4y
MjA0NTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBAIC0zNyw2ICszNyw5IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgOiBPYmplY3QsIEV2ZW50VGFyZ2V0CiAjZW5kaWYgLyogZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgKi8KICAgICAgeworCisgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyB0ZXN0QXR0ck5vZGVPbkluc3RhbmNlOworICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
dGVzdEF0dHJOb2RlT25Qcm90bzsKICAgICAgICAgLy8gTm9kZVR5cGUKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBFTEVNRU5UX05PREUgICAgICAgICAgICAgICAgICAgPSAxOwog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEFUVFJJQlVURV9OT0RFICAgICAgICAg
ICAgICAgICA9IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmlkbAppbmRleCBhNmQy
MTVkLi5hNzUzMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwKQEAgLTIw
LDYgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQlJFbGVtZW50
IDogSFRNTEVsZW1lbnQgeworICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGVzdEF0dHJI
VE1MQlJFbGVtZW50T25JbnN0YW5jZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgY2xlYXI7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGl2RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50Lmlk
bAppbmRleCA5MGZiODRmLi4zYjI3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEaXZFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmlkbApAQCAtMjAsNiArMjAsOCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNl
IEhUTUxEaXZFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgdGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uSW5zdGFuY2U7CisgICAgICBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyB0ZXN0QXR0ckhUTUxEaXZFbGVtZW50T25Qcm90bzsKICAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbAppbmRleCA5NTAxZDNhLi5iNWE4Y2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbApAQCAtMjUsNiArMjUsOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IEpTQ3VzdG9tUHVzaEV2ZW50SGFuZGxlclNjb3BlLAogICAgICAgICBWOEN1c3RvbVRvSlNPYmpl
Y3QKICAgICBdIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CisgICAgICBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB0ZXN0QXR0ckhUTUxFbGVtZW50T25JbnN0YW5jZTsKKyAgICAgIGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIHRlc3RBdHRySFRNTEVsZW1lbnRPblByb3RvOwogICAgICAgICAgICAgICAg
ICAvLyBpaHQuY29tIHJlbGllcyBvbiBpZCByZXR1cm5pbmcgdGhlIGVtcHR5IHN0cmluZyB3aGVu
IG5vIGlkIGlzIHByZXNlbnQuIAogICAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2VycyBk
byB0aGlzIGFzIHdlbGwuIFNvIHdlIGRvbid0IGNvbnZlcnQgbnVsbCB0byBKUyBudWxsLgogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBpZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlZF9jb2RlL1Y4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9WOEVsZW1lbnQuY3BwCmluZGV4IGQ3NDQ1MTkuLjlmMDYw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlZF9jb2RlL1Y4RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhFbGVtZW50LmNwcApAQCAt
NTUsNiArNTUsNDIgQEAgbmFtZXNwYWNlIEVsZW1lbnRWOEludGVybmFsIHsKIAogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgVjhfVVNFKFQpIHsgfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHRlc3RBdHRyRWxlbWVudE9uSW5zdGFuY2VBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19T
VEFUUygiRE9NLkVsZW1lbnQudGVzdEF0dHJFbGVtZW50T25JbnN0YW5jZS5fZ2V0Iik7CisgICAg
RWxlbWVudCogaW1wID0gVjhFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBp
ZiAoaW1wKQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7IC8vIE5ldmVyIHJlYWNoCit9CisKK3N0YXRpYyB2b2lkIHRlc3RB
dHRyRWxlbWVudE9uSW5zdGFuY2VBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5FbGVtZW50LnRlc3RBdHRyRWxlbWVudE9uSW5zdGFu
Y2UuX3NldCIpOworICAgIEVsZW1lbnQqIGltcCA9IFY4RWxlbWVudDo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7CisgICAgaWYgKGltcCkKKyAgICAgICAgcmV0dXJuOworICAgIGltcC0+c2V0UGFy
ZW50T3JIb3N0Tm9kZSgwKTsgLy8gTmV2ZXIgcmVhY2gKK30KKworc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB0ZXN0QXR0ckVsZW1lbnRPblByb3RvQXR0ckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNf
U1RBVFMoIkRPTS5FbGVtZW50LnRlc3RBdHRyRWxlbWVudE9uUHJvdG8uX2dldCIpOworICAgIEVs
ZW1lbnQqIGltcCA9IFY4RWxlbWVudDo6dG9OYXRpdmUoaW5mby5UaGlzKCkpOworICAgIGlmIChp
bXApCisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsgLy8gTmV2ZXIgcmVhY2gKK30KKworc3RhdGljIHZvaWQgdGVzdEF0dHJF
bGVtZW50T25Qcm90b0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorewor
ICAgIElOQ19TVEFUUygiRE9NLkVsZW1lbnQudGVzdEF0dHJFbGVtZW50T25Qcm90by5fc2V0Iik7
CisgICAgRWxlbWVudCogaW1wID0gVjhFbGVtZW50Ojp0b05hdGl2ZShpbmZvLlRoaXMoKSk7Cisg
ICAgaWYgKGltcCkKKyAgICAgICAgcmV0dXJuOworICAgIGltcC0+c2V0UGFyZW50T3JIb3N0Tm9k
ZSgwKTsgLy8gTmV2ZXIgcmVhY2gKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0
YWdOYW1lQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFj
Y2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5FbGVtZW50LnRhZ05hbWUu
X2dldCIpOwpAQCAtMTM1NCw2ICsxMzkwLDEwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gd2Via2l0R2V0UmVnaW9uRmxvd1Jhbmdlc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiB9
IC8vIG5hbWVzcGFjZSBFbGVtZW50VjhJbnRlcm5hbAogCiBzdGF0aWMgY29uc3QgVjhET01Db25m
aWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4RWxlbWVudEF0dHJzW10gPSB7CisgICAgLy8g
QXR0cmlidXRlICd0ZXN0QXR0ckVsZW1lbnRPbkluc3RhbmNlJyAoVHlwZTogJ2F0dHJpYnV0ZScg
RXh0QXR0cjogJycpCisgICAgeyJ0ZXN0QXR0ckVsZW1lbnRPbkluc3RhbmNlIiwgRWxlbWVudFY4
SW50ZXJuYWw6OnRlc3RBdHRyRWxlbWVudE9uSW5zdGFuY2VBdHRyR2V0dGVyLCBFbGVtZW50VjhJ
bnRlcm5hbDo6dGVzdEF0dHJFbGVtZW50T25JbnN0YW5jZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAorICAgIC8vIEF0dHJpYnV0ZSAndGVzdEF0dHJFbGVtZW50T25Qcm90bycgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsidGVzdEF0dHJFbGVtZW50T25Qcm90byIsIEVs
ZW1lbnRWOEludGVybmFsOjp0ZXN0QXR0ckVsZW1lbnRPblByb3RvQXR0ckdldHRlciwgRWxlbWVu
dFY4SW50ZXJuYWw6OnRlc3RBdHRyRWxlbWVudE9uUHJvdG9BdHRyU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAxIC8qIG9uIGluc3RhbmNl
ICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3RhZ05hbWUnIChUeXBlOiAncmVhZG9ubHkgYXR0cmli
dXRlJyBFeHRBdHRyOiAnVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcycpCiAgICAgeyJ0YWdOYW1l
IiwgRWxlbWVudFY4SW50ZXJuYWw6OnRhZ05hbWVBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEg
Ki8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19j
YXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICov
fSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0eWxlJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScg
RXh0QXR0cjogJycpCkBAIC0xNTM1LDcgKzE1NzUsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4RWxlbWVudFRlbXBsYXRlKHY4OjpQZXJz
aQogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKICAgICB2ODo6TG9jYWw8djg6OlNp
Z25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZTsKLSAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01D
b25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAiRWxlbWVudCIsIFY4Tm9kZTo6
R2V0VGVtcGxhdGUoKSwgVjhFbGVtZW50OjppbnRlcm5hbEZpZWxkQ291bnQsCisgICAgZGVmYXVs
dFNpZ25hdHVyZSA9IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUyKGRlc2Ms
ICJFbGVtZW50IiwgVjhOb2RlOjpHZXRUZW1wbGF0ZSgpLCBWOEVsZW1lbnQ6OmludGVybmFsRmll
bGRDb3VudCwKICAgICAgICAgVjhFbGVtZW50QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgoVjhFbGVt
ZW50QXR0cnMpLAogICAgICAgICBWOEVsZW1lbnRDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgo
VjhFbGVtZW50Q2FsbGJhY2tzKSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUp
OyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhIVE1MQlJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2dlbmVyYXRlZF9jb2RlL1Y4SFRNTEJSRWxlbWVudC5jcHAKaW5kZXggYzBiOWRmZi4u
Mzg2MjUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhIVE1M
QlJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9WOEhUTUxC
UkVsZW1lbnQuY3BwCkBAIC0zOSw2ICszOSwyNCBAQCBuYW1lc3BhY2UgSFRNTEJSRWxlbWVudFY4
SW50ZXJuYWwgewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9CiAK
K3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdGVzdEF0dHJIVE1MQlJFbGVtZW50T25JbnN0
YW5jZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTEJSRWxlbWVudC50ZXN0
QXR0ckhUTUxCUkVsZW1lbnRPbkluc3RhbmNlLl9nZXQiKTsKKyAgICBIVE1MQlJFbGVtZW50KiBp
bXAgPSBWOEhUTUxCUkVsZW1lbnQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGlmIChp
bXApCisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsgLy8gTmV2ZXIgcmVhY2gKK30KKworc3RhdGljIHZvaWQgdGVzdEF0dHJI
VE1MQlJFbGVtZW50T25JbnN0YW5jZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLkhUTUxCUkVsZW1lbnQudGVzdEF0dHJIVE1MQlJF
bGVtZW50T25JbnN0YW5jZS5fc2V0Iik7CisgICAgSFRNTEJSRWxlbWVudCogaW1wID0gVjhIVE1M
QlJFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpZiAoaW1wKQorICAgICAg
ICByZXR1cm47CisgICAgaW1wLT5zZXRQYXJlbnRPckhvc3ROb2RlKDApOyAvLyBOZXZlciByZWFj
aAorfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNsZWFyQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
ICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MQlJFbGVtZW50LmNsZWFyLl9nZXQiKTsKQEAgLTU3LDYg
Kzc1LDggQEAgc3RhdGljIHZvaWQgY2xlYXJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWwKIH0gLy8gbmFtZXNwYWNlIEhUTUxCUkVs
ZW1lbnRWOEludGVybmFsCiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNo
ZWRBdHRyaWJ1dGUgVjhIVE1MQlJFbGVtZW50QXR0cnNbXSA9IHsKKyAgICAvLyBBdHRyaWJ1dGUg
J3Rlc3RBdHRySFRNTEJSRWxlbWVudE9uSW5zdGFuY2UnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnJykKKyAgICB7InRlc3RBdHRySFRNTEJSRWxlbWVudE9uSW5zdGFuY2UiLCBIVE1MQlJF
bGVtZW50VjhJbnRlcm5hbDo6dGVzdEF0dHJIVE1MQlJFbGVtZW50T25JbnN0YW5jZUF0dHJHZXR0
ZXIsIEhUTUxCUkVsZW1lbnRWOEludGVybmFsOjp0ZXN0QXR0ckhUTUxCUkVsZW1lbnRPbkluc3Rh
bmNlQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdjbGVhcicg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKICAgICB7ImNsZWFyIiwgSFRN
TEJSRWxlbWVudFY4SW50ZXJuYWw6OmNsZWFyQXR0ckdldHRlciwgSFRNTEJSRWxlbWVudFY4SW50
ZXJuYWw6OmNsZWFyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6
QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRy
aWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhIVE1MRGl2RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9WOEhUTUxEaXZFbGVtZW50LmNwcAppbmRleCA4OTM0
YWJmLi5hNWQ4Mjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9W
OEhUTUxEaXZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9W
OEhUTUxEaXZFbGVtZW50LmNwcApAQCAtMzksNiArMzksNDAgQEAgbmFtZXNwYWNlIEhUTUxEaXZF
bGVtZW50VjhJbnRlcm5hbCB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIFY4X1VTRShU
KSB7IH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0QXR0ckhUTUxEaXZFbGVt
ZW50T25JbnN0YW5jZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTERpdkVs
ZW1lbnQudGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uSW5zdGFuY2UuX2dldCIpOworICAgIEhUTUxE
aXZFbGVtZW50KiBpbXAgPSBWOEhUTUxEaXZFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKKyAgICBpZiAoaW1wKQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7
CisgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7IC8vIE5ldmVyIHJlYWNoCit9CisKK3N0YXRpYyB2
b2lkIHRlc3RBdHRySFRNTERpdkVsZW1lbnRPbkluc3RhbmNlQXR0clNldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTERpdkVsZW1lbnQu
dGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uSW5zdGFuY2UuX3NldCIpOworICAgIEhUTUxEaXZFbGVt
ZW50KiBpbXAgPSBWOEhUTUxEaXZFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAg
ICBpZiAoaW1wKQorICAgICAgICByZXR1cm47CisgICAgaW1wLT5zZXRQYXJlbnRPckhvc3ROb2Rl
KDApOyAvLyBOZXZlciByZWFjaAorfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRl
c3RBdHRySFRNTERpdkVsZW1lbnRPblByb3RvQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMo
IkRPTS5IVE1MRGl2RWxlbWVudC50ZXN0QXR0ckhUTUxEaXZFbGVtZW50T25Qcm90by5fZ2V0Iik7
CisgICAgSFRNTERpdkVsZW1lbnQqIGltcCA9IFY4SFRNTERpdkVsZW1lbnQ6OnRvTmF0aXZlKGlu
Zm8uVGhpcygpKTsKKyAgICBpZiAoaW1wKQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KCk7CisgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7IC8vIE5ldmVyIHJlYWNoCit9CisK
K3N0YXRpYyB2b2lkIHRlc3RBdHRySFRNTERpdkVsZW1lbnRPblByb3RvQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTERpdkVs
ZW1lbnQudGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uUHJvdG8uX3NldCIpOworICAgIEhUTUxEaXZF
bGVtZW50KiBpbXAgPSBWOEhUTUxEaXZFbGVtZW50Ojp0b05hdGl2ZShpbmZvLlRoaXMoKSk7Cisg
ICAgaW1wLT5zZXRQYXJlbnRPckhvc3ROb2RlKDApOyAvLyBOZXZlciByZWFjaAorfQorCiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFsaWduQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5IVE1MRGl2RWxlbWVudC5hbGlnbi5fZ2V0Iik7CkBAIC01Nyw2ICs5MSwxMCBAQCBz
dGF0aWMgdm9pZCBhbGlnbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHZhbAogfSAvLyBuYW1lc3BhY2UgSFRNTERpdkVsZW1lbnRWOElu
dGVybmFsCiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1
dGUgVjhIVE1MRGl2RWxlbWVudEF0dHJzW10gPSB7CisgICAgLy8gQXR0cmlidXRlICd0ZXN0QXR0
ckhUTUxEaXZFbGVtZW50T25JbnN0YW5jZScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcn
KQorICAgIHsidGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uSW5zdGFuY2UiLCBIVE1MRGl2RWxlbWVu
dFY4SW50ZXJuYWw6OnRlc3RBdHRySFRNTERpdkVsZW1lbnRPbkluc3RhbmNlQXR0ckdldHRlciwg
SFRNTERpdkVsZW1lbnRWOEludGVybmFsOjp0ZXN0QXR0ckhUTUxEaXZFbGVtZW50T25JbnN0YW5j
ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRy
b2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6
Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAndGVzdEF0dHJI
VE1MRGl2RWxlbWVudE9uUHJvdG8nIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKKyAg
ICB7InRlc3RBdHRySFRNTERpdkVsZW1lbnRPblByb3RvIiwgSFRNTERpdkVsZW1lbnRWOEludGVy
bmFsOjp0ZXN0QXR0ckhUTUxEaXZFbGVtZW50T25Qcm90b0F0dHJHZXR0ZXIsIEhUTUxEaXZFbGVt
ZW50VjhJbnRlcm5hbDo6dGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uUHJvdG9BdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAxIC8qIG9u
IGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2FsaWduJyAoVHlwZTogJ2F0dHJpYnV0
ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQogICAgIHsiYWxpZ24iLCBIVE1MRGl2RWxlbWVudFY4SW50
ZXJuYWw6OmFsaWduQXR0ckdldHRlciwgSFRNTERpdkVsZW1lbnRWOEludGVybmFsOjphbGlnbkF0
dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogfTsKQEAgLTY2LDcgKzEwNCw3IEBAIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhIVE1MRGl2RWxl
bWVudFRlbXBsYXRlKHY4CiAgICAgZGVzYy0+UmVhZE9ubHlQcm90b3R5cGUoKTsKIAogICAgIHY4
OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwotICAgIGRlZmF1bHRTaWdu
YXR1cmUgPSBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJIVE1M
RGl2RWxlbWVudCIsIFY4SFRNTEVsZW1lbnQ6OkdldFRlbXBsYXRlKCksIFY4SFRNTERpdkVsZW1l
bnQ6OmludGVybmFsRmllbGRDb3VudCwKKyAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01Db25m
aWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZTIoZGVzYywgIkhUTUxEaXZFbGVtZW50IiwgVjhI
VE1MRWxlbWVudDo6R2V0VGVtcGxhdGUoKSwgVjhIVE1MRGl2RWxlbWVudDo6aW50ZXJuYWxGaWVs
ZENvdW50LAogICAgICAgICBWOEhUTUxEaXZFbGVtZW50QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgo
VjhIVE1MRGl2RWxlbWVudEF0dHJzKSwKICAgICAgICAgMCwgMCk7CiAgICAgVU5VU0VEX1BBUkFN
KGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2Vk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhIVE1MRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZWRfY29kZS9WOEhUTUxFbGVtZW50LmNwcApp
bmRleCBlYmMwZmUwLi4zMWZhNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0
ZWRfY29kZS9WOEhUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZWRf
Y29kZS9WOEhUTUxFbGVtZW50LmNwcApAQCAtNDUsNiArNDUsNDIgQEAgbmFtZXNwYWNlIEhUTUxF
bGVtZW50VjhJbnRlcm5hbCB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIFY4X1VTRShU
KSB7IH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0QXR0ckhUTUxFbGVtZW50
T25JbnN0YW5jZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTEVsZW1lbnQu
dGVzdEF0dHJIVE1MRWxlbWVudE9uSW5zdGFuY2UuX2dldCIpOworICAgIEhUTUxFbGVtZW50KiBp
bXAgPSBWOEhUTUxFbGVtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpZiAoaW1w
KQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgcmV0dXJuIHY4
VW5kZWZpbmVkKCk7IC8vIE5ldmVyIHJlYWNoCit9CisKK3N0YXRpYyB2b2lkIHRlc3RBdHRySFRN
TEVsZW1lbnRPbkluc3RhbmNlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
Cit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTEVsZW1lbnQudGVzdEF0dHJIVE1MRWxlbWVudE9u
SW5zdGFuY2UuX3NldCIpOworICAgIEhUTUxFbGVtZW50KiBpbXAgPSBWOEhUTUxFbGVtZW50Ojp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpZiAoaW1wKQorICAgICAgICByZXR1cm47Cisg
ICAgaW1wLT5zZXRQYXJlbnRPckhvc3ROb2RlKDApOyAvLyBOZXZlciByZWFjaAorfQorCitzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRlc3RBdHRySFRNTEVsZW1lbnRPblByb3RvQXR0ckdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRWxlbWVudC50ZXN0QXR0ckhUTUxFbGVt
ZW50T25Qcm90by5fZ2V0Iik7CisgICAgSFRNTEVsZW1lbnQqIGltcCA9IFY4SFRNTEVsZW1lbnQ6
OnRvTmF0aXZlKGluZm8uVGhpcygpKTsKKyAgICBpZiAoaW1wKQorICAgICAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7IC8vIE5ldmVy
IHJlYWNoCit9CisKK3N0YXRpYyB2b2lkIHRlc3RBdHRySFRNTEVsZW1lbnRPblByb3RvQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00u
SFRNTEVsZW1lbnQudGVzdEF0dHJIVE1MRWxlbWVudE9uUHJvdG8uX3NldCIpOworICAgIEhUTUxF
bGVtZW50KiBpbXAgPSBWOEhUTUxFbGVtZW50Ojp0b05hdGl2ZShpbmZvLlRoaXMoKSk7CisgICAg
aWYgKGltcCkKKyAgICAgICAgcmV0dXJuOworICAgIGltcC0+c2V0UGFyZW50T3JIb3N0Tm9kZSgw
KTsgLy8gTmV2ZXIgcmVhY2gKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpZEF0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uSFRNTEVsZW1lbnQuaWQuX2dldCIpOwpA
QCAtNDY2LDYgKzUwMiwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNsaWNrQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIH0gLy8gbmFtZXNwYWNlIEhUTUxFbGVt
ZW50VjhJbnRlcm5hbAogCiBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVk
QXR0cmlidXRlIFY4SFRNTEVsZW1lbnRBdHRyc1tdID0geworICAgIC8vIEF0dHJpYnV0ZSAndGVz
dEF0dHJIVE1MRWxlbWVudE9uSW5zdGFuY2UnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAn
JykKKyAgICB7InRlc3RBdHRySFRNTEVsZW1lbnRPbkluc3RhbmNlIiwgSFRNTEVsZW1lbnRWOElu
dGVybmFsOjp0ZXN0QXR0ckhUTUxFbGVtZW50T25JbnN0YW5jZUF0dHJHZXR0ZXIsIEhUTUxFbGVt
ZW50VjhJbnRlcm5hbDo6dGVzdEF0dHJIVE1MRWxlbWVudE9uSW5zdGFuY2VBdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RBdHRySFRNTEVsZW1lbnRPblBy
b3RvJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisgICAgeyJ0ZXN0QXR0ckhUTUxF
bGVtZW50T25Qcm90byIsIEhUTUxFbGVtZW50VjhJbnRlcm5hbDo6dGVzdEF0dHJIVE1MRWxlbWVu
dE9uUHJvdG9BdHRyR2V0dGVyLCBIVE1MRWxlbWVudFY4SW50ZXJuYWw6OnRlc3RBdHRySFRNTEVs
ZW1lbnRPblByb3RvQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6
QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRy
aWJ1dGU+KHY4OjpOb25lKSwgMSAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRl
ICdpZCcgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKICAgICB7ImlkIiwg
SFRNTEVsZW1lbnRWOEludGVybmFsOjppZEF0dHJHZXR0ZXIsIEhUTUxFbGVtZW50VjhJbnRlcm5h
bDo6aWRBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3RpdGxl
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQpAQCAtNTM5LDcgKzU3OSw3
IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJl
VjhIVE1MRWxlbWVudFRlbXBsYXRlKHY4OjpQCiAgICAgZGVzYy0+UmVhZE9ubHlQcm90b3R5cGUo
KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwotICAg
IGRlZmF1bHRTaWduYXR1cmUgPSBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRl
KGRlc2MsICJIVE1MRWxlbWVudCIsIFY4RWxlbWVudDo6R2V0VGVtcGxhdGUoKSwgVjhIVE1MRWxl
bWVudDo6aW50ZXJuYWxGaWVsZENvdW50LAorICAgIGRlZmF1bHRTaWduYXR1cmUgPSBWOERPTUNv
bmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlMihkZXNjLCAiSFRNTEVsZW1lbnQiLCBWOEVs
ZW1lbnQ6OkdldFRlbXBsYXRlKCksIFY4SFRNTEVsZW1lbnQ6OmludGVybmFsRmllbGRDb3VudCwK
ICAgICAgICAgVjhIVE1MRWxlbWVudEF0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKFY4SFRNTEVsZW1l
bnRBdHRycyksCiAgICAgICAgIFY4SFRNTEVsZW1lbnRDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5H
VEgoVjhIVE1MRWxlbWVudENhbGxiYWNrcykpOwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2ln
bmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlZF9jb2RlL1Y4Tm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9nZW5lcmF0ZWRfY29kZS9WOE5vZGUuY3BwCmluZGV4IDAxODk0YTQuLmQwZDVmYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlZF9jb2RlL1Y4Tm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZ2VuZXJhdGVkX2NvZGUvVjhOb2RlLmNwcApAQCAtNDYsNiArNDYsNDIg
QEAgbmFtZXNwYWNlIE5vZGVWOEludGVybmFsIHsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgVjhfVVNFKFQpIHsgfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRlc3RBdHRy
Tm9kZU9uSW5zdGFuY2VBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLk5vZGUudGVz
dEF0dHJOb2RlT25JbnN0YW5jZS5fZ2V0Iik7CisgICAgTm9kZSogaW1wID0gVjhOb2RlOjp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpZiAoaW1wKQorICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CisgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7IC8vIE5ldmVyIHJl
YWNoCit9CisKK3N0YXRpYyB2b2lkIHRlc3RBdHRyTm9kZU9uSW5zdGFuY2VBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5Ob2RlLnRl
c3RBdHRyTm9kZU9uSW5zdGFuY2UuX3NldCIpOworICAgIE5vZGUqIGltcCA9IFY4Tm9kZTo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaWYgKGltcCkKKyAgICAgICAgcmV0dXJuOworICAg
IGltcC0+c2V0UGFyZW50T3JIb3N0Tm9kZSgwKTsgLy8gTmV2ZXIgcmVhY2gKK30KKworc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0QXR0ck5vZGVPblByb3RvQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sK
KyAgICBJTkNfU1RBVFMoIkRPTS5Ob2RlLnRlc3RBdHRyTm9kZU9uUHJvdG8uX2dldCIpOworICAg
IE5vZGUqIGltcCA9IFY4Tm9kZTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaWYgKGlt
cCkKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIHJldHVybiB2
OFVuZGVmaW5lZCgpOyAvLyBOZXZlciByZWFjaAorfQorCitzdGF0aWMgdm9pZCB0ZXN0QXR0ck5v
ZGVPblByb3RvQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
SU5DX1NUQVRTKCJET00uTm9kZS50ZXN0QXR0ck5vZGVPblByb3RvLl9zZXQiKTsKKyAgICBOb2Rl
KiBpbXAgPSBWOE5vZGU6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGlmIChpbXApCisg
ICAgICAgIHJldHVybjsKKyAgICBpbXAtPnNldFBhcmVudE9ySG9zdE5vZGUoMCk7IC8vIE5ldmVy
IHJlYWNoCit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbm9kZU5hbWVBdHRyR2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLk5vZGUubm9kZU5hbWUuX2dldCIpOwpAQCAtMzM3
LDYgKzM3MywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRpc3BhdGNoRXZlbnRD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogfSAvLyBuYW1lc3BhY2UgTm9kZVY4
SW50ZXJuYWwKIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJp
YnV0ZSBWOE5vZGVBdHRyc1tdID0geworICAgIC8vIEF0dHJpYnV0ZSAndGVzdEF0dHJOb2RlT25J
bnN0YW5jZScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsidGVzdEF0dHJO
b2RlT25JbnN0YW5jZSIsIE5vZGVWOEludGVybmFsOjp0ZXN0QXR0ck5vZGVPbkluc3RhbmNlQXR0
ckdldHRlciwgTm9kZVY4SW50ZXJuYWw6OnRlc3RBdHRyTm9kZU9uSW5zdGFuY2VBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RBdHRyTm9kZU9uUHJvdG8n
IChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKKyAgICB7InRlc3RBdHRyTm9kZU9uUHJv
dG8iLCBOb2RlVjhJbnRlcm5hbDo6dGVzdEF0dHJOb2RlT25Qcm90b0F0dHJHZXR0ZXIsIE5vZGVW
OEludGVybmFsOjp0ZXN0QXR0ck5vZGVPblByb3RvQXR0clNldHRlciwgMCAvKiBubyBkYXRhICov
LCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2Fz
dDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMSAvKiBvbiBpbnN0YW5jZSAqL30s
CiAgICAgLy8gQXR0cmlidXRlICdub2RlTmFtZScgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzJykKICAgICB7Im5vZGVOYW1lIiwg
Tm9kZVY4SW50ZXJuYWw6Om5vZGVOYW1lQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAg
ICAgLy8gQXR0cmlidXRlICdub2RlVmFsdWUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAn
VHJlYXROdWxsQXMgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcycpCkBAIC00MzYsNyArNDc2LDcg
QEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVW
OE5vZGVUZW1wbGF0ZSh2ODo6UGVyc2lzdGUKICAgICBkZXNjLT5SZWFkT25seVByb3RvdHlwZSgp
OwogCiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmU7Ci0gICAg
ZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUo
ZGVzYywgIk5vZGUiLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhO
b2RlOjppbnRlcm5hbEZpZWxkQ291bnQsCisgICAgZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9NQ29u
ZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUyKGRlc2MsICJOb2RlIiwgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4Tm9kZTo6aW50ZXJuYWxGaWVsZENvdW50LAog
ICAgICAgICBWOE5vZGVBdHRycywgV1RGX0FSUkFZX0xFTkdUSChWOE5vZGVBdHRycyksCiAgICAg
ICAgIFY4Tm9kZUNhbGxiYWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOE5vZGVDYWxsYmFja3MpKTsK
ICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIEluIHNvbWUgY2FzZXMsIGl0
IHdpbGwgbm90IGJlIHVzZWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>166637</attachid>
            <date>2012-10-02 01:08:27 -0700</date>
            <delta_ts>2012-10-02 01:08:27 -0700</delta_ts>
            <desc>Benchmark tests for performance experiments</desc>
            <filename>dom_attr_on_proto.html</filename>
            <type>text/html</type>
            <size>9944</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiBzaG91bGRCZShzdHIxLCBzdHIyKSB7CiAg
dmFyIHJlc3VsdDE7CiAgdHJ5IHsKICAgIHJlc3VsdDEgPSBldmFsKHN0cjEpOwogIH0gY2F0Y2gg
KGUpIHsKICAgIHJlc3VsdDEgPSBlOwogIH0KICB0cnkgewogICAgcmVzdWx0MiA9IGV2YWwoc3Ry
Mik7CiAgfSBjYXRjaCAoZSkgewogICAgcmVzdWx0MiA9IGU7CiAgfQogIGlmIChyZXN1bHQxID09
PSByZXN1bHQyKQogICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgKz0gc3RyMSArICIgPT09ICIg
KyBzdHIyICsgIiA8c3BhbiBzdHlsZT0nY29sb3I6Z3JlZW47IGZvbnQtd2VpZ2h0OmJvbGQnPlBB
U1M8L3NwYW4+PGJyPiI7CiAgZWxzZQogICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgKz0gc3Ry
MSArICIgd2FzIG5vdCAiICsgc3RyMiArICIuIFRoZSBsZWZ0IGhhbmQgc2lkZSB3YXMgWyIgKyBy
ZXN1bHQxICsgIl0gYW5kIHRoZSByaWdodCBoYW5kIHNpZGUgd2FzIFsiICsgcmVzdWx0MiArICJd
LiA8c3BhbiBzdHlsZT0nY29sb3I6cmVkOyBmb250LXdlaWdodDpib2xkJz5GQUlMPC9zcGFuPjxi
cj4iOwp9CgpmdW5jdGlvbiBzaG91bGRUaHJvdyhzdHIpIHsKICB2YXIgcmVzdWx0OwogIHZhciB0
aHJvd24gPSBmYWxzZTsKICB0cnkgewogICAgcmVzdWx0ID0gZXZhbChzdHIpOwogIH0gY2F0Y2gg
KGUpIHsKICAgIHRocm93biA9IHRydWU7CiAgICByZXN1bHQgPSBlOwogIH0KICBpZiAodGhyb3du
ID09PSB0cnVlKQogICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgKz0gc3RyICsgIiB0aHJldyBb
IiArIHJlc3VsdCArICJdLiA8c3BhbiBzdHlsZT0nY29sb3I6Z3JlZW47IGZvbnQtd2VpZ2h0OmJv
bGQnPlBBU1M8L3NwYW4+PGJyPiI7CiAgZWxzZQogICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwg
Kz0gc3RyICsgIiBkaWQgbm90IHRocm93LiBUaGUgcmVzdWx0IHdhcyBbIiArIHJlc3VsdCArICJd
LiA8c3BhbiBzdHlsZT0nY29sb3I6cmVkOyBmb250LXdlaWdodDpib2xkJz5GQUlMPC9zcGFuPjxi
cj4iOwp9CgpmdW5jdGlvbiBsb2coc3RyKSB7CiAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgKz0g
c3RyICsgIjxicj4iOwp9CgpmdW5jdGlvbiBydW4odGl0bGUsIHJlcGVhdE51bSwgZnVuYywgcm91
bmRzKSB7CiAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsK
ICBpZiAoIXJlc3VsdCkgewogICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHQpOwogIH0KCiAgdmFy
IHJvdW5kcyA9IHJvdW5kcyB8fCA1OwogIHZhciB0aW1lcyA9IFtdOwogIGZvciAodmFyIHIgPSAw
OyByIDwgcm91bmRzOyByKyspIHsKICAgIHZhciBzdGFydCA9IERhdGUubm93KCk7CiAgICBmdW5j
KHJlcGVhdE51bSk7CiAgICB2YXIgdGltZSA9IERhdGUubm93KCkgLSBzdGFydDsKICAgIHRpbWVz
LnB1c2godGltZSAqIDFlNiAvIHJlcGVhdE51bSk7CiAgICAvL3Jlc3VsdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aW1lKSk7CiAgICAvL3Jlc3VsdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKICB9CgogIHRpbWVzLnNvcnQoZnVuY3Rpb24g
KGEsIGIpIHsgcmV0dXJuIGEgLSBiOyB9KTsKICB2YXIgbWVkaWFuID0gdGltZXNbTWF0aC5mbG9v
cih0aW1lcy5sZW5ndGggLyAyKV07CiAgdmFyIG1pbiA9IHRpbWVzWzBdOwogIHZhciBtYXggPSB0
aW1lc1t0aW1lcy5sZW5ndGggLSAxXTsKICB2YXIgc3VtID0gMDsKICB2YXIgc3VtMiA9IDA7CiAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aW1lcy5sZW5ndGg7IGkrKykgewogICAgc3VtICs9IHRpbWVz
W2ldOwogICAgc3VtMiArPSB0aW1lc1tpXSAqIHRpbWVzW2ldOwogIH0KICB2YXIgYXZnID0gc3Vt
IC8gcm91bmRzOwogIHZhciBhdmdUb3RhbCA9IGF2ZyAqIHJlcGVhdE51bSAvIDFlNjsKICB2YXIg
c3RkZXYgPSBNYXRoLnNxcnQoc3VtMiAvIHJvdW5kcyAtIGF2ZyAqIGF2Zyk7CgogIHJlc3VsdC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSArICIgOiBtZWFuPSIgKyBh
dmcudG9GaXhlZCgyKSArICJucywgbWluPSIgKyBtaW4gKyAibnMsIG1lZGlhbj0iICsgbWVkaWFu
ICsgIm5zLCBtYXg9IiArIG1heCArICJucywgc3RkZXY9IiArIHN0ZGV2LnRvRml4ZWQoMikgKyAi
bnMsIHRvdGFsPSIgKyBhdmdUb3RhbC50b0ZpeGVkKDIpICsgIm1zIikpOwogIHJlc3VsdC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKfQo8L3NjcmlwdD4KPC9oZWFk
Pgo8Ym9keT4KPHNjcmlwdD4KdmFyIG9ianMgPSBbXTsKZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsg
aSsrKSB7CiAgb2Jqc1tpXSA9IHt9OwogIG9ianNbaV1bImF0dHIiICsgaV0gPSAiYXR0ciIgKyBp
OwogIGlmIChpID49IDEpCiAgICBvYmpzW2kgLSAxXS5fX3Byb3RvX18gPSBvYmpzW2ldOwp9Cgpm
dW5jdGlvbiBjaGVja0NvcnJlY3RuZXNzKCkgewogIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogIHNob3VsZEJlKCdkaXYuaGFzT3duUHJvcGVydHkoInRlc3RBdHRySFRNTERp
dkVsZW1lbnRPbkluc3RhbmNlIiknLCAidHJ1ZSIpOwogIHNob3VsZEJlKCdkaXYuaGFzT3duUHJv
cGVydHkoInRlc3RBdHRySFRNTEVsZW1lbnRPbkluc3RhbmNlIiknLCAidHJ1ZSIpOwogIHNob3Vs
ZEJlKCdkaXYuaGFzT3duUHJvcGVydHkoInRlc3RBdHRyRWxlbWVudE9uSW5zdGFuY2UiKScsICJ0
cnVlIik7CiAgc2hvdWxkQmUoJ2Rpdi5oYXNPd25Qcm9wZXJ0eSgidGVzdEF0dHJOb2RlT25JbnN0
YW5jZSIpJywgInRydWUiKTsKICBzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5oYXNPd25Qcm9wZXJ0
eSgidGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uUHJvdG8iKScsICJ0cnVlIik7CiAgc2hvdWxkQmUo
J2Rpdi5fX3Byb3RvX18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJ0ZXN0QXR0ckhUTUxFbGVt
ZW50T25Qcm90byIpJywgInRydWUiKTsKICBzaG91bGRCZSgnZGl2Ll9fcHJvdG9fXy5fX3Byb3Rv
X18uX19wcm90b19fLmhhc093blByb3BlcnR5KCJ0ZXN0QXR0ckVsZW1lbnRPblByb3RvIiknLCAi
dHJ1ZSIpOwogIHNob3VsZEJlKCdkaXYuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18uX19w
cm90b19fLmhhc093blByb3BlcnR5KCJ0ZXN0QXR0ck5vZGVPblByb3RvIiknLCAidHJ1ZSIpOwog
IHNob3VsZEJlKCd4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeGhyLl9fcHJvdG9fXyA9IEhU
TUxEaXZFbGVtZW50LnByb3RvdHlwZTsgeGhyLnRlc3RBdHRySFRNTERpdkVsZW1lbnRPbkluc3Rh
bmNlJywgInVuZGVmaW5lZCIpOwogIHNob3VsZFRocm93KCd4aHIgPSBuZXcgWE1MSHR0cFJlcXVl
c3QoKTsgeGhyLl9fcHJvdG9fXyA9IEhUTUxEaXZFbGVtZW50LnByb3RvdHlwZTsgeGhyLnRlc3RB
dHRySFRNTERpdkVsZW1lbnRPblByb3RvJyk7CiAgc2hvdWxkVGhyb3coJ29iaiA9IE9iamVjdC5j
cmVhdGUoZGl2KTsgb2JqLnRlc3RBdHRySFRNTERpdkVsZW1lbnRPbkluc3RhbmNlJyk7CiAgc2hv
dWxkVGhyb3coJ29iaiA9IE9iamVjdC5jcmVhdGUoZGl2KTsgb2JqLnRlc3RBdHRySFRNTERpdkVs
ZW1lbnRPblByb3RvJyk7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewogICAgYW5z
ID0gImF0dHIiICsgaTsKICAgIHNob3VsZEJlKCJvYmpzWzBdLmF0dHIiICsgaSwgJ2FucycpOwog
IH0KfQoKY2hlY2tDb3JyZWN0bmVzcygpOwoKdmFyIHJlcGVhdE51bTEgPSAyMDAwMDAwMDsKdmFy
IHJlcGVhdE51bTIgPSAxMDAwMDAwMDsKdmFyIHJvdW5kcyA9IDEwOwoKbG9nKCIiKTsKCnJ1bigi
b2JqLmF0dHIwIGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZh
ciBvYmogPSBvYmpzWzBdOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsK
ICAgIG9iai5hdHRyMDsKICB9Cn0sIHJvdW5kcyk7CgpydW4oIm9iai5hdHRyMSBnZXR0ZXIiLCBy
ZXBlYXROdW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2YXIgb2JqID0gb2Jqc1swXTsKICBm
b3IgKHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBvYmouYXR0cjE7CiAgfQp9
LCByb3VuZHMpOwoKcnVuKCJvYmouYXR0cjIgZ2V0dGVyIiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24o
cmVwZWF0TnVtKSB7CiAgdmFyIG9iaiA9IG9ianNbMF07CiAgZm9yICh2YXIgaiA9IDA7IGogPCBy
ZXBlYXROdW07IGorKykgewogICAgb2JqLmF0dHIyOwogIH0KfSwgcm91bmRzKTsKCnJ1bigib2Jq
LmF0dHIzIGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBv
YmogPSBvYmpzWzBdOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAg
IG9iai5hdHRyMzsKICB9Cn0sIHJvdW5kcyk7CgpydW4oIm9iai5hdHRyNCBnZXR0ZXIiLCByZXBl
YXROdW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2YXIgb2JqID0gb2Jqc1swXTsKICBmb3Ig
KHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBvYmouYXR0cjQ7CiAgfQp9LCBy
b3VuZHMpOwoKcnVuKCJvYmouYXR0cjUgZ2V0dGVyIiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24ocmVw
ZWF0TnVtKSB7CiAgdmFyIG9iaiA9IG9ianNbMF07CiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBl
YXROdW07IGorKykgewogICAgb2JqLmF0dHI1OwogIH0KfSwgcm91bmRzKTsKCnJ1bigib2JqLmF0
dHI2IGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBvYmog
PSBvYmpzWzBdOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIG9i
ai5hdHRyNjsKICB9Cn0sIHJvdW5kcyk7CgpydW4oIm9iai5hdHRyNyBnZXR0ZXIiLCByZXBlYXRO
dW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2YXIgb2JqID0gb2Jqc1swXTsKICBmb3IgKHZh
ciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBvYmouYXR0cjc7CiAgfQp9LCByb3Vu
ZHMpOwoKcnVuKCJvYmouYXR0cjggZ2V0dGVyIiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24ocmVwZWF0
TnVtKSB7CiAgdmFyIG9iaiA9IG9ianNbMF07CiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBlYXRO
dW07IGorKykgewogICAgb2JqLmF0dHI4OwogIH0KfSwgcm91bmRzKTsKCnJ1bigib2JqLmF0dHI5
IGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBvYmogPSBv
YmpzWzBdOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIG9iai5h
dHRyOTsKICB9Cn0sIHJvdW5kcyk7Cgpsb2coIiIpOwoKcnVuKCJici50ZXN0QXR0ckhUTUxCUkVs
ZW1lbnRPbkluc3RhbmNlIGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkg
ewogIHZhciBiciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIik7CiAgZm9yICh2YXIgaiA9
IDA7IGogPCByZXBlYXROdW07IGorKykgewogICAgYnIudGVzdEF0dHJIVE1MQlJFbGVtZW50T25J
bnN0YW5jZTsKICB9Cn0sIHJvdW5kcyk7CgpydW4oImRpdi50ZXN0QXR0ckhUTUxEaXZFbGVtZW50
T25JbnN0YW5jZSBnZXR0ZXIiLCByZXBlYXROdW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgZm9yICh2YXIgaiA9IDA7
IGogPCByZXBlYXROdW07IGorKykgewogICAgZGl2LnRlc3RBdHRySFRNTERpdkVsZW1lbnRPbklu
c3RhbmNlOwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LnRlc3RBdHRySFRNTEVsZW1lbnRPbklu
c3RhbmNlIGdldHRlciIsIHJlcGVhdE51bTEsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICBmb3IgKHZhciBqID0gMDsgaiA8
IHJlcGVhdE51bTsgaisrKSB7CiAgICBkaXYudGVzdEF0dHJIVE1MRWxlbWVudE9uSW5zdGFuY2U7
CiAgfQp9LCByb3VuZHMpOwoKcnVuKCJkaXYudGVzdEF0dHJFbGVtZW50T25JbnN0YW5jZSBnZXR0
ZXIiLCByZXBlYXROdW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBlYXROdW07
IGorKykgewogICAgZGl2LnRlc3RBdHRyRWxlbWVudE9uSW5zdGFuY2U7CiAgfQp9LCByb3VuZHMp
OwoKcnVuKCJkaXYudGVzdEF0dHJOb2RlT25JbnN0YW5jZSBnZXR0ZXIiLCByZXBlYXROdW0xLCBm
dW5jdGlvbihyZXBlYXROdW0pIHsKICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBlYXROdW07IGorKykgewogICAgZGl2LnRl
c3RBdHRyTm9kZU9uSW5zdGFuY2U7CiAgfQp9LCByb3VuZHMpOwoKcnVuKCJkaXYudGVzdEF0dHJI
VE1MRGl2RWxlbWVudE9uUHJvdG8gZ2V0dGVyIiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24ocmVwZWF0
TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAo
dmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIGRpdi50ZXN0QXR0ckhUTUxEaXZF
bGVtZW50T25Qcm90bzsKICB9Cn0sIHJvdW5kcyk7CgpydW4oImRpdi50ZXN0QXR0ckhUTUxFbGVt
ZW50T25Qcm90byBnZXR0ZXIiLCByZXBlYXROdW0xLCBmdW5jdGlvbihyZXBlYXROdW0pIHsKICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgZm9yICh2YXIgaiA9IDA7
IGogPCByZXBlYXROdW07IGorKykgewogICAgZGl2LnRlc3RBdHRySFRNTEVsZW1lbnRPblByb3Rv
OwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LnRlc3RBdHRyRWxlbWVudE9uUHJvdG8gZ2V0dGVy
IiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBq
KyspIHsKICAgIGRpdi50ZXN0QXR0ckVsZW1lbnRPblByb3RvOwogIH0KfSwgcm91bmRzKTsKCnJ1
bigiZGl2LnRlc3RBdHRyTm9kZU9uUHJvdG8gZ2V0dGVyIiwgcmVwZWF0TnVtMSwgZnVuY3Rpb24o
cmVwZWF0TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwog
IGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIGRpdi50ZXN0QXR0ck5v
ZGVPblByb3RvOwogIH0KfSwgcm91bmRzKTsKCmxvZygiIik7CgpydW4oImJyLnRlc3RBdHRySFRN
TEJSRWxlbWVudE9uSW5zdGFuY2Ugc2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0
TnVtKSB7CiAgdmFyIGJyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKTsKICBmb3IgKHZh
ciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBici50ZXN0QXR0ckhUTUxCUkVsZW1l
bnRPbkluc3RhbmNlID0gIiI7CiAgfQp9LCByb3VuZHMpOwoKcnVuKCJkaXYudGVzdEF0dHJIVE1M
RGl2RWxlbWVudE9uSW5zdGFuY2Ugc2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0
TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAo
dmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIGRpdi50ZXN0QXR0ckhUTUxEaXZF
bGVtZW50T25JbnN0YW5jZSA9ICIiOwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LnRlc3RBdHRy
SFRNTEVsZW1lbnRPbkluc3RhbmNlIHNldHRlciIsIHJlcGVhdE51bTIsIGZ1bmN0aW9uKHJlcGVh
dE51bSkgewogIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICBmb3Ig
KHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBkaXYudGVzdEF0dHJIVE1MRWxl
bWVudE9uSW5zdGFuY2UgPSAiIjsKICB9Cn0sIHJvdW5kcyk7CgpydW4oImRpdi50ZXN0QXR0ckVs
ZW1lbnRPbkluc3RhbmNlIHNldHRlciIsIHJlcGVhdE51bTIsIGZ1bmN0aW9uKHJlcGVhdE51bSkg
ewogIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICBmb3IgKHZhciBq
ID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBkaXYudGVzdEF0dHJFbGVtZW50T25JbnN0
YW5jZSA9ICIiOwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LnRlc3RBdHRyTm9kZU9uSW5zdGFu
Y2Ugc2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVw
ZWF0TnVtOyBqKyspIHsKICAgIGRpdi50ZXN0QXR0ck5vZGVPbkluc3RhbmNlID0gIiI7CiAgfQp9
LCByb3VuZHMpOwoKcnVuKCJkaXYudGVzdEF0dHJIVE1MRGl2RWxlbWVudE9uUHJvdG8gc2V0dGVy
IiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBq
KyspIHsKICAgIGRpdi50ZXN0QXR0ckhUTUxEaXZFbGVtZW50T25Qcm90byA9ICIiOwogIH0KfSwg
cm91bmRzKTsKCnJ1bigiZGl2LnRlc3RBdHRySFRNTEVsZW1lbnRPblByb3RvIHNldHRlciIsIHJl
cGVhdE51bTIsIGZ1bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKICBmb3IgKHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7
CiAgICBkaXYudGVzdEF0dHJIVE1MRWxlbWVudE9uUHJvdG8gPSAiIjsKICB9Cn0sIHJvdW5kcyk7
CgpydW4oImRpdi50ZXN0QXR0ckVsZW1lbnRPblByb3RvIHNldHRlciIsIHJlcGVhdE51bTIsIGZ1
bmN0aW9uKHJlcGVhdE51bSkgewogIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKICBmb3IgKHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICBkaXYudGVz
dEF0dHJFbGVtZW50T25Qcm90byA9ICIiOwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LnRlc3RB
dHRyTm9kZU9uUHJvdG8gc2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7
CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGog
PSAwOyBqIDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIGRpdi50ZXN0QXR0ck5vZGVPblByb3RvID0g
IiI7CiAgfQp9LCByb3VuZHMpOwoKbG9nKCIiKTsKCnJ1bigiZGl2LmZpcnN0Q2hpbGQgZ2V0dGVy
IiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGogPSAwOyBqIDwgcmVwZWF0TnVtOyBq
KyspIHsKICAgIGRpdi5maXJzdENoaWxkOwogIH0KfSwgcm91bmRzKTsKCnJ1bigiZGl2LmZpcnN0
Q2hpbGQgZ2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGRpdi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CiAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBlYXRO
dW07IGorKykgewogICAgZGl2LmZpcnN0Q2hpbGQ7CiAgfQp9LCByb3VuZHMpOwoKcnVuKCJkaXYu
bm9kZVR5cGUgZ2V0dGVyIiwgcmVwZWF0TnVtMiwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogIGZvciAodmFyIGogPSAwOyBq
IDwgcmVwZWF0TnVtOyBqKyspIHsKICAgIGRpdi5ub2RlVHlwZTsKICB9Cn0sIHJvdW5kcyk7CgoK
PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>