<?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>78149</bug_id>
          
          <creation_ts>2012-02-08 13:50:14 -0800</creation_ts>
          <short_desc>[V8] Bindings for list interfaces are all broken</short_desc>
          <delta_ts>2013-04-05 17:25:05 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>73865</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>552461</commentid>
    <comment_count>0</comment_count>
      <attachid>126146</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-08 13:50:14 -0800</bug_when>
    <thetext>Created attachment 126146
LayoutTest showing that FileList is broken

This cropped up when I was looking at bug 73865.

The V8 bindings for collection like list interfaces that contains non Node wrappers are all broken because we do not keep an implicit reference to the items.

The following fails for example:

    inputElement.files[0].custom = 42;
    forceGC();
    shouldBe(&apos;inputElement.files[0].custom&apos;, &apos;42&apos;);

The code snippet above will fail for all lists where the item method returns a non Node, non value type. By searching for item() methods in the IDL files I believe all of the following are broken:

ClientRectList
CSSRuleList
CSSValueList
DataTransferItemList
DOMMimeTypeArray
DOMPlugin
DOMPluginArray
EntryArray
EntryArraySync
FileList
GamepadList
MediaStreamList
MediaStreamTrackList
SpeechInputResultList
SQLResultSetRowList?
StyleSheetList
TextTrackCueList
TextTrackList
TouchList
WebKitAnimationList

Since this is a common pattern we should generate code for these in the code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556580</commentid>
    <comment_count>1</comment_count>
      <attachid>127040</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-14 14:06:02 -0800</bug_when>
    <thetext>Created attachment 127040
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556585</commentid>
    <comment_count>2</comment_count>
      <attachid>127040</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-14 14:09:16 -0800</bug_when>
    <thetext>Comment on attachment 127040
WIP

This depends on bug 78052 for the tests to pass.

This is pretty rough but the general idea is to let the code generator generate visitor functions for the list interface and add that to the WrapperTypeInfo.

Feedback wanted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556681</commentid>
    <comment_count>3</comment_count>
      <attachid>127040</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 15:28:32 -0800</bug_when>
    <thetext>Comment on attachment 127040
WIP

Attachment 127040 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11525091

New failing tests:
media/track/text-track-is-reachable.html
media/track/tracklist-is-reachable.html
fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
media/track/text-track-cue-is-reachable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567702</commentid>
    <comment_count>4</comment_count>
      <attachid>129470</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-29 10:18:18 -0800</bug_when>
    <thetext>Created attachment 129470
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655889</commentid>
    <comment_count>5</comment_count>
      <attachid>149130</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-06-22 16:14:15 -0700</bug_when>
    <thetext>Created attachment 149130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655894</commentid>
    <comment_count>6</comment_count>
      <attachid>149130</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-06-22 16:18:35 -0700</bug_when>
    <thetext>Comment on attachment 149130
Patch

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

&gt; Source/WebCore/Modules/gamepad/Gamepad.idl:30
&gt; +        V8DependentLifetime

The code generator should do this in these cases.

