<?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>222412</bug_id>
          
          <creation_ts>2021-02-25 04:28:12 -0800</creation_ts>
          <short_desc>Add type method for WASM Global, Memory and Table JS API classes</short_desc>
          <delta_ts>2021-04-02 14:10:38 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jtallon</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733284</commentid>
    <comment_count>0</comment_count>
    <who name="">jtallon</who>
    <bug_when>2021-02-25 04:28:12 -0800</bug_when>
    <thetext>Supporting the type method on WebAssembly.Global, WebAssembly.Memory and WebAssembly.Table in the wasm JS-API would allow us to inspect the type of those objects as well as create new objects with the same type by passing the type return by the new type method to the constructor. This is outlined in https://github.com/WebAssembly/js-types/blob/master/proposals/js-types/Overview.md#extensions-to-api-functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733286</commentid>
    <comment_count>1</comment_count>
      <attachid>421514</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-02-25 04:42:25 -0800</bug_when>
    <thetext>Created attachment 421514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733287</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-25 04:43:27 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733580</commentid>
    <comment_count>3</comment_count>
      <attachid>421514</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-25 16:11:12 -0800</bug_when>
    <thetext>Comment on attachment 421514
Patch

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

Commented.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp:115
&gt; +    default:
&gt; +        RELEASE_ASSERT_NOT_REACHED();
&gt; +    }

We need to handle all types that are supported in WebAssembly.Global (e.g. funcref).

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyGlobalPrototype.cpp:90
&gt; +    return JSValue::encode(global-&gt;type(globalObject));

Use
RELEASE_AND_RETURN(throwScope, JSValue::encode(global-&gt;type(globalObject)));

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp:112
&gt; +    JSObject* memoryType = memory-&gt;type(globalObject);
&gt; +    RETURN_IF_EXCEPTION(throwScope, { });
&gt; +
&gt; +    RELEASE_AND_RETURN(throwScope, JSValue::encode(memoryType));

Do,

RELEASE_AND_RETURN(throwScope, JSValue::encode(memory-&gt;type(globalObject)));

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp:178
&gt; +    JSObject* tableType = table-&gt;type(globalObject);
&gt; +    return JSValue::encode(tableType);

Do

RELEASE_AND_RETURN(throwScope, JSValue::encode(table-&gt;type(globalObject)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735774</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 04:29:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/75030783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738436</commentid>
    <comment_count>5</comment_count>
      <attachid>422927</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-11 06:55:17 -0800</bug_when>
    <thetext>Created attachment 422927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739927</commentid>
    <comment_count>6</comment_count>
      <attachid>423326</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-16 07:24:28 -0700</bug_when>
    <thetext>Created attachment 423326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739975</commentid>
    <comment_count>7</comment_count>
      <attachid>423340</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-16 09:41:05 -0700</bug_when>
    <thetext>Created attachment 423340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740416</commentid>
    <comment_count>8</comment_count>
    <who name="">jtallon</who>
    <bug_when>2021-03-16 23:40:23 -0700</bug_when>
    <thetext>This is ready for review. I saw that some windows tests are failing but taking a look at the crashed test I don&apos;t think it&apos;s related to my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740467</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-17 00:36:48 -0700</bug_when>
    <thetext>(In reply to jtallon from comment #8)
&gt; This is ready for review. I saw that some windows tests are failing but
&gt; taking a look at the crashed test I don&apos;t think it&apos;s related to my patch.

Could you set r? for the patch requesting the review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740677</commentid>
    <comment_count>10</comment_count>
      <attachid>423340</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-03-17 05:39:43 -0700</bug_when>
    <thetext>Comment on attachment 423340
Patch

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

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:139
&gt; +    JSObject* result = constructEmptyObject(globalObject, globalObject-&gt;objectPrototype(), 2);

We are setting `inlineCapacity` to 2 here, but there are cases where we will potentially have 3 properties. This will make such object allocate a butterfly when we have the third property, increasing the amount of memory we use for this object, and slowing down the access of such property (because it will be stored inside the butterfly). Since `maximum` property is conditional, I think we could move the creation of `result` after we know if  it will be included or not.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:133
&gt; +    JSObject* result = constructEmptyObject(globalObject, globalObject-&gt;objectPrototype(), 3);

Ditto here. But in this case we are setting 3 while we don&apos;t know if `maximum` is going to be present. In such situation, we are allocating some space that might be useless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741173</commentid>
    <comment_count>11</comment_count>
      <attachid>423589</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-18 05:19:40 -0700</bug_when>
    <thetext>Created attachment 423589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741191</commentid>
    <comment_count>12</comment_count>
      <attachid>423589</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-03-18 06:54:45 -0700</bug_when>
    <thetext>Comment on attachment 423589
Patch

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

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:143
&gt; +    auto maximum = m_table-&gt;maximum();

I have a legit question. Is there any reason why `JSWebAssemblyMemory::maximum` can throw, but `JSWebAssemblyTable::maximum` doesn&apos;t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741246</commentid>
    <comment_count>13</comment_count>
      <attachid>423589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-18 10:28:36 -0700</bug_when>
    <thetext>Comment on attachment 423589
Patch

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

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:140
&gt; +    RETURN_IF_EXCEPTION(throwScope, { });

Yes, this will not throw an error. Let&apos;s remove it.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:143
&gt; +    RETURN_IF_EXCEPTION(throwScope, { });

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744102</commentid>
    <comment_count>14</comment_count>
      <attachid>424329</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-26 01:55:46 -0700</bug_when>
    <thetext>Created attachment 424329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744713</commentid>
    <comment_count>15</comment_count>
      <attachid>424533</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-29 09:14:47 -0700</bug_when>
    <thetext>Created attachment 424533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745061</commentid>
    <comment_count>16</comment_count>
      <attachid>424625</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-30 01:46:25 -0700</bug_when>
    <thetext>Created attachment 424625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745545</commentid>
    <comment_count>17</comment_count>
      <attachid>424625</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-31 01:08:48 -0700</bug_when>
    <thetext>Comment on attachment 424625
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp:96
&gt; +    result-&gt;putDirect(vm, Identifier::fromString(vm, &quot;mutable&quot;), jsBoolean(isMutable));

Use

result-&gt;putDirect(vm, Identifier::fromString(vm, &quot;mutable&quot;), jsBoolean(m_global-&gt;mutability() == Wasm::GlobalInformation::Mutable));

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp:98
&gt; +    Wasm::Type value = m_global-&gt;type();

valueType would be better.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp:99
&gt; +    JSString* valueStr = nullptr;

Use `valueString`.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:154
&gt; +    Wasm::MemorySharingMode shared = m_memory-&gt;sharingMode();
&gt; +    if (shared == Wasm::MemorySharingMode::Default)
&gt; +        result-&gt;putDirect(vm, Identifier::fromString(vm, &quot;shared&quot;), jsBoolean(false));
&gt; +    else
&gt; +        result-&gt;putDirect(vm, Identifier::fromString(vm, &quot;shared&quot;), jsBoolean(true));

Make it,

result-&gt;putDirect(vm, Identifier::fromString(vm, &quot;shared&quot;), jsBoolean(m_memory-&gt;sharingMode() == Wasm::MemorySharingMode::Shared));

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:134
&gt; +    JSString* elementStr = nullptr;

Use `elementString` instead. We like non-abbreviated names.

&gt; Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:138
&gt; +        elementStr = jsNontrivialString(vm, &quot;externref&quot;);

Let&apos;s make it switch to list things in a readable way.

JSString* elementString = nullptr;
switch (element) {
case Wasm::TableElementType::Funcref:
    elementString = jsNontrivialString(vm, &quot;funcref&quot;);
    break;
case Wasm::TableElementType::Externref:
    elementString = jsNontrivialString(vm, &quot;externref&quot;);
    break;
default:
    RELEASE_ASSERT_NOT_REACHED();
    break;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745595</commentid>
    <comment_count>18</comment_count>
      <attachid>424758</attachid>
    <who name="">jtallon</who>
    <bug_when>2021-03-31 05:35:35 -0700</bug_when>
    <thetext>Created attachment 424758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746659</commentid>
    <comment_count>19</comment_count>
      <attachid>424758</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-02 14:05:16 -0700</bug_when>
    <thetext>Comment on attachment 424758
Patch

r=me, nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746663</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-02 14:10:34 -0700</bug_when>
    <thetext>Committed r275438: &lt;https://commits.webkit.org/r275438&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424758.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421514</attachid>
            <date>2021-02-25 04:42:25 -0800</date>
            <delta_ts>2021-03-11 06:55:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210225134223.patch</filename>
            <type>text/plain</type>
            <size>33490</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NzNmODQ1ZThhNjM0ZDRjZDJiYWIxMzJlZDNiYWU0YmM0MmExOGY3Li4zYmI0YWY4OWIzY2U2NjQ5
NzgxODM2YzA0MzZiZGY1MjA4NmRlNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMi0yNSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDItMjQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4K
IAogICAgICAgICBOdWxsIGNoZWNrIEFycmF5QnVmZmVyVmlldyBSZWZQdHIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKaW5k
ZXggYjdiOGEwNTA3NWY2NGU3MmZkMzc2MzU3ZThiYzdlOTJhOWE4MTIxMS4uZTg3NWRkN2QwZDc5
MzY0MTViNWVhOTZiZGU0YTFjZGQ2M2YxMmI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlHbG9iYWwu
aCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogCkBAIC04MSw2ICs4Miw0MiBAQCB2b2lkIEpTV2ViQXNzZW1ibHlHbG9iYWw6OnZpc2l0
Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKICAgICB0aGlzT2Jq
ZWN0LT5nbG9iYWwoKS0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiB9CiAKK0pTT2JqZWN0KiBK
U1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgSlNPYmplY3QqIHJlc3Vs
dCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSwgMik7CisKKyAgICBib29sIGlzTXV0YWJsZTsKKyAgICBpZiAobV9nbG9i
YWwtPm11dGFiaWxpdHkoKSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6TXV0YWJsZSkKKyAg
ICAgICAgaXNNdXRhYmxlID0gdHJ1ZTsKKyAgICBlbHNlCisgICAgICAgIGlzTXV0YWJsZSA9IGZh
bHNlOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAibXV0YWJsZSIpLCBqc0Jvb2xlYW4oaXNNdXRhYmxlKSk7CisKKyAgICBXYXNtOjpUeXBlIHZh
bHVlID0gbV9nbG9iYWwtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogdmFsdWVTdHIgPSBudWxscHRy
OworICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIFdhc206OlR5cGU6OkkzMjoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpMzIiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlOjpJNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250
cml2aWFsU3RyaW5nKHZtLCAiaTY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6
VHlwZTo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImYz
MiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGU6OkY2NDoKKyAgICAgICAg
dmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmNjQiKTsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJ2YWx1ZSIpLCB2YWx1ZVN0cik7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBERUZJTkVf
VklTSVRfQ0hJTERSRU4oSlNXZWJBc3NlbWJseUdsb2JhbCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUdsb2JhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCmluZGV4IDU1MmFlMDVhMGY0YTlkODM1YWRlMGY5ZTBmZDk0ZGNlOTUxYjdjOTkuLjc0
MmZiZTA4ZDQyMzQzMTc4ZDJmNTk5MDFhZTQ0OGI1ZWVmM2NlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmgKQEAgLTU1LDYg
KzU1LDcgQEAgcHVibGljOgogICAgIERFQ0xBUkVfSU5GTzsKIAogICAgIFdhc206Okdsb2JhbCog
Z2xvYmFsKCkgeyByZXR1cm4gbV9nbG9iYWwucHRyKCk7IH0KKyAgICBKU09iamVjdCogdHlwZShK
U0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgogICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwoVk0m
LCBTdHJ1Y3R1cmUqLCBSZWY8V2FzbTo6R2xvYmFsPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKaW5kZXggMTQ1ZWU3
ODM4ZGNlZmVmNjhhZTk5NDllZjdmN2E4YWYyNDhjMWVhNi4uMzkzMTRkMTQzYjE1MmY0Y2Q0YzIy
OTgxYzBkODhlYTE3N2YzMDEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAKQEAgLTEzMSw2ICsxMzEsMjYgQEAgV2Fz
bTo6UGFnZUNvdW50IEpTV2ViQXNzZW1ibHlNZW1vcnk6Omdyb3coVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBncm93bi52YWx1ZSgpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTT2JqZWN0KiByZXN1bHQg
PSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCksIDIpOworCisgICAgV2FzbTo6UGFnZUNvdW50IG1pbmltdW0gPSBtX21lbW9y
eS0+aW5pdGlhbCgpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsK
KyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1p
bmltdW0iKSwganNOdW1iZXIobWluaW11bS5wYWdlQ291bnQoKSkpOworCisgICAgV2FzbTo6UGFn
ZUNvdW50IG1heGltdW0gPSBtX21lbW9yeS0+bWF4aW11bSgpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICBpZiAobWF4aW11bS5pc1ZhbGlkKCkpCisgICAg
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWF4
aW11bSIpLCBqc051bWJlcihtYXhpbXVtLnBhZ2VDb3VudCgpKSk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisKIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9yeTo6Z3Jvd1N1Y2Nlc3NDYWxsYmFj
ayhWTSYgdm0sIFdhc206OlBhZ2VDb3VudCBvbGRQYWdlQ291bnQsIFdhc206OlBhZ2VDb3VudCBu
ZXdQYWdlQ291bnQpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBjbGVhciBvdXQgdGhlIG9sZCBhcnJh
eSBidWZmZXIgYmVjYXVzZSBpdCBtaWdodCBub3cgYmUgcG9pbnRpbmcgdG8gc3RhbGUgbWVtb3J5
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1l
bW9yeS5oCmluZGV4IDM2MzgwM2VlNTQwZDlmNGFjNDQ0OThkMTM4ODY5NjAwNGUwZGQ4MWQuLmZm
NGJhOWJjZWU1NDczM2MxZjE3NGU2NzQxYjg1MTE4MzgwODA3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKQEAgLTYwLDYg
KzYwLDggQEAgcHVibGljOgogICAgIFdhc206OlBhZ2VDb3VudCBncm93KFZNJiwgSlNHbG9iYWxP
YmplY3QqLCB1aW50MzJfdCBkZWx0YSk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBncm93
U3VjY2Vzc0NhbGxiYWNrKFZNJiwgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6
UGFnZUNvdW50IG5ld1BhZ2VDb3VudCk7CiAKKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9i
amVjdCopOworCiBwcml2YXRlOgogICAgIEpTV2ViQXNzZW1ibHlNZW1vcnkoVk0mLCBTdHJ1Y3R1
cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcAppbmRleCBhYTgzNmFl
ZDRkMjlhODNkYTk4MmUwNGFjMzYxZGEwYjM5ZjRiYzYxLi5iNDQ4OTU5NTcxZjQwYmI0M2ZjZDgy
ZmRiZWI4ZjdhOTdmMmZlYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKQEAgLTEyNiw2ICsxMjYsMzAgQEAgdm9pZCBK
U1dlYkFzc2VtYmx5VGFibGU6OmNsZWFyKHVpbnQzMl90IGluZGV4KQogICAgIG1fdGFibGUtPmNs
ZWFyKGluZGV4KTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlUYWJsZTo6dHlwZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDMpOworCisgICAgV2Fz
bTo6VGFibGVFbGVtZW50VHlwZSBlbGVtZW50ID0gbV90YWJsZS0+dHlwZSgpOworICAgIEpTU3Ry
aW5nKiBlbGVtZW50U3RyID0gbnVsbHB0cjsKKyAgICBpZiAoZWxlbWVudCA9PSBXYXNtOjpUYWJs
ZUVsZW1lbnRUeXBlOjpGdW5jcmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2aWFs
U3RyaW5nKHZtLCAiZnVuY3JlZiIpOworICAgIGVsc2UgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFi
bGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2
aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJlbGVtZW50IiksIGVsZW1lbnRTdHIpOworCisKKyAg
ICB1aW50MzJfdCBtaW5pbXVtID0gbV90YWJsZS0+bGVuZ3RoKCk7CisgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVy
KG1pbmltdW0pKTsKKworICAgIGF1dG8gbWF4aW11bSA9IG1fdGFibGUtPm1heGltdW0oKTsKKyAg
ICBpZiAobWF4aW11bSkKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJtYXhpbXVtIiksIGpzTnVtYmVyKCptYXhpbXVtKSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5VGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlUYWJsZS5oCmluZGV4IGQwNjkzNzg2ZmIzMzE4NGQ2NTQ2ZmQzZmJlYjRkNWVhNDA4
MjQ3MzAuLmZkNTlmMjI0NGZjZTE3MGQ1MDdkOWFmM2YxZWJjMzkxNGQ1ODBjMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCkBA
IC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldCh1aW50MzJfdCwgV2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24qKTsKICAgICB2b2lkIHNldCh1aW50MzJfdCwgSlNWYWx1ZSk7CiAg
ICAgdm9pZCBjbGVhcih1aW50MzJfdCk7CisgICAgSlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmpl
Y3QqKTsKIAogICAgIFdhc206OlRhYmxlKiB0YWJsZSgpIHsgcmV0dXJuIG1fdGFibGUucHRyKCk7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCmluZGV4IGJlODExNDgwZTczYzIyZDA4OTdlOTVl
Y2IxMTg1ZTUyNWIyMjdlZWMuLjBmMzY3OWQzYWJkNjE0YTkyZDJiNGRlYjYzM2M4YjFjMTVkODNl
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
R2xvYmFsUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2Jh
bFByb3RvRnVuY1ZhbHVlT2YpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2Vi
QXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5j
VHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5sdXQuaCIK
QEAgLTQ5LDYgKzUwLDggQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5HbG9iYWwiLCAmQmEKIC8qIFNvdXJjZSBmb3Ig
V2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgKICBAYmVnaW4gcHJvdG90eXBlR2xvYmFs
V2ViQXNzZW1ibHlHbG9iYWwKICB2YWx1ZU9mIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFs
dWVPZiBGdW5jdGlvbiAwCisgdHlwZSAgICB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUg
ICAgRnVuY3Rpb24gMAorCiAgQGVuZAogICovCiAKQEAgLTc2LDYgKzc5LDE3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YsIChKU0ds
b2JhbE9iamVjdCogZ2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZShnbG9iYWwtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorewor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2Jh
bCA9IGdldEdsb2JhbChnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPnR5cGUoZ2xvYmFsT2JqZWN0KSk7
Cit9CisKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0
dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFBy
b3RvdHlwZS5oCmluZGV4IGFjNWJlOGEwY2VhYTJkY2NiYmMzYTcwYjc2YzFkNDE3ZTA5YTg4NmQu
LjcwMzY4YjZkYjRhMjgyM2FkMGU4MTg4YTlmMjRkOGRlNDA4OWMwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90
b3R5cGUuaApAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAK
KyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIFdl
YkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAK
aW5kZXggN2UyMDhjMzEwMWMyMzcxNjMyMjljYzU3OTI3YWVhNmI4ZjBiMjVlMC4uNjg1NDhiYzFm
ODJjMjgyYTY0MzhjN2E5MTJiODk2ZDdkZjE2MjY1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNw
cApAQCAtNDAsNiArNDAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3cpOwogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90
b0Z1bmNUeXBlKTsKIH0KIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1
dC5oIgpAQCAtNTMsNiArNTQsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlNZW1vcnlQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5Lk1lbW9yeSIsICZCYQogQGJlZ2luIHBy
b3RvdHlwZVRhYmxlV2ViQXNzZW1ibHlNZW1vcnkKICBncm93ICAgd2ViQXNzZW1ibHlNZW1vcnlQ
cm90b0Z1bmNHcm93ICAgRnVuY3Rpb24gMQogIGJ1ZmZlciB3ZWJBc3NlbWJseU1lbW9yeVByb3Rv
RnVuY0J1ZmZlciBBY2Nlc3NvciAwCisgdHlwZSAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
VHlwZSAgIEZ1bmN0aW9uIDAKIEBlbmQKICovCiAKQEAgLTk2LDYgKzk4LDIxIEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZShtZW1vcnktPmJ1ZmZlcihnbG9iYWxPYmplY3QpKSk7CiB9CiAKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseU1lbW9yeSogbWVtb3J5ID0gZ2V0
TWVtb3J5KGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKworICAgIEpTT2JqZWN0KiBtZW1v
cnlUeXBlID0gbWVtb3J5LT50eXBlKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTih0aHJvd1Njb3BlLCB7IH0pOworCisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShtZW1vcnlUeXBlKSk7Cit9CisKKwogV2ViQXNzZW1ibHlNZW1v
cnlQcm90b3R5cGUqIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSogc3RydWN0dXJlKQogewogICAgIGF1dG8qIG9iamVj
dCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
Pih2bS5oZWFwKSkgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
VGFibGVQcm90b3R5cGUuY3BwCmluZGV4IDI1MTMwOTJlMzk2ZGJiMDIzNDJiNjQwNDdjN2Y1Y2Uy
MTRjN2Y2MTUuLjg4MDBhMGU4ZjBlM2IyNzcxOWRjOWQwYjU5MzIyNzkwMWJjNGEzZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
VGFibGVQcm90b3R5cGUuY3BwCkBAIC00MSw2ICs0MSw3IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgpOwogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dyb3cpOwog
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVu
Y0dldCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxl
UHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5VGFibGVQcm90b0Z1bmNUeXBlKTsKIH0KIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5VGFibGVQ
cm90b3R5cGUubHV0LmgiCkBAIC01NSw2ICs1Niw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5UYWJsZSIsICZCYXNl
CiAgZ3JvdyAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93ICAgRnVuY3Rpb24gMQogIGdl
dCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0ICAgIEZ1bmN0aW9uIDEKICBzZXQgICAg
d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCAgICBGdW5jdGlvbiAyCisgdHlwZSAgIHdlYkFz
c2VtYmx5VGFibGVQcm90b0Z1bmNUeXBlICAgRnVuY3Rpb24gMAogIEBlbmQKICAqLwogCkBAIC0x
NjQsNiArMTY2LDE4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxl
UHJvdG9GdW5jU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgIEpTV2ViQXNzZW1ibHlUYWJsZSogdGFibGUgPSBnZXRUYWJsZShnbG9iYWxPYmplY3Qs
IHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgSlNPYmplY3QqIHRhYmxlVHlwZSA9
IHRhYmxlLT50eXBlKGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
YWJsZVR5cGUpOworfQorCiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlKiBXZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogewogICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggZjlmZDZkZmMzNzVmYTMzYTY2YmM3Y2E1MmUwYTgwOGYwYTE4ODZkZi4uMjRkN2EyNzM1ZmJl
MzJiMzQ0MGMwZDdlMGVkZWJiNzZjMGQyMThkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDItMjUgIEplc3NpY2EgVGFsbG9uICA8anRhbGxv
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFVwZGF0ZSB3YXNtIEpTLUFQSSB0ZXN0cyBmb3IgdGhl
IHR5cGUgbWV0aG9kIHRvIGxhdGVzdCB1cHN0cmVhbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB1cHN0cmVhbSB0ZXN0cyBoYXMgcmVjZW50bHkg
YWRkZWQgYSB0ZXN0IGZvciB0aGUgdGFibGUgdHlwZSBtZXRob2QgYW5kCisgICAgICAgIHVwZGF0
ZWQgdGhlIG90aGVyIHR5cGUgdGVzdHMgdG8gbWV0aG9kcyB0byBrZWVwIHVwIHdpdGggYSByZWNl
bnQgc3BlYyBjaGFuZ2UuCisgICAgICAgIFRoaXMgYWRkcyB0aG9zZSB1cGRhdGVkIHRlc3RzIGFz
IHdlbGwgYXMgbm93IGV4cGVjdGF0aW9ucyB0aGV5IHBhc3MuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNzZXJ0X3R5cGUpOgorICAgICAgICAoc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanM6CisgICAgICAgIChhc3NlcnRfdHlw
ZSk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUu
dGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTI0ICBJbWFub2wg
RmVybmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBX
ZWJYUiBnZXRWaWV3cG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGRj
ZjZiOTkxM2YxMDZmM2Y2M2M3ZmQ4MDhiYzMyMmYxNDUyYjliZWUuLmJkNTVmYmEwNThkN2Q0Zjky
ZTI1NzAzODRhZmU3NWMwNTNmYjcwMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUu
YW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50
eHQKQEAgLTEsMTUgKzEsMTUgQEAKIAotRkFJTCBpMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpMzIs
IGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9i
YWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgaW1tdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgZjMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBpbW11dGFibGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUn
KQotRkFJTCBmNjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmNjQsIGltbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGFueXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
bXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwg
ZnVuY3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
bXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGtleSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2Jq
ZWN0LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQorUEFTUyBpMzIsIG11dGFi
bGUKK1BBU1MgaTMyLCBpbW11dGFibGUKK1BBU1MgaTY0LCBtdXRhYmxlCitQQVNTIGk2NCwgaW1t
dXRhYmxlCitQQVNTIGYzMiwgbXV0YWJsZQorUEFTUyBmMzIsIGltbXV0YWJsZQorUEFTUyBmNjQs
IG11dGFibGUKK1BBU1MgZjY0LCBpbW11dGFibGUKK1BBU1MgYW55cmVmLCBtdXRhYmxlIHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykK
K1BBU1MgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQorUEFTUyBmdW5jcmVmLCBtdXRhYmxlIHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykK
K1BBU1MgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BBU1Mga2V5IG9yZGVyaW5nIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l
cyhteWdsb2JhbC50eXBlKScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKaW5kZXggMzE4YjFhYzU3OGNhYzYwNTFl
YTIzZWNmYmI2NTI1ZmZmYjMyNTUwMS4uYTFjZmFlOTBkYjk0N2YzNDI4NjQ1MTYyNjI3OWE1NjI0
MjU2MDE5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2Jh
bC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKQEAgLTMsOSArMywxMCBAQAogCiBmdW5jdGlvbiBhc3Nl
cnRfdHlwZShhcmd1bWVudCkgewogICAgIGNvbnN0IG15Z2xvYmFsID0gbmV3IFdlYkFzc2VtYmx5
Lkdsb2JhbChhcmd1bWVudCk7CisgICAgY29uc3QgZ2xvYmFsdHlwZSA9IG15Z2xvYmFsLnR5cGUo
KTsKIAotICAgIGFzc2VydF9lcXVhbHMobXlnbG9iYWwudHlwZS52YWx1ZSwgYXJndW1lbnQudmFs
dWUpOwotICAgIGFzc2VydF9lcXVhbHMobXlnbG9iYWwudHlwZS5tdXRhYmxlLCBhcmd1bWVudC5t
dXRhYmxlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbHR5cGUudmFsdWUsIGFyZ3VtZW50LnZh
bHVlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbHR5cGUubXV0YWJsZSwgYXJndW1lbnQubXV0
YWJsZSk7CiB9CiAKIHRlc3QoKCkgPT4gewpAQCAtNTgsNyArNTksNyBAQCB0ZXN0KCgpID0+IHsK
IAogdGVzdCgoKSA9PiB7CiAgICAgY29uc3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xv
YmFsKHsidmFsdWUiOiAiaTMyIiwgIm11dGFibGUiOiB0cnVlfSk7Ci0gICAgY29uc3QgcHJvcGVy
dHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpOworICAg
IGNvbnN0IHByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2Jh
bC50eXBlKCkpOwogICAgIGFzc2VydF9lcXVhbHMocHJvcGVydHlOYW1lc1swXSwgIm11dGFibGUi
KTsKICAgICBhc3NlcnRfZXF1YWxzKHByb3BlcnR5TmFtZXNbMV0sICJ2YWx1ZSIpOwogfSwgImtl
eSBvcmRlcmluZyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggZGNmNmI5OTEzZjEwNmYzZjYzYzdmZDgwOGJjMzIyZjE0NTJiOWJlZS4uYmQ1NWZi
YTA1OGQ3ZDRmOTJlMjU3MDM4NGFmZTc1YzA1M2ZiNzAyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBl
LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMy
LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2Jh
bC50eXBlLnZhbHVlJykKLUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFi
bGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUu
dmFsdWUnKQotRkFJTCBpNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScp
Ci1GQUlMIGYzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwg
ZjY0LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnly
ZWYsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5j
cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFs
LnR5cGUpJykKK1BBU1MgaTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2
NCwgbXV0YWJsZQorUEFTUyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1Mg
ZjMyLCBpbW11dGFibGUKK1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQ
QVNTIGFueXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCitQQVNTIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BB
U1MgZnVuY3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCitQQVNTIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCitQ
QVNTIGtleSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
bWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS1leHBlY3RlZC50eHQKaW5kZXggNDkyZmQzNjRkYzAwOWM2MmEwMzU5NmIxNjU3MDEw
ZGE5YTI2MjFmNS4uZTJjZWYzNTg5YjVmMzEwMWIzMWNhZGRjMzdkOWIyYWQ4OWI1ZWJmYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBa
ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb24temVybyBpbml0aWFsLCBubyBt
YXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlw
ZS5taW5pbXVtJykKLUZBSUwgWmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uZS16ZXJvIG1heGlt
dW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQotRkFJTCBub24tc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIHNoYXJlZCBtZW1vcnkg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmlt
dW0nKQorUEFTUyBaZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQorUEFTUyBOb24temVybyBp
bml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgTm9u
ZS16ZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21l
bW9yeS50eXBlLm1pbmltdW0nKQorUEFTUyBub24tc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIHNo
YXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9y
eS50eXBlLm1pbmltdW0nKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzCmluZGV4IGVmZTllMmEzN2RlYjdiYjZlZjg0
MWU5ODA5ZWVlNzgxYzllZmZiOWYuLmE5NmEzMjI3YWRjYTdmZjA5ZGU3NWU1ZjdjNDEyYWI5NWIw
ZDUwM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0zLDExICszLDEyIEBACiAKIGZ1bmN0aW9uIGFzc2Vy
dF90eXBlKGFyZ3VtZW50KSB7CiAgICAgY29uc3QgbWVtb3J5ID0gbmV3IFdlYkFzc2VtYmx5Lk1l
bW9yeShhcmd1bWVudCk7CisgICAgY29uc3QgbWVtb3J5dHlwZSA9IG1lbW9yeS50eXBlKCkKIAot
ICAgIGFzc2VydF9lcXVhbHMobWVtb3J5LnR5cGUubWluaW11bSwgYXJndW1lbnQubWluaW11bSk7
Ci0gICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5tYXhpbXVtLCBhcmd1bWVudC5tYXhpbXVt
KTsKKyAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUubWluaW11bSwgYXJndW1lbnQubWluaW11
bSk7CisgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLm1heGltdW0sIGFyZ3VtZW50Lm1heGlt
dW0pOwogICAgIGlmIChhcmd1bWVudC5zaGFyZWQgIT09IHVuZGVmaW5lZCkgewotICAgICAgICBh
c3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLnNoYXJlZCwgYXJndW1lbnQuc2hhcmVkKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLnNoYXJlZCwgYXJndW1lbnQuc2hhcmVkKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ5MmZkMzY0ZGMwMDljNjJhMDM1OTZiMTY1NzAxMGRhOWEyNjIxZjUuLmUyY2VmMzU4OWI1
ZjMxMDFiMzFjYWRkYzM3ZDliMmFkODliNWViZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBaZXJvIGluaXRp
YWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21l
bW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVt
JykKLUZBSUwgWmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uZS16ZXJvIG1heGltdW0gdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQot
RkFJTCBub24tc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIHNoYXJlZCBtZW1vcnkgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQorUEFT
UyBaZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQorUEFTUyBOb24temVybyBpbml0aWFsLCBu
byBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnku
dHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgTm9uZS16ZXJvIG1h
eGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBl
Lm1pbmltdW0nKQorUEFTUyBub24tc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIHNoYXJlZCBtZW1v
cnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMTM0
MDJhMjYxMDQzM2JjMjdkMjliNzZjNGExMzk1NTkyZmU3YjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFi
bGUvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFT
UyBaZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4
aW11bQorUEFTUyBaZXJvIG1heGltdW0KK1BBU1MgTm9uZS16ZXJvIG1heGltdW0KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFu
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0bWwKQEAgLTAs
MCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90
eXBlLnRlbnRhdGl2ZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExMzBlMGFkMDI5YzUyZjc4MWM5M2Jk
YWJmZTYwNzc3YzY0MWQ0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5h
bnkuanMKQEAgLTAsMCArMSwyNiBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyxkZWRpY2F0ZWR3
b3JrZXIsanNzaGVsbAorLy8gTUVUQTogc2NyaXB0PS93YXNtL2pzYXBpL2Fzc2VydGlvbnMuanMK
KworZnVuY3Rpb24gYXNzZXJ0X3R5cGUoYXJndW1lbnQpIHsKKyAgICBjb25zdCBteXRhYmxlID0g
bmV3IFdlYkFzc2VtYmx5LlRhYmxlKGFyZ3VtZW50KTsKKyAgICBjb25zdCB0YWJsZXR5cGUgPSBt
eXRhYmxlLnR5cGUoKQorICAgIGFzc2VydF9lcXVhbHModGFibGV0eXBlLm1pbmltdW0sIGFyZ3Vt
ZW50Lm1pbmltdW0pOworICAgIGFzc2VydF9lcXVhbHModGFibGV0eXBlLm1heGltdW0sIGFyZ3Vt
ZW50Lm1heGltdW0pOworICAgIGFzc2VydF9lcXVhbHModGFibGV0eXBlLmVsZW1lbnQsIGFyZ3Vt
ZW50LmVsZW1lbnQpOworfQorCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5p
bXVtIjogMCwgImVsZW1lbnQiOiAiZnVuY3JlZiJ9KTsKK30sICJaZXJvIGluaXRpYWwsIG5vIG1h
eGltdW0iKTsKKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDUs
ICJlbGVtZW50IjogImZ1bmNyZWYiIH0pOworfSwgIk5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGlt
dW0iKTsKKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAsICJt
YXhpbXVtIjogMCwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAiWmVybyBtYXhpbXVtIik7
CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAwLCAibWF4aW11
bSI6IDUsICJlbGVtZW50IjogImZ1bmNyZWYiIH0pOworfSwgIk5vbmUtemVybyBtYXhpbXVtIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
dGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGIxMzQwMmEyNjEwNDMzYmMyN2QyOWI3NmM0YTEzOTU1OTJmZTdiMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKKworUEFTUyBaZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgTm9uLXplcm8gaW5p
dGlhbCwgbm8gbWF4aW11bQorUEFTUyBaZXJvIG1heGltdW0KK1BBU1MgTm9uZS16ZXJvIG1heGlt
dW0KKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCAzMzhiMWNmYTI5NTNlNWY3NGVmYWU3MWI4YzlkNzFkMzQxNDc2ZjNjLi41MzIyMTQxYmMx
NGI3ZDU3ZjJmNDI4ZTVhMDNmMWM5ODlhNGYwNTQ3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTI1
ICBKZXNzaWNhIFRhbGxvbiAgPGp0YWxsb25AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgdGVz
dHMgZm9yIHRoZSBuZXcgdHlwZSBtZXRob2Qgb24gY2VydGFpbiBKUy1BUEkgd2FzbSBvYmplY3Rz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNt
L2pzLWFwaS9nbG9iYWwuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0LnRocm93cyk6CisgICAg
ICAgICogd2FzbS9qcy1hcGkvdGFibGUuanM6CisgICAgICAgIChhc3NlcnQudHJ1dGh5KToKKyAg
ICAgICAgKiB3YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qczoKKwogMjAyMS0wMi0yMyAgTWljaGFl
bCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBbWUFSUiBKSVRdIENyYXNo
IG9uIG92ZXJmbG93IHdoZW4gY29tcGlsaW5nIC8oYXsxMDAwMDAwMDAwfWJ7MTAwMDAwMDAwMH18
Y3sxMDAwMDAwMDAwfXwpZHsxMDAwMDAwMDAwfWV7MTAwMDAwMDAwMH0vLnRlc3QoKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFw
aS9nbG9iYWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDEwMTMxODI5NTUxZWJlMmQzZTRlMGU5M2I3ZDg4NTA1
YWM4YzU2YwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpz
CkBAIC0wLDAgKzEsMjkgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMn
OworeworICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCBnID0gbmV3IFdl
YkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBmYWxzZX0pOworICAgICAg
ICBnLnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8IHZh
bHVlIHRvIGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5Lkdsb2JhbCIpOworCisgICAgY29u
c3QgaTMyID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBm
YWxzZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMoaTMyKS5sZW5ndGgsIDIp
OworICAgIGFzc2VydC5lcShpMzIudmFsdWUsICJpMzIiKTsKKyAgICBhc3NlcnQuZXEoaTMyLm11
dGFibGUsIGZhbHNlKTsKKworICAgIGNvbnN0IGkzMm0gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFs
KHt2YWx1ZTogImkzMiIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGkz
Mm0udmFsdWUsICJpMzIiKTsKKyAgICBhc3NlcnQuZXEoaTMybS5tdXRhYmxlLCB0cnVlKTsKKwor
ICAgIGNvbnN0IGk2NCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTY0IiwgbXV0
YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoaTY0LnZhbHVlLCAiaTY0Iik7CisK
KyAgICBjb25zdCBmMzIgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImYzMiIsIG11
dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGYzMi52YWx1ZSwgImYzMiIpOwor
CisgICAgY29uc3QgZjY0ID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmNjQiLCBt
dXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShmNjQudmFsdWUsICJmNjQiKTsK
KworICAgIGNvbnN0IGY2NG4gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKGY2NCkudHlwZSgpOwor
ICAgIGFzc2VydC5lcShmNjQudmFsdWUsIGY2NG4udmFsdWUpOworICAgIGFzc2VydC5lcShmNjQu
bXV0YWJsZSwgZjY0bi5tdXRhYmxlKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzIGIvSlNUZXN0cy93YXNtL2pz
LWFwaS90YWJsZS5qcwppbmRleCBkYjc4NzhmMGNhMjNkYzllMWYxOTYyYThmNTY1NjcwNjk4OGUw
MmRmLi44MDA0ZTY3ZTcyZWVkN2E4ZGMzZmJiZDI5YTNhZGIyNjk3ZTA3YzdhIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkv
dGFibGUuanMKQEAgLTM5MCwzICszOTAsMzMgQEAgYXNzZXJ0LnRocm93cygoKSA9PiBXZWJBc3Nl
bWJseS5UYWJsZS5wcm90b3R5cGUuZ3Jvdyh1bmRlZmluZWQpLCBUeXBlRXJyb3IsIGBleHAKICAg
ICB9CiAgICAgYXNzZXJ0LnRydXRoeSh0aHJldyk7CiB9CisKK3sKKyAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKKyAgICAgICAgY29uc3QgdCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11
bTogNSwgZWxlbWVudDogImZ1bmNyZWYifSk7CisgICAgICAgIHQudHlwZS5jYWxsKHt9KTsKKyAg
ICB9LCBUeXBlRXJyb3IsICJleHBlY3RlZCB8dGhpc3wgdmFsdWUgdG8gYmUgYW4gaW5zdGFuY2Ug
b2YgV2ViQXNzZW1ibHkuVGFibGUiKTsKKworICAgIGNvbnN0IHQwID0gbmV3IFdlYkFzc2VtYmx5
LlRhYmxlKHttaW5pbXVtOiA1LCBlbGVtZW50OiAiZnVuY3JlZiJ9KS50eXBlKCk7CisgICAgYXNz
ZXJ0LmVxKE9iamVjdC5rZXlzKHQwKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcSh0MC5taW5p
bXVtLCA1KTsKKyAgICBhc3NlcnQuZXEodDAuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNv
bnN0IHQxID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwg
ZWxlbWVudDogImZ1bmNyZWYifSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0
MSkubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXEodDEubWluaW11bSwgNSk7CisgICAgYXNzZXJ0
LmVxKHQxLm1heGltdW0sIDEwKQorICAgIGFzc2VydC5lcSh0MS5lbGVtZW50LCAiZnVuY3JlZiIp
OworCisgICAgY29uc3QgdDIgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIG1h
eGltdW06IDEwLCBlbGVtZW50OiAiZXh0ZXJucmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEo
T2JqZWN0LmtleXModDIpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIDUp
OworICAgIGFzc2VydC5lcSh0Mi5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVu
dCwgImV4dGVybnJlZiIpOworCisgICAgY29uc3QgdDMgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUo
dDIpLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDIpLmxlbmd0aCwgT2JqZWN0
LmtleXModDMpLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIHQzLm1pbmltdW0p
OworICAgIGFzc2VydC5lcSh0Mi5tYXhpbXVtLCB0My5tYXhpbXVtKQorICAgIGFzc2VydC5lcSh0
Mi5lbGVtZW50LCB0My5lbGVtZW50KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzIGIvSlNUZXN0cy93
YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcwppbmRleCA3MGViZGUyODYyMzJlMTgxZjVlZGNjNTI5
YWQyMGU0ZjZhMTUwOTM1Li5mZDU5ZDQzZGM4OTNjMThjODc1NzcyZjZmODJkZTRlYWMwMWIzYWJj
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanMKQEAgLTM5OSwzICszOTksMjQgQEAgdGVz
dChmdW5jdGlvbigpIHsKICAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5tZW1vcnkuYnVm
ZmVyLmJ5dGVMZW5ndGgsIDIwICogcGFnZVNpemUpOwogICAgIGFzc2VydC50cnV0aHkoaW5zdGFu
Y2UuZXhwb3J0cy5tZW1vcnkgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5NZW1vcnkpOwogfQorCit0
ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25z
dCBtID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7bWluaW11bTo0MCwgbWF4aW11bTogMTAwfSk7
CisgICAgICAgIG0udHlwZS5jYWxsKHt9KTsKKyAgICB9LCBUeXBlRXJyb3IsICJXZWJBc3NlbWJs
eS5NZW1vcnkucHJvdG90eXBlLmJ1ZmZlciBnZXR0ZXIgY2FsbGVkIHdpdGggbm9uIFdlYkFzc2Vt
Ymx5Lk1lbW9yeSB8dGhpc3wgdmFsdWUiKTsKKworICAgIGNvbnN0IG1lbW9yeSA9IG5ldyBXZWJB
c3NlbWJseS5NZW1vcnkoe2luaXRpYWw6IDIwfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlz
KG1lbW9yeS50eXBlKCkpLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeS50eXBlKCku
bWluaW11bSwgMjApOworCisgICAgY29uc3QgbWVtb3J5MiA9IG5ldyBXZWJBc3NlbWJseS5NZW1v
cnkoe21pbmltdW06NDAsIG1heGltdW06IDEwMH0pOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5
cyhtZW1vcnkyLnR5cGUoKSkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBl
KCkubWluaW11bSwgNDApOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCAx
MDApOworCisgICAgY29uc3QgbWVtb3J5MyA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkobWVtb3J5
Mi50eXBlKCkpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkyLnR5cGUoKSkubGVu
Z3RoLCBPYmplY3Qua2V5cyhtZW1vcnkzLnR5cGUoKSkubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXEo
bWVtb3J5Mi50eXBlKCkubWluaW11bSwgbWVtb3J5My50eXBlKCkubWluaW11bSk7CisgICAgYXNz
ZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1heGltdW0sIG1lbW9yeTMudHlwZSgpLm1heGltdW0pOwor
fSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422927</attachid>
            <date>2021-03-11 06:55:17 -0800</date>
            <delta_ts>2021-03-16 07:24:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210311155515.patch</filename>
            <type>text/plain</type>
            <size>34855</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTlmZGFiNThjNTk3OGE4MTIxY2RiYTk3OTUxMzRiMTRhZjJiODQ5Li5jYjM1ODgxOTExMTM4NmFi
NmNkNGRmMDI4MjMxOThiMDVmYzBhNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVh
cCB0b3AKQEAgLTEyNDAsNyArMTI2OSw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bm5lY2Vz
c2FyeSBBU1NFUlQuCiAgICAgICAgIFRoaXMgYXNzZXJ0IGNoZWNrZWQgdGhhdCB0aGUgbWluaW11
bSBzaXplIHdhc24ndCBVSU5UX01BWCB3aGljaCBJIGJlbGlldmUgd2FzCi0gICAgICAgIGludGVu
ZGVkIHRvIG1ha2Ugc3VyZSB0aGUgbWluaW11bSBzaXplIHdhcyBjaGFuZ2VkIHdoaWxlIGNvbXB1
dGluZyB0aGUgIAorICAgICAgICBpbnRlbmRlZCB0byBtYWtlIHN1cmUgdGhlIG1pbmltdW0gc2l6
ZSB3YXMgY2hhbmdlZCB3aGlsZSBjb21wdXRpbmcgdGhlCiAgICAgICAgIGRpc2p1bmN0aW9uJ3Mg
c2l6ZSBhbmQgb2Zmc2V0cy4gIFRob3NlIGNhbGN1bGF0aW9ucyBpbnZvbHZlIGNoZWNrZWQgYXJp
dGhtZXRpYywKICAgICAgICAgd2hpY2ggd291bGQgY2F0Y2ggYW55IG92ZXJmbG93LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlhODEyMTEuLmEzNTk4
NTRkYTQ3M2E5MjkzYzFiMWQ5NTQwZmJkNmIxODc3YWNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDggQEAgdm9pZCBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgYm9vbCBpc011dGFibGU7CisgICAgaWYg
KG1fZ2xvYmFsLT5tdXRhYmlsaXR5KCkgPT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246Ok11dGFi
bGUpCisgICAgICAgIGlzTXV0YWJsZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBpc011dGFi
bGUgPSBmYWxzZTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm11dGFibGUiKSwganNCb29sZWFuKGlzTXV0YWJsZSkpOworCisgICAgV2FzbTo6
VHlwZSB2YWx1ZSA9IG1fZ2xvYmFsLT50eXBlKCk7CisgICAgSlNTdHJpbmcqIHZhbHVlU3RyID0g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiaTMy
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpNjQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImYzMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZjY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRl
cm5yZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwgdmFsdWVTdHIpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlHbG9iYWwpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlHbG9iYWwuaAppbmRleCA1NTJhZTA1YTBmNGE5ZDgzNWFkZTBmOWUwZmQ5
NGRjZTk1MWI3Yzk5Li43NDJmYmUwOGQ0MjM0MzE3OGQyZjU5OTAxYWU0NDhiNWVlZjNjZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xv
YmFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKICAg
ICBXYXNtOjpHbG9iYWwqIGdsb2JhbCgpIHsgcmV0dXJuIG1fZ2xvYmFsLnB0cigpOyB9CisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBKU1dlYkFz
c2VtYmx5R2xvYmFsKFZNJiwgU3RydWN0dXJlKiwgUmVmPFdhc206Okdsb2JhbD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCmluZGV4IDE0NWVlNzgzOGRjZWZlZjY4YWU5OTQ5ZWY3ZjdhOGFmMjQ4YzFlYTYuLmI1ZTNl
MWQ3M2QxNmVlZDY1YmQ1YTljZjNhYjM1MWE0Y2RmOTVlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCkBAIC0xMzEs
NiArMTMxLDMyIEBAIFdhc206OlBhZ2VDb3VudCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZ3Jvd24udmFs
dWUoKTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBK
U09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCAyKTsKKworICAgIFdhc206OlBhZ2VDb3VudCBt
aW5pbXVtID0gbV9tZW1vcnktPmluaXRpYWwoKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIHsgfSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFnZUNvdW50KCkpKTsK
KworICAgIFdhc206OlBhZ2VDb3VudCBtYXhpbXVtID0gbV9tZW1vcnktPm1heGltdW0oKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgaWYgKG1heGltdW0u
aXNWYWxpZCgpKQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgIm1heGltdW0iKSwganNOdW1iZXIobWF4aW11bS5wYWdlQ291bnQoKSkpOwor
CisgICAgV2FzbTo6TWVtb3J5U2hhcmluZ01vZGUgc2hhcmVkID0gbV9tZW1vcnktPnNoYXJpbmdN
b2RlKCk7CisgICAgaWYgKHNoYXJlZCA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVs
dCkKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJzaGFyZWQiKSwganNCb29sZWFuKGZhbHNlKSk7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNoYXJlZCIpLCBq
c0Jvb2xlYW4odHJ1ZSkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCiB2b2lkIEpTV2Vi
QXNzZW1ibHlNZW1vcnk6Omdyb3dTdWNjZXNzQ2FsbGJhY2soVk0mIHZtLCBXYXNtOjpQYWdlQ291
bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KQogewogICAgIC8v
IFdlIG5lZWQgdG8gY2xlYXIgb3V0IHRoZSBvbGQgYXJyYXkgYnVmZmVyIGJlY2F1c2UgaXQgbWln
aHQgbm93IGJlIHBvaW50aW5nIHRvIHN0YWxlIG1lbW9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAppbmRleCAzNjM4MDNlZTU0
MGQ5ZjRhYzQ0NDk4ZDEzODg2OTYwMDRlMGRkODFkLi5mZjRiYTliY2VlNTQ3MzNjMWYxNzRlNjc0
MWI4NTExODM4MDgwNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICBX
YXNtOjpQYWdlQ291bnQgZ3JvdyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgdWludDMyX3QgZGVsdGEp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhWTSYsIFdh
c206OlBhZ2VDb3VudCBvbGRQYWdlQ291bnQsIFdhc206OlBhZ2VDb3VudCBuZXdQYWdlQ291bnQp
OwogCisgICAgSlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAg
ICBKU1dlYkFzc2VtYmx5TWVtb3J5KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlUYWJsZS5jcHAKaW5kZXggYWE4MzZhZWQ0ZDI5YTgzZGE5ODJlMDRhYzM2MWRh
MGIzOWY0YmM2MS4uYjQ0ODk1OTU3MWY0MGJiNDNmY2Q4MmZkYmViOGY3YTk3ZjJmZWE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFi
bGUuY3BwCkBAIC0xMjYsNiArMTI2LDMwIEBAIHZvaWQgSlNXZWJBc3NlbWJseVRhYmxlOjpjbGVh
cih1aW50MzJfdCBpbmRleCkKICAgICBtX3RhYmxlLT5jbGVhcihpbmRleCk7CiB9CiAKK0pTT2Jq
ZWN0KiBKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBKU09iamVjdCog
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpLCAzKTsKKworICAgIFdhc206OlRhYmxlRWxlbWVudFR5cGUgZWxl
bWVudCA9IG1fdGFibGUtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogZWxlbWVudFN0ciA9IG51bGxw
dHI7CisgICAgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50VHlwZTo6RnVuY3JlZikK
KyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsK
KyAgICBlbHNlIGlmIChlbGVtZW50ID09IFdhc206OlRhYmxlRWxlbWVudFR5cGU6OkV4dGVybnJl
ZikKKyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJl
ZiIpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKworCisgICAgdWludDMyX3QgbWluaW11bSA9IG1f
dGFibGUtPmxlbmd0aCgpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAibWluaW11bSIpLCBqc051bWJlcihtaW5pbXVtKSk7CisKKyAgICBhdXRv
IG1heGltdW0gPSBtX3RhYmxlLT5tYXhpbXVtKCk7CisgICAgaWYgKG1heGltdW0pCisgICAgICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWF4aW11
bSIpLCBqc051bWJlcigqbWF4aW11bSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAppbmRleCBk
MDY5Mzc4NmZiMzMxODRkNjU0NmZkM2ZiZWI0ZDVlYTQwODI0NzMwLi5mZDU5ZjIyNDRmY2UxNzBk
NTA3ZDlhZjNmMWViYzM5MTRkNTgwYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXQodWludDMyX3QsIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKik7CiAg
ICAgdm9pZCBzZXQodWludDMyX3QsIEpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXIodWludDMyX3Qp
OworICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBXYXNtOjpUYWJs
ZSogdGFibGUoKSB7IHJldHVybiBtX3RhYmxlLnB0cigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmNwcAppbmRleCBiZTgxMTQ4MGU3M2MyMmQwODk3ZTk1ZWNiMTE4NWU1MjViMjI3ZWVjLi5mODky
Y2M2ZjgwZGNjYjkxY2UwNDNmNTM4Mzg3MzY3NDQ3OTU4MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuY3BwCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0
ZXJGdW5jVmFsdWUpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgiCkBAIC00OSw2ICs1MCw4IEBAIGNvbnN0
IENsYXNzSW5mbyBXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNz
ZW1ibHkuR2xvYmFsIiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmx1dC5oCiAgQGJlZ2luIHByb3RvdHlwZUdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsCiAgdmFs
dWVPZiB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YgRnVuY3Rpb24gMAorIHR5cGUg
ICAgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlICAgIEZ1bmN0aW9uIDAKKwogIEBlbmQK
ICAqLwogCkBAIC03Niw3ICs3OSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPmdsb2Jh
bCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
d2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtODQsNiArODcsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCoKICAgICBKU1dl
YkFzc2VtYmx5R2xvYmFsKiBnbG9iYWwgPSBnZXRHbG9iYWwoZ2xvYmFsT2JqZWN0LCB2bSwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAorICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsLT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30KKworSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseUdsb2JhbCog
Z2xvYmFsID0gZ2V0R2xvYmFsKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWwtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuaAppbmRleCBhYzViZThhMGNlYWEyZGNjYmJjM2E3MGI3NmMxZDQxN2UwOWE4ODZkLi43MDM2
OGI2ZGI0YTI4MjNhZDBlODE4OGE5ZjI0ZDhkZTQwODljMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAgICBXZWJBc3Nl
bWJseUdsb2JhbFByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4
IDdlMjA4YzMxMDFjMjM3MTYzMjI5Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjlkMTBiNGZmZDE1NTdh
NWZlMzE4MzFkMmI3NTc0YzdmZmM1MmU2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
VHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5sdXQuaCIK
QEAgLTUzLDYgKzU0LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1vcnkiLCAmQmEKIEBiZWdpbiBwcm90b3R5
cGVUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBidWZmZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNC
dWZmZXIgQWNjZXNzb3IgMAorIHR5cGUgICB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUg
ICBGdW5jdGlvbiAwCiBAZW5kCiAqLwogCkBAIC05Niw2ICs5OCwxNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUobWVtb3J5LT5idWZmZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9yeSA9IGdldE1lbW9y
eShnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShtZW1vcnktPnR5cGUoZ2xvYmFsT2JqZWN0KSkpOwor
fQorCisKIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJB
c3NlbWJseU1lbW9yeVByb3RvdHlwZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCAyNTEzMDkyZTM5
NmRiYjAyMzQyYjY0MDQ3YzdmNWNlMjE0YzdmNjE1Li41OWUwYWQ3MDBmZDEwYTEzYmQ3OTkyYTg2
Nzc1ZjYxYTc4NzljMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcApAQCAtNDEsNiArNDEsNyBA
QCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
VGFibGVQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNs
dWRlICJXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIgpAQCAtNTUsNiArNTYsNyBAQCBj
b25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2Vi
QXNzZW1ibHkuVGFibGUiLCAmQmFzZQogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5j
R3JvdyAgIEZ1bmN0aW9uIDEKICBnZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCAg
ICBGdW5jdGlvbiAxCiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAgRnVu
Y3Rpb24gMgorIHR5cGUgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSAgIEZ1bmN0aW9u
IDAKICBAZW5kCiAgKi8KIApAQCAtMTY0LDYgKzE2NiwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5VGFibGUqIHRhYmxlID0g
Z2V0VGFibGUoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRhYmxlLT50eXBl
KGdsb2JhbE9iamVjdCkpKTsKK30KKwogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSogV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDc4ZmUwNWYxZTQ3MmIxMzcwODUyYmExNmFlMzUwNzE5ZTc5NmJkYmMuLjZhM2Nj
NTcxZjA1MmQ4MTk4OGMwNWZkODQxYTE0N2JjMWYwOWVkMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAzLTExICBKZXNzaWNhIFRhbGxvbiAg
PGp0YWxsb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVcGRhdGUgd2FzbSBKUy1BUEkgdGVzdHMg
Zm9yIHRoZSB0eXBlIG1ldGhvZCB0byBsYXRlc3QgdXBzdHJlYW0uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdXBzdHJlYW0gdGVzdHMgaGFzIHJl
Y2VudGx5IGFkZGVkIGEgdGVzdCBmb3IgdGhlIHRhYmxlIHR5cGUgbWV0aG9kIGFuZAorICAgICAg
ICB1cGRhdGVkIHRoZSBvdGhlciB0eXBlIHRlc3RzIHRvIG1ldGhvZHMgdG8ga2VlcCB1cCB3aXRo
IGEgcmVjZW50IHNwZWMgY2hhbmdlLgorICAgICAgICBUaGlzIGFkZHMgdGhvc2UgdXBkYXRlZCB0
ZXN0cyBhcyB3ZWxsIGFzIG5vdyBleHBlY3RhdGlvbnMgdGhleSBwYXNzLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS5qczoKKyAgICAgICAgKGFzc2VydF90eXBlKToKKyAgICAg
ICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRlc3QpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNz
ZXJ0X3R5cGUpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0xMCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbXByb3ZlIGZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIGludGVycG9sYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dAppbmRleCBkY2Y2Yjk5MTNmMTA2ZjNmNjNjN2ZkODA4YmMzMjJmMTQ1MmI5YmVl
Li5iZDU1ZmJhMDU4ZDdkNGY5MmUyNTcwMzg0YWZlNzVjMDUzZmI3MDI1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUn
KQotRkFJTCBpNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGYzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
eWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIGlt
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUp
JykKK1BBU1MgaTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwgbXV0
YWJsZQorUEFTUyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMyLCBp
bW11dGFibGUKK1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNTIGFu
eXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCitQQVNTIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BBU1MgZnVu
Y3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCitQQVNTIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCitQQVNTIGtl
eSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0
LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFs
L3R5cGUudGVudGF0aXZlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCmluZGV4
IDMxOGIxYWM1NzhjYWM2MDUxZWEyM2VjZmJiNjUyNWZmZmIzMjU1MDEuLmExY2ZhZTkwZGI5NDdm
MzQyODY0NTE2MjYyNzlhNTYyNDI1NjAxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRp
dmUuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0zLDkgKzMsMTAg
QEAKIAogZnVuY3Rpb24gYXNzZXJ0X3R5cGUoYXJndW1lbnQpIHsKICAgICBjb25zdCBteWdsb2Jh
bCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoYXJndW1lbnQpOworICAgIGNvbnN0IGdsb2JhbHR5
cGUgPSBteWdsb2JhbC50eXBlKCk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUu
dmFsdWUsIGFyZ3VtZW50LnZhbHVlKTsKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUu
bXV0YWJsZSwgYXJndW1lbnQubXV0YWJsZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBl
LnZhbHVlLCBhcmd1bWVudC52YWx1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBlLm11
dGFibGUsIGFyZ3VtZW50Lm11dGFibGUpOwogfQogCiB0ZXN0KCgpID0+IHsKQEAgLTU4LDcgKzU5
LDcgQEAgdGVzdCgoKSA9PiB7CiAKIHRlc3QoKCkgPT4gewogICAgIGNvbnN0IG15Z2xvYmFsID0g
bmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7InZhbHVlIjogImkzMiIsICJtdXRhYmxlIjogdHJ1ZX0p
OwotICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyht
eWdsb2JhbC50eXBlKTsKKyAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blBy
b3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSgpKTsKICAgICBhc3NlcnRfZXF1YWxzKHByb3BlcnR5
TmFtZXNbMF0sICJtdXRhYmxlIik7CiAgICAgYXNzZXJ0X2VxdWFscyhwcm9wZXJ0eU5hbWVzWzFd
LCAidmFsdWUiKTsKIH0sICJrZXkgb3JkZXJpbmciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50
ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRjZjZiOTkxM2YxMDZmM2Y2M2M3ZmQ4MDhiYzMy
MmYxNDUyYjliZWUuLmJkNTVmYmEwNThkN2Q0ZjkyZTI1NzAzODRhZmU3NWMwNTNmYjcwMjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxNSAr
MSwxNSBAQAogCi1GQUlMIGkzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVl
JykKLUZBSUwgaTY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJ
TCBmMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5n
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcyhteWdsb2JhbC50eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIs
IGltbXV0YWJsZQorUEFTUyBpNjQsIG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1Mg
ZjMyLCBtdXRhYmxlCitQQVNTIGYzMiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFT
UyBmNjQsIGltbXV0YWJsZQorUEFTUyBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQorUEFTUyBhbnlyZWYs
IGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9i
YWwudHlwZS52YWx1ZScpCitQQVNTIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQorUEFTUyBmdW5jcmVm
LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQorUEFTUyBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5
cGUpJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDQ5MmZkMzY0ZGMw
MDljNjJhMDM1OTZiMTY1NzAxMGRhOWEyNjIxZjUuLmUyY2VmMzU4OWI1ZjMxMDFiMzFjYWRkYzM3
ZDliMmFkODliNWViZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
OCArMSw4IEBACiAKLUZBSUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9u
LXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1G
QUlMIE5vbmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQot
RkFJTCBzaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVt
JykKK1BBU1MgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gbWF4
aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUu
bWluaW11bScpCitQQVNTIE5vbmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1Mgbm9uLXNoYXJlZCBt
ZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBl
Lm1pbmltdW0nKQorUEFTUyBzaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90
eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwppbmRleCBl
ZmU5ZTJhMzdkZWI3YmI2ZWY4NDFlOTgwOWVlZTc4MWM5ZWZmYjlmLi5hOTZhMzIyN2FkY2E3ZmYw
OWRlNzVlNWY3YzQxMmFiOTViMGQ1MDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZl
LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAtMywxMSArMywxMiBA
QAogCiBmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgewogICAgIGNvbnN0IG1lbW9yeSA9
IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoYXJndW1lbnQpOworICAgIGNvbnN0IG1lbW9yeXR5cGUg
PSBtZW1vcnkudHlwZSgpCiAKLSAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLm1pbmltdW0s
IGFyZ3VtZW50Lm1pbmltdW0pOwotICAgIGFzc2VydF9lcXVhbHMobWVtb3J5LnR5cGUubWF4aW11
bSwgYXJndW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLm1pbmlt
dW0sIGFyZ3VtZW50Lm1pbmltdW0pOworICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5tYXhp
bXVtLCBhcmd1bWVudC5tYXhpbXVtKTsKICAgICBpZiAoYXJndW1lbnQuc2hhcmVkICE9PSB1bmRl
ZmluZWQpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5zaGFyZWQsIGFyZ3Vt
ZW50LnNoYXJlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5zaGFyZWQsIGFy
Z3VtZW50LnNoYXJlZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTJmZDM2NGRjMDA5YzYyYTAzNTk2YjE2NTcwMTBkYTlh
MjYyMWY1Li5lMmNlZjM1ODliNWYzMTAxYjMxY2FkZGMzN2Q5YjJhZDg5YjVlYmZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1v
cnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBA
CiAKLUZBSUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8gaW5p
dGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
bWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbmUt
emVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1v
cnkudHlwZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBzaGFy
ZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnku
dHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1Mg
Tm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gbWF4aW11bSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScp
CitQQVNTIE5vbmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1Mgbm9uLXNoYXJlZCBtZW1vcnkgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0n
KQorUEFTUyBzaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0
aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYjEzNDAyYTI2MTA0MzNiYzI3ZDI5Yjc2YzRhMTM5NTU5MmZlN2IyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACisKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16
ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVy
byBtYXhpbXVtCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJs
ZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVk
NTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0
aXZlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRh
dGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTMw
ZTBhZDAyOWM1MmY3ODFjOTNiZGFiZmU2MDc3N2M2NDFkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFi
bGUvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0wLDAgKzEsMjYgQEAKKy8vIE1FVEE6IGdsb2Jh
bD13aW5kb3csZGVkaWNhdGVkd29ya2VyLGpzc2hlbGwKKy8vIE1FVEE6IHNjcmlwdD0vd2FzbS9q
c2FwaS9hc3NlcnRpb25zLmpzCisKK2Z1bmN0aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7Cisg
ICAgY29uc3QgbXl0YWJsZSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZShhcmd1bWVudCk7CisgICAg
Y29uc3QgdGFibGV0eXBlID0gbXl0YWJsZS50eXBlKCkKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxl
dHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxl
dHlwZS5tYXhpbXVtLCBhcmd1bWVudC5tYXhpbXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxl
dHlwZS5lbGVtZW50LCBhcmd1bWVudC5lbGVtZW50KTsKK30KKwordGVzdCgoKSA9PiB7CisgICAg
YXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAsICJlbGVtZW50IjogImZ1bmNyZWYifSk7Cit9LCAi
WmVybyBpbml0aWFsLCBubyBtYXhpbXVtIik7CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90
eXBlKHsgIm1pbmltdW0iOiA1LCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJOb24temVy
byBpbml0aWFsLCBubyBtYXhpbXVtIik7CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBl
KHsgIm1pbmltdW0iOiAwLCAibWF4aW11bSI6IDAsICJlbGVtZW50IjogImZ1bmNyZWYiIH0pOwor
fSwgIlplcm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJt
aW5pbXVtIjogMCwgIm1heGltdW0iOiA1LCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJO
b25lLXplcm8gbWF4aW11bSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBiMTM0MDJhMjYxMDQzM2JjMjdkMjliNzZjNGExMzk1NTkyZmU3
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVt
CitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQ
QVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDM1YTk2M2MyY2UyOTlmNmMzYjRiMmM2YWQ2ZmRkYjAy
NzdiZWM4Ni4uNTNhMmY4NWFmNGI5ZmEwYmZhYzBhNzM2NmQ4YTQxNzZkOTEzYzdkNCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB0aGUgbmV3IHR5cGUgbWV0aG9kIG9uIGNlcnRhaW4g
SlMtQVBJIHdhc20gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2FzbS9qcy1hcGkvZ2xvYmFsLmpzOiBBZGRlZC4KKyAgICAgICAgKGFz
c2VydC50aHJvd3MpOgorICAgICAgICAqIHdhc20vanMtYXBpL3RhYmxlLmpzOgorICAgICAgICAo
YXNzZXJ0LnRydXRoeSk6CisgICAgICAgICogd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanM6CisK
IDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVhcCB0b3AKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS9n
bG9iYWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDEwMTMxODI5NTUxZWJlMmQzZTRlMGU5M2I3ZDg4NTA1YWM4
YzU2YwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCkBA
IC0wLDAgKzEsMjkgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwor
eworICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCBnID0gbmV3IFdlYkFz
c2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBmYWxzZX0pOworICAgICAgICBn
LnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8IHZhbHVl
IHRvIGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5Lkdsb2JhbCIpOworCisgICAgY29uc3Qg
aTMyID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBmYWxz
ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMoaTMyKS5sZW5ndGgsIDIpOwor
ICAgIGFzc2VydC5lcShpMzIudmFsdWUsICJpMzIiKTsKKyAgICBhc3NlcnQuZXEoaTMyLm11dGFi
bGUsIGZhbHNlKTsKKworICAgIGNvbnN0IGkzMm0gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2
YWx1ZTogImkzMiIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGkzMm0u
dmFsdWUsICJpMzIiKTsKKyAgICBhc3NlcnQuZXEoaTMybS5tdXRhYmxlLCB0cnVlKTsKKworICAg
IGNvbnN0IGk2NCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTY0IiwgbXV0YWJs
ZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoaTY0LnZhbHVlLCAiaTY0Iik7CisKKyAg
ICBjb25zdCBmMzIgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImYzMiIsIG11dGFi
bGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGYzMi52YWx1ZSwgImYzMiIpOworCisg
ICAgY29uc3QgZjY0ID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmNjQiLCBtdXRh
YmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShmNjQudmFsdWUsICJmNjQiKTsKKwor
ICAgIGNvbnN0IGY2NG4gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKGY2NCkudHlwZSgpOworICAg
IGFzc2VydC5lcShmNjQudmFsdWUsIGY2NG4udmFsdWUpOworICAgIGFzc2VydC5lcShmNjQubXV0
YWJsZSwgZjY0bi5tdXRhYmxlKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFw
aS90YWJsZS5qcwppbmRleCBkYjc4NzhmMGNhMjNkYzllMWYxOTYyYThmNTY1NjcwNjk4OGUwMmRm
Li44MDA0ZTY3ZTcyZWVkN2E4ZGMzZmJiZDI5YTNhZGIyNjk3ZTA3YzdhIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFi
bGUuanMKQEAgLTM5MCwzICszOTAsMzMgQEAgYXNzZXJ0LnRocm93cygoKSA9PiBXZWJBc3NlbWJs
eS5UYWJsZS5wcm90b3R5cGUuZ3Jvdyh1bmRlZmluZWQpLCBUeXBlRXJyb3IsIGBleHAKICAgICB9
CiAgICAgYXNzZXJ0LnRydXRoeSh0aHJldyk7CiB9CisKK3sKKyAgICBhc3NlcnQudGhyb3dzKCgp
ID0+IHsKKyAgICAgICAgY29uc3QgdCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTog
NSwgZWxlbWVudDogImZ1bmNyZWYifSk7CisgICAgICAgIHQudHlwZS5jYWxsKHt9KTsKKyAgICB9
LCBUeXBlRXJyb3IsICJleHBlY3RlZCB8dGhpc3wgdmFsdWUgdG8gYmUgYW4gaW5zdGFuY2Ugb2Yg
V2ViQXNzZW1ibHkuVGFibGUiKTsKKworICAgIGNvbnN0IHQwID0gbmV3IFdlYkFzc2VtYmx5LlRh
YmxlKHttaW5pbXVtOiA1LCBlbGVtZW50OiAiZnVuY3JlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0
LmVxKE9iamVjdC5rZXlzKHQwKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcSh0MC5taW5pbXVt
LCA1KTsKKyAgICBhc3NlcnQuZXEodDAuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0
IHQxID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxl
bWVudDogImZ1bmNyZWYifSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MSku
bGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXEodDEubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVx
KHQxLm1heGltdW0sIDEwKQorICAgIGFzc2VydC5lcSh0MS5lbGVtZW50LCAiZnVuY3JlZiIpOwor
CisgICAgY29uc3QgdDIgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIG1heGlt
dW06IDEwLCBlbGVtZW50OiAiZXh0ZXJucmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2Jq
ZWN0LmtleXModDIpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIDUpOwor
ICAgIGFzc2VydC5lcSh0Mi5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwg
ImV4dGVybnJlZiIpOworCisgICAgY29uc3QgdDMgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUodDIp
LnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDIpLmxlbmd0aCwgT2JqZWN0Lmtl
eXModDMpLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIHQzLm1pbmltdW0pOwor
ICAgIGFzc2VydC5lcSh0Mi5tYXhpbXVtLCB0My5tYXhpbXVtKQorICAgIGFzc2VydC5lcSh0Mi5l
bGVtZW50LCB0My5lbGVtZW50KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzIGIvSlNUZXN0cy93YXNt
L2pzLWFwaS90ZXN0X21lbW9yeS5qcwppbmRleCA3MGViZGUyODYyMzJlMTgxZjVlZGNjNTI5YWQy
MGU0ZjZhMTUwOTM1Li5mZDU5ZDQzZGM4OTNjMThjODc1NzcyZjZmODJkZTRlYWMwMWIzYWJjIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCisrKyBiL0pTVGVz
dHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanMKQEAgLTM5OSwzICszOTksMjQgQEAgdGVzdChm
dW5jdGlvbigpIHsKICAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5tZW1vcnkuYnVmZmVy
LmJ5dGVMZW5ndGgsIDIwICogcGFnZVNpemUpOwogICAgIGFzc2VydC50cnV0aHkoaW5zdGFuY2Uu
ZXhwb3J0cy5tZW1vcnkgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5NZW1vcnkpOwogfQorCit0ZXN0
KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCBt
ID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7bWluaW11bTo0MCwgbWF4aW11bTogMTAwfSk7Cisg
ICAgICAgIG0udHlwZS5jYWxsKHt9KTsKKyAgICB9LCBUeXBlRXJyb3IsICJXZWJBc3NlbWJseS5N
ZW1vcnkucHJvdG90eXBlLmJ1ZmZlciBnZXR0ZXIgY2FsbGVkIHdpdGggbm9uIFdlYkFzc2VtYmx5
Lk1lbW9yeSB8dGhpc3wgdmFsdWUiKTsKKworICAgIGNvbnN0IG1lbW9yeSA9IG5ldyBXZWJBc3Nl
bWJseS5NZW1vcnkoe2luaXRpYWw6IDIwfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1l
bW9yeS50eXBlKCkpLmxlbmd0aCwgMSk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeS50eXBlKCkubWlu
aW11bSwgMjApOworCisgICAgY29uc3QgbWVtb3J5MiA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnko
e21pbmltdW06NDAsIG1heGltdW06IDEwMH0pOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyht
ZW1vcnkyLnR5cGUoKSkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBlKCku
bWluaW11bSwgNDApOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCAxMDAp
OworCisgICAgY29uc3QgbWVtb3J5MyA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkobWVtb3J5Mi50
eXBlKCkpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkyLnR5cGUoKSkubGVuZ3Ro
LCBPYmplY3Qua2V5cyhtZW1vcnkzLnR5cGUoKSkubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXEobWVt
b3J5Mi50eXBlKCkubWluaW11bSwgbWVtb3J5My50eXBlKCkubWluaW11bSk7CisgICAgYXNzZXJ0
LmVxKG1lbW9yeTIudHlwZSgpLm1heGltdW0sIG1lbW9yeTMudHlwZSgpLm1heGltdW0pOworfSkK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423326</attachid>
            <date>2021-03-16 07:24:28 -0700</date>
            <delta_ts>2021-03-16 09:40:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210316152427.patch</filename>
            <type>text/plain</type>
            <size>34562</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTlmZGFiNThjNTk3OGE4MTIxY2RiYTk3OTUxMzRiMTRhZjJiODQ5Li5jYjM1ODgxOTExMTM4NmFi
NmNkNGRmMDI4MjMxOThiMDVmYzBhNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVh
cCB0b3AKQEAgLTEyNDAsNyArMTI2OSw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bm5lY2Vz
c2FyeSBBU1NFUlQuCiAgICAgICAgIFRoaXMgYXNzZXJ0IGNoZWNrZWQgdGhhdCB0aGUgbWluaW11
bSBzaXplIHdhc24ndCBVSU5UX01BWCB3aGljaCBJIGJlbGlldmUgd2FzCi0gICAgICAgIGludGVu
ZGVkIHRvIG1ha2Ugc3VyZSB0aGUgbWluaW11bSBzaXplIHdhcyBjaGFuZ2VkIHdoaWxlIGNvbXB1
dGluZyB0aGUgIAorICAgICAgICBpbnRlbmRlZCB0byBtYWtlIHN1cmUgdGhlIG1pbmltdW0gc2l6
ZSB3YXMgY2hhbmdlZCB3aGlsZSBjb21wdXRpbmcgdGhlCiAgICAgICAgIGRpc2p1bmN0aW9uJ3Mg
c2l6ZSBhbmQgb2Zmc2V0cy4gIFRob3NlIGNhbGN1bGF0aW9ucyBpbnZvbHZlIGNoZWNrZWQgYXJp
dGhtZXRpYywKICAgICAgICAgd2hpY2ggd291bGQgY2F0Y2ggYW55IG92ZXJmbG93LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlhODEyMTEuLmEzNTk4
NTRkYTQ3M2E5MjkzYzFiMWQ5NTQwZmJkNmIxODc3YWNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDggQEAgdm9pZCBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgYm9vbCBpc011dGFibGU7CisgICAgaWYg
KG1fZ2xvYmFsLT5tdXRhYmlsaXR5KCkgPT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246Ok11dGFi
bGUpCisgICAgICAgIGlzTXV0YWJsZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBpc011dGFi
bGUgPSBmYWxzZTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm11dGFibGUiKSwganNCb29sZWFuKGlzTXV0YWJsZSkpOworCisgICAgV2FzbTo6
VHlwZSB2YWx1ZSA9IG1fZ2xvYmFsLT50eXBlKCk7CisgICAgSlNTdHJpbmcqIHZhbHVlU3RyID0g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiaTMy
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpNjQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImYzMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZjY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRl
cm5yZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwgdmFsdWVTdHIpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlHbG9iYWwpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlHbG9iYWwuaAppbmRleCA1NTJhZTA1YTBmNGE5ZDgzNWFkZTBmOWUwZmQ5
NGRjZTk1MWI3Yzk5Li43NDJmYmUwOGQ0MjM0MzE3OGQyZjU5OTAxYWU0NDhiNWVlZjNjZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xv
YmFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKICAg
ICBXYXNtOjpHbG9iYWwqIGdsb2JhbCgpIHsgcmV0dXJuIG1fZ2xvYmFsLnB0cigpOyB9CisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBKU1dlYkFz
c2VtYmx5R2xvYmFsKFZNJiwgU3RydWN0dXJlKiwgUmVmPFdhc206Okdsb2JhbD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCmluZGV4IDE0NWVlNzgzOGRjZWZlZjY4YWU5OTQ5ZWY3ZjdhOGFmMjQ4YzFlYTYuLmI1ZTNl
MWQ3M2QxNmVlZDY1YmQ1YTljZjNhYjM1MWE0Y2RmOTVlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCkBAIC0xMzEs
NiArMTMxLDMyIEBAIFdhc206OlBhZ2VDb3VudCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZ3Jvd24udmFs
dWUoKTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBK
U09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCAyKTsKKworICAgIFdhc206OlBhZ2VDb3VudCBt
aW5pbXVtID0gbV9tZW1vcnktPmluaXRpYWwoKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIHsgfSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFnZUNvdW50KCkpKTsK
KworICAgIFdhc206OlBhZ2VDb3VudCBtYXhpbXVtID0gbV9tZW1vcnktPm1heGltdW0oKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgaWYgKG1heGltdW0u
aXNWYWxpZCgpKQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgIm1heGltdW0iKSwganNOdW1iZXIobWF4aW11bS5wYWdlQ291bnQoKSkpOwor
CisgICAgV2FzbTo6TWVtb3J5U2hhcmluZ01vZGUgc2hhcmVkID0gbV9tZW1vcnktPnNoYXJpbmdN
b2RlKCk7CisgICAgaWYgKHNoYXJlZCA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVs
dCkKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJzaGFyZWQiKSwganNCb29sZWFuKGZhbHNlKSk7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNoYXJlZCIpLCBq
c0Jvb2xlYW4odHJ1ZSkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCiB2b2lkIEpTV2Vi
QXNzZW1ibHlNZW1vcnk6Omdyb3dTdWNjZXNzQ2FsbGJhY2soVk0mIHZtLCBXYXNtOjpQYWdlQ291
bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KQogewogICAgIC8v
IFdlIG5lZWQgdG8gY2xlYXIgb3V0IHRoZSBvbGQgYXJyYXkgYnVmZmVyIGJlY2F1c2UgaXQgbWln
aHQgbm93IGJlIHBvaW50aW5nIHRvIHN0YWxlIG1lbW9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAppbmRleCAzNjM4MDNlZTU0
MGQ5ZjRhYzQ0NDk4ZDEzODg2OTYwMDRlMGRkODFkLi5mZjRiYTliY2VlNTQ3MzNjMWYxNzRlNjc0
MWI4NTExODM4MDgwNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICBX
YXNtOjpQYWdlQ291bnQgZ3JvdyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgdWludDMyX3QgZGVsdGEp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhWTSYsIFdh
c206OlBhZ2VDb3VudCBvbGRQYWdlQ291bnQsIFdhc206OlBhZ2VDb3VudCBuZXdQYWdlQ291bnQp
OwogCisgICAgSlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAg
ICBKU1dlYkFzc2VtYmx5TWVtb3J5KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlUYWJsZS5jcHAKaW5kZXggYWE4MzZhZWQ0ZDI5YTgzZGE5ODJlMDRhYzM2MWRh
MGIzOWY0YmM2MS4uYjQ0ODk1OTU3MWY0MGJiNDNmY2Q4MmZkYmViOGY3YTk3ZjJmZWE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFi
bGUuY3BwCkBAIC0xMjYsNiArMTI2LDMwIEBAIHZvaWQgSlNXZWJBc3NlbWJseVRhYmxlOjpjbGVh
cih1aW50MzJfdCBpbmRleCkKICAgICBtX3RhYmxlLT5jbGVhcihpbmRleCk7CiB9CiAKK0pTT2Jq
ZWN0KiBKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBKU09iamVjdCog
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpLCAzKTsKKworICAgIFdhc206OlRhYmxlRWxlbWVudFR5cGUgZWxl
bWVudCA9IG1fdGFibGUtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogZWxlbWVudFN0ciA9IG51bGxw
dHI7CisgICAgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50VHlwZTo6RnVuY3JlZikK
KyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsK
KyAgICBlbHNlIGlmIChlbGVtZW50ID09IFdhc206OlRhYmxlRWxlbWVudFR5cGU6OkV4dGVybnJl
ZikKKyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJl
ZiIpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKworCisgICAgdWludDMyX3QgbWluaW11bSA9IG1f
dGFibGUtPmxlbmd0aCgpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAibWluaW11bSIpLCBqc051bWJlcihtaW5pbXVtKSk7CisKKyAgICBhdXRv
IG1heGltdW0gPSBtX3RhYmxlLT5tYXhpbXVtKCk7CisgICAgaWYgKG1heGltdW0pCisgICAgICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWF4aW11
bSIpLCBqc051bWJlcigqbWF4aW11bSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAppbmRleCBk
MDY5Mzc4NmZiMzMxODRkNjU0NmZkM2ZiZWI0ZDVlYTQwODI0NzMwLi5mZDU5ZjIyNDRmY2UxNzBk
NTA3ZDlhZjNmMWViYzM5MTRkNTgwYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXQodWludDMyX3QsIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKik7CiAg
ICAgdm9pZCBzZXQodWludDMyX3QsIEpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXIodWludDMyX3Qp
OworICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBXYXNtOjpUYWJs
ZSogdGFibGUoKSB7IHJldHVybiBtX3RhYmxlLnB0cigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmNwcAppbmRleCBiZTgxMTQ4MGU3M2MyMmQwODk3ZTk1ZWNiMTE4NWU1MjViMjI3ZWVjLi5mODky
Y2M2ZjgwZGNjYjkxY2UwNDNmNTM4Mzg3MzY3NDQ3OTU4MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuY3BwCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0
ZXJGdW5jVmFsdWUpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgiCkBAIC00OSw2ICs1MCw4IEBAIGNvbnN0
IENsYXNzSW5mbyBXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNz
ZW1ibHkuR2xvYmFsIiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmx1dC5oCiAgQGJlZ2luIHByb3RvdHlwZUdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsCiAgdmFs
dWVPZiB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YgRnVuY3Rpb24gMAorIHR5cGUg
ICAgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlICAgIEZ1bmN0aW9uIDAKKwogIEBlbmQK
ICAqLwogCkBAIC03Niw3ICs3OSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPmdsb2Jh
bCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
d2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtODQsNiArODcsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCoKICAgICBKU1dl
YkFzc2VtYmx5R2xvYmFsKiBnbG9iYWwgPSBnZXRHbG9iYWwoZ2xvYmFsT2JqZWN0LCB2bSwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAorICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsLT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30KKworSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseUdsb2JhbCog
Z2xvYmFsID0gZ2V0R2xvYmFsKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWwtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuaAppbmRleCBhYzViZThhMGNlYWEyZGNjYmJjM2E3MGI3NmMxZDQxN2UwOWE4ODZkLi43MDM2
OGI2ZGI0YTI4MjNhZDBlODE4OGE5ZjI0ZDhkZTQwODljMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAgICBXZWJBc3Nl
bWJseUdsb2JhbFByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4
IDdlMjA4YzMxMDFjMjM3MTYzMjI5Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjlkMTBiNGZmZDE1NTdh
NWZlMzE4MzFkMmI3NTc0YzdmZmM1MmU2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
VHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5sdXQuaCIK
QEAgLTUzLDYgKzU0LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1vcnkiLCAmQmEKIEBiZWdpbiBwcm90b3R5
cGVUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBidWZmZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNC
dWZmZXIgQWNjZXNzb3IgMAorIHR5cGUgICB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUg
ICBGdW5jdGlvbiAwCiBAZW5kCiAqLwogCkBAIC05Niw2ICs5OCwxNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUobWVtb3J5LT5idWZmZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9yeSA9IGdldE1lbW9y
eShnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShtZW1vcnktPnR5cGUoZ2xvYmFsT2JqZWN0KSkpOwor
fQorCisKIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJB
c3NlbWJseU1lbW9yeVByb3RvdHlwZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCAyNTEzMDkyZTM5
NmRiYjAyMzQyYjY0MDQ3YzdmNWNlMjE0YzdmNjE1Li41OWUwYWQ3MDBmZDEwYTEzYmQ3OTkyYTg2
Nzc1ZjYxYTc4NzljMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcApAQCAtNDEsNiArNDEsNyBA
QCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
VGFibGVQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNs
dWRlICJXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIgpAQCAtNTUsNiArNTYsNyBAQCBj
b25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2Vi
QXNzZW1ibHkuVGFibGUiLCAmQmFzZQogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5j
R3JvdyAgIEZ1bmN0aW9uIDEKICBnZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCAg
ICBGdW5jdGlvbiAxCiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAgRnVu
Y3Rpb24gMgorIHR5cGUgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSAgIEZ1bmN0aW9u
IDAKICBAZW5kCiAgKi8KIApAQCAtMTY0LDYgKzE2NiwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5VGFibGUqIHRhYmxlID0g
Z2V0VGFibGUoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRhYmxlLT50eXBl
KGdsb2JhbE9iamVjdCkpKTsKK30KKwogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSogV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDc4ZmUwNWYxZTQ3MmIxMzcwODUyYmExNmFlMzUwNzE5ZTc5NmJkYmMuLjZhM2Nj
NTcxZjA1MmQ4MTk4OGMwNWZkODQxYTE0N2JjMWYwOWVkMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAzLTExICBKZXNzaWNhIFRhbGxvbiAg
PGp0YWxsb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVcGRhdGUgd2FzbSBKUy1BUEkgdGVzdHMg
Zm9yIHRoZSB0eXBlIG1ldGhvZCB0byBsYXRlc3QgdXBzdHJlYW0uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdXBzdHJlYW0gdGVzdHMgaGFzIHJl
Y2VudGx5IGFkZGVkIGEgdGVzdCBmb3IgdGhlIHRhYmxlIHR5cGUgbWV0aG9kIGFuZAorICAgICAg
ICB1cGRhdGVkIHRoZSBvdGhlciB0eXBlIHRlc3RzIHRvIG1ldGhvZHMgdG8ga2VlcCB1cCB3aXRo
IGEgcmVjZW50IHNwZWMgY2hhbmdlLgorICAgICAgICBUaGlzIGFkZHMgdGhvc2UgdXBkYXRlZCB0
ZXN0cyBhcyB3ZWxsIGFzIG5vdyBleHBlY3RhdGlvbnMgdGhleSBwYXNzLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS5qczoKKyAgICAgICAgKGFzc2VydF90eXBlKToKKyAgICAg
ICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRlc3QpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNz
ZXJ0X3R5cGUpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0xMCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbXByb3ZlIGZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIGludGVycG9sYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dAppbmRleCBkY2Y2Yjk5MTNmMTA2ZjNmNjNjN2ZkODA4YmMzMjJmMTQ1MmI5YmVl
Li4wMTFjNzJiOTFjOWFhYjY5MmI0YWFiOTZlNWI1MGYyOTU0YTJiYTQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUn
KQotRkFJTCBpNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGYzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
eWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIGlt
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUp
JykKK1BBU1MgaTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwgbXV0
YWJsZQorUEFTUyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMyLCBp
bW11dGFibGUKK1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNTIGFu
eXJlZiwgbXV0YWJsZQorUEFTUyBhbnlyZWYsIGltbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBtdXRh
YmxlCitQQVNTIGZ1bmNyZWYsIGltbXV0YWJsZQorUEFTUyBrZXkgb3JkZXJpbmcKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS5qcwppbmRleCAzMThiMWFjNTc4Y2FjNjA1MWVhMjNlY2ZiYjY1MjVmZmZiMzI1NTAxLi5hMWNm
YWU5MGRiOTQ3ZjM0Mjg2NDUxNjI2Mjc5YTU2MjQyNTYwMTliIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5
cGUudGVudGF0aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAt
Myw5ICszLDEwIEBACiAKIGZ1bmN0aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7CiAgICAgY29u
c3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKGFyZ3VtZW50KTsKKyAgICBjb25z
dCBnbG9iYWx0eXBlID0gbXlnbG9iYWwudHlwZSgpOwogCi0gICAgYXNzZXJ0X2VxdWFscyhteWds
b2JhbC50eXBlLnZhbHVlLCBhcmd1bWVudC52YWx1ZSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhteWds
b2JhbC50eXBlLm11dGFibGUsIGFyZ3VtZW50Lm11dGFibGUpOworICAgIGFzc2VydF9lcXVhbHMo
Z2xvYmFsdHlwZS52YWx1ZSwgYXJndW1lbnQudmFsdWUpOworICAgIGFzc2VydF9lcXVhbHMoZ2xv
YmFsdHlwZS5tdXRhYmxlLCBhcmd1bWVudC5tdXRhYmxlKTsKIH0KIAogdGVzdCgoKSA9PiB7CkBA
IC01OCw3ICs1OSw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBt
eWdsb2JhbCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoeyJ2YWx1ZSI6ICJpMzIiLCAibXV0YWJs
ZSI6IHRydWV9KTsKLSAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3Bl
cnR5TmFtZXMobXlnbG9iYWwudHlwZSk7CisgICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUoKSk7CiAgICAgYXNzZXJ0X2VxdWFs
cyhwcm9wZXJ0eU5hbWVzWzBdLCAibXV0YWJsZSIpOwogICAgIGFzc2VydF9lcXVhbHMocHJvcGVy
dHlOYW1lc1sxXSwgInZhbHVlIik7CiB9LCAia2V5IG9yZGVyaW5nIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkY2Y2Yjk5MTNmMTA2ZjNmNjNj
N2ZkODA4YmMzMjJmMTQ1MmI5YmVlLi5iZDU1ZmJhMDU4ZDdkNGY5MmUyNTcwMzg0YWZlNzVjMDUz
ZmI3MDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTEsMTUgKzEsMTUgQEAKIAotRkFJTCBpMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpMzIsIGlt
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgaW1tdXRhYmxl
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZh
bHVlJykKLUZBSUwgZjMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBpbW11dGFibGUgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQot
RkFJTCBmNjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFu
eXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZnVu
Y3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGtl
eSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0
LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQorUEFTUyBpMzIsIG11dGFibGUK
K1BBU1MgaTMyLCBpbW11dGFibGUKK1BBU1MgaTY0LCBtdXRhYmxlCitQQVNTIGk2NCwgaW1tdXRh
YmxlCitQQVNTIGYzMiwgbXV0YWJsZQorUEFTUyBmMzIsIGltbXV0YWJsZQorUEFTUyBmNjQsIG11
dGFibGUKK1BBU1MgZjY0LCBpbW11dGFibGUKK1BBU1MgYW55cmVmLCBtdXRhYmxlIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BB
U1MgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQorUEFTUyBmdW5jcmVmLCBtdXRhYmxlIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BB
U1MgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKK1BBU1Mga2V5IG9yZGVyaW5nIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyht
eWdsb2JhbC50eXBlKScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0
OTJmZDM2NGRjMDA5YzYyYTAzNTk2YjE2NTcwMTBkYTlhMjYyMWY1Li5iZjA2NTVlZDQ1ZjhiMWRh
Zjc1OTY4NmE1ZTVmNmY4ZTllZTU5M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZl
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsOCBAQAogCi1GQUlMIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScp
Ci1GQUlMIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBaZXJvIG1heGlt
dW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQotRkFJTCBOb25lLXplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIG5vbi1zaGFyZWQgbWVt
b3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5t
aW5pbXVtJykKLUZBSUwgc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gaW5pdGlhbCwgbm8g
bWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4
aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorUEFTUyBub24tc2hhcmVkIG1lbW9yeQorUEFT
UyBzaGFyZWQgbWVtb3J5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKaW5kZXggZWZlOWUyYTM3ZGViN2JiNmVmODQx
ZTk4MDllZWU3ODFjOWVmZmI5Zi4uYTk2YTMyMjdhZGNhN2ZmMDlkZTc1ZTVmN2M0MTJhYjk1YjBk
NTAzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90
eXBlLnRlbnRhdGl2ZS5hbnkuanMKQEAgLTMsMTEgKzMsMTIgQEAKIAogZnVuY3Rpb24gYXNzZXJ0
X3R5cGUoYXJndW1lbnQpIHsKICAgICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVt
b3J5KGFyZ3VtZW50KTsKKyAgICBjb25zdCBtZW1vcnl0eXBlID0gbWVtb3J5LnR5cGUoKQogCi0g
ICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsK
LSAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLm1heGltdW0sIGFyZ3VtZW50Lm1heGltdW0p
OworICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVt
KTsKKyAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUubWF4aW11bSwgYXJndW1lbnQubWF4aW11
bSk7CiAgICAgaWYgKGFyZ3VtZW50LnNoYXJlZCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMobWVtb3J5LnR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNDkyZmQzNjRkYzAwOWM2MmEwMzU5NmIxNjU3MDEwZGE5YTI2MjFmNS4uZTJjZWYzNTg5YjVm
MzEwMWIzMWNhZGRjMzdkOWIyYWQ4OWI1ZWJmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogCi1GQUlMIFplcm8gaW5pdGlh
bCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVt
b3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0n
KQotRkFJTCBaZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb25lLXplcm8gbWF4aW11bSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1G
QUlMIG5vbi1zaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNT
IFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5v
IG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50
eXBlLm1pbmltdW0nKQorUEFTUyBaZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQorUEFTUyBOb25lLXplcm8gbWF4
aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUu
bWluaW11bScpCitQQVNTIG5vbi1zaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1Mgc2hhcmVkIG1lbW9y
eSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWlu
aW11bScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIxMzQw
MmEyNjEwNDMzYmMyN2QyOWI3NmM0YTEzOTU1OTJmZTdiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJs
ZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNT
IFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhp
bXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbApAQCAtMCww
ICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5
cGUudGVudGF0aXZlLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTEzMGUwYWQwMjljNTJmNzgxYzkzYmRh
YmZlNjA3NzdjNjQxZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFu
eS5qcwpAQCAtMCwwICsxLDI2IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LGRlZGljYXRlZHdv
cmtlcixqc3NoZWxsCisvLyBNRVRBOiBzY3JpcHQ9L3dhc20vanNhcGkvYXNzZXJ0aW9ucy5qcwor
CitmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgeworICAgIGNvbnN0IG15dGFibGUgPSBu
ZXcgV2ViQXNzZW1ibHkuVGFibGUoYXJndW1lbnQpOworICAgIGNvbnN0IHRhYmxldHlwZSA9IG15
dGFibGUudHlwZSgpCisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUubWluaW11bSwgYXJndW1l
bnQubWluaW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUubWF4aW11bSwgYXJndW1l
bnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUuZWxlbWVudCwgYXJndW1l
bnQuZWxlbWVudCk7Cit9CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmlt
dW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVmIn0pOworfSwgIlplcm8gaW5pdGlhbCwgbm8gbWF4
aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogNSwg
ImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAiTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11
bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgIm1h
eGltdW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJaZXJvIG1heGltdW0iKTsK
KwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAsICJtYXhpbXVt
IjogNSwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAiTm9uZS16ZXJvIG1heGltdW0iKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90
YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YjEzNDAyYTI2MTA0MzNiYzI3ZDI5Yjc2YzRhMTM5NTU5MmZlN2IyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorCitQQVNTIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24temVybyBpbml0
aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11
bQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDQzNWE5NjNjMmNlMjk5ZjZjM2I0YjJjNmFkNmZkZGIwMjc3YmVjODYuLjUzYTJmODVhZjRi
OWZhMGJmYWMwYTczNjZkOGE0MTc2ZDkxM2M3ZDQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMTEg
IEplc3NpY2EgVGFsbG9uICA8anRhbGxvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCB0ZXN0
cyBmb3IgdGhlIG5ldyB0eXBlIG1ldGhvZCBvbiBjZXJ0YWluIEpTLUFQSSB3YXNtIG9iamVjdHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20v
anMtYXBpL2dsb2JhbC5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQudGhyb3dzKToKKyAgICAg
ICAgKiB3YXNtL2pzLWFwaS90YWJsZS5qczoKKyAgICAgICAgKGFzc2VydC50cnV0aHkpOgorICAg
ICAgICAqIHdhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzOgorCiAyMDIxLTAzLTEwICBUYWRldSBa
YWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFJIHZhbGlkYXRvciBwYXRj
aHBvaW50IHNob3VsZCByZWFkIGhlYXAgdG9wCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMt
YXBpL2dsb2JhbC5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQxMDEzMTgyOTU1MWViZTJkM2U0ZTBlOTNiN2Q4ODUwNWFjOGM1NmMKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcwpAQCAtMCwwICsxLDI5IEBACitpbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKK3sKKyAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKKyAgICAgICAgY29uc3QgZyA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVl
OiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KTsKKyAgICAgICAgZy50eXBlLmNhbGwoe30pOworICAg
IH0sIFR5cGVFcnJvciwgImV4cGVjdGVkIHx0aGlzfCB2YWx1ZSB0byBiZSBhbiBpbnN0YW5jZSBv
ZiBXZWJBc3NlbWJseS5HbG9iYWwiKTsKKworICAgIGNvbnN0IGkzMiA9IG5ldyBXZWJBc3NlbWJs
eS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KS50eXBlKCk7CisgICAgYXNz
ZXJ0LmVxKE9iamVjdC5rZXlzKGkzMikubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEoaTMyLnZh
bHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVxKGkzMi5tdXRhYmxlLCBmYWxzZSk7CisKKyAgICBj
b25zdCBpMzJtID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxl
OiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShpMzJtLnZhbHVlLCAiaTMyIik7CisgICAg
YXNzZXJ0LmVxKGkzMm0ubXV0YWJsZSwgdHJ1ZSk7CisKKyAgICBjb25zdCBpNjQgPSBuZXcgV2Vi
QXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImk2NCIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7Cisg
ICAgYXNzZXJ0LmVxKGk2NC52YWx1ZSwgImk2NCIpOworCisgICAgY29uc3QgZjMyID0gbmV3IFdl
YkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmMzIiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOwor
ICAgIGFzc2VydC5lcShmMzIudmFsdWUsICJmMzIiKTsKKworICAgIGNvbnN0IGY2NCA9IG5ldyBX
ZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiZjY0IiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsK
KyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCAiZjY0Iik7CisKKyAgICBjb25zdCBmNjRuID0gbmV3
IFdlYkFzc2VtYmx5Lkdsb2JhbChmNjQpLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVl
LCBmNjRuLnZhbHVlKTsKKyAgICBhc3NlcnQuZXEoZjY0Lm11dGFibGUsIGY2NG4ubXV0YWJsZSk7
Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L2pzLWFwaS90YWJsZS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMKaW5kZXggZGI3
ODc4ZjBjYTIzZGM5ZTFmMTk2MmE4ZjU2NTY3MDY5ODhlMDJkZi4uODAwNGU2N2U3MmVlZDdhOGRj
M2ZiYmQyOWEzYWRiMjY5N2UwN2M3YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90
YWJsZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCkBAIC0zOTAsMyArMzkw
LDMzIEBAIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1ibHkuVGFibGUucHJvdG90eXBlLmdy
b3codW5kZWZpbmVkKSwgVHlwZUVycm9yLCBgZXhwCiAgICAgfQogICAgIGFzc2VydC50cnV0aHko
dGhyZXcpOwogfQorCit7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgIGNvbnN0
IHQgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIGVsZW1lbnQ6ICJmdW5jcmVm
In0pOworICAgICAgICB0LnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0
ZWQgfHRoaXN8IHZhbHVlIHRvIGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5LlRhYmxlIik7
CisKKyAgICBjb25zdCB0MCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgZWxl
bWVudDogImZ1bmNyZWYifSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MCku
bGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEodDAubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVx
KHQwLmVsZW1lbnQsICJmdW5jcmVmIik7CisKKyAgICBjb25zdCB0MSA9IG5ldyBXZWJBc3NlbWJs
eS5UYWJsZSh7bWluaW11bTogNSwgbWF4aW11bTogMTAsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pLnR5
cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDEpLmxlbmd0aCwgMyk7CisgICAgYXNz
ZXJ0LmVxKHQxLm1pbmltdW0sIDUpOworICAgIGFzc2VydC5lcSh0MS5tYXhpbXVtLCAxMCkKKyAg
ICBhc3NlcnQuZXEodDEuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0IHQyID0gbmV3
IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxlbWVudDogImV4
dGVybnJlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgs
IDMpOworICAgIGFzc2VydC5lcSh0Mi5taW5pbXVtLCA1KTsKKyAgICBhc3NlcnQuZXEodDIubWF4
aW11bSwgMTApCisgICAgYXNzZXJ0LmVxKHQyLmVsZW1lbnQsICJleHRlcm5yZWYiKTsKKworICAg
IGNvbnN0IHQzID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHQyKS50eXBlKCk7CisgICAgYXNzZXJ0
LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIE9iamVjdC5rZXlzKHQzKS5sZW5ndGgpOworICAg
IGFzc2VydC5lcSh0Mi5taW5pbXVtLCB0My5taW5pbXVtKTsKKyAgICBhc3NlcnQuZXEodDIubWF4
aW11bSwgdDMubWF4aW11bSkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwgdDMuZWxlbWVudCk7
Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L2pzLWFwaS90ZXN0X21lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnku
anMKaW5kZXggNzBlYmRlMjg2MjMyZTE4MWY1ZWRjYzUyOWFkMjBlNGY2YTE1MDkzNS4uOWVhMmIy
YmZiODlmMWRhNTIzZGQxYWJiNWJhZGVjNDQ4ZTAwY2EyNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93
YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3Rf
bWVtb3J5LmpzCkBAIC0zOTksMyArMzk5LDMzIEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgYXNz
ZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMubWVtb3J5LmJ1ZmZlci5ieXRlTGVuZ3RoLCAyMCAqIHBh
Z2VTaXplKTsKICAgICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlLmV4cG9ydHMubWVtb3J5IGluc3Rh
bmNlb2YgV2ViQXNzZW1ibHkuTWVtb3J5KTsKIH0KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgY29uc3QgbSA9IG5ldyBXZWJBc3NlbWJseS5N
ZW1vcnkoe21pbmltdW06NDAsIG1heGltdW06IDEwMH0pOworICAgICAgICBtLnR5cGUuY2FsbCh7
fSk7CisgICAgfSwgVHlwZUVycm9yLCAiV2ViQXNzZW1ibHkuTWVtb3J5LnByb3RvdHlwZS5idWZm
ZXIgZ2V0dGVyIGNhbGxlZCB3aXRoIG5vbiBXZWJBc3NlbWJseS5NZW1vcnkgfHRoaXN8IHZhbHVl
Iik7CisKKyAgICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFs
OiAyMH0pOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkudHlwZSgpKS5sZW5ndGgs
IDIpOworICAgIGFzc2VydC5lcShtZW1vcnkudHlwZSgpLm1pbmltdW0sIDIwKTsKKyAgICBhc3Nl
cnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTIg
PSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOjQwLCBtYXhpbXVtOiAxMDB9KTsKKyAg
ICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgMyk7CisgICAg
YXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIDQwKTsKKyAgICBhc3NlcnQuZXEobWVt
b3J5Mi50eXBlKCkubWF4aW11bSwgMTAwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5z
aGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTMgPSBuZXcgV2ViQXNzZW1ibHkuTWVt
b3J5KG1lbW9yeTIudHlwZSgpKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50
eXBlKCkpLmxlbmd0aCwgT2JqZWN0LmtleXMobWVtb3J5My50eXBlKCkpLmxlbmd0aCk7CisgICAg
YXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIG1lbW9yeTMudHlwZSgpLm1pbmltdW0p
OworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCBtZW1vcnkzLnR5cGUoKS5t
YXhpbXVtKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKwor
ICAgIGNvbnN0IG1lbW9yeTQgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOiAxMCwg
bWF4aW11bTogMjAsIHNoYXJlZDp0cnVlfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1l
bW9yeTQudHlwZSgpKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcShtZW1vcnk0LnR5cGUoKS5t
aW5pbXVtLCAxMCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTQudHlwZSgpLm1heGltdW0sIDIwKTsK
KyAgICBhc3NlcnQuZXEobWVtb3J5NC50eXBlKCkuc2hhcmVkLCB0cnVlKTsKK30pClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423340</attachid>
            <date>2021-03-16 09:41:05 -0700</date>
            <delta_ts>2021-03-18 05:19:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210316174104.patch</filename>
            <type>text/plain</type>
            <size>33858</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTlmZGFiNThjNTk3OGE4MTIxY2RiYTk3OTUxMzRiMTRhZjJiODQ5Li5jYjM1ODgxOTExMTM4NmFi
NmNkNGRmMDI4MjMxOThiMDVmYzBhNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVh
cCB0b3AKQEAgLTEyNDAsNyArMTI2OSw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bm5lY2Vz
c2FyeSBBU1NFUlQuCiAgICAgICAgIFRoaXMgYXNzZXJ0IGNoZWNrZWQgdGhhdCB0aGUgbWluaW11
bSBzaXplIHdhc24ndCBVSU5UX01BWCB3aGljaCBJIGJlbGlldmUgd2FzCi0gICAgICAgIGludGVu
ZGVkIHRvIG1ha2Ugc3VyZSB0aGUgbWluaW11bSBzaXplIHdhcyBjaGFuZ2VkIHdoaWxlIGNvbXB1
dGluZyB0aGUgIAorICAgICAgICBpbnRlbmRlZCB0byBtYWtlIHN1cmUgdGhlIG1pbmltdW0gc2l6
ZSB3YXMgY2hhbmdlZCB3aGlsZSBjb21wdXRpbmcgdGhlCiAgICAgICAgIGRpc2p1bmN0aW9uJ3Mg
c2l6ZSBhbmQgb2Zmc2V0cy4gIFRob3NlIGNhbGN1bGF0aW9ucyBpbnZvbHZlIGNoZWNrZWQgYXJp
dGhtZXRpYywKICAgICAgICAgd2hpY2ggd291bGQgY2F0Y2ggYW55IG92ZXJmbG93LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlhODEyMTEuLmEzNTk4
NTRkYTQ3M2E5MjkzYzFiMWQ5NTQwZmJkNmIxODc3YWNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDggQEAgdm9pZCBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgYm9vbCBpc011dGFibGU7CisgICAgaWYg
KG1fZ2xvYmFsLT5tdXRhYmlsaXR5KCkgPT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246Ok11dGFi
bGUpCisgICAgICAgIGlzTXV0YWJsZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBpc011dGFi
bGUgPSBmYWxzZTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm11dGFibGUiKSwganNCb29sZWFuKGlzTXV0YWJsZSkpOworCisgICAgV2FzbTo6
VHlwZSB2YWx1ZSA9IG1fZ2xvYmFsLT50eXBlKCk7CisgICAgSlNTdHJpbmcqIHZhbHVlU3RyID0g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiaTMy
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpNjQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImYzMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZjY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRl
cm5yZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwgdmFsdWVTdHIpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlHbG9iYWwpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlHbG9iYWwuaAppbmRleCA1NTJhZTA1YTBmNGE5ZDgzNWFkZTBmOWUwZmQ5
NGRjZTk1MWI3Yzk5Li43NDJmYmUwOGQ0MjM0MzE3OGQyZjU5OTAxYWU0NDhiNWVlZjNjZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xv
YmFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKICAg
ICBXYXNtOjpHbG9iYWwqIGdsb2JhbCgpIHsgcmV0dXJuIG1fZ2xvYmFsLnB0cigpOyB9CisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBKU1dlYkFz
c2VtYmx5R2xvYmFsKFZNJiwgU3RydWN0dXJlKiwgUmVmPFdhc206Okdsb2JhbD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCmluZGV4IDE0NWVlNzgzOGRjZWZlZjY4YWU5OTQ5ZWY3ZjdhOGFmMjQ4YzFlYTYuLmI1ZTNl
MWQ3M2QxNmVlZDY1YmQ1YTljZjNhYjM1MWE0Y2RmOTVlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCkBAIC0xMzEs
NiArMTMxLDMyIEBAIFdhc206OlBhZ2VDb3VudCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZ3Jvd24udmFs
dWUoKTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBK
U09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCAyKTsKKworICAgIFdhc206OlBhZ2VDb3VudCBt
aW5pbXVtID0gbV9tZW1vcnktPmluaXRpYWwoKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIHsgfSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFnZUNvdW50KCkpKTsK
KworICAgIFdhc206OlBhZ2VDb3VudCBtYXhpbXVtID0gbV9tZW1vcnktPm1heGltdW0oKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgaWYgKG1heGltdW0u
aXNWYWxpZCgpKQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgIm1heGltdW0iKSwganNOdW1iZXIobWF4aW11bS5wYWdlQ291bnQoKSkpOwor
CisgICAgV2FzbTo6TWVtb3J5U2hhcmluZ01vZGUgc2hhcmVkID0gbV9tZW1vcnktPnNoYXJpbmdN
b2RlKCk7CisgICAgaWYgKHNoYXJlZCA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6RGVmYXVs
dCkKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJzaGFyZWQiKSwganNCb29sZWFuKGZhbHNlKSk7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNoYXJlZCIpLCBq
c0Jvb2xlYW4odHJ1ZSkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCiB2b2lkIEpTV2Vi
QXNzZW1ibHlNZW1vcnk6Omdyb3dTdWNjZXNzQ2FsbGJhY2soVk0mIHZtLCBXYXNtOjpQYWdlQ291
bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KQogewogICAgIC8v
IFdlIG5lZWQgdG8gY2xlYXIgb3V0IHRoZSBvbGQgYXJyYXkgYnVmZmVyIGJlY2F1c2UgaXQgbWln
aHQgbm93IGJlIHBvaW50aW5nIHRvIHN0YWxlIG1lbW9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaAppbmRleCAzNjM4MDNlZTU0
MGQ5ZjRhYzQ0NDk4ZDEzODg2OTYwMDRlMGRkODFkLi5mZjRiYTliY2VlNTQ3MzNjMWYxNzRlNjc0
MWI4NTExODM4MDgwNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICBX
YXNtOjpQYWdlQ291bnQgZ3JvdyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgdWludDMyX3QgZGVsdGEp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ3Jvd1N1Y2Nlc3NDYWxsYmFjayhWTSYsIFdh
c206OlBhZ2VDb3VudCBvbGRQYWdlQ291bnQsIFdhc206OlBhZ2VDb3VudCBuZXdQYWdlQ291bnQp
OwogCisgICAgSlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAg
ICBKU1dlYkFzc2VtYmx5TWVtb3J5KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlUYWJsZS5jcHAKaW5kZXggYWE4MzZhZWQ0ZDI5YTgzZGE5ODJlMDRhYzM2MWRh
MGIzOWY0YmM2MS4uYjQ0ODk1OTU3MWY0MGJiNDNmY2Q4MmZkYmViOGY3YTk3ZjJmZWE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFi
bGUuY3BwCkBAIC0xMjYsNiArMTI2LDMwIEBAIHZvaWQgSlNXZWJBc3NlbWJseVRhYmxlOjpjbGVh
cih1aW50MzJfdCBpbmRleCkKICAgICBtX3RhYmxlLT5jbGVhcihpbmRleCk7CiB9CiAKK0pTT2Jq
ZWN0KiBKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisKKyAgICBKU09iamVjdCog
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpLCAzKTsKKworICAgIFdhc206OlRhYmxlRWxlbWVudFR5cGUgZWxl
bWVudCA9IG1fdGFibGUtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogZWxlbWVudFN0ciA9IG51bGxw
dHI7CisgICAgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50VHlwZTo6RnVuY3JlZikK
KyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsK
KyAgICBlbHNlIGlmIChlbGVtZW50ID09IFdhc206OlRhYmxlRWxlbWVudFR5cGU6OkV4dGVybnJl
ZikKKyAgICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJl
ZiIpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKworCisgICAgdWludDMyX3QgbWluaW11bSA9IG1f
dGFibGUtPmxlbmd0aCgpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAibWluaW11bSIpLCBqc051bWJlcihtaW5pbXVtKSk7CisKKyAgICBhdXRv
IG1heGltdW0gPSBtX3RhYmxlLT5tYXhpbXVtKCk7CisgICAgaWYgKG1heGltdW0pCisgICAgICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWF4aW11
bSIpLCBqc051bWJlcigqbWF4aW11bSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAppbmRleCBk
MDY5Mzc4NmZiMzMxODRkNjU0NmZkM2ZiZWI0ZDVlYTQwODI0NzMwLi5mZDU5ZjIyNDRmY2UxNzBk
NTA3ZDlhZjNmMWViYzM5MTRkNTgwYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXQodWludDMyX3QsIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKik7CiAg
ICAgdm9pZCBzZXQodWludDMyX3QsIEpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXIodWludDMyX3Qp
OworICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBXYXNtOjpUYWJs
ZSogdGFibGUoKSB7IHJldHVybiBtX3RhYmxlLnB0cigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmNwcAppbmRleCBiZTgxMTQ4MGU3M2MyMmQwODk3ZTk1ZWNiMTE4NWU1MjViMjI3ZWVjLi5mODky
Y2M2ZjgwZGNjYjkxY2UwNDNmNTM4Mzg3MzY3NDQ3OTU4MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuY3BwCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0
ZXJGdW5jVmFsdWUpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgiCkBAIC00OSw2ICs1MCw4IEBAIGNvbnN0
IENsYXNzSW5mbyBXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNz
ZW1ibHkuR2xvYmFsIiwgJkJhCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmx1dC5oCiAgQGJlZ2luIHByb3RvdHlwZUdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsCiAgdmFs
dWVPZiB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YgRnVuY3Rpb24gMAorIHR5cGUg
ICAgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlICAgIEZ1bmN0aW9uIDAKKwogIEBlbmQK
ICAqLwogCkBAIC03Niw3ICs3OSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPmdsb2Jh
bCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
d2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtODQsNiArODcsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCoKICAgICBKU1dl
YkFzc2VtYmx5R2xvYmFsKiBnbG9iYWwgPSBnZXRHbG9iYWwoZ2xvYmFsT2JqZWN0LCB2bSwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAorICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsLT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30KKworSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseUdsb2JhbCog
Z2xvYmFsID0gZ2V0R2xvYmFsKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShn
bG9iYWwtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuaAppbmRleCBhYzViZThhMGNlYWEyZGNjYmJjM2E3MGI3NmMxZDQxN2UwOWE4ODZkLi43MDM2
OGI2ZGI0YTI4MjNhZDBlODE4OGE5ZjI0ZDhkZTQwODljMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAgICBXZWJBc3Nl
bWJseUdsb2JhbFByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4
IDdlMjA4YzMxMDFjMjM3MTYzMjI5Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjlkMTBiNGZmZDE1NTdh
NWZlMzE4MzFkMmI3NTc0YzdmZmM1MmU2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
VHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5sdXQuaCIK
QEAgLTUzLDYgKzU0LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5NZW1vcnkiLCAmQmEKIEBiZWdpbiBwcm90b3R5
cGVUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBidWZmZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNC
dWZmZXIgQWNjZXNzb3IgMAorIHR5cGUgICB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUg
ICBGdW5jdGlvbiAwCiBAZW5kCiAqLwogCkBAIC05Niw2ICs5OCwxNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUobWVtb3J5LT5idWZmZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9yeSA9IGdldE1lbW9y
eShnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShtZW1vcnktPnR5cGUoZ2xvYmFsT2JqZWN0KSkpOwor
fQorCisKIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJB
c3NlbWJseU1lbW9yeVByb3RvdHlwZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCAyNTEzMDkyZTM5
NmRiYjAyMzQyYjY0MDQ3YzdmNWNlMjE0YzdmNjE1Li41OWUwYWQ3MDBmZDEwYTEzYmQ3OTkyYTg2
Nzc1ZjYxYTc4NzljMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcApAQCAtNDEsNiArNDEsNyBA
QCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
VGFibGVQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNs
dWRlICJXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIgpAQCAtNTUsNiArNTYsNyBAQCBj
b25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2Vi
QXNzZW1ibHkuVGFibGUiLCAmQmFzZQogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5j
R3JvdyAgIEZ1bmN0aW9uIDEKICBnZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCAg
ICBGdW5jdGlvbiAxCiAgc2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAgRnVu
Y3Rpb24gMgorIHR5cGUgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSAgIEZ1bmN0aW9u
IDAKICBAZW5kCiAgKi8KIApAQCAtMTY0LDYgKzE2NiwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5VGFibGUqIHRhYmxlID0g
Z2V0VGFibGUoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRhYmxlLT50eXBl
KGdsb2JhbE9iamVjdCkpKTsKK30KKwogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSogV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDc4ZmUwNWYxZTQ3MmIxMzcwODUyYmExNmFlMzUwNzE5ZTc5NmJkYmMuLjZhM2Nj
NTcxZjA1MmQ4MTk4OGMwNWZkODQxYTE0N2JjMWYwOWVkMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAzLTExICBKZXNzaWNhIFRhbGxvbiAg
PGp0YWxsb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVcGRhdGUgd2FzbSBKUy1BUEkgdGVzdHMg
Zm9yIHRoZSB0eXBlIG1ldGhvZCB0byBsYXRlc3QgdXBzdHJlYW0uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdXBzdHJlYW0gdGVzdHMgaGFzIHJl
Y2VudGx5IGFkZGVkIGEgdGVzdCBmb3IgdGhlIHRhYmxlIHR5cGUgbWV0aG9kIGFuZAorICAgICAg
ICB1cGRhdGVkIHRoZSBvdGhlciB0eXBlIHRlc3RzIHRvIG1ldGhvZHMgdG8ga2VlcCB1cCB3aXRo
IGEgcmVjZW50IHNwZWMgY2hhbmdlLgorICAgICAgICBUaGlzIGFkZHMgdGhvc2UgdXBkYXRlZCB0
ZXN0cyBhcyB3ZWxsIGFzIG5vdyBleHBlY3RhdGlvbnMgdGhleSBwYXNzLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS5qczoKKyAgICAgICAgKGFzc2VydF90eXBlKToKKyAgICAg
ICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLnRlc3QpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNz
ZXJ0X3R5cGUpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0xMCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbXByb3ZlIGZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIGludGVycG9sYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dAppbmRleCBkY2Y2Yjk5MTNmMTA2ZjNmNjNjN2ZkODA4YmMzMjJmMTQ1MmI5YmVl
Li4wMTFjNzJiOTFjOWFhYjY5MmI0YWFiOTZlNWI1MGYyOTU0YTJiYTQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUn
KQotRkFJTCBpNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGYzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
eWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIGlt
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBp
bW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFs
LnR5cGUudmFsdWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUp
JykKK1BBU1MgaTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwgbXV0
YWJsZQorUEFTUyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMyLCBp
bW11dGFibGUKK1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNTIGFu
eXJlZiwgbXV0YWJsZQorUEFTUyBhbnlyZWYsIGltbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBtdXRh
YmxlCitQQVNTIGZ1bmNyZWYsIGltbXV0YWJsZQorUEFTUyBrZXkgb3JkZXJpbmcKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS5qcwppbmRleCAzMThiMWFjNTc4Y2FjNjA1MWVhMjNlY2ZiYjY1MjVmZmZiMzI1NTAxLi5hMWNm
YWU5MGRiOTQ3ZjM0Mjg2NDUxNjI2Mjc5YTU2MjQyNTYwMTliIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5
cGUudGVudGF0aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAt
Myw5ICszLDEwIEBACiAKIGZ1bmN0aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7CiAgICAgY29u
c3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKGFyZ3VtZW50KTsKKyAgICBjb25z
dCBnbG9iYWx0eXBlID0gbXlnbG9iYWwudHlwZSgpOwogCi0gICAgYXNzZXJ0X2VxdWFscyhteWds
b2JhbC50eXBlLnZhbHVlLCBhcmd1bWVudC52YWx1ZSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhteWds
b2JhbC50eXBlLm11dGFibGUsIGFyZ3VtZW50Lm11dGFibGUpOworICAgIGFzc2VydF9lcXVhbHMo
Z2xvYmFsdHlwZS52YWx1ZSwgYXJndW1lbnQudmFsdWUpOworICAgIGFzc2VydF9lcXVhbHMoZ2xv
YmFsdHlwZS5tdXRhYmxlLCBhcmd1bWVudC5tdXRhYmxlKTsKIH0KIAogdGVzdCgoKSA9PiB7CkBA
IC01OCw3ICs1OSw3IEBAIHRlc3QoKCkgPT4gewogCiB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBt
eWdsb2JhbCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoeyJ2YWx1ZSI6ICJpMzIiLCAibXV0YWJs
ZSI6IHRydWV9KTsKLSAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3Bl
cnR5TmFtZXMobXlnbG9iYWwudHlwZSk7CisgICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUoKSk7CiAgICAgYXNzZXJ0X2VxdWFs
cyhwcm9wZXJ0eU5hbWVzWzBdLCAibXV0YWJsZSIpOwogICAgIGFzc2VydF9lcXVhbHMocHJvcGVy
dHlOYW1lc1sxXSwgInZhbHVlIik7CiB9LCAia2V5IG9yZGVyaW5nIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkY2Y2Yjk5MTNmMTA2ZjNmNjNj
N2ZkODA4YmMzMjJmMTQ1MmI5YmVlLi4wMTFjNzJiOTFjOWFhYjY5MmI0YWFiOTZlNWI1MGYyOTU0
YTJiYTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTEsMTUgKzEsMTUgQEAKIAotRkFJTCBpMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpMzIsIGlt
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgaW1tdXRhYmxl
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZh
bHVlJykKLUZBSUwgZjMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBpbW11dGFibGUgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQot
RkFJTCBmNjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFu
eXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZnVu
Y3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGtl
eSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0
LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQorUEFTUyBpMzIsIG11dGFibGUK
K1BBU1MgaTMyLCBpbW11dGFibGUKK1BBU1MgaTY0LCBtdXRhYmxlCitQQVNTIGk2NCwgaW1tdXRh
YmxlCitQQVNTIGYzMiwgbXV0YWJsZQorUEFTUyBmMzIsIGltbXV0YWJsZQorUEFTUyBmNjQsIG11
dGFibGUKK1BBU1MgZjY0LCBpbW11dGFibGUKK1BBU1MgYW55cmVmLCBtdXRhYmxlCitQQVNTIGFu
eXJlZiwgaW1tdXRhYmxlCitQQVNTIGZ1bmNyZWYsIG11dGFibGUKK1BBU1MgZnVuY3JlZiwgaW1t
dXRhYmxlCitQQVNTIGtleSBvcmRlcmluZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50
eHQKaW5kZXggNDkyZmQzNjRkYzAwOWM2MmEwMzU5NmIxNjU3MDEwZGE5YTI2MjFmNS4uYmYwNjU1
ZWQ0NWY4YjFkYWY3NTk2ODZhNWU1ZjZmOGU5ZWU1OTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBl
LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55
LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBaZXJvIGluaXRpYWwsIG5vIG1h
eGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBl
Lm1pbmltdW0nKQotRkFJTCBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwg
WmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1v
cnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uZS16ZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBub24t
c2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVt
b3J5LnR5cGUubWluaW11bScpCi1GQUlMIHNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQorUEFTUyBaZXJvIGlu
aXRpYWwsIG5vIG1heGltdW0KK1BBU1MgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFT
UyBaZXJvIG1heGltdW0KK1BBU1MgTm9uZS16ZXJvIG1heGltdW0KK1BBU1Mgbm9uLXNoYXJlZCBt
ZW1vcnkKK1BBU1Mgc2hhcmVkIG1lbW9yeQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzCmluZGV4IGVmZTllMmEzN2Rl
YjdiYjZlZjg0MWU5ODA5ZWVlNzgxYzllZmZiOWYuLmE5NmEzMjI3YWRjYTdmZjA5ZGU3NWU1Zjdj
NDEyYWI5NWIwZDUwM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0zLDExICszLDEyIEBACiAKIGZ1bmN0
aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7CiAgICAgY29uc3QgbWVtb3J5ID0gbmV3IFdlYkFz
c2VtYmx5Lk1lbW9yeShhcmd1bWVudCk7CisgICAgY29uc3QgbWVtb3J5dHlwZSA9IG1lbW9yeS50
eXBlKCkKIAotICAgIGFzc2VydF9lcXVhbHMobWVtb3J5LnR5cGUubWluaW11bSwgYXJndW1lbnQu
bWluaW11bSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5tYXhpbXVtLCBhcmd1bWVu
dC5tYXhpbXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUubWluaW11bSwgYXJndW1l
bnQubWluaW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLm1heGltdW0sIGFyZ3Vt
ZW50Lm1heGltdW0pOwogICAgIGlmIChhcmd1bWVudC5zaGFyZWQgIT09IHVuZGVmaW5lZCkgewot
ICAgICAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLnNoYXJlZCwgYXJndW1lbnQuc2hhcmVk
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLnNoYXJlZCwgYXJndW1lbnQuc2hh
cmVkKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDQ5MmZkMzY0ZGMwMDljNjJhMDM1OTZiMTY1NzAxMGRhOWEyNjIxZjUuLmJm
MDY1NWVkNDVmOGIxZGFmNzU5Njg2YTVlNWY2ZjhlOWVlNTkzYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCBa
ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb24temVybyBpbml0aWFsLCBubyBt
YXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlw
ZS5taW5pbXVtJykKLUZBSUwgWmVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uZS16ZXJvIG1heGlt
dW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQotRkFJTCBub24tc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIHNoYXJlZCBtZW1vcnkg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmlt
dW0nKQorUEFTUyBaZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgTm9uLXplcm8gaW5pdGlh
bCwgbm8gbWF4aW11bQorUEFTUyBaZXJvIG1heGltdW0KK1BBU1MgTm9uZS16ZXJvIG1heGltdW0K
K1BBU1Mgbm9uLXNoYXJlZCBtZW1vcnkKK1BBU1Mgc2hhcmVkIG1lbW9yeQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
dGFibGUvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2
ZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMTM0MDJhMjYxMDQzM2JjMjdkMjliNzZj
NGExMzk1NTkyZmU3YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBaZXJvIGluaXRpYWwsIG5vIG1h
eGltdW0KK1BBU1MgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBaZXJvIG1heGlt
dW0KK1BBU1MgTm9uZS16ZXJvIG1heGltdW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0
aXZlLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
ODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
dGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUg
dGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTExMzBlMGFkMDI5YzUyZjc4MWM5M2JkYWJmZTYwNzc3YzY0MWQ0MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKQEAgLTAsMCArMSwyNiBA
QAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyxkZWRpY2F0ZWR3b3JrZXIsanNzaGVsbAorLy8gTUVU
QTogc2NyaXB0PS93YXNtL2pzYXBpL2Fzc2VydGlvbnMuanMKKworZnVuY3Rpb24gYXNzZXJ0X3R5
cGUoYXJndW1lbnQpIHsKKyAgICBjb25zdCBteXRhYmxlID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxl
KGFyZ3VtZW50KTsKKyAgICBjb25zdCB0YWJsZXR5cGUgPSBteXRhYmxlLnR5cGUoKQorICAgIGFz
c2VydF9lcXVhbHModGFibGV0eXBlLm1pbmltdW0sIGFyZ3VtZW50Lm1pbmltdW0pOworICAgIGFz
c2VydF9lcXVhbHModGFibGV0eXBlLm1heGltdW0sIGFyZ3VtZW50Lm1heGltdW0pOworICAgIGFz
c2VydF9lcXVhbHModGFibGV0eXBlLmVsZW1lbnQsIGFyZ3VtZW50LmVsZW1lbnQpOworfQorCit0
ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgImVsZW1lbnQiOiAi
ZnVuY3JlZiJ9KTsKK30sICJaZXJvIGluaXRpYWwsIG5vIG1heGltdW0iKTsKKwordGVzdCgoKSA9
PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDUsICJlbGVtZW50IjogImZ1bmNyZWYi
IH0pOworfSwgIk5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0iKTsKKwordGVzdCgoKSA9PiB7
CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAsICJtYXhpbXVtIjogMCwgImVsZW1lbnQi
OiAiZnVuY3JlZiIgfSk7Cit9LCAiWmVybyBtYXhpbXVtIik7CisKK3Rlc3QoKCkgPT4geworICAg
IGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAwLCAibWF4aW11bSI6IDUsICJlbGVtZW50IjogImZ1
bmNyZWYiIH0pOworfSwgIk5vbmUtemVybyBtYXhpbXVtIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlw
ZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIxMzQwMmEyNjEwNDMzYmMyN2Qy
OWI3NmM0YTEzOTU1OTJmZTdiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBaZXJvIGlu
aXRpYWwsIG5vIG1heGltdW0KK1BBU1MgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFT
UyBaZXJvIG1heGltdW0KK1BBU1MgTm9uZS16ZXJvIG1heGltdW0KKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0MzVhOTYzYzJjZTI5OWY2
YzNiNGIyYzZhZDZmZGRiMDI3N2JlYzg2Li41M2EyZjg1YWY0YjlmYTBiZmFjMGE3MzY2ZDhhNDE3
NmQ5MTNjN2Q0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAzLTExICBKZXNzaWNhIFRhbGxvbiAgPGp0
YWxsb25AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIHRoZSBuZXcgdHlwZSBt
ZXRob2Qgb24gY2VydGFpbiBKUy1BUEkgd2FzbSBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNtL2pzLWFwaS9nbG9iYWwuanM6IEFk
ZGVkLgorICAgICAgICAoYXNzZXJ0LnRocm93cyk6CisgICAgICAgICogd2FzbS9qcy1hcGkvdGFi
bGUuanM6CisgICAgICAgIChhc3NlcnQudHJ1dGh5KToKKyAgICAgICAgKiB3YXNtL2pzLWFwaS90
ZXN0X21lbW9yeS5qczoKKwogMjAyMS0wMy0xMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBBSSB2YWxpZGF0b3IgcGF0Y2hwb2ludCBzaG91bGQgcmVhZCBo
ZWFwIHRvcApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS9nbG9iYWwuanMgYi9KU1Rl
c3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTAxMzE4Mjk1NTFlYmUyZDNl
NGUwZTkzYjdkODg1MDVhYzhjNTZjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL2pz
LWFwaS9nbG9iYWwuanMKQEAgLTAsMCArMSwyOSBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZyb20g
Jy4uL2Fzc2VydC5qcyc7Cit7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgIGNv
bnN0IGcgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImkzMiIsIG11dGFibGU6IGZh
bHNlfSk7CisgICAgICAgIGcudHlwZS5jYWxsKHt9KTsKKyAgICB9LCBUeXBlRXJyb3IsICJleHBl
Y3RlZCB8dGhpc3wgdmFsdWUgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgV2ViQXNzZW1ibHkuR2xvYmFs
Iik7CisKKyAgICBjb25zdCBpMzIgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImkz
MiIsIG11dGFibGU6IGZhbHNlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhp
MzIpLmxlbmd0aCwgMik7CisgICAgYXNzZXJ0LmVxKGkzMi52YWx1ZSwgImkzMiIpOworICAgIGFz
c2VydC5lcShpMzIubXV0YWJsZSwgZmFsc2UpOworCisgICAgY29uc3QgaTMybSA9IG5ldyBXZWJB
c3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAg
ICBhc3NlcnQuZXEoaTMybS52YWx1ZSwgImkzMiIpOworICAgIGFzc2VydC5lcShpMzJtLm11dGFi
bGUsIHRydWUpOworCisgICAgY29uc3QgaTY0ID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFs
dWU6ICJpNjQiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShpNjQudmFs
dWUsICJpNjQiKTsKKworICAgIGNvbnN0IGYzMiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3Zh
bHVlOiAiZjMyIiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjMyLnZh
bHVlLCAiZjMyIik7CisKKyAgICBjb25zdCBmNjQgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2
YWx1ZTogImY2NCIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGY2NC52
YWx1ZSwgImY2NCIpOworCisgICAgY29uc3QgZjY0biA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwo
ZjY0KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGY2NC52YWx1ZSwgZjY0bi52YWx1ZSk7CisgICAg
YXNzZXJ0LmVxKGY2NC5tdXRhYmxlLCBmNjRuLm11dGFibGUpOworfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMgYi9K
U1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCmluZGV4IGRiNzg3OGYwY2EyM2RjOWUxZjE5NjJh
OGY1NjU2NzA2OTg4ZTAyZGYuLjgwMDRlNjdlNzJlZWQ3YThkYzNmYmJkMjlhM2FkYjI2OTdlMDdj
N2EgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMKKysrIGIvSlNUZXN0
cy93YXNtL2pzLWFwaS90YWJsZS5qcwpAQCAtMzkwLDMgKzM5MCwzMyBAQCBhc3NlcnQudGhyb3dz
KCgpID0+IFdlYkFzc2VtYmx5LlRhYmxlLnByb3RvdHlwZS5ncm93KHVuZGVmaW5lZCksIFR5cGVF
cnJvciwgYGV4cAogICAgIH0KICAgICBhc3NlcnQudHJ1dGh5KHRocmV3KTsKIH0KKworeworICAg
IGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCB0ID0gbmV3IFdlYkFzc2VtYmx5
LlRhYmxlKHttaW5pbXVtOiA1LCBlbGVtZW50OiAiZnVuY3JlZiJ9KTsKKyAgICAgICAgdC50eXBl
LmNhbGwoe30pOworICAgIH0sIFR5cGVFcnJvciwgImV4cGVjdGVkIHx0aGlzfCB2YWx1ZSB0byBi
ZSBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJseS5UYWJsZSIpOworCisgICAgY29uc3QgdDAgPSBu
ZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pLnR5
cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDApLmxlbmd0aCwgMik7CisgICAgYXNz
ZXJ0LmVxKHQwLm1pbmltdW0sIDUpOworICAgIGFzc2VydC5lcSh0MC5lbGVtZW50LCAiZnVuY3Jl
ZiIpOworCisgICAgY29uc3QgdDEgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUs
IG1heGltdW06IDEwLCBlbGVtZW50OiAiZnVuY3JlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVx
KE9iamVjdC5rZXlzKHQxKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcSh0MS5taW5pbXVtLCA1
KTsKKyAgICBhc3NlcnQuZXEodDEubWF4aW11bSwgMTApCisgICAgYXNzZXJ0LmVxKHQxLmVsZW1l
bnQsICJmdW5jcmVmIik7CisKKyAgICBjb25zdCB0MiA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7
bWluaW11bTogNSwgbWF4aW11bTogMTAsIGVsZW1lbnQ6ICJleHRlcm5yZWYifSkudHlwZSgpOwor
ICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MikubGVuZ3RoLCAzKTsKKyAgICBhc3NlcnQuZXEo
dDIubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVxKHQyLm1heGltdW0sIDEwKQorICAgIGFzc2Vy
dC5lcSh0Mi5lbGVtZW50LCAiZXh0ZXJucmVmIik7CisKKyAgICBjb25zdCB0MyA9IG5ldyBXZWJB
c3NlbWJseS5UYWJsZSh0MikudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0Miku
bGVuZ3RoLCBPYmplY3Qua2V5cyh0MykubGVuZ3RoKTsKKyAgICBhc3NlcnQuZXEodDIubWluaW11
bSwgdDMubWluaW11bSk7CisgICAgYXNzZXJ0LmVxKHQyLm1heGltdW0sIHQzLm1heGltdW0pCisg
ICAgYXNzZXJ0LmVxKHQyLmVsZW1lbnQsIHQzLmVsZW1lbnQpOworfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnku
anMgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCmluZGV4IDcwZWJkZTI4NjIz
MmUxODFmNWVkY2M1MjlhZDIwZTRmNmExNTA5MzUuLjllYTJiMmJmYjg5ZjFkYTUyM2RkMWFiYjVi
YWRlYzQ0OGUwMGNhMjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1v
cnkuanMKKysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcwpAQCAtMzk5LDMg
KzM5OSwzMyBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBv
cnRzLm1lbW9yeS5idWZmZXIuYnl0ZUxlbmd0aCwgMjAgKiBwYWdlU2l6ZSk7CiAgICAgYXNzZXJ0
LnRydXRoeShpbnN0YW5jZS5leHBvcnRzLm1lbW9yeSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lk1l
bW9yeSk7CiB9CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CisgICAgICAgIGNvbnN0IG0gPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOjQwLCBt
YXhpbXVtOiAxMDB9KTsKKyAgICAgICAgbS50eXBlLmNhbGwoe30pOworICAgIH0sIFR5cGVFcnJv
ciwgIldlYkFzc2VtYmx5Lk1lbW9yeS5wcm90b3R5cGUuYnVmZmVyIGdldHRlciBjYWxsZWQgd2l0
aCBub24gV2ViQXNzZW1ibHkuTWVtb3J5IHx0aGlzfCB2YWx1ZSIpOworCisgICAgY29uc3QgbWVt
b3J5ID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDogMjB9KTsKKyAgICBhc3NlcnQu
ZXEoT2JqZWN0LmtleXMobWVtb3J5LnR5cGUoKSkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEo
bWVtb3J5LnR5cGUoKS5taW5pbXVtLCAyMCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeS50eXBlKCku
c2hhcmVkLCBmYWxzZSk7CisKKyAgICBjb25zdCBtZW1vcnkyID0gbmV3IFdlYkFzc2VtYmx5Lk1l
bW9yeSh7bWluaW11bTo0MCwgbWF4aW11bTogMTAwfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5r
ZXlzKG1lbW9yeTIudHlwZSgpKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5
cGUoKS5taW5pbXVtLCA0MCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1heGltdW0s
IDEwMCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeS50eXBlKCkuc2hhcmVkLCBmYWxzZSk7CisKKyAg
ICBjb25zdCBtZW1vcnkzID0gbmV3IFdlYkFzc2VtYmx5Lk1lbW9yeShtZW1vcnkyLnR5cGUoKSk7
CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1lbW9yeTIudHlwZSgpKS5sZW5ndGgsIE9iamVj
dC5rZXlzKG1lbW9yeTMudHlwZSgpKS5sZW5ndGgpOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5
cGUoKS5taW5pbXVtLCBtZW1vcnkzLnR5cGUoKS5taW5pbXVtKTsKKyAgICBhc3NlcnQuZXEobWVt
b3J5Mi50eXBlKCkubWF4aW11bSwgbWVtb3J5My50eXBlKCkubWF4aW11bSk7CisgICAgYXNzZXJ0
LmVxKG1lbW9yeS50eXBlKCkuc2hhcmVkLCBmYWxzZSk7CisKKyAgICBjb25zdCBtZW1vcnk0ID0g
bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7bWluaW11bTogMTAsIG1heGltdW06IDIwLCBzaGFyZWQ6
dHJ1ZX0pOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnk0LnR5cGUoKSkubGVuZ3Ro
LCAzKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5NC50eXBlKCkubWluaW11bSwgMTApOworICAgIGFz
c2VydC5lcShtZW1vcnk0LnR5cGUoKS5tYXhpbXVtLCAyMCk7CisgICAgYXNzZXJ0LmVxKG1lbW9y
eTQudHlwZSgpLnNoYXJlZCwgdHJ1ZSk7Cit9KQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423589</attachid>
            <date>2021-03-18 05:19:40 -0700</date>
            <delta_ts>2021-03-26 01:55:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210318131939.patch</filename>
            <type>text/plain</type>
            <size>34111</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTlmZGFiNThjNTk3OGE4MTIxY2RiYTk3OTUxMzRiMTRhZjJiODQ5Li5jYjM1ODgxOTExMTM4NmFi
NmNkNGRmMDI4MjMxOThiMDVmYzBhNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVh
cCB0b3AKQEAgLTEyNDAsNyArMTI2OSw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bm5lY2Vz
c2FyeSBBU1NFUlQuCiAgICAgICAgIFRoaXMgYXNzZXJ0IGNoZWNrZWQgdGhhdCB0aGUgbWluaW11
bSBzaXplIHdhc24ndCBVSU5UX01BWCB3aGljaCBJIGJlbGlldmUgd2FzCi0gICAgICAgIGludGVu
ZGVkIHRvIG1ha2Ugc3VyZSB0aGUgbWluaW11bSBzaXplIHdhcyBjaGFuZ2VkIHdoaWxlIGNvbXB1
dGluZyB0aGUgIAorICAgICAgICBpbnRlbmRlZCB0byBtYWtlIHN1cmUgdGhlIG1pbmltdW0gc2l6
ZSB3YXMgY2hhbmdlZCB3aGlsZSBjb21wdXRpbmcgdGhlCiAgICAgICAgIGRpc2p1bmN0aW9uJ3Mg
c2l6ZSBhbmQgb2Zmc2V0cy4gIFRob3NlIGNhbGN1bGF0aW9ucyBpbnZvbHZlIGNoZWNrZWQgYXJp
dGhtZXRpYywKICAgICAgICAgd2hpY2ggd291bGQgY2F0Y2ggYW55IG92ZXJmbG93LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlhODEyMTEuLmEzNTk4
NTRkYTQ3M2E5MjkzYzFiMWQ5NTQwZmJkNmIxODc3YWNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDggQEAgdm9pZCBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgYm9vbCBpc011dGFibGU7CisgICAgaWYg
KG1fZ2xvYmFsLT5tdXRhYmlsaXR5KCkgPT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246Ok11dGFi
bGUpCisgICAgICAgIGlzTXV0YWJsZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBpc011dGFi
bGUgPSBmYWxzZTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm11dGFibGUiKSwganNCb29sZWFuKGlzTXV0YWJsZSkpOworCisgICAgV2FzbTo6
VHlwZSB2YWx1ZSA9IG1fZ2xvYmFsLT50eXBlKCk7CisgICAgSlNTdHJpbmcqIHZhbHVlU3RyID0g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiaTMy
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpNjQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImYzMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZjY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRl
cm5yZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwgdmFsdWVTdHIpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlHbG9iYWwpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlHbG9iYWwuaAppbmRleCA1NTJhZTA1YTBmNGE5ZDgzNWFkZTBmOWUwZmQ5
NGRjZTk1MWI3Yzk5Li43NDJmYmUwOGQ0MjM0MzE3OGQyZjU5OTAxYWU0NDhiNWVlZjNjZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xv
YmFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKICAg
ICBXYXNtOjpHbG9iYWwqIGdsb2JhbCgpIHsgcmV0dXJuIG1fZ2xvYmFsLnB0cigpOyB9CisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBKU1dlYkFz
c2VtYmx5R2xvYmFsKFZNJiwgU3RydWN0dXJlKiwgUmVmPFdhc206Okdsb2JhbD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCmluZGV4IDE0NWVlNzgzOGRjZWZlZjY4YWU5OTQ5ZWY3ZjdhOGFmMjQ4YzFlYTYuLmRlNzkx
NDYyMGI4NzAwNTEyMzMyNzliMzRmNzE1MWQyNGU1OWJkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCkBAIC0xMzEs
NiArMTMxLDM2IEBAIFdhc206OlBhZ2VDb3VudCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZ3Jvd24udmFs
dWUoKTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBX
YXNtOjpQYWdlQ291bnQgbWluaW11bSA9IG1fbWVtb3J5LT5pbml0aWFsKCk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIAorICAgIFdhc206OlBhZ2VDb3Vu
dCBtYXhpbXVtID0gbV9tZW1vcnktPm1heGltdW0oKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIHsgfSk7CisKKyAgICBKU09iamVjdCogcmVzdWx0OworICAgIGlmIChtYXhp
bXVtLmlzVmFsaWQoKSkgeworICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDMpOworICAgICAg
ICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1heGlt
dW0iKSwganNOdW1iZXIobWF4aW11bS5wYWdlQ291bnQoKSkpOworICAgIH0gZWxzZQorICAgICAg
ICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFn
ZUNvdW50KCkpKTsKKworICAgIFdhc206Ok1lbW9yeVNoYXJpbmdNb2RlIHNoYXJlZCA9IG1fbWVt
b3J5LT5zaGFyaW5nTW9kZSgpOworICAgIGlmIChzaGFyZWQgPT0gV2FzbTo6TWVtb3J5U2hhcmlu
Z01vZGU6OkRlZmF1bHQpCisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAic2hhcmVkIiksIGpzQm9vbGVhbihmYWxzZSkpOworICAgIGVsc2UK
KyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJzaGFyZWQiKSwganNCb29sZWFuKHRydWUpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
Kwogdm9pZCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93U3VjY2Vzc0NhbGxiYWNrKFZNJiB2bSwg
V2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3Vu
dCkKIHsKICAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIG91dCB0aGUgb2xkIGFycmF5IGJ1ZmZlciBi
ZWNhdXNlIGl0IG1pZ2h0IG5vdyBiZSBwb2ludGluZyB0byBzdGFsZSBtZW1vcnkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKaW5k
ZXggMzYzODAzZWU1NDBkOWY0YWM0NDQ5OGQxMzg4Njk2MDA0ZTBkZDgxZC4uZmY0YmE5YmNlZTU0
NzMzYzFmMTc0ZTY3NDFiODUxMTgzODA4MDc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuaApAQCAtNjAsNiArNjAsOCBAQCBw
dWJsaWM6CiAgICAgV2FzbTo6UGFnZUNvdW50IGdyb3coVk0mLCBKU0dsb2JhbE9iamVjdCosIHVp
bnQzMl90IGRlbHRhKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGdyb3dTdWNjZXNzQ2Fs
bGJhY2soVk0mLCBXYXNtOjpQYWdlQ291bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQg
bmV3UGFnZUNvdW50KTsKIAorICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CisK
IHByaXZhdGU6CiAgICAgSlNXZWJBc3NlbWJseU1lbW9yeShWTSYsIFN0cnVjdHVyZSopOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCmluZGV4IGFhODM2YWVkNGQyOWE4M2Rh
OTgyZTA0YWMzNjFkYTBiMzlmNGJjNjEuLmYxYzE4MzdhMDcxNWNkZGNlZDU3MTIxMDMxMTBkOGU5
ZTkzZjBmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlUYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVRhYmxlLmNwcApAQCAtMTI2LDYgKzEyNiwzMiBAQCB2b2lkIEpTV2ViQXNzZW1i
bHlUYWJsZTo6Y2xlYXIodWludDMyX3QgaW5kZXgpCiAgICAgbV90YWJsZS0+Y2xlYXIoaW5kZXgp
OwogfQogCitKU09iamVjdCogSlNXZWJBc3NlbWJseVRhYmxlOjp0eXBlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisg
ICAgV2FzbTo6VGFibGVFbGVtZW50VHlwZSBlbGVtZW50ID0gbV90YWJsZS0+dHlwZSgpOworICAg
IEpTU3RyaW5nKiBlbGVtZW50U3RyID0gbnVsbHB0cjsKKyAgICBpZiAoZWxlbWVudCA9PSBXYXNt
OjpUYWJsZUVsZW1lbnRUeXBlOjpGdW5jcmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250
cml2aWFsU3RyaW5nKHZtLCAiZnVuY3JlZiIpOworICAgIGVsc2UgaWYgKGVsZW1lbnQgPT0gV2Fz
bTo6VGFibGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNO
b250cml2aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7CisKKyAgICB1aW50MzJfdCBtaW5pbXVt
ID0gbV90YWJsZS0+bGVuZ3RoKCk7CisKKyAgICBKU09iamVjdCogcmVzdWx0OworICAgIGF1dG8g
bWF4aW11bSA9IG1fdGFibGUtPm1heGltdW0oKTsKKyAgICBpZiAobWF4aW11bSkgeworICAgICAg
ICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDMpOyAgICAgICAKKyAgICAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtYXhpbXVtIiksIGpzTnVtYmVyKCpt
YXhpbXVtKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2Jq
ZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisK
KyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1p
bmltdW0iKSwganNOdW1iZXIobWluaW11bSkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVRhYmxlLmgKaW5kZXggZDA2OTM3ODZmYjMzMTg0ZDY1NDZmZDNmYmViNGQ1ZWE0
MDgyNDczMC4uZmQ1OWYyMjQ0ZmNlMTcwZDUwN2Q5YWYzZjFlYmMzOTE0ZDU4MGMxYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgK
QEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0KHVpbnQzMl90LCBXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbiopOwogICAgIHZvaWQgc2V0KHVpbnQzMl90LCBKU1ZhbHVlKTsK
ICAgICB2b2lkIGNsZWFyKHVpbnQzMl90KTsKKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9i
amVjdCopOwogCiAgICAgV2FzbTo6VGFibGUqIHRhYmxlKCkgeyByZXR1cm4gbV90YWJsZS5wdHIo
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUdsb2JhbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKaW5kZXggYmU4MTE0ODBlNzNjMjJkMDg5N2U5
NWVjYjExODVlNTI1YjIyN2VlYy4uZjg5MmNjNmY4MGRjY2I5MWNlMDQzZjUzODM4NzM2NzQ0Nzk1
ODBkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xv
YmFsUHJvdG9GdW5jVmFsdWVPZik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlKTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1
bmNUeXBlKTsKIH0KIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmx1dC5o
IgpAQCAtNDksNiArNTAsOCBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlHbG9iYWxQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5Lkdsb2JhbCIsICZCYQogLyogU291cmNlIGZv
ciBXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90b3R5cGVHbG9i
YWxXZWJBc3NlbWJseUdsb2JhbAogIHZhbHVlT2Ygd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNW
YWx1ZU9mIEZ1bmN0aW9uIDAKKyB0eXBlICAgIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVHlw
ZSAgICBGdW5jdGlvbiAwCisKICBAZW5kCiAgKi8KIApAQCAtNzYsNyArNzksNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mLCAoSlNH
bG9iYWxPYmplY3QqIGdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUoZ2xvYmFsLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCkpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5j
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNU
eXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg0LDYgKzg3LDE2IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqCiAgICAgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsID0gZ2V0R2xv
YmFsKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKKyAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbC0+dHlwZShn
bG9iYWxPYmplY3QpKSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwor
ICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdsb2JhbCA9IGdldEdsb2JhbChnbG9iYWxPYmplY3Qs
IHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVj
dCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmgKaW5kZXggYWM1YmU4YTBjZWFhMmRjY2JiYzNh
NzBiNzZjMWQ0MTdlMDlhODg2ZC4uNzAzNjhiNmRiNGEyODIzYWQwZTgxODhhOWYyNGQ4ZGU0MDg5
YzBiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIAog
ICAgIERFQ0xBUkVfSU5GTzsKIAorICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7
CisKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1
cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5UHJvdG90eXBlLmNwcAppbmRleCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5MjdhZWE2
YjhmMGIyNWUwLi45ZDEwYjRmZmQxNTU3YTVmZTMxODMxZDJiNzU3NGM3ZmZjNTJlNjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsK
IHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jR3Jvdyk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1l
bW9yeVByb3RvRnVuY0J1ZmZlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUubHV0LmgiCkBAIC01Myw2ICs1NCw3IEBAIGNvbnN0IENsYXNzSW5m
byBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVt
b3J5IiwgJkJhCiBAYmVnaW4gcHJvdG90eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cg
ICB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgYnVmZmVyIHdl
YkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yIDAKKyB0eXBlICAgd2ViQXNz
ZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBlICAgRnVuY3Rpb24gMAogQGVuZAogKi8KIApAQCAtOTYs
NiArOTgsMTcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJv
dG9GdW5jQnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG1lbW9yeS0+YnVmZmVyKGdsb2JhbE9iamVj
dCkpKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJv
dG9GdW5jVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5
TWVtb3J5KiBtZW1vcnkgPSBnZXRNZW1vcnkoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50
aGlzVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwor
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUobWVtb3J5
LT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30KKworCiBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZSogV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU+KHZtLmhlYXAp
KSBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZS5jcHAKaW5kZXggMjUxMzA5MmUzOTZkYmIwMjM0MmI2NDA0N2M3ZjVjZTIxNGM3ZjYxNS4u
NTllMGFkNzAwZmQxMGExM2JkNzk5MmE4Njc3NWY2MWE3ODc5YzBjYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3Jvdyk7CiBzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNT
ZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5s
dXQuaCIKQEAgLTU1LDYgKzU2LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5VGFibGVQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5LlRhYmxlIiwgJkJhc2UKICBncm93ICAg
d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFz
c2VtYmx5VGFibGVQcm90b0Z1bmNHZXQgICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJs
eVRhYmxlUHJvdG9GdW5jU2V0ICAgIEZ1bmN0aW9uIDIKKyB0eXBlICAgd2ViQXNzZW1ibHlUYWJs
ZVByb3RvRnVuY1R5cGUgICBGdW5jdGlvbiAwCiAgQGVuZAogICovCiAKQEAgLTE2NCw2ICsxNjYs
MTYgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNT
ZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlUYWJsZVByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNX
ZWJBc3NlbWJseVRhYmxlKiB0YWJsZSA9IGdldFRhYmxlKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0YWJsZS0+dHlwZShnbG9iYWxPYmplY3QpKSk7Cit9CisKIFdlYkFzc2Vt
Ymx5VGFibGVQcm90b3R5cGUqIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU6OmNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgYXV0byog
b2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3OGZlMDVmMWU0NzJiMTM3MDg1MmJh
MTZhZTM1MDcxOWU3OTZiZGJjLi42YTNjYzU3MWYwNTJkODE5ODhjMDVmZDg0MWExNDdiYzFmMDll
ZDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAy
MS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAg
VXBkYXRlIHdhc20gSlMtQVBJIHRlc3RzIGZvciB0aGUgdHlwZSBtZXRob2QgdG8gbGF0ZXN0IHVw
c3RyZWFtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyNDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHVwc3RyZWFtIHRlc3RzIGhhcyByZWNlbnRseSBhZGRlZCBhIHRlc3QgZm9yIHRoZSB0YWJs
ZSB0eXBlIG1ldGhvZCBhbmQKKyAgICAgICAgdXBkYXRlZCB0aGUgb3RoZXIgdHlwZSB0ZXN0cyB0
byBtZXRob2RzIHRvIGtlZXAgdXAgd2l0aCBhIHJlY2VudCBzcGVjIGNoYW5nZS4KKyAgICAgICAg
VGhpcyBhZGRzIHRob3NlIHVwZGF0ZWQgdGVzdHMgYXMgd2VsbCBhcyBub3cgZXhwZWN0YXRpb25z
IHRoZXkgcGFzcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2ds
b2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanM6CisgICAg
ICAgIChhc3NlcnRfdHlwZSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50ZXN0KToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS5qczoKKyAgICAgICAgKGFzc2VydF90eXBlKToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMDMtMTAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgSW1wcm92ZSBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBpbnRlcnBvbGF0
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xv
YmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKaW5kZXggZGNmNmI5OTEzZjEwNmYz
ZjYzYzdmZDgwOGJjMzIyZjE0NTJiOWJlZS4uMDExYzcyYjkxYzlhYWI2OTJiNGFhYjk2ZTViNTBm
Mjk1NGEyYmE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNSAr
MSwxNSBAQAogCi1GQUlMIGkzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVl
JykKLUZBSUwgaTY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJ
TCBmMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5n
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcyhteWdsb2JhbC50eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIs
IGltbXV0YWJsZQorUEFTUyBpNjQsIG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1Mg
ZjMyLCBtdXRhYmxlCitQQVNTIGYzMiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFT
UyBmNjQsIGltbXV0YWJsZQorUEFTUyBhbnlyZWYsIG11dGFibGUKK1BBU1MgYW55cmVmLCBpbW11
dGFibGUKK1BBU1MgZnVuY3JlZiwgbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBpbW11dGFibGUKK1BB
U1Mga2V5IG9yZGVyaW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKaW5kZXggMzE4YjFhYzU3OGNhYzYwNTFlYTIz
ZWNmYmI2NTI1ZmZmYjMyNTUwMS4uYTFjZmFlOTBkYjk0N2YzNDI4NjQ1MTYyNjI3OWE1NjI0MjU2
MDE5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90
eXBlLnRlbnRhdGl2ZS5hbnkuanMKQEAgLTMsOSArMywxMCBAQAogCiBmdW5jdGlvbiBhc3NlcnRf
dHlwZShhcmd1bWVudCkgewogICAgIGNvbnN0IG15Z2xvYmFsID0gbmV3IFdlYkFzc2VtYmx5Lkds
b2JhbChhcmd1bWVudCk7CisgICAgY29uc3QgZ2xvYmFsdHlwZSA9IG15Z2xvYmFsLnR5cGUoKTsK
IAotICAgIGFzc2VydF9lcXVhbHMobXlnbG9iYWwudHlwZS52YWx1ZSwgYXJndW1lbnQudmFsdWUp
OwotICAgIGFzc2VydF9lcXVhbHMobXlnbG9iYWwudHlwZS5tdXRhYmxlLCBhcmd1bWVudC5tdXRh
YmxlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbHR5cGUudmFsdWUsIGFyZ3VtZW50LnZhbHVl
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGdsb2JhbHR5cGUubXV0YWJsZSwgYXJndW1lbnQubXV0YWJs
ZSk7CiB9CiAKIHRlc3QoKCkgPT4gewpAQCAtNTgsNyArNTksNyBAQCB0ZXN0KCgpID0+IHsKIAog
dGVzdCgoKSA9PiB7CiAgICAgY29uc3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFs
KHsidmFsdWUiOiAiaTMyIiwgIm11dGFibGUiOiB0cnVlfSk7Ci0gICAgY29uc3QgcHJvcGVydHlO
YW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpOworICAgIGNv
bnN0IHByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2JhbC50
eXBlKCkpOwogICAgIGFzc2VydF9lcXVhbHMocHJvcGVydHlOYW1lc1swXSwgIm11dGFibGUiKTsK
ICAgICBhc3NlcnRfZXF1YWxzKHByb3BlcnR5TmFtZXNbMV0sICJ2YWx1ZSIpOwogfSwgImtleSBv
cmRlcmluZyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggZGNmNmI5OTEzZjEwNmYzZjYzYzdmZDgwOGJjMzIyZjE0NTJiOWJlZS4uMDExYzcyYjkx
YzlhYWI2OTJiNGFhYjk2ZTViNTBmMjk1NGEyYmE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBt
dXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50
eXBlLnZhbHVlJykKLUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFs
dWUnKQotRkFJTCBpNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1G
QUlMIGYzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0
LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYs
IGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9i
YWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVm
LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5
cGUpJykKK1BBU1MgaTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwg
bXV0YWJsZQorUEFTUyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMy
LCBpbW11dGFibGUKK1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNT
IGFueXJlZiwgbXV0YWJsZQorUEFTUyBhbnlyZWYsIGltbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBt
dXRhYmxlCitQQVNTIGZ1bmNyZWYsIGltbXV0YWJsZQorUEFTUyBrZXkgb3JkZXJpbmcKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBl
LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDQ5MmZkMzY0ZGMwMDljNjJhMDM1OTZi
MTY1NzAxMGRhOWEyNjIxZjUuLmJmMDY1NWVkNDVmOGIxZGFmNzU5Njg2YTVlNWY2ZjhlOWVlNTkz
YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
bWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAK
LUZBSUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8gaW5pdGlh
bCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVt
b3J5LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbmUtemVy
byBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnku
dHlwZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBzaGFyZWQg
bWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlw
ZS5taW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJv
IGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBt
YXhpbXVtCitQQVNTIG5vbi1zaGFyZWQgbWVtb3J5CitQQVNTIHNoYXJlZCBtZW1vcnkKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZl
LmFueS5qcwppbmRleCBlZmU5ZTJhMzdkZWI3YmI2ZWY4NDFlOTgwOWVlZTc4MWM5ZWZmYjlmLi5h
OTZhMzIyN2FkY2E3ZmYwOWRlNzVlNWY3YzQxMmFiOTViMGQ1MDNkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5
L3R5cGUudGVudGF0aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwpA
QCAtMywxMSArMywxMiBAQAogCiBmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgewogICAg
IGNvbnN0IG1lbW9yeSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoYXJndW1lbnQpOworICAgIGNv
bnN0IG1lbW9yeXR5cGUgPSBtZW1vcnkudHlwZSgpCiAKLSAgICBhc3NlcnRfZXF1YWxzKG1lbW9y
eS50eXBlLm1pbmltdW0sIGFyZ3VtZW50Lm1pbmltdW0pOwotICAgIGFzc2VydF9lcXVhbHMobWVt
b3J5LnR5cGUubWF4aW11bSwgYXJndW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyht
ZW1vcnl0eXBlLm1pbmltdW0sIGFyZ3VtZW50Lm1pbmltdW0pOworICAgIGFzc2VydF9lcXVhbHMo
bWVtb3J5dHlwZS5tYXhpbXVtLCBhcmd1bWVudC5tYXhpbXVtKTsKICAgICBpZiAoYXJndW1lbnQu
c2hhcmVkICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlw
ZS5zaGFyZWQsIGFyZ3VtZW50LnNoYXJlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWVtb3J5
dHlwZS5zaGFyZWQsIGFyZ3VtZW50LnNoYXJlZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVt
b3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTJmZDM2NGRjMDA5YzYyYTAz
NTk2YjE2NTcwMTBkYTlhMjYyMWY1Li5iZjA2NTVlZDQ1ZjhiMWRhZjc1OTY4NmE1ZTVmNmY4ZTll
ZTU5M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTEsOCArMSw4IEBACiAKLUZBSUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZB
SUwgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11
bScpCi1GQUlMIE5vbmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmlt
dW0nKQotRkFJTCBzaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhp
bXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVt
CitQQVNTIE5vbmUtemVybyBtYXhpbXVtCitQQVNTIG5vbi1zaGFyZWQgbWVtb3J5CitQQVNTIHNo
YXJlZCBtZW1vcnkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YjEzNDAyYTI2MTA0MzNiYzI3ZDI5Yjc2YzRhMTM5NTU5MmZlN2IyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5v
IG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2
ZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFi
bGUvdHlwZS50ZW50YXRpdmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTMwZTBhZDAyOWM1MmY3ODFj
OTNiZGFiZmU2MDc3N2M2NDFkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRp
dmUuYW55LmpzCkBAIC0wLDAgKzEsMjYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csZGVkaWNh
dGVkd29ya2VyLGpzc2hlbGwKKy8vIE1FVEE6IHNjcmlwdD0vd2FzbS9qc2FwaS9hc3NlcnRpb25z
LmpzCisKK2Z1bmN0aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7CisgICAgY29uc3QgbXl0YWJs
ZSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZShhcmd1bWVudCk7CisgICAgY29uc3QgdGFibGV0eXBl
ID0gbXl0YWJsZS50eXBlKCkKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5taW5pbXVtLCBh
cmd1bWVudC5taW5pbXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5tYXhpbXVtLCBh
cmd1bWVudC5tYXhpbXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5lbGVtZW50LCBh
cmd1bWVudC5lbGVtZW50KTsKK30KKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAi
bWluaW11bSI6IDAsICJlbGVtZW50IjogImZ1bmNyZWYifSk7Cit9LCAiWmVybyBpbml0aWFsLCBu
byBtYXhpbXVtIik7CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0i
OiA1LCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJOb24temVybyBpbml0aWFsLCBubyBt
YXhpbXVtIik7CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAw
LCAibWF4aW11bSI6IDAsICJlbGVtZW50IjogImZ1bmNyZWYiIH0pOworfSwgIlplcm8gbWF4aW11
bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgIm1h
eGltdW0iOiA1LCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJOb25lLXplcm8gbWF4aW11
bSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBiMTM0MDJhMjYxMDQzM2JjMjdkMjliNzZjNGExMzk1NTkyZmU3YjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACisKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJv
IGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBt
YXhpbXVtCisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNDM1YTk2M2MyY2UyOTlmNmMzYjRiMmM2YWQ2ZmRkYjAyNzdiZWM4Ni4uNTNhMmY4
NWFmNGI5ZmEwYmZhYzBhNzM2NmQ4YTQxNzZkOTEzYzdkNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0w
My0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHRlc3RzIGZvciB0aGUgbmV3IHR5cGUgbWV0aG9kIG9uIGNlcnRhaW4gSlMtQVBJIHdhc20gb2Jq
ZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2FzbS9qcy1hcGkvZ2xvYmFsLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydC50aHJvd3MpOgor
ICAgICAgICAqIHdhc20vanMtYXBpL3RhYmxlLmpzOgorICAgICAgICAoYXNzZXJ0LnRydXRoeSk6
CisgICAgICAgICogd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanM6CisKIDIwMjEtMDMtMTAgIFRh
ZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9y
IHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVhcCB0b3AKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS9qcy1hcGkvZ2xvYmFsLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS9nbG9iYWwuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDEwMTMxODI5NTUxZWJlMmQzZTRlMGU5M2I3ZDg4NTA1YWM4YzU2YwotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCkBAIC0wLDAgKzEsMjkgQEAK
K2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworeworICAgIGFzc2VydC50
aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCBnID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7
dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBmYWxzZX0pOworICAgICAgICBnLnR5cGUuY2FsbCh7fSk7
CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8IHZhbHVlIHRvIGJlIGFuIGluc3Rh
bmNlIG9mIFdlYkFzc2VtYmx5Lkdsb2JhbCIpOworCisgICAgY29uc3QgaTMyID0gbmV3IFdlYkFz
c2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiBmYWxzZX0pLnR5cGUoKTsKKyAg
ICBhc3NlcnQuZXEoT2JqZWN0LmtleXMoaTMyKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcShp
MzIudmFsdWUsICJpMzIiKTsKKyAgICBhc3NlcnQuZXEoaTMyLm11dGFibGUsIGZhbHNlKTsKKwor
ICAgIGNvbnN0IGkzMm0gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImkzMiIsIG11
dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGkzMm0udmFsdWUsICJpMzIiKTsK
KyAgICBhc3NlcnQuZXEoaTMybS5tdXRhYmxlLCB0cnVlKTsKKworICAgIGNvbnN0IGk2NCA9IG5l
dyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTY0IiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUo
KTsKKyAgICBhc3NlcnQuZXEoaTY0LnZhbHVlLCAiaTY0Iik7CisKKyAgICBjb25zdCBmMzIgPSBu
ZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImYzMiIsIG11dGFibGU6IHRydWV9KS50eXBl
KCk7CisgICAgYXNzZXJ0LmVxKGYzMi52YWx1ZSwgImYzMiIpOworCisgICAgY29uc3QgZjY0ID0g
bmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmNjQiLCBtdXRhYmxlOiB0cnVlfSkudHlw
ZSgpOworICAgIGFzc2VydC5lcShmNjQudmFsdWUsICJmNjQiKTsKKworICAgIGNvbnN0IGY2NG4g
PSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKGY2NCkudHlwZSgpOworICAgIGFzc2VydC5lcShmNjQu
dmFsdWUsIGY2NG4udmFsdWUpOworICAgIGFzc2VydC5lcShmNjQubXV0YWJsZSwgZjY0bi5tdXRh
YmxlKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3dhc20vanMtYXBpL3RhYmxlLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcwppbmRl
eCBkYjc4NzhmMGNhMjNkYzllMWYxOTYyYThmNTY1NjcwNjk4OGUwMmRmLi44MDA0ZTY3ZTcyZWVk
N2E4ZGMzZmJiZDI5YTNhZGIyNjk3ZTA3YzdhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMt
YXBpL3RhYmxlLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMKQEAgLTM5MCwz
ICszOTAsMzMgQEAgYXNzZXJ0LnRocm93cygoKSA9PiBXZWJBc3NlbWJseS5UYWJsZS5wcm90b3R5
cGUuZ3Jvdyh1bmRlZmluZWQpLCBUeXBlRXJyb3IsIGBleHAKICAgICB9CiAgICAgYXNzZXJ0LnRy
dXRoeSh0aHJldyk7CiB9CisKK3sKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAg
Y29uc3QgdCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgZWxlbWVudDogImZ1
bmNyZWYifSk7CisgICAgICAgIHQudHlwZS5jYWxsKHt9KTsKKyAgICB9LCBUeXBlRXJyb3IsICJl
eHBlY3RlZCB8dGhpc3wgdmFsdWUgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgV2ViQXNzZW1ibHkuVGFi
bGUiKTsKKworICAgIGNvbnN0IHQwID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1
LCBlbGVtZW50OiAiZnVuY3JlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlz
KHQwKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcSh0MC5taW5pbXVtLCA1KTsKKyAgICBhc3Nl
cnQuZXEodDAuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0IHQxID0gbmV3IFdlYkFz
c2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxlbWVudDogImZ1bmNyZWYi
fSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MSkubGVuZ3RoLCAzKTsKKyAg
ICBhc3NlcnQuZXEodDEubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVxKHQxLm1heGltdW0sIDEw
KQorICAgIGFzc2VydC5lcSh0MS5lbGVtZW50LCAiZnVuY3JlZiIpOworCisgICAgY29uc3QgdDIg
PSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIG1heGltdW06IDEwLCBlbGVtZW50
OiAiZXh0ZXJucmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDIpLmxl
bmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIDUpOworICAgIGFzc2VydC5lcSh0
Mi5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwgImV4dGVybnJlZiIpOwor
CisgICAgY29uc3QgdDMgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUodDIpLnR5cGUoKTsKKyAgICBh
c3NlcnQuZXEoT2JqZWN0LmtleXModDIpLmxlbmd0aCwgT2JqZWN0LmtleXModDMpLmxlbmd0aCk7
CisgICAgYXNzZXJ0LmVxKHQyLm1pbmltdW0sIHQzLm1pbmltdW0pOworICAgIGFzc2VydC5lcSh0
Mi5tYXhpbXVtLCB0My5tYXhpbXVtKQorICAgIGFzc2VydC5lcSh0Mi5lbGVtZW50LCB0My5lbGVt
ZW50KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21l
bW9yeS5qcwppbmRleCA3MGViZGUyODYyMzJlMTgxZjVlZGNjNTI5YWQyMGU0ZjZhMTUwOTM1Li45
ZWEyYjJiZmI4OWYxZGE1MjNkZDFhYmI1YmFkZWM0NDhlMDBjYTI1IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkv
dGVzdF9tZW1vcnkuanMKQEAgLTM5OSwzICszOTksMzMgQEAgdGVzdChmdW5jdGlvbigpIHsKICAg
ICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5tZW1vcnkuYnVmZmVyLmJ5dGVMZW5ndGgsIDIw
ICogcGFnZVNpemUpOwogICAgIGFzc2VydC50cnV0aHkoaW5zdGFuY2UuZXhwb3J0cy5tZW1vcnkg
aW5zdGFuY2VvZiBXZWJBc3NlbWJseS5NZW1vcnkpOwogfQorCit0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICBjb25zdCBtID0gbmV3IFdlYkFzc2Vt
Ymx5Lk1lbW9yeSh7bWluaW11bTo0MCwgbWF4aW11bTogMTAwfSk7CisgICAgICAgIG0udHlwZS5j
YWxsKHt9KTsKKyAgICB9LCBUeXBlRXJyb3IsICJXZWJBc3NlbWJseS5NZW1vcnkucHJvdG90eXBl
LmJ1ZmZlciBnZXR0ZXIgY2FsbGVkIHdpdGggbm9uIFdlYkFzc2VtYmx5Lk1lbW9yeSB8dGhpc3wg
dmFsdWUiKTsKKworICAgIGNvbnN0IG1lbW9yeSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe2lu
aXRpYWw6IDIwfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1lbW9yeS50eXBlKCkpLmxl
bmd0aCwgMik7CisgICAgYXNzZXJ0LmVxKG1lbW9yeS50eXBlKCkubWluaW11bSwgMjApOworICAg
IGFzc2VydC5lcShtZW1vcnkudHlwZSgpLnNoYXJlZCwgZmFsc2UpOworCisgICAgY29uc3QgbWVt
b3J5MiA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe21pbmltdW06NDAsIG1heGltdW06IDEwMH0p
OworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkyLnR5cGUoKSkubGVuZ3RoLCAzKTsK
KyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBlKCkubWluaW11bSwgNDApOworICAgIGFzc2VydC5l
cShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCAxMDApOworICAgIGFzc2VydC5lcShtZW1vcnkudHlw
ZSgpLnNoYXJlZCwgZmFsc2UpOworCisgICAgY29uc3QgbWVtb3J5MyA9IG5ldyBXZWJBc3NlbWJs
eS5NZW1vcnkobWVtb3J5Mi50eXBlKCkpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1v
cnkyLnR5cGUoKSkubGVuZ3RoLCBPYmplY3Qua2V5cyhtZW1vcnkzLnR5cGUoKSkubGVuZ3RoKTsK
KyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBlKCkubWluaW11bSwgbWVtb3J5My50eXBlKCkubWlu
aW11bSk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1heGltdW0sIG1lbW9yeTMudHlw
ZSgpLm1heGltdW0pOworICAgIGFzc2VydC5lcShtZW1vcnkudHlwZSgpLnNoYXJlZCwgZmFsc2Up
OworCisgICAgY29uc3QgbWVtb3J5NCA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe21pbmltdW06
IDEwLCBtYXhpbXVtOiAyMCwgc2hhcmVkOnRydWV9KTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0Lmtl
eXMobWVtb3J5NC50eXBlKCkpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTQudHlw
ZSgpLm1pbmltdW0sIDEwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5NC50eXBlKCkubWF4aW11bSwg
MjApOworICAgIGFzc2VydC5lcShtZW1vcnk0LnR5cGUoKS5zaGFyZWQsIHRydWUpOworfSkKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424329</attachid>
            <date>2021-03-26 01:55:46 -0700</date>
            <delta_ts>2021-03-29 09:14:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210326095544.patch</filename>
            <type>text/plain</type>
            <size>34019</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZTlmZGFiNThjNTk3OGE4MTIxY2RiYTk3OTUxMzRiMTRhZjJiODQ5Li5jYjM1ODgxOTExMTM4NmFi
NmNkNGRmMDI4MjMxOThiMDVmYzBhNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0xMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eUdsb2JhbDo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmg6
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseU1lbW9yeTo6dHlwZSk6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5VGFibGU6OnR5cGUpOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisKIDIwMjEtMDMtMTAgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQUkgdmFsaWRhdG9yIHBhdGNocG9pbnQgc2hvdWxkIHJlYWQgaGVh
cCB0b3AKQEAgLTEyNDAsNyArMTI2OSw3IEBACiAKICAgICAgICAgUmVtb3ZlZCBhbiB1bm5lY2Vz
c2FyeSBBU1NFUlQuCiAgICAgICAgIFRoaXMgYXNzZXJ0IGNoZWNrZWQgdGhhdCB0aGUgbWluaW11
bSBzaXplIHdhc24ndCBVSU5UX01BWCB3aGljaCBJIGJlbGlldmUgd2FzCi0gICAgICAgIGludGVu
ZGVkIHRvIG1ha2Ugc3VyZSB0aGUgbWluaW11bSBzaXplIHdhcyBjaGFuZ2VkIHdoaWxlIGNvbXB1
dGluZyB0aGUgIAorICAgICAgICBpbnRlbmRlZCB0byBtYWtlIHN1cmUgdGhlIG1pbmltdW0gc2l6
ZSB3YXMgY2hhbmdlZCB3aGlsZSBjb21wdXRpbmcgdGhlCiAgICAgICAgIGRpc2p1bmN0aW9uJ3Mg
c2l6ZSBhbmQgb2Zmc2V0cy4gIFRob3NlIGNhbGN1bGF0aW9ucyBpbnZvbHZlIGNoZWNrZWQgYXJp
dGhtZXRpYywKICAgICAgICAgd2hpY2ggd291bGQgY2F0Y2ggYW55IG92ZXJmbG93LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlhODEyMTEuLmEzNTk4
NTRkYTQ3M2E5MjkzYzFiMWQ5NTQwZmJkNmIxODc3YWNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDggQEAgdm9pZCBKU1dlYkFzc2VtYmx5R2xvYmFs
Ojp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogfQogCitKU09i
amVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgYm9vbCBpc011dGFibGU7CisgICAgaWYg
KG1fZ2xvYmFsLT5tdXRhYmlsaXR5KCkgPT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246Ok11dGFi
bGUpCisgICAgICAgIGlzTXV0YWJsZSA9IHRydWU7CisgICAgZWxzZQorICAgICAgICBpc011dGFi
bGUgPSBmYWxzZTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm11dGFibGUiKSwganNCb29sZWFuKGlzTXV0YWJsZSkpOworCisgICAgV2FzbTo6
VHlwZSB2YWx1ZSA9IG1fZ2xvYmFsLT50eXBlKCk7CisgICAgSlNTdHJpbmcqIHZhbHVlU3RyID0g
bnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlLmtpbmQpIHsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiaTMy
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKKyAgICAg
ICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJpNjQiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgorICAgICAgICB2YWx1ZVN0ciA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImYzMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgIHZhbHVlU3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZjY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRl
cm5yZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAidmFsdWUiKSwgdmFsdWVTdHIpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlHbG9iYWwpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlHbG9iYWwuaAppbmRleCA1NTJhZTA1YTBmNGE5ZDgzNWFkZTBmOWUwZmQ5
NGRjZTk1MWI3Yzk5Li43NDJmYmUwOGQ0MjM0MzE3OGQyZjU5OTAxYWU0NDhiNWVlZjNjZWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xv
YmFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKICAg
ICBXYXNtOjpHbG9iYWwqIGdsb2JhbCgpIHsgcmV0dXJuIG1fZ2xvYmFsLnB0cigpOyB9CisgICAg
SlNPYmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0ZToKICAgICBKU1dlYkFz
c2VtYmx5R2xvYmFsKFZNJiwgU3RydWN0dXJlKiwgUmVmPFdhc206Okdsb2JhbD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCmluZGV4IDE0NWVlNzgzOGRjZWZlZjY4YWU5OTQ5ZWY3ZjdhOGFmMjQ4YzFlYTYuLjZlMjQw
OGUyNzQ3ZjY3YzAzMTUxMmQ4ZTY1YzI3YmI1ZDJhZGNiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCkBAIC0xMzEs
NiArMTMxLDMzIEBAIFdhc206OlBhZ2VDb3VudCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93KFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZ3Jvd24udmFs
dWUoKTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBX
YXNtOjpQYWdlQ291bnQgbWluaW11bSA9IG1fbWVtb3J5LT5pbml0aWFsKCk7CisgICAgV2FzbTo6
UGFnZUNvdW50IG1heGltdW0gPSBtX21lbW9yeS0+bWF4aW11bSgpOworCisgICAgSlNPYmplY3Qq
IHJlc3VsdDsKKyAgICBpZiAobWF4aW11bS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgcmVzdWx0ID0g
Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpLCAzKTsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJtYXhpbXVtIiksIGpzTnVtYmVyKG1heGltdW0ucGFnZUNvdW50KCkp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCAyKTsKKworICAgIHJl
c3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWluaW11bSIp
LCBqc051bWJlcihtaW5pbXVtLnBhZ2VDb3VudCgpKSk7CisKKyAgICBXYXNtOjpNZW1vcnlTaGFy
aW5nTW9kZSBzaGFyZWQgPSBtX21lbW9yeS0+c2hhcmluZ01vZGUoKTsKKyAgICBpZiAoc2hhcmVk
ID09IFdhc206Ok1lbW9yeVNoYXJpbmdNb2RlOjpEZWZhdWx0KQorICAgICAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNoYXJlZCIpLCBqc0Jvb2xl
YW4oZmFsc2UpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hhcmVkIiksIGpzQm9vbGVhbih0cnVlKSk7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCisKIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9yeTo6Z3Jvd1N1
Y2Nlc3NDYWxsYmFjayhWTSYgdm0sIFdhc206OlBhZ2VDb3VudCBvbGRQYWdlQ291bnQsIFdhc206
OlBhZ2VDb3VudCBuZXdQYWdlQ291bnQpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBjbGVhciBvdXQg
dGhlIG9sZCBhcnJheSBidWZmZXIgYmVjYXVzZSBpdCBtaWdodCBub3cgYmUgcG9pbnRpbmcgdG8g
c3RhbGUgbWVtb3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseU1lbW9yeS5oCmluZGV4IDM2MzgwM2VlNTQwZDlmNGFjNDQ0OThkMTM4ODY5NjAw
NGUwZGQ4MWQuLmZmNGJhOWJjZWU1NDczM2MxZjE3NGU2NzQxYjg1MTE4MzgwODA3NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5
LmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAgIFdhc206OlBhZ2VDb3VudCBncm93KFZN
JiwgSlNHbG9iYWxPYmplY3QqLCB1aW50MzJfdCBkZWx0YSk7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBncm93U3VjY2Vzc0NhbGxiYWNrKFZNJiwgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VD
b3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCk7CiAKKyAgICBKU09iamVjdCogdHlw
ZShKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpTV2ViQXNzZW1ibHlNZW1vcnko
Vk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcApp
bmRleCBhYTgzNmFlZDRkMjlhODNkYTk4MmUwNGFjMzYxZGEwYjM5ZjRiYzYxLi5mMWMxODM3YTA3
MTVjZGRjZWQ1NzEyMTAzMTEwZDhlOWU5M2YwZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKQEAgLTEyNiw2ICsxMjYs
MzIgQEAgdm9pZCBKU1dlYkFzc2VtYmx5VGFibGU6OmNsZWFyKHVpbnQzMl90IGluZGV4KQogICAg
IG1fdGFibGUtPmNsZWFyKGluZGV4KTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNzZW1ibHlUYWJs
ZTo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKworICAgIFdhc206OlRhYmxlRWxlbWVudFR5cGUgZWxlbWVudCA9
IG1fdGFibGUtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogZWxlbWVudFN0ciA9IG51bGxwdHI7Cisg
ICAgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50VHlwZTo6RnVuY3JlZikKKyAgICAg
ICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsKKyAgICBl
bHNlIGlmIChlbGVtZW50ID09IFdhc206OlRhYmxlRWxlbWVudFR5cGU6OkV4dGVybnJlZikKKyAg
ICAgICAgZWxlbWVudFN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJlZiIpOwor
CisgICAgdWludDMyX3QgbWluaW11bSA9IG1fdGFibGUtPmxlbmd0aCgpOworCisgICAgSlNPYmpl
Y3QqIHJlc3VsdDsKKyAgICBhdXRvIG1heGltdW0gPSBtX3RhYmxlLT5tYXhpbXVtKCk7CisgICAg
aWYgKG1heGltdW0pIHsKKyAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLCAzKTsgICAgICAgCisg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bWF4aW11bSIpLCBqc051bWJlcigqbWF4aW11bSkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1
bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0pKTsKKyAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVsZW1lbnQi
KSwgZWxlbWVudFN0cik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oCmluZGV4IGQwNjkzNzg2ZmIz
MzE4NGQ2NTQ2ZmQzZmJlYjRkNWVhNDA4MjQ3MzAuLmZkNTlmMjI0NGZjZTE3MGQ1MDdkOWFmM2Yx
ZWJjMzkxNGQ1ODBjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlUYWJsZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldCh1aW50MzJfdCwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qKTsKICAgICB2b2lkIHNl
dCh1aW50MzJfdCwgSlNWYWx1ZSk7CiAgICAgdm9pZCBjbGVhcih1aW50MzJfdCk7CisgICAgSlNP
YmplY3QqIHR5cGUoSlNHbG9iYWxPYmplY3QqKTsKIAogICAgIFdhc206OlRhYmxlKiB0YWJsZSgp
IHsgcmV0dXJuIG1fdGFibGUucHRyKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCmluZGV4
IGJlODExNDgwZTczYzIyZDA4OTdlOTVlY2IxMTg1ZTUyNWIyMjdlZWMuLmY4OTJjYzZmODBkY2Ni
OTFjZTA0M2Y1MzgzODczNjc0NDc5NTgwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YpOwogc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1
ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFBy
b3RvU2V0dGVyRnVuY1ZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZS5sdXQuaCIKQEAgLTQ5LDYgKzUwLDggQEAgY29uc3QgQ2xhc3NJbmZv
IFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5HbG9i
YWwiLCAmQmEKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgK
ICBAYmVnaW4gcHJvdG90eXBlR2xvYmFsV2ViQXNzZW1ibHlHbG9iYWwKICB2YWx1ZU9mIHdlYkFz
c2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZiBGdW5jdGlvbiAwCisgdHlwZSAgICB3ZWJBc3Nl
bWJseUdsb2JhbFByb3RvRnVuY1R5cGUgICAgRnVuY3Rpb24gMAorCiAgQGVuZAogICovCiAKQEAg
LTc2LDcgKzc5LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFs
UHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbC0+Z2xvYmFsKCktPmdldChn
bG9iYWxPYmplY3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFz
c2VtYmx5R2xvYmFsUHJvdG9GdW5jVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04
NCw2ICs4NywxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQ
cm90b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KgogICAgIEpTV2ViQXNzZW1ibHlH
bG9iYWwqIGdsb2JhbCA9IGdldEdsb2JhbChnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwogCisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZShnbG9iYWwtPnR5cGUoZ2xvYmFsT2JqZWN0KSkpOworfQorCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBnbG9iYWwgPSBn
ZXRHbG9iYWwoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbC0+Z2xv
YmFsKCktPmdldChnbG9iYWxPYmplY3QpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCmluZGV4
IGFjNWJlOGEwY2VhYTJkY2NiYmMzYTcwYjc2YzFkNDE3ZTA5YTg4NmQuLjcwMzY4YjZkYjRhMjgy
M2FkMGU4MTg4YTlmMjRkOGRlNDA4OWMwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaApAQCAtNDgs
NiArNDgsOCBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKKyAgICBKU09iamVjdCog
dHlwZShKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5R2xvYmFs
UHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYs
IEpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKaW5kZXggN2UyMDhjMzEw
MWMyMzcxNjMyMjljYzU3OTI3YWVhNmI4ZjBiMjVlMC4uOWQxMGI0ZmZkMTU1N2E1ZmUzMTgzMWQy
Yjc1NzRjN2ZmYzUyZTY5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogbmFtZXNwYWNlIEpTQyB7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3cpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBlKTsKIH0K
IAogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1dC5oIgpAQCAtNTMsNiAr
NTQsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU6OnNfaW5m
byA9IHsgIldlYkFzc2VtYmx5Lk1lbW9yeSIsICZCYQogQGJlZ2luIHByb3RvdHlwZVRhYmxlV2Vi
QXNzZW1ibHlNZW1vcnkKICBncm93ICAgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93ICAg
RnVuY3Rpb24gMQogIGJ1ZmZlciB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciBBY2Nl
c3NvciAwCisgdHlwZSAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jVHlwZSAgIEZ1bmN0aW9u
IDAKIEBlbmQKICovCiAKQEAgLTk2LDYgKzk4LDE3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShtZW1v
cnktPmJ1ZmZlcihnbG9iYWxPYmplY3QpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworCisgICAgSlNXZWJBc3NlbWJseU1lbW9yeSogbWVtb3J5ID0gZ2V0TWVtb3J5KGdsb2JhbE9i
amVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgeyB9KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKG1lbW9yeS0+dHlwZShnbG9iYWxPYmplY3QpKSk7Cit9CisKKwogV2Vi
QXNzZW1ibHlNZW1vcnlQcm90b3R5cGUqIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlOjpjcmVh
dGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSogc3RydWN0dXJlKQogewogICAg
IGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUodm0sIHN0
cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCmluZGV4IDI1MTMwOTJlMzk2ZGJiMDIzNDJi
NjQwNDdjN2Y1Y2UyMTRjN2Y2MTUuLjU5ZTBhZDcwMGZkMTBhMTNiZDc5OTJhODY3NzVmNjFhNzg3
OWMwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5VGFibGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwCkBAIC00MSw2ICs0MSw3IEBAIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgp
Owogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3Rv
RnVuY0dyb3cpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlU
YWJsZVByb3RvRnVuY0dldCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJB
c3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNUeXBlKTsKIH0KIAogI2luY2x1ZGUgIldlYkFz
c2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmgiCkBAIC01NSw2ICs1Niw3IEBAIGNvbnN0IENsYXNz
SW5mbyBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJBc3NlbWJseS5U
YWJsZSIsICZCYXNlCiAgZ3JvdyAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93ICAgRnVu
Y3Rpb24gMQogIGdldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0ICAgIEZ1bmN0aW9u
IDEKICBzZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCAgICBGdW5jdGlvbiAyCisg
dHlwZSAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNUeXBlICAgRnVuY3Rpb24gMAogIEBlbmQK
ICAqLwogCkBAIC0xNjQsNiArMTY2LDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJB
c3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlUYWJsZSogdGFibGUgPSBnZXRUYWJsZShn
bG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodGFibGUtPnR5cGUoZ2xvYmFsT2Jq
ZWN0KSkpOworfQorCiBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlKiBXZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGF1dG8qIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxs
PFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlKHZtLCBzdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NzhmZTA1ZjFlNDcyYjEzNzA4NTJiYTE2YWUzNTA3MTllNzk2YmRiYy4uNmEzY2M1NzFmMDUyZDgx
OTg4YzA1ZmQ4NDFhMTQ3YmMxZjA5ZWQyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDMtMTEgIEplc3NpY2EgVGFsbG9uICA8anRhbGxvbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFVwZGF0ZSB3YXNtIEpTLUFQSSB0ZXN0cyBmb3IgdGhlIHR5
cGUgbWV0aG9kIHRvIGxhdGVzdCB1cHN0cmVhbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSB1cHN0cmVhbSB0ZXN0cyBoYXMgcmVjZW50bHkgYWRk
ZWQgYSB0ZXN0IGZvciB0aGUgdGFibGUgdHlwZSBtZXRob2QgYW5kCisgICAgICAgIHVwZGF0ZWQg
dGhlIG90aGVyIHR5cGUgdGVzdHMgdG8gbWV0aG9kcyB0byBrZWVwIHVwIHdpdGggYSByZWNlbnQg
c3BlYyBjaGFuZ2UuCisgICAgICAgIFRoaXMgYWRkcyB0aG9zZSB1cGRhdGVkIHRlc3RzIGFzIHdl
bGwgYXMgbm93IGV4cGVjdGF0aW9ucyB0aGV5IHBhc3MuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50
ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNzZXJ0X3R5cGUpOgorICAgICAgICAoc3RyaW5n
X2FwcGVhcmVkX2hlcmUudGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2
ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanM6CisgICAgICAgIChhc3NlcnRfdHlwZSk6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAzLTEwICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIEltcHJvdmUgZm9udC12YXJpYXRp
b24tc2V0dGluZ3MgaW50ZXJwb2xhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2
ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0
CmluZGV4IGRjZjZiOTkxM2YxMDZmM2Y2M2M3ZmQ4MDhiYzMyMmYxNDUyYjliZWUuLjAxMWM3MmI5
MWM5YWFiNjkyYjRhYWI5NmU1YjUwZjI5NTRhMmJhNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50
ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1l
eHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKIAotRkFJTCBpMzIsIG11dGFibGUgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQot
RkFJTCBpMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2
NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWds
b2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBpbW11
dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5
cGUudmFsdWUnKQotRkFJTCBmNjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmNjQsIGltbXV0YWJsZSB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1
ZScpCi1GQUlMIGFueXJlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwgaW1tdXRhYmxlIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVl
JykKLUZBSUwgZnVuY3JlZiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIGltbXV0YWJsZSB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1
ZScpCi1GQUlMIGtleSBvcmRlcmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQorUEFTUyBp
MzIsIG11dGFibGUKK1BBU1MgaTMyLCBpbW11dGFibGUKK1BBU1MgaTY0LCBtdXRhYmxlCitQQVNT
IGk2NCwgaW1tdXRhYmxlCitQQVNTIGYzMiwgbXV0YWJsZQorUEFTUyBmMzIsIGltbXV0YWJsZQor
UEFTUyBmNjQsIG11dGFibGUKK1BBU1MgZjY0LCBpbW11dGFibGUKK1BBU1MgYW55cmVmLCBtdXRh
YmxlCitQQVNTIGFueXJlZiwgaW1tdXRhYmxlCitQQVNTIGZ1bmNyZWYsIG11dGFibGUKK1BBU1Mg
ZnVuY3JlZiwgaW1tdXRhYmxlCitQQVNTIGtleSBvcmRlcmluZwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFs
L3R5cGUudGVudGF0aXZlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCmluZGV4
IDMxOGIxYWM1NzhjYWM2MDUxZWEyM2VjZmJiNjUyNWZmZmIzMjU1MDEuLmExY2ZhZTkwZGI5NDdm
MzQyODY0NTE2MjYyNzlhNTYyNDI1NjAxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRp
dmUuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0zLDkgKzMsMTAg
QEAKIAogZnVuY3Rpb24gYXNzZXJ0X3R5cGUoYXJndW1lbnQpIHsKICAgICBjb25zdCBteWdsb2Jh
bCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoYXJndW1lbnQpOworICAgIGNvbnN0IGdsb2JhbHR5
cGUgPSBteWdsb2JhbC50eXBlKCk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUu
dmFsdWUsIGFyZ3VtZW50LnZhbHVlKTsKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUu
bXV0YWJsZSwgYXJndW1lbnQubXV0YWJsZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBl
LnZhbHVlLCBhcmd1bWVudC52YWx1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBlLm11
dGFibGUsIGFyZ3VtZW50Lm11dGFibGUpOwogfQogCiB0ZXN0KCgpID0+IHsKQEAgLTU4LDcgKzU5
LDcgQEAgdGVzdCgoKSA9PiB7CiAKIHRlc3QoKCkgPT4gewogICAgIGNvbnN0IG15Z2xvYmFsID0g
bmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7InZhbHVlIjogImkzMiIsICJtdXRhYmxlIjogdHJ1ZX0p
OwotICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyht
eWdsb2JhbC50eXBlKTsKKyAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blBy
b3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSgpKTsKICAgICBhc3NlcnRfZXF1YWxzKHByb3BlcnR5
TmFtZXNbMF0sICJtdXRhYmxlIik7CiAgICAgYXNzZXJ0X2VxdWFscyhwcm9wZXJ0eU5hbWVzWzFd
LCAidmFsdWUiKTsKIH0sICJrZXkgb3JkZXJpbmciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50
ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRjZjZiOTkxM2YxMDZmM2Y2M2M3ZmQ4MDhiYzMy
MmYxNDUyYjliZWUuLjAxMWM3MmI5MWM5YWFiNjkyYjRhYWI5NmU1YjUwZjI5NTRhMmJhNDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxNSAr
MSwxNSBAQAogCi1GQUlMIGkzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVl
JykKLUZBSUwgaTY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJ
TCBmMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5n
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJv
cGVydHlOYW1lcyhteWdsb2JhbC50eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIs
IGltbXV0YWJsZQorUEFTUyBpNjQsIG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1Mg
ZjMyLCBtdXRhYmxlCitQQVNTIGYzMiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFT
UyBmNjQsIGltbXV0YWJsZQorUEFTUyBhbnlyZWYsIG11dGFibGUKK1BBU1MgYW55cmVmLCBpbW11
dGFibGUKK1BBU1MgZnVuY3JlZiwgbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBpbW11dGFibGUKK1BB
U1Mga2V5IG9yZGVyaW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0
OTJmZDM2NGRjMDA5YzYyYTAzNTk2YjE2NTcwMTBkYTlhMjYyMWY1Li5iZjA2NTVlZDQ1ZjhiMWRh
Zjc1OTY4NmE1ZTVmNmY4ZTllZTU5M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZl
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsOCBAQAogCi1GQUlMIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScp
Ci1GQUlMIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBaZXJvIG1heGlt
dW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQotRkFJTCBOb25lLXplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIG5vbi1zaGFyZWQgbWVt
b3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5t
aW5pbXVtJykKLUZBSUwgc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gaW5pdGlhbCwgbm8g
bWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4
aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorUEFTUyBub24tc2hhcmVkIG1lbW9yeQorUEFT
UyBzaGFyZWQgbWVtb3J5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKaW5kZXggZWZlOWUyYTM3ZGViN2JiNmVmODQx
ZTk4MDllZWU3ODFjOWVmZmI5Zi4uYTk2YTMyMjdhZGNhN2ZmMDlkZTc1ZTVmN2M0MTJhYjk1YjBk
NTAzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90
eXBlLnRlbnRhdGl2ZS5hbnkuanMKQEAgLTMsMTEgKzMsMTIgQEAKIAogZnVuY3Rpb24gYXNzZXJ0
X3R5cGUoYXJndW1lbnQpIHsKICAgICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVt
b3J5KGFyZ3VtZW50KTsKKyAgICBjb25zdCBtZW1vcnl0eXBlID0gbWVtb3J5LnR5cGUoKQogCi0g
ICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsK
LSAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLm1heGltdW0sIGFyZ3VtZW50Lm1heGltdW0p
OworICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVt
KTsKKyAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUubWF4aW11bSwgYXJndW1lbnQubWF4aW11
bSk7CiAgICAgaWYgKGFyZ3VtZW50LnNoYXJlZCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMobWVtb3J5LnR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lbW9yeXR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNDkyZmQzNjRkYzAwOWM2MmEwMzU5NmIxNjU3MDEwZGE5YTI2MjFmNS4uYmYwNjU1ZWQ0NWY4
YjFkYWY3NTk2ODZhNWU1ZjZmOGU5ZWU1OTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBAQAogCi1GQUlMIFplcm8gaW5pdGlh
bCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVt
b3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0n
KQotRkFJTCBaZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb25lLXplcm8gbWF4aW11bSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1G
QUlMIG5vbi1zaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNT
IFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhp
bXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorUEFTUyBub24t
c2hhcmVkIG1lbW9yeQorUEFTUyBzaGFyZWQgbWVtb3J5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBl
LnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIxMzQwMmEyNjEwNDMzYmMyN2QyOWI3NmM0YTEzOTU1OTJm
ZTdiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFT
UyBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBO
b25lLXplcm8gbWF4aW11bQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBl
LnRlbnRhdGl2ZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQg
dGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlw
ZS50ZW50YXRpdmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMTEzMGUwYWQwMjljNTJmNzgxYzkzYmRhYmZlNjA3NzdjNjQxZDQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAtMCwwICsxLDI2IEBACisvLyBNRVRB
OiBnbG9iYWw9d2luZG93LGRlZGljYXRlZHdvcmtlcixqc3NoZWxsCisvLyBNRVRBOiBzY3JpcHQ9
L3dhc20vanNhcGkvYXNzZXJ0aW9ucy5qcworCitmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVu
dCkgeworICAgIGNvbnN0IG15dGFibGUgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoYXJndW1lbnQp
OworICAgIGNvbnN0IHRhYmxldHlwZSA9IG15dGFibGUudHlwZSgpCisgICAgYXNzZXJ0X2VxdWFs
cyh0YWJsZXR5cGUubWluaW11bSwgYXJndW1lbnQubWluaW11bSk7CisgICAgYXNzZXJ0X2VxdWFs
cyh0YWJsZXR5cGUubWF4aW11bSwgYXJndW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFs
cyh0YWJsZXR5cGUuZWxlbWVudCwgYXJndW1lbnQuZWxlbWVudCk7Cit9CisKK3Rlc3QoKCkgPT4g
eworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVmIn0p
OworfSwgIlplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBh
c3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogNSwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAi
Tm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3Nl
cnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgIm1heGltdW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVm
IiB9KTsKK30sICJaZXJvIG1heGltdW0iKTsKKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5
cGUoeyAibWluaW11bSI6IDAsICJtYXhpbXVtIjogNSwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7
Cit9LCAiTm9uZS16ZXJvIG1heGltdW0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjEzNDAyYTI2MTA0MzNiYzI3ZDI5Yjc2YzRhMTM5
NTU5MmZlN2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFplcm8gaW5pdGlhbCwgbm8g
bWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4
aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQzNWE5NjNjMmNlMjk5ZjZjM2I0YjJjNmFk
NmZkZGIwMjc3YmVjODYuLjUzYTJmODVhZjRiOWZhMGJmYWMwYTczNjZkOGE0MTc2ZDkxM2M3ZDQg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMTEgIEplc3NpY2EgVGFsbG9uICA8anRhbGxvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgdGhlIG5ldyB0eXBlIG1ldGhvZCBvbiBj
ZXJ0YWluIEpTLUFQSSB3YXNtIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdhc20vanMtYXBpL2dsb2JhbC5qczogQWRkZWQuCisgICAg
ICAgIChhc3NlcnQudGhyb3dzKToKKyAgICAgICAgKiB3YXNtL2pzLWFwaS90YWJsZS5qczoKKyAg
ICAgICAgKGFzc2VydC50cnV0aHkpOgorICAgICAgICAqIHdhc20vanMtYXBpL3Rlc3RfbWVtb3J5
LmpzOgorCiAyMDIxLTAzLTEwICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgog
CiAgICAgICAgIEFJIHZhbGlkYXRvciBwYXRjaHBvaW50IHNob3VsZCByZWFkIGhlYXAgdG9wCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcyBiL0pTVGVzdHMvd2FzbS9q
cy1hcGkvZ2xvYmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMDEzMTgyOTU1MWViZTJkM2U0ZTBlOTNiN2Q4
ODUwNWFjOGM1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2Jh
bC5qcwpAQCAtMCwwICsxLDI5IEBACitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0
LmpzJzsKK3sKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgY29uc3QgZyA9IG5l
dyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KTsKKyAg
ICAgICAgZy50eXBlLmNhbGwoe30pOworICAgIH0sIFR5cGVFcnJvciwgImV4cGVjdGVkIHx0aGlz
fCB2YWx1ZSB0byBiZSBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJseS5HbG9iYWwiKTsKKworICAg
IGNvbnN0IGkzMiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJs
ZTogZmFsc2V9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKGkzMikubGVuZ3Ro
LCAyKTsKKyAgICBhc3NlcnQuZXEoaTMyLnZhbHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVxKGkz
Mi5tdXRhYmxlLCBmYWxzZSk7CisKKyAgICBjb25zdCBpMzJtID0gbmV3IFdlYkFzc2VtYmx5Lkds
b2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5l
cShpMzJtLnZhbHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVxKGkzMm0ubXV0YWJsZSwgdHJ1ZSk7
CisKKyAgICBjb25zdCBpNjQgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImk2NCIs
IG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGk2NC52YWx1ZSwgImk2NCIp
OworCisgICAgY29uc3QgZjMyID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmMzIi
LCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShmMzIudmFsdWUsICJmMzIi
KTsKKworICAgIGNvbnN0IGY2NCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiZjY0
IiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCAiZjY0
Iik7CisKKyAgICBjb25zdCBmNjRuID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbChmNjQpLnR5cGUo
KTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCBmNjRuLnZhbHVlKTsKKyAgICBhc3NlcnQuZXEo
ZjY0Lm11dGFibGUsIGY2NG4ubXV0YWJsZSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcyBiL0pTVGVzdHMvd2Fz
bS9qcy1hcGkvdGFibGUuanMKaW5kZXggZGI3ODc4ZjBjYTIzZGM5ZTFmMTk2MmE4ZjU2NTY3MDY5
ODhlMDJkZi4uODAwNGU2N2U3MmVlZDdhOGRjM2ZiYmQyOWEzYWRiMjY5N2UwN2M3YSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMt
YXBpL3RhYmxlLmpzCkBAIC0zOTAsMyArMzkwLDMzIEBAIGFzc2VydC50aHJvd3MoKCkgPT4gV2Vi
QXNzZW1ibHkuVGFibGUucHJvdG90eXBlLmdyb3codW5kZWZpbmVkKSwgVHlwZUVycm9yLCBgZXhw
CiAgICAgfQogICAgIGFzc2VydC50cnV0aHkodGhyZXcpOwogfQorCit7CisgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CisgICAgICAgIGNvbnN0IHQgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21p
bmltdW06IDUsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pOworICAgICAgICB0LnR5cGUuY2FsbCh7fSk7
CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8IHZhbHVlIHRvIGJlIGFuIGluc3Rh
bmNlIG9mIFdlYkFzc2VtYmx5LlRhYmxlIik7CisKKyAgICBjb25zdCB0MCA9IG5ldyBXZWJBc3Nl
bWJseS5UYWJsZSh7bWluaW11bTogNSwgZWxlbWVudDogImZ1bmNyZWYifSkudHlwZSgpOworICAg
IGFzc2VydC5lcShPYmplY3Qua2V5cyh0MCkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEodDAu
bWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVxKHQwLmVsZW1lbnQsICJmdW5jcmVmIik7CisKKyAg
ICBjb25zdCB0MSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgbWF4aW11bTog
MTAsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0Lmtl
eXModDEpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQxLm1pbmltdW0sIDUpOworICAgIGFz
c2VydC5lcSh0MS5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQuZXEodDEuZWxlbWVudCwgImZ1bmNy
ZWYiKTsKKworICAgIGNvbnN0IHQyID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1
LCBtYXhpbXVtOiAxMCwgZWxlbWVudDogImV4dGVybnJlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0
LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcSh0Mi5taW5pbXVt
LCA1KTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgMTApCisgICAgYXNzZXJ0LmVxKHQyLmVs
ZW1lbnQsICJleHRlcm5yZWYiKTsKKworICAgIGNvbnN0IHQzID0gbmV3IFdlYkFzc2VtYmx5LlRh
YmxlKHQyKS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIE9i
amVjdC5rZXlzKHQzKS5sZW5ndGgpOworICAgIGFzc2VydC5lcSh0Mi5taW5pbXVtLCB0My5taW5p
bXVtKTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgdDMubWF4aW11bSkKKyAgICBhc3NlcnQu
ZXEodDIuZWxlbWVudCwgdDMuZWxlbWVudCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcyBiL0pTVGVz
dHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanMKaW5kZXggNzBlYmRlMjg2MjMyZTE4MWY1ZWRj
YzUyOWFkMjBlNGY2YTE1MDkzNS4uOWVhMmIyYmZiODlmMWRhNTIzZGQxYWJiNWJhZGVjNDQ4ZTAw
Y2EyNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcworKysg
Yi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCkBAIC0zOTksMyArMzk5LDMzIEBA
IHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMubWVtb3J5
LmJ1ZmZlci5ieXRlTGVuZ3RoLCAyMCAqIHBhZ2VTaXplKTsKICAgICBhc3NlcnQudHJ1dGh5KGlu
c3RhbmNlLmV4cG9ydHMubWVtb3J5IGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuTWVtb3J5KTsKIH0K
KwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAg
Y29uc3QgbSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe21pbmltdW06NDAsIG1heGltdW06IDEw
MH0pOworICAgICAgICBtLnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiV2ViQXNz
ZW1ibHkuTWVtb3J5LnByb3RvdHlwZS5idWZmZXIgZ2V0dGVyIGNhbGxlZCB3aXRoIG5vbiBXZWJB
c3NlbWJseS5NZW1vcnkgfHRoaXN8IHZhbHVlIik7CisKKyAgICBjb25zdCBtZW1vcnkgPSBuZXcg
V2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOiAyMH0pOworICAgIGFzc2VydC5lcShPYmplY3Qu
a2V5cyhtZW1vcnkudHlwZSgpKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcShtZW1vcnkudHlw
ZSgpLm1pbmltdW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZh
bHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTIgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5p
bXVtOjQwLCBtYXhpbXVtOiAxMDB9KTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5
Mi50eXBlKCkpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmlt
dW0sIDQwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBlKCkubWF4aW11bSwgMTAwKTsKKyAg
ICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1l
bW9yeTMgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KG1lbW9yeTIudHlwZSgpKTsKKyAgICBhc3Nl
cnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgT2JqZWN0LmtleXMobWVt
b3J5My50eXBlKCkpLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmlt
dW0sIG1lbW9yeTMudHlwZSgpLm1pbmltdW0pOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5cGUo
KS5tYXhpbXVtLCBtZW1vcnkzLnR5cGUoKS5tYXhpbXVtKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5
LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTQgPSBuZXcgV2ViQXNz
ZW1ibHkuTWVtb3J5KHttaW5pbXVtOiAxMCwgbWF4aW11bTogMjAsIHNoYXJlZDp0cnVlfSk7Cisg
ICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1lbW9yeTQudHlwZSgpKS5sZW5ndGgsIDMpOworICAg
IGFzc2VydC5lcShtZW1vcnk0LnR5cGUoKS5taW5pbXVtLCAxMCk7CisgICAgYXNzZXJ0LmVxKG1l
bW9yeTQudHlwZSgpLm1heGltdW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5NC50eXBlKCku
c2hhcmVkLCB0cnVlKTsKK30pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424533</attachid>
            <date>2021-03-29 09:14:47 -0700</date>
            <delta_ts>2021-03-30 01:46:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210329181445.patch</filename>
            <type>text/plain</type>
            <size>33632</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NWVhZmE5OTEzOWJjYTJjZTAzMDRlZjNhNTM1NWRhN2U2ZmU2YjI5Li4yMjBlN2E3Yzc1NDhjNmYy
NzhkN2U3MmE1NzQ1MzY4YjQ0ZDg2Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0yOSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1i
bHlHbG9iYWw6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5o
OgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHA6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVRhYmxlOjp0eXBlKToKKyAgICAgICAgKiB3
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorCiAyMDIxLTAzLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgJiBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTLCBpdCBzZWVtcyBsaWtlIGl0IGlzIG9uIGZvciBhbGwg
cG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlHbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUdsb2JhbC5jcHAKaW5kZXggYjdiOGEwNTA3NWY2NGU3MmZkMzc2MzU3ZThiYzdlOTJhOWE4
MTIxMS4uYTM1OTg1NGRhNDczYTkyOTNjMWIxZDk1NDBmYmQ2YjE4NzdhY2VkZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5j
cHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpT
V2ViQXNzZW1ibHlHbG9iYWwuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCkBAIC04MSw2ICs4Miw0OCBAQCB2b2lkIEpTV2ViQXNz
ZW1ibHlHbG9iYWw6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlz
aXRvcikKICAgICB0aGlzT2JqZWN0LT5nbG9iYWwoKS0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7
CiB9CiAKK0pTT2JqZWN0KiBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisg
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisKKyAgICBib29sIGlzTXV0YWJs
ZTsKKyAgICBpZiAobV9nbG9iYWwtPm11dGFiaWxpdHkoKSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1h
dGlvbjo6TXV0YWJsZSkKKyAgICAgICAgaXNNdXRhYmxlID0gdHJ1ZTsKKyAgICBlbHNlCisgICAg
ICAgIGlzTXV0YWJsZSA9IGZhbHNlOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAibXV0YWJsZSIpLCBqc0Jvb2xlYW4oaXNNdXRhYmxlKSk7CisK
KyAgICBXYXNtOjpUeXBlIHZhbHVlID0gbV9nbG9iYWwtPnR5cGUoKTsKKyAgICBKU1N0cmluZyog
dmFsdWVTdHIgPSBudWxscHRyOworICAgIHN3aXRjaCAodmFsdWUua2luZCkgeworICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJp
bmcodm0sICJpMzIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
STY0OgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImk2NCIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CisgICAgICAgIHZh
bHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZjMyIik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRy
aXZpYWxTdHJpbmcodm0sICJmNjQiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RXh0ZXJucmVmOgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpGdW5jcmVmOgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwg
ImZ1bmNyZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSIpLCB2YWx1ZVN0cik7CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNXZWJBc3NlbWJseUds
b2JhbCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5oCmluZGV4IDU1MmFlMDVhMGY0YTlkODM1
YWRlMGY5ZTBmZDk0ZGNlOTUxYjdjOTkuLjc0MmZiZTA4ZDQyMzQzMTc4ZDJmNTk5MDFhZTQ0OGI1
ZWVmM2NlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlHbG9iYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5R2xvYmFsLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIERFQ0xBUkVf
SU5GTzsKIAogICAgIFdhc206Okdsb2JhbCogZ2xvYmFsKCkgeyByZXR1cm4gbV9nbG9iYWwucHRy
KCk7IH0KKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgog
ICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwoVk0mLCBTdHJ1Y3R1cmUqLCBSZWY8V2FzbTo6R2xvYmFs
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlNZW1vcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5jcHAKaW5kZXggMTQ1ZWU3ODM4ZGNlZmVmNjhhZTk5NDllZjdmN2E4YWYyNDhj
MWVhNi4uNmUyNDA4ZTI3NDdmNjdjMDMxNTEyZDhlNjVjMjdiYjVkMmFkY2IzMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5j
cHAKQEAgLTEzMSw2ICsxMzEsMzMgQEAgV2FzbTo6UGFnZUNvdW50IEpTV2ViQXNzZW1ibHlNZW1v
cnk6Omdyb3coVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBncm93bi52YWx1ZSgpOwogfQogCitKU09iamVjdCogSlNXZWJBc3NlbWJseU1lbW9yeTo6dHlw
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIFdhc206OlBhZ2VDb3VudCBtaW5pbXVtID0gbV9tZW1vcnktPmluaXRpYWwoKTsK
KyAgICBXYXNtOjpQYWdlQ291bnQgbWF4aW11bSA9IG1fbWVtb3J5LT5tYXhpbXVtKCk7CisKKyAg
ICBKU09iamVjdCogcmVzdWx0OworICAgIGlmIChtYXhpbXVtLmlzVmFsaWQoKSkgeworICAgICAg
ICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCksIDMpOworICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1heGltdW0iKSwganNOdW1iZXIobWF4aW11bS5w
YWdlQ291bnQoKSkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0
eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDIp
OworCisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFnZUNvdW50KCkpKTsKKworICAgIFdhc206
Ok1lbW9yeVNoYXJpbmdNb2RlIHNoYXJlZCA9IG1fbWVtb3J5LT5zaGFyaW5nTW9kZSgpOworICAg
IGlmIChzaGFyZWQgPT0gV2FzbTo6TWVtb3J5U2hhcmluZ01vZGU6OkRlZmF1bHQpCisgICAgICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hhcmVk
IiksIGpzQm9vbGVhbihmYWxzZSkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaGFyZWQiKSwganNCb29sZWFuKHRy
dWUpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKwogdm9pZCBKU1dlYkFzc2VtYmx5TWVt
b3J5Ojpncm93U3VjY2Vzc0NhbGxiYWNrKFZNJiB2bSwgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VD
b3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkKIHsKICAgICAvLyBXZSBuZWVkIHRv
IGNsZWFyIG91dCB0aGUgb2xkIGFycmF5IGJ1ZmZlciBiZWNhdXNlIGl0IG1pZ2h0IG5vdyBiZSBw
b2ludGluZyB0byBzdGFsZSBtZW1vcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKaW5kZXggMzYzODAzZWU1NDBkOWY0YWM0NDQ5
OGQxMzg4Njk2MDA0ZTBkZDgxZC4uZmY0YmE5YmNlZTU0NzMzYzFmMTc0ZTY3NDFiODUxMTgzODA4
MDc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlNZW1vcnkuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgV2FzbTo6UGFnZUNv
dW50IGdyb3coVk0mLCBKU0dsb2JhbE9iamVjdCosIHVpbnQzMl90IGRlbHRhKTsKICAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIGdyb3dTdWNjZXNzQ2FsbGJhY2soVk0mLCBXYXNtOjpQYWdlQ291
bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KTsKIAorICAgIEpT
T2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CisKIHByaXZhdGU6CiAgICAgSlNXZWJBc3Nl
bWJseU1lbW9yeShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
VGFibGUuY3BwCmluZGV4IGFhODM2YWVkNGQyOWE4M2RhOTgyZTA0YWMzNjFkYTBiMzlmNGJjNjEu
LmYxYzE4MzdhMDcxNWNkZGNlZDU3MTIxMDMxMTBkOGU5ZTkzZjBmYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNwcApAQCAt
MTI2LDYgKzEyNiwzMiBAQCB2b2lkIEpTV2ViQXNzZW1ibHlUYWJsZTo6Y2xlYXIodWludDMyX3Qg
aW5kZXgpCiAgICAgbV90YWJsZS0+Y2xlYXIoaW5kZXgpOwogfQogCitKU09iamVjdCogSlNXZWJB
c3NlbWJseVRhYmxlOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgV2FzbTo6VGFibGVFbGVtZW50VHlw
ZSBlbGVtZW50ID0gbV90YWJsZS0+dHlwZSgpOworICAgIEpTU3RyaW5nKiBlbGVtZW50U3RyID0g
bnVsbHB0cjsKKyAgICBpZiAoZWxlbWVudCA9PSBXYXNtOjpUYWJsZUVsZW1lbnRUeXBlOjpGdW5j
cmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZnVuY3Jl
ZiIpOworICAgIGVsc2UgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50VHlwZTo6RXh0
ZXJucmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZXh0
ZXJucmVmIik7CisKKyAgICB1aW50MzJfdCBtaW5pbXVtID0gbV90YWJsZS0+bGVuZ3RoKCk7CisK
KyAgICBKU09iamVjdCogcmVzdWx0OworICAgIGF1dG8gbWF4aW11bSA9IG1fdGFibGUtPm1heGlt
dW0oKTsKKyAgICBpZiAobWF4aW11bSkgeworICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0
eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDMp
OyAgICAgICAKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJtYXhpbXVtIiksIGpzTnVtYmVyKCptYXhpbXVtKSk7CisgICAgfSBlbHNlCisg
ICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1pbmltdW0iKSwganNOdW1iZXIobWluaW11
bSkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKaW5kZXgg
ZDA2OTM3ODZmYjMzMTg0ZDY1NDZmZDNmYmViNGQ1ZWE0MDgyNDczMC4uZmQ1OWYyMjQ0ZmNlMTcw
ZDUwN2Q5YWYzZjFlYmMzOTE0ZDU4MGMxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0KHVpbnQzMl90LCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiopOwog
ICAgIHZvaWQgc2V0KHVpbnQzMl90LCBKU1ZhbHVlKTsKICAgICB2b2lkIGNsZWFyKHVpbnQzMl90
KTsKKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOwogCiAgICAgV2FzbTo6VGFi
bGUqIHRhYmxlKCkgeyByZXR1cm4gbV90YWJsZS5wdHIoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlw
ZS5jcHAKaW5kZXggYmU4MTE0ODBlNzNjMjJkMDg5N2U5NWVjYjExODVlNTI1YjIyN2VlYy4uZjg5
MmNjNmY4MGRjY2I5MWNlMDQzZjUzODM4NzM2NzQ0Nzk1ODBkYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmNwcApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZik7CiBz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0
dGVyRnVuY1ZhbHVlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlKTsKIH0KIAogI2luY2x1ZGUg
IldlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmx1dC5oIgpAQCAtNDksNiArNTAsOCBAQCBjb25z
dCBDbGFzc0luZm8gV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYkFz
c2VtYmx5Lkdsb2JhbCIsICZCYQogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUdsb2JhbFByb3Rv
dHlwZS5sdXQuaAogIEBiZWdpbiBwcm90b3R5cGVHbG9iYWxXZWJBc3NlbWJseUdsb2JhbAogIHZh
bHVlT2Ygd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mIEZ1bmN0aW9uIDAKKyB0eXBl
ICAgIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVHlwZSAgICBGdW5jdGlvbiAwCisKICBAZW5k
CiAgKi8KIApAQCAtNzYsNyArNzksNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNz
ZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xvYmFsLT5nbG9i
YWwoKS0+Z2V0KGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTg0LDYgKzg3LDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgSlNX
ZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsID0gZ2V0R2xvYmFsKGdsb2JhbE9iamVjdCwgdm0sIGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbC0+dHlwZShnbG9iYWxPYmplY3QpKSk7Cit9CisKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwq
IGdsb2JhbCA9IGdldEdsb2JhbChnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
Z2xvYmFsLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmgKaW5kZXggYWM1YmU4YTBjZWFhMmRjY2JiYzNhNzBiNzZjMWQ0MTdlMDlhODg2ZC4uNzAz
NjhiNmRiNGEyODIzYWQwZTgxODhhOWYyNGQ4ZGU0MDg5YzBiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlw
ZS5oCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAorICAg
IEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CisKIHByaXZhdGU6CiAgICAgV2ViQXNz
ZW1ibHlHbG9iYWxQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAppbmRl
eCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5MjdhZWE2YjhmMGIyNWUwLi45ZDEwYjRmZmQxNTU3
YTVmZTMxODMxZDJiNzU3NGM3ZmZjNTJlNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCkBA
IC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVu
Y1R5cGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0Lmgi
CkBAIC01Myw2ICs1NCw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVtb3J5IiwgJkJhCiBAYmVnaW4gcHJvdG90
eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cgICB3ZWJBc3NlbWJseU1lbW9yeVByb3Rv
RnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgYnVmZmVyIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5j
QnVmZmVyIEFjY2Vzc29yIDAKKyB0eXBlICAgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNUeXBl
ICAgRnVuY3Rpb24gMAogQGVuZAogKi8KIApAQCAtOTYsNiArOTgsMTcgQEAgSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKG1lbW9yeS0+YnVmZmVyKGdsb2JhbE9iamVjdCkpKTsKIH0KIAorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jVHlwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkgPSBnZXRNZW1v
cnkoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUobWVtb3J5LT50eXBlKGdsb2JhbE9iamVjdCkpKTsK
K30KKworCiBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZSogV2ViQXNzZW1ibHlNZW1vcnlQcm90
b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2Vi
QXNzZW1ibHlNZW1vcnlQcm90b3R5cGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseU1lbW9yeVByb3Rv
dHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKaW5kZXggMjUxMzA5MmUz
OTZkYmIwMjM0MmI2NDA0N2M3ZjVjZTIxNGM3ZjYxNS4uNTllMGFkNzAwZmQxMGExM2JkNzk5MmE4
Njc3NWY2MWE3ODc5YzBjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3Rv
RnVuY0xlbmd0aCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eVRhYmxlUHJvdG9GdW5jR3Jvdyk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5j
bHVkZSAiV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCIKQEAgLTU1LDYgKzU2LDcgQEAg
Y29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldl
YkFzc2VtYmx5LlRhYmxlIiwgJkJhc2UKICBncm93ICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVu
Y0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQg
ICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0ICAgIEZ1
bmN0aW9uIDIKKyB0eXBlICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1R5cGUgICBGdW5jdGlv
biAwCiAgQGVuZAogICovCiAKQEAgLTE2NCw2ICsxNjYsMTYgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1R5cGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseVRhYmxlKiB0YWJsZSA9
IGdldFRhYmxlKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0YWJsZS0+dHlw
ZShnbG9iYWxPYmplY3QpKSk7Cit9CisKIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUqIFdlYkFz
c2VtYmx5VGFibGVQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZT4odm0uaGVhcCkpIFdlYkFzc2Vt
Ymx5VGFibGVQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA3OWI3YzNlZWRmN2Q3NDU2YTYwMmRmMWI0MGZmMTBhNTVkNmM1MDNmLi5hZTdk
NDdhY2I3YzQ1NDYzMzJhZjViODkzNzQ1ZWYxZDBhMmEyZWI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wMy0yOSAgSmVzc2ljYSBUYWxsb24g
IDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBkYXRlIHdhc20gSlMtQVBJIHRlc3Rz
IGZvciB0aGUgdHlwZSBtZXRob2QgdG8gbGF0ZXN0IHVwc3RyZWFtLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVwc3RyZWFtIHRlc3RzIGhhcyBy
ZWNlbnRseSBhZGRlZCBhIHRlc3QgZm9yIHRoZSB0YWJsZSB0eXBlIG1ldGhvZCBhbmQKKyAgICAg
ICAgdXBkYXRlZCB0aGUgb3RoZXIgdHlwZSB0ZXN0cyB0byBtZXRob2RzIHRvIGtlZXAgdXAgd2l0
aCBhIHJlY2VudCBzcGVjIGNoYW5nZS4KKyAgICAgICAgVGhpcyBhZGRzIHRob3NlIHVwZGF0ZWQg
dGVzdHMgYXMgd2VsbCBhcyBub3cgZXhwZWN0YXRpb25zIHRoZXkgcGFzcy4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2ds
b2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanM6CisgICAgICAgIChhc3NlcnRfdHlwZSk6CisgICAg
ICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50ZXN0KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5
cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qczoKKyAgICAgICAgKGFz
c2VydF90eXBlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1v
cnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDMtMjYg
IFRpbSBOZ3V5ZW4gIDxudGltLmJ1Z3NAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBpbnRlcnBv
bGF0aW9uIGZvciBvYmplY3QtcG9zaXRpb24gQ1NTIHByb3BlcnR5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFs
L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS1leHBlY3RlZC50eHQKaW5kZXggZGNmNmI5OTEzZjEwNmYzZjYzYzdmZDgwOGJjMzIyZjE0NTJi
OWJlZS4uMDExYzcyYjkxYzlhYWI2OTJiNGFhYjk2ZTViNTBmMjk1NGEyYmE0NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50
ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwxNSBAQAogCi1GQUlMIGkzMiwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBtdXRhYmxl
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZh
bHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIG11dGFibGUgdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQot
RkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2
NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWds
b2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVm
LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZnVuY3Jl
ZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWds
b2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5nIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2JhbC50
eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIsIGltbXV0YWJsZQorUEFTUyBpNjQs
IG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1MgZjMyLCBtdXRhYmxlCitQQVNTIGYz
MiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFTUyBmNjQsIGltbXV0YWJsZQorUEFT
UyBhbnlyZWYsIG11dGFibGUKK1BBU1MgYW55cmVmLCBpbW11dGFibGUKK1BBU1MgZnVuY3JlZiwg
bXV0YWJsZQorUEFTUyBmdW5jcmVmLCBpbW11dGFibGUKK1BBU1Mga2V5IG9yZGVyaW5nCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2
ZS5hbnkuanMKaW5kZXggMzE4YjFhYzU3OGNhYzYwNTFlYTIzZWNmYmI2NTI1ZmZmYjMyNTUwMS4u
YTFjZmFlOTBkYjk0N2YzNDI4NjQ1MTYyNjI3OWE1NjI0MjU2MDE5YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2Jh
bC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMK
QEAgLTMsOSArMywxMCBAQAogCiBmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgewogICAg
IGNvbnN0IG15Z2xvYmFsID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbChhcmd1bWVudCk7CisgICAg
Y29uc3QgZ2xvYmFsdHlwZSA9IG15Z2xvYmFsLnR5cGUoKTsKIAotICAgIGFzc2VydF9lcXVhbHMo
bXlnbG9iYWwudHlwZS52YWx1ZSwgYXJndW1lbnQudmFsdWUpOwotICAgIGFzc2VydF9lcXVhbHMo
bXlnbG9iYWwudHlwZS5tdXRhYmxlLCBhcmd1bWVudC5tdXRhYmxlKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGdsb2JhbHR5cGUudmFsdWUsIGFyZ3VtZW50LnZhbHVlKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGdsb2JhbHR5cGUubXV0YWJsZSwgYXJndW1lbnQubXV0YWJsZSk7CiB9CiAKIHRlc3QoKCkgPT4g
ewpAQCAtNTgsNyArNTksNyBAQCB0ZXN0KCgpID0+IHsKIAogdGVzdCgoKSA9PiB7CiAgICAgY29u
c3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHsidmFsdWUiOiAiaTMyIiwgIm11
dGFibGUiOiB0cnVlfSk7Ci0gICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpOworICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBP
YmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2JhbC50eXBlKCkpOwogICAgIGFzc2VydF9l
cXVhbHMocHJvcGVydHlOYW1lc1swXSwgIm11dGFibGUiKTsKICAgICBhc3NlcnRfZXF1YWxzKHBy
b3BlcnR5TmFtZXNbMV0sICJ2YWx1ZSIpOwogfSwgImtleSBvcmRlcmluZyIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZGNmNmI5OTEzZjEwNmYz
ZjYzYzdmZDgwOGJjMzIyZjE0NTJiOWJlZS4uMDExYzcyYjkxYzlhYWI2OTJiNGFhYjk2ZTViNTBm
Mjk1NGEyYmE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTMy
LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIGltbXV0
YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlw
ZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgaW1tdXRhYmxlIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVl
JykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBpbW11dGFibGUgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJ
TCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBpbW11dGFibGUgdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJ
TCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09i
amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpJykKK1BBU1MgaTMyLCBtdXRh
YmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwgbXV0YWJsZQorUEFTUyBpNjQsIGlt
bXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMyLCBpbW11dGFibGUKK1BBU1MgZjY0
LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNTIGFueXJlZiwgbXV0YWJsZQorUEFT
UyBhbnlyZWYsIGltbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBtdXRhYmxlCitQQVNTIGZ1bmNyZWYs
IGltbXV0YWJsZQorUEFTUyBrZXkgb3JkZXJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRl
bnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0
ZWQudHh0CmluZGV4IDQ5MmZkMzY0ZGMwMDljNjJhMDM1OTZiMTY1NzAxMGRhOWEyNjIxZjUuLmJm
MDY1NWVkNDVmOGIxZGFmNzU5Njg2YTVlNWY2ZjhlOWVlNTkzYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZl
LmFueS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKLUZBSUwgWmVybyBpbml0aWFsLCBu
byBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnku
dHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1G
QUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
bWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwg
bm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBzaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKK1BBU1MgWmVy
byBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0K
K1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCitQQVNTIG5vbi1zaGFy
ZWQgbWVtb3J5CitQQVNTIHNoYXJlZCBtZW1vcnkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRl
bnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwppbmRleCBlZmU5ZTJh
MzdkZWI3YmI2ZWY4NDFlOTgwOWVlZTc4MWM5ZWZmYjlmLi5hOTZhMzIyN2FkY2E3ZmYwOWRlNzVl
NWY3YzQxMmFiOTViMGQ1MDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAtMywxMSArMywxMiBAQAogCiBm
dW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgewogICAgIGNvbnN0IG1lbW9yeSA9IG5ldyBX
ZWJBc3NlbWJseS5NZW1vcnkoYXJndW1lbnQpOworICAgIGNvbnN0IG1lbW9yeXR5cGUgPSBtZW1v
cnkudHlwZSgpCiAKLSAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLm1pbmltdW0sIGFyZ3Vt
ZW50Lm1pbmltdW0pOwotICAgIGFzc2VydF9lcXVhbHMobWVtb3J5LnR5cGUubWF4aW11bSwgYXJn
dW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLm1pbmltdW0sIGFy
Z3VtZW50Lm1pbmltdW0pOworICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5tYXhpbXVtLCBh
cmd1bWVudC5tYXhpbXVtKTsKICAgICBpZiAoYXJndW1lbnQuc2hhcmVkICE9PSB1bmRlZmluZWQp
IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5zaGFyZWQsIGFyZ3VtZW50LnNo
YXJlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5zaGFyZWQsIGFyZ3VtZW50
LnNoYXJlZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCA0OTJmZDM2NGRjMDA5YzYyYTAzNTk2YjE2NTcwMTBkYTlhMjYyMWY1
Li5iZjA2NTVlZDQ1ZjhiMWRhZjc1OTY4NmE1ZTVmNmY4ZTllZTU5M2JhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVt
b3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlw
ZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKLUZB
SUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8gaW5pdGlhbCwg
bm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5
LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbmUtemVybyBt
YXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlw
ZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBzaGFyZWQgbWVt
b3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5t
aW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGlu
aXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhp
bXVtCitQQVNTIG5vbi1zaGFyZWQgbWVtb3J5CitQQVNTIHNoYXJlZCBtZW1vcnkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50
YXRpdmUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjEzNDAyYTI2MTA0MzNiYzI3ZDI5
Yjc2YzRhMTM5NTU5MmZlN2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZl
LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgWmVybyBpbml0aWFsLCBu
byBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBt
YXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRl
bnRhdGl2ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4g
dGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUxMTMwZTBhZDAyOWM1MmY3ODFjOTNiZGFiZmU2MDc3N2M2NDFkNDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0wLDAgKzEs
MjYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csZGVkaWNhdGVkd29ya2VyLGpzc2hlbGwKKy8v
IE1FVEE6IHNjcmlwdD0vd2FzbS9qc2FwaS9hc3NlcnRpb25zLmpzCisKK2Z1bmN0aW9uIGFzc2Vy
dF90eXBlKGFyZ3VtZW50KSB7CisgICAgY29uc3QgbXl0YWJsZSA9IG5ldyBXZWJBc3NlbWJseS5U
YWJsZShhcmd1bWVudCk7CisgICAgY29uc3QgdGFibGV0eXBlID0gbXl0YWJsZS50eXBlKCkKKyAg
ICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5tYXhpbXVtLCBhcmd1bWVudC5tYXhpbXVtKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5lbGVtZW50LCBhcmd1bWVudC5lbGVtZW50KTsKK30K
KwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAsICJlbGVtZW50
IjogImZ1bmNyZWYifSk7Cit9LCAiWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIik7CisKK3Rlc3Qo
KCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiA1LCAiZWxlbWVudCI6ICJmdW5j
cmVmIiB9KTsKK30sICJOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtIik7CisKK3Rlc3QoKCkg
PT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAwLCAibWF4aW11bSI6IDAsICJlbGVt
ZW50IjogImZ1bmNyZWYiIH0pOworfSwgIlplcm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsK
KyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgIm1heGltdW0iOiA1LCAiZWxlbWVudCI6
ICJmdW5jcmVmIiB9KTsKK30sICJOb25lLXplcm8gbWF4aW11bSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxl
L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMTM0MDJhMjYxMDQzM2Jj
MjdkMjliNzZjNGExMzk1NTkyZmU3YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgWmVy
byBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0K
K1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzE5YjE0MWM5ZThj
Y2NiZmVjMjBkMGZiNDZlM2Q5ZTE0YzM2NGQ0NS4uYzFkZDJkY2FmYWYxOTYzMzZjMTM2ZjQ0Zjc3
NjJlYjJkMzZjOWEzYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0yOSAgSmVzc2ljYSBUYWxsb24g
IDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB0aGUgbmV3IHR5
cGUgbWV0aG9kIG9uIGNlcnRhaW4gSlMtQVBJIHdhc20gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2FzbS9qcy1hcGkvZ2xvYmFsLmpz
OiBBZGRlZC4KKyAgICAgICAgKGFzc2VydC50aHJvd3MpOgorICAgICAgICAqIHdhc20vanMtYXBp
L3RhYmxlLmpzOgorICAgICAgICAoYXNzZXJ0LnRydXRoeSk6CisgICAgICAgICogd2FzbS9qcy1h
cGkvdGVzdF9tZW1vcnkuanM6CisKIDIwMjEtMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgQXBwbGVJQ1UgU1BJIGZvciBjYW5vbmlj
YWxpemF0aW9uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcyBiL0pT
VGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMDEzMTgyOTU1MWViZTJk
M2U0ZTBlOTNiN2Q4ODUwNWFjOGM1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20v
anMtYXBpL2dsb2JhbC5qcwpAQCAtMCwwICsxLDI5IEBACitpbXBvcnQgKiBhcyBhc3NlcnQgZnJv
bSAnLi4vYXNzZXJ0LmpzJzsKK3sKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAg
Y29uc3QgZyA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTog
ZmFsc2V9KTsKKyAgICAgICAgZy50eXBlLmNhbGwoe30pOworICAgIH0sIFR5cGVFcnJvciwgImV4
cGVjdGVkIHx0aGlzfCB2YWx1ZSB0byBiZSBhbiBpbnN0YW5jZSBvZiBXZWJBc3NlbWJseS5HbG9i
YWwiKTsKKworICAgIGNvbnN0IGkzMiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAi
aTMyIiwgbXV0YWJsZTogZmFsc2V9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlz
KGkzMikubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEoaTMyLnZhbHVlLCAiaTMyIik7CisgICAg
YXNzZXJ0LmVxKGkzMi5tdXRhYmxlLCBmYWxzZSk7CisKKyAgICBjb25zdCBpMzJtID0gbmV3IFdl
YkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOwor
ICAgIGFzc2VydC5lcShpMzJtLnZhbHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVxKGkzMm0ubXV0
YWJsZSwgdHJ1ZSk7CisKKyAgICBjb25zdCBpNjQgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2
YWx1ZTogImk2NCIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKGk2NC52
YWx1ZSwgImk2NCIpOworCisgICAgY29uc3QgZjMyID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7
dmFsdWU6ICJmMzIiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShmMzIu
dmFsdWUsICJmMzIiKTsKKworICAgIGNvbnN0IGY2NCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwo
e3ZhbHVlOiAiZjY0IiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0
LnZhbHVlLCAiZjY0Iik7CisKKyAgICBjb25zdCBmNjRuID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2Jh
bChmNjQpLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCBmNjRuLnZhbHVlKTsKKyAg
ICBhc3NlcnQuZXEoZjY0Lm11dGFibGUsIGY2NG4ubXV0YWJsZSk7Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcyBi
L0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMKaW5kZXggZGI3ODc4ZjBjYTIzZGM5ZTFmMTk2
MmE4ZjU2NTY3MDY5ODhlMDJkZi4uODAwNGU2N2U3MmVlZDdhOGRjM2ZiYmQyOWEzYWRiMjY5N2Uw
N2M3YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcworKysgYi9KU1Rl
c3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCkBAIC0zOTAsMyArMzkwLDMzIEBAIGFzc2VydC50aHJv
d3MoKCkgPT4gV2ViQXNzZW1ibHkuVGFibGUucHJvdG90eXBlLmdyb3codW5kZWZpbmVkKSwgVHlw
ZUVycm9yLCBgZXhwCiAgICAgfQogICAgIGFzc2VydC50cnV0aHkodGhyZXcpOwogfQorCit7Cisg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgIGNvbnN0IHQgPSBuZXcgV2ViQXNzZW1i
bHkuVGFibGUoe21pbmltdW06IDUsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pOworICAgICAgICB0LnR5
cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8IHZhbHVlIHRv
IGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5LlRhYmxlIik7CisKKyAgICBjb25zdCB0MCA9
IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgZWxlbWVudDogImZ1bmNyZWYifSku
dHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MCkubGVuZ3RoLCAyKTsKKyAgICBh
c3NlcnQuZXEodDAubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVxKHQwLmVsZW1lbnQsICJmdW5j
cmVmIik7CisKKyAgICBjb25zdCB0MSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTog
NSwgbWF4aW11bTogMTAsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQu
ZXEoT2JqZWN0LmtleXModDEpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQxLm1pbmltdW0s
IDUpOworICAgIGFzc2VydC5lcSh0MS5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQuZXEodDEuZWxl
bWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0IHQyID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxl
KHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxlbWVudDogImV4dGVybnJlZiJ9KS50eXBlKCk7
CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5l
cSh0Mi5taW5pbXVtLCA1KTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgMTApCisgICAgYXNz
ZXJ0LmVxKHQyLmVsZW1lbnQsICJleHRlcm5yZWYiKTsKKworICAgIGNvbnN0IHQzID0gbmV3IFdl
YkFzc2VtYmx5LlRhYmxlKHQyKS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQy
KS5sZW5ndGgsIE9iamVjdC5rZXlzKHQzKS5sZW5ndGgpOworICAgIGFzc2VydC5lcSh0Mi5taW5p
bXVtLCB0My5taW5pbXVtKTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgdDMubWF4aW11bSkK
KyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwgdDMuZWxlbWVudCk7Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9y
eS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanMKaW5kZXggNzBlYmRlMjg2
MjMyZTE4MWY1ZWRjYzUyOWFkMjBlNGY2YTE1MDkzNS4uOWVhMmIyYmZiODlmMWRhNTIzZGQxYWJi
NWJhZGVjNDQ4ZTAwY2EyNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21l
bW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzCkBAIC0zOTks
MyArMzk5LDMzIEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4
cG9ydHMubWVtb3J5LmJ1ZmZlci5ieXRlTGVuZ3RoLCAyMCAqIHBhZ2VTaXplKTsKICAgICBhc3Nl
cnQudHJ1dGh5KGluc3RhbmNlLmV4cG9ydHMubWVtb3J5IGluc3RhbmNlb2YgV2ViQXNzZW1ibHku
TWVtb3J5KTsKIH0KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKKyAgICAgICAgY29uc3QgbSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe21pbmltdW06NDAs
IG1heGltdW06IDEwMH0pOworICAgICAgICBtLnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVy
cm9yLCAiV2ViQXNzZW1ibHkuTWVtb3J5LnByb3RvdHlwZS5idWZmZXIgZ2V0dGVyIGNhbGxlZCB3
aXRoIG5vbiBXZWJBc3NlbWJseS5NZW1vcnkgfHRoaXN8IHZhbHVlIik7CisKKyAgICBjb25zdCBt
ZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOiAyMH0pOworICAgIGFzc2Vy
dC5lcShPYmplY3Qua2V5cyhtZW1vcnkudHlwZSgpKS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5l
cShtZW1vcnkudHlwZSgpLm1pbmltdW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUo
KS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTIgPSBuZXcgV2ViQXNzZW1ibHku
TWVtb3J5KHttaW5pbXVtOjQwLCBtYXhpbXVtOiAxMDB9KTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0
LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIu
dHlwZSgpLm1pbmltdW0sIDQwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBlKCkubWF4aW11
bSwgMTAwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKwor
ICAgIGNvbnN0IG1lbW9yeTMgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KG1lbW9yeTIudHlwZSgp
KTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgT2Jq
ZWN0LmtleXMobWVtb3J5My50eXBlKCkpLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIu
dHlwZSgpLm1pbmltdW0sIG1lbW9yeTMudHlwZSgpLm1pbmltdW0pOworICAgIGFzc2VydC5lcSht
ZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCBtZW1vcnkzLnR5cGUoKS5tYXhpbXVtKTsKKyAgICBhc3Nl
cnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTQg
PSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOiAxMCwgbWF4aW11bTogMjAsIHNoYXJl
ZDp0cnVlfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1lbW9yeTQudHlwZSgpKS5sZW5n
dGgsIDMpOworICAgIGFzc2VydC5lcShtZW1vcnk0LnR5cGUoKS5taW5pbXVtLCAxMCk7CisgICAg
YXNzZXJ0LmVxKG1lbW9yeTQudHlwZSgpLm1heGltdW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVt
b3J5NC50eXBlKCkuc2hhcmVkLCB0cnVlKTsKK30pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424625</attachid>
            <date>2021-03-30 01:46:25 -0700</date>
            <delta_ts>2021-03-31 05:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210330104623.patch</filename>
            <type>text/plain</type>
            <size>33584</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NWVhZmE5OTEzOWJjYTJjZTAzMDRlZjNhNTM1NWRhN2U2ZmU2YjI5Li4yMjBlN2E3Yzc1NDhjNmYy
NzhkN2U3MmE1NzQ1MzY4YjQ0ZDg2Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0yOSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1i
bHlHbG9iYWw6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5o
OgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHA6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVRhYmxlOjp0eXBlKToKKyAgICAgICAgKiB3
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorCiAyMDIxLTAzLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgJiBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTLCBpdCBzZWVtcyBsaWtlIGl0IGlzIG9uIGZvciBhbGwg
cG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlHbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseUdsb2JhbC5jcHAKaW5kZXggYjdiOGEwNTA3NWY2NGU3MmZkMzc2MzU3ZThiYzdlOTJhOWE4
MTIxMS4uYTM1OTg1NGRhNDczYTkyOTNjMWIxZDk1NDBmYmQ2YjE4NzdhY2VkZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5j
cHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpT
V2ViQXNzZW1ibHlHbG9iYWwuaCIKKyNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCkBAIC04MSw2ICs4Miw0OCBAQCB2b2lkIEpTV2ViQXNz
ZW1ibHlHbG9iYWw6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlz
aXRvcikKICAgICB0aGlzT2JqZWN0LT5nbG9iYWwoKS0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7
CiB9CiAKK0pTT2JqZWN0KiBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisg
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisKKyAgICBib29sIGlzTXV0YWJs
ZTsKKyAgICBpZiAobV9nbG9iYWwtPm11dGFiaWxpdHkoKSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1h
dGlvbjo6TXV0YWJsZSkKKyAgICAgICAgaXNNdXRhYmxlID0gdHJ1ZTsKKyAgICBlbHNlCisgICAg
ICAgIGlzTXV0YWJsZSA9IGZhbHNlOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAibXV0YWJsZSIpLCBqc0Jvb2xlYW4oaXNNdXRhYmxlKSk7CisK
KyAgICBXYXNtOjpUeXBlIHZhbHVlID0gbV9nbG9iYWwtPnR5cGUoKTsKKyAgICBKU1N0cmluZyog
dmFsdWVTdHIgPSBudWxscHRyOworICAgIHN3aXRjaCAodmFsdWUua2luZCkgeworICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRyaXZpYWxTdHJp
bmcodm0sICJpMzIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
STY0OgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImk2NCIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CisgICAgICAgIHZh
bHVlU3RyID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZjMyIik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgdmFsdWVTdHIgPSBqc05vbnRy
aXZpYWxTdHJpbmcodm0sICJmNjQiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RXh0ZXJucmVmOgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpGdW5jcmVmOgorICAgICAgICB2YWx1ZVN0ciA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwg
ImZ1bmNyZWYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSIpLCB2YWx1ZVN0cik7CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNXZWJBc3NlbWJseUds
b2JhbCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5oCmluZGV4IDU1MmFlMDVhMGY0YTlkODM1
YWRlMGY5ZTBmZDk0ZGNlOTUxYjdjOTkuLjc0MmZiZTA4ZDQyMzQzMTc4ZDJmNTk5MDFhZTQ0OGI1
ZWVmM2NlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlHbG9iYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5R2xvYmFsLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIERFQ0xBUkVf
SU5GTzsKIAogICAgIFdhc206Okdsb2JhbCogZ2xvYmFsKCkgeyByZXR1cm4gbV9nbG9iYWwucHRy
KCk7IH0KKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgog
ICAgIEpTV2ViQXNzZW1ibHlHbG9iYWwoVk0mLCBTdHJ1Y3R1cmUqLCBSZWY8V2FzbTo6R2xvYmFs
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlNZW1vcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5jcHAKaW5kZXggMTQ1ZWU3ODM4ZGNlZmVmNjhhZTk5NDllZjdmN2E4YWYyNDhj
MWVhNi4uOWRmZTgzYTQ3YTEyNTZkZDFmYjMxMmU4NzY3MGVjNWQwNjk4NzIzNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5j
cHAKQEAgLTEzMSw2ICsxMzEsMzIgQEAgV2FzbTo6UGFnZUNvdW50IEpTV2ViQXNzZW1ibHlNZW1v
cnk6Omdyb3coVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBncm93bi52YWx1ZSgpOwogfQogCitKU09iamVjdCogSlNXZWJBc3NlbWJseU1lbW9yeTo6dHlw
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKworICAgIFdhc206OlBhZ2VDb3VudCBtaW5pbXVtID0gbV9tZW1vcnktPmlu
aXRpYWwoKTsKKyAgICBXYXNtOjpQYWdlQ291bnQgbWF4aW11bSA9IG1fbWVtb3J5LT5tYXhpbXVt
KCk7CisKKyAgICBKU09iamVjdCogcmVzdWx0OworICAgIGlmIChtYXhpbXVtLmlzVmFsaWQoKSkg
eworICAgICAgICByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDMpOworICAgICAgICByZXN1bHQtPnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1heGltdW0iKSwganNOdW1iZXIo
bWF4aW11bS5wYWdlQ291bnQoKSkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCksIDIpOworCisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJtaW5pbXVtIiksIGpzTnVtYmVyKG1pbmltdW0ucGFnZUNvdW50KCkpKTsKKwor
ICAgIFdhc206Ok1lbW9yeVNoYXJpbmdNb2RlIHNoYXJlZCA9IG1fbWVtb3J5LT5zaGFyaW5nTW9k
ZSgpOworICAgIGlmIChzaGFyZWQgPT0gV2FzbTo6TWVtb3J5U2hhcmluZ01vZGU6OkRlZmF1bHQp
CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAic2hhcmVkIiksIGpzQm9vbGVhbihmYWxzZSkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzaGFyZWQiKSwganNC
b29sZWFuKHRydWUpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKwogdm9pZCBKU1dlYkFz
c2VtYmx5TWVtb3J5Ojpncm93U3VjY2Vzc0NhbGxiYWNrKFZNJiB2bSwgV2FzbTo6UGFnZUNvdW50
IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCkKIHsKICAgICAvLyBX
ZSBuZWVkIHRvIGNsZWFyIG91dCB0aGUgb2xkIGFycmF5IGJ1ZmZlciBiZWNhdXNlIGl0IG1pZ2h0
IG5vdyBiZSBwb2ludGluZyB0byBzdGFsZSBtZW1vcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmgKaW5kZXggMzYzODAzZWU1NDBk
OWY0YWM0NDQ5OGQxMzg4Njk2MDA0ZTBkZDgxZC4uZmY0YmE5YmNlZTU0NzMzYzFmMTc0ZTY3NDFi
ODUxMTgzODA4MDc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseU1lbW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlNZW1vcnkuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgV2Fz
bTo6UGFnZUNvdW50IGdyb3coVk0mLCBKU0dsb2JhbE9iamVjdCosIHVpbnQzMl90IGRlbHRhKTsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGdyb3dTdWNjZXNzQ2FsbGJhY2soVk0mLCBXYXNt
OjpQYWdlQ291bnQgb2xkUGFnZUNvdW50LCBXYXNtOjpQYWdlQ291bnQgbmV3UGFnZUNvdW50KTsK
IAorICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CisKIHByaXZhdGU6CiAgICAg
SlNXZWJBc3NlbWJseU1lbW9yeShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5VGFibGUuY3BwCmluZGV4IGFhODM2YWVkNGQyOWE4M2RhOTgyZTA0YWMzNjFkYTBi
MzlmNGJjNjEuLmYxYzE4MzdhMDcxNWNkZGNlZDU3MTIxMDMxMTBkOGU5ZTkzZjBmYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxl
LmNwcApAQCAtMTI2LDYgKzEyNiwzMiBAQCB2b2lkIEpTV2ViQXNzZW1ibHlUYWJsZTo6Y2xlYXIo
dWludDMyX3QgaW5kZXgpCiAgICAgbV90YWJsZS0+Y2xlYXIoaW5kZXgpOwogfQogCitKU09iamVj
dCogSlNXZWJBc3NlbWJseVRhYmxlOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisgICAgV2FzbTo6VGFibGVF
bGVtZW50VHlwZSBlbGVtZW50ID0gbV90YWJsZS0+dHlwZSgpOworICAgIEpTU3RyaW5nKiBlbGVt
ZW50U3RyID0gbnVsbHB0cjsKKyAgICBpZiAoZWxlbWVudCA9PSBXYXNtOjpUYWJsZUVsZW1lbnRU
eXBlOjpGdW5jcmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2aWFsU3RyaW5nKHZt
LCAiZnVuY3JlZiIpOworICAgIGVsc2UgaWYgKGVsZW1lbnQgPT0gV2FzbTo6VGFibGVFbGVtZW50
VHlwZTo6RXh0ZXJucmVmKQorICAgICAgICBlbGVtZW50U3RyID0ganNOb250cml2aWFsU3RyaW5n
KHZtLCAiZXh0ZXJucmVmIik7CisKKyAgICB1aW50MzJfdCBtaW5pbXVtID0gbV90YWJsZS0+bGVu
Z3RoKCk7CisKKyAgICBKU09iamVjdCogcmVzdWx0OworICAgIGF1dG8gbWF4aW11bSA9IG1fdGFi
bGUtPm1heGltdW0oKTsKKyAgICBpZiAobWF4aW11bSkgeworICAgICAgICByZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCksIDMpOyAgICAgICAKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICJtYXhpbXVtIiksIGpzTnVtYmVyKCptYXhpbXVtKSk7CisgICAg
fSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisKKyAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1pbmltdW0iKSwganNOdW1i
ZXIobWluaW11bSkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiZWxlbWVudCIpLCBlbGVtZW50U3RyKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlU
YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxl
LmgKaW5kZXggZDA2OTM3ODZmYjMzMTg0ZDY1NDZmZDNmYmViNGQ1ZWE0MDgyNDczMC4uZmQ1OWYy
MjQ0ZmNlMTcwZDUwN2Q5YWYzZjFlYmMzOTE0ZDU4MGMxYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmgKQEAgLTY0LDYgKzY0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0KHVpbnQzMl90LCBXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbiopOwogICAgIHZvaWQgc2V0KHVpbnQzMl90LCBKU1ZhbHVlKTsKICAgICB2b2lkIGNsZWFy
KHVpbnQzMl90KTsKKyAgICBKU09iamVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOwogCiAgICAg
V2FzbTo6VGFibGUqIHRhYmxlKCkgeyByZXR1cm4gbV90YWJsZS5wdHIoKTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bFByb3RvdHlwZS5jcHAKaW5kZXggYmU4MTE0ODBlNzNjMjJkMDg5N2U5NWVjYjExODVlNTI1YjIy
N2VlYy4uZjg5MmNjNmY4MGRjY2I5MWNlMDQzZjUzODM4NzM2NzQ0Nzk1ODBkYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xv
YmFsUHJvdG90eXBlLmNwcApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHN0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFs
dWVPZik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2Jh
bFByb3RvR2V0dGVyRnVuY1ZhbHVlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlKTsKIH0KIAog
I2luY2x1ZGUgIldlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmx1dC5oIgpAQCAtNDksNiArNTAs
OCBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIldlYkFzc2VtYmx5Lkdsb2JhbCIsICZCYQogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUds
b2JhbFByb3RvdHlwZS5sdXQuaAogIEBiZWdpbiBwcm90b3R5cGVHbG9iYWxXZWJBc3NlbWJseUds
b2JhbAogIHZhbHVlT2Ygd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mIEZ1bmN0aW9u
IDAKKyB0eXBlICAgIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVHlwZSAgICBGdW5jdGlvbiAw
CisKICBAZW5kCiAgKi8KIApAQCAtNzYsNyArNzksNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGds
bwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xv
YmFsLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTg0LDYgKzg3LDE2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
CiAgICAgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsID0gZ2V0R2xvYmFsKGdsb2JhbE9iamVj
dCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbC0+dHlwZShnbG9iYWxPYmplY3QpKSk7
Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0
dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTV2ViQXNzZW1i
bHlHbG9iYWwqIGdsb2JhbCA9IGdldEdsb2JhbChnbG9iYWxPYmplY3QsIHZtLCBjYWxsRnJhbWUt
PnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUoZ2xvYmFsLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xv
YmFsUHJvdG90eXBlLmgKaW5kZXggYWM1YmU4YTBjZWFhMmRjY2JiYzNhNzBiNzZjMWQ0MTdlMDlh
ODg2ZC4uNzAzNjhiNmRiNGEyODIzYWQwZTgxODhhOWYyNGQ4ZGU0MDg5YzBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bFByb3RvdHlwZS5oCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5G
TzsKIAorICAgIEpTT2JqZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CisKIHByaXZhdGU6CiAg
ICAgV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBl
LmNwcAppbmRleCA3ZTIwOGMzMTAxYzIzNzE2MzIyOWNjNTc5MjdhZWE2YjhmMGIyNWUwLi45ZDEw
YjRmZmQxNTU3YTVmZTMxODMxZDJiNzU3NGM3ZmZjNTJlNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk7CiBzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1
ZmZlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9y
eVByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUubHV0LmgiCkBAIC01Myw2ICs1NCw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseU1l
bW9yeVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuTWVtb3J5IiwgJkJhCiBAYmVn
aW4gcHJvdG90eXBlVGFibGVXZWJBc3NlbWJseU1lbW9yeQogIGdyb3cgICB3ZWJBc3NlbWJseU1l
bW9yeVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgYnVmZmVyIHdlYkFzc2VtYmx5TWVtb3J5
UHJvdG9GdW5jQnVmZmVyIEFjY2Vzc29yIDAKKyB0eXBlICAgd2ViQXNzZW1ibHlNZW1vcnlQcm90
b0Z1bmNUeXBlICAgRnVuY3Rpb24gMAogQGVuZAogKi8KIApAQCAtOTYsNiArOTgsMTcgQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKG1lbW9yeS0+YnVmZmVyKGdsb2JhbE9iamVjdCkpKTsKIH0KIAorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1dlYkFzc2VtYmx5TWVtb3J5KiBtZW1vcnkg
PSBnZXRNZW1vcnkoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUobWVtb3J5LT50eXBlKGdsb2JhbE9i
amVjdCkpKTsKK30KKworCiBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZSogV2ViQXNzZW1ibHlN
ZW1vcnlQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseU1l
bW9yeVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKaW5kZXgg
MjUxMzA5MmUzOTZkYmIwMjM0MmI2NDA0N2M3ZjVjZTIxNGM3ZjYxNS4uNTllMGFkNzAwZmQxMGEx
M2JkNzk5MmE4Njc3NWY2MWE3ODc5YzBjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlU
YWJsZVByb3RvRnVuY0xlbmd0aCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3Jvdyk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KTsKIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1R5cGUpOwog
fQogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCIKQEAgLTU1LDYg
KzU2LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU6OnNfaW5m
byA9IHsgIldlYkFzc2VtYmx5LlRhYmxlIiwgJkJhc2UKICBncm93ICAgd2ViQXNzZW1ibHlUYWJs
ZVByb3RvRnVuY0dyb3cgICBGdW5jdGlvbiAxCiAgZ2V0ICAgIHdlYkFzc2VtYmx5VGFibGVQcm90
b0Z1bmNHZXQgICAgRnVuY3Rpb24gMQogIHNldCAgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5j
U2V0ICAgIEZ1bmN0aW9uIDIKKyB0eXBlICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1R5cGUg
ICBGdW5jdGlvbiAwCiAgQGVuZAogICovCiAKQEAgLTE2NCw2ICsxNjYsMTYgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVu
Y1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseVRhYmxl
KiB0YWJsZSA9IGdldFRhYmxlKGdsb2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
YWJsZS0+dHlwZShnbG9iYWxPYmplY3QpKSk7Cit9CisKIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5
cGUqIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgYXV0byogb2JqZWN0ID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZT4odm0uaGVhcCkp
IFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA3OWI3YzNlZWRmN2Q3NDU2YTYwMmRmMWI0MGZmMTBhNTVkNmM1
MDNmLi5hZTdkNDdhY2I3YzQ1NDYzMzJhZjViODkzNzQ1ZWYxZDBhMmEyZWI3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wMy0yOSAgSmVzc2lj
YSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBkYXRlIHdhc20gSlMt
QVBJIHRlc3RzIGZvciB0aGUgdHlwZSBtZXRob2QgdG8gbGF0ZXN0IHVwc3RyZWFtLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVwc3RyZWFtIHRl
c3RzIGhhcyByZWNlbnRseSBhZGRlZCBhIHRlc3QgZm9yIHRoZSB0YWJsZSB0eXBlIG1ldGhvZCBh
bmQKKyAgICAgICAgdXBkYXRlZCB0aGUgb3RoZXIgdHlwZSB0ZXN0cyB0byBtZXRob2RzIHRvIGtl
ZXAgdXAgd2l0aCBhIHJlY2VudCBzcGVjIGNoYW5nZS4KKyAgICAgICAgVGhpcyBhZGRzIHRob3Nl
IHVwZGF0ZWQgdGVzdHMgYXMgd2VsbCBhcyBub3cgZXhwZWN0YXRpb25zIHRoZXkgcGFzcy4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanM6CisgICAgICAgIChhc3NlcnRfdHlw
ZSk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS50ZXN0KToKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
bWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qczoKKyAg
ICAgICAgKGFzc2VydF90eXBlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIw
MjEtMDMtMjYgIFRpbSBOZ3V5ZW4gIDxudGltLmJ1Z3NAZ21haWwuY29tPgogCiAgICAgICAgIEFk
ZCBpbnRlcnBvbGF0aW9uIGZvciBvYmplY3QtcG9zaXRpb24gQ1NTIHByb3BlcnR5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNh
cGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVu
dGF0aXZlLmFueS1leHBlY3RlZC50eHQKaW5kZXggZGNmNmI5OTEzZjEwNmYzZjYzYzdmZDgwOGJj
MzIyZjE0NTJiOWJlZS4uMDExYzcyYjkxYzlhYWI2OTJiNGFhYjk2ZTViNTBmMjk1NGEyYmE0NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9i
YWwvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwxNSBAQAogCi1G
QUlMIGkzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
bXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0
LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2Jh
bC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIG11dGFi
bGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUu
dmFsdWUnKQotRkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgbXV0YWJsZSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScp
Ci1GQUlMIGY2NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRhYmxlIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZB
SUwgYW55cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRhYmxlIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZB
SUwgZnVuY3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5nIHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyht
eWdsb2JhbC50eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIsIGltbXV0YWJsZQor
UEFTUyBpNjQsIG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1MgZjMyLCBtdXRhYmxl
CitQQVNTIGYzMiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFTUyBmNjQsIGltbXV0
YWJsZQorUEFTUyBhbnlyZWYsIG11dGFibGUKK1BBU1MgYW55cmVmLCBpbW11dGFibGUKK1BBU1Mg
ZnVuY3JlZiwgbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBpbW11dGFibGUKK1BBU1Mga2V5IG9yZGVy
aW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBl
LnRlbnRhdGl2ZS5hbnkuanMKaW5kZXggMzE4YjFhYzU3OGNhYzYwNTFlYTIzZWNmYmI2NTI1ZmZm
YjMyNTUwMS4uYTFjZmFlOTBkYjk0N2YzNDI4NjQ1MTYyNjI3OWE1NjI0MjU2MDE5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2
ZS5hbnkuanMKQEAgLTMsOSArMywxMCBAQAogCiBmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVu
dCkgewogICAgIGNvbnN0IG15Z2xvYmFsID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbChhcmd1bWVu
dCk7CisgICAgY29uc3QgZ2xvYmFsdHlwZSA9IG15Z2xvYmFsLnR5cGUoKTsKIAotICAgIGFzc2Vy
dF9lcXVhbHMobXlnbG9iYWwudHlwZS52YWx1ZSwgYXJndW1lbnQudmFsdWUpOwotICAgIGFzc2Vy
dF9lcXVhbHMobXlnbG9iYWwudHlwZS5tdXRhYmxlLCBhcmd1bWVudC5tdXRhYmxlKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGdsb2JhbHR5cGUudmFsdWUsIGFyZ3VtZW50LnZhbHVlKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGdsb2JhbHR5cGUubXV0YWJsZSwgYXJndW1lbnQubXV0YWJsZSk7CiB9CiAKIHRl
c3QoKCkgPT4gewpAQCAtNTgsNyArNTksNyBAQCB0ZXN0KCgpID0+IHsKIAogdGVzdCgoKSA9PiB7
CiAgICAgY29uc3QgbXlnbG9iYWwgPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHsidmFsdWUiOiAi
aTMyIiwgIm11dGFibGUiOiB0cnVlfSk7Ci0gICAgY29uc3QgcHJvcGVydHlOYW1lcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpOworICAgIGNvbnN0IHByb3BlcnR5
TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2JhbC50eXBlKCkpOwogICAg
IGFzc2VydF9lcXVhbHMocHJvcGVydHlOYW1lc1swXSwgIm11dGFibGUiKTsKICAgICBhc3NlcnRf
ZXF1YWxzKHByb3BlcnR5TmFtZXNbMV0sICJ2YWx1ZSIpOwogfSwgImtleSBvcmRlcmluZyIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9n
bG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZGNmNmI5
OTEzZjEwNmYzZjYzYzdmZDgwOGJjMzIyZjE0NTJiOWJlZS4uMDExYzcyYjkxYzlhYWI2OTJiNGFh
Yjk2ZTViNTBmMjk1NGEyYmE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiAKLUZBSUwgaTMyLCBtdXRhYmxlIHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykK
LUZBSUwgaTMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpNjQsIG11dGFibGUgdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBp
NjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXln
bG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGYzMiwgaW1t
dXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50
eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjY0LCBpbW11dGFibGUg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFs
dWUnKQotRkFJTCBhbnlyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBhbnlyZWYsIGltbXV0YWJsZSB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1
ZScpCi1GQUlMIGZ1bmNyZWYsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBpbW11dGFibGUg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFs
dWUnKQotRkFJTCBrZXkgb3JkZXJpbmcgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG15Z2xvYmFsLnR5cGUpJykKK1BBU1Mg
aTMyLCBtdXRhYmxlCitQQVNTIGkzMiwgaW1tdXRhYmxlCitQQVNTIGk2NCwgbXV0YWJsZQorUEFT
UyBpNjQsIGltbXV0YWJsZQorUEFTUyBmMzIsIG11dGFibGUKK1BBU1MgZjMyLCBpbW11dGFibGUK
K1BBU1MgZjY0LCBtdXRhYmxlCitQQVNTIGY2NCwgaW1tdXRhYmxlCitQQVNTIGFueXJlZiwgbXV0
YWJsZQorUEFTUyBhbnlyZWYsIGltbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBtdXRhYmxlCitQQVNT
IGZ1bmNyZWYsIGltbXV0YWJsZQorUEFTUyBrZXkgb3JkZXJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IDQ5MmZkMzY0ZGMwMDljNjJhMDM1OTZiMTY1NzAxMGRhOWEy
NjIxZjUuLmJmMDY1NWVkNDVmOGIxZGFmNzU5Njg2YTVlNWY2ZjhlOWVlNTkzYmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2Fw
aS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUu
dGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKLUZBSUwgWmVybyBp
bml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8gaW5pdGlhbCwgbm8gbWF4aW11
bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWlu
aW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbmUtemVybyBtYXhpbXVtIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVt
JykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBzaGFyZWQgbWVtb3J5IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykK
K1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5v
IG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCitQQVNT
IG5vbi1zaGFyZWQgbWVtb3J5CitQQVNTIHNoYXJlZCBtZW1vcnkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9y
eS90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwppbmRl
eCBlZmU5ZTJhMzdkZWI3YmI2ZWY4NDFlOTgwOWVlZTc4MWM5ZWZmYjlmLi5hOTZhMzIyN2FkY2E3
ZmYwOWRlNzVlNWY3YzQxMmFiOTViMGQ1MDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0
aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS5qcwpAQCAtMywxMSArMywx
MiBAQAogCiBmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgewogICAgIGNvbnN0IG1lbW9y
eSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoYXJndW1lbnQpOworICAgIGNvbnN0IG1lbW9yeXR5
cGUgPSBtZW1vcnkudHlwZSgpCiAKLSAgICBhc3NlcnRfZXF1YWxzKG1lbW9yeS50eXBlLm1pbmlt
dW0sIGFyZ3VtZW50Lm1pbmltdW0pOwotICAgIGFzc2VydF9lcXVhbHMobWVtb3J5LnR5cGUubWF4
aW11bSwgYXJndW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnl0eXBlLm1p
bmltdW0sIGFyZ3VtZW50Lm1pbmltdW0pOworICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5t
YXhpbXVtLCBhcmd1bWVudC5tYXhpbXVtKTsKICAgICBpZiAoYXJndW1lbnQuc2hhcmVkICE9PSB1
bmRlZmluZWQpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtZW1vcnkudHlwZS5zaGFyZWQsIGFy
Z3VtZW50LnNoYXJlZCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWVtb3J5dHlwZS5zaGFyZWQs
IGFyZ3VtZW50LnNoYXJlZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTJmZDM2NGRjMDA5YzYyYTAzNTk2YjE2NTcwMTBk
YTlhMjYyMWY1Li5iZjA2NTVlZDQ1ZjhiMWRhZjc1OTY4NmE1ZTVmNmY4ZTllZTU5M2JhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20v
anNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9t
ZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4
IEBACiAKLUZBSUwgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgTm9uLXplcm8g
aW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIFplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5v
bmUtemVybyBtYXhpbXVtIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
ZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgbm9uLXNoYXJlZCBtZW1vcnkgdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBz
aGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1v
cnkudHlwZS5taW5pbXVtJykKK1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5v
bi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUt
emVybyBtYXhpbXVtCitQQVNTIG5vbi1zaGFyZWQgbWVtb3J5CitQQVNTIHNoYXJlZCBtZW1vcnkK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUv
dHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjEzNDAyYTI2MTA0
MzNiYzI3ZDI5Yjc2YzRhMTM5NTU5MmZlN2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUu
dGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgWmVybyBp
bml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0KK1BB
U1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJs
ZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50
YXRpdmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxMTMwZTBhZDAyOWM1MmY3ODFjOTNiZGFiZmU2MDc3
N2M2NDFkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBA
IC0wLDAgKzEsMjYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csZGVkaWNhdGVkd29ya2VyLGpz
c2hlbGwKKy8vIE1FVEE6IHNjcmlwdD0vd2FzbS9qc2FwaS9hc3NlcnRpb25zLmpzCisKK2Z1bmN0
aW9uIGFzc2VydF90eXBlKGFyZ3VtZW50KSB7CisgICAgY29uc3QgbXl0YWJsZSA9IG5ldyBXZWJB
c3NlbWJseS5UYWJsZShhcmd1bWVudCk7CisgICAgY29uc3QgdGFibGV0eXBlID0gbXl0YWJsZS50
eXBlKCkKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5p
bXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5tYXhpbXVtLCBhcmd1bWVudC5tYXhp
bXVtKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhYmxldHlwZS5lbGVtZW50LCBhcmd1bWVudC5lbGVt
ZW50KTsKK30KKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAs
ICJlbGVtZW50IjogImZ1bmNyZWYifSk7Cit9LCAiWmVybyBpbml0aWFsLCBubyBtYXhpbXVtIik7
CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiA1LCAiZWxlbWVu
dCI6ICJmdW5jcmVmIiB9KTsKK30sICJOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtIik7CisK
K3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBlKHsgIm1pbmltdW0iOiAwLCAibWF4aW11bSI6
IDAsICJlbGVtZW50IjogImZ1bmNyZWYiIH0pOworfSwgIlplcm8gbWF4aW11bSIpOworCit0ZXN0
KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVtIjogMCwgIm1heGltdW0iOiA1LCAi
ZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJOb25lLXplcm8gbWF4aW11bSIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5
cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMTM0MDJh
MjYxMDQzM2JjMjdkMjliNzZjNGExMzk1NTkyZmU3YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUv
dHlwZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgWmVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIE5vbi16ZXJvIGluaXRpYWwsIG5v
IG1heGltdW0KK1BBU1MgWmVybyBtYXhpbXVtCitQQVNTIE5vbmUtemVybyBtYXhpbXVtCisKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzE5
YjE0MWM5ZThjY2NiZmVjMjBkMGZiNDZlM2Q5ZTE0YzM2NGQ0NS4uYzFkZDJkY2FmYWYxOTYzMzZj
MTM2ZjQ0Zjc3NjJlYjJkMzZjOWEzYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0yOSAgSmVzc2lj
YSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB0
aGUgbmV3IHR5cGUgbWV0aG9kIG9uIGNlcnRhaW4gSlMtQVBJIHdhc20gb2JqZWN0cy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2FzbS9qcy1hcGkv
Z2xvYmFsLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzc2VydC50aHJvd3MpOgorICAgICAgICAqIHdh
c20vanMtYXBpL3RhYmxlLmpzOgorICAgICAgICAoYXNzZXJ0LnRydXRoeSk6CisgICAgICAgICog
d2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanM6CisKIDIwMjEtMDMtMjYgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgQXBwbGVJQ1UgU1BJIGZv
ciBjYW5vbmljYWxpemF0aW9uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2Jh
bC5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMDEzMTgy
OTU1MWViZTJkM2U0ZTBlOTNiN2Q4ODUwNWFjOGM1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcwpAQCAtMCwwICsxLDI5IEBACitpbXBvcnQgKiBhcyBh
c3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKK3sKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
KyAgICAgICAgY29uc3QgZyA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwg
bXV0YWJsZTogZmFsc2V9KTsKKyAgICAgICAgZy50eXBlLmNhbGwoe30pOworICAgIH0sIFR5cGVF
cnJvciwgImV4cGVjdGVkIHx0aGlzfCB2YWx1ZSB0byBiZSBhbiBpbnN0YW5jZSBvZiBXZWJBc3Nl
bWJseS5HbG9iYWwiKTsKKworICAgIGNvbnN0IGkzMiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwo
e3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9i
amVjdC5rZXlzKGkzMikubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEoaTMyLnZhbHVlLCAiaTMy
Iik7CisgICAgYXNzZXJ0LmVxKGkzMi5tdXRhYmxlLCBmYWxzZSk7CisKKyAgICBjb25zdCBpMzJt
ID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIiLCBtdXRhYmxlOiB0cnVlfSku
dHlwZSgpOworICAgIGFzc2VydC5lcShpMzJtLnZhbHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVx
KGkzMm0ubXV0YWJsZSwgdHJ1ZSk7CisKKyAgICBjb25zdCBpNjQgPSBuZXcgV2ViQXNzZW1ibHku
R2xvYmFsKHt2YWx1ZTogImk2NCIsIG11dGFibGU6IHRydWV9KS50eXBlKCk7CisgICAgYXNzZXJ0
LmVxKGk2NC52YWx1ZSwgImk2NCIpOworCisgICAgY29uc3QgZjMyID0gbmV3IFdlYkFzc2VtYmx5
Lkdsb2JhbCh7dmFsdWU6ICJmMzIiLCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2Vy
dC5lcShmMzIudmFsdWUsICJmMzIiKTsKKworICAgIGNvbnN0IGY2NCA9IG5ldyBXZWJBc3NlbWJs
eS5HbG9iYWwoe3ZhbHVlOiAiZjY0IiwgbXV0YWJsZTogdHJ1ZX0pLnR5cGUoKTsKKyAgICBhc3Nl
cnQuZXEoZjY0LnZhbHVlLCAiZjY0Iik7CisKKyAgICBjb25zdCBmNjRuID0gbmV3IFdlYkFzc2Vt
Ymx5Lkdsb2JhbChmNjQpLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCBmNjRuLnZh
bHVlKTsKKyAgICBhc3NlcnQuZXEoZjY0Lm11dGFibGUsIGY2NG4ubXV0YWJsZSk7Cit9ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90
YWJsZS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMKaW5kZXggZGI3ODc4ZjBjYTIz
ZGM5ZTFmMTk2MmE4ZjU2NTY3MDY5ODhlMDJkZi4uODAwNGU2N2U3MmVlZDdhOGRjM2ZiYmQyOWEz
YWRiMjY5N2UwN2M3YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcwor
KysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCkBAIC0zOTAsMyArMzkwLDMzIEBAIGFz
c2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1ibHkuVGFibGUucHJvdG90eXBlLmdyb3codW5kZWZp
bmVkKSwgVHlwZUVycm9yLCBgZXhwCiAgICAgfQogICAgIGFzc2VydC50cnV0aHkodGhyZXcpOwog
fQorCit7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgIGNvbnN0IHQgPSBuZXcg
V2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pOworICAg
ICAgICB0LnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiZXhwZWN0ZWQgfHRoaXN8
IHZhbHVlIHRvIGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5LlRhYmxlIik7CisKKyAgICBj
b25zdCB0MCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgZWxlbWVudDogImZ1
bmNyZWYifSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyh0MCkubGVuZ3RoLCAy
KTsKKyAgICBhc3NlcnQuZXEodDAubWluaW11bSwgNSk7CisgICAgYXNzZXJ0LmVxKHQwLmVsZW1l
bnQsICJmdW5jcmVmIik7CisKKyAgICBjb25zdCB0MSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7
bWluaW11bTogNSwgbWF4aW11bTogMTAsIGVsZW1lbnQ6ICJmdW5jcmVmIn0pLnR5cGUoKTsKKyAg
ICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDEpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVxKHQx
Lm1pbmltdW0sIDUpOworICAgIGFzc2VydC5lcSh0MS5tYXhpbXVtLCAxMCkKKyAgICBhc3NlcnQu
ZXEodDEuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0IHQyID0gbmV3IFdlYkFzc2Vt
Ymx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxlbWVudDogImV4dGVybnJlZiJ9
KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIDMpOworICAg
IGFzc2VydC5lcSh0Mi5taW5pbXVtLCA1KTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgMTAp
CisgICAgYXNzZXJ0LmVxKHQyLmVsZW1lbnQsICJleHRlcm5yZWYiKTsKKworICAgIGNvbnN0IHQz
ID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHQyKS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVj
dC5rZXlzKHQyKS5sZW5ndGgsIE9iamVjdC5rZXlzKHQzKS5sZW5ndGgpOworICAgIGFzc2VydC5l
cSh0Mi5taW5pbXVtLCB0My5taW5pbXVtKTsKKyAgICBhc3NlcnQuZXEodDIubWF4aW11bSwgdDMu
bWF4aW11bSkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwgdDMuZWxlbWVudCk7Cit9ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS90
ZXN0X21lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9tZW1vcnkuanMKaW5kZXgg
NzBlYmRlMjg2MjMyZTE4MWY1ZWRjYzUyOWFkMjBlNGY2YTE1MDkzNS4uOWVhMmIyYmZiODlmMWRh
NTIzZGQxYWJiNWJhZGVjNDQ4ZTAwY2EyNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFw
aS90ZXN0X21lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfbWVtb3J5Lmpz
CkBAIC0zOTksMyArMzk5LDMzIEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgYXNzZXJ0LmVxKGlu
c3RhbmNlLmV4cG9ydHMubWVtb3J5LmJ1ZmZlci5ieXRlTGVuZ3RoLCAyMCAqIHBhZ2VTaXplKTsK
ICAgICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlLmV4cG9ydHMubWVtb3J5IGluc3RhbmNlb2YgV2Vi
QXNzZW1ibHkuTWVtb3J5KTsKIH0KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKKyAgICAgICAgY29uc3QgbSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoe21p
bmltdW06NDAsIG1heGltdW06IDEwMH0pOworICAgICAgICBtLnR5cGUuY2FsbCh7fSk7CisgICAg
fSwgVHlwZUVycm9yLCAiV2ViQXNzZW1ibHkuTWVtb3J5LnByb3RvdHlwZS5idWZmZXIgZ2V0dGVy
IGNhbGxlZCB3aXRoIG5vbiBXZWJBc3NlbWJseS5NZW1vcnkgfHRoaXN8IHZhbHVlIik7CisKKyAg
ICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOiAyMH0pOwor
ICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkudHlwZSgpKS5sZW5ndGgsIDIpOworICAg
IGFzc2VydC5lcShtZW1vcnkudHlwZSgpLm1pbmltdW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVt
b3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTIgPSBuZXcgV2Vi
QXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOjQwLCBtYXhpbXVtOiAxMDB9KTsKKyAgICBhc3NlcnQu
ZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgMyk7CisgICAgYXNzZXJ0LmVx
KG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIDQwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5Mi50eXBl
KCkubWF4aW11bSwgMTAwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZh
bHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTMgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KG1lbW9y
eTIudHlwZSgpKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxl
bmd0aCwgT2JqZWN0LmtleXMobWVtb3J5My50eXBlKCkpLmxlbmd0aCk7CisgICAgYXNzZXJ0LmVx
KG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIG1lbW9yeTMudHlwZSgpLm1pbmltdW0pOworICAgIGFz
c2VydC5lcShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCBtZW1vcnkzLnR5cGUoKS5tYXhpbXVtKTsK
KyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0
IG1lbW9yeTQgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOiAxMCwgbWF4aW11bTog
MjAsIHNoYXJlZDp0cnVlfSk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKG1lbW9yeTQudHlw
ZSgpKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcShtZW1vcnk0LnR5cGUoKS5taW5pbXVtLCAx
MCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTQudHlwZSgpLm1heGltdW0sIDIwKTsKKyAgICBhc3Nl
cnQuZXEobWVtb3J5NC50eXBlKCkuc2hhcmVkLCB0cnVlKTsKK30pClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424758</attachid>
            <date>2021-03-31 05:35:35 -0700</date>
            <delta_ts>2021-04-02 14:10:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222412-20210331143534.patch</filename>
            <type>text/plain</type>
            <size>33431</size>
            <attacher>jtallon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MDNjMmE5NjFjYTE5ZjkwNWUyMTNmZTY5MGRhZTMxZjQ5YTU2MjJlLi4xN2ZhMTQ5NjMyNzM5NjZl
YzM1NDg2NzA5NGVkNjU3NjcwYzljOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wMy0zMSAgSmVzc2ljYSBUYWxsb24gIDxqdGFsbG9uQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHR5cGUgbWV0aG9kIHRvIFdlYkFzc2VtYmx5Lk1lbW9yeSwgV2Vi
QXNzZW1ibHkuVGFibGUgJiBXZWJBc3NlbWJseS5HbG9iYWwgb2JqZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEgdHlwZSBtZXRo
b2QgdG8gc2V2ZXJhbCBXQVNNIG9iamVjdHMgYXMgcGFydCBvZiB0aGUgd29yayB0byBhZGQgV0FT
TQorICAgICAgICB0eXBlIHJlZmxlY3Rpb25zIHRvIHRoZSBKUy1BUEkuIFRoZSBtZXRob2RzIHJl
dHVybiBhIEpTT04gb2JqZWN0IHdoaWNoIGRlc2NyaWJlcworICAgICAgICB0aGUgdHlwZSBvZiB0
aGUgb2JqZWN0IGFuZCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUg
YSBuZXcgd2FzbQorICAgICAgICBvYmplY3Qgb2YgdGhhdCB0eXBlLgorCisgICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1i
bHlHbG9iYWw6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5o
OgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHA6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlNZW1vcnk6OnR5cGUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJB
c3NlbWJseU1lbW9yeS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVRhYmxlOjp0eXBlKToKKyAgICAgICAgKiB3
YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlHbG9iYWxQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorCiAyMDIxLTAzLTMxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBjb25zdHJ1Y3RvcnMgb2YgRVM2IGNvbGxl
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5R2xvYmFsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlHbG9iYWwuY3BwCmluZGV4IGI3YjhhMDUwNzVmNjRlNzJmZDM3NjM1N2U4YmM3ZTkyYTlh
ODEyMTEuLjljNWYxOGE2ODM5Njg5NTJkMDQ0OGY0ZDI4MGI4N2Y2M2YxYmMyY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
Y3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U1dlYkFzc2VtYmx5R2xvYmFsLmgiCisjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIApAQCAtODEsNiArODIsNDMgQEAgdm9pZCBKU1dlYkFz
c2VtYmx5R2xvYmFsOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdGhpc09iamVjdC0+Z2xvYmFsKCktPnZpc2l0QWdncmVnYXRlKHZpc2l0b3Ip
OwogfQogCitKU09iamVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKwor
ICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtdXRhYmxlIiksIGpzQm9vbGVh
bihtX2dsb2JhbC0+bXV0YWJpbGl0eSgpID09IFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpNdXRh
YmxlKSk7CisKKyAgICBXYXNtOjpUeXBlIHZhbHVlVHlwZSA9IG1fZ2xvYmFsLT50eXBlKCk7Cisg
ICAgSlNTdHJpbmcqIHZhbHVlU3RyaW5nID0gbnVsbHB0cjsKKyAgICBzd2l0Y2ggKHZhbHVlVHlw
ZS5raW5kKSB7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMyOgorICAgICAgICB2YWx1ZVN0
cmluZyA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImkzMiIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CisgICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250
cml2aWFsU3RyaW5nKHZtLCAiaTY0Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OkYzMjoKKyAgICAgICAgdmFsdWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmco
dm0sICJmMzIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0
OgorICAgICAgICB2YWx1ZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImY2NCIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6CisgICAg
ICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgICAg
IHZhbHVlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZnVuY3JlZiIpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgInZhbHVlIiksIHZhbHVlU3RyaW5nKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIERFRklORV9WSVNJVF9DSElMRFJFTihKU1dlYkFzc2VtYmx5R2xvYmFsKTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5R2xvYmFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5R2xvYmFsLmgKaW5kZXggNTUyYWUwNWEwZjRhOWQ4MzVhZGUwZjllMGZkOTRkY2U5
NTFiN2M5OS4uNzQyZmJlMDhkNDIzNDMxNzhkMmY1OTkwMWFlNDQ4YjVlZWYzY2VjYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwu
aApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgV2Fz
bTo6R2xvYmFsKiBnbG9iYWwoKSB7IHJldHVybiBtX2dsb2JhbC5wdHIoKTsgfQorICAgIEpTT2Jq
ZWN0KiB0eXBlKEpTR2xvYmFsT2JqZWN0Kik7CiAKIHByaXZhdGU6CiAgICAgSlNXZWJBc3NlbWJs
eUdsb2JhbChWTSYsIFN0cnVjdHVyZSosIFJlZjxXYXNtOjpHbG9iYWw+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcApp
bmRleCAxNDVlZTc4MzhkY2VmZWY2OGFlOTk0OWVmN2Y3YThhZjI0OGMxZWE2Li4yMDFiMzgwYWRi
NGQxNTNlOGQxMzQ1ZGMzOTM1NDVmY2Q4YzEzNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcApAQCAtMTMxLDYgKzEz
MSwyNyBAQCBXYXNtOjpQYWdlQ291bnQgSlNXZWJBc3NlbWJseU1lbW9yeTo6Z3JvdyhWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGdyb3duLnZhbHVlKCk7
CiB9CiAKK0pTT2JqZWN0KiBKU1dlYkFzc2VtYmx5TWVtb3J5Ojp0eXBlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworCisg
ICAgV2FzbTo6UGFnZUNvdW50IG1pbmltdW0gPSBtX21lbW9yeS0+aW5pdGlhbCgpOworICAgIFdh
c206OlBhZ2VDb3VudCBtYXhpbXVtID0gbV9tZW1vcnktPm1heGltdW0oKTsKKworICAgIEpTT2Jq
ZWN0KiByZXN1bHQ7CisgICAgaWYgKG1heGltdW0uaXNWYWxpZCgpKSB7CisgICAgICAgIHJlc3Vs
dCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSwgMyk7CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAibWF4aW11bSIpLCBqc051bWJlcihtYXhpbXVtLnBhZ2VDb3Vu
dCgpKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMik7CisKKyAg
ICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1pbmlt
dW0iKSwganNOdW1iZXIobWluaW11bS5wYWdlQ291bnQoKSkpOworICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2hhcmVkIiksIGpzQm9vbGVhbiht
X21lbW9yeS0+c2hhcmluZ01vZGUoKSA9PSBXYXNtOjpNZW1vcnlTaGFyaW5nTW9kZTo6U2hhcmVk
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9y
eTo6Z3Jvd1N1Y2Nlc3NDYWxsYmFjayhWTSYgdm0sIFdhc206OlBhZ2VDb3VudCBvbGRQYWdlQ291
bnQsIFdhc206OlBhZ2VDb3VudCBuZXdQYWdlQ291bnQpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBj
bGVhciBvdXQgdGhlIG9sZCBhcnJheSBidWZmZXIgYmVjYXVzZSBpdCBtaWdodCBub3cgYmUgcG9p
bnRpbmcgdG8gc3RhbGUgbWVtb3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5oCmluZGV4IDM2MzgwM2VlNTQwZDlmNGFjNDQ0OThk
MTM4ODY5NjAwNGUwZGQ4MWQuLmZmNGJhOWJjZWU1NDczM2MxZjE3NGU2NzQxYjg1MTE4MzgwODA3
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlNZW1vcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TWVtb3J5LmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAgIFdhc206OlBhZ2VDb3Vu
dCBncm93KFZNJiwgSlNHbG9iYWxPYmplY3QqLCB1aW50MzJfdCBkZWx0YSk7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBncm93U3VjY2Vzc0NhbGxiYWNrKFZNJiwgV2FzbTo6UGFnZUNvdW50
IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1BhZ2VDb3VudCk7CiAKKyAgICBKU09i
amVjdCogdHlwZShKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpTV2ViQXNzZW1i
bHlNZW1vcnkoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
VGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRh
YmxlLmNwcAppbmRleCBhYTgzNmFlZDRkMjlhODNkYTk4MmUwNGFjMzYxZGEwYjM5ZjRiYzYxLi43
YTg2M2RlMjY0ZTU2ODRjOGIyMmJmNzE3YWQ0Njc1YjJkYjU3ZTVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlUYWJsZS5jcHAKQEAgLTEy
Niw2ICsxMjYsMzcgQEAgdm9pZCBKU1dlYkFzc2VtYmx5VGFibGU6OmNsZWFyKHVpbnQzMl90IGlu
ZGV4KQogICAgIG1fdGFibGUtPmNsZWFyKGluZGV4KTsKIH0KIAorSlNPYmplY3QqIEpTV2ViQXNz
ZW1ibHlUYWJsZTo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKworICAgIFdhc206OlRhYmxlRWxlbWVudFR5cGUg
ZWxlbWVudCA9IG1fdGFibGUtPnR5cGUoKTsKKyAgICBKU1N0cmluZyogZWxlbWVudFN0cmluZyA9
IG51bGxwdHI7CisgICAgc3dpdGNoIChlbGVtZW50KSB7CisgICAgY2FzZSBXYXNtOjpUYWJsZUVs
ZW1lbnRUeXBlOjpGdW5jcmVmOgorICAgICAgICBlbGVtZW50U3RyaW5nID0ganNOb250cml2aWFs
U3RyaW5nKHZtLCAiZnVuY3JlZiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhc206OlRh
YmxlRWxlbWVudFR5cGU6OkV4dGVybnJlZjoKKyAgICAgICAgZWxlbWVudFN0cmluZyA9IGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IEpTT2JqZWN0KiByZXN1bHQ7CisgICAgYXV0byBtYXhpbXVtID0gbV90YWJsZS0+bWF4aW11bSgp
OworICAgIGlmIChtYXhpbXVtKSB7CisgICAgICAgIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2Jq
ZWN0KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSwgMyk7Cisg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bWF4aW11bSIpLCBqc051bWJlcigqbWF4aW11bSkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1
bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCksIDIpOworCisgICAgdWludDMyX3QgbWluaW11bSA9IG1fdGFibGUtPmxl
bmd0aCgpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAibWluaW11bSIpLCBqc051bWJlcihtaW5pbXVtKSk7CisgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJlbGVtZW50IiksIGVsZW1lbnRTdHJp
bmcpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFibGUuaAppbmRleCBkMDY5Mzc4NmZiMzMxODRkNjU0NmZk
M2ZiZWI0ZDVlYTQwODI0NzMwLi5mZDU5ZjIyNDRmY2UxNzBkNTA3ZDlhZjNmMWViYzM5MTRkNTgw
YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5VGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5VGFibGUuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXQodWludDMy
X3QsIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKik7CiAgICAgdm9pZCBzZXQodWludDMyX3Qs
IEpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXIodWludDMyX3QpOworICAgIEpTT2JqZWN0KiB0eXBl
KEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBXYXNtOjpUYWJsZSogdGFibGUoKSB7IHJldHVybiBt
X3RhYmxlLnB0cigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmNwcAppbmRleCBiZTgxMTQ4MGU3
M2MyMmQwODk3ZTk1ZWNiMTE4NWU1MjViMjI3ZWVjLi5mODkyY2M2ZjgwZGNjYjkxY2UwNDNmNTM4
Mzg3MzY3NDQ3OTU4MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCkBAIC0zOCw2ICszOCw3
IEBAIG5hbWVzcGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2Vi
QXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUpOwogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1
bmNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUds
b2JhbFByb3RvRnVuY1R5cGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlHbG9iYWxQcm90
b3R5cGUubHV0LmgiCkBAIC00OSw2ICs1MCw4IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJs
eUdsb2JhbFByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuR2xvYmFsIiwgJkJhCiAv
KiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmx1dC5oCiAgQGJlZ2luIHBy
b3RvdHlwZUdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsCiAgdmFsdWVPZiB3ZWJBc3NlbWJseUdsb2Jh
bFByb3RvRnVuY1ZhbHVlT2YgRnVuY3Rpb24gMAorIHR5cGUgICAgd2ViQXNzZW1ibHlHbG9iYWxQ
cm90b0Z1bmNUeXBlICAgIEZ1bmN0aW9uIDAKKwogIEBlbmQKICAqLwogCkBAIC03Niw3ICs3OSw3
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1Zh
bHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0
KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90
b0dldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2Jh
bFByb3RvRnVuY1R5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODQsNiArODcsMTYg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJG
dW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCoKICAgICBKU1dlYkFzc2VtYmx5R2xvYmFsKiBnbG9i
YWwgPSBnZXRHbG9iYWwoZ2xvYmFsT2JqZWN0LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
IAorICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2xv
YmFsLT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworCisgICAgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2xvYmFsID0gZ2V0R2xvYmFsKGds
b2JhbE9iamVjdCwgdm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShnbG9iYWwtPmdsb2JhbCgpLT5nZXQo
Z2xvYmFsT2JqZWN0KSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuaAppbmRleCBhYzViZThhMGNl
YWEyZGNjYmJjM2E3MGI3NmMxZDQxN2UwOWE4ODZkLi43MDM2OGI2ZGI0YTI4MjNhZDBlODE4OGE5
ZjI0ZDhkZTQwODljMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmgKQEAgLTQ4LDYgKzQ4LDggQEAg
cHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAgSlNPYmplY3QqIHR5cGUoSlNHbG9i
YWxPYmplY3QqKTsKKwogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZShW
TSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9i
amVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4IDdlMjA4YzMxMDFjMjM3MTYzMjI5
Y2M1NzkyN2FlYTZiOGYwYjI1ZTAuLjlkMTBiNGZmZDE1NTdhNWZlMzE4MzFkMmI3NTc0YzdmZmM1
MmU2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKIG5hbWVz
cGFjZSBKU0Mgewogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlN
ZW1vcnlQcm90b0Z1bmNHcm93KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNsdWRl
ICJXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5sdXQuaCIKQEAgLTUzLDYgKzU0LDcgQEAgY29u
c3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWJB
c3NlbWJseS5NZW1vcnkiLCAmQmEKIEBiZWdpbiBwcm90b3R5cGVUYWJsZVdlYkFzc2VtYmx5TWVt
b3J5CiAgZ3JvdyAgIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdyAgIEZ1bmN0aW9uIDEK
ICBidWZmZXIgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIgQWNjZXNzb3IgMAorIHR5
cGUgICB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY1R5cGUgICBGdW5jdGlvbiAwCiBAZW5kCiAq
LwogCkBAIC05Niw2ICs5OCwxNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUobWVtb3J5LT5idWZmZXIo
Z2xvYmFsT2JqZWN0KSkpOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1i
bHlNZW1vcnlQcm90b0Z1bmNUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpT
V2ViQXNzZW1ibHlNZW1vcnkqIG1lbW9yeSA9IGdldE1lbW9yeShnbG9iYWxPYmplY3QsIHZtLCBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHsgfSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShtZW1vcnktPnR5cGUoZ2xvYmFsT2JqZWN0KSkpOworfQorCisKIFdlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlKiBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBhdXRvKiBvYmpl
Y3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCAyNTEzMDkyZTM5NmRiYjAyMzQyYjY0MDQ3YzdmNWNl
MjE0YzdmNjE1Li41OWUwYWQ3MDBmZDEwYTEzYmQ3OTkyYTg2Nzc1ZjYxYTc4NzljMGNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcApAQCAtNDEsNiArNDEsNyBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoKTsKIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTsK
IHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1
bmNHZXQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJs
ZVByb3RvRnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseVRhYmxlUHJvdG9GdW5jVHlwZSk7CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseVRhYmxl
UHJvdG90eXBlLmx1dC5oIgpAQCAtNTUsNiArNTYsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiV2ViQXNzZW1ibHkuVGFibGUiLCAmQmFz
ZQogIGdyb3cgICB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdyAgIEZ1bmN0aW9uIDEKICBn
ZXQgICAgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCAgICBGdW5jdGlvbiAxCiAgc2V0ICAg
IHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQgICAgRnVuY3Rpb24gMgorIHR5cGUgICB3ZWJB
c3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSAgIEZ1bmN0aW9uIDAKICBAZW5kCiAgKi8KIApAQCAt
MTY0LDYgKzE2NiwxNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJs
ZVByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKKyAgICBKU1dlYkFzc2VtYmx5VGFibGUqIHRhYmxlID0gZ2V0VGFibGUoZ2xvYmFsT2JqZWN0
LCB2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRhYmxlLT50eXBlKGdsb2JhbE9iamVjdCkpKTsKK30K
KwogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZTo6
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsK
ICAgICBhdXRvKiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSh2bSwg
c3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQ5NTI1YzNmZWZi
MjBjZjY3NzliYzVkYTI3Y2JjMGQyMDczZTBmMDMuLmJlNjJiY2Q5OTNiNjFiYmFiZGZmMGI4MDk0
MjFmN2IyMzRhOTY3NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDIxLTAzLTMxICBKZXNzaWNhIFRhbGxvbiAgPGp0YWxsb25AaWdhbGlhLmNvbT4K
KworICAgICAgICBVcGRhdGUgd2FzbSBKUy1BUEkgdGVzdHMgZm9yIHRoZSB0eXBlIG1ldGhvZCB0
byBsYXRlc3QgdXBzdHJlYW0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgdXBzdHJlYW0gdGVzdHMgaGFzIHJlY2VudGx5IGFkZGVkIGEgdGVzdCBm
b3IgdGhlIHRhYmxlIHR5cGUgbWV0aG9kIGFuZAorICAgICAgICB1cGRhdGVkIHRoZSBvdGhlciB0
eXBlIHRlc3RzIHRvIG1ldGhvZHMgdG8ga2VlcCB1cCB3aXRoIGEgcmVjZW50IHNwZWMgY2hhbmdl
LgorICAgICAgICBUaGlzIGFkZHMgdGhvc2UgdXBkYXRlZCB0ZXN0cyBhcyB3ZWxsIGFzIG5vdyBl
eHBlY3RhdGlvbnMgdGhleSBwYXNzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS5qczoKKyAgICAgICAgKGFzc2VydF90eXBlKToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9o
ZXJlLnRlc3QpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2Jh
bC90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55LmpzOgorICAgICAgICAoYXNzZXJ0X3R5cGUpOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0zMCAgQW50b2luZSBRdWludCAgPGdyYW91
dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBDb21wdXRlZCBzdHlsZSBmb3IgYSBib3JkZXItcmFk
aXVzIGNvcm5lciBzaG91bGQgbmV2ZXIgYmUgMHB4IHdoZW4gdGhlIHByb3ZpZGVkIHdpZHRoIGlz
bid0IDBweApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2dsb2JhbC90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGRjZjZiOTkxM2Yx
MDZmM2Y2M2M3ZmQ4MDhiYzMyMmYxNDUyYjliZWUuLjAxMWM3MmI5MWM5YWFiNjkyYjRhYWI5NmU1
YjUwZjI5NTRhMmJhNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
MTUgKzEsMTUgQEAKIAotRkFJTCBpMzIsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBpMzIsIGltbXV0YWJs
ZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52
YWx1ZScpCi1GQUlMIGk2NCwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGk2NCwgaW1tdXRhYmxlIHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykK
LUZBSUwgZjMyLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZjMyLCBpbW11dGFibGUgdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBm
NjQsIG11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xv
YmFsLnR5cGUudmFsdWUnKQotRkFJTCBmNjQsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGFueXJlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZnVuY3JlZiwg
bXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwu
dHlwZS52YWx1ZScpCi1GQUlMIGZ1bmNyZWYsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGtleSBvcmRl
cmluZyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93
blByb3BlcnR5TmFtZXMobXlnbG9iYWwudHlwZSknKQorUEFTUyBpMzIsIG11dGFibGUKK1BBU1Mg
aTMyLCBpbW11dGFibGUKK1BBU1MgaTY0LCBtdXRhYmxlCitQQVNTIGk2NCwgaW1tdXRhYmxlCitQ
QVNTIGYzMiwgbXV0YWJsZQorUEFTUyBmMzIsIGltbXV0YWJsZQorUEFTUyBmNjQsIG11dGFibGUK
K1BBU1MgZjY0LCBpbW11dGFibGUKK1BBU1MgYW55cmVmLCBtdXRhYmxlCitQQVNTIGFueXJlZiwg
aW1tdXRhYmxlCitQQVNTIGZ1bmNyZWYsIG11dGFibGUKK1BBU1MgZnVuY3JlZiwgaW1tdXRhYmxl
CitQQVNTIGtleSBvcmRlcmluZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFu
eS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCmluZGV4IDMxOGIxYWM1NzhjYWM2MDUx
ZWEyM2VjZmJiNjUyNWZmZmIzMjU1MDEuLmExY2ZhZTkwZGI5NDdmMzQyODY0NTE2MjYyNzlhNTYy
NDI1NjAxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9i
YWwvdHlwZS50ZW50YXRpdmUuYW55LmpzCkBAIC0zLDkgKzMsMTAgQEAKIAogZnVuY3Rpb24gYXNz
ZXJ0X3R5cGUoYXJndW1lbnQpIHsKICAgICBjb25zdCBteWdsb2JhbCA9IG5ldyBXZWJBc3NlbWJs
eS5HbG9iYWwoYXJndW1lbnQpOworICAgIGNvbnN0IGdsb2JhbHR5cGUgPSBteWdsb2JhbC50eXBl
KCk7CiAKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUudmFsdWUsIGFyZ3VtZW50LnZh
bHVlKTsKLSAgICBhc3NlcnRfZXF1YWxzKG15Z2xvYmFsLnR5cGUubXV0YWJsZSwgYXJndW1lbnQu
bXV0YWJsZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBlLnZhbHVlLCBhcmd1bWVudC52
YWx1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhnbG9iYWx0eXBlLm11dGFibGUsIGFyZ3VtZW50Lm11
dGFibGUpOwogfQogCiB0ZXN0KCgpID0+IHsKQEAgLTU4LDcgKzU5LDcgQEAgdGVzdCgoKSA9PiB7
CiAKIHRlc3QoKCkgPT4gewogICAgIGNvbnN0IG15Z2xvYmFsID0gbmV3IFdlYkFzc2VtYmx5Lkds
b2JhbCh7InZhbHVlIjogImkzMiIsICJtdXRhYmxlIjogdHJ1ZX0pOwotICAgIGNvbnN0IHByb3Bl
cnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2JhbC50eXBlKTsKKyAg
ICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobXlnbG9i
YWwudHlwZSgpKTsKICAgICBhc3NlcnRfZXF1YWxzKHByb3BlcnR5TmFtZXNbMF0sICJtdXRhYmxl
Iik7CiAgICAgYXNzZXJ0X2VxdWFscyhwcm9wZXJ0eU5hbWVzWzFdLCAidmFsdWUiKTsKIH0sICJr
ZXkgb3JkZXJpbmciKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlwZS50ZW50YXRpdmUuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvZ2xvYmFsL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGRjZjZiOTkxM2YxMDZmM2Y2M2M3ZmQ4MDhiYzMyMmYxNDUyYjliZWUuLjAxMWM3
MmI5MWM5YWFiNjkyYjRhYWI5NmU1YjUwZjI5NTRhMmJhNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9nbG9iYWwvdHlw
ZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2dsb2JhbC90eXBlLnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwxNSBAQAogCi1GQUlMIGkz
MiwgbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9i
YWwudHlwZS52YWx1ZScpCi1GQUlMIGkzMiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgaTY0LCBtdXRh
YmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBl
LnZhbHVlJykKLUZBSUwgaTY0LCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmMzIsIG11dGFibGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215Z2xvYmFsLnR5cGUudmFsdWUn
KQotRkFJTCBmMzIsIGltbXV0YWJsZSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlMIGY2NCwgbXV0YWJsZSB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbXlnbG9iYWwudHlwZS52YWx1ZScpCi1GQUlM
IGY2NCwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
eWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55cmVmLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgYW55
cmVmLCBpbW11dGFibGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ215
Z2xvYmFsLnR5cGUudmFsdWUnKQotRkFJTCBmdW5jcmVmLCBtdXRhYmxlIHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdteWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwgZnVu
Y3JlZiwgaW1tdXRhYmxlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdt
eWdsb2JhbC50eXBlLnZhbHVlJykKLUZBSUwga2V5IG9yZGVyaW5nIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhteWdsb2Jh
bC50eXBlKScpCitQQVNTIGkzMiwgbXV0YWJsZQorUEFTUyBpMzIsIGltbXV0YWJsZQorUEFTUyBp
NjQsIG11dGFibGUKK1BBU1MgaTY0LCBpbW11dGFibGUKK1BBU1MgZjMyLCBtdXRhYmxlCitQQVNT
IGYzMiwgaW1tdXRhYmxlCitQQVNTIGY2NCwgbXV0YWJsZQorUEFTUyBmNjQsIGltbXV0YWJsZQor
UEFTUyBhbnlyZWYsIG11dGFibGUKK1BBU1MgYW55cmVmLCBpbW11dGFibGUKK1BBU1MgZnVuY3Jl
ZiwgbXV0YWJsZQorUEFTUyBmdW5jcmVmLCBpbW11dGFibGUKK1BBU1Mga2V5IG9yZGVyaW5nCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkv
dHlwZS50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0OTJmZDM2NGRjMDA5YzYyYTAz
NTk2YjE2NTcwMTBkYTlhMjYyMWY1Li5iZjA2NTVlZDQ1ZjhiMWRhZjc1OTY4NmE1ZTVmNmY4ZTll
ZTU5M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBA
QAogCi1GQUlMIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIE5vbi16ZXJvIGlu
aXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBaZXJvIG1heGltdW0gdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBOb25l
LXplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVt
b3J5LnR5cGUubWluaW11bScpCi1GQUlMIG5vbi1zaGFyZWQgbWVtb3J5IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5taW5pbXVtJykKLUZBSUwgc2hh
cmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5
LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24t
emVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXpl
cm8gbWF4aW11bQorUEFTUyBub24tc2hhcmVkIG1lbW9yeQorUEFTUyBzaGFyZWQgbWVtb3J5CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbS9qc2FwaS9tZW1vcnkvdHlwZS50ZW50YXRpdmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRh
dGl2ZS5hbnkuanMKaW5kZXggZWZlOWUyYTM3ZGViN2JiNmVmODQxZTk4MDllZWU3ODFjOWVmZmI5
Zi4uYTk2YTMyMjdhZGNhN2ZmMDlkZTc1ZTVmN2M0MTJhYjk1YjBkNTAzZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21l
bW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnku
anMKQEAgLTMsMTEgKzMsMTIgQEAKIAogZnVuY3Rpb24gYXNzZXJ0X3R5cGUoYXJndW1lbnQpIHsK
ICAgICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KGFyZ3VtZW50KTsKKyAg
ICBjb25zdCBtZW1vcnl0eXBlID0gbWVtb3J5LnR5cGUoKQogCi0gICAgYXNzZXJ0X2VxdWFscyht
ZW1vcnkudHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsKLSAgICBhc3NlcnRfZXF1YWxz
KG1lbW9yeS50eXBlLm1heGltdW0sIGFyZ3VtZW50Lm1heGltdW0pOworICAgIGFzc2VydF9lcXVh
bHMobWVtb3J5dHlwZS5taW5pbXVtLCBhcmd1bWVudC5taW5pbXVtKTsKKyAgICBhc3NlcnRfZXF1
YWxzKG1lbW9yeXR5cGUubWF4aW11bSwgYXJndW1lbnQubWF4aW11bSk7CiAgICAgaWYgKGFyZ3Vt
ZW50LnNoYXJlZCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWVtb3J5
LnR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
bW9yeXR5cGUuc2hhcmVkLCBhcmd1bWVudC5zaGFyZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9tZW1vcnkvdHlw
ZS50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDkyZmQzNjRkYzAwOWM2
MmEwMzU5NmIxNjU3MDEwZGE5YTI2MjFmNS4uYmYwNjU1ZWQ0NWY4YjFkYWY3NTk2ODZhNWU1ZjZm
OGU5ZWU1OTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtL2pzYXBpL21lbW9yeS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20vanNhcGkvbWVtb3J5L3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsOCBAQAogCi1GQUlMIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bSB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScp
Ci1GQUlMIE5vbi16ZXJvIGluaXRpYWwsIG5vIG1heGltdW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1pbmltdW0nKQotRkFJTCBaZXJvIG1heGlt
dW0gdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lbW9yeS50eXBlLm1p
bmltdW0nKQotRkFJTCBOb25lLXplcm8gbWF4aW11bSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCi1GQUlMIG5vbi1zaGFyZWQgbWVt
b3J5IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZW1vcnkudHlwZS5t
aW5pbXVtJykKLUZBSUwgc2hhcmVkIG1lbW9yeSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnbWVtb3J5LnR5cGUubWluaW11bScpCitQQVNTIFplcm8gaW5pdGlhbCwgbm8g
bWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4
aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQorUEFTUyBub24tc2hhcmVkIG1lbW9yeQorUEFT
UyBzaGFyZWQgbWVtb3J5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGIxMzQwMmEyNjEwNDMzYmMyN2QyOWI3NmM0YTEzOTU1OTJmZTdiMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24temVybyBpbml0aWFs
LCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXplcm8gbWF4aW11bQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50
YXRpdmUuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2
MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvdGFibGUvdHlwZS50ZW50YXRpdmUuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTEzMGUwYWQwMjljNTJm
NzgxYzkzYmRhYmZlNjA3NzdjNjQxZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVu
dGF0aXZlLmFueS5qcwpAQCAtMCwwICsxLDI2IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LGRl
ZGljYXRlZHdvcmtlcixqc3NoZWxsCisvLyBNRVRBOiBzY3JpcHQ9L3dhc20vanNhcGkvYXNzZXJ0
aW9ucy5qcworCitmdW5jdGlvbiBhc3NlcnRfdHlwZShhcmd1bWVudCkgeworICAgIGNvbnN0IG15
dGFibGUgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoYXJndW1lbnQpOworICAgIGNvbnN0IHRhYmxl
dHlwZSA9IG15dGFibGUudHlwZSgpCisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUubWluaW11
bSwgYXJndW1lbnQubWluaW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUubWF4aW11
bSwgYXJndW1lbnQubWF4aW11bSk7CisgICAgYXNzZXJ0X2VxdWFscyh0YWJsZXR5cGUuZWxlbWVu
dCwgYXJndW1lbnQuZWxlbWVudCk7Cit9CisKK3Rlc3QoKCkgPT4geworICAgIGFzc2VydF90eXBl
KHsgIm1pbmltdW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVmIn0pOworfSwgIlplcm8gaW5pdGlh
bCwgbm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5p
bXVtIjogNSwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAiTm9uLXplcm8gaW5pdGlhbCwg
bm8gbWF4aW11bSIpOworCit0ZXN0KCgpID0+IHsKKyAgICBhc3NlcnRfdHlwZSh7ICJtaW5pbXVt
IjogMCwgIm1heGltdW0iOiAwLCAiZWxlbWVudCI6ICJmdW5jcmVmIiB9KTsKK30sICJaZXJvIG1h
eGltdW0iKTsKKwordGVzdCgoKSA9PiB7CisgICAgYXNzZXJ0X3R5cGUoeyAibWluaW11bSI6IDAs
ICJtYXhpbXVtIjogNSwgImVsZW1lbnQiOiAiZnVuY3JlZiIgfSk7Cit9LCAiTm9uZS16ZXJvIG1h
eGltdW0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2FzbS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bS9qc2FwaS90YWJsZS90eXBlLnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYjEzNDAyYTI2MTA0MzNiYzI3ZDI5Yjc2YzRhMTM5NTU5MmZlN2IyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
YXNtL2pzYXBpL3RhYmxlL3R5cGUudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorCitQQVNTIFplcm8gaW5pdGlhbCwgbm8gbWF4aW11bQorUEFTUyBOb24t
emVybyBpbml0aWFsLCBubyBtYXhpbXVtCitQQVNTIFplcm8gbWF4aW11bQorUEFTUyBOb25lLXpl
cm8gbWF4aW11bQorCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDU1ODU5NmM0NGI3YzQwZDFlZDRmZGU0ZjlkMDBiOTM2MTliNGUwOTMuLjk3
MGYwODA5NGZlZmM1YTljNDFjNDlmY2Y0MWNmNTBkNDRlYjczZTUgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjEtMDMtMzEgIEplc3NpY2EgVGFsbG9uICA8anRhbGxvbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCB0ZXN0cyBmb3IgdGhlIG5ldyB0eXBlIG1ldGhvZCBvbiBjZXJ0YWluIEpTLUFQSSB3YXNt
IG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjI0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdhc20vanMtYXBpL2dsb2JhbC5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQudGhyb3dz
KToKKyAgICAgICAgKiB3YXNtL2pzLWFwaS90YWJsZS5qczoKKyAgICAgICAgKGFzc2VydC50cnV0
aHkpOgorICAgICAgICAqIHdhc20vanMtYXBpL3Rlc3RfbWVtb3J5LmpzOgorCiAyMDIxLTAzLTMx
ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBPcHRp
bWl6ZSBjb25zdHJ1Y3RvcnMgb2YgRVM2IGNvbGxlY3Rpb25zCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3dhc20vanMtYXBpL2dsb2JhbC5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvZ2xvYmFsLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxMDEzMTgyOTU1MWViZTJkM2U0ZTBlOTNiN2Q4ODUwNWFjOGM1NmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL2dsb2JhbC5qcwpAQCAtMCwwICsxLDI5
IEBACitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKK3sKKyAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgY29uc3QgZyA9IG5ldyBXZWJBc3NlbWJseS5HbG9i
YWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KTsKKyAgICAgICAgZy50eXBlLmNhbGwo
e30pOworICAgIH0sIFR5cGVFcnJvciwgImV4cGVjdGVkIHx0aGlzfCB2YWx1ZSB0byBiZSBhbiBp
bnN0YW5jZSBvZiBXZWJBc3NlbWJseS5HbG9iYWwiKTsKKworICAgIGNvbnN0IGkzMiA9IG5ldyBX
ZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiaTMyIiwgbXV0YWJsZTogZmFsc2V9KS50eXBlKCk7
CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKGkzMikubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQu
ZXEoaTMyLnZhbHVlLCAiaTMyIik7CisgICAgYXNzZXJ0LmVxKGkzMi5tdXRhYmxlLCBmYWxzZSk7
CisKKyAgICBjb25zdCBpMzJtID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJpMzIi
LCBtdXRhYmxlOiB0cnVlfSkudHlwZSgpOworICAgIGFzc2VydC5lcShpMzJtLnZhbHVlLCAiaTMy
Iik7CisgICAgYXNzZXJ0LmVxKGkzMm0ubXV0YWJsZSwgdHJ1ZSk7CisKKyAgICBjb25zdCBpNjQg
PSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTogImk2NCIsIG11dGFibGU6IHRydWV9KS50
eXBlKCk7CisgICAgYXNzZXJ0LmVxKGk2NC52YWx1ZSwgImk2NCIpOworCisgICAgY29uc3QgZjMy
ID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFsdWU6ICJmMzIiLCBtdXRhYmxlOiB0cnVlfSku
dHlwZSgpOworICAgIGFzc2VydC5lcShmMzIudmFsdWUsICJmMzIiKTsKKworICAgIGNvbnN0IGY2
NCA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOiAiZjY0IiwgbXV0YWJsZTogdHJ1ZX0p
LnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoZjY0LnZhbHVlLCAiZjY0Iik7CisKKyAgICBjb25zdCBm
NjRuID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbChmNjQpLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEo
ZjY0LnZhbHVlLCBmNjRuLnZhbHVlKTsKKyAgICBhc3NlcnQuZXEoZjY0Lm11dGFibGUsIGY2NG4u
bXV0YWJsZSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy93YXNtL2pzLWFwaS90YWJsZS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGFibGUuanMK
aW5kZXggZGI3ODc4ZjBjYTIzZGM5ZTFmMTk2MmE4ZjU2NTY3MDY5ODhlMDJkZi4uODAwNGU2N2U3
MmVlZDdhOGRjM2ZiYmQyOWEzYWRiMjY5N2UwN2M3YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNt
L2pzLWFwaS90YWJsZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3RhYmxlLmpzCkBAIC0z
OTAsMyArMzkwLDMzIEBAIGFzc2VydC50aHJvd3MoKCkgPT4gV2ViQXNzZW1ibHkuVGFibGUucHJv
dG90eXBlLmdyb3codW5kZWZpbmVkKSwgVHlwZUVycm9yLCBgZXhwCiAgICAgfQogICAgIGFzc2Vy
dC50cnV0aHkodGhyZXcpOwogfQorCit7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAg
ICAgIGNvbnN0IHQgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoe21pbmltdW06IDUsIGVsZW1lbnQ6
ICJmdW5jcmVmIn0pOworICAgICAgICB0LnR5cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9y
LCAiZXhwZWN0ZWQgfHRoaXN8IHZhbHVlIHRvIGJlIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5
LlRhYmxlIik7CisKKyAgICBjb25zdCB0MCA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7bWluaW11
bTogNSwgZWxlbWVudDogImZ1bmNyZWYifSkudHlwZSgpOworICAgIGFzc2VydC5lcShPYmplY3Qu
a2V5cyh0MCkubGVuZ3RoLCAyKTsKKyAgICBhc3NlcnQuZXEodDAubWluaW11bSwgNSk7CisgICAg
YXNzZXJ0LmVxKHQwLmVsZW1lbnQsICJmdW5jcmVmIik7CisKKyAgICBjb25zdCB0MSA9IG5ldyBX
ZWJBc3NlbWJseS5UYWJsZSh7bWluaW11bTogNSwgbWF4aW11bTogMTAsIGVsZW1lbnQ6ICJmdW5j
cmVmIn0pLnR5cGUoKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXModDEpLmxlbmd0aCwgMyk7
CisgICAgYXNzZXJ0LmVxKHQxLm1pbmltdW0sIDUpOworICAgIGFzc2VydC5lcSh0MS5tYXhpbXVt
LCAxMCkKKyAgICBhc3NlcnQuZXEodDEuZWxlbWVudCwgImZ1bmNyZWYiKTsKKworICAgIGNvbnN0
IHQyID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHttaW5pbXVtOiA1LCBtYXhpbXVtOiAxMCwgZWxl
bWVudDogImV4dGVybnJlZiJ9KS50eXBlKCk7CisgICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQy
KS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcSh0Mi5taW5pbXVtLCA1KTsKKyAgICBhc3NlcnQu
ZXEodDIubWF4aW11bSwgMTApCisgICAgYXNzZXJ0LmVxKHQyLmVsZW1lbnQsICJleHRlcm5yZWYi
KTsKKworICAgIGNvbnN0IHQzID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHQyKS50eXBlKCk7Cisg
ICAgYXNzZXJ0LmVxKE9iamVjdC5rZXlzKHQyKS5sZW5ndGgsIE9iamVjdC5rZXlzKHQzKS5sZW5n
dGgpOworICAgIGFzc2VydC5lcSh0Mi5taW5pbXVtLCB0My5taW5pbXVtKTsKKyAgICBhc3NlcnQu
ZXEodDIubWF4aW11bSwgdDMubWF4aW11bSkKKyAgICBhc3NlcnQuZXEodDIuZWxlbWVudCwgdDMu
ZWxlbWVudCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVz
dF9tZW1vcnkuanMKaW5kZXggNzBlYmRlMjg2MjMyZTE4MWY1ZWRjYzUyOWFkMjBlNGY2YTE1MDkz
NS4uOWVhMmIyYmZiODlmMWRhNTIzZGQxYWJiNWJhZGVjNDQ4ZTAwY2EyNSAxMDA2NDQKLS0tIGEv
SlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X21lbW9yeS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMt
YXBpL3Rlc3RfbWVtb3J5LmpzCkBAIC0zOTksMyArMzk5LDMzIEBAIHRlc3QoZnVuY3Rpb24oKSB7
CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMubWVtb3J5LmJ1ZmZlci5ieXRlTGVuZ3Ro
LCAyMCAqIHBhZ2VTaXplKTsKICAgICBhc3NlcnQudHJ1dGh5KGluc3RhbmNlLmV4cG9ydHMubWVt
b3J5IGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuTWVtb3J5KTsKIH0KKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgY29uc3QgbSA9IG5ldyBXZWJB
c3NlbWJseS5NZW1vcnkoe21pbmltdW06NDAsIG1heGltdW06IDEwMH0pOworICAgICAgICBtLnR5
cGUuY2FsbCh7fSk7CisgICAgfSwgVHlwZUVycm9yLCAiV2ViQXNzZW1ibHkuTWVtb3J5LnByb3Rv
dHlwZS5idWZmZXIgZ2V0dGVyIGNhbGxlZCB3aXRoIG5vbiBXZWJBc3NlbWJseS5NZW1vcnkgfHRo
aXN8IHZhbHVlIik7CisKKyAgICBjb25zdCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5
KHtpbml0aWFsOiAyMH0pOworICAgIGFzc2VydC5lcShPYmplY3Qua2V5cyhtZW1vcnkudHlwZSgp
KS5sZW5ndGgsIDIpOworICAgIGFzc2VydC5lcShtZW1vcnkudHlwZSgpLm1pbmltdW0sIDIwKTsK
KyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0
IG1lbW9yeTIgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5pbXVtOjQwLCBtYXhpbXVtOiAx
MDB9KTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMobWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwg
Myk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIDQwKTsKKyAgICBhc3Nl
cnQuZXEobWVtb3J5Mi50eXBlKCkubWF4aW11bSwgMTAwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5
LnR5cGUoKS5zaGFyZWQsIGZhbHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTMgPSBuZXcgV2ViQXNz
ZW1ibHkuTWVtb3J5KG1lbW9yeTIudHlwZSgpKTsKKyAgICBhc3NlcnQuZXEoT2JqZWN0LmtleXMo
bWVtb3J5Mi50eXBlKCkpLmxlbmd0aCwgT2JqZWN0LmtleXMobWVtb3J5My50eXBlKCkpLmxlbmd0
aCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTIudHlwZSgpLm1pbmltdW0sIG1lbW9yeTMudHlwZSgp
Lm1pbmltdW0pOworICAgIGFzc2VydC5lcShtZW1vcnkyLnR5cGUoKS5tYXhpbXVtLCBtZW1vcnkz
LnR5cGUoKS5tYXhpbXVtKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LnR5cGUoKS5zaGFyZWQsIGZh
bHNlKTsKKworICAgIGNvbnN0IG1lbW9yeTQgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHttaW5p
bXVtOiAxMCwgbWF4aW11bTogMjAsIHNoYXJlZDp0cnVlfSk7CisgICAgYXNzZXJ0LmVxKE9iamVj
dC5rZXlzKG1lbW9yeTQudHlwZSgpKS5sZW5ndGgsIDMpOworICAgIGFzc2VydC5lcShtZW1vcnk0
LnR5cGUoKS5taW5pbXVtLCAxMCk7CisgICAgYXNzZXJ0LmVxKG1lbW9yeTQudHlwZSgpLm1heGlt
dW0sIDIwKTsKKyAgICBhc3NlcnQuZXEobWVtb3J5NC50eXBlKCkuc2hhcmVkLCB0cnVlKTsKK30p
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>