&gt; Source/WebCore/bindings/v8/custom/V8NodeListCustom.cpp:66
&gt; +    if (impl-&gt;isDynamicNodeList()) {

I need to double check which NodeLists may have an ownerNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655897</commentid>
    <comment_count>7</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-06-22 16:19:59 -0700</bug_when>
    <thetext>This is the same approach as in bug 808880 which landed yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665145</commentid>
    <comment_count>8</comment_count>
      <attachid>151312</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-09 14:01:44 -0700</bug_when>
    <thetext>Created attachment 151312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665506</commentid>
    <comment_count>9</comment_count>
      <attachid>151312</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-09 23:34:28 -0700</bug_when>
    <thetext>Comment on attachment 151312
Patch

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

The change looks good to me.

&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:1058
&gt; +              &apos;--include&apos;, &apos;../Modules/battery&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/filesystem&apos;,
&gt; +              &apos;--include&apos;, &apos;../Modules/gamepad&apos;,
&gt; +              &apos;--include&apos;, &apos;../Modules/geolocation&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/indexeddb&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/intents&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/mediastream&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/notifications&apos;,
&gt; +              &apos;--include&apos;, &apos;../Modules/quota&apos;,
&gt; +              &apos;--include&apos;, &apos;../Modules/speech&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/webaudio&apos;,
&gt;                &apos;--include&apos;, &apos;../Modules/webdatabase&apos;,
&gt; +              &apos;--include&apos;, &apos;../Modules/websockets&apos;,

Nit: How is the current WebCore.gyp working without these lines?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:208
&gt; +    if (!$indexer) {
&gt; +        return 0;
&gt; +    }

Is there any possibility that [IndexedGetter] is defined but item() is not found? (item() might be defined in custom bindings?)

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:212
&gt; +    if (IsWrapperType($indexerType) &amp;&amp; !IsDOMNodeType($indexerType)) {

Would you elaborate on this line? What does this condition mean?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:287
&gt; +            v8::Handle&lt;v8::Object&gt; itemWrapper = store-&gt;$mapName().get(item.get());

Nit: ${mapName} would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666798</commentid>
    <comment_count>10</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-11 09:26:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 151312 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151312&amp;action=review
&gt; 
&gt; The change looks good to me.
&gt; 
&gt; &gt; Source/WebCore/WebCore.gyp/WebCore.gyp:1058
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/battery&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/filesystem&apos;,
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/gamepad&apos;,
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/geolocation&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/indexeddb&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/intents&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/mediastream&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/notifications&apos;,
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/quota&apos;,
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/speech&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/webaudio&apos;,
&gt; &gt;                &apos;--include&apos;, &apos;../Modules/webdatabase&apos;,
&gt; &gt; +              &apos;--include&apos;, &apos;../Modules/websockets&apos;,
&gt; 
&gt; Nit: How is the current WebCore.gyp working without these lines?

This was confusing me too. If I understand correctly there are two different ways that files are read by the script. One uses the include to build a map of known idl files and one way just does a recursive directory tree traversal. The reason this was triggered by this change was that with this change we need to go back and look at other idl files and then the include paths matter.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:208
&gt; &gt; +    if (!$indexer) {
&gt; &gt; +        return 0;
&gt; &gt; +    }
&gt; 
&gt; Is there any possibility that [IndexedGetter] is defined but item() is not found? (item() might be defined in custom bindings?)

I don&apos;t believe so. There is no CustomIndexedGetter extended attribute and we generate code that always uses item.
 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:212
&gt; &gt; +    if (IsWrapperType($indexerType) &amp;&amp; !IsDOMNodeType($indexerType)) {
&gt; 
&gt; Would you elaborate on this line? What does this condition mean?

If the type of the items is a non wrapper type (no wrapper is created, string, number etc) we don&apos;t need to go through this.

If the type of the items is a Node then the Node is already kept alive though other means. I&apos;m not convinced this is the case though. For example if we have a static NodeList, from querySelectorAll for example, and a node is only reachable through the collection will we keep its wrapper? I&apos;ll add a test at least.

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:287
&gt; &gt; +            v8::Handle&lt;v8::Object&gt; itemWrapper = store-&gt;$mapName().get(item.get());
&gt; 
&gt; Nit: ${mapName} would be better.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666806</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-11 09:35:48 -0700</bug_when>
    <thetext>Thanks for the clarification!

(In reply to comment #10)
&gt; &gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:208
&gt; &gt; &gt; +    if (!$indexer) {
&gt; &gt; &gt; +        return 0;
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Is there any possibility that [IndexedGetter] is defined but item() is not found? (item() might be defined in custom bindings?)
&gt; 
&gt; I don&apos;t believe so. There is no CustomIndexedGetter extended attribute and we generate code that always uses item.

Then, the code could be &apos;die &quot;Indexed getter must have item().&quot; unless $indexer;&apos;.

&gt; &gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:212
&gt; &gt; &gt; +    if (IsWrapperType($indexerType) &amp;&amp; !IsDOMNodeType($indexerType)) {
&gt; &gt; 
&gt; &gt; Would you elaborate on this line? What does this condition mean?
&gt; 
&gt; If the type of the items is a non wrapper type (no wrapper is created, string, number etc) we don&apos;t need to go through this.
&gt; 
&gt; If the type of the items is a Node then the Node is already kept alive though other means. I&apos;m not convinced this is the case though. For example if we have a static NodeList, from querySelectorAll for example, and a node is only reachable through the collection will we keep its wrapper? I&apos;ll add a test at least.

IMPO, all reachable wrapper objects should be kept alive, but I&apos;m not sure. I am sad we don&apos;t know what wrapper objects should be kept alive. Isn&apos;t there any spec about wrapper lifetime? I&apos;ve searched it (when I was implementing the new lifetime management of DOM nodes) but couldn&apos;t find it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666840</commentid>
    <comment_count>12</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-11 10:15:39 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Then, the code could be &apos;die &quot;Indexed getter must have item().&quot; unless $indexer;&apos;.

Good idea. Will do.

&gt; IMPO, all reachable wrapper objects should be kept alive, but I&apos;m not sure. I am sad we don&apos;t know what wrapper objects should be kept alive. Isn&apos;t there any spec about wrapper lifetime? I&apos;ve searched it (when I was implementing the new lifetime management of DOM nodes) but couldn&apos;t find it.

Wrappers are an implementation detail. Conceptually there is only one object, the javascript object.

The case I am worried about is.

document.body.innerHTML = &apos;&lt;b&gt;&lt;/b&gt;&apos;;
var els = document.body.querySelectorAll(&apos;*&apos;);
els[0].custom = 42;
document.body.textContent = &apos;&apos;;
gc();
shouldBe(&apos;els[0].custom&apos;, &apos;42&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666844</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-11 10:20:57 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Conceptually there is only one object, the javascript object.

This means that all reachable wrapper objects in the JavaScript side should be kept alive, right? If so, 

&gt; For example if we have a static NodeList, from querySelectorAll for example, and a node is only reachable through the collection will we keep its wrapper?

the answer of the above question is yes (i.e. shouldBe(&apos;els[0].custom&apos;, &apos;42&apos;) in your example). The behavior sounds reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667047</commentid>
    <comment_count>14</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-11 14:15:06 -0700</bug_when>
    <thetext>I filed a new bug for the static NodeList bug. 

https://bugs.webkit.org/show_bug.cgi?id=91014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667450</commentid>
    <comment_count>15</comment_count>
      <attachid>151312</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-07-12 00:22:16 -0700</bug_when>
    <thetext>Comment on attachment 151312
Patch

neat</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870161</commentid>
    <comment_count>16</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-05 17:24:54 -0700</bug_when>
    <thetext>V8 is no longer supported in WebKit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>126146</attachid>
            <date>2012-02-08 13:50:14 -0800</date>
            <delta_ts>2012-02-08 13:50:14 -0800</delta_ts>
            <desc>LayoutTest showing that FileList is broken</desc>
            <filename>files-reachable.html</filename>
            <type>text/html</type>
            <size>1028</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KPGJvZHk+CjxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIg
b25jaGFuZ2U9Im9uSW5wdXRGaWxlQ2hhbmdlKCkiPgoKPHNjcmlwdD4KCmZ1bmN0aW9uIGZvcmNl
R0MoKQp7CiAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKICAgICAgICByZXR1cm4gR0NDb250
cm9sbGVyLmNvbGxlY3QoKTsKCiAgICAvLyBGb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24KICAgIGZv
ciAodmFyIG5keCA9IDA7IG5keCA8IDk5MDAwOyBuZHgrKykKICAgICAgICB2YXIgc3RyID0gbmV3
IFN0cmluZygnMTIzNCcpOwp9CgoKZnVuY3Rpb24gb25JbnB1dEZpbGVDaGFuZ2UoKQp7CiAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZScpLmZpbGVzWzBdLmN1c3RvbSA9IDQyOwogICAg
Zm9yY2VHQygpOwogICAgc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlIiku
ZmlsZXNbMF0uY3VzdG9tJywgJzQyJyk7Cn0KCmZ1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZF
bGVtZW50KGVsZW1lbnQpCnsKICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CiAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwogICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oY2VudGVyWCwgY2VudGVyWSk7Cn0KCmlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgIGV2
ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ3Jlc291cmNlcy9hYmUucG5nJ10pOwogICAg
bW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUn
KSk7CiAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cn0KCjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127040</attachid>
            <date>2012-02-14 14:06:02 -0800</date>
            <delta_ts>2012-02-29 10:18:15 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-78149-20120214140601.patch</filename>
            <type>text/plain</type>
            <size>25644</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGIwMTRmOWUyYzA4MDZjODU3ODIw
OWEyODczOTE4YzAwNTY5YjBjZjcuLjE3MjAzYzk2NjE4ZmRmN2RiNThhYjg1ZDJkYmEyOWQ2MGY1
ZGI3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC0zNDAsNiArMzQwLDcgQEAgRU5ECiAgICAgfQogICAgIGlubGluZSBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKCR7bmF0aXZlVHlwZX0qJHtmb3JjZU5l
d09iamVjdFBhcmFtZXRlcn0pOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsK
KyAgICBzdGF0aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGlu
Zm87CiBFTkQKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZl
RE9NT2JqZWN0In0pIHsKQEAgLTE3NjIsNiArMTc2Myw0MSBAQCBFTkQKIEVORAogfQogCitzdWIg
R2V0SW5kZXhlclR5cGVGb3JET01XcmFwcGVyTGlzdGVuZXIKK3sKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKworICAgIG15ICRoYXNJbmRleEdldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifTsKKyAgICBpZiAoISRoYXNJbmRleEdldHRlcikg
eworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBteSAkaW5kZXhlcjsKKworICAgIGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBp
ZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgZXEgIml0ZW0iKSB7CisgICAgICAgICAgICAk
aW5kZXhlciA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlOworICAgICAgICAgICAgbGFzdDsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmICghJGluZGV4ZXIpIHsKKyAgICAgICAgJGluZGV4ZXIgPSAk
Y29kZUdlbmVyYXRvci0+RmluZFN1cGVyTWV0aG9kKCRkYXRhTm9kZSwgIml0ZW0iKTsKKyAgICB9
CisKKyAgICBpZiAoISRpbmRleGVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IG15ICRpbmRleGVyVHlwZSA9ICRpbmRleGVyLT50eXBlOworCisgICAgaWYgKElzV3JhcHBlclR5
cGUoJGluZGV4ZXJUeXBlKSAmJiAhSXNET01Ob2RlVHlwZSgkaW5kZXhlclR5cGUpKSB7CisgICAg
ICAgIHJldHVybiAkaW5kZXhlclR5cGU7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN1
YiBHZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjawogewogICAgIG15ICRmdW5jdGlvbiA9
IHNoaWZ0OwpAQCAtMTc4NSwxMiArMTgyMSwxMiBAQCBzdWIgR2VuZXJhdGVOYW1lZENvbnN0cnVj
dG9yQ2FsbGJhY2sKIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJB
Y3RpdmVET01PYmplY3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwot
V3JhcHBlclR5cGVJbmZvIFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yOjppbmZvID0geyBW
OCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4JHtpbXBsQ2xhc3NO
YW1lfTo6ZGVyZWZPYmplY3QsIFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9BY3RpdmVET01PYmplY3Qs
IDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6aW5m
byA9IHsgVjgke2ltcGxDbGFzc05hbWV9Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCBWOCR7aW1w
bENsYXNzTmFtZX06OmRlcmVmT2JqZWN0LCBWOCR7aW1wbENsYXNzTmFtZX06OnRvQWN0aXZlRE9N
T2JqZWN0LCAwLCAwIH07CiAKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCA8PEVORCk7Ci1XcmFwcGVyVHlwZUluZm8gVjgke2ltcGxDbGFzc05hbWV9Q29uc3Ry
dWN0b3I6OmluZm8gPSB7IFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpHZXRUZW1wbGF0
ZSwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVj
dG9yOjppbmZvID0geyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUs
IDAsIDAsIDAsIDAgfTsKIAogRU5ECiAgICAgfQpAQCAtMjI1MSw3ICsyMjg3LDggQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
Im5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7CiAgICAgbXkgJHBhcmVudENsYXNzSW5mbyA9ICRw
YXJlbnRDbGFzcyA/ICImJHtwYXJlbnRDbGFzc306OmluZm8iIDogIjAiOwotICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8gJHtjbGFzc05hbWV9OjppbmZvID0geyAk
e2NsYXNzTmFtZX06OkdldFRlbXBsYXRlLCAke2NsYXNzTmFtZX06OmRlcmVmT2JqZWN0LCAke3Rv
QWN0aXZlfSwgJHtwYXJlbnRDbGFzc0luZm99IH07XG5cbiIpOyAgIAorICAgIG15ICRkb21XcmFw
cGVyVmlzaXRvciA9IEdldEluZGV4ZXJUeXBlRm9yRE9NV3JhcHBlckxpc3RlbmVyKCRkYXRhTm9k
ZSkgPyAiJHtjbGFzc05hbWV9Ojp2aXNpdERPTVdyYXBwZXIiIDogIjAiOworICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8gJHtjbGFzc05hbWV9OjppbmZvID0geyAk
e2NsYXNzTmFtZX06OkdldFRlbXBsYXRlLCAke2NsYXNzTmFtZX06OmRlcmVmT2JqZWN0LCAkdG9B
Y3RpdmUsICRkb21XcmFwcGVyVmlzaXRvciwgJHBhcmVudENsYXNzSW5mbyB9O1xuXG4iKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAibmFtZXNwYWNlICR7aW50ZXJmYWNlTmFtZX1JbnRl
cm5hbCB7XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9XG5cbiIpOwogCkBAIC0yNzYzLDYgKzI4MDAsMjUg
QEAgQWN0aXZlRE9NT2JqZWN0KiAke2NsYXNzTmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0KHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQogRU5ECiAgICAgfQogCisgICAgbXkgJGluZGV4ZXJU
eXBlRm9yRE9NV3JhcHBlckxpc3RlbmVyOiA9IEdldEluZGV4ZXJUeXBlRm9yRE9NV3JhcHBlckxp
c3RlbmVyKCRkYXRhTm9kZSk7CisgICAgaWYgKCRpbmRleGVyVHlwZUZvckRPTVdyYXBwZXJMaXN0
ZW5lcikgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwordm9pZCAke2NsYXNz
TmFtZX06OnZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqIHN0b3JlLCB2b2lkKiBvYmplY3Qs
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCit7CisgICAgJHtpbnRlcmZhY2VO
YW1lfSogbGlzdCA9IHN0YXRpY19jYXN0PCR7aW50ZXJmYWNlTmFtZX0qPihvYmplY3QpOworICAg
IFZlY3Rvcjx2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+ID4gd3JhcHBlcnM7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxpc3QtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRy
PCR7aW5kZXhlclR5cGVGb3JET01XcmFwcGVyTGlzdGVuZXJ9PiBpdGVtID0gbGlzdC0+aXRlbShp
KTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0
TWFwKCkuZ2V0KGl0ZW0uZ2V0KCkpOworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQor
ICAgICAgICAgICAgd3JhcHBlcnMuYXBwZW5kKHdyYXBwZXIpOworICAgIH0KKyAgICBpZiAoIXdy
YXBwZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgdjg6OlY4OjpBZGRJbXBsaWNpdFJlZmVyZW5jZXMo
d3JhcHBlciwgd3JhcHBlcnMuZGF0YSgpLCB3cmFwcGVycy5zaXplKCkpOworfQorRU5ECisgICAg
fQorCiAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCA8PEVORCk7CiB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxh
dGU+IFY4RE9NV2luZG93OjpHZXRTaGFkb3dPYmplY3RUZW1wbGF0ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5
LmNwcAppbmRleCAwYTBmNjI4YjQyOWE4ODgxMmMyMDFmZGMyMjkxZjM1NGNhZGMzNTdlLi4wYjhm
MjIzMWMzNDRjMDc5YTE3ODhjM2NjZjE2NzJhZDBlM2E0OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5j
cHAKQEAgLTQyLDcgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlw
ZUluZm8gVjhGbG9hdDY0QXJyYXk6OmluZm8gPSB7IFY4RmxvYXQ2NEFycmF5OjpHZXRUZW1wbGF0
ZSwgVjhGbG9hdDY0QXJyYXk6OmRlcmVmT2JqZWN0LCAwLCAmVjhBcnJheUJ1ZmZlclZpZXc6Omlu
Zm8gfTsKK1dyYXBwZXJUeXBlSW5mbyBWOEZsb2F0NjRBcnJheTo6aW5mbyA9IHsgVjhGbG9hdDY0
QXJyYXk6OkdldFRlbXBsYXRlLCBWOEZsb2F0NjRBcnJheTo6ZGVyZWZPYmplY3QsIDAsIDAsICZW
OEFycmF5QnVmZmVyVmlldzo6aW5mbyB9OwogCiBuYW1lc3BhY2UgRmxvYXQ2NEFycmF5SW50ZXJu
YWwgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhGbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOEZsb2F0NjRBcnJheS5oCmluZGV4IGIxY2RiZTc0M2FkY2M1YjI4YWJlZTUwNGZkYjUz
N2I5YmZhODAxMTAuLmM5YmIzOGU5YjEzYzk3NmJkNDRjYmRkOTBhY2ZlN2Y1MTY5YzRlZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OEZsb2F0NjRBcnJheS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5s
aW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoRmxvYXQ2NEFycmF5Kik7CiAg
ICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0
RE9NV3JhcHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4pOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYp
OwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3Jh
cHBlckludGVybmFsRmllbGRDb3VudCArIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3Qu
Y3BwCmluZGV4IGI4N2JiNTRhNDExOTA4NDI0NjA5YTQ3ZjhhMmU5N2FhODdkYzJmYjIuLjdhODJj
MGIwODA1ZDdjMjc1ZDZjN2I3OWE5YTQzOTQyYmQwNWZiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3Rp
dmVET01PYmplY3QuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotV3JhcHBlclR5cGVJbmZvIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbyA9IHsgVjhUZXN0
QWN0aXZlRE9NT2JqZWN0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0QWN0aXZlRE9NT2JqZWN0OjpkZXJl
Zk9iamVjdCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6
aW5mbyA9IHsgVjhUZXN0QWN0aXZlRE9NT2JqZWN0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0QWN0aXZl
RE9NT2JqZWN0OjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdEFjdGl2
ZURPTU9iamVjdEludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCmluZGV4
IGUxNjNiM2RkNjA3ZTkzOGU0ZTY5MjJkMzEyM2UwNmUyNzdkM2VlOTYuLjA2MDhiZGMxOTA0M2E0
MzVlMTAzOTgwZmExM2YwMmYwNmE2NTIwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0
LmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIH0KICAgICBpbmxpbmUgc3RhdGljIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0QWN0aXZlRE9NT2JqZWN0Kik7CiAgICAgc3Rh
dGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3Jh
cHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwog
ICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGlu
dGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAw
OwogICAgIHN0YXRpYyBib29sIG5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVj
dD4gaG9zdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4ga2V5LCB2ODo6QWNjZXNzVHlwZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cAppbmRleCA2OTllYjRiOTMzNGI5MWFlMjNhYWMwNWM4ZGI2NjU4MTkwNjczZGQwLi41N2MwNjA0
OTcxZTcwYjU5MDAxMDE2NzAwMjlkZmExOGJhZDFhZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1XcmFwcGVyVHlwZUluZm8gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmluZm8gPSB7IFY4
VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpHZXRUZW1wbGF0ZSwgVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI6OmRlcmVmT2JqZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OmluZm8gPSB7IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpHZXRUZW1wbGF0ZSwg
VjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmRlcmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVz
cGFjZSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmgKaW5kZXggMjY0NzkxZDg0YzUwNTdlY2VkMzYwOWFhZWQzMjliMGY1ZDIy
OTExMy4uNzFjMTlhZDgxMDgwZGQ3ZTZlODFkMjkzY2QyMWRkODdiNWRiMGNlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAg
IH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7Cisg
ICAgc3RhdGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZv
OwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBzdGF0
aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5h
bEZpZWxkQ291bnQgKyAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4
IGQ1NjFlYjQ5MWNiYzY0NzNjNjMwNTNlZDYxMmMwM2UyMDJhYmQzNjIuLjg5NzUwYzg1OWIwMjgz
ZjcyMWIwYmJhODlkYTA1OGVkNzIyZmI3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFw
cGVyVHlwZUluZm8gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0RXZlbnRD
b25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmRlcmVmT2Jq
ZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6aW5m
byA9IHsgVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4VGVzdEV2ZW50Q29u
c3RydWN0b3I6OmRlcmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0RXZlbnRD
b25zdHJ1Y3RvckludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5k
ZXggNTIwZTFjZTU4NGNkYjZmYjJmOWEwYWQ4MTdjMzkwY2EzMDAzMjg1ZC4uMTY0NmE1NGE4Nzgw
YWE3ZmIzYmFkNTU3ZTUzYjgxMjA0YzU4MWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV2ZW50Q29uc3RydWN0b3IqKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAgc3RhdGljIHZvaWQgdmlzaXRE
T01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7
CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFw
cGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4
IGJlMDExMzM4M2ZkYjYwOTAyZmRhOGEzNDNhZWJjOTQwM2YwYzEyNTcuLjZhNmEzZjhhY2IzMTVk
MzI0OTFhYmVhZTY2NmNhZWZkMmQ5ZGY2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcApA
QCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5m
byBWOFRlc3RFdmVudFRhcmdldDo6aW5mbyA9IHsgVjhUZXN0RXZlbnRUYXJnZXQ6OkdldFRlbXBs
YXRlLCBWOFRlc3RFdmVudFRhcmdldDo6ZGVyZWZPYmplY3QsIDAsIDAgfTsKK1dyYXBwZXJUeXBl
SW5mbyBWOFRlc3RFdmVudFRhcmdldDo6aW5mbyA9IHsgVjhUZXN0RXZlbnRUYXJnZXQ6OkdldFRl
bXBsYXRlLCBWOFRlc3RFdmVudFRhcmdldDo6ZGVyZWZPYmplY3QsIDAsIDAsIDAgfTsKIAogbmFt
ZXNwYWNlIFRlc3RFdmVudFRhcmdldEludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaApp
bmRleCAwNzM0MTJmODA4ZDE3NmE0N2VkOWFlZmM1ZDAzM2Q5ZGUyMmMxOWRjLi4yMmY5MDEyMDRj
MTEyYjg5MmU0ZjYzYzQ1MTliMDA4MzE3Zjk1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaApA
QCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RFdmVudFRhcmdldCopOwogICAgIHN0YXRpYyB2b2lk
IGRlcmVmT2JqZWN0KHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9N
RGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0
aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBpbmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
KTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5hbWVkUHJvcGVydHlHZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuY3BwCmluZGV4IGFiZGY4MjMzOWMzNGU5YjQwMDNiZjYwNjY0NGZhZmQ5YmRlMTNl
MjEuLjFhYzEyNTFmNTYwMzhiZjAyNjBmZWY5NDA4ZDZiODJkZTA4Yjk2OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
V3JhcHBlclR5cGVJbmZvIFY4VGVzdEludGVyZmFjZTo6aW5mbyA9IHsgVjhUZXN0SW50ZXJmYWNl
OjpHZXRUZW1wbGF0ZSwgVjhUZXN0SW50ZXJmYWNlOjpkZXJlZk9iamVjdCwgVjhUZXN0SW50ZXJm
YWNlOjp0b0FjdGl2ZURPTU9iamVjdCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdEludGVy
ZmFjZTo6aW5mbyA9IHsgVjhUZXN0SW50ZXJmYWNlOjpHZXRUZW1wbGF0ZSwgVjhUZXN0SW50ZXJm
YWNlOjpkZXJlZk9iamVjdCwgVjhUZXN0SW50ZXJmYWNlOjp0b0FjdGl2ZURPTU9iamVjdCwgMCwg
MCB9OwogCiBuYW1lc3BhY2UgVGVzdEludGVyZmFjZUludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFj
ZS5oCmluZGV4IDcyMTZjMDI3ODQ3ZTM5YTVjY2FmYjZkNTU5Mjc4MGJmODg0OWFkYjYuLjExYjNi
MmJiZWEwOWMzYjViNjcwYmY2ZmVhZjA1OWExNDRhNmY0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgK
QEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0SW50ZXJmYWNlKik7CiAgICAgc3RhdGljIHZvaWQg
ZGVyZWZPYmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01E
YXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRp
YyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0Fj
dGl2ZURPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDFm
YTEyZDRlYjY2ZWUxODI2Y2NhNzc0MWQ1NzYwMjEyMzY1OTllOTUuLjJjZTk5YWFjYzNmZmE0ZTY1
OTdiNzVhNDg5NTU3YTU1NGRiMTZhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1XcmFwcGVyVHlwZUluZm8gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW5mbyA9
IHsgVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUsIFY4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI6OmRlcmVmT2JqZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8g
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW5mbyA9IHsgVjhUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUsIFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmRl
cmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKaW5kZXggYWNkZTBlYTQ5NTdiNDRiMTY1NDE1NGM5OTNiMWUzM2I3Y2JhMWVjOC4uNzBmMDg2
MmM4Mzk0ZWI1NmQzMjJlMzc2YzdiNzIxMDc3NTcxOWIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7
CisgICAgc3RhdGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBp
bmZvOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0
V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gZXhpc3RpbmdXcmFwcGVyKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGU2ZjYxZGZmODNhYWI1Njlm
ODliMjM3MTZmZDg5MWYyY2VmYjY1OS4uYzk2Y2M4OTRhZTNjOWI3ZGM2NzE5YTY2ZTU5NjVlNTM4
YWEwNTQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMzMsNyAr
MzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3RO
YW1lZENvbnN0cnVjdG9yOjppbmZvID0geyBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpHZXRUZW1w
bGF0ZSwgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZGVyZWZPYmplY3QsIFY4VGVzdE5hbWVkQ29u
c3RydWN0b3I6OnRvQWN0aXZlRE9NT2JqZWN0LCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6R2V0VGVt
cGxhdGUsIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OmRlcmVmT2JqZWN0LCBWOFRlc3ROYW1lZENv
bnN0cnVjdG9yOjp0b0FjdGl2ZURPTU9iamVjdCwgMCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdE5h
bWVkQ29uc3RydWN0b3JJbnRlcm5hbCB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IHZvaWQgVjhfVVNFKFQpIHsgfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0TmFtZWRD
b25zdHJ1Y3RvckludGVybmFsCiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3ROYW1lZENvbnN0cnVj
dG9yQ29uc3RydWN0b3I6OmluZm8gPSB7IFY4VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cjo6R2V0VGVtcGxhdGUsIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OmRlcmVmT2JqZWN0LCBWOFRl
c3ROYW1lZENvbnN0cnVjdG9yOjp0b0FjdGl2ZURPTU9iamVjdCwgMCB9OworV3JhcHBlclR5cGVJ
bmZvIFY4VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0TmFt
ZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgVjhUZXN0TmFtZWRDb25zdHJ1
Y3Rvcjo6ZGVyZWZPYmplY3QsIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvQWN0aXZlRE9NT2Jq
ZWN0LCAwLCAwIH07CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0TmFtZWRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IGFkZTYwMGU1OTE2NmExYzMz
ODBjMzdmZjQ2NmJhMGIxMDk1ZDA5MmUuLmVkN2VjY2E1OGFiMmFiMGUyOTA4MTUxYjFkZDJlZmQz
N2JlM2U3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAtNDgsNiArNDgs
NyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKFRlc3ROYW1lZENvbnN0cnVjdG9yKik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZP
YmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3Rv
cmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURP
TU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgY29uc3QgaW50IGlu
dGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAppbmRleCBlYzY2M2RjNDQ0YTU0YTA1NjA4ODBiNTI5MzU1OTc3NjYxMTIwOGQz
Li43ZDcxZTA0OWU1ZWQ3YmFiZmQ4ZTA2MzY4ZTgzYTZmMTk4ZjFkMjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApA
QCAtNzEsNyArNzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5m
byBWOFRlc3RPYmo6OmluZm8gPSB7IFY4VGVzdE9iajo6R2V0VGVtcGxhdGUsIFY4VGVzdE9iajo6
ZGVyZWZPYmplY3QsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOFRlc3RPYmo6OmluZm8gPSB7
IFY4VGVzdE9iajo6R2V0VGVtcGxhdGUsIFY4VGVzdE9iajo6ZGVyZWZPYmplY3QsIDAsIDAsIDAg
fTsKIAogbmFtZXNwYWNlIFRlc3RPYmpJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaAppbmRleCBjZGVhZTNlZDM3
ZWI2NDM5ZDZmM2I2ZTU4YTAyM2E5ZWVjNDFmZDAzLi5kYzZjZDAwYjkwOWMyNDY5YTA2ZWM3MTdm
M2JhOGU1NTFjOTZkOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE9iaiop
OwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCB2
aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21NZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJik7CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21NZXRob2RXaXRo
QXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYWFmMjk4ZTNj
NzQ1ODVjZjEwNWU3NGIxMzNkNzNiMzU5YzFhY2NkNC4uNjY0ZWQ5ZDk1YTBjOTdhNGVmZmZlM2Fh
OTgxOTI3MWFhNmY5OWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1XcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRlcmVm
T2JqZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRl
cmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlSW50ZXJuYWwgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYWJkNWRkZjZkNjI1MjM2ZjhlZGY5Mjdh
ZjY2ZjQwZTg1MDg0MDFhNS4uYTgxNDZhMTFhMDk2NzFhYjNhZDMxMGQ2MmM0NWM5ZDM3MTQ0MTI4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAgc3Rh
dGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQg
PSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggZGZiOThjZTM5N2Y0MTZjNTA3MTI4ZjUy
ODkzZjUwZTQ3MjE1OTA2ZS4uMDc5NjYxNzAzM2ZiMjZiMWQ5ZWNhZjBhNjI1MDY4Nzg5OGMwZGFm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKQEAgLTUzLDcg
KzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXcmFwcGVyVHlwZUluZm8qIG5wT2JqZWN0
VHlwZUluZm8oKQogewotICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gdHlwZUluZm8gPSB7IDAs
IDAsIDAsIDAgfTsKKyAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIHR5cGVJbmZvID0geyAwLCAw
LCAwLCAwLCAwIH07CiAgICAgcmV0dXJuICZ0eXBlSW5mbzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDgyNmViM2E5NDUyZDRkMDg0
MDlhOTdiNmM1YWRiMTdkNzVhNWQ5NjUuLjgxYmRmYjAxZDdkZmRkNzk5M2QwODgzNTVlMWJiNmQ3
ZDFhNzRjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxl
ci5jcHAKQEAgLTMzNiw2ICszMzYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHZpc2l0RE9NV3Jh
cHBlcihET01EYXRhU3RvcmUqIHN0b3JlLCB2b2lkKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAgeworICAgICAgICBXcmFwcGVyVHlwZUluZm8qIGluZm8g
PSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOworICAgICAgICBpZiAoaW5m
by0+ZG9tV3JhcHBlclZpc2l0b3JGdW5jdGlvbikKKyAgICAgICAgICAgIGluZm8tPmRvbVdyYXBw
ZXJWaXNpdG9yRnVuY3Rpb24oc3RvcmUsIG9iamVjdCwgd3JhcHBlcik7CiAgICAgfQogCiAgICAg
dm9pZCBhcHBseUdyb3VwaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dyYXBwZXJUeXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBl
clR5cGVJbmZvLmgKaW5kZXggYzI2ODRkNjZiZTY2N2ZiMjA5MzdkNDVkOTNhYmNmNzI3NmExNWNj
Yy4uNTY5NDVhNTJmMTA2YmIyMTk1ZGI3ZWI3MzUxN2RmY2Q0ZWMzOWEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKQEAgLTM2LDE3ICszNiwyMCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgIGNsYXNzIEFjdGl2ZURPTU9iamVjdDsK
LSAgICAKKyAgICBjbGFzcyBET01EYXRhU3RvcmU7CisKICAgICBzdGF0aWMgY29uc3QgaW50IHY4
RE9NV3JhcHBlclR5cGVJbmRleCA9IDA7CiAgICAgc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBw
ZXJPYmplY3RJbmRleCA9IDE7CiAgICAgc3RhdGljIGNvbnN0IGludCB2OERlZmF1bHRXcmFwcGVy
SW50ZXJuYWxGaWVsZENvdW50ID0gMjsKKyAgICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBl
clZpc2l0b3JJbmRleCA9IDM7CiAKICAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdjhET01TdWJ0
cmVlQ2xhc3NJZCA9IDE7CiAKICAgICB0eXBlZGVmIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPiAoKkdldFRlbXBsYXRlRnVuY3Rpb24pKCk7CiAgICAgdHlwZWRlZiB2b2lkICgq
RGVyZWZPYmplY3RGdW5jdGlvbikodm9pZCopOwogICAgIHR5cGVkZWYgQWN0aXZlRE9NT2JqZWN0
KiAoKlRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb24pKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwot
ICAgIAorICAgIHR5cGVkZWYgdm9pZCAoKkRPTVdyYXBwZXJWaXNpdG9yRnVuY3Rpb24pKERPTURh
dGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CisKICAgICAvLyBU
aGlzIHN0cnVjdCBwcm92aWRlcyBhIHdheSB0byBzdG9yZSBhIGJ1bmNoIG9mIGluZm9ybWF0aW9u
IHRoYXQgaXMgaGVscGZ1bCB3aGVuIHVud3JhcHBpbmcKICAgICAvLyB2OCBvYmplY3RzLiBFYWNo
IHY4IGJpbmRpbmdzIGNsYXNzIGhhcyBleGFjdGx5IG9uZSBzdGF0aWMgV3JhcHBlclR5cGVJbmZv
IG1lbWJlciwgc28KICAgICAvLyBjb21wYXJpbmcgcG9pbnRlcnMgaXMgYSBzYWZlIHdheSB0byBk
ZXRlcm1pbmUgaWYgdHlwZXMgbWF0Y2guCkBAIC01Nyw3ICs2MCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdyYXBwZXJUeXBlSW5m
byo+KHY4OjpFeHRlcm5hbDo6VW53cmFwKHR5cGVJbmZvV3JhcHBlcikpOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICAKICAgICAgICAgYm9vbCBlcXVhbHMoY29uc3QgV3JhcHBlclR5cGVJ
bmZvKiB0aGF0KSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gdGhpcyA9PSB0
aGF0OwpAQCAtOTEsNiArOTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0
IEdldFRlbXBsYXRlRnVuY3Rpb24gZ2V0VGVtcGxhdGVGdW5jdGlvbjsKICAgICAgICAgY29uc3Qg
RGVyZWZPYmplY3RGdW5jdGlvbiBkZXJlZk9iamVjdEZ1bmN0aW9uOwogICAgICAgICBjb25zdCBU
b0FjdGl2ZURPTU9iamVjdEZ1bmN0aW9uIHRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb247CisgICAg
ICAgIGNvbnN0IERPTVdyYXBwZXJWaXNpdG9yRnVuY3Rpb24gZG9tV3JhcHBlclZpc2l0b3JGdW5j
dGlvbjsKICAgICAgICAgY29uc3QgV3JhcHBlclR5cGVJbmZvKiBwYXJlbnRDbGFzczsKICAgICB9
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjdiOWQxYTUy
NDNjYjJlMTk3NjI0OTU5NTM0Yjg0ZTVlNThhODMzYi4uN2ZkMTI4YmY2NmIyMDE5NTFmNGYwMWZm
ZjhlODU0M2NlZTJkYzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3Bw
CkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJ
bmZvIFY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yOjppbmZvID0geyBWOEhUTUxJbWFnZUVs
ZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIDAsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5m
byBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhIVE1MSW1hZ2VFbGVt
ZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCAwLCAwLCAwLCAwIH07CiAKIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGQ2YjU2NGRjNDhhNDI2MGMy
MjU2MDJkMjZkNTU0YjIwOGQ3M2YwNmQuLjMxZmNmZWNmNDA2MzdlMTE0MWIyNzgwODhlNzU3MmMy
YTdiMzY4NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKQEAgLTY3OCw3ICs2NzgsNiBAQCBCVUdXSzY2Mzc3IDogZmFzdC9k
b20vU3R5bGVTaGVldC9nYy1pbmxpbmUtc3R5bGUtY3NzdmFsdWVzLmh0bWwgPSBURVhUCiBCVUdX
SzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1wYXJlbnQtcnVsZS5odG1sID0gVEVYVAog
QlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2MtcGFyZW50LXN0eWxlc2hlZXQuaHRt
bCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNoZWV0L2djLXJ1bGUtY2hpbGRy
ZW4td3JhcHBlcnMuaHRtbCA9IFRFWFQKLUJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNoZWV0
L2djLXN0eWxlaGVldC13cmFwcGVyLnhodG1sID0gVEVYVAogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gUEVO
RElORyBURVNUUyAoZm9ya2VkIHRvIHBlbmRpbmcvLCBuZWVkIHRvIGJlIHNlbnQgdXBzdHJlYW0p
CkBAIC0zNTI2LDEwICszNTI1LDYgQEAgQlVHX1NFTk9SQkxBTkNPIEdQVSA6IGZhc3QvY2FudmFz
L2NhbnZhcy10cmFuc2Zvcm1zLWZpbGxSZWN0LXNoYWRvdy5odG1sID0gVEVYVAogCiBCVUdXSzY2
OTUzIDogdHJhbnNpdGlvbnMvZGVmYXVsdC10aW1pbmctZnVuY3Rpb24uaHRtbCA9IFBBU1MgRkFJ
TAogCi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdHJhY2tsaXN0LWlzLXJlYWNoYWJsZS5odG1s
ID0gVEVYVCBDUkFTSAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3RleHQtdHJhY2stY3VlLWlz
LXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFTSAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3Rl
eHQtdHJhY2staXMtcmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICi0KIEJVR1dLNzIyNzEgTUFD
IERFQlVHIDogZmFzdC9sb2FkZXIvamF2YXNjcmlwdC11cmwtaW4tZW1iZWQuaHRtbCA9IFBBU1Mg
Q1JBU0gKIEJVR1dLNzIyNzEgU05PV0xFT1BBUkQgREVCVUcgOiBmYXN0L2RvbS9ub2RlLWl0ZXJh
dG9yLXJlZmVyZW5jZS1ub2RlLW1vdmVkLWNyYXNoLmh0bWwgPSBQQVNTIENSQVNICiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129470</attachid>
            <date>2012-02-29 10:18:18 -0800</date>
            <delta_ts>2012-06-22 16:13:50 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-78149-20120229101817.patch</filename>
            <type>text/plain</type>
            <size>61196</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJmNjliNWM0ZjU1NzY2
MDdkOGU5OGVhNGFlYjEyMTJhMjhlMDE3Yy4uN2YwYTZmNjEwMzM1ZTYxNzM5NDdiYmM0NzgxZTZk
MTJkNTBmMDc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTAyLTI4ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBCaW5kaW5ncyBm
b3IgbGlzdCBpbnRlcmZhY2VzIGFyZSBhbGwgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9FbGVtZW50L2NsaWVudC1y
ZWN0LWxpc3QtcmVhY2hhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL05vZGVMaXN0
L25vZGVsaXN0LXJlYWNoYWJsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9jc3MtcnVs
ZS1saXN0LXJlYWNoYWJsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ZpbGVzL2ZpbGVzLXJl
YWNoYWJsZS5odG1sCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVzZVY4LmNt
YWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUpOgor
ICAgICAgICAoR2V0Q3VzdG9tSXNSZWFjaGFibGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIp
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZXRJbmRleGVyVHlwZUZvckRP
TVdyYXBwZXJMaXN0ZW5lcik6CisgICAgICAgIChOZWVkc1RvVmlzaXRET01XcmFwcGVyKToKKyAg
ICAgICAgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUpOgorICAgICAgICAoR2V0Q3VzdG9tSXNSZWFj
aGFibGUpOgorICAgICAgICAoR2VuZXJhdGVWaXNpdERPTVdyYXBwZXIpOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5Lmg6CisgICAgICAgIChWOEZs
b2F0NjRBcnJheSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFj
dGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgIChWOFRl
c3RBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaDoKKyAg
ICAgICAgKFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oOgorICAgICAgICAoVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRh
cmdldC5oOgorICAgICAgICAoVjhUZXN0RXZlbnRUYXJnZXQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oOgor
ICAgICAgICAoVjhUZXN0SW50ZXJmYWNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5oOgorICAgICAgICAoVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFY4VGVzdE5hbWVkQ29uc3Ry
dWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5oOgorICAgICAgICAoVjhUZXN0T2JqKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFY4VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvTlBW
OE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpucE9iamVjdFR5cGVJbmZvKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cm91cGVyVmlzaXRvcjo6dmlzaXRET01XcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9X
cmFwcGVyVHlwZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV3JhcHBlclR5
cGVJbmZvKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3Vz
dG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2Vu
TGlzdEN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhOb2RlTGlzdDo6dmlzaXRET01XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuaWRs
OgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0LmlkbDoKKyAgICAgICAgKiBkb20vRE9NU3RyaW5n
TWFwLmlkbDoKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAgKiBkb20v
Tm9kZUxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmlkbDoKKyAgICAgICAg
KiBodG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsOgorCiAyMDEyLTAyLTI4ICBBbGV4aXMgTWVu
YXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIGdldENvbXB1dGVk
U3R5bGUgZmFpbHMgZm9yICdmaXJzdC1saW5lJyBwc2V1ZG8tZWxlbWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggN2JiY2JkYzhkODUzMzZiODZkYWYwNTZmMmRjZjZmZTU3ZDhhNGE4OC4uNzhkZWIxYmRjMzQ0
MDk4NTliNjBmMmFmNDM2MWVmYWY1NTYzZGZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xNTIsNyArMTUy
LDYgQEAgdjggewogICAgICAgICBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1J1
bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNs
YXJhdGlvbkN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHls
ZVNoZWV0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1ZhbHVl
Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDYW52
YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBcCkBAIC0xNjIsOCArMTYxLDcgQEAgdjggewogICAgICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIFwKICAg
ICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHAgXAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3Bw
IFwKLSAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAor
ICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCiAKICAg
ICBTT1VSQ0VTICs9IFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3Rh
dGVtZW50RXJyb3JDYWxsYmFjay5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNl
VjguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCA5ODgxNzhkZWZkOTA1
ZjlhNGYzZjExYWU0NjJjNWE2MTYzMGRhYzE0Li4xNTUzY2JjYTlkMThlMDYxZDIxZWRlZjM3OGJh
ZThhYWQ3NzgzMWJmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtNjksNyArNjksNiBAQCBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTUnVsZUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAotICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q1NTVmFsdWVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCkBAIC04MSw3ICs4MCw2IEBAIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3Bw
Ci0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGUyNThmOWU3
OGYzNDRiYTkwZTcxMWU2OWNhYjIzZTJmYWFhNGJjMmIuLjdlYmY0MzVlNDQwMjRhOGM5NjU5NGUz
NzdiNDg3Njk1NjZiOWIyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NjcsNyArMTg2Nyw2IEBA
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1J1bGVDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNw
cCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1ZhbHVlQ3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJh
eUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAnLApAQCAtMTg4MSw3ICsxODgwLDYgQEAKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3Bw
JywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNv
bnRleHRDdXN0b20uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZjlhYTVjOGQxOGExMTQ4OGNiODgzMzBjM2Q3ZTcz
MTgzZGRjZjM0NC4uNjI4ZmZlN2Y5ODUyYWQzNmM0MDU3ZjY0MTFkZWI4NDRlZTQ4MjA4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTM4MSw2ICszODEsMTggQEAgc3ViIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yCiAg
ICAgfQogfQogCitzdWIgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZQoreworICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OworICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJH
ZW5lcmF0ZUlzUmVhY2hhYmxlIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn07Cit9CisKK3N1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQor
eworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Jc1JlYWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tSXNSZWFjaGFibGUifTsKK30KKwogc3ViIEdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcKIHsKICAgICBteSAkbm9kZSA9IHNoaWZ0OwpAQCAtOTY5LDggKzk4
MSw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmICghJGhhc1BhcmVudCB8
fAotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlSXNS
ZWFjaGFibGUifSB8fCAKLSAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNDdXN0b21Jc1JlYWNoYWJsZSJ9IHx8IAorICAgICAgICBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxl
KCRkYXRhTm9kZSkgfHwKKyAgICAgICAgR2V0Q3VzdG9tSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8
fAogICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUZpbmFs
aXplIn0gfHwKICAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZl
RE9NT2JqZWN0In0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzIEpTJHtp
bXBsQ2xhc3NOYW1lfU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHtcbiIpOwpA
QCAtMjIyNCw3ICsyMjM2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICgoISRoYXNQYXJlbnQgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQ3VzdG9tSXNSZWFjaGFibGUifSl8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlSXNSZWFjaGFibGUifSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgeworICAgIGlmICgoISRoYXNQYXJl
bnQgJiYgIUdldEN1c3RvbUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkpfHwgR2V0R2VuZXJhdGVJc1Jl
YWNoYWJsZSgkZGF0YU5vZGUpIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFj
dGl2ZURPTU9iamVjdCJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGlu
bGluZSBib29sIGlzT2JzZXJ2YWJsZShKUyR7aW1wbENsYXNzTmFtZX0qIGpzJHtpbXBsQ2xhc3NO
YW1lfSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ltcGxDbGFzc05hbWV9LT5oYXNDdXN0b21Q
cm9wZXJ0aWVzKCkpXG4iKTsKQEAgLTIyNTIsMjEgKzIyNjQsMjEgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoIWlzT2JzZXJ2YWJsZShqcyR7aW1wbENsYXNzTmFtZX0pKVxuIik7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iKTsKLSAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9KSB7
CisgICAgICAgIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkpIHsKICAgICAg
ICAgICAgIG15ICRyb290U3RyaW5nOwotICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IGVxICJJbXBsIikgeworICAg
ICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbCIp
IHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgICR7aW1wbFR5cGV9KiByb290
ID0ganMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCk7XG4iOwotICAgICAgICAgICAgfSBlbHNpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn0g
ZXEgIkltcGxDb250ZXh0IikgeworICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1Jl
YWNoYWJsZSgkZGF0YU5vZGUpIGVxICJJbXBsQ29udGV4dCIpIHsKICAgICAgICAgICAgICAgICAk
cm9vdFN0cmluZyAgPSAiICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogcm9vdCA9IGpzJHtpbXBs
Q2xhc3NOYW1lfS0+aW1wbCgpLT5jb250ZXh0KCk7XG4iOwotICAgICAgICAgICAgfSBlbHNpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn0g
ZXEgIkltcGxGcmFtZSIpIHsKKyAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFj
aGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbEZyYW1lIikgewogICAgICAgICAgICAgICAgICRyb290
U3RyaW5nICA9ICIgICAgRnJhbWUqIHJvb3QgPSBqcyR7aW1wbENsYXNzTmFtZX0tPmltcGwoKS0+
ZnJhbWUoKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoIXJv
b3QpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgICAgIHJldHVybiBm
YWxzZTtcbiI7Ci0gICAgICAgICAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0dlbmVyYXRlSXNSZWFjaGFibGUifSBlcSAiSW1wbERvY3VtZW50IikgeworICAg
ICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICJJ
bXBsRG9jdW1lbnQiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICBEb2N1
bWVudCogcm9vdCA9IGpzJHtpbXBsQ2xhc3NOYW1lfS0+aW1wbCgpLT5kb2N1bWVudCgpO1xuIjsK
ICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIGlmICghcm9vdClcbiI7CiAgICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIjsKLSAg
ICAgICAgICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2Vu
ZXJhdGVJc1JlYWNoYWJsZSJ9IGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CisgICAgICAgICAgICB9
IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxFbGVtZW50
Um9vdCIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBqcyR7aW1wbENsYXNzTmFtZX0tPmltcGwoKS0+ZWxlbWVudCgpO1xuIjsKICAgICAg
ICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIGlmICghZWxlbWVudClcbiI7CiAgICAgICAg
ICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIjsKQEAgLTIy
OTAsOCArMjMwMiw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBpZiAoISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRmluYWxpemUifSAmJgogICAg
ICAgICAoISRoYXNQYXJlbnQgfHwKLSAgICAgICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8Ci0gICAgICAgICAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUlzUmVhY2hhYmxlIn0gfHwKKyAgICAgICAgIEdl
dEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fAorICAgICAgICAgR2V0Q3VzdG9tSXNS
ZWFjaGFibGUoJGRhdGFOb2RlKSB8fAogICAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAidm9pZCBKUyR7aW1wbENsYXNzTmFtZX1Pd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpXG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggOGM0NmY4YzQyM2NhMWU0NTE5ZDM3MGU3MzJkZTQ4
ZDY2YzRmZGJkZi4uZDJiNTRkNTcxMjI5MGEyZWMyMDFmMjBkZWIyMTUxZTA0ZWQwNWIxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KQEAgLTE5Miw2ICsxOTIsMTE2IEBAIHN1YiBHZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nCiAg
ICAgfQogfQogCisKK3N1YiBHZXRJbmRleGVyVHlwZUZvckRPTVdyYXBwZXJMaXN0ZW5lcgorewor
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0luZGV4R2V0dGVyID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9OworICAgIGlmICgh
JGhhc0luZGV4R2V0dGVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG15ICRp
bmRleGVyOworCisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlv
bnN9KSB7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSBlcSAiaXRlbSIp
IHsKKyAgICAgICAgICAgICRpbmRleGVyID0gJGZ1bmN0aW9uLT5zaWduYXR1cmU7CisgICAgICAg
ICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCEkaW5kZXhlcikgeworICAg
ICAgICAkaW5kZXhlciA9ICRjb2RlR2VuZXJhdG9yLT5GaW5kU3VwZXJNZXRob2QoJGRhdGFOb2Rl
LCAiaXRlbSIpOworICAgIH0KKworICAgIGlmICghJGluZGV4ZXIpIHsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCisgICAgbXkgJGluZGV4ZXJUeXBlID0gJGluZGV4ZXItPnR5cGU7CisKKyAg
ICBpZiAoSXNXcmFwcGVyVHlwZSgkaW5kZXhlclR5cGUpICYmICFJc0RPTU5vZGVUeXBlKCRpbmRl
eGVyVHlwZSkpIHsKKyAgICAgICAgcmV0dXJuICRpbmRleGVyVHlwZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gMDsKK30KKworc3ViIE5lZWRzVG9WaXNpdERPTVdyYXBwZXIKK3sKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKyAgICByZXR1cm4gR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5v
ZGUpIHx8IEdldEN1c3RvbUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0SW5kZXhlclR5cGVG
b3JET01XcmFwcGVyTGlzdGVuZXIoJGRhdGFOb2RlKTsKK30KKworc3ViIEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICByZXR1cm4gJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4R2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8ICIi
Cit9CisKK3N1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OworICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21J
c1JlYWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9t
SXNSZWFjaGFibGUifTsKK30KKworc3ViIEdlbmVyYXRlVmlzaXRET01XcmFwcGVyCit7CisgICAg
bXkgKCRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpID0gQF87CisKKyAgICBpZiAoR2V0Q3VzdG9t
SXNSZWFjaGFibGUoJGRhdGFOb2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKK3ZvaWQgVjgke2ltcGxDbGFzc05hbWV9Ojp2aXNp
dERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdm9pZCogb2JqZWN0LCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQoreworICAgICR7aW1wbENsYXNzTmFtZX0qIGltcGwg
PSBzdGF0aWNfY2FzdDwke2ltcGxDbGFzc05hbWV9Kj4ob2JqZWN0KTsKK0VORAorICAgIGlmIChH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgICJJbXBsRWxlbWVudFJvb3QiIHx8
CisgICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAgIkltcGxPd25l
clJvb3QiIHx8CisgICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAg
IkltcGxPd25lck5vZGVSb290IikgeworCisgICAgICAgIG15ICRtZXRob2ROYW1lOworICAgICAg
ICAkbWV0aG9kTmFtZSA9ICJlbGVtZW50IiBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0
YU5vZGUpIGVxICJJbXBsRWxlbWVudFJvb3QiKTsKKyAgICAgICAgJG1ldGhvZE5hbWUgPSAib3du
ZXIiIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxPd25lclJv
b3QiKTsKKyAgICAgICAgJG1ldGhvZE5hbWUgPSAib3duZXJOb2RlIiBpZiAoR2V0R2VuZXJhdGVJ
c1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICJJbXBsT3duZXJOb2RlUm9vdCIpOworCisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgTm9kZSogb3duZXIgPSBpbXBsLT4ke21l
dGhvZE5hbWV9KCk7CisgICAgaWYgKG93bmVyKSB7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+IG93bmVyV3JhcHBlciA9IGdldERPTU5vZGVNYXAoKS5nZXQob3duZXIpOworICAg
ICAgICBpZiAoIW93bmVyV3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpWYWx1ZT4gdmFsdWUgPSB3cmFwcGVyOworICAgICAgICAgICAgdjg6OlY4OjpB
ZGRJbXBsaWNpdFJlZmVyZW5jZXMob3duZXJXcmFwcGVyLCAmdmFsdWUsIDEpOworICAgICAgICB9
CisgICAgfQorRU5ECisgICAgfQorCisgICAgbXkgJGluZGV4ZXJUeXBlRm9yRE9NV3JhcHBlckxp
c3RlbmVyID0gR2V0SW5kZXhlclR5cGVGb3JET01XcmFwcGVyTGlzdGVuZXIoJGRhdGFOb2RlKTsK
KyAgICBpZiAoJGluZGV4ZXJUeXBlRm9yRE9NV3JhcHBlckxpc3RlbmVyKSB7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgeworICAgICAgICBWZWN0b3I8djg6OlBlcnNp
c3RlbnQ8djg6OlZhbHVlPiA+IHdyYXBwZXJzOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgaW1wbC0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgUmVmUHRyPCR7aW5kZXhl
clR5cGVGb3JET01XcmFwcGVyTGlzdGVuZXJ9PiBpdGVtID0gaW1wbC0+aXRlbShpKTsKKyAgICAg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcCgp
LmdldChpdGVtLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgd3JhcHBlcnMuYXBwZW5kKHdyYXBwZXIpOworICAgICAgICB9CisgICAg
ICAgIGlmICghd3JhcHBlcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgdjg6OlY4OjpBZGRJbXBs
aWNpdFJlZmVyZW5jZXMod3JhcHBlciwgd3JhcHBlcnMuZGF0YSgpLCB3cmFwcGVycy5zaXplKCkp
OworICAgIH0KK0VORAorICAgIH0KKyAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworfQor
CitFTkQKK30KKwogc3ViIEdldFNWR1Byb3BlcnR5VHlwZXMKIHsKICAgICBteSAkaW1wbFR5cGUg
PSBzaGlmdDsKQEAgLTM0MCw2ICs0NTAsNyBAQCBFTkQKICAgICB9CiAgICAgaW5saW5lIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoJHtuYXRpdmVUeXBlfSoke2ZvcmNlTmV3T2Jq
ZWN0UGFyYW1ldGVyfSk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOworICAg
IHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsK
IEVORAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01P
YmplY3QifSkgewpAQCAtMTc5MSwxMiArMTkwMiwxMiBAQCBzdWIgR2VuZXJhdGVOYW1lZENvbnN0
cnVjdG9yQ2FsbGJhY2sKIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJBY3RpdmVET01PYmplY3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwotV3JhcHBlclR5cGVJbmZvIFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yOjppbmZvID0g
eyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4JHtpbXBsQ2xh
c3NOYW1lfTo6ZGVyZWZPYmplY3QsIFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9BY3RpdmVET01PYmpl
Y3QsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6
aW5mbyA9IHsgVjgke2ltcGxDbGFzc05hbWV9Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCBWOCR7
aW1wbENsYXNzTmFtZX06OmRlcmVmT2JqZWN0LCBWOCR7aW1wbENsYXNzTmFtZX06OnRvQWN0aXZl
RE9NT2JqZWN0LCAwLCAwIH07CiAKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCA8PEVORCk7Ci1XcmFwcGVyVHlwZUluZm8gVjgke2ltcGxDbGFzc05hbWV9Q29u
c3RydWN0b3I6OmluZm8gPSB7IFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpHZXRUZW1w
bGF0ZSwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0
cnVjdG9yOjppbmZvID0geyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6R2V0VGVtcGxh
dGUsIDAsIDAsIDAsIDAgfTsKIAogRU5ECiAgICAgfQpAQCAtMjI0MSw2ICsyMzUyLDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJGludGVyZmFj
ZU5hbWUpOwogCiAgICAgbXkgJHRvQWN0aXZlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0gPyAiJHtjbGFzc05hbWV9Ojp0b0FjdGl2ZURPTU9iamVj
dCIgOiAiMCI7CisgICAgbXkgJGRvbVZpc2l0b3IgPSBOZWVkc1RvVmlzaXRET01XcmFwcGVyKCRk
YXRhTm9kZSkgPyAiJHtjbGFzc05hbWV9Ojp2aXNpdERPTVdyYXBwZXIiIDogIjAiOwogCiAgICAg
IyBGaW5kIHRoZSBzdXBlciBkZXNjcmlwdG9yLgogICAgIG15ICRwYXJlbnRDbGFzcyA9ICIiOwpA
QCAtMjI1Nyw3ICsyMzY5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7CiAg
ICAgbXkgJHBhcmVudENsYXNzSW5mbyA9ICRwYXJlbnRDbGFzcyA/ICImJHtwYXJlbnRDbGFzc306
OmluZm8iIDogIjAiOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUlu
Zm8gJHtjbGFzc05hbWV9OjppbmZvID0geyAke2NsYXNzTmFtZX06OkdldFRlbXBsYXRlLCAke2Ns
YXNzTmFtZX06OmRlcmVmT2JqZWN0LCAke3RvQWN0aXZlfSwgJHtwYXJlbnRDbGFzc0luZm99IH07
XG5cbiIpOyAgIAorICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8g
JHtjbGFzc05hbWV9OjppbmZvID0geyAke2NsYXNzTmFtZX06OkdldFRlbXBsYXRlLCAke2NsYXNz
TmFtZX06OmRlcmVmT2JqZWN0LCAke3RvQWN0aXZlfSwgJHtkb21WaXNpdG9yfSwgJHtwYXJlbnRD
bGFzc0luZm99IH07XG5cbiIpOyAgIAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJuYW1l
c3BhY2UgJHtpbnRlcmZhY2VOYW1lfUludGVybmFsIHtcblxuIik7CiAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgInRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIFY4X1VTRShUKSB7IH1cblxu
Iik7CiAKQEAgLTIzMTAsNiArMjQyMiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVyKCRkYXRhTm9kZSwgJGltcGxDbGFzc05h
bWUpOwogICAgIH0KIAorICAgIGlmIChOZWVkc1RvVmlzaXRET01XcmFwcGVyKCRkYXRhTm9kZSkp
IHsKKyAgICAgICAgR2VuZXJhdGVWaXNpdERPTVdyYXBwZXIoJGRhdGFOb2RlLCAkaW1wbENsYXNz
TmFtZSk7CisgICAgfQorCiAgICAgbXkgJGluZGV4ZXI7CiAgICAgbXkgJG5hbWVkUHJvcGVydHlH
ZXR0ZXI7CiAgICAgIyBHZW5lcmF0ZSBtZXRob2RzIGZvciBmdW5jdGlvbnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBkMTA1
ZTA4NzI3ZGU5MTE3N2VmNTE5MjBkNzE3NDRmZjc5MGQ5Yzk4Li41YjZhNTMwNWJiZjk5ZDk3NDE1
MTg2MjMyNTE1MjdhOWMyMDk2NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTM4LDYgKzM4LDcgQEAgQ3VzdG9tRW51bWVy
YXRlUHJvcGVydHkKIEN1c3RvbUdldE93blByb3BlcnR5U2xvdAogQ3VzdG9tR2V0dGVyCiBDdXN0
b21JbmRleGVkU2V0dGVyCitDdXN0b21Jc1JlYWNoYWJsZQogQ3VzdG9tTmFtZWRHZXR0ZXIKIEN1
c3RvbU5hbWVkU2V0dGVyCiBDdXN0b21QdXRGdW5jdGlvbgpAQCAtNTEsMTEgKzUyLDEyIEBAIERv
Tm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyCiBEb05vdENoZWNrU2VjdXJpdHlPblNldHRlcgogRXZl
bnRUYXJnZXQKIEV4dGVuZHNET01HbG9iYWxPYmplY3QKK0dlbmVyYXRlSXNSZWFjaGFibGU9fElt
cGx8SW1wbENvbnRleHR8SW1wbERvY3VtZW50fEltcGxFbGVtZW50Um9vdHxJbXBsRnJhbWUKIElt
bXV0YWJsZQogSW1wbGVtZW50ZWRBcz0qCiBJbmRleGVkR2V0dGVyCi1JbnRlcmZhY2VOYW1lPSoK
IEluaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yCitJbnRlcmZhY2VOYW1lPSoKIElzSW5kZXgK
IElzV29ya2VyQ29udGV4dAogSlNDdXN0b20KQEAgLTEwNCwxMCArMTA2LDEyIEBAIFVSTAogVjhD
dXN0b20KIFY4Q3VzdG9tQ29uc3RydWN0b3IKIFY4Q3VzdG9tR2V0dGVyCitWOEN1c3RvbUlzUmVh
Y2hhYmxlCiBWOEN1c3RvbVNldHRlcgogVjhDdXN0b21Ub0pTT2JqZWN0CiBWOERlcGVuZGVudExp
ZmV0aW1lCiBWOERvTm90Q2hlY2tTaWduYXR1cmUKIFY4RW5hYmxlZEF0UnVudGltZT0qCitWOEdl
bmVyYXRlSXNSZWFjaGFibGU9fEltcGxFbGVtZW50Um9vdHxJbXBsT3duZXJSb290fEltcGxPd25l
ck5vZGVSb290CiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcApp
bmRleCAwYTBmNjI4YjQyOWE4ODgxMmMyMDFmZGMyMjkxZjM1NGNhZGMzNTdlLi4wYjhmMjIzMWMz
NDRjMDc5YTE3ODhjM2NjZjE2NzJhZDBlM2E0OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKQEAg
LTQyLDcgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlwZUluZm8g
VjhGbG9hdDY0QXJyYXk6OmluZm8gPSB7IFY4RmxvYXQ2NEFycmF5OjpHZXRUZW1wbGF0ZSwgVjhG
bG9hdDY0QXJyYXk6OmRlcmVmT2JqZWN0LCAwLCAmVjhBcnJheUJ1ZmZlclZpZXc6OmluZm8gfTsK
K1dyYXBwZXJUeXBlSW5mbyBWOEZsb2F0NjRBcnJheTo6aW5mbyA9IHsgVjhGbG9hdDY0QXJyYXk6
OkdldFRlbXBsYXRlLCBWOEZsb2F0NjRBcnJheTo6ZGVyZWZPYmplY3QsIDAsIDAsICZWOEFycmF5
QnVmZmVyVmlldzo6aW5mbyB9OwogCiBuYW1lc3BhY2UgRmxvYXQ2NEFycmF5SW50ZXJuYWwgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhG
bG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OEZsb2F0NjRBcnJheS5oCmluZGV4IGIxY2RiZTc0M2FkY2M1YjI4YWJlZTUwNGZkYjUzN2I5YmZh
ODAxMTAuLmM5YmIzOGU5YjEzYzk3NmJkNDRjYmRkOTBhY2ZlN2Y1MTY5YzRlZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoRmxvYXQ2NEFycmF5Kik7CiAgICAgc3Rh
dGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3Jh
cHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwog
ICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAg
IHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlcklu
dGVybmFsRmllbGRDb3VudCArIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmlu
ZGV4IGRjNzNjMjY5MGUyMjVlYWU0NGM1NmFmZTAwZWFkMjEwNzBlOTNlNjYuLmE1MDVhZDRjYzZj
ZGZkZTJiNDEwYjg5ZTRmM2UwMDk0ZWY5N2YzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3Jh
cHBlclR5cGVJbmZvIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbyA9IHsgVjhUZXN0QWN0aXZl
RE9NT2JqZWN0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0QWN0aXZlRE9NT2JqZWN0OjpkZXJlZk9iamVj
dCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbyA9
IHsgVjhUZXN0QWN0aXZlRE9NT2JqZWN0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0QWN0aXZlRE9NT2Jq
ZWN0OjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdEFjdGl2ZURPTU9i
amVjdEludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCmluZGV4IGUxNjNi
M2RkNjA3ZTkzOGU0ZTY5MjJkMzEyM2UwNmUyNzdkM2VlOTYuLjA2MDhiZGMxOTA0M2E0MzVlMTAz
OTgwZmExM2YwMmYwNmE2NTIwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKQEAg
LTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcChUZXN0QWN0aXZlRE9NT2JqZWN0Kik7CiAgICAgc3RhdGljIHZv
aWQgZGVyZWZPYmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihE
T01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0
YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFs
RmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwogICAg
IHN0YXRpYyBib29sIG5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9z
dCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4ga2V5LCB2ODo6QWNjZXNzVHlwZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRl
eCA2OTllYjRiOTMzNGI5MWFlMjNhYWMwNWM4ZGI2NjU4MTkwNjczZGQwLi41N2MwNjA0OTcxZTcw
YjU5MDAxMDE2NzAwMjlkZmExOGJhZDFhZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1X
cmFwcGVyVHlwZUluZm8gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmluZm8gPSB7IFY4VGVzdEN1
c3RvbU5hbWVkR2V0dGVyOjpHZXRUZW1wbGF0ZSwgVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmRl
cmVmT2JqZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI6OmluZm8gPSB7IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpHZXRUZW1wbGF0ZSwgVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI6OmRlcmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmgKaW5kZXggMjY0NzkxZDg0YzUwNTdlY2VkMzYwOWFhZWQzMjliMGY1ZDIyOTExMy4u
NzFjMTlhZDgxMDgwZGQ3ZTZlODFkMjkzY2QyMWRkODdiNWRiMGNlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIH0KICAg
ICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAgc3Rh
dGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBzdGF0aWMgY29u
c3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxk
Q291bnQgKyAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGQ1NjFl
YjQ5MWNiYzY0NzNjNjMwNTNlZDYxMmMwM2UyMDJhYmQzNjIuLjg5NzUwYzg1OWIwMjgzZjcyMWIw
YmJhODlkYTA1OGVkNzIyZmI3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlw
ZUluZm8gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmRlcmVmT2JqZWN0LCAw
LCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsg
VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUsIFY4VGVzdEV2ZW50Q29uc3RydWN0
b3I6OmRlcmVmT2JqZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0RXZlbnRDb25zdHJ1
Y3RvckludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggNTIw
ZTFjZTU4NGNkYjZmYjJmOWEwYWQ4MTdjMzkwY2EzMDAzMjg1ZC4uMTY0NmE1NGE4NzgwYWE3ZmIz
YmFkNTU3ZTUzYjgxMjA0YzU4MWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5o
CkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV2ZW50Q29uc3RydWN0b3IqKTsKICAgICBzdGF0
aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAgc3RhdGljIHZvaWQgdmlzaXRET01XcmFw
cGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CiAg
ICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CiAgICAg
c3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50
ZXJuYWxGaWVsZENvdW50ICsgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGJlMDEx
MzM4M2ZkYjYwOTAyZmRhOGEzNDNhZWJjOTQwM2YwYzEyNTcuLjZhNmEzZjhhY2IzMTVkMzI0OTFh
YmVhZTY2NmNhZWZkMmQ5ZGY2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMzYs
NyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRl
c3RFdmVudFRhcmdldDo6aW5mbyA9IHsgVjhUZXN0RXZlbnRUYXJnZXQ6OkdldFRlbXBsYXRlLCBW
OFRlc3RFdmVudFRhcmdldDo6ZGVyZWZPYmplY3QsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBW
OFRlc3RFdmVudFRhcmdldDo6aW5mbyA9IHsgVjhUZXN0RXZlbnRUYXJnZXQ6OkdldFRlbXBsYXRl
LCBWOFRlc3RFdmVudFRhcmdldDo6ZGVyZWZPYmplY3QsIDAsIDAsIDAgfTsKIAogbmFtZXNwYWNl
IFRlc3RFdmVudFRhcmdldEludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaAppbmRleCAw
NzM0MTJmODA4ZDE3NmE0N2VkOWFlZmM1ZDAzM2Q5ZGUyMmMxOWRjLi4yMmY5MDEyMDRjMTEyYjg5
MmU0ZjYzYzQ1MTliMDA4MzE3Zjk1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaApAQCAtNDIs
NiArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwKFRlc3RFdmVudFRhcmdldCopOwogICAgIHN0YXRpYyB2b2lkIGRlcmVm
T2JqZWN0KHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0
b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3Jh
cHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpbmRl
eGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAg
ICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5hbWVkUHJvcGVydHlHZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IGEzNDc2MjZmMWZmZTZjOWY1MWQxNzZkNmI5ODI4OTk1NDdjODBmZTEuLjMy
ZmY3NTc4YWUxNjdiNDRjNjg0ZWU1YWY0YWJmNjVhZWFjNDIzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZh
Y2UuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBl
clR5cGVJbmZvIFY4VGVzdEludGVyZmFjZTo6aW5mbyA9IHsgVjhUZXN0SW50ZXJmYWNlOjpHZXRU
ZW1wbGF0ZSwgVjhUZXN0SW50ZXJmYWNlOjpkZXJlZk9iamVjdCwgVjhUZXN0SW50ZXJmYWNlOjp0
b0FjdGl2ZURPTU9iamVjdCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdEludGVyZmFjZTo6
aW5mbyA9IHsgVjhUZXN0SW50ZXJmYWNlOjpHZXRUZW1wbGF0ZSwgVjhUZXN0SW50ZXJmYWNlOjpk
ZXJlZk9iamVjdCwgVjhUZXN0SW50ZXJmYWNlOjp0b0FjdGl2ZURPTU9iamVjdCwgMCwgMCB9Owog
CiBuYW1lc3BhY2UgVGVzdEludGVyZmFjZUludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCmlu
ZGV4IDcyMTZjMDI3ODQ3ZTM5YTVjY2FmYjZkNTU5Mjc4MGJmODg0OWFkYjYuLjExYjNiMmJiZWEw
OWMzYjViNjcwYmY2ZmVhZjA1OWExNDRhNmY0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKQEAgLTQ0
LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcChUZXN0SW50ZXJmYWNlKik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZP
YmplY3Qodm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3Rv
cmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURP
TU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDFmYTEyZDRl
YjY2ZWUxODI2Y2NhNzc0MWQ1NzYwMjEyMzY1OTllOTUuLjJjZTk5YWFjYzNmZmE0ZTY1OTdiNzVh
NDg5NTU3YTU1NGRiMTZhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1X
cmFwcGVyVHlwZUluZm8gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW5mbyA9IHsgVjhU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUsIFY4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI6OmRlcmVmT2JqZWN0LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW5mbyA9IHsgVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6R2V0VGVtcGxhdGUsIFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmRlcmVmT2Jq
ZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcklu
dGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5k
ZXggYWNkZTBlYTQ5NTdiNDRiMTY1NDE1NGM5OTNiMWUzM2I3Y2JhMWVjOC4uNzBmMDg2MmM4Mzk0
ZWI1NmQzMjJlMzc2YzdiNzIxMDc3NTcxOWIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
aW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAg
c3RhdGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwog
ICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBl
ckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gZXhpc3RpbmdXcmFwcGVyKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGU2ZjYxZGZmODNhYWI1NjlmODliMjM3
MTZmZDg5MWYyY2VmYjY1OS4uYzk2Y2M4OTRhZTNjOWI3ZGM2NzE5YTY2ZTU5NjVlNTM4YWEwNTQ3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMzMsNyArMzMsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3ROYW1lZENv
bnN0cnVjdG9yOjppbmZvID0geyBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwg
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZGVyZWZPYmplY3QsIFY4VGVzdE5hbWVkQ29uc3RydWN0
b3I6OnRvQWN0aXZlRE9NT2JqZWN0LCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxhdGUs
IFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OmRlcmVmT2JqZWN0LCBWOFRlc3ROYW1lZENvbnN0cnVj
dG9yOjp0b0FjdGl2ZURPTU9iamVjdCwgMCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdE5hbWVkQ29u
c3RydWN0b3JJbnRlcm5hbCB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IHZvaWQgVjhfVVNFKFQpIHsgfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0TmFtZWRDb25zdHJ1
Y3RvckludGVybmFsCiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3ROYW1lZENvbnN0cnVjdG9yQ29u
c3RydWN0b3I6OmluZm8gPSB7IFY4VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6R2V0
VGVtcGxhdGUsIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OmRlcmVmT2JqZWN0LCBWOFRlc3ROYW1l
ZENvbnN0cnVjdG9yOjp0b0FjdGl2ZURPTU9iamVjdCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4
VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0TmFtZWRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6
ZGVyZWZPYmplY3QsIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvQWN0aXZlRE9NT2JqZWN0LCAw
LCAwIH07CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RO
YW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IGFkZTYwMGU1OTE2NmExYzMzODBjMzdm
ZjQ2NmJhMGIxMDk1ZDA5MmUuLmVkN2VjY2E1OGFiMmFiMGUyOTA4MTUxYjFkZDJlZmQzN2JlM2U3
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBw
dWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwKFRlc3ROYW1lZENvbnN0cnVjdG9yKik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qo
dm9pZCopOworICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqLCB2
b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFwcGVyVHlw
ZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURPTU9iamVj
dCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFs
RmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcAppbmRleCA0YTIwMjlhMjIxYTE0NWJmNDE4ZTJiYmJhNGJmMzI4MmExNDQyN2RjLi5lZDQw
Y2FiNTllMGUxMWY1MmRkZjkzYmRkOWM3YTM3NmRkOGE4Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtNzEs
NyArNzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRl
c3RPYmo6OmluZm8gPSB7IFY4VGVzdE9iajo6R2V0VGVtcGxhdGUsIFY4VGVzdE9iajo6ZGVyZWZP
YmplY3QsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOFRlc3RPYmo6OmluZm8gPSB7IFY4VGVz
dE9iajo6R2V0VGVtcGxhdGUsIFY4VGVzdE9iajo6ZGVyZWZPYmplY3QsIDAsIDAsIDAgfTsKIAog
bmFtZXNwYWNlIFRlc3RPYmpJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaAppbmRleCBjZGVhZTNlZDM3ZWI2NDM5
ZDZmM2I2ZTU4YTAyM2E5ZWVjNDFmZDAzLi5kYzZjZDAwYjkwOWMyNDY5YTA2ZWM3MTdmM2JhOGU1
NTFjOTZkOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
aW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE9iaiopOwogICAg
IHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCB2aXNpdERP
TVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBjdXN0b21NZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7
CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21NZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYWFmMjk4ZTNjNzQ1ODVj
ZjEwNWU3NGIxMzNkNzNiMzU5YzFhY2NkNC4uNjY0ZWQ5ZDk1YTBjOTdhNGVmZmZlM2FhOTgxOTI3
MWFhNmY5OWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1XcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkdldFRl
bXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRlcmVmT2JqZWN0
LCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6Okdl
dFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRlcmVmT2Jq
ZWN0LCAwLCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlSW50ZXJuYWwgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYWJkNWRkZjZkNjI1MjM2ZjhlZGY5MjdhZjY2ZjQw
ZTg1MDg0MDFhNS4uYTgxNDZhMTFhMDk2NzFhYjNhZDMxMGQ2MmM0NWM5ZDM3MTQ0MTI4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
aApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CisgICAgc3RhdGljIHZv
aWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERl
ZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggZGZiOThjZTM5N2Y0MTZjNTA3MTI4ZjUyODkzZjUw
ZTQ3MjE1OTA2ZS4uMDc5NjYxNzAzM2ZiMjZiMWQ5ZWNhZjBhNjI1MDY4Nzg5OGMwZGFmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXcmFwcGVyVHlwZUluZm8qIG5wT2JqZWN0VHlwZUlu
Zm8oKQogewotICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gdHlwZUluZm8gPSB7IDAsIDAsIDAs
IDAgfTsKKyAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIHR5cGVJbmZvID0geyAwLCAwLCAwLCAw
LCAwIH07CiAgICAgcmV0dXJuICZ0eXBlSW5mbzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDgyNmViM2E5NDUyZDRkMDg0MDlhOTdi
NmM1YWRiMTdkNzVhNWQ5NjUuLjgxYmRmYjAxZDdkZmRkNzk5M2QwODgzNTVlMWJiNmQ3ZDFhNzRj
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAK
QEAgLTMzNiw2ICszMzYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHZpc2l0RE9NV3JhcHBlcihE
T01EYXRhU3RvcmUqIHN0b3JlLCB2b2lkKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHdyYXBwZXIpCiAgICAgeworICAgICAgICBXcmFwcGVyVHlwZUluZm8qIGluZm8gPSBWOERP
TVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOworICAgICAgICBpZiAoaW5mby0+ZG9t
V3JhcHBlclZpc2l0b3JGdW5jdGlvbikKKyAgICAgICAgICAgIGluZm8tPmRvbVdyYXBwZXJWaXNp
dG9yRnVuY3Rpb24oc3RvcmUsIG9iamVjdCwgd3JhcHBlcik7CiAgICAgfQogCiAgICAgdm9pZCBh
cHBseUdyb3VwaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dy
YXBwZXJUeXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJ
bmZvLmgKaW5kZXggYzI2ODRkNjZiZTY2N2ZiMjA5MzdkNDVkOTNhYmNmNzI3NmExNWNjYy4uNjZi
N2FhNDkzZmIyYzRlOTQ2NDg1NTRhM2I1MjczNWRjODMzMWEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKQEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAKICAgICBjbGFzcyBBY3RpdmVET01PYmplY3Q7CisgICAgY2xh
c3MgRE9NRGF0YVN0b3JlOwogICAgIAogICAgIHN0YXRpYyBjb25zdCBpbnQgdjhET01XcmFwcGVy
VHlwZUluZGV4ID0gMDsKICAgICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlck9iamVjdElu
ZGV4ID0gMTsKQEAgLTQ2LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVk
ZWYgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqR2V0VGVtcGxhdGVGdW5j
dGlvbikoKTsKICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0aW9uKSh2b2lkKik7
CiAgICAgdHlwZWRlZiBBY3RpdmVET01PYmplY3QqICgqVG9BY3RpdmVET01PYmplY3RGdW5jdGlv
bikodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CisgICAgdHlwZWRlZiB2b2lkICgqRE9NV3JhcHBl
clZpc2l0b3JGdW5jdGlvbikoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+KTsKICAgICAKICAgICAvLyBUaGlzIHN0cnVjdCBwcm92aWRlcyBhIHdheSB0byBz
dG9yZSBhIGJ1bmNoIG9mIGluZm9ybWF0aW9uIHRoYXQgaXMgaGVscGZ1bCB3aGVuIHVud3JhcHBp
bmcKICAgICAvLyB2OCBvYmplY3RzLiBFYWNoIHY4IGJpbmRpbmdzIGNsYXNzIGhhcyBleGFjdGx5
IG9uZSBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIG1lbWJlciwgc28KQEAgLTkxLDYgKzkzLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBHZXRUZW1wbGF0ZUZ1bmN0aW9uIGdl
dFRlbXBsYXRlRnVuY3Rpb247CiAgICAgICAgIGNvbnN0IERlcmVmT2JqZWN0RnVuY3Rpb24gZGVy
ZWZPYmplY3RGdW5jdGlvbjsKICAgICAgICAgY29uc3QgVG9BY3RpdmVET01PYmplY3RGdW5jdGlv
biB0b0FjdGl2ZURPTU9iamVjdEZ1bmN0aW9uOworICAgICAgICBjb25zdCBET01XcmFwcGVyVmlz
aXRvckZ1bmN0aW9uIGRvbVdyYXBwZXJWaXNpdG9yRnVuY3Rpb247CiAgICAgICAgIGNvbnN0IFdy
YXBwZXJUeXBlSW5mbyogcGFyZW50Q2xhc3M7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliMjk4OGI3ZWFlYTNiNGJiMTQ4MDli
ZWZkODU0NzFlZTA5N2MyZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVl
dEN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlY4Q1NTU3R5bGVTaGVldC5oIgotCi0jaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCi0jaW5jbHVkZSAiVjhOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ1NTU3R5bGVTaGVldCogaW1wbCkKLXsKLSAgICBpZiAo
IWltcGwpCi0gICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlciA9IFY4Q1NTU3R5bGVTaGVldDo6d3JhcChpbXBsKTsKLSAgICAvLyBBZGQg
YSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gc3R5bGVzaGVldCBvYmplY3QgdG8gaXRzIG93bmVyIG5v
ZGUuCi0gICAgTm9kZSogb3duZXJOb2RlID0gaW1wbC0+b3duZXJOb2RlKCk7Ci0gICAgaWYgKG93
bmVyTm9kZSAmJiAhd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgIm93bmVyTm9kZSIsIHRvVjgob3duZXJOb2Rl
KSk7Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwCmluZGV4IDI3OTlhZTJjODc0ZTM0ZWMzMDlhZGY2NWY4ZmQ3MWZhZWM3
MDllMWUuLmFlOWE2MWQ4NTEzNjEyN2FjMWQzNjE5OGE5MWZjMWQ1MjIyMGNhZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5n
TWFwQ3VzdG9tLmNwcApAQCAtODQsMTkgKzg0LDQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
RE9NU3RyaW5nTWFwOjpuYW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgog
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRE9NU3Ry
aW5nTWFwKiBpbXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxs
KCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01TdHJpbmdNYXA6
OndyYXAoaW1wbCk7Ci0gICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHRoZSBlbGVt
ZW50IHRvIHRoZSBET01TdHJpbmdNYXAuCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVs
ZW1lbnQoKTsKLSAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsKLSAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVudCk7Ci0g
ICAgICAgIGlmICghZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklzT2Jq
ZWN0KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNl
KGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tU3RyaW5nTWFwIiwgd3JhcHBlcik7
Ci0gICAgfQotICAgIHJldHVybiB3cmFwcGVyOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tl
bkxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
VG9rZW5MaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgwNTFh
YmQ1NThkZWYxYzZmNjI5NjU3MTgyODAxMzIxMjMxOGUzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWOERPTVRva2VuTGlzdC5oIgotCi0jaW5j
bHVkZSAiRE9NVG9rZW5MaXN0LmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAi
VjhET01XcmFwcGVyLmgiCi0jaW5jbHVkZSAiVjhFbGVtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRE9NVG9rZW5MaXN0KiBpbXBsKQot
ewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01Ub2tlbkxpc3Q6OndyYXAoaW1wbCk7Ci0g
ICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHRoZSBlbGVtZW50IHRvIHRoZSBET01U
b2tlbkxpc3QuCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVsZW1lbnQoKTsKLSAgICBp
ZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVudCk7Ci0gICAgICAgIGlmICghZWxl
bWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRWYWx1ZS5B
czx2ODo6T2JqZWN0PigpLCAiZG9tVG9rZW5MaXN0Iiwgd3JhcHBlcik7Ci0gICAgfQotICAgIHJl
dHVybiB3cmFwcGVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdl
RWxlbWVudENvbnN0cnVjdG9yLmNwcAppbmRleCA2N2I5ZDFhNTI0M2NiMmUxOTc2MjQ5NTk1MzRi
ODRlNWU1OGE4MzNiLi43ZmQxMjhiZjY2YjIwMTk1MWY0ZjAxZmZmOGU4NTQzY2VlMmRjOWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VF
bGVtZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlwZUluZm8gVjhIVE1MSW1hZ2VFbGVt
ZW50Q29uc3RydWN0b3I6OmluZm8gPSB7IFY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yOjpH
ZXRUZW1wbGF0ZSwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4SFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yOjppbmZvID0geyBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0
VGVtcGxhdGUsIDAsIDAsIDAsIDAgfTsKIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
OEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAppbmRleCA0NzgyZGNjMzIyZDA1YWRkZDA2NjZl
YWUxZTk4MTcxZDI0Yjk5NDc5Li5iOTdlZGFjOGY5ODI1NTY4OGM1ZDhhNDg4ZTQ4NjQ1ODcwMzM0
NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTcxLDE2ICs3MSw0IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOE5hbWVkTm9kZU1hcDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4KICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpKTsKIH0KIAotdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTmFtZWROb2RlTWFwKiBpbXBsKQotewotICAgIGlmICgh
aW1wbCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwcGVyID0gVjhOYW1lZE5vZGVNYXA6OndyYXAoaW1wbCk7Ci0gICAgLy8gQWRkIGEg
aGlkZGVuIHJlZmVyZW5jZSBmcm9tIG5hbWVkIG5vZGUgbWFwIHRvIGl0cyBvd25lciBub2RlLgot
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsLT5lbGVtZW50KCk7Ci0gICAgaWYgKCF3cmFwcGVy
LklzRW1wdHkoKSAmJiBlbGVtZW50KQotICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlk
ZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KGVsZW1lbnQpKTsKLSAgICBy
ZXR1cm4gd3JhcHBlcjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwCmlu
ZGV4IDgxZWI0Zjg1YjIxNTA4OTBjZDRhMjFmNzE1OGY2ZjZhMDhjZjk3YTEuLjkyMjExNzIwZjZh
YTc5MDAzMmY3ZTRhZGE4OTM1ZTE0Nzc2ZGYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOE5vZGVMaXN0LmgiIAogCisj
aW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKQEAgLTU5LDQgKzYwLDE5IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGVMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lCiAgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2Uo
KSk7CiB9CiAKK3ZvaWQgVjhOb2RlTGlzdDo6dmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSog
c3RvcmUsIHZvaWQqIG9iamVjdCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikK
K3sKKyAgICBOb2RlTGlzdCogaW1wbCA9IHN0YXRpY19jYXN0PE5vZGVMaXN0Kj4ob2JqZWN0KTsK
KyAgICBpZiAoaW1wbC0+aXNEeW5hbWljTm9kZUxpc3QoKSkgeworICAgICAgICBOb2RlKiBvd25l
ciA9IHN0YXRpY19jYXN0PER5bmFtaWNOb2RlTGlzdCo+KGltcGwpLT5ub2RlKCk7CisgICAgICAg
IGlmIChvd25lcikgeworICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gb3du
ZXJXcmFwcGVyID0gZ2V0RE9NTm9kZU1hcCgpLmdldChvd25lcik7CisgICAgICAgICAgICBpZiAo
IW93bmVyV3JhcHBlci5Jc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6VmFsdWU+IHZhbHVlID0gd3JhcHBlcjsKKyAgICAgICAgICAgICAgICB2ODo6Vjg6OkFk
ZEltcGxpY2l0UmVmZXJlbmNlcyhvd25lcldyYXBwZXIsICZ2YWx1ZSwgMSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1
c3RvbS5jcHAKaW5kZXggMGZlNmFmODUwYWQzMzkzODM1MGRiNmZhYmZiZDAzYWExZDc3ZjlhZC4u
N2I4MzU5NmU0MGNmMDliODVmZDg5NzdlYzJlYTBiYTc5MzI0OGEzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5j
cHAKQEAgLTQzLDEyICs0Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFN0eWxlU2hl
ZXQqIGltcGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgIGlmIChpbXBsLT5pc0NT
U1N0eWxlU2hlZXQoKSkKICAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVT
aGVldCo+KGltcGwpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFN0
eWxlU2hlZXQ6OndyYXAoaW1wbCk7Ci0gICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9t
IHN0eWxlc2hlZXQgb2JqZWN0IHRvIGl0cyBvd25lciBub2RlLgotICAgIE5vZGUqIG93bmVyTm9k
ZSA9IGltcGwtPm93bmVyTm9kZSgpOwotICAgIGlmIChvd25lck5vZGUgJiYgIXdyYXBwZXIuSXNF
bXB0eSgpKQotICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdy
YXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93bmVyTm9kZSkpOwotICAgIHJldHVybiB3cmFwcGVy
OworICAgIHJldHVybiBWOFN0eWxlU2hlZXQ6OndyYXAoaW1wbCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmlkbAppbmRleCA5NjJjOWRi
ZGNjZjkyNDQzNWIyZWY2Y2QxNTJiZjdiZWMzYWRhMDYwLi43ODJkYjU4NmNlNDkxYjhiMzQ0YjI1
YjFkMTZkNTEwOTE0ZGI3ODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsCkBA
IC0yMiw3ICsyMiw3IEBAIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00g
TGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKKyAg
ICAgICAgVjhHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxPd25lck5vZGVSb290CiAgICAgXSBDU1NT
dHlsZVNoZWV0IDogU3R5bGVTaGVldCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NS
dWxlICAgICAgICAgIG93bmVyUnVsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1
bGVMaXN0ICAgICAgY3NzUnVsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5pZGwKaW5kZXggOWUy
MGQ4NGFjYzNiMGU0MjFjNzFiMWUzNjllMjBhMjEzMzNiNzcyMy4uMzU4OGJhNTNiMzk0NTMyYTA4
OTY0YWE0NGY4Zjk3NjM1MWYxOWNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmlkbApAQCAt
MjYsNyArMjYsOCBAQCBtb2R1bGUgc3R5bGVzaGVldHMgewogICAgICAgICBKU0dlbmVyYXRlSXNS
ZWFjaGFibGUsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIE9iakNQb2x5bW9y
cGhpYywKLSAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQorICAgICAgICBWOERlcGVuZGVudExp
ZmV0aW1lLAorICAgICAgICBWOEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbE93bmVyTm9kZVJvb3QK
ICAgICBdIFN0eWxlU2hlZXQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICB0eXBlOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBkaXNhYmxlZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVN0cmluZ01hcC5pZGwKaW5kZXggOTgwZDA0NGNkMDJhYjFhZjVmN2E5NmU3YTZlMmM1OTYz
M2U4YzNkZi4uMDQ1ZDUyMjMyMjlmMmMyOWJhN2Y2MTY2NmI0NmM1OWViYTgyYWNlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKQEAgLTI2LDEyICsyNiwxMSBAQAogbW9kdWxlIGNv
cmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGxFbGVtZW50Um9vdCwKKyAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJv
b3QsCiAgICAgICAgIE5hbWVkR2V0dGVyLAogICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwK
ICAgICAgICAgQ3VzdG9tRW51bWVyYXRlUHJvcGVydHksCi0gICAgICAgIEN1c3RvbU5hbWVkU2V0
dGVyLAotICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKKyAgICAgICAgQ3VzdG9tTmFtZWRTZXR0
ZXIKICAgICBdIERPTVN0cmluZ01hcCB7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2Rl
TWFwLmlkbAppbmRleCA4ODgyMGMwMTcyZjU2M2M2NDQ2NjU1MzIxY2M0NWE4ZGVlYjY0YWFjLi43
ZWU2Yjc1Njc3YWEzMjhkZTFiMTM0Y2Y0MGM1NWQyMzVjYWJkY2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TmFtZWROb2RlTWFwLmlkbApAQCAtMjEsMTEgKzIxLDEwIEBACiBtb2R1bGUgY29yZSB7CiAKICAg
ICBpbnRlcmZhY2UgWwotICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRS
b290LAotICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCi0gICAgICAg
IE5hbWVkR2V0dGVyLAotICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKKyAgICAgICAgSlNDdXN0
b21NYXJrRnVuY3Rpb24sCisgICAgICAgIE5hbWVkR2V0dGVyCiAgICAgXSBOYW1lZE5vZGVNYXAg
ewogCiAgICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCmluZGV4IDcxNTQ0
ZDE2YjM1MzVkZTY3NmIyZmE4Yzc4MDBmYzg3MWI5NTEyNTMuLjlmMDUwNzE3MGJiMTZiYzFmYmU4
OTk5YTk0YmM5ZDMzZGRkNmJiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbApAQCAtMjEsNyAr
MjEsNyBAQAogbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSlNDdXN0
b21Jc1JlYWNoYWJsZSwKKyAgICAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgICAgIEluZGV4
ZWRHZXR0ZXIsCiAgICAgICAgIE5hbWVkR2V0dGVyCiAgICAgXSBOb2RlTGlzdCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVRva2VuTGlzdC5pZGwKaW5kZXggNTViNjM2ZjdkN2E1YWIxYTYwMzM1NmFhMjJk
N2Y2NGU5ODlhY2RlNi4uY2Y1N2UxYWVlZjk2ZTI5Njc1MDBlZTE3ZTUwZjQyZmQwODljNjcyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmlkbApAQCAtMjUsOSArMjUsOCBAQAogbW9k
dWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hh
YmxlPUltcGxFbGVtZW50Um9vdCwKLSAgICAgICAgSW5kZXhlZEdldHRlciwKLSAgICAgICAgVjhD
dXN0b21Ub0pTT2JqZWN0CisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRS
b290LAorICAgICAgICBJbmRleGVkR2V0dGVyCiAgICAgXSBET01Ub2tlbkxpc3QgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBpdGVtKGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwK
aW5kZXggYWVkZGEyZTA3NGRiYzg3MWU0MWNmY2U2MDBmOTk2MWI0ZWZmMzNhNC4uYWQ0ZTg2MjFj
Njg0ODg2NjM3Yzg4OTIyMjJmOWU4YzY0MTViNzgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCkBAIC0zMSw3ICszMSw4IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIEpT
Q3VzdG9tTWFya0Z1bmN0aW9uLAotICAgICAgICBKU0N1c3RvbUlzUmVhY2hhYmxlCisgICAgICAg
IEpTQ3VzdG9tSXNSZWFjaGFibGUsCisgICAgICAgIFY4R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBs
T3duZXJSb290CiAgICAgXSBUZXh0VHJhY2tMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBUZXh0VHJhY2sgaXRlbShpbiB1bnNp
Z25lZCBsb25nIGluZGV4KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjQ4YTZhOTBlNDg1YWE1NzRmMzNmMWE1NGVlNzNm
MTcxMDk3NDI4Li5iZjE3Yjc4N2JlYjM0MTM0MTIzMDA4MGRiMjZhNGY3MzkzMzZiMWVjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDItMjggIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbVjhdIEJpbmRpbmdzIGZvciBsaXN0IGludGVyZmFjZXMgYXJl
IGFsbCBicm9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc4MTQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9FbGVtZW50L2NsaWVudC1yZWN0LWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9jbGllbnQtcmVjdC1saXN0
LXJlYWNoYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlTGlzdC9ub2Rl
bGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9O
b2RlTGlzdC9ub2RlbGlzdC1yZWFjaGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vY3NzLXJ1bGUtbGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ZpbGVzL2ZpbGVzLXJlYWNoYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZmlsZXMvZmlsZXMtcmVhY2hhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMi0wMi0yOCAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBnZXRD
b21wdXRlZFN0eWxlIGZhaWxzIGZvciAnZmlyc3QtbGluZScgcHNldWRvLWVsZW1lbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFj
aGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9jbGllbnQt
cmVjdC1saXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNjNmEzMTkwZTdk
NGNmMjhlZTQxNjk3NmU4Njk4OTM3NmZmYTM4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyByZWN0c1swXS5jdXN0b21Qcm9wZXJ0eSBpcyA0Mgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFj
aGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlz
dC1yZWFjaGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjA1YWFlOTg5N2RlZGQ0NTYxZTQxZjQyNzFl
MTY1MTAyNzQ5ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxl
bWVudC9jbGllbnQtcmVjdC1saXN0LXJlYWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGZvcmNlR0MoKQor
eworICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICByZXR1cm4gR0NDb250cm9s
bGVyLmNvbGxlY3QoKTsKKworICAgIC8vIEZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgIGZv
ciAodmFyIG5keCA9IDA7IG5keCA8IDk5MDAwOyBuZHgrKykKKyAgICAgICAgdmFyIHN0ciA9IG5l
dyBTdHJpbmcoJzEyMzQnKTsKK30KKworCit2YXIgcmVjdHMgPSBkb2N1bWVudC5ib2R5LmdldENs
aWVudFJlY3RzKCk7CityZWN0c1swXS5jdXN0b21Qcm9wZXJ0eSA9IDQyOworZm9yY2VHQygpOwor
c2hvdWxkQmUoJ3JlY3RzWzBdLmN1c3RvbVByb3BlcnR5JywgJzQyJyk7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9k
ZWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVM
aXN0L25vZGVsaXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZiODk0Y2U2
ZmQ5NzFmOTkzMDNhNjliNmY3NjBlNzRiMmMxMGJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVsaXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACitQQVNTIGRvY3VtZW50LmJvZHkuY2hpbGROb2Rlcy5jdXN0b21Qcm9w
ZXJ0eSBpcyA0MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVsaXN0
LXJlYWNoYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3Qt
cmVhY2hhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQzOGRlODVmZjk4YmIxN2JiMzFmYTU4MDU4MjQw
ZWRkZmNhZTM4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVM
aXN0L25vZGVsaXN0LXJlYWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGZvcmNlR0MoKQoreworICAgIGlm
ICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxl
Y3QoKTsKKworICAgIC8vIEZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgIGZvciAodmFyIG5k
eCA9IDA7IG5keCA8IDk5MDAwOyBuZHgrKykKKyAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmco
JzEyMzQnKTsKK30KKworCitkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXMuY3VzdG9tUHJvcGVydHkg
PSA0MjsKK2ZvcmNlR0MoKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXMuY3Vz
dG9tUHJvcGVydHknLCAnNDInKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTdhNzJiMzM2NWM2OTgzNmZkMWEzNDUzMjY5MTk0Y2EwOGI1NWNl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1ydWxlLWxpc3Qt
cmVhY2hhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgY3NzUnVsZXNbMF0u
Y3VzdG9tUHJvcGVydHkgaXMgNDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVs
ZS1saXN0LXJlYWNoYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLXJ1bGUtbGlz
dC1yZWFjaGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjIyYjFlZGJlYTMzMzI5YWRhMjEwYzExMTBk
NDc3MmMxNWM1YzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3Nz
LXJ1bGUtbGlzdC1yZWFjaGFibGUuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxib2R5PgorPHN0eWxlIGlkPSJ0ZXN0LXNoZWV0Ij4KK2JvZHkge30KKzwvc3R5bGU+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGZvcmNlR0MoKQoreworICAgIGlmICh3aW5kb3cuR0NDb250cm9s
bGVyKQorICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgIC8vIEZv
cmNlIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgIGZvciAodmFyIG5keCA9IDA7IG5keCA8IDk5MDAw
OyBuZHgrKykKKyAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoJzEyMzQnKTsKK30KKwordmFy
IGNzc1J1bGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qtc2hlZXQnKS5zaGVldC5j
c3NSdWxlczsKK2Nzc1J1bGVzWzBdLmN1c3RvbVByb3BlcnR5ID0gNDI7Citmb3JjZUdDKCk7Citz
aG91bGRCZSgnY3NzUnVsZXNbMF0uY3VzdG9tUHJvcGVydHknLCAnNDInKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGVzLXJlYWNo
YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGVzLXJlYWNoYWJs
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1YTgyYjc5ZTRlNGE2Yzk4NjdmOWVhMWIxNzQ1
MjI1ODBjNWUxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmls
ZXMtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgZmlsZXNbMF0u
Y3VzdG9tUHJvcGVydHkgaXMgNDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGVz
LXJlYWNoYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlcy1yZWFjaGFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZjE5YmM5YmU5YjlkM2JkZDg5MWNiYWU3OTdjZDU4MTY5MjljOTgx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxlcy1yZWFjaGFi
bGUuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGlucHV0IHR5cGU9ImZp
bGUiIGlkPSJmaWxlIiBvbmNoYW5nZT0ib25JbnB1dEZpbGVDaGFuZ2UoKSI+CisKKzxzY3JpcHQ+
CisKK2Z1bmN0aW9uIGZvcmNlR0MoKQoreworICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQor
ICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgIC8vIEZvcmNlIGdh
cmJhZ2UgY29sbGVjdGlvbgorICAgIGZvciAodmFyIG5keCA9IDA7IG5keCA8IDk5MDAwOyBuZHgr
KykKKyAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoJzEyMzQnKTsKK30KKworCit2YXIgZmls
ZXM7CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hhbmdlKCkKK3sKKyAgICBmaWxlcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlJykuZmlsZXM7CisgICAgZmlsZXNbMF0uY3VzdG9tUHJv
cGVydHkgPSA0MjsKKyAgICBmb3JjZUdDKCk7CisgICAgc2hvdWxkQmUoJ2ZpbGVzWzBdLmN1c3Rv
bVByb3BlcnR5JywgJzQyJyk7Cit9CisKK2Z1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVt
ZW50KGVsZW1lbnQpCit7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsncmVzb3VyY2VzL2FiZS5wbmcnXSk7
CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ZpbGUnKSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAppbmRleCBkZWFjM2NlY2Y1YjE3MTdlMDk1YjA4ZWJkMmZmMWQ3NWE2NzQwMmU0Li5lNjgxMDU4
Njc5ODVjNGUxNmVlYjc3YjBhYjA3YWMyYTQ3ZTNkYmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0yMjYsMTAgKzIy
Niw2IEBAIFdPTlRGSVggU0tJUCA6IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdl
LWNhY2hlLmh0bWwgPSBGQUlMCiAvLyBUZXN0cyB0aGF0IHJlbHkgb24gY3Jvc3MtcHJvY2VzcyBN
ZXNzYWdlUG9ydHMuICBObyBwb2ludCBpbiBydW5uaW5nIHRoZW0gaW4KIC8vIHRlc3Rfc2hlbGws
IHNpbmNlIHdlJ2QgaGF2ZSB0byB1c2UgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBpbXBsZW1lbnRh
dGlvbiBmcm9tCiAvLyB3aGF0IGlzIHVzZWQgaW4gdGhlIGJyb3dzZXIuCi1XT05URklYIFNLSVAg
OiBmYXN0L2V2ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MtMi5odG1sID0gRkFJTAotV09OVEZJWCBT
S0lQIDogZmFzdC9ldmVudHMvbWVzc2FnZS1jaGFubmVsLWdjLTMuaHRtbCA9IEZBSUwKLVdPTlRG
SVggU0tJUCA6IGZhc3QvZXZlbnRzL21lc3NhZ2UtY2hhbm5lbC1nYy00Lmh0bWwgPSBGQUlMCi1X
T05URklYIFNLSVAgOiBmYXN0L2V2ZW50cy9tZXNzYWdlLWNoYW5uZWwtZ2MuaHRtbCA9IEZBSUwK
IFdPTlRGSVggU0tJUCA6IGZhc3QvZXZlbnRzL21lc3NhZ2UtY2hhbm5lbC1saXN0ZW5lci1jaXJj
dWxhci1vd25lcnNoaXAuaHRtbCA9IEZBSUwKIFdPTlRGSVggU0tJUCA6IGZhc3QvZXZlbnRzL21l
c3NhZ2UtcG9ydC1jbG9uZS5odG1sID0gRkFJTAogV09OVEZJWCBTS0lQIDogZmFzdC9ldmVudHMv
bWVzc2FnZS1wb3J0LWRlbGV0ZWQtZG9jdW1lbnQuaHRtbCA9IEZBSUwKQEAgLTM0MjAsMTAgKzM0
MTYsNiBAQCBCVUdfU0VOT1JCTEFOQ08gR1BVIDogZmFzdC9jYW52YXMvY2FudmFzLXRyYW5zZm9y
bXMtZmlsbFJlY3Qtc2hhZG93Lmh0bWwgPSBURVhUCiAKIEJVR1dLNjY5NTMgOiB0cmFuc2l0aW9u
cy9kZWZhdWx0LXRpbWluZy1mdW5jdGlvbi5odG1sID0gUEFTUyBGQUlMCiAKLUJVR1dLNzM4NjUg
OiBtZWRpYS90cmFjay90cmFja2xpc3QtaXMtcmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICi1C
VUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUtaXMtcmVhY2hhYmxlLmh0bWwg
PSBURVhUIENSQVNICi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1pcy1yZWFj
aGFibGUuaHRtbCA9IFRFWFQgQ1JBU0gKLQogQlVHV0s3MjI3MSBNQUMgREVCVUcgOiBmYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1pbi1lbWJlZC5odG1sID0gUEFTUyBDUkFTSAogQlVHV0s3MjI3
MSBTTk9XTEVPUEFSRCBERUJVRyA6IGZhc3QvZG9tL25vZGUtaXRlcmF0b3ItcmVmZXJlbmNlLW5v
ZGUtbW92ZWQtY3Jhc2guaHRtbCA9IFBBU1MgQ1JBU0gKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149130</attachid>
            <date>2012-06-22 16:14:15 -0700</date>
            <delta_ts>2012-07-09 14:01:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78149-20120622161414.patch</filename>
            <type>text/plain</type>
            <size>22069</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVkOGIzMjNiZTA2MGI3
OTNhNGQ5ZDVmYzRiZmJjOWI2ZjA2NjI1Mi4uMjc3NWUxMzg5NTJlM2QwZGZlMGE3YmE3ODM5OWFi
ZmIxMmJkYjViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEyLTA2LTIyICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW1Y4XSBCaW5kaW5ncyBm
b3IgbGlzdCBpbnRlcmZhY2VzIGFyZSBhbGwgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdPUksgSU4gUFJPR1JFU1MKKworICAgICAgICBUZXN0
czogZmFzdC9kb20vRWxlbWVudC9jbGllbnQtcmVjdC1saXN0LXJlYWNoYWJsZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9Ob2RlTGlzdC9ub2RlbGlzdC1yZWFjaGFibGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vY3NzLXJ1bGUtbGlzdC1yZWFjaGFibGUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9maWxlcy9maWxlcy1yZWFjaGFibGUuaHRtbAorCisgICAgICAgICogTW9k
dWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZ2FtZXBhZC9HYW1l
cGFkTGlzdC5pZGw6CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAoR2V0SW50ZXJm
YWNlKToKKyAgICAgICAgKEZvckFsbFBhcmVudHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2V0SW5kZXhlclR5cGUpOgorICAgICAg
ICAoTmVlZHNUb1Zpc2l0RE9NV3JhcHBlcik6CisgICAgICAgIChHZW5lcmF0ZVZpc2l0RE9NV3Jh
cHBlcik6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1h
bEF0dHJHZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAg
ICAgICAgKEdlbmVyYXRlTmFtZWRDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVy
YXRlVG9WOENvbnZlcnRlcnMpOgorICAgICAgICAoR2V0RG9tTWFwRnVuY3Rpb24pOgorICAgICAg
ICAoR2V0RG9tTWFwTmFtZSk6CisgICAgICAgIChHZXRTdG9yZURvbU1hcE5hbWVGdW5jdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhOb2RlTGlzdDo6dmlzaXRET01XcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0LmlkbDoKKyAgICAgICAgKiBkb20vQ2xp
ZW50UmVjdExpc3QuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5pZGw6CisgICAgICAgICog
ZmlsZWFwaS9GaWxlLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0LmlkbDoKKworMjAx
Mi0wNi0yMiAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtW
OF0gQ2xlYW4gdXAgdmlzaXRET01XcmFwcGVyIGNvZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Nzc0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2FtZXBhZC9HYW1lcGFkLmlkbAppbmRleCBlMDBlMmRjM2Q4ODU1Y2Y4ZWYwNDU2NTMxN2YyYzc0
NjAzN2IzYWEzLi5mZDg3MDBjYjAwMWIyODYxMjk1MDI0MjAzZjIyMWRlMGVmYTc4YjRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCkBAIC0yNiw3ICsyNiw4
IEBACiBtb2R1bGUgZG9tIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFs
PUdBTUVQQUQKKyAgICAgICAgQ29uZGl0aW9uYWw9R0FNRVBBRCwKKyAgICAgICAgVjhEZXBlbmRl
bnRMaWZldGltZQogICAgIF0gR2FtZXBhZCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgaWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGlu
ZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRM
aXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwK
aW5kZXggNGYxZTFkZjlhMTk3OGY4OWNjODczZDNhZjYyOGZkMWRiMDMwZjNlNi4uZjg0MGJhODU1
ZTM1ZjExZjFhMDNmNzIzODFlY2ZiM2M0MmNlZjExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaWRsCkBAIC0yNyw3ICsyNyw4IEBAIG1vZHVsZSBk
b20gewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9R0FNRVBBRCwKLSAg
ICAgICAgSW5kZXhlZEdldHRlcgorICAgICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBWOERl
cGVuZGVudExpZmV0aW1lCiAgICAgXSBHYW1lcGFkTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgR2FtZXBhZCBpdGVtKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCBjZmNhNzcxNGU1OWM0MjkwNDMxNjRl
N2YwOGUwM2NlZGM0NjAxZTcyLi40YWY2MzY4YjRkNGJhNTVjYjk0ZTFjOWI1YzM2YzJhZDY1NDli
NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMTA0MywxMiAr
MTA0MywxOCBAQAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAg
ICAgICAgICdnZW5lcmF0b3JfaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgICAgICAnLS1pbmNs
dWRlJywgJy4uL01vZHVsZXMvYmF0dGVyeScsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAn
Li4vTW9kdWxlcy9maWxlc3lzdGVtJywKKyAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9N
b2R1bGVzL2dhbWVwYWQnLAorICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMv
Z2VvbG9jYXRpb24nLAogICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvaW5k
ZXhlZGRiJywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL2ludGVudHMn
LAogICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvbWVkaWFzdHJlYW0nLAor
ICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvcXVvdGEnLAorICAgICAgICAg
ICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvc3BlZWNoJywKICAgICAgICAgICAgICAgJy0t
aW5jbHVkZScsICcuLi9Nb2R1bGVzL3dlYmF1ZGlvJywKICAgICAgICAgICAgICAgJy0taW5jbHVk
ZScsICcuLi9Nb2R1bGVzL3dlYmRhdGFiYXNlJywKKyAgICAgICAgICAgICAgJy0taW5jbHVkZScs
ICcuLi9Nb2R1bGVzL3dlYnNvY2tldHMnLAogICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4u
L2NzcycsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vZG9tJywKICAgICAgICAgICAg
ICAgJy0taW5jbHVkZScsICcuLi9maWxlYXBpJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA3NDhiNGU1MWVlYWNiOGM5ODEwZTcy
YTQ2NTUzN2U0MDliYWUzODkzLi42OWI0ZTlmYzdmZjY4N2I2NTYxY2ViMmVjZTJlNTIyYzUyNDVi
ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtCkBAIC0xNzIsNiArMTcyLDEzIEBAIHN1YiBVcGRhdGVGaWxlCiAgICAgY2xvc2UgRkg7
CiB9CiAKK3N1YiBHZXRJbnRlcmZhY2UKK3sKKyAgICBteSAoJG9iamVjdCwgJHR5cGUsICRwYXJl
bnRzT25seSkgPSBAXzsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRvYmplY3QtPlN0cmlwTW9k
dWxlKCR0eXBlKTsKKyAgICByZXR1cm4gJG9iamVjdC0+UGFyc2VJbnRlcmZhY2UoJGludGVyZmFj
ZU5hbWUsICRwYXJlbnRzT25seSk7Cit9CisKIHN1YiBGb3JBbGxQYXJlbnRzCiB7CiAgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OwpAQCAtMTg1LDggKzE5Miw3IEBAIHN1YiBGb3JBbGxQYXJlbnRzCiAg
ICAgICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAogICAgICAgICBmb3IgKEB7JGludGVyZmFj
ZS0+cGFyZW50c30pIHsKLSAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJG9iamVjdC0+
U3RyaXBNb2R1bGUoJF8pOwotICAgICAgICAgICAgbXkgJHBhcmVudEludGVyZmFjZSA9ICRvYmpl
Y3QtPlBhcnNlSW50ZXJmYWNlKCRpbnRlcmZhY2VOYW1lLCAkcGFyZW50c09ubHkpOworICAgICAg
ICAgICAgbXkgJHBhcmVudEludGVyZmFjZSA9ICRvYmplY3QtPkdldEludGVyZmFjZSgkXywgJHBh
cmVudHNPbmx5KTsKIAogICAgICAgICAgICAgaWYgKCRiZWZvcmVSZWN1cnNpb24pIHsKICAgICAg
ICAgICAgICAgICAmJGJlZm9yZVJlY3Vyc2lvbigkcGFyZW50SW50ZXJmYWNlKSBlcSAncHJ1bmUn
IGFuZCBuZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQppbmRleCBhOTI5ODlhNTJkZDY1ZGY0N2NmZWE0OTAyZWM5ZjY4NjdlZjE5
OGQzLi5jNWVjYmM4NTA0YjNiOWY4YjU2MjFkMzZkNzAxYmIwZmQ5NTBlZjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAt
MTgxLDEwICsxODEsNDUgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIH0KIH0KIAorc3Vi
IEdldEluZGV4ZXJUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAk
aGFzSW5kZXhHZXR0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVk
R2V0dGVyIn07CisgICAgaWYgKCEkaGFzSW5kZXhHZXR0ZXIpIHsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorCisgICAgbXkgJGluZGV4ZXI7CisKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lIGVxICJpdGVtIikgeworICAgICAgICAgICAgJGluZGV4ZXIgPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZTsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoISRpbmRleGVyKSB7CisgICAgICAgICRpbmRleGVyID0gJGNvZGVHZW5lcmF0b3ItPkZpbmRT
dXBlck1ldGhvZCgkZGF0YU5vZGUsICJpdGVtIik7CisgICAgfQorCisgICAgaWYgKCEkaW5kZXhl
cikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBteSAkaW5kZXhlclR5cGUgPSAk
aW5kZXhlci0+dHlwZTsKKworICAgIGlmIChJc1dyYXBwZXJUeXBlKCRpbmRleGVyVHlwZSkgJiYg
IUlzRE9NTm9kZVR5cGUoJGluZGV4ZXJUeXBlKSkgeworICAgICAgICByZXR1cm4gJGluZGV4ZXJU
eXBlOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdWIgTmVlZHNUb1Zpc2l0RE9NV3Jh
cHBlcgogewogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIHJldHVybiBHZXRHZW5lcmF0
ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0Q3VzdG9tSXNSZWFjaGFibGUoJGRhdGFOb2Rl
KTsKKyAgICByZXR1cm4gR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8IEdldEN1
c3RvbUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0SW5kZXhlclR5cGUoJGRhdGFOb2RlKTsK
IH0KIAogc3ViIEdldEdlbmVyYXRlSXNSZWFjaGFibGUKQEAgLTIzMiw2ICsyNjcsMjUgQEAgRU5E
CiBFTkQKICAgICB9CiAKKyAgICBteSAkaW5kZXhlclR5cGUgPSBHZXRJbmRleGVyVHlwZSgkZGF0
YU5vZGUpOworICAgIGlmICgkaW5kZXhlclR5cGUpIHsKKyAgICAgICAgIyBGSVhNRTogVGhpcyBu
ZWVkcyB0byBiZSBhICRkYXRhTm9kZQorICAgICAgICBteSAkaXRlbURhdGFOb2RlID0gJGNvZGVH
ZW5lcmF0b3ItPkdldEludGVyZmFjZSgkaW5kZXhlclR5cGUpOworICAgICAgICBteSAkbWFwTmFt
ZSA9IEdldFN0b3JlRG9tTWFwTmFtZUZ1bmN0aW9uKCRpdGVtRGF0YU5vZGUpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgIHsKKyAgICAgICAgVmVjdG9yPHY4OjpQZXJz
aXN0ZW50PHY4OjpWYWx1ZT4gPiB3cmFwcGVyczsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGltcGwtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFJlZlB0cjwke2luZGV4
ZXJUeXBlfT4gaXRlbSA9IGltcGwtPml0ZW0oaSk7CisgICAgICAgICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIgPSBzdG9yZS0+JG1hcE5hbWUoKS5nZXQoaXRlbS5nZXQoKSk7Cisg
ICAgICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHdyYXBw
ZXJzLmFwcGVuZCh3cmFwcGVyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXdyYXBwZXJzLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHY4OjpWODo6QWRkSW1wbGljaXRSZWZlcmVuY2VzKHdyYXBw
ZXIsIHdyYXBwZXJzLmRhdGEoKSwgd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICB9CitFTkQKKyAgICB9
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIH0KIApAQCAtMjkzLDcgKzM0Nyw3IEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1
bmN0aW9ucygkZGF0YU5vZGUpOwogCiAgICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9Ci0gICAgICAg
ICB8fCBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgJGNsYXNzTmFtZSA9fiAv
U1ZHLzsKKyAgICAgICAgIHx8IEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fCBH
ZXRDdXN0b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8ICRjbGFzc05hbWUgPX4gL1NWRy87CiAg
ICAgaWYgKCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKICAgICAgICAgZm9yZWFjaCAoQHskZGF0
YU5vZGUtPnBhcmVudHN9KSB7CiAgICAgICAgICAgICBteSAkcGFyZW50ID0gJGNvZGVHZW5lcmF0
b3ItPlN0cmlwTW9kdWxlKCRfKTsKQEAgLTQ5NCw3ICs1NDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25hdGl2ZVR5cGV9KiBpbXBsLCB2ODo6SXNvbGF0
ZSogaXNvbAogewogRU5ECiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBpZiAoIWZvcmNl
TmV3T2JqZWN0KSB7XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKLSAgICBt
eSAkZG9tTWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlvbigkZGF0YU5vZGUsICRpbnRlcmZh
Y2VOYW1lLCAiaXNvbGF0ZSIpOworICAgIG15ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1
bmN0aW9uKCRkYXRhTm9kZSwgImlzb2xhdGUiKTsKICAgICBteSAkZ2V0Q2FjaGVkV3JhcHBlciA9
IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSA/ICJWOERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBw
ZXIoaW1wbCkiIDogIiR7ZG9tTWFwRnVuY3Rpb259LmdldChpbXBsKSI7CiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgPDxFTkQpOwogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXIgPSAkZ2V0Q2FjaGVkV3JhcHBlcjsKQEAgLTk5MSw3ICsxMDQ1LDcgQEAgRU5ECiAgICAgICAg
ICMgQ2hlY2sgZm9yIGEgd3JhcHBlciBpbiB0aGUgd3JhcHBlciBjYWNoZS4gSWYgdGhlcmUgaXMg
b25lLCB3ZSBrbm93IHRoYXQgYSBoaWRkZW4gcmVmZXJlbmNlIGhhcyBhbHJlYWR5CiAgICAgICAg
ICMgYmVlbiBjcmVhdGVkLiBJZiB3ZSBkb24ndCBmaW5kIGEgd3JhcHBlciwgd2UgY3JlYXRlIGJv
dGggYSB3cmFwcGVyIGFuZCBhIGhpZGRlbiByZWZlcmVuY2UuCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgUmVmUHRyPCRyZXR1cm5UeXBlPiByZXN1bHQgPSAke2dldHRlclN0
cmluZ307XG4iKTsKLSAgICAgICAgbXkgJGRvbU1hcEZ1bmN0aW9uID0gR2V0RG9tTWFwRnVuY3Rp
b24oJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgImluZm8uR2V0SXNvbGF0ZSgpIik7CisgICAg
ICAgIG15ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1bmN0aW9uKCRkYXRhTm9kZSwgImlu
Zm8uR2V0SXNvbGF0ZSgpIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyAke2RvbU1hcEZ1
bmN0aW9ufS5nZXQocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTtcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICh3cmFwcGVyLklzRW1w
dHkoKSkge1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHdy
YXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSwgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CkBAIC0x
ODI3LDcgKzE4ODEsNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IGdvdG8gZmFpbDtcbiIpOwogICAgIH0KIAotICAgIG15ICRET01PYmplY3QgPSBHZXREb21NYXBO
YW1lKCRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOworICAgIG15ICRET01PYmplY3QgPSBHZXRE
b21NYXBOYW1lKCRkYXRhTm9kZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAog
ICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQo
KSk7CkBAIC0yMDAyLDcgKzIwNTYsNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIGdvdG8gZmFpbDtcbiIpOwogICAgIH0KIAotICAgIG15ICRET01PYmplY3QgPSBH
ZXREb21NYXBOYW1lKCRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOworICAgIG15ICRET01PYmpl
Y3QgPSBHZXREb21NYXBOYW1lKCRkYXRhTm9kZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKIAogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmVjgke2lt
cGxDbGFzc05hbWV9Q29uc3RydWN0b3I6OmluZm8sIGltcGwuZ2V0KCkpOwpAQCAtMzIxNyw3ICsz
MjcxLDcgQEAgc3ViIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMKICAgICBteSAkY2xhc3NOYW1lID0g
c2hpZnQ7CiAgICAgbXkgJG5hdGl2ZVR5cGUgPSBzaGlmdDsKIAotICAgIG15ICRkb21NYXBOYW1l
ID0gR2V0RG9tTWFwTmFtZSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkZG9t
TWFwTmFtZSA9IEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKTsKICAgICBteSAkZm9yY2VOZXdPYmpl
Y3RJbnB1dCA9IElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpID8gIiwgYm9vbCBmb3JjZU5l
d09iamVjdCIgOiAiIjsKICAgICBteSAkZm9yY2VOZXdPYmplY3RDYWxsID0gSXNET01Ob2RlVHlw
ZSgkaW50ZXJmYWNlTmFtZSkgPyAiLCBmb3JjZU5ld09iamVjdCIgOiAiIjsKICAgICBteSAkd3Jh
cFNsb3dBcmd1bWVudFR5cGUgPSBHZXRQYXNzUmVmUHRyVHlwZSgkbmF0aXZlVHlwZSk7CkBAIC0z
MzE1LDE2ICszMzY5LDE0IEBAIEVORAogc3ViIEdldERvbU1hcEZ1bmN0aW9uCiB7CiAgICAgbXkg
JGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKICAgICBt
eSAkZ2V0SXNvbGF0ZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICJnZXQiIC4gR2V0RG9tTWFwTmFt
ZSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKSAuICJNYXAoIiAuICRnZXRJc29sYXRlIC4gIiki
OworICAgIHJldHVybiAiZ2V0IiAuIEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKSAuICJNYXAoIiAu
ICRnZXRJc29sYXRlIC4gIikiOwogfQogCiBzdWIgR2V0RG9tTWFwTmFtZQogewogICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKICAgICByZXR1cm4gIkFj
dGl2ZURPTU5vZGUiIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgJiYgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pOwogICAgIHJldHVybiAiRE9N
Tm9kZSIgaWYgSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpOwpAQCAtMzMzMiw2ICszMzg0LDE3IEBA
IHN1YiBHZXREb21NYXBOYW1lCiAgICAgcmV0dXJuICJET01PYmplY3QiOwogfQogCitzdWIgR2V0
U3RvcmVEb21NYXBOYW1lRnVuY3Rpb24KK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAg
ICBteSAkZG9tTWFwTmFtZSA9IEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKTsKKworICAgIHJldHVy
biAiZG9tTm9kZU1hcCIgaWYgKCRkb21NYXBOYW1lIGVxICJET01Ob2RlIik7CisgICAgcmV0dXJu
ICJhY3RpdmVEb21Ob2RlTWFwIiBpZiAoJGRvbU1hcE5hbWUgZXEgIkFjdGl2ZURPTU5vZGUiKTsK
KyAgICByZXR1cm4gImFjdGl2ZURvbU9iamVjdE1hcCIgaWYgKCRkb21NYXBOYW1lIGVxICJBY3Rp
dmVET01PYmplY3QiKTsKKyAgICByZXR1cm4gImRvbU9iamVjdE1hcCIgaWYgKCRkb21NYXBOYW1l
IGVxICJET01PYmplY3QiKTsKK30KKwogc3ViIEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucwog
ewogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDY1NmI5ZDUxMDVk
MjI0ZjIwMzJkZDI0MjM0YjFhM2JiOTU3MzlmMGYuLmRjMjA4OWJmNGY1NGM4YzViMDZlZWQ4OTgz
MThjOTAzMDhiNzkwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJWOE5vZGVMaXN0LmgiIAogCisjaW5jbHVkZSAiRHluYW1p
Y05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcu
aCIKICNpbmNsdWRlICJWOE5vZGUuaCIKQEAgLTU5LDQgKzYwLDE5IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOE5vZGVMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lCiAgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgaW5mby5HZXRJc29s
YXRlKCkpOwogfQogCit2b2lkIFY4Tm9kZUxpc3Q6OnZpc2l0RE9NV3JhcHBlcihET01EYXRhU3Rv
cmUqIHN0b3JlLCB2b2lkKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBw
ZXIpCit7CisgICAgTm9kZUxpc3QqIGltcGwgPSBzdGF0aWNfY2FzdDxOb2RlTGlzdCo+KG9iamVj
dCk7CisgICAgaWYgKGltcGwtPmlzRHluYW1pY05vZGVMaXN0KCkpIHsKKyAgICAgICAgTm9kZSog
b3duZXIgPSBzdGF0aWNfY2FzdDxEeW5hbWljTm9kZUxpc3QqPihpbXBsKS0+b3duZXJOb2RlKCk7
CisgICAgICAgIGlmIChvd25lcikgeworICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gb3duZXJXcmFwcGVyID0gc3RvcmUtPmRvbU5vZGVNYXAoKS5nZXQob3duZXIpOworICAg
ICAgICAgICAgaWYgKCFvd25lcldyYXBwZXIuSXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAg
djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSA9IHdyYXBwZXI7CisgICAgICAgICAgICAg
ICAgdjg6OlY4OjpBZGRJbXBsaWNpdFJlZmVyZW5jZXMob3duZXJXcmFwcGVyLCAmdmFsdWUsIDEp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwKaW5kZXggN2RiZGQ2ODk4YTgyOGExYWI0
OGZkZTdmMGU1OWMxM2M1MTdlMzFhNC4uYmQyNjdjYzlmODY1OTVhZjdmYWNkNTIxNTU5ZGM1YjEy
OWJkY2MzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbApAQCAtMjYsNyArMjYsOSBAQAog
CiBtb2R1bGUgdmlldyB7CiAKLSAgICBpbnRlcmZhY2UgQ2xpZW50UmVjdCB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQorICAgIF0gQ2xpZW50UmVjdCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCB0b3A7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBmbG9hdCByaWdodDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IGJv
dHRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsCmluZGV4IDAyZjA1NWU2ZTYw
ZWIyNGUxMmYzM2M3ODU5MGIyN2UzYjFhOWE0NDkuLjBlOTcyN2M5MWY0NWRmNzg1MjQ1NWI3YWUz
MGE1ZWYyZTMxM2UyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0
TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbApAQCAt
MjcsNyArMjcsOCBAQAogbW9kdWxlIHZpZXcgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAg
SW5kZXhlZEdldHRlcgorICAgICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBWOERlcGVuZGVu
dExpZmV0aW1lCiAgICAgXSBDbGllbnRSZWN0TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgQ2xpZW50UmVjdCBpdGVtKGluIFtJ
c0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVMaXN0LmlkbAppbmRleCA3MTU0NGQxNmIzNTM1ZGU2NzZiMmZhOGM3ODAw
ZmM4NzFiOTUxMjUzLi45ZjA1MDcxNzBiYjE2YmMxZmJlODk5OWE5NGJjOWQzM2RkZDZiYjM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwKQEAgLTIxLDcgKzIxLDcgQEAKIG1vZHVsZSBjb3JlIHsK
IAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUsCisgICAgICAg
IEN1c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBOYW1l
ZEdldHRlcgogICAgIF0gTm9kZUxpc3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKaW5kZXggN2Mw
ZGU0MzA5ZGZkYTVhNjBlZDE0M2NhYTU0OGIzNTk5NDEyOGQ1ZS4uYWI5NDVhZTIyYzk1NmQ5MGM1
NWIwOWU5ODM4MTcyZDk0NDZiMTkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCkBAIC0yOCw3
ICsyOCw4IEBAIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAotICAgICAg
ICBKU05vU3RhdGljVGFibGVzCisgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCisgICAgICAgIFY4
RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIEZpbGUgOiBCbG9iIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
IHx8ICFMQU5HVUFHRV9HT0JKRUNUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaWRsCmluZGV4
IDE0MTM5YTc2MzVkMzMwZDA2MDllNWMyY2MyZTFmOTE5ZjdhNGM3MzAuLmMwYThlMTlhNWYxNDZh
MTE1MWFlZDcwNWIxYjVkZGQ4Y2ViYmI2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3Qu
aWRsCkBAIC0yNyw3ICsyNyw4IEBAIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBbCiAg
ICAgICAgIEluZGV4ZWRHZXR0ZXIsCi0gICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKKyAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcywKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gRmls
ZUxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
CiAgICAgICAgIEZpbGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjY2Q4
OGFhOTlkMWY2MDcwNTI4MTZiMmM5ZmJmMjk0OTNjOWM1YzQxLi4yZjA3Mjc0MjQ0YzhhYjU1OTdh
ZDk5NWVkOGJhNTgyZWVmMGI2YTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDYtMjIg
IEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEJpbmRp
bmdzIGZvciBsaXN0IGludGVyZmFjZXMgYXJlIGFsbCBicm9rZW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTQ5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV09SSyBJTiBQUk9HUkVTUworCisgICAgICAg
ICogZmFzdC9kb20vRWxlbWVudC9jbGllbnQtcmVjdC1saXN0LXJlYWNoYWJsZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1y
ZWFjaGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxp
c3QtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTm9k
ZUxpc3Qvbm9kZWxpc3QtcmVhY2hhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L2Nzcy1ydWxlLWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vY3NzLXJ1bGUtbGlzdC1yZWFjaGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlcy9maWxlcy1yZWFjaGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ZpbGVzL2ZpbGVzLXJlYWNoYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTA2LTIyICBKYW4gS2Vyb21u
ZXMgIDxqYW54QGxpbnV4LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRlbnNpb25Q
YW5lbC5vblNlYXJjaCBsaXN0ZW5lciBkb2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9jbGllbnQtcmVjdC1saXN0LXJlYWNo
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNjNmEzMTkwZTdkNGNmMjhlZTQxNjk3NmU4
Njk4OTM3NmZmYTM4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vs
ZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyByZWN0c1swXS5jdXN0b21Qcm9wZXJ0eSBpcyA0MgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YjhmMTE1ODIzNzJjYjNkMjM5ZGRlMmM4YTQwMzY3YjYxOTY2ZGQyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9jbGllbnQtcmVj
dC1saXN0LXJlYWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciByZWN0cyA9IGRvY3VtZW50LmJvZHkuZ2V0Q2xpZW50
UmVjdHMoKTsKK3JlY3RzWzBdLmN1c3RvbVByb3BlcnR5ID0gNDI7CitnYygpOworc2hvdWxkQmUo
J3JlY3RzWzBdLmN1c3RvbVByb3BlcnR5JywgJzQyJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3QtcmVh
Y2hhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVs
aXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZiODk0Y2U2ZmQ5NzFmOTkz
MDNhNjliNmY3NjBlNzRiMmMxMGJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL05vZGVMaXN0L25vZGVsaXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIGRvY3VtZW50LmJvZHkuY2hpbGROb2Rlcy5jdXN0b21Qcm9wZXJ0eSBpcyA0
MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVsaXN0LXJlYWNoYWJs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZUxpc3Qvbm9kZWxpc3QtcmVhY2hhYmxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWE1N2NmMzkzYzM1NDlmNWJkZjlhODJlYTRlMTljZjk4ODAwNTRm
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGVMaXN0L25vZGVs
aXN0LXJlYWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2RvY3VtZW50LmJvZHkuY2hpbGROb2Rlcy5jdXN0b21Qcm9wZXJ0
eSA9IDQyOworZ2MoKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXMuY3VzdG9t
UHJvcGVydHknLCAnNDInKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTdhNzJiMzM2NWM2OTgzNmZkMWEzNDUzMjY5MTk0Y2EwOGI1NWNlZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1ydWxlLWxpc3QtcmVh
Y2hhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgY3NzUnVsZXNbMF0uY3Vz
dG9tUHJvcGVydHkgaXMgNDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1s
aXN0LXJlYWNoYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLXJ1bGUtbGlzdC1y
ZWFjaGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjU1MzEzOTBkMzQ0YTMxZThhYmMyMGM4ZTJlMDBm
MjA3NWY0MDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLXJ1
bGUtbGlzdC1yZWFjaGFibGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHN0eWxlIGlkPSJ0ZXN0LXNoZWV0Ij4KK2JvZHkge30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK3ZhciBjc3NSdWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXNoZWV0
Jykuc2hlZXQuY3NzUnVsZXM7Citjc3NSdWxlc1swXS5jdXN0b21Qcm9wZXJ0eSA9IDQyOworZ2Mo
KTsKK3Nob3VsZEJlKCdjc3NSdWxlc1swXS5jdXN0b21Qcm9wZXJ0eScsICc0MicpOworCis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZXMt
cmVhY2hhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZXMtcmVh
Y2hhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDVhODJiNzllNGU0YTZjOTg2N2Y5ZWEx
YjE3NDUyMjU4MGM1ZTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
cy9maWxlcy1yZWFjaGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBmaWxl
c1swXS5jdXN0b21Qcm9wZXJ0eSBpcyA0MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMv
ZmlsZXMtcmVhY2hhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGVzLXJlYWNo
YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZmFkOGUxM2E2ZDFlOTU3MmFhOTQ1MmIxOTEwNmE2Mzdk
MTc3OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2ZpbGVzLXJl
YWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8aW5wdXQgdHlw
ZT0iZmlsZSIgaWQ9ImZpbGUiIG9uY2hhbmdlPSJvbklucHV0RmlsZUNoYW5nZSgpIj4KKworPHNj
cmlwdD4KKwordmFyIGZpbGVzOworCitmdW5jdGlvbiBvbklucHV0RmlsZUNoYW5nZSgpCit7Cisg
ICAgZmlsZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZScpLmZpbGVzOworICAgIGZp
bGVzWzBdLmN1c3RvbVByb3BlcnR5ID0gNDI7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnZmls
ZXNbMF0uY3VzdG9tUHJvcGVydHknLCAnNDInKTsKK30KKworZnVuY3Rpb24gbW92ZU1vdXNlVG9D
ZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkKK3sKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydyZXNvdXJjZXMv
YWJlLnBuZyddKTsKKyAgICBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZmlsZScpKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMTQ2M2JkZWU2MzhkNThhY2Y1NWNmZDdmMWQxYmY5OWYxMjBkMWFjNS4uOTcyZTUw
MDFlZDIwZjAxOTY3MDJjYTA5MGI5MThmODg0Y2VlZWJkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTc0LDkgKzI5NzQsNiBAQCBC
VUdfU0VOT1JCTEFOQ08gOiBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZh
cy9jYW52YXMtdHJhbnNmb3Jtcy1maQogCiBCVUdXSzY2OTUzIDogdHJhbnNpdGlvbnMvZGVmYXVs
dC10aW1pbmctZnVuY3Rpb24uaHRtbCA9IElNQUdFCiAKLUJVR1dLNzM4NjUgOiBtZWRpYS90cmFj
ay90ZXh0LXRyYWNrLWN1ZS1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQKLUJVR1dLNzM4NjUgOiBt
ZWRpYS90cmFjay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sID0gVEVYVAotCiBCVUdXSzgx
NDAyIFdJTiA6IG1lZGlhL3RyYWNrL3RyYWNrLWFjdGl2ZS1jdWVzLmh0bWwgPSBQQVNTIFRJTUVP
VVQKIEJVR1dLODM4ODIgOiBtZWRpYS90cmFjay90cmFjay1tb2RlLmh0bWwgPSBQQVNTIFRFWFQg
VElNRU9VVAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151312</attachid>
            <date>2012-07-09 14:01:44 -0700</date>
            <delta_ts>2013-04-05 17:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78149-20120709140143.patch</filename>
            <type>text/plain</type>
            <size>31454</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiNjI3M2UwZGVlZWI4
ODU5OTIxMGRlYmM3YjBiMTY5ZjAyMTBmZi4uZDMwN2YwN2U0YTEzZTU4MDIwZmViYjNmYjhhYjVl
NzE3ODMyNWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA3LTA5ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBCaW5kaW5ncyBm
b3IgbGlzdCBpbnRlcmZhY2VzIGFyZSBhbGwgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBhbGwgaW50ZXJmYWNlcyB0aGF0IGhhdmUgYW4g
SW5kZXhlZEdldHRlciBleHRlbmRlZCBhdHRyaWJ1dGUgd2UgZmluZCB0aGUgcmV0dXJuIHR5cGUg
b2YKKyAgICAgICAgdGhlIGl0ZW0gbWV0aG9kIGFuZCB3ZSB1c2UgdGhhdCB0byBnZW5lcmF0ZSBj
b2RlIHRoYXQgYWRkcyBpbXBsaWNpdCByZWZlcmVuY2VzIGZyb20gdGhlCisgICAgICAgIGxpc3Qg
aW50ZXJmYWNlIHRvIHRoZSBpdGVtcyBpbiB0aGUgbGlzdC4KKworICAgICAgICBUZXN0czogZmFz
dC9kb20vRWxlbWVudC9jbGllbnQtcmVjdC1saXN0LXJlYWNoYWJsZS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2RvbS9jc3MtcnVsZS1saXN0LXJlYWNoYWJsZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ZpbGVzL2ZpbGVzLXJlYWNoYWJsZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW0vRW50cnkuaWRsOiBBZGQgVjhEZXBlbmRlbnRMaWZldGltZS4KKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlTeW5jLmlkbDogRGl0dG8uCisgICAgICAgICogTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL2dhbWVwYWQv
R2FtZXBhZExpc3QuaWRsOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmlkbDogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmlkbDogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
R3JhbW1hci5pZGw6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaWRsOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwOiBBZGQgbWlzc2luZyBpbmNsdWRlIGRpcmVjdG9yaWVzIHRvIHRoZSBidWls
ZCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAg
ICAgICAgKEdldEludGVyZmFjZSk6IEdldHMgdGhlIGludGVyZmFjZSBvYmplY3QgZm9yIGEgdHlw
ZS4KKyAgICAgICAgKEZvckFsbFBhcmVudHMpOiBVcGRhdGUgdG8gdXNlIHRoZSBhYm92ZS4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
dEluZGV4ZXJUeXBlKTogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgaW5kZXhlciBpZiB0aGUgaW50
ZXJmYWNlIGhhcyBhbiBpbmRleGVyLgorICAgICAgICAoTmVlZHNUb1Zpc2l0RE9NV3JhcHBlcik6
IFdlIGFsc28gbmVlZCB0byB2aXNpdCB0aGUgRE9NIHdyYXBwZXIgaWYgdGhlIGludGVyZmFjZSBo
YXMgYW4gaW5kZXhlci4KKyAgICAgICAgKEdlbmVyYXRlVmlzaXRET01XcmFwcGVyKTogVXBkYXRl
IHRvIGdlbmVyYXRlIHRoZSB2aXNpdG9yIGNvZGUgZm9yIGxpc3RzCisgICAgICAgIChHZW5lcmF0
ZUhlYWRlcik6IEFkZCB2aXNpdERPTVdyYXBwZXIgYXMgbmVlZGVkLgorICAgICAgICAoR2VuZXJh
dGVOb3JtYWxBdHRyR2V0dGVyKTogJGludGVyZmFjZU5hbWUgaXMgbm90IHVzZWQuCisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yQ2FsbGJhY2spOiBEaXR0by4KKyAgICAgICAgKEdlbmVyYXRl
TmFtZWRDb25zdHJ1Y3RvckNhbGxiYWNrKTogRGl0dG8uCisgICAgICAgIChHZW5lcmF0ZVRvVjhD
b252ZXJ0ZXJzKTogRGl0dG8uCisgICAgICAgIChHZXREb21NYXBGdW5jdGlvbik6IERpdHRvLgor
ICAgICAgICAoR2V0RG9tTWFwTmFtZSk6IERpdHRvLgorICAgICAgICAoR2V0U3RvcmVEb21NYXBO
YW1lRnVuY3Rpb24pOiBMaWtlIEdldERvbU1hcE5hbWUgYnV0IHJldHVybnMgdGhlIG1ldGhvZCBu
YW1lIG9mIHRoZSBzdG9yZS4KKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldC5pZGw6IEFkZCBWOERl
cGVuZGVudExpZmV0aW1lLgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0LmlkbDogRGl0dG8uCisg
ICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0LmlkbDogRGl0dG8uCisgICAgICAgICogZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaWRsOiBEaXR0by4KKyAgICAgICAgKiBkb20vVG91Y2guaWRsOiBEaXR0
by4KKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuaWRsOiBEaXR0by4KKyAgICAgICAgKiBmaWxlYXBp
L0ZpbGVMaXN0LmlkbDogRGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRs
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5pZGw6IERpdHRvLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGw6IERpdHRvLgorICAgICAgICAqIHBh
Z2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL1dlYktpdEFu
aW1hdGlvbi5pZGw6IERpdHRvLgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaWRsOiBE
aXR0by4KKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbi5pZGw6IERpdHRvLgorCiAyMDEyLTA3
LTA5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF0gTG9nIHNpZ25pZmljYW50IEdhbWVwYWQgQVBJLXJlbGF0ZWQgZXZlbnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5LmlkbAppbmRleCBjNmNkYmE1
YmQ4YjBjYmVlY2VkZWI0ODc0OGU0NzRmZjE0YWNmODc5Li4xNjU2MmMyZDFkYzViMTE5M2M1YWFh
NDQ1MmU2MmM3NzZjY2ZlMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vRW50cnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9FbnRyeS5pZGwKQEAgLTMyLDcgKzMyLDggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVy
ZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBDdXN0b21U
b0pTT2JqZWN0LAotICAgICAgICBKU05vU3RhdGljVGFibGVzCisgICAgICAgIEpTTm9TdGF0aWNU
YWJsZXMsCisgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIEVudHJ5IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNGaWxlOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBpc0RpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeVN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwKaW5kZXggY2Q0YmFlN2RlNjljNGRmNzMyZTc2MzM1
NTZjZjYwMWNlMTQ0YjY4Ni4uZWI4NzE4ZTExOWIzZTY4YzI5NDI4Y2E5MGQxNGE5MjJjMDZlZjY5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3lu
Yy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5p
ZGwKQEAgLTMyLDcgKzMyLDggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFjZSBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0
LAotICAgICAgICBKU05vU3RhdGljVGFibGVzCisgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCisg
ICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIEVudHJ5U3luYyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmlsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNEaXJlY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQv
R2FtZXBhZC5pZGwKaW5kZXggZTAwZTJkYzNkODg1NWNmOGVmMDQ1NjUzMTdmMmM3NDYwMzdiM2Fh
My4uZmQ4NzAwY2IwMDFiMjg2MTI5NTAyNDIwM2YyMjFkZTBlZmE3OGI0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbApAQCAtMjYsNyArMjYsOCBAQAogbW9k
dWxlIGRvbSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1HQU1FUEFE
CisgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCisgICAgICAgIFY4RGVwZW5kZW50TGlmZXRp
bWUKICAgICBdIEdhbWVwYWQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGlkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBpbmRleDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaWRsCmluZGV4IDRm
MWUxZGY5YTE5NzhmODljYzg3M2QzYWY2MjhmZDFkYjAzMGYzZTYuLmY4NDBiYTg1NWUzNWYxMWYx
YTAzZjcyMzgxZWNmYjNjNDJjZWYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
YW1lcGFkL0dhbWVwYWRMaXN0LmlkbApAQCAtMjcsNyArMjcsOCBAQCBtb2R1bGUgZG9tIHsKIAog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCi0gICAgICAgIElu
ZGV4ZWRHZXR0ZXIKKyAgICAgICAgSW5kZXhlZEdldHRlciwKKyAgICAgICAgVjhEZXBlbmRlbnRM
aWZldGltZQogICAgIF0gR2FtZXBhZExpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIEdhbWVwYWQgaXRlbShpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwKaW5kZXggNjVhMTgz
MzEyYWI5ZDZhYWRkNWMxY2JhZDEwOTMxODllNzNhMWM5ZC4uYTMzN2RiYWI4OTM1MDYxY2EyYzJi
ODBmZTIzNzczODJlMDRhYmQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwKQEAgLTI5LDcgKzI5LDggQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgQ29uc3RydWN0b3IoaW4gTWVkaWFTdHJl
YW1UcmFja0xpc3QgYXVkaW9UcmFja3MsIGluIE1lZGlhU3RyZWFtVHJhY2tMaXN0IHZpZGVvVHJh
Y2tzKSwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAgICAgICAg
Q29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KKyAgICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNl
cHRpb24sCisgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgIF0gTWVkaWFTdHJlYW0gewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW1UcmFja0xpc3QgYXVkaW9UcmFja3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmlkbAppbmRleCA3OTg3NTk3NWU5MTdjYmU2ZWY5OTMxODI4ZDU4YzFjOTY5ZjhlZGViLi5kY2Q0
NzQ3MTQxYWEwNjg4MDBhODdhZjM5Y2YxOTI2NDEyOGYwNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKQEAg
LTI2LDYgKzI2LDcgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCiAg
ICAgXSBNZWRpYVN0cmVhbVRyYWNrIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBraW5kOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbAppbmRl
eCBiNzkzYWMzYWJlZjkyZmU4NTdlNDU0OGY3MDg1NTRmZmNjYWU4M2M5Li5mYmQ4MDU5YjkxMDQ2
MWRhNmQ5MzVjZTRiNjM0YTQxYzdjNjI2MDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbApAQCAtMjYsNyArMjYsOCBAQAogbW9kdWxlIGNv
cmUgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVD
SCwKLSAgICAgICAgQ29uc3RydWN0b3IKKyAgICAgICAgQ29uc3RydWN0b3IsCisgICAgICAgIFY4
RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIFNwZWVjaEdyYW1tYXIgewogICAgICAgICBhdHRyaWJ1
dGUgW1VSTCxDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBET01TdHJpbmcgc3JjOwog
ICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgd2VpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlk
bAppbmRleCBhOWQ0ZGVjM2RkZTkyNWIyNjQyOTg4NDMzMTQ2YzE0ZTg4NWM2YjZlLi5iYjBjMjky
MzIzNmRmNjcwMTI3MDM4OWYwYjBhNmY1OGU0YzQyODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmlkbApAQCAtMjUsNyArMjUsOCBAQAogCiBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNl
IFsKLSAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNICisgICAgICAgIENvbmRpdGlv
bmFsPVNDUklQVEVEX1NQRUVDSCwKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0g
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0
IGNvbmZpZGVuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKaW5kZXggM2Y5MTI2MjFjMGQ3MTM0YzZiOTRm
ZWU4ODQxYThjMWU1OTYwZmU0Yy4uZDM4NWQ1NDU0YTE0YjBiZTZhYzgwZDcwNTUwYTUwZjcwNDcw
NjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApAQCAtMjYsNyArMjYsOCBAQAogbW9kdWxlIGNvcmUg
ewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwK
LSAgICAgICAgSW5kZXhlZEdldHRlcgorICAgICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBW
OERlcGVuZGVudExpZmV0aW1lCiAgICAgXSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25n
IGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUu
Z3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggY2IwZTc2
YTA1MGEwNTcwZjZlYmRmZDJlMzc4Y2Q3NzEzYzdhZTc5OS4uNzMzMDI1OGM3MzA1NTEwNmU2NzE2
ZDdjY2E0MGFlM2JlOWQxZDNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKQEAgLTEwNDMsMTMgKzEwNDMsMTkgQEAKICAgICAgICAgICBdLAogICAgICAgICAgICd2YXJp
YWJsZXMnOiB7CiAgICAgICAgICAgICAnZ2VuZXJhdG9yX2luY2x1ZGVfZGlycyc6IFsKKyAgICAg
ICAgICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL2JhdHRlcnknLAogICAgICAgICAgICAg
ICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvZmlsZXN5c3RlbScsCisgICAgICAgICAgICAgICct
LWluY2x1ZGUnLCAnLi4vTW9kdWxlcy9nYW1lcGFkJywKKyAgICAgICAgICAgICAgJy0taW5jbHVk
ZScsICcuLi9Nb2R1bGVzL2dlb2xvY2F0aW9uJywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScs
ICcuLi9Nb2R1bGVzL2luZGV4ZWRkYicsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4v
TW9kdWxlcy9pbnRlbnRzJywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVz
L21lZGlhc3RyZWFtJywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMnLAorICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvcXVv
dGEnLAorICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL01vZHVsZXMvc3BlZWNoJywKICAg
ICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL3dlYmF1ZGlvJywKICAgICAgICAg
ICAgICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL3dlYmRhdGFiYXNlJywKKyAgICAgICAgICAg
ICAgJy0taW5jbHVkZScsICcuLi9Nb2R1bGVzL3dlYnNvY2tldHMnLAogICAgICAgICAgICAgICAn
LS1pbmNsdWRlJywgJy4uL2NzcycsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vZG9t
JywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9maWxlYXBpJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA3NDhiNGU1
MWVlYWNiOGM5ODEwZTcyYTQ2NTUzN2U0MDliYWUzODkzLi42OWI0ZTlmYzdmZjY4N2I2NTYxY2Vi
MmVjZTJlNTIyYzUyNDViZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC0xNzIsNiArMTcyLDEzIEBAIHN1YiBVcGRhdGVGaWxl
CiAgICAgY2xvc2UgRkg7CiB9CiAKK3N1YiBHZXRJbnRlcmZhY2UKK3sKKyAgICBteSAoJG9iamVj
dCwgJHR5cGUsICRwYXJlbnRzT25seSkgPSBAXzsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRv
YmplY3QtPlN0cmlwTW9kdWxlKCR0eXBlKTsKKyAgICByZXR1cm4gJG9iamVjdC0+UGFyc2VJbnRl
cmZhY2UoJGludGVyZmFjZU5hbWUsICRwYXJlbnRzT25seSk7Cit9CisKIHN1YiBGb3JBbGxQYXJl
bnRzCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwpAQCAtMTg1LDggKzE5Miw3IEBAIHN1YiBG
b3JBbGxQYXJlbnRzCiAgICAgICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAogICAgICAgICBm
b3IgKEB7JGludGVyZmFjZS0+cGFyZW50c30pIHsKLSAgICAgICAgICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJG9iamVjdC0+U3RyaXBNb2R1bGUoJF8pOwotICAgICAgICAgICAgbXkgJHBhcmVudElu
dGVyZmFjZSA9ICRvYmplY3QtPlBhcnNlSW50ZXJmYWNlKCRpbnRlcmZhY2VOYW1lLCAkcGFyZW50
c09ubHkpOworICAgICAgICAgICAgbXkgJHBhcmVudEludGVyZmFjZSA9ICRvYmplY3QtPkdldElu
dGVyZmFjZSgkXywgJHBhcmVudHNPbmx5KTsKIAogICAgICAgICAgICAgaWYgKCRiZWZvcmVSZWN1
cnNpb24pIHsKICAgICAgICAgICAgICAgICAmJGJlZm9yZVJlY3Vyc2lvbigkcGFyZW50SW50ZXJm
YWNlKSBlcSAncHJ1bmUnIGFuZCBuZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzYjAxMTViZGZkODY0YzYzZmIzZWQ0
YTk3ZTVhZTgxMWQ3NWQ2OGQ1Li43NTMwNzQ4NTc3NWVjNTQ4OWUwOWQ0NTVlMTUyN2ZmMjhmNTgy
NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMTgxLDEwICsxODEsNDUgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQog
ICAgIH0KIH0KIAorc3ViIEdldEluZGV4ZXJUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hp
ZnQ7CisKKyAgICBteSAkaGFzSW5kZXhHZXR0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJJbmRleGVkR2V0dGVyIn07CisgICAgaWYgKCEkaGFzSW5kZXhHZXR0ZXIpIHsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbXkgJGluZGV4ZXI7CisKKyAgICBmb3JlYWNo
IG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYgKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIGVxICJpdGVtIikgeworICAgICAgICAgICAgJGluZGV4
ZXIgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZTsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBpZiAoISRpbmRleGVyKSB7CisgICAgICAgICRpbmRleGVyID0gJGNvZGVH
ZW5lcmF0b3ItPkZpbmRTdXBlck1ldGhvZCgkZGF0YU5vZGUsICJpdGVtIik7CisgICAgfQorCisg
ICAgaWYgKCEkaW5kZXhlcikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBteSAk
aW5kZXhlclR5cGUgPSAkaW5kZXhlci0+dHlwZTsKKworICAgIGlmIChJc1dyYXBwZXJUeXBlKCRp
bmRleGVyVHlwZSkgJiYgIUlzRE9NTm9kZVR5cGUoJGluZGV4ZXJUeXBlKSkgeworICAgICAgICBy
ZXR1cm4gJGluZGV4ZXJUeXBlOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdWIgTmVl
ZHNUb1Zpc2l0RE9NV3JhcHBlcgogewogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIHJl
dHVybiBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0Q3VzdG9tSXNSZWFj
aGFibGUoJGRhdGFOb2RlKTsKKyAgICByZXR1cm4gR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0
YU5vZGUpIHx8IEdldEN1c3RvbUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0SW5kZXhlclR5
cGUoJGRhdGFOb2RlKTsKIH0KIAogc3ViIEdldEdlbmVyYXRlSXNSZWFjaGFibGUKQEAgLTIzNCw2
ICsyNjksMzAgQEAgRU5ECiBFTkQKICAgICB9CiAKKyAgICBteSAkaW5kZXhlclR5cGUgPSBHZXRJ
bmRleGVyVHlwZSgkZGF0YU5vZGUpOworICAgIGlmICgkaW5kZXhlclR5cGUpIHsKKyAgICAgICAg
IyBGSVhNRTogVGhpcyBuZWVkcyB0byBiZSBhICRkYXRhTm9kZQorICAgICAgICBteSAkaXRlbURh
dGFOb2RlID0gJGNvZGVHZW5lcmF0b3ItPkdldEludGVyZmFjZSgkaW5kZXhlclR5cGUpOworICAg
ICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgICAgICBkaWUg
IiRpbnRlcmZhY2VOYW1lIGhhcyBhbiBpbmRleGVyIG9mIHR5cGUgJGluZGV4ZXJUeXBlIGJ1dCAk
aW5kZXhlclR5cGUgaXMgbWlzc2luZyB0aGUgZXh0ZW5kZWQgYXR0cmlidXRlIFY4RGVwZW5kZW50
TGlmZXRpbWUiIHVubGVzcyAkaXRlbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhE
ZXBlbmRlbnRMaWZldGltZSJ9OworICAgICAgICBteSAkbWFwTmFtZSA9IEdldFN0b3JlRG9tTWFw
TmFtZUZ1bmN0aW9uKCRpdGVtRGF0YU5vZGUpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
PDxFTkQpOworICAgIHsKKyAgICAgICAgVmVjdG9yPHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4g
PiB3cmFwcGVyczsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGltcGwtPmxlbmd0
aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFJlZlB0cjwke2luZGV4ZXJUeXBlfT4gaXRlbSA9IGlt
cGwtPml0ZW0oaSk7CisgICAgICAgICAgICBpZiAoIWl0ZW0uZ2V0KCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGl0ZW1XcmFw
cGVyID0gc3RvcmUtPiRtYXBOYW1lKCkuZ2V0KGl0ZW0uZ2V0KCkpOworICAgICAgICAgICAgaWYg
KCFpdGVtV3JhcHBlci5Jc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgd3JhcHBlcnMuYXBwZW5k
KGl0ZW1XcmFwcGVyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXdyYXBwZXJzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHY4OjpWODo6QWRkSW1wbGljaXRSZWZlcmVuY2VzKHdyYXBwZXIsIHdy
YXBwZXJzLmRhdGEoKSwgd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICB9CitFTkQKKyAgICB9CiAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIH0KIApAQCAtMjk1LDcgKzM1NCw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1bmN0aW9u
cygkZGF0YU5vZGUpOwogCiAgICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9Ci0gICAgICAgICB8fCBH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsK
KyAgICAgICAgIHx8IEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fCBHZXRDdXN0
b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8ICRjbGFzc05hbWUgPX4gL1NWRy87CiAgICAgaWYg
KCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKICAgICAgICAgZm9yZWFjaCAoQHskZGF0YU5vZGUt
PnBhcmVudHN9KSB7CiAgICAgICAgICAgICBteSAkcGFyZW50ID0gJGNvZGVHZW5lcmF0b3ItPlN0
cmlwTW9kdWxlKCRfKTsKQEAgLTQ5Niw3ICs1NTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25hdGl2ZVR5cGV9KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNv
bAogewogRU5ECiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBpZiAoIWZvcmNlTmV3T2Jq
ZWN0KSB7XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKLSAgICBteSAkZG9t
TWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlvbigkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1l
LCAiaXNvbGF0ZSIpOworICAgIG15ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1bmN0aW9u
KCRkYXRhTm9kZSwgImlzb2xhdGUiKTsKICAgICBteSAkZ2V0Q2FjaGVkV3JhcHBlciA9IElzTm9k
ZVN1YlR5cGUoJGRhdGFOb2RlKSA/ICJWOERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBwZXIoaW1w
bCkiIDogIiR7ZG9tTWFwRnVuY3Rpb259LmdldChpbXBsKSI7CiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgPDxFTkQpOwogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSAk
Z2V0Q2FjaGVkV3JhcHBlcjsKQEAgLTk5Myw3ICsxMDUyLDcgQEAgRU5ECiAgICAgICAgICMgQ2hl
Y2sgZm9yIGEgd3JhcHBlciBpbiB0aGUgd3JhcHBlciBjYWNoZS4gSWYgdGhlcmUgaXMgb25lLCB3
ZSBrbm93IHRoYXQgYSBoaWRkZW4gcmVmZXJlbmNlIGhhcyBhbHJlYWR5CiAgICAgICAgICMgYmVl
biBjcmVhdGVkLiBJZiB3ZSBkb24ndCBmaW5kIGEgd3JhcHBlciwgd2UgY3JlYXRlIGJvdGggYSB3
cmFwcGVyIGFuZCBhIGhpZGRlbiByZWZlcmVuY2UuCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgUmVmUHRyPCRyZXR1cm5UeXBlPiByZXN1bHQgPSAke2dldHRlclN0cmluZ307
XG4iKTsKLSAgICAgICAgbXkgJGRvbU1hcEZ1bmN0aW9uID0gR2V0RG9tTWFwRnVuY3Rpb24oJGRh
dGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgImluZm8uR2V0SXNvbGF0ZSgpIik7CisgICAgICAgIG15
ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1bmN0aW9uKCRkYXRhTm9kZSwgImluZm8uR2V0
SXNvbGF0ZSgpIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1bHQuZ2V0KCkgPyAke2RvbU1hcEZ1bmN0aW9u
fS5nZXQocmVzdWx0LmdldCgpKSA6IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTtcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkg
e1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHdyYXBwZXIg
PSB0b1Y4KHJlc3VsdC5nZXQoKSwgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CkBAIC0xODMyLDcg
KzE4OTEsNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGdvdG8g
ZmFpbDtcbiIpOwogICAgIH0KIAotICAgIG15ICRET01PYmplY3QgPSBHZXREb21NYXBOYW1lKCRk
YXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOworICAgIG15ICRET01PYmplY3QgPSBHZXREb21NYXBO
YW1lKCRkYXRhTm9kZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAogICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQoKSk7CkBA
IC0yMDA3LDcgKzIwNjYsNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIGdvdG8gZmFpbDtcbiIpOwogICAgIH0KIAotICAgIG15ICRET01PYmplY3QgPSBHZXREb21N
YXBOYW1lKCRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOworICAgIG15ICRET01PYmplY3QgPSBH
ZXREb21NYXBOYW1lKCRkYXRhTm9kZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsK
IAogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmVjgke2ltcGxDbGFz
c05hbWV9Q29uc3RydWN0b3I6OmluZm8sIGltcGwuZ2V0KCkpOwpAQCAtMzIyMiw3ICszMjgxLDcg
QEAgc3ViIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMKICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7
CiAgICAgbXkgJG5hdGl2ZVR5cGUgPSBzaGlmdDsKIAotICAgIG15ICRkb21NYXBOYW1lID0gR2V0
RG9tTWFwTmFtZSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkZG9tTWFwTmFt
ZSA9IEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKTsKICAgICBteSAkZm9yY2VOZXdPYmplY3RJbnB1
dCA9IElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpID8gIiwgYm9vbCBmb3JjZU5ld09iamVj
dCIgOiAiIjsKICAgICBteSAkZm9yY2VOZXdPYmplY3RDYWxsID0gSXNET01Ob2RlVHlwZSgkaW50
ZXJmYWNlTmFtZSkgPyAiLCBmb3JjZU5ld09iamVjdCIgOiAiIjsKICAgICBteSAkd3JhcFNsb3dB
cmd1bWVudFR5cGUgPSBHZXRQYXNzUmVmUHRyVHlwZSgkbmF0aXZlVHlwZSk7CkBAIC0zMzIwLDE2
ICszMzc5LDE0IEBAIEVORAogc3ViIEdldERvbU1hcEZ1bmN0aW9uCiB7CiAgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKICAgICBteSAkZ2V0
SXNvbGF0ZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICJnZXQiIC4gR2V0RG9tTWFwTmFtZSgkZGF0
YU5vZGUsICRpbnRlcmZhY2VOYW1lKSAuICJNYXAoIiAuICRnZXRJc29sYXRlIC4gIikiOworICAg
IHJldHVybiAiZ2V0IiAuIEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKSAuICJNYXAoIiAuICRnZXRJ
c29sYXRlIC4gIikiOwogfQogCiBzdWIgR2V0RG9tTWFwTmFtZQogewogICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OwotICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKICAgICByZXR1cm4gIkFjdGl2ZURP
TU5vZGUiIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgJiYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pOwogICAgIHJldHVybiAiRE9NTm9kZSIg
aWYgSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpOwpAQCAtMzMzNyw2ICszMzk0LDE3IEBAIHN1YiBH
ZXREb21NYXBOYW1lCiAgICAgcmV0dXJuICJET01PYmplY3QiOwogfQogCitzdWIgR2V0U3RvcmVE
b21NYXBOYW1lRnVuY3Rpb24KK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
ZG9tTWFwTmFtZSA9IEdldERvbU1hcE5hbWUoJGRhdGFOb2RlKTsKKworICAgIHJldHVybiAiZG9t
Tm9kZU1hcCIgaWYgKCRkb21NYXBOYW1lIGVxICJET01Ob2RlIik7CisgICAgcmV0dXJuICJhY3Rp
dmVEb21Ob2RlTWFwIiBpZiAoJGRvbU1hcE5hbWUgZXEgIkFjdGl2ZURPTU5vZGUiKTsKKyAgICBy
ZXR1cm4gImFjdGl2ZURvbU9iamVjdE1hcCIgaWYgKCRkb21NYXBOYW1lIGVxICJBY3RpdmVET01P
YmplY3QiKTsKKyAgICByZXR1cm4gImRvbU9iamVjdE1hcCIgaWYgKCRkb21NYXBOYW1lIGVxICJE
T01PYmplY3QiKTsKK30KKwogc3ViIEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucwogewogICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuaWRsCmluZGV4IGI4
NTY4YmZiMjA1MjIzZDdhNGI5OTFjYmM5YTZlMWU4YjQ4ODY0OWUuLjA1YTM2OTU3MDhjZDgwMDcy
ZGM2OWFiMTZjOTE2MGMyYWZiZWU5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVNoZWV0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5pZGwKQEAg
LTI2LDcgKzI2LDggQEAgbW9kdWxlIHN0eWxlc2hlZXRzIHsKICAgICAgICAgSlNHZW5lcmF0ZUlz
UmVhY2hhYmxlLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBPYmpDUG9seW1v
cnBoaWMsCi0gICAgICAgIFY4R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsT3duZXJOb2RlUm9vdAor
ICAgICAgICBWOEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbE93bmVyTm9kZVJvb3QsCisgICAgICAg
IFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIFN0eWxlU2hlZXQgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAg
ICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBk
aXNhYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbAppbmRleCA3ZGJkZDY4OThhODI4YTFh
YjQ4ZmRlN2YwZTU5YzEzYzUxN2UzMWE0Li5iZDI2N2NjOWY4NjU5NWFmN2ZhY2Q1MjE1NTlkYzVi
MTI5YmRjYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsCkBAIC0yNiw3ICsyNiw5IEBA
CiAKIG1vZHVsZSB2aWV3IHsKIAotICAgIGludGVyZmFjZSBDbGllbnRSZWN0IHsKKyAgICBpbnRl
cmZhY2UgWworICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCisgICAgXSBDbGllbnRSZWN0IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHRvcDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGZsb2F0IHJpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQg
Ym90dG9tOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKaW5kZXggMDJmMDU1ZTZl
NjBlYjI0ZTEyZjMzYzc4NTkwYjI3ZTNiMWE5YTQ0OS4uMGU5NzI3YzkxZjQ1ZGY3ODUyNDU1Yjdh
ZTMwYTVlZjJlMzEzZTI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJl
Y3RMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsCkBA
IC0yNyw3ICsyNyw4IEBACiBtb2R1bGUgdmlldyB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAg
ICBJbmRleGVkR2V0dGVyCisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAgICAgIFY4RGVwZW5k
ZW50TGlmZXRpbWUKICAgICBdIENsaWVudFJlY3RMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBDbGllbnRSZWN0IGl0ZW0oaW4g
W0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAppbmRleCAwZGFkMzM4MjJm
NzRjZmU5ZmQ0NGFmNDZlMDRiZjM5YjY4MzVjOTU0Li5hOTE3NWY0MTUzN2IzN2ZkMTcwZmIxMGNk
NDFmNjUxYjcxMDkzNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRs
CkBAIC0zMiw2ICszMiw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIFY4RGVwZW5kZW50
TGlmZXRpbWUKICAgICBdIERhdGFUcmFuc2Zlckl0ZW0gewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVG91Y2guaWRsCmluZGV4IGQyOTM3YjM0ZTA2YmQ4OTdlNTk2ZjBkYzk4
M2U4NzUzZGQyMGVjODAuLjVlNDAxOTRiNTIzZTE4NjI0NGM1ZGZhNDVmOGY5Y2MwYTIyN2EzYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoLmlkbApAQCAtMjYsNyArMjYsOCBAQAogbW9kdWxlIGV2ZW50cyB7CiAK
ICAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMKKyAgICAg
ICAgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLAorICAgICAgICBWOERlcGVuZGVudExpZmV0aW1l
CiAgICAgXSBUb3VjaCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAg
ICAgIGNsaWVudFg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAg
IGNsaWVudFk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbAppbmRleCA3YzBkZTQzMDlkZmRhNWE2MGVk
MTQzY2FhNTQ4YjM1OTk0MTI4ZDVlLi5hYjk0NWFlMjJjOTU2ZDkwYzU1YjA5ZTk4MzgxNzJkOTQ0
NmIxOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKQEAgLTI4LDcgKzI4LDggQEAgbW9kdWxl
IGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVj
dCwKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCi0gICAgICAgIEpTTm9TdGF0aWNUYWJs
ZXMKKyAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGlt
ZQogICAgIF0gRmlsZSA6IEJsb2IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG5hbWU7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdFX0dP
QkpFQ1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5pZGwKaW5kZXggMTQxMzlhNzYzNWQzMzBk
MDYwOWU1YzJjYzJlMWY5MTlmN2E0YzczMC4uYzBhOGUxOWE1ZjE0NmExMTUxYWVkNzA1YjFiNWRk
ZDhjZWJiYjZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5pZGwKQEAgLTI3LDcgKzI3
LDggQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgSW5kZXhlZEdl
dHRlciwKLSAgICAgICAgSlNOb1N0YXRpY1RhYmxlcworICAgICAgICBKU05vU3RhdGljVGFibGVz
LAorICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCiAgICAgXSBGaWxlTGlzdCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgRmlsZSBp
dGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaWRsCmluZGV4IDg0NWE4MGMwMTk0YmJiNTA1NThkYTgyMjkzZTQ2OWIxZGUyNWFlNWEu
LmE0ODM5NmUyMDI4Nzk5NjE5YjkxZjAwOGYyMDMzMzViZWY2YWYwNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKQEAgLTMwLDcgKzMwLDggQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFjaywKICAgICAgICAg
RXZlbnRUYXJnZXQsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAotICAgICAgICBKU0N1
c3RvbUlzUmVhY2hhYmxlCisgICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUsCisgICAgICAgIFY4
RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIFRleHRUcmFjayB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcga2luZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBsYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbApp
bmRleCBkNTUyNTI1YTQyMTMwOGRhNmM3ZWI2NGZkNzUzZTkxMjY3YzZmNzljLi44NTAwNTA5NWY0
MjFjZGI2YzVkYWIzMDQ1NDNiMzk3ODQ1ZWYyYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaWRsCkBAIC0zMyw3ICszMyw4IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICAgICAgRXZlbnRUYXJn
ZXQsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAotICAgICAgICBKU0N1c3RvbUlzUmVh
Y2hhYmxlCisgICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUsCisgICAgICAgIFY4RGVwZW5kZW50
TGlmZXRpbWUKICAgICBdIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBUZXh0VHJhY2sgdHJhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VFbnRyeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnku
aWRsCmluZGV4IDllMTBmZTBiZjE3NTMxOWYyMmMzN2QyNjAzYTBlODJkOThmMzgzMmYuLjJkOWE0
MDAyOTFhNmNjZmU4YzI0M2NlMWFhYjNmODk2NGI4MGY3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZUVudHJ5LmlkbApAQCAtMzUsNyArMzUsOCBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgQ29uZGl0aW9uYWw9UEVS
Rk9STUFOQ0VfVElNRUxJTkUsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCi0gICAgICAgIE9t
aXRDb25zdHJ1Y3RvcgorICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAgIFY4RGVwZW5k
ZW50TGlmZXRpbWUKICAgICBdIFBlcmZvcm1hbmNlRW50cnkgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgZW50cnlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dFJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0Lmlk
bAppbmRleCAzNTQyYzYwNTYxN2FiZTY0OWM2NGFhMTljYTBkNjM1NzE5OTc3YzE1Li4zMTZkNWUw
ZjkxNzhiZjFiN2YzMGI1YzI0Yjc5NzhmZWIxNTlhNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0UmVzdWx0LmlkbApAQCAtMjcsNiArMjcsNyBAQCBtb2R1bGUgY29yZSB7CiAK
ICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gsCisgICAg
ICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIFNwZWVjaElucHV0UmVzdWx0IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1dHRlcmFuY2U7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25maWRlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRB
bmltYXRpb24uaWRsCmluZGV4IDRmYmEyZThmYmQzYTAzMzg3NjNkOWQ5ZmZjMWVjZTYxNDA4ZjM4
MmEuLmE0OTNlYjk4M2JlYTA1N2IyOTgzM2RmYzQ2Yjk3NWE1MTA4NGQ2NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwKQEAgLTI4LDcgKzI4LDkgQEAKIAogbW9kdWxl
IGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlvbiB7CisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQorICAgIF0gV2ViS2l0QW5pbWF0aW9uIHsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwKaW5kZXggOTQyMDYwZjEwNzAwZTIwNGZlZGM3ZDkw
NDI4NGE0OGI4NmQxNjZmNy4uODFiODY3YmU2ZjRmYWUxMGMzMGIzZDE5ZmMzYTk2ZmM1M2M2ZGNk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwKQEAgLTIxLDcgKzIxLDgg
QEAKIG1vZHVsZSB3aW5kb3cgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgSW50ZXJmYWNl
TmFtZT1NaW1lVHlwZQorICAgICAgICBJbnRlcmZhY2VOYW1lPU1pbWVUeXBlLAorICAgICAgICBW
OERlcGVuZGVudExpZmV0aW1lCiAgICAgXSBET01NaW1lVHlwZSB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBzdWZmaXhlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9N
UGx1Z2luLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmlkbAppbmRleCBm
NjQ1YTBiNmUwZjdmNDJlNTQ4NjMzZTM1NzlkMWRiMWJiMGRiNDk4Li4yNTMzMWM1YWE0ZTFhMWIy
YzJkM2RhYTFmYzQ5Yjg5MWQ5YzNmYTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL0RPTVBsdWdpbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4u
aWRsCkBAIC0yMyw3ICsyMyw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgIGludGVyZmFjZSBbCiAg
ICAgICAgIE5hbWVkR2V0dGVyLAogICAgICAgICBJbmRleGVkR2V0dGVyLAotICAgICAgICBJbnRl
cmZhY2VOYW1lPVBsdWdpbgorICAgICAgICBJbnRlcmZhY2VOYW1lPVBsdWdpbiwKKyAgICAgICAg
VjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gRE9NUGx1Z2luIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGZpbGVuYW1lOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI2NmY4MjY2ODdjYTE5NDllMGIyZGMyM2NkYWJmYjBk
ZjljOGJjNGUuLjlkZmY4ZmM1NzQ4N2Q0YjM5NzkwOGU2MmUzN2UyN2NlYTkzYTk1ZGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0wOSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtWOF0gQmluZGluZ3MgZm9yIGxpc3QgaW50ZXJmYWNlcyBhcmUg
YWxsIGJyb2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzgxNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9FbGVtZW50L2NsaWVudC1yZWN0LWxpc3Qt
cmVhY2hhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2Nzcy1ydWxlLWxpc3Qt
cmVhY2hhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vY3NzLXJ1
bGUtbGlzdC1yZWFjaGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9maWxl
cy1yZWFjaGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL2Zp
bGVzLXJlYWNoYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTA3LTA5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNl
a0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gSW1wbGVtZW50IGR1bXBGcmFtZVNjcm9sbFBv
c2l0aW9uIGluIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbGVtZW50L2NsaWVudC1yZWN0LWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFjaGFibGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYzYzZhMzE5MGU3ZDRjZjI4ZWU0MTY5NzZlODY5ODkzNzZmZmEz
OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L2NsaWVu
dC1yZWN0LWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
cmVjdHNbMF0uY3VzdG9tUHJvcGVydHkgaXMgNDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbGVtZW50L2NsaWVudC1yZWN0LWxpc3QtcmVhY2hhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9FbGVtZW50L2NsaWVudC1yZWN0LWxpc3QtcmVhY2hhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGI4ZjExNTgyMzcyY2IzZDIzOWRkZTJjOGE0MDM2N2I2MTk2NmRkMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvY2xpZW50LXJlY3QtbGlzdC1yZWFj
aGFibGUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCit2YXIgcmVjdHMgPSBkb2N1bWVudC5ib2R5LmdldENsaWVudFJlY3RzKCk7City
ZWN0c1swXS5jdXN0b21Qcm9wZXJ0eSA9IDQyOworZ2MoKTsKK3Nob3VsZEJlKCdyZWN0c1swXS5j
dXN0b21Qcm9wZXJ0eScsICc0MicpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1ydWxlLWxpc3QtcmVhY2hhYmxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1ydWxlLWxpc3QtcmVhY2hhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lN2E3MmIzMzY1YzY5ODM2ZmQxYTM0NTMyNjkxOTRjYTA4YjU1
Y2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLXJ1bGUtbGlz
dC1yZWFjaGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBjc3NSdWxlc1sw
XS5jdXN0b21Qcm9wZXJ0eSBpcyA0MgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1y
dWxlLWxpc3QtcmVhY2hhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtcnVsZS1s
aXN0LXJlYWNoYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNTUzMTM5MGQzNDRhMzFlOGFiYzIwYzhl
MmUwMGYyMDc1ZjQwMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9j
c3MtcnVsZS1saXN0LXJlYWNoYWJsZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGJvZHk+Cis8c3R5bGUgaWQ9InRlc3Qtc2hlZXQiPgorYm9keSB7fQorPC9zdHlsZT4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKwordmFyIGNzc1J1bGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qt
c2hlZXQnKS5zaGVldC5jc3NSdWxlczsKK2Nzc1J1bGVzWzBdLmN1c3RvbVByb3BlcnR5ID0gNDI7
CitnYygpOworc2hvdWxkQmUoJ2Nzc1J1bGVzWzBdLmN1c3RvbVByb3BlcnR5JywgJzQyJyk7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9m
aWxlcy1yZWFjaGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9maWxl
cy1yZWFjaGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNWE4MmI3OWU0ZTRhNmM5ODY3
ZjllYTFiMTc0NTIyNTgwYzVlMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL2ZpbGVzLXJlYWNoYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNT
IGZpbGVzWzBdLmN1c3RvbVByb3BlcnR5IGlzIDQyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlcy9maWxlcy1yZWFjaGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmlsZXMt
cmVhY2hhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmYWQ4ZTEzYTZkMWU5NTcyYWE5NDUyYjE5MTA2
YTYzN2QxNzc5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvZmls
ZXMtcmVhY2hhYmxlLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxpbnB1
dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIgb25jaGFuZ2U9Im9uSW5wdXRGaWxlQ2hhbmdlKCkiPgor
Cis8c2NyaXB0PgorCit2YXIgZmlsZXM7CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hhbmdlKCkK
K3sKKyAgICBmaWxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlJykuZmlsZXM7Cisg
ICAgZmlsZXNbMF0uY3VzdG9tUHJvcGVydHkgPSA0MjsKKyAgICBnYygpOworICAgIHNob3VsZEJl
KCdmaWxlc1swXS5jdXN0b21Qcm9wZXJ0eScsICc0MicpOworfQorCitmdW5jdGlvbiBtb3ZlTW91
c2VUb0NlbnRlck9mRWxlbWVudChlbGVtZW50KQoreworICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ3Jlc291
cmNlcy9hYmUucG5nJ10pOworICAgIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdmaWxlJykpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30K
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA4Yjk5YTA3ZmU5ZjFjNGY0N2U4ZGU3ZDQzYjBmMzE2ZGVlOTZjNDU3Li42
ZTAzY2RhZmI5MWQwM2Y3NGVkNTQ1MzAzOWZhMGUxOTA5ZTUxZGQyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTg4Nyw3ICs4ODcsNiBA
QCBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1pbmxpbmUtc3R5bGUtY3NzdmFs
dWVzLmh0bWwgPSBURVhUCiBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1wYXJl
bnQtcnVsZS5odG1sID0gVEVYVAogQlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2Mt
cGFyZW50LXN0eWxlc2hlZXQuaHRtbCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHls
ZVNoZWV0L2djLXJ1bGUtY2hpbGRyZW4td3JhcHBlcnMuaHRtbCA9IFRFWFQKLUJVR1dLNjYzNzcg
TUFDIDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1zdHlsZWhlZXQtd3JhcHBlci54aHRtbCA9IFRF
WFQKIAogLy8gVGhlc2UgdGVzdHMgZG9uJ3Qgd29yayB3aXRoIGZhc3QgdGltZXJzIGR1ZSB0byBz
ZXRUaW1lb3V0CiAvLyByYWNlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTUzNgpAQCAtMjkzMCw5ICsyOTI5LDYgQEAgQlVHX1NFTk9SQkxBTkNPIDogcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvY2FudmFzLXRyYW5zZm9ybXMt
ZmkKIAogQlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5nLWZ1bmN0aW9uLmh0
bWwgPSBJTUFHRQogCi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUtaXMt
cmVhY2hhYmxlLmh0bWwgPSBURVhUCi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFj
ay1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQKLQogQlVHV0s4MTQwMiBXSU4gOiBtZWRpYS90cmFj
ay90cmFjay1hY3RpdmUtY3Vlcy5odG1sID0gUEFTUyBUSU1FT1VUCiBCVUdXSzgzODgyIDogbWVk
aWEvdHJhY2svdHJhY2stbW9kZS5odG1sID0gUEFTUyBURVhUIFRJTUVPVVQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